通過yuv資料錯位生成僞随機圖像的示例如下:
圖中使用的播放器為YUVPlayer,yuv資料源為akiyo_352x288_30.yuv,資料格式為yuv420。當播放器的圖像尺寸設為352x288時,圖像正常顯示;播放器的圖像尺寸設為340x288時,圖像顯示異常。
背後的原理:
為了友善說明,假設圖像的格式是YUV420 Planar模式,即YUV資料檔案中先存放整張圖像的Y資料(大小為352x288),然後存放U資料(大小為176x144),最後存放V資料(大小為176x144),顯示的時候根據圖像尺寸的設定情況到相應的位置取數即可。
正常顯示:
(1) Y: 352 x 288(Y DATA)
(2) U: 176 x 144(U DATA)
(3) V: 176 x 144(V DATA)
異常顯示:
(1) Y: 340 x 288(Y DATA)
(2) U: 12 x 288(Y DATA) + (176 x 144 - 12 x 288)(U DATA)
(3) V: 12 x 288(U DATA) + (176 x 144 - 12 x 288)(V DATA)
根據取數的情況,可知YUV資料發生錯位,是以顯示異常。
注:YUV播放器的顯示原理是把yuv420轉成yuv444,最後轉成RGB來顯示的。