国产午夜片无码区在线观|久久人妻激情|亚洲午夜免费视频|久久国产无码免费新视频

    1. <li id="potfb"><tfoot id="potfb"></tfoot></li>
    <i id="potfb"><del id="potfb"></del></i>
    <label id="potfb"><tfoot id="potfb"></tfoot></label>
    1. <small id="potfb"><progress id="potfb"><listing id="potfb"></listing></progress></small>

    2. 長(zhǎng)沙頭條  >  分享  >  格式nv12和yuy2哪個(gè)更清晰(一文讀懂)
      格式nv12和yuy2哪個(gè)更清晰(一文讀懂)
      2023年08月12日 05:32   瀏覽:1837   來源:心創(chuàng)直播間搭建及設(shè)備

         視頻格式:rgb、i420、yuy2、nv12、mjpeg,采集畫質(zhì)還原排序越往后越差,越靠前對(duì)采集卡和電腦處理能力要求越高。

      YUV 是一種顏色編碼方法,和它等同的還有 RGB 顏色編碼方法。

      RGB 顏色編碼

      RGB 三個(gè)字母分別代表了 紅(Red)、綠(Green)、藍(lán)(Blue),這三種顏色稱為 三原色,將它們以不同的比例相加,可以產(chǎn)生多種多樣的顏色。

      在圖像顯示中,一張 1280 * 720 大小的圖片,就代表著它有 1280 * 720 個(gè)像素點(diǎn)。其中每一個(gè)像素點(diǎn)的顏色顯示都采用 RGB 編碼方法,將 RGB 分別取不同的值,就會(huì)展示不同的顏色。

      QQ截圖20230812053020.jpg

      RGB 圖像中,每個(gè)像素點(diǎn)都有紅、綠、藍(lán)三個(gè)原色,其中每種原色都占用 8 bit,也就是一個(gè)字節(jié),那么一個(gè)像素點(diǎn)也就占用 24 bit,也就是三個(gè)字節(jié)。

      一張 1280 * 720 大小的圖片,就占用 1280 * 720 * 3 / 1024 / 1024 = 2.63 MB 存儲(chǔ)空間。

      YUV 顏色編碼

      YUV 顏色編碼采用的是 明亮度 和 色度 來指定像素的顏色。

      其中,Y 表示明亮度(Luminance、Luma),而 U 和 V 表示色度(Chrominance、Chroma)。

      而色度又定義了顏色的兩個(gè)方面:色調(diào)和飽和度。

      使用 YUV 顏色編碼表示一幅圖像,它應(yīng)該下面這樣的:

      QQ截圖20230812053041.jpg

      和 RGB 表示圖像類似,每個(gè)像素點(diǎn)都包含 Y、U、V 分量。但是它的 Y 和 UV 分量是可以分離的,如果沒有 UV 分量一樣可以顯示完整的圖像,只不過是黑白的。

      對(duì)于 YUV 圖像來說,并不是每個(gè)像素點(diǎn)都需要包含了 Y、U、V 三個(gè)分量,根據(jù)不同的采樣格式,可以每個(gè) Y 分量都對(duì)應(yīng)自己的 UV 分量,也可以幾個(gè) Y 分量共用 UV 分量。

      RGB 到 YUV 的轉(zhuǎn)換

      對(duì)于圖像顯示器來說,它是通過 RGB 模型來顯示圖像的,而在傳輸圖像數(shù)據(jù)時(shí)又是使用 YUV 模型,這是因?yàn)?YUV 模型可以節(jié)省帶寬。因此就需要采集圖像時(shí)將 RGB 模型轉(zhuǎn)換到 YUV 模型,顯示時(shí)再將 YUV 模型轉(zhuǎn)換為 RGB 模型。

      RGB 到 YUV 的轉(zhuǎn)換,就是將圖像所有像素點(diǎn)的 R、G、B 分量轉(zhuǎn)換到 Y、U、V 分量。

      有如下公式進(jìn)行轉(zhuǎn)換:

      QQ截圖20230812053116.jpg

      此時(shí)的轉(zhuǎn)換結(jié)束后,每個(gè)像素點(diǎn)都有完整的 Y、U、V 分量。而之前提到 Y 和 UV 分量是可以分離的,接下來通過不同的采樣方式,可以將圖像的 Y、U、V 分量重新組合。

      接下來的不同采樣格式都是在一張圖像所有像素的 RGB 轉(zhuǎn)換到 YUV 基礎(chǔ)上進(jìn)行的。

      YUV 采樣格式

      YUV 圖像的主流采樣方式有如下三種:

      • YUV 4:4:4 采樣

      • YUV 4:2:2 采樣

      • YUV 4:2:0 采樣

      YUV 4:4:4 采樣

      YUV 4:4:4 采樣,意味著 Y、U、V 三個(gè)分量的采樣比例相同,因此在生成的圖像里,每個(gè)像素的三個(gè)分量信息完整,都是 8 bit,也就是一個(gè)字節(jié)。

      如下圖所示:


      其中,Y 分量用叉表示,UV 分量用圓圈表示。

      舉個(gè)例子 : 假如圖像像素為:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3] 那么采樣的碼流為:Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3 最后映射出的像素點(diǎn)依舊為 [Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]

      可以看到這種采樣方式的圖像和 RGB 顏色模型的圖像大小是一樣,并沒有達(dá)到節(jié)省帶寬的目的,當(dāng)將 RGB 圖像轉(zhuǎn)換為 YUV 圖像時(shí),也是先轉(zhuǎn)換為 YUV 4:4:4 采樣的圖像。

      YUV 4:2:2 采樣

      YUV 4:2:2 采樣,意味著 UV 分量是 Y 分量采樣的一半,Y 分量和 UV 分量按照 2 : 1 的比例采樣。如果水平方向有 10 個(gè)像素點(diǎn),那么采樣了 10 個(gè) Y 分量,而只采樣了 5 個(gè) UV 分量。

      如下圖所示:


      其中,Y 分量用叉表示,UV 分量用圓圈表示。

      舉個(gè)例子 : 假如圖像像素為:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3] 那么采樣的碼流為:Y0 U0 Y1 V1 Y2 U2 Y3 V3 其中,每采樣過一個(gè)像素點(diǎn),都會(huì)采樣其 Y 分量,而 U、V 分量就會(huì)間隔一個(gè)采集一個(gè)。 最后映射出的像素點(diǎn)為 [Y0 U0 V1]、[Y1 U0 V1]、[Y2 U2 V3]、[Y3 U2 V3]

      采樣的碼流映射為像素點(diǎn),還是要滿足每個(gè)像素點(diǎn)有 Y、U、V 三個(gè)分量。但是可以看到,第一和第二像素點(diǎn)公用了 U0、V1 分量,第三和第四個(gè)像素點(diǎn)公用了 U2、V3 分量,這樣就節(jié)省了圖像空間。

      一張 1280 * 720 大小的圖片,在 YUV 4:2:2 采樣時(shí)的大小為:

      (1280 * 720 * 8 1280 * 720 * 0.5 * 8 * 2)/ 8 / 1024 / 1024 = 1.76 MB 。

      可以看到 YUV 4:2:2 采樣的圖像比 RGB 模型圖像節(jié)省了三分之一的存儲(chǔ)空間,在傳輸時(shí)占用的帶寬也會(huì)隨之減少。

      相關(guān)視頻推薦

      音視頻開發(fā)系列-音視頻入門核心知識(shí)精講|視頻為什么會(huì)花屏|音頻為什么容易有雜音|音視頻進(jìn)階需要掌握什么項(xiàng)目_嗶哩嗶哩_bilibili

      60萬年薪音視頻開發(fā)崗位需要掌握哪些技術(shù)點(diǎn)|音視頻編碼算法到底要掌握多少,F(xiàn)Fmpeg命令行、API、源碼分析、流媒體服務(wù)器RTMP/HLS/HTTP-FLV_嗶哩嗶哩_bilibili

      學(xué)習(xí)地址:【免費(fèi)】FFmpeg/WebRTC/RTMP/NDK/Android音視頻流媒體高級(jí)開發(fā)-學(xué)習(xí)視頻教程-騰訊課堂

      需要更多ffmpeg/webrtc..音視頻流媒體開發(fā)學(xué)習(xí)資料加群812855908領(lǐng)取


      YUV 4:2:0 采樣

      YUV 4:2:0 采樣,并不是指只采樣 U 分量而不采樣 V 分量。而是指,在每一行掃描時(shí),只掃描一種色度分量(U 或者 V),和 Y 分量按照 2 : 1 的方式采樣。比如,第一行掃描時(shí),YU 按照 2 : 1 的方式采樣,那么第二行掃描時(shí),YV 分量按照 2:1 的方式采樣。對(duì)于每個(gè)色度分量來說,它的水平方向和豎直方向的采樣和 Y 分量相比都是 2:1 。

      如下圖所示:


      其中,Y 分量用叉表示,UV 分量用圓圈表示。

      假設(shè)第一行掃描了 U 分量,第二行掃描了 V 分量,那么需要掃描兩行才能夠組成完整的 UV 分量。

      舉個(gè)例子 : 假設(shè)圖像像素為: [Y0 U0 V0]、[Y1 U1 V1]、 [Y2 U2 V2]、 [Y3 U3 V3] [Y5 U5 V5]、[Y6 U6 V6]、 [Y7 U7 V7] 、[Y8 U8 V8] 那么采樣的碼流為:Y0 U0 Y1 Y2 U2 Y3 Y5 V5 Y6 Y7 V7 Y8 其中,每采樣過一個(gè)像素點(diǎn),都會(huì)采樣其 Y 分量,而 U、V 分量就會(huì)間隔一行按照 2 : 1 進(jìn)行采樣。 最后映射出的像素點(diǎn)為: [Y0 U0 V5]、[Y1 U0 V5]、[Y2 U2 V7]、[Y3 U2 V7] [Y5 U0 V5]、[Y6 U0 V6]、[Y7 U2 V7]、[Y8 U2 V8]

      從映射出的像素點(diǎn)中可以看到,四個(gè) Y 分量是共用了一套 UV 分量,而且是按照 2*2 的小方格的形式分布的,相比 YUV 4:2:2 采樣中兩個(gè) Y 分量共用一套 UV 分量,這樣更能夠節(jié)省空間。

      一張 1280 * 720 大小的圖片,在 YUV 4:2:0 采樣時(shí)的大小為:

      (1280 * 720 * 8 1280 * 720 * 0.25 * 8 * 2)/ 8 / 1024 / 1024 = 1.32 MB 。

      可以看到 YUV 4:2:0 采樣的圖像比 RGB 模型圖像節(jié)省了一半的存儲(chǔ)空間,因此它也是比較主流的采樣方式。

      YUV 存儲(chǔ)格式

      說完了采樣,接下來就是如何把采樣的數(shù)據(jù)存儲(chǔ)起來。

      YUV 的存儲(chǔ)格式,有兩種:

      • planar 平面格式

      • 指先連續(xù)存儲(chǔ)所有像素點(diǎn)的 Y 分量,然后存儲(chǔ) U 分量,最后是 V 分量。

      • packed 打包模式

      • 指每個(gè)像素點(diǎn)的 Y、U、V 分量是連續(xù)交替存儲(chǔ)的。

      根據(jù)采樣方式和存儲(chǔ)格式的不同,就有了多種 YUV 格式。這些格式主要是基于 YUV 4:2:2 和 YUV 4:2:0 采樣。

      常見的基于 YUV 4:2:2 采樣的格式如下表:


      常見的基于 YUV 4:2:0 采樣的格式如下表:


      更多的 YUV 格式信息參考這里:YUV pixel formats

      基于 YUV 4:2:2 采樣的格式

      YUV 4:2:2 采樣規(guī)定了 Y 和 UV 分量按照 2: 1 的比例采樣,兩個(gè) Y 分量公用一組 UV 分量。

      YUYV 格式

      YUYV 格式是采用打包格式進(jìn)行存儲(chǔ)的,指每個(gè)像素點(diǎn)都采用 Y 分量,但是每隔一個(gè)像素采樣它的 UV 分量,排列順序如下:

      Y0 UO Y1 V0 Y2 U2 Y3 V2

      Y0 和 Y1 公用 U0 V0 分量,Y2 和 Y3 公用 U2 V2 分量….


      UYVY 格式

      UYVY 格式也是采用打包格式進(jìn)行存儲(chǔ),它的順序和 YUYV 相反,先采用 U 分量再采樣 Y 分量,排列順序如下:

      U0 Y0 V0 Y1 U2 Y2 V2 Y3

      Y0 和 Y1 公用 U0 V0 分量,Y2 和 Y3 公用 U2 V2 分量….

      根據(jù) UV 和 Y 的順序還有其他格式,比如,YVYU 格式,VYUY 格式等等,原理大致一樣了。


      YUV 422P 格式

      YUV 422P 格式,又叫做 I422,采用的是平面格式進(jìn)行存儲(chǔ),先存儲(chǔ)所有的 Y 分量,再存儲(chǔ)所有的 U 分量,再存儲(chǔ)所有的 V 分量。

      基于 YUV 4:2:0 采樣的格式

      基于 YUV 4:2:0 采樣的格式主要有 YUV 420P 和 YUV 420SP 兩種類型,每個(gè)類型又對(duì)應(yīng)其他具體格式。

      • YUV 420P 類型

      • YU12 格式

      • YV12 格式

      • YUV 420SP 類型

      • NV12 格式

      • NV21 格式

      YUV 420P 和 YUV 420SP 都是基于 Planar 平面模式 進(jìn)行存儲(chǔ)的,先存儲(chǔ)所有的 Y 分量后, YUV420P 類型就會(huì)先存儲(chǔ)所有的 U 分量或者 V 分量,而 YUV420SP 則是按照 UV 或者 VU 的交替順序進(jìn)行存儲(chǔ)了,具體查看看下圖:

      YUV420SP 的格式:


      YUV420P 的格式:


      YU12 和 YV12 格式

      YU12 和 YV12 格式都屬于 YUV 420P 類型,即先存儲(chǔ) Y 分量,再存儲(chǔ) U、V 分量,區(qū)別在于:YU12 是先 Y 再 U 后 V,而 YV12 是先 Y 再 V 后 U 。

      YV 12 的存儲(chǔ)格式如下圖所示:


      YU 12 又稱作 I420 格式,它的存儲(chǔ)格式就是把 V 和 U 反過來了。

      NV12 和 NV21 格式

      NV12 和 NV21 格式都屬于 YUV420SP 類型。它也是先存儲(chǔ)了 Y 分量,但接下來并不是再存儲(chǔ)所有的 U 或者 V 分量,而是把 UV 分量交替連續(xù)存儲(chǔ)。

      NV12 是 IOS 中有的模式,它的存儲(chǔ)順序是先存 Y 分量,再 UV 進(jìn)行交替存儲(chǔ)。


      NV21 是 安卓 中有的模式,它的存儲(chǔ)順序是先存 Y 分量,在 VU 交替存儲(chǔ)。

      小結(jié)

      以上就是關(guān)于 YUV 的知識(shí)總結(jié),你有看明白了嘛?

      , 每天一個(gè)不一樣的科普!帶您走進(jìn)不一樣的大千世界!專注有料,舍我其誰。


      推薦頭條