YUV(二)-YUV格式转换缩放

本文转自:

http://blog.csdn.net/zhuweigangzwg/article/details/17222581

YUV(二)-YUV格式转换缩放

     本文主要讲解yuv各种格式相互转换的功能实现及原理,以常用的yuv420p,yuv422p,yuv444p作为转换格式比较清晰的解析各

种格式,以及用ffmpeg做转换的实现,同时有需要的朋友也可以用opencv做实现。
   (一):内存采样
    YUV码流的存储格式其实与其采样的方式密切相关,主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0,这里强调的

是如何根据其采样格式来从码流中还原每个像素点的YUV值,因为只有正确地还原了每个像素点的YUV值,才能通过YUV与RGB的

转换公式提取出每个像素点的RGB值,然后显示出来。
用三个图来直观地表示采集的方式吧,以黑点表示采样该像素点的Y分量,以空心圆圈表示采用该像素点的UV分量。
YUV 4:4:4采样,每一个Y对应一组UV分量。 2. 3.YUV 4:2:2采样,每两个Y共用一组UV分量。 4.5.YUV 4:2:0采样,每四个Y共

用一组UV分量。
 

   (二):内存分布
        1:YUV420
          (1):I420:
              YYYYYYYY UU VV    =>YUV420P
          (2):YV12
              YYYYYYYY VV UU    =>YUV420P
          (3):NV12
              YYYYYYYY UVUV     =>YUV420SP (dxva 输出 NV12)
          (4):NV21
              YYYYYYYY VUVU     =>YUV420SP (x264/ffmpeg 输入、输出 I420)
        2:YUV422
          (1):YUVY:(实际格式与YUY2相同)


          (2):UYVY:


          (3):YUV422P


        3:YUV444
          (1):YUV444P
              YYYYYYYY  UUUUUUUU VVVVVVVV
   (三):ffmepeg实现
          (1):AVFrame内存关联


         

你可能感兴趣的:(音视频解码)