YUV422显示视频格式解释
来源:互联网 发布:mysql初始化root密码 编辑:程序博客网 时间:2024/06/05 17:41
H.264编码器输入要YUV420,而解码器解码之后显示一般又要YUV422,并且视频采集芯片输出往往也是YUV422,下面以我一个实际使用为例说一下YUV422格式:
/* YUV4:2:2格式(这是初始化背景为纯色,所以用了同一个Y) *//* Black color in UYVY format */#define UYVY_BLACK/*Y Cr Y Cb*/ 0x10801080/*black*/ /*blue:0x286e28ef red:0x51ef515b green:0x90239036/*//* DM6446中的测试代码,整个宏像素赋值 */ for (bufIdx=0; bufIdx < NUM_DISPLAY_BUFS; bufIdx++) { /* Clear the video buffer */ buf = (unsigned int *) virtDisplays[bufIdx]; for (i=0; i < displaySize / sizeof(unsigned int); i++) { buf[i] = UYVY_BLACK; } /* Translate the virtual address to physical as resizer needs this */ physDisplays[bufIdx] = Memory_getPhysicalAddress(virtDisplays[bufIdx]); DBG("virtDisplays[%d] LA:%#lx PA:%#lx\n", bufIdx, (unsigned long) virtDisplays[bufIdx], physDisplays[bufIdx]); }
可以看到YUV422存储顺序为Y Cr Y Cb Y Cr Y Cb Y Cr Y Cb……,Y是全部保留,而Cr,Cb则是在一行中交替采样,而不像YUV420,一行采样 Cb,下一行采用Cr。注意区别。
再说一下上面YCbCr的由来,是通过RGB转化的,具体代码如下:
RGB -> YCbCr代码void rgb2ycbcr(unsigned char r,unsigned char g,unsigned char b){ unsigned char ycbcr_res[3]; ycbcr_res[0]= (unsigned char)(r * 0.256789 + g * 0.504129 + b * 0.097906)+ 16; ycbcr_res[1]= (unsigned char)(r *-0.148223 + g * -0.290992 + b * 0.439215)+ 128; ycbcr_res[2]= (unsigned char)(r * 0.439215 + g * -0.367789 + b *-0.071426)+ 128;}
代码测试
0 0
- YUV422显示视频格式解释
- directdraw显示yuv422(yuy2)
- YUV422蓝屏显示输出功能辅助调试
- 最简单解释 YUV444,YUV422,YUV420中的4,2,0
- 视频格式尺寸解释 VGA QVGA等
- 视频格式
- 视频格式
- 视频格式
- 视频格式
- 视频格式
- 视频格式
- FFMPEG:H264解码-SDL显示(RGB32、RGB24、YUV420P、YUV422)
- YUV422理解
- YUV422/420
- YUV422/YUV420
- Qt:解码海康视频格式并显示在QLabel上
- linux top显示解释
- Elasticsearch显示头解释
- leetcode 66:plus one
- 软件架构的数据流总结(三)
- 浅谈散列
- Java 理论与实践: 用动态代理进行修饰
- OVM学习--持续更新
- YUV422显示视频格式解释
- LWP::UserAgent 模块
- [Fri 26 Jun 2015 ~ Thu 2 Jul 2015] Deep Learning in arxiv
- 黑马程序员————第二十一天
- 南阳oj 题目22 素数求和问题
- 驱动开发中使用安全字符串函数
- Implement Stack using Queues
- iptables初步总结
- Sql Server 查询一段日期内的所有礼拜天