ffmpeg開發(fā)播放器學習筆記 - 認識YUV

該節(jié)是ffmpeg開發(fā)播放器學習筆記的第三節(jié)《認識YUV》

簡單的講YUV是一種圖像和視頻的編碼方式,RGB通過三種顏色來表達現(xiàn)實世界中的各種顏色似炎,YUV通過亮度與色度飽和度來表示顏色账胧。
RGB很好理解,它更直觀。從學生開始就認識繪畫的顏料是用三種顏色調(diào)配來的,汽車的油漆顏色也是RGB三種顏色調(diào)配而來的萨螺。
YUV的出現(xiàn)有它的歷史意義但也是一種必然。它基于人眼對亮度的敏感度比色彩的敏感度更高的特點廊散。Y表示亮度也可以理解在灰度值枣购,最低的亮度就是黑色最高的亮度就是白色娶耍,中間的可呈現(xiàn)出灰色免姿。
在黑白電視機向彩色電視機過渡的年代,黑白電視機只需要YUV中的一個分量Y就可以呈現(xiàn)出黑白畫面。UV分量用在彩色電視機上即可呈現(xiàn)出彩色了伺绽。YUV可以帶來更高的幀內(nèi)壓縮比,由于人眼對黑白更敏感养泡,YUV可以弱化不敏感的信息,減少UV分量的采樣嗜湃。RGB24的每個像素需要3*8個字節(jié),YUV呢奈应?不同的YUV采樣方式壓縮比有所不同。
電視信息使用的是YUV而數(shù)字信息使用的是YCrCb命令购披,以下統(tǒng)稱YUV杖挣。

image

? 第一節(jié) - Hello FFmpeg
? 第二節(jié) - 軟解視頻流,渲染 RGB24
?? 第三節(jié) - 認識YUV ?? 第四節(jié) - 硬解碼,OpenGL渲染YUV
?? 第五節(jié) - Metal 渲染YUV
?? 第六節(jié) - 解碼音頻,使用AudioQueue 播放
?? 第七節(jié) - 音視頻同步
?? 第八節(jié) - 完善播放控制
?? 第九節(jié) - 倍速播放
?? 第十節(jié) - 增加視頻過濾效果
?? 第十一節(jié) - 音頻變聲

實例代碼提供了Objective-CSwift兩種實現(xiàn),為了方便說明,文章引用的是Objective-C代碼,因為Swift代碼指針看著不簡潔。


目標


  • 了解YUV采樣方式
  • 了解YUV存儲方式

了解YUV采樣方式


4:4:4采樣

每一個Y都對應(yīng)一組UV刚陡,這種采樣方式與RGB比較類似惩妇。這種采樣方式保留了所有的細節(jié),亮度與色度都保留了,所以壓縮率很低筐乳,但是好處是還原后的圖像也就完美歌殃。它最要用在對帶寬要求不高并且對圖像質(zhì)量特點是細節(jié)要求高的場景。對于4:4:4的采樣方式來講,采樣編碼與蝙云,存儲氓皱,還原都一樣。
image

4:2:2

4:2:2采樣方式意思就是4個Y對應(yīng)兩組UV勃刨,即2個Y對應(yīng)一組UV的方式進行采樣波材。進行還原的時候也是每相鄰的兩個Y共享一組UV。這樣的采樣方式丟棄了部分色度數(shù)據(jù)身隐,還原的時候共享了色度廷区,大部分圖像或者視頻中不敏感感覺不出來,但是在要求很高邊界清晰的圖像或者視頻里可能會看到原本銳利的邊界變得模糊了贾铝。
image

4:1:1

在原始數(shù)據(jù)保持不變的情況下,4:1:1采樣壓縮率更高隙轻,但是丟棄的色度數(shù)據(jù)也更多,每個4個Y共享一組UV。
image

4:2:0

4:2:0采樣并不是說Y采樣垢揩,U采樣2個V采樣0個玖绿。而是指第一行按2:1的比例采樣2個Y一個U,不采樣V水孩。第二行采樣2個Y兩個V镰矿,不采樣U。
也可以說是水平采樣與垂直采樣俘种。這樣采樣的結(jié)果就是相鄰相關(guān)的兩行按2x2的方式組合成了一個編碼組秤标,每一個2X2包含6個數(shù)據(jù)绝淡,還原成4個像素點組合。

這樣的采樣方式與4:1:1有著相同的壓縮率苍姜。比起4:1:1的采樣方式,丟失的數(shù)據(jù)敏感度更低牢酵。
image

了解YUV存儲方式


除了采樣方式與RGB不一樣,存在方式與RGB也有著差異衙猪,YUV有兩種存儲方式:打包扁平馍乙。 打包存儲: YUV數(shù)據(jù)交叉連續(xù)存儲在一個平面上。 扁平存儲: Y垫释,UV或者Y,U,V分別存儲在不同的平面丝格。
不同的YUV格式有不同的存儲方式,這里以FFmpeg中420P舉例,YUV數(shù)據(jù)分別存儲在三個平面棵譬。他是這樣存儲的:

image

macOS平臺CoreVideo中常見的NV12格式則是下面這種存儲方式:
image

以上就是采樣與存儲的一些基礎(chǔ)知識显蝌。

對YUV有一定了解之后就可以開始渲染YUV數(shù)據(jù)幀了。

總結(jié):


? 認識YUV订咸,了解了YUV的歷史由來曼尊。

? 分別詳細介紹了4種不同的YUV采樣方式,了解了每一種采樣方式的特點與壓縮比

? YUV存儲分兩類,打包與扁平。打包方式是將數(shù)據(jù)存放到一個平臺,可以交叉也可以一個分量數(shù)據(jù)存儲完之后再存另一個分量脏嚷。扁平方式將數(shù)據(jù)分別存到不同的平面骆撇。

更多內(nèi)容請關(guān)注微信公眾號<<程序猿搬磚>>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市父叙,隨后出現(xiàn)的幾起案子神郊,更是在濱河造成了極大的恐慌,老刑警劉巖高每,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屿岂,死亡現(xiàn)場離奇詭異,居然都是意外死亡鲸匿,警方通過查閱死者的電腦和手機爷怀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來带欢,“玉大人运授,你說我怎么就攤上這事∏巧罚” “怎么了吁朦?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長渡贾。 經(jīng)常有香客問我逗宜,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任纺讲,我火速辦了婚禮擂仍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘熬甚。我一直安慰自己逢渔,他們只是感情好,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布乡括。 她就那樣靜靜地躺著肃廓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诲泌。 梳的紋絲不亂的頭發(fā)上盲赊,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機與錄音档礁,去河邊找鬼角钩。 笑死闯睹,一個胖子當著我的面吹牛吱殉,可吹牛的內(nèi)容都是我干的据忘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼羹幸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了辫愉?” 一聲冷哼從身側(cè)響起栅受,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎恭朗,沒想到半個月后屏镊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡痰腮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年而芥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膀值。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡棍丐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出沧踏,到底是詐尸還是另有隱情歌逢,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布翘狱,位于F島的核電站秘案,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜阱高,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一师骗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧讨惩,春花似錦辟癌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至处面,卻和暖如春厂置,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背魂角。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工昵济, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人野揪。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓访忿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親斯稳。 傳聞我的和親對象是個殘疾皇子海铆,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • * 音視頻入門文章目錄 * YUV & YCbCr 簡介 YUV,是一種顏色編碼方法挣惰。常使用在各個視頻處理組件中卧斟。...
    binglingziyu閱讀 660評論 0 1
  • 前言 系列文章:《iOS視頻開發(fā)(一):視頻采集》《iOS視頻開發(fā)(二):視頻H264硬編碼》《iOS視頻開發(fā)(三...
    GenoChen閱讀 7,893評論 6 21
  • 剛開始做camera相關(guān)的開發(fā)時,對YUV_420_888這個格式很懵憎茂,不同平臺的機型珍语,從Image中轉(zhuǎn)換出RGB...
    qiuxintai閱讀 15,197評論 2 11
  • 前言 最近在學習一個開源算法庫:libyuv∈#看到這個名字的時候我很懵逼板乙,“l(fā)ib”自然是靜態(tài)鏈接庫的意思,那么“...
    余敲魚閱讀 907評論 1 0
  • 推薦指數(shù): 6.0 書籍主旨關(guān)鍵詞:特權(quán)赏枚、焦點亡驰、注意力、語言聯(lián)想饿幅、情景聯(lián)想 觀點: 1.統(tǒng)計學現(xiàn)在叫數(shù)據(jù)分析凡辱,社會...
    Jenaral閱讀 5,721評論 0 5