如何去ppt上的log?(如何去ppt上的水印文字)
1049
2022-05-29
引言:最近為FPGA驗證做圖片生成器,檢索了多種圖片格式的介紹文檔,這里做一個總結,希望對剛接觸數字圖像處理的新同事有所幫助。本系列分三部分,介紹工作中常見的YUV、RAW等各種圖片格式,不求艱深晦澀,但求簡潔明了。
本文是第二部分:YUV?什么鬼?à so easy!
1????? YUV簡介
與RGB類似,YUV也是3個分量的組合,其中Y表示明亮度,也就是灰度值;U和V表示色彩(色度)。YUV等同于YCbCr,其中Cb是Component blue的縮寫,即藍色分量,表示輸入信號藍色部分與亮度值之間的差異,Cr是Component red的縮寫,即紅色分量,表示輸入信號紅色部分與亮度值之間的差異。
可見YUV實現了亮度信號Y與色度信號U/V的分離,可以獨立存儲和傳輸,另外可以根據人眼特性進行壓縮采樣(下采樣),從而顯著降低圖像存儲容量及傳輸帶寬。
研究表明,人眼對亮度的敏感超過色度,色度信息減少一點,人眼幾乎難以察覺。基于此,人們保留了每個像素點的亮度Y信息,對UV信息進行隔行或隔列采樣(多像素共享一個U分量和V分量);按照不同的采樣率,衍生出YUV4:4:4、YUV4:2:2和YUV4:2:0三種常見格式。
2????? YUV444
YUV444格式是YUV4:4:4的簡寫,表示Y:U:V=4:4:4,即沒有壓縮采樣,每一個像素的YUV三分量都得到保留。
3????? YUV422
YUV422格式是YUV4:2:2的簡寫,表示Y:U:V=4:2:2,從字面上看,即相鄰的4個像素點除了保留4個Y分量,另外只保留2個U分量和2個V分量。實際表現在整幅圖像上,就是每行像素中,隔列丟棄一組UV信息,下圖中黑點表示像素點的Y分量,空心圓表示采用該像素點的UV分量:
按照YUV分量存儲順序不同,又分為YUYV、UYVY和YUV422P三種格式:
3.1????? YUYV
為了一目了然,以2行x4列像素點為例,以下為采樣壓縮前的數據,下標為像素點序號:
上圖中兩個相鄰的像素組成一個宏像素(Macro-Pixel),如紅框所示為第一個宏像素。第一個宏像素經4:2:2采樣壓縮后,只保留Y0、Y1、U0和V0,如果存儲順序為Y0U0Y1V0,這種存儲格式就是YUYV(有的文檔也稱YUY2)。依此類推,上述8個像素采樣后的數據排列如下:
相應的存儲順序為:Y0U0Y1V0 ?Y2U2Y3V2 ?Y4U4Y5V4 ?Y6U6Y7V6
進而可以擴展到1024*768分辨率及更大尺寸的YUYV圖片。
3.2????? UYVY
與YUYV類似,只是每個宏像素內部YUV分量存儲的順序不同,按照UYVY的順序存儲,就叫UYVY格式(顧名思義)。
同樣以上述2行x4列像素點為例,則采樣后的數據排列如下
相應的存儲順序為:U0Y0V0Y1 ?U2Y2V2Y3 ?U4Y4V4Y5 ?U6Y6V6Y7
進而可以擴展到1024*768分辨率及更大尺寸的UYVY圖片。
3.3????? YUV422P
上述兩種格式都是packed存儲方式,即每個宏像素點的YUV分量都是打包起來逐個包進行存儲。YUV422P格式與此不同,這里的P是planar的縮寫,即平面存儲方式,分Y/U/V三個平面分別存儲:先連續存儲所有像素點的Y,緊接著存儲所有像素點的U,最后是所有像素點的V。
同樣以上述2行x4列像素點為例,采樣后的數據存儲順序為:
Y0Y1Y2Y3Y4Y5Y6Y7? U0U2U4U6? V0V2V4V6
進而可以擴展到1024*768分辨率及更大尺寸的YUV422P圖片。
4????? YUV420
YUV420格式是YUV4:2:0的簡寫,但并不表示整幅圖像中Y:U:V的采樣率為4:2:0,即并不表示丟棄了所有V分量。而是表示在某一行中丟棄所有V分量,此行內Y:U:V=4:2:0,但在緊鄰的下一行中保留一半V分量,丟棄所有U分量,此行內Y:U:V=4:0:2。從整幅圖上看,所有Y分量被保留,每個2x2小窗口構成一個宏像素(Macro-Pixel),共享一個UV分量,如下圖所示,黑色實心圓代表Y,空心圓代表UV:
按照YUV分量存儲順序不同,又分為I420、YV12、NV12、NV21四種格式:
4.1????? I420
I420屬于420P中的一種,即平面存儲方式:Y、U、V三分量分開獨立存儲。先存儲所有Y,然后U,最后是V。同樣以上述2行x4列像素點矩陣為例:
采樣后I420格式圖片數據的存儲順序為:
Y0Y1Y2Y3Y4Y5Y6Y7? U0U2? V4V6
進而可以擴展到1024*768分辨率及更大尺寸的I420圖片。
4.2????? YV12
YV12也屬于420P中的一種,即平面存儲方式:Y、U、V三分量分開獨立存儲。但UV分量存儲順序調換,先存儲所有Y,然后V,最后是U。同樣以上述2行x4列像素點矩陣為例:
采樣后YV21格式圖片數據的存儲順序為:
Y0Y1Y2Y3Y4Y5Y6Y7? V4V6? ??U0U2
進而可以擴展到1024*768分辨率及更大尺寸的YV12圖片。
4.3????? NV12
NV12屬于YUV420sp中的一種,這里的sp是semi-planar的縮寫,即半平面存儲方式:不再是3個平面,而是兩個平面——Y平面和UV平面,分別獨立存儲Y分量和UV分量。先存儲所有Y,然后UV平面中UV交錯存儲。同樣以上述2行x4列像素點矩陣為例:
采樣后NV12格式圖片數據的存儲順序為:
Y0Y1Y2Y3Y4Y5Y6Y7? U0V4U2V6
進而可以擴展到1024*768分辨率及更大尺寸的NV12圖片。
4.4????? NV21
NV21也屬于YUV420sp中的一種,先存儲所有Y,然后UV平面中UV交錯存儲,與NV12不同的是UV平面中UV分量先后順序是顛倒的。同樣以上述2行x4列像素點矩陣為例:
采樣后NV21格式圖片數據的存儲順序為:
Y0Y1Y2Y3Y4Y5Y6Y7? V4U0V6U2
進而可以擴展到1024*768分辨率及更大尺寸的NV21圖片。
5????? Y8
最后提一下最簡單的Y8格式,顧名思義,就是每個像素點只保存Y分量,每個Y分量用8個bit位表示,取值為0-255。這與我們上篇提到的單通道256階灰度圖非常類似,是YUV色彩空間中的灰度圖。
另外澄清一下,檢索國外文獻的時候要注意,他們稱這種格式為Luma 8bits。
OK,常用的YUV格式基本介紹完了,希望對大家有幫助。后面敬請關注《圖樣 too simple》系列之三:RAW10? 12? 14? bggr? 原來如此原始+土豪!
其他
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。