音視頻之旅 - 基礎(chǔ)知識(shí)

圖像基礎(chǔ)知識(shí)

像素

像素是圖像的基本單元俘侠,一個(gè)個(gè)像素就組成了圖像酌泰。你可以認(rèn)為像素就是圖像中的一個(gè)點(diǎn)购撼。在下面這張圖中跪削,你可以看到一個(gè)個(gè)方塊,這些方塊就是像素

image.png

分辨率

圖像(或視頻)的分辨率是指圖像的大小或尺寸迂求。我們一般用像素個(gè)數(shù)來表示圖像的尺寸碾盐。比如說一張1920x1080的圖像,前者1920指的是該圖像的寬度方向上有1920個(gè)像素點(diǎn)揩局,而后者1080指的是圖像的高 度方向上有1080個(gè)像素點(diǎn)毫玖。

image.png

Stride

Stride也可以稱之為跨距,指的是圖像存儲(chǔ)時(shí)內(nèi)存中每行像素所占用的 空間凌盯「斗悖跨距為了能夠快速讀取一行像素,我們一般會(huì)對(duì)內(nèi)存中的圖像實(shí)現(xiàn)內(nèi)存對(duì)齊十气,比如16字節(jié)對(duì)齊励背。

比如有一張RGB圖像,分辨率是1278x720砸西。我們將它存儲(chǔ)在內(nèi)存當(dāng)中叶眉,一行像素需要 1278x3 = 3834個(gè)字節(jié),3834除以16無法整除芹枷。因此衅疙,沒有16字節(jié)對(duì)齊。所以如果需要對(duì)齊的話鸳慈,我們需 要在3834個(gè)字節(jié)后面填充6個(gè)字節(jié)饱溢,也就是3840個(gè)字節(jié)做16字節(jié)對(duì)齊,這樣這幅圖像的Stride就是3840了走芋。

image.png

圖像顯示格式

RGB

我們看到的彩色圖像中绩郎,都有三個(gè)通道潘鲫,這三個(gè)通道就是R、G肋杖、B通道,(有的時(shí)候還會(huì)有Alpha值溉仑,代表透明度) 通常R、G状植、B各占8個(gè)位浊竟,我們稱這種圖像是8bit圖像。

image.png

YUV

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

  1. YUV解決了彩色電視機(jī)與黑白電視的兼容問題帝簇,它將亮度信息(Y)與色彩信息(UV)分離徘郭,沒有UV信息一樣可以顯示完整的圖像,只不過是黑白的丧肴。

  2. YUV更方便對(duì)視頻信號(hào)進(jìn)行壓縮残揉,占用的帶寬更低。符合人眼的視覺特性芋浮,人眼對(duì)亮度的敏感度要大于紅藍(lán)抱环,所以我們可以保留Y原始值的基礎(chǔ)上,降低U和V的值纸巷,而不影響觀看镇草,從而更加有效的存儲(chǔ)圖像數(shù)據(jù)。

  3. YUV不像RGB那樣要求三個(gè)獨(dú)立的的視頻信號(hào)同時(shí)傳輸瘤旨,所以YUV方式傳送占用極少的頻寬梯啤。

YUV 顏色編碼采用的是 明亮度 和 色度 來指定像素的顏色。其中存哲,Y 表示明亮度(Luminance因宇、Luma),而 U 和 V 表示色度(Chrominance祟偷、Chroma)察滑。YUV主要分為YUV 4:4:4,YUV 4:2:2,YUV 4:2:0幾種常用類型。

image.png

YUV 4:4:4采樣

意味著Y修肠、U贺辰、V三個(gè)分量的采樣比例相同,所以在生成的圖像里,每個(gè)像素的三個(gè)分量信息都是8bit饲化,所以相比RGB顏色模型的圖片大小一樣莽鸭。

YUV 4:2:2采樣

UV分量是Y分量的一半,Y分量和UV分量按照2:1的比例采樣吃靠,如果水平方向有10個(gè)像素點(diǎn)蒋川,那么采樣了10個(gè)Y分量,就只采樣了5個(gè)UV分量撩笆,第一個(gè)像素和第二個(gè)像素共用一個(gè)UV ,相較RGB可以節(jié)省1/3 的空間缸浦,更利于圖像傳輸夕冲。

image.png

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 。 相較RGB 可以節(jié)省1/2的存儲(chǔ)空間拣帽,也是當(dāng)下主流的采樣方式 (Android Camera 預(yù)覽流返回格式)疼电。

音頻基礎(chǔ)知識(shí)

由物理學(xué)可知,復(fù)雜的聲波由許多具有不同振幅和頻率的正弦波組成减拭。代表聲音的模擬信息是個(gè)連續(xù)的量蔽豺,不能由計(jì)算機(jī)直接處理,必須將其數(shù)字化拧粪。數(shù)字聲音信息才能夠像文字和圖形信息一樣進(jìn)行存儲(chǔ)修陡、檢索、編輯和其它處理既们。

image.png

采樣:以適當(dāng)?shù)臅r(shí)間間隔觀測模擬信號(hào)波形不連續(xù)的樣本值替換原來的連續(xù)信號(hào)波形的操作濒析,又稱為取樣 。為了復(fù)原波形啥纸,一次振動(dòng)中号杏,必須有2個(gè)點(diǎn)的采樣,人耳能夠感覺到的最高頻率為20kHz,因此要滿足人耳的聽覺要求盾致,則需要至少每秒進(jìn)行40k次采樣

量化:數(shù)字音頻中主经,把表示聲音強(qiáng)弱的模擬電壓用數(shù)字表示。模擬電壓的幅度庭惜,即使在某電平范圍內(nèi)罩驻,仍然可以有無窮多個(gè),如1.2V,1.21V,1.215V…护赊。而用數(shù)字來表示音頻幅度時(shí)惠遏,只能把無窮多個(gè)電壓幅度用有限個(gè)數(shù)字表示。即把某一幅度范圍內(nèi)的電壓用一個(gè)數(shù)字表示骏啰,這稱之為量化节吮。

編碼: 將量化后的數(shù)據(jù)轉(zhuǎn)為二進(jìn)制

視頻基礎(chǔ)知識(shí)

下圖可以很清晰的說明決定視頻畫質(zhì)的幾個(gè)要素

image.png

分辨率

視頻分辨率又可稱為視頻解析度、解像度判耕,指的是視頻圖像在一個(gè)單位尺寸內(nèi)的精密度透绩。

幀率

在視頻中,一個(gè)幀(Frame)就是指一幅靜止的畫面壁熄。幀率帚豪,就是指視頻每秒鐘包括的畫面數(shù)量(FPS,F(xiàn)rame per second)草丧。

碼率

編碼器每秒編出的數(shù)據(jù)大小狸臣,單位是kbps,比如上圖的3000kbps代表編碼器每秒產(chǎn)生 375kb 的數(shù)據(jù)

編碼

編碼的終極目的方仿,就是為了壓縮固棚。各種視頻編碼方式,都是為了讓視頻變得體積更小仙蚜,有利于存儲(chǔ)和傳輸此洲。

要實(shí)現(xiàn)壓縮,就要設(shè)計(jì)各種算法委粉,將視頻數(shù)據(jù)中的冗余信息去除呜师。

如果一幅圖,全是紅色的贾节,我有沒有必要說2073600次[255,0,0] 汁汗,還是我只要說一次[255,0,0],然后再說2073599次“同上”栗涂?

如果一段視頻知牌,大部分畫面是不動(dòng)的,或者斤程,有80%的圖像面積角寸,整個(gè)過程都是不變的。那么,是不是這塊存儲(chǔ)開銷扁藕,就可以節(jié)約掉了?

基本原理:

空間冗余:圖像相鄰像素之間有較強(qiáng)的相關(guān)性沮峡;

時(shí)間冗余:視頻序列的相鄰圖像之間內(nèi)容相似;

編碼冗余:不同像素值出現(xiàn)的概率不同亿柑;

視覺冗余:人的視覺系統(tǒng)對(duì)某些細(xì)節(jié)不敏感邢疙;

知識(shí)冗余:規(guī)律性的結(jié)構(gòu)可由先驗(yàn)知識(shí)和背景知識(shí)得到。

宏塊

每一幀圖像望薄,又是劃分成一個(gè)個(gè)塊來進(jìn)行編碼的疟游,這一個(gè)個(gè)塊在H264中叫做宏塊,而在VP9痕支、AV1 中稱之為超級(jí)塊乡摹,其實(shí)概念是一樣的。宏塊大小一般是16x16 (H264采转、VP8) , 32x32 (H265、VP9), 64x64 (H265瞬痘、VP9故慈、AV1) , 128x128 (AV1)這幾種。這里提到的H264框全、H265察绷、VP8、VP9和AV1都是市面上常見的編碼標(biāo)準(zhǔn)津辩。

幀類型

幀間預(yù)測需要參考已經(jīng)編碼的幀拆撼,幀間編碼幀可以分為只參考前面幀的前向編碼幀和前后都可以參考的雙向編碼幀。

I幀:是自帶全部信息的獨(dú)立幀喘沿,是最完整的畫面(占用的空間最大)闸度,無需參考其它圖像便可獨(dú)立進(jìn)行解碼。視頻序列中的第一個(gè)幀蚜印,始終都是I幀莺禁。

P幀:“幀間預(yù)測編碼幀”,需要參考前面的I幀和/或P幀的不同部分窄赋,才進(jìn)行編碼哟冬。P幀對(duì)前面的P和I參考幀有依賴性。

B幀:“雙向預(yù)測編碼幀”忆绰,以前幀后幀作為參考幀浩峡。不僅參考前面,還參考后面的幀错敢,所以翰灾,它的壓縮率最高,可以達(dá)到200:1。

如圖预侯,箭頭是從參考幀指向編碼幀

image.png

GOP(序列)和IDR

在H264中圖像以序列為單位進(jìn)行組織致开,一個(gè)序列是一段圖像編碼后的數(shù)據(jù)流。

一個(gè)序列的第一個(gè)圖像叫做 IDR 圖像(立即刷新圖像)萎馅,IDR 圖像都是 I 幀圖像双戳。H.264 引入 IDR 圖像是為了解碼的重同步,當(dāng)解碼器解碼到 IDR 圖像時(shí)糜芳,立即將參考幀隊(duì)列清空飒货,將已解碼的數(shù)據(jù)輸出或拋棄,重新查找參數(shù)集峭竣,開始一個(gè)新的序列塘辅。如果前一個(gè)序列出現(xiàn)重大錯(cuò)誤,在這里可以獲得重新同步的機(jī)會(huì)皆撩。IDR圖像之后的圖像永遠(yuǎn)不會(huì)使用IDR之前的圖像的數(shù)據(jù)來解碼扣墩。

一個(gè)序列就是一段內(nèi)容差異不大的圖像編碼后生成的一串?dāng)?shù)據(jù)流。當(dāng)運(yùn)動(dòng)變化比較少時(shí)扛吞,一個(gè)序列可以很長呻惕,所可以編一個(gè)I幀,然后一直P幀滥比、B幀了亚脆。當(dāng)運(yùn)動(dòng)變化多時(shí),可能一個(gè)序列就比較短了盲泛,比如就包含一個(gè)I幀和1濒持、2個(gè)P幀。

在視頻編碼序列中寺滚,GOP即Group of picture(圖像組)柑营,指兩個(gè)I幀之間的距離,Reference(參考周期)指兩個(gè)P幀之間的距離村视。兩個(gè)I幀之間形成一組圖片由境,就是GOP(Group Of Picture)。

PTS和DTS

如果IBP數(shù)據(jù)流并非有序返回蓖议,存在先到的B虏杰、P幀等I幀的情況,就需要引入 PTS和DTS概念

DTS(Decoding Time Stamp):即解碼時(shí)間戳勒虾,這個(gè)時(shí)間戳的意義在于告訴播放器該在什么時(shí)候解碼這一幀的數(shù)據(jù)纺阔。

PTS(Presentation Time Stamp):即顯示時(shí)間戳,這個(gè)時(shí)間戳用來告訴播放器該在什么時(shí)候顯示這一幀的數(shù)據(jù)修然。

假設(shè)編碼器采集到的幀是這個(gè)樣子的:I B B P B B P 1 2 3 4 5 6 7

假設(shè) 編碼器的編碼順序是: I P B B P B B 1 4 2 3 7 5 6

接收端 根據(jù)PTS 顯示對(duì)應(yīng)的數(shù)據(jù)

參考鏈接

https://blog.csdn.net/u012124438/article/details/123385424

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末笛钝,一起剝皮案震驚了整個(gè)濱河市质况,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌玻靡,老刑警劉巖结榄,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異囤捻,居然都是意外死亡臼朗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門蝎土,熙熙樓的掌柜王于貴愁眉苦臉地迎上來视哑,“玉大人,你說我怎么就攤上這事誊涯〉惨悖” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵暴构,是天一觀的道長跪呈。 經(jīng)常有香客問我,道長取逾,這世上最難降的妖魔是什么庆械? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮菌赖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘沐序。我一直安慰自己琉用,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布策幼。 她就那樣靜靜地躺著邑时,像睡著了一般。 火紅的嫁衣襯著肌膚如雪特姐。 梳的紋絲不亂的頭發(fā)上晶丘,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音唐含,去河邊找鬼浅浮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛捷枯,可吹牛的內(nèi)容都是我干的滚秩。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼淮捆,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼郁油!你這毒婦竟也來了本股?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤桐腌,失蹤者是張志新(化名)和其女友劉穎拄显,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體案站,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡躬审,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嚼吞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盒件。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖舱禽,靈堂內(nèi)的尸體忽然破棺而出炒刁,到底是詐尸還是另有隱情,我是刑警寧澤誊稚,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布翔始,位于F島的核電站,受9級(jí)特大地震影響里伯,放射性物質(zhì)發(fā)生泄漏城瞎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一疾瓮、第九天 我趴在偏房一處隱蔽的房頂上張望脖镀。 院中可真熱鬧,春花似錦狼电、人聲如沸蜒灰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽强窖。三九已至,卻和暖如春削祈,著一層夾襖步出監(jiān)牢的瞬間翅溺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工髓抑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咙崎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓吨拍,卻偏偏與公主長得像叙凡,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子密末,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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