几种常见的YUV格式--yuv422:yuv420【转】

简介: 转自:http://blog.csdn.net/u012288815/article/details/51799477 关于yuv 格式 YUV 格式通常有两大类:打包(packed)格式和平面(planar)格式。

转自:http://blog.csdn.net/u012288815/article/details/51799477

关于yuv 格式

YUV 格式通常有两大类:打包(packed)格式和平面(planar)格式。前者将 YUV 分量存放在同一个数组中,
通常是几个相邻的像素组成一个宏像素(macro-pixel);而后者使用三个数组分开存放 YUV 三个分量,就像
是一个三维平面一样。


下图是DM6467的视频接口处理前端

 

 

TI的几款达芬奇处理器对于接收YCbCr数据和存放数据的方式是不一样的,下面来分别解析几种YUV数据的存放方式。

1.YUV422 Planar

   这里,Y\U\V数据是分开存放的,每两个水平Y采样点,有一个Cb和一个Cr采样点,如下图。(DM6467不支持这种格式)

 

 

2.YUV420 Planar

   这个格式跟YUV422 Planar 类似,但对于Cb和Cr的采样在水平和垂直方向都减少为2:1,如下图。(DM6467不支持这种格式)

 

3.YUV422 Semi-Planar

   这个格式的数据量跟YUV422 Planar的一样,但是U、V是交叉存放的,如下图。(DM6467在 录制 或 播放 视频图像数据时都是使用这种格式)

 

 

 

4.YUV420 Semi-Planar

   这个格式的数据量跟YUV420 Planar的一样,但是U、V是交叉存放的,如下图。(DM6467在编解码、压缩视频图像数据时都是使用这种格式,所以对YUV422 Semi-Planar数据进行

this format is used in DM646x
for DSP-based codecs like H264 and MPEG4.The VDCE hardware enginein DM646x supports color
conversion from the YUV422 semi-planar to the YUV420 semi-planar formats. This is useful when
converting VPIF captured data and providing it as input to H264 encode.

 

 

 

5.YUV422 Interleaved

   这个格式的数据量跟YUV422 Planar的一样,但是Y、U、V是交叉存放的,如下图。(DM6467不支持这个格式。其它TI芯片,像DM6446\DM365\DM355在某些模式下是

更详细的资料可以参考ti的sprab77a文档。

【作者】 张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
目录
相关文章
|
存储 编解码 算法
H.264编码及AAC编码基础 1
H.264编码及AAC编码基础
711 0
|
安全 数据处理 C++
【Qt 底层之事件驱动系统】深入理解 Qt 事件机制:主事件循环与工作线程的交互探究,包括 QML 的视角
【Qt 底层之事件驱动系统】深入理解 Qt 事件机制:主事件循环与工作线程的交互探究,包括 QML 的视角
3499 3
|
存储 编解码 算法
准循环 LDPC 码(QC-LDPC) | 带你读《5G-NR信道编码》之九
本节将为你介绍准循环 LDPC 码(QC-LDPC)的基本内容。
15150 2
准循环 LDPC 码(QC-LDPC) | 带你读《5G-NR信道编码》之九
|
11月前
|
Unix Linux 编译器
windows下和linux下cmake的规则有区别吗
通过合理使用CMake的条件逻辑和平台特定的配置选项,开发者可以编写更加灵活和健壮的CMake脚本,确保项目在Windows和Linux上的一致性和可移植性。
576 76
|
Python
使用pycharm 开发streamlit的项目启动
要在 PyCharm 中配置 Streamlit 环境并调试应用,请按以下步骤操作:1. 确保 PyCharm 配置了 Python 解释器并安装 Streamlit 包(File -> Settings -> Project -> Python Interpreter)。2. 配置调试运行设置(Run -> Edit Configurations,添加 Python 配置并命名)。3. 选择新配置并点击调试按钮启动应用。
1606 23
|
Web App开发 Ubuntu Linux
Linux无图形界面环境使用Python+Selenium实践
【5月更文挑战第1天】Linux无图形界面环境使用Python+Selenium实践
1562 2
|
NoSQL 算法 Shell
【C/C++ 调试 GDB指南 】详解 gdb 断点的设置方式
【C/C++ 调试 GDB指南 】详解 gdb 断点的设置方式
695 2
|
机器学习/深度学习 人工智能 图形学
NPU(Neural Processing Unit)和GPGPU(
NPU(Neural Processing Unit)和GPGPU(General-Purpose Graphics Processing Unit)在AI任务处理方面虽然都能发挥重要作用,但它们在设计、功能和适用场景上存在一些明显的差异。
2744 3
|
程序员 开发者 Python
Python新手常见问题五:如何避免模块导入错误?
在Python编程中,模块的导入是每个开发者必须掌握的基础技能之一。模块化设计让代码更加有序、可复用和易于维护。然而,在实际操作过程中,新手程序员常常会遇到一些关于模块导入的问题,导致程序无法正常运行。本文将探讨几种常见的模块导入场景及容易犯错的操作,并提供相应的解决方案。
1858 4
|
容器
QT基础入门——界面布局和常用控件(四)
QT基础入门——界面布局和常用控件(四)
1547 0
QT基础入门——界面布局和常用控件(四)