圖像基礎(chǔ)知識
像素
像素是圖像的基本單元,一個個像素就組成了圖像。你可以認為像素就是圖像中的一個點。在下面這張圖中,你可以看到一個個方塊,這些方塊就是像素
分辨率
圖像(或視頻)的分辨率是指圖像的大小或尺寸。我們一般用像素個數(shù)來表示圖像的尺寸。比如說一張1920x1080的圖像,前者1920指的是該圖像的寬度方向上有1920個像素點,而后者1080指的是圖像的高?度方向上有1080個像素點。
Stride
Stride也可以稱之為跨距,指的是圖像存儲時內(nèi)存中每行像素所占用的?空間??缇酁榱四軌蚩焖僮x取一行像素,我們一般會對內(nèi)存中的圖像實現(xiàn)內(nèi)存對齊,比如16字節(jié)對齊。
比如有一張RGB圖像,分辨率是1278x720。我們將它存儲在內(nèi)存當中,一行像素需要?1278x3?=?3834個字節(jié),3834除以16無法整除。因此,沒有16字節(jié)對齊。所以如果需要對齊的話,我們需?要在3834個字節(jié)后面填充6個字節(jié),也就是3840個字節(jié)做16字節(jié)對齊,這樣這幅圖像的Stride就是3840了。
圖像顯示格式
RGB
我們看到的彩色圖像中,都有三個通道,這三個通道就是R、G、B通道,(有的時候還會有Alpha值,代表透明度)?通常R、G、B各占8個位,我們稱這種圖像是8bit圖像。
YUV
對于圖像顯示器來說,它是通過RGB模型來顯示圖像的。而在傳輸圖像數(shù)據(jù)時是使用YUV模型的,因為YUV模型可以節(jié)省帶寬。所以就需要采集圖像時將RGB模型轉(zhuǎn)換到Y(jié)UV模型,顯示時再將YUV模型轉(zhuǎn)換為RGB模型。
1.?YUV解決了彩色電視機與黑白電視的兼容問題,它將亮度信息(Y)與色彩信息(UV)分離,沒有UV信息一樣可以顯示完整的圖像,只不過是黑白的。
2.?YUV更方便對視頻信號進行壓縮,占用的帶寬更低。符合人眼的視覺特性,人眼對亮度的敏感度要大于紅藍,所以我們可以保留Y原始值的基礎(chǔ)上,降低U和V的值,而不影響觀看,從而更加有效的存儲圖像數(shù)據(jù)。
3.?YUV不像RGB那樣要求三個獨立的的視頻信號同時傳輸,所以YUV方式傳送占用極少的頻寬。
YUV?顏色編碼采用的是?明亮度?和?色度?來指定像素的顏色。其中,Y?表示明亮度(Luminance、Luma),而?U?和?V?表示色度(Chrominance、Chroma)。YUV主要分為YUV?4:4:4,YUV?4:2:2,YUV?4:2:0幾種常用類型。
YUV?4:4:4采樣
意味著Y、U、V三個分量的采樣比例相同,所以在生成的圖像里,每個像素的三個分量信息都是8bit,所以相比RGB顏色模型的圖片大小一樣。
YUV?4:2:2采樣
UV分量是Y分量的一半,Y分量和UV分量按照2:1的比例采樣,如果水平方向有10個像素點,那么采樣了10個Y分量,就只采樣了5個UV分量,第一個像素和第二個像素共用一個UV?,相較RGB可以節(jié)省1/3?的空間,更利于圖像傳輸。
YUV?4:2:0采樣
YUV?4:2:0?采樣,并不是指只采樣?U?分量而不采樣?V?分量。而是指,在每一行掃描時,只掃描一種色度分量(U?或者?V),和?Y?分量按照?2?:?1?的方式采樣。比如,第一行掃描時,YU?按照?2?:?1?的方式采樣,那么第二行掃描時,YV?分量按照?2:1?的方式采樣。對于每個色度分量來說,它的水平方向和豎直方向的采樣和?Y?分量相比都是?2:1?。 相較RGB?可以節(jié)省1/2的存儲空間,也是當下主流的采樣方式?(Android?Camera?預覽流返回格式)。
音頻基礎(chǔ)知識
由物理學可知,復雜的聲波由許多具有不同振幅和頻率的正弦波組成。代表聲音的模擬信息是個連續(xù)的量,不能由計算機直接處理,必須將其數(shù)字化。數(shù)字聲音信息才能夠像文字和圖形信息一樣進行存儲、檢索、編輯和其它處理。
采樣:以適當?shù)臅r間間隔觀測模擬信號波形不連續(xù)的樣本值替換原來的連續(xù)信號波形的操作,又稱為取樣?。為了復原波形,一次振動中,必須有2個點的采樣,人耳能夠感覺到的最高頻率為20kHz,因此要滿足人耳的聽覺要求,則需要至少每秒進行40k次采樣
量化:數(shù)字音頻中,把表示聲音強弱的模擬電壓用數(shù)字表示。模擬電壓的幅度,即使在某電平范圍內(nèi),仍然可以有無窮多個,如1.2V,1.21V,1.215V…。而用數(shù)字來表示音頻幅度時,只能把無窮多個電壓幅度用有限個數(shù)字表示。即把某一幅度范圍內(nèi)的電壓用一個數(shù)字表示,這稱之為量化。
編碼:?將量化后的數(shù)據(jù)轉(zhuǎn)為二進制
視頻基礎(chǔ)知識
下圖可以很清晰的說明決定視頻畫質(zhì)的幾個要素
分辨率
視頻分辨率又可稱為視頻解析度、解像度,指的是視頻圖像在一個單位尺寸內(nèi)的精密度。
幀率
在視頻中,一個幀(Frame)就是指一幅靜止的畫面。幀率,就是指視頻每秒鐘包括的畫面數(shù)量(FPS,F(xiàn)rame?per?second)。
碼率
編碼器每秒編出的數(shù)據(jù)大小,單位是kbps,比如上圖的3000kbps代表編碼器每秒產(chǎn)生?375kb?的數(shù)據(jù)
編碼
編碼的終極目的,就是為了壓縮。各種視頻編碼方式,都是為了讓視頻變得體積更小,有利于存儲和傳輸。
要實現(xiàn)壓縮,就要設計各種算法,將視頻數(shù)據(jù)中的冗余信息去除。
如果一幅圖,全是紅色的,我有沒有必要說2073600次[255,0,0]?,還是我只要說一次[255,0,0],然后再說2073599次“同上”?
如果一段視頻,大部分畫面是不動的,或者,有80%的圖像面積,整個過程都是不變的。那么,是不是這塊存儲開銷,就可以節(jié)約掉了?
基本原理:
空間冗余:圖像相鄰像素之間有較強的相關(guān)性;
時間冗余:視頻序列的相鄰圖像之間內(nèi)容相似;
編碼冗余:不同像素值出現(xiàn)的概率不同;
視覺冗余:人的視覺系統(tǒng)對某些細節(jié)不敏感;
知識冗余:規(guī)律性的結(jié)構(gòu)可由先驗知識和背景知識得到。
宏塊
每一幀圖像,又是劃分成一個個塊來進行編碼的,這一個個塊在H264中叫做宏塊,而在VP9、AV1?中稱之為超級塊,其實概念是一樣的。宏塊大小一般是16x16?(H264、VP8)?,?32x32?(H265、VP9),?64x64?(H265、VP9、AV1)?,?128x128?(AV1)這幾種。這里提到的H264、H265、VP8、VP9和AV1都是市面上常見的編碼標準。
幀類型
幀間預測需要參考已經(jīng)編碼的幀,幀間編碼幀可以分為只參考前面幀的前向編碼幀和前后都可以參考的雙向編碼幀。
I幀:是自帶全部信息的獨立幀,是最完整的畫面(占用的空間最大),無需參考其它圖像便可獨立進行解碼。視頻序列中的第一個幀,始終都是I幀。
P幀:“幀間預測編碼幀”,需要參考前面的I幀和/或P幀的不同部分,才進行編碼。P幀對前面的P和I參考幀有依賴性。
B幀:“雙向預測編碼幀”,以前幀后幀作為參考幀。不僅參考前面,還參考后面的幀,所以,它的壓縮率最高,可以達到200:1。
如圖,箭頭是從參考幀指向編碼幀
GOP(序列)和IDR
在H264中圖像以序列為單位進行組織,一個序列是一段圖像編碼后的數(shù)據(jù)流。
一個序列的第一個圖像叫做?IDR?圖像(立即刷新圖像),IDR?圖像都是?I?幀圖像。H.264?引入?IDR?圖像是為了解碼的重同步,當解碼器解碼到?IDR?圖像時,立即將參考幀隊列清空,將已解碼的數(shù)據(jù)輸出或拋棄,重新查找參數(shù)集,開始一個新的序列。如果前一個序列出現(xiàn)重大錯誤,在這里可以獲得重新同步的機會。IDR圖像之后的圖像永遠不會使用IDR之前的圖像的數(shù)據(jù)來解碼。
一個序列就是一段內(nèi)容差異不大的圖像編碼后生成的一串數(shù)據(jù)流。當運動變化比較少時,一個序列可以很長,所可以編一個I幀,然后一直P幀、B幀了。當運動變化多時,可能一個序列就比較短了,比如就包含一個I幀和1、2個P幀。
在視頻編碼序列中,GOP即Group?of?picture(圖像組),指兩個I幀之間的距離,Reference(參考周期)指兩個P幀之間的距離。兩個I幀之間形成一組圖片,就是GOP(Group?Of?Picture)。
PTS和DTS
如果IBP數(shù)據(jù)流并非有序返回,存在先到的B、P幀等I幀的情況,就需要引入?PTS和DTS概念
DTS(Decoding?Time?Stamp):即解碼時間戳,這個時間戳的意義在于告訴播放器該在什么時候解碼這一幀的數(shù)據(jù)。
PTS(Presentation?Time?Stamp):即顯示時間戳,這個時間戳用來告訴播放器該在什么時候顯示這一幀的數(shù)據(jù)。
假設編碼器采集到的幀是這個樣子的:I?B?B?P?B?B?P???1?2?3?4?5?6?7
假設?編碼器的編碼順序是:??I?P?B?B?P?B?B?????1?4?2?3?7?5?6
接收端?根據(jù)PTS?顯示對應的數(shù)據(jù)文章來源:http://www.zghlxwxcb.cn/news/detail-755967.html
參考鏈接
https://blog.csdn.net/u012124438/article/details/123385424文章來源地址http://www.zghlxwxcb.cn/news/detail-755967.html
到了這里,關(guān)于音視頻之旅 - 基礎(chǔ)知識的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!