視頻編解碼芯片設(shè)計(jì)原理----01 概論
本系列主要介紹視頻編解碼芯片的設(shè)計(jì),以HEVC視頻編碼標(biāo)準(zhǔn)為基礎(chǔ),簡(jiǎn)要介紹編解碼芯片的整體硬件架構(gòu)設(shè)計(jì)以及各核心模塊的算法優(yōu)化與硬件流水線設(shè)計(jì)。本文為概論部分,將簡(jiǎn)單介紹圖像視頻的基本信息和視頻編碼的基礎(chǔ)知識(shí)。
隨著信息時(shí)代的高速發(fā)展,視頻已經(jīng)成為了不可或缺的信息載體。為了便于對(duì)視頻進(jìn)行存儲(chǔ)和傳輸,實(shí)際應(yīng)用中必須對(duì)龐大的視頻數(shù)據(jù)量進(jìn)行壓縮,即視頻編碼 (Video Coding)。
1視頻的組成
幀
視頻是按照一定時(shí)間間隔采集的靜止圖像序列,一幅圖像也被稱為一幀 (frame)。
像素
在空間維度上,一幀圖像可以視為一個(gè)像素 (pixel) 點(diǎn)陣,像素是圖像不可分割的最小單位。
分辨率
像素的行列數(shù)用于表示圖像的(空間)分辨率。對(duì)于面積相同的圖像,分辨率越高,圖像細(xì)節(jié)越清晰。
幀率
每秒包含的幀數(shù)被稱為幀率,單位為fps (frame per second)。幀率更高的視頻能夠給人更加平滑連貫的視覺(jué)體驗(yàn),能夠流暢地顯示高速運(yùn)動(dòng)的視頻。
場(chǎng)
為了節(jié)約傳輸帶寬,或者提高時(shí)間采樣率,可以將一幀分為兩個(gè)場(chǎng)(field) 分別掃描。先掃描所有奇數(shù)行構(gòu)成頂場(chǎng),再掃描所有偶數(shù)行構(gòu)成底場(chǎng)。
量化空間
像素的幅度值如果用n比特進(jìn)行表示,則稱量化深度為n。要采集或呈現(xiàn)高動(dòng)態(tài)范圍 (HDR) 的圖像,就需要較大的量化深度。
碼率
碼率又稱比特率,是指單位時(shí)間傳送數(shù)據(jù)的比特?cái)?shù),單位為bps (bit per second)。常見(jiàn)單位有每秒千比特 (kbps)、每秒兆比特 (Mbps) 等。
2色彩空間
RGB色彩空間
根據(jù)三基色原理,自然界中的絕大部分色彩,都可以由三種基色按一定比例混合得到;反之,任意一種色彩均可被分解為三種基色。其中,人眼對(duì)紅 (R)、綠 (G)、藍(lán) (B) 三種顏色最為敏感,而采用這三種基色表示色彩的方法,即為RGB色彩空間。顏色是由亮度 (luma) 和色度 (chroma) 共同表示的,色度反映的是不包括亮度在內(nèi)的色彩信息。但是,RGB色彩空間的三個(gè)分量值均與亮度相關(guān),一旦亮度發(fā)生改變,三個(gè)分量的值均會(huì)相應(yīng)改變,因此RGB色彩空間并非圖像處理的最佳選擇。
YUV色彩空間
YUV色彩空間使用1個(gè)亮度分量 (Y) 和兩個(gè)色度分量 (U、V) 來(lái)表示像素。在YUV家族中,YCbCr是應(yīng)用最為廣泛的,其中Cb指藍(lán)色色度分量,Cr指紅色色度分量。相較于亮度,人眼對(duì)色度的敏感程度更低,因此可以適當(dāng)降低色度的采樣精度來(lái)節(jié)約比特?cái)?shù),即色度亞采樣。下圖展現(xiàn)了常見(jiàn)視頻采樣格式中,亮度和色度樣本的位置分布。以4:2:0格式 (YUV420) 為例,色度在垂直、水平方向上的采樣精度,均只有亮度采樣精度的1/2。
3數(shù)據(jù)冗余
視頻中存在著大量的冗余,而視頻編碼本質(zhì)上就是要消除這些冗余,從而實(shí)現(xiàn)對(duì)視頻數(shù)據(jù)的壓縮。各種類(lèi)型的冗余為圖像序列的編碼壓縮提供了廣闊的空間。
目前廣泛應(yīng)用的混合編碼架構(gòu),就基于不同的冗余提出了許多編碼工具,如基于空間冗余的幀內(nèi)預(yù)測(cè),基于時(shí)間冗余的幀間預(yù)測(cè),基于視覺(jué)冗余的量化,基于信息熵冗余的熵編碼,以及基于數(shù)學(xué)的變換等等。
4編碼層次
對(duì)于視頻編解碼而言,編碼單元反映了處理的基本單位。目前,塊級(jí)編碼在視頻編碼算法中使用得最為廣泛。為了組織編解碼的架構(gòu),定義了如下圖所示的編碼層次,依次為序列、圖像組、幀/圖像、切片、編碼單元(塊/子塊)。編碼過(guò)程按照編碼層次,逐層深入、依次進(jìn)行。而解碼過(guò)程則是編碼的逆過(guò)程。