关闭

YUV422显示视频格式解释

标签: YUV422RGB转YCbCr
1993人阅读 评论(0) 收藏 举报
分类:

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
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

各种视频格式的对比与解析

HDTV是目前所有影视格式最清的媒流体! 清楚度可以达到DVD3到5陪! HDTV、HDTVRIP、DVDRIP视频格式的区别 电影版区出现了HDTV格式的高清版电影和此种格式压制成的rip格式电...
  • Andy001847
  • Andy001847
  • 2014-10-28 02:41
  • 1027

YUV422转换YUV420应用实例

在上一篇文章中JPEG编码学习—JPEG数据转YUV数据应用实例 已经可以将v4l2 采集到的JPEG数据转换为YUV422格式,但是我们有时候需要使用其他格式的数据,比如用YUV420作为H264的...
  • li_wen01
  • li_wen01
  • 2016-12-20 19:58
  • 1451

使用Matlab显示OV5642输入的YUV图像

YUV格式的图像有很多种颜色空间和存储格式,这里使用的是YUYV4:2:2模式。 YUYV4:2:2模式的采样方式如下所示。 其存储格式为YUV422-Interleaved,如下图所示。 在...
  • hyanglu1573
  • hyanglu1573
  • 2013-10-19 22:04
  • 1529

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

关于yuv 格式 YUV 格式通常有两大类:打包(packed)格式和平面(planar)格式。前者将 YUV 分量存放在同一个数组中, 通常是几个相邻的像素组成一个宏像素(macro-pix...
  • u012288815
  • u012288815
  • 2016-07-01 10:50
  • 4985

YUV422的旋转

YUV422的旋转,其实就是将之当做YUV420一样进行旋转,即4个Y值,共享一组UV,这样旋转后,会损失一般的色度值。 不管你的decoder给你的什么鬼,或许是平面格式,或许是打包格式,反正就是...
  • The_X
  • The_X
  • 2015-06-11 16:44
  • 652

YUV422与RGB互相转换

转自: http://m.blog.csdn.net/blog/guo8113/25333837#   前一段时间在DM8168中进行颜色空间的转换,在网上找了些程序,自己也根据网上的改了下,由于...
  • qq_29350001
  • qq_29350001
  • 2016-07-26 09:21
  • 3224

AVFoundation视频播放(非音视频流处理)

前面我们已经提到了利用AVFoundation实现音视频播放,那么为什么这里又来讲一次呢?原因在于他们之间在IOS中的层次结构不一样。 如果我们吧视频播放排个顺序的话: (1)MediaPlaye...
  • u014011807
  • u014011807
  • 2015-07-20 14:45
  • 1346

YUV444与YUV422下采样

终于下定决心开始研究多媒体技术、开始进实验室学习!庆祝撒花bla bla~~这篇文章写我做第一个小实验遇到的问题和一些知识点总结。一、YUV介绍YUV有三个分量:Y(Luminance/Luma:亮度...
  • qq_36113899
  • qq_36113899
  • 2017-04-03 13:07
  • 1152

YUV到RGB565的转换

前一阵买了一个USB的摄像头接在cubieboard2上打算进行图像采集并存储图片,在解决了驱动以及V4L2摄像头编程等问题之后发现采集到的图像数据是YUYV格式的,因为我有一个现成的写BMP文件(R...
  • lucykingljj
  • lucykingljj
  • 2014-10-24 08:58
  • 3046

FFmpeg 视频格式解码方法

 流程 下面附上一张FFmpeg编码视频的流程图。通过该流程,不仅可以编码H.264/H.265的码流,而且可以编码MPEG4/MPEG2/VP9/VP8等多种码流。实际上使用FFmpeg编码...
  • kang19870415
  • kang19870415
  • 2015-01-14 14:54
  • 1556
    个人资料
    • 访问:41745次
    • 积分:928
    • 等级:
    • 排名:千里之外
    • 原创:51篇
    • 转载:4篇
    • 译文:1篇
    • 评论:6条