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內存關聯


          (2):判斷輸入輸出格式


          (3):格式轉換


   (四):擴展分析        

相關文章
相關標籤/搜索