當(dāng)前位置:全球供應(yīng)網(wǎng) > 技術(shù)中心 > 所有分類
本公司是是一家從事鄭州監(jiān)控設(shè)計、鄭州監(jiān)控安裝、鄭州監(jiān)控維修的專業(yè)監(jiān)控安裝公司,對于監(jiān)控圖像編碼技術(shù)有一定的了解,讓監(jiān)控安裝的從業(yè)人員更好的了解監(jiān)控系統(tǒng)的基本原理,在進(jìn)行監(jiān)控系統(tǒng)初步設(shè)計、安裝時能更好的完善系統(tǒng)。下面介紹下視頻(動態(tài)圖像)編碼壓縮原理:
視頻壓縮的必要性
前面介紹了靜態(tài)圖像壓縮技術(shù),而在視頻監(jiān)控系統(tǒng)應(yīng)用中,圖像是動態(tài)的視頻序列,為實現(xiàn)動態(tài)視頻監(jiān)控系統(tǒng)圖像的實時傳輸與存儲,需要進(jìn)行視頻數(shù)據(jù)的編碼壓縮。再次強(qiáng)調(diào)一下視頻編碼壓縮的必要性,以352X288像素的視頻為例,單幀畫面數(shù)據(jù)量大小如下:
如果采用4:2:0格式,352X288X12=1216512=1.2Mbit
如果采用4:4:4格式,352X288X24=2433024=2.4Mbit
對于實時25幀/秒的碼流,即使采用4:2:0格式,碼流可以達(dá)到30Mbps(1.2MbpsX25幀/秒),這是目前的網(wǎng)絡(luò)環(huán)境根本無法支撐的,而另外一個方面,錄像一個小時需要存儲空間為108G(30MbpsX3600s),是標(biāo)準(zhǔn)DVD-R存儲容量的20倍。因此,視頻壓縮是必須的。所謂壓縮就是采用特定的算法,將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種形態(tài),使得轉(zhuǎn)換后的數(shù)據(jù)量遠(yuǎn)小于轉(zhuǎn)換前的數(shù)據(jù)量,并且可恢復(fù)(或部分恢復(fù))。視頻壓縮就是采用某種壓縮方法將原始監(jiān)控安裝場景的圖像數(shù)據(jù)流進(jìn)行壓縮,再對壓縮后形成的數(shù)據(jù)流進(jìn)行傳輸或存儲。
視頻壓縮的可行性
攜帶信息的信號可以被壓縮,壓縮成比原始信號所需要更少的比特數(shù)的格式或表達(dá)方式,對原始信號進(jìn)行壓縮的軟件或硬件叫編碼器,而解壓縮的設(shè)備或程序叫。視頻壓縮的主要方法是對時間域冗余和空間域冗余進(jìn)行壓縮。在時間域冗余中,主要體現(xiàn)在相鄰視頻幀之間的相關(guān)性,而空間域冗余,主要體現(xiàn)在同一視頻幀中,相鄰區(qū)域多像素之間的相關(guān)性。
空間冗余
這是圖像數(shù)據(jù)中經(jīng)常存在的一種冗余。在同一副圖像中,規(guī)則物體和規(guī)則背景的表面物理特性具有相關(guān)性,這些相關(guān)性的光成像結(jié)構(gòu)在數(shù)字化圖像中就是表現(xiàn)為空間冗余。
時間冗余
這是序列圖像和語音數(shù)據(jù)中經(jīng)常包含的冗余,圖像序列中的兩幅相鄰的圖像之間有較大的相關(guān)性,這反映為時間冗余;在語言中,由于人說話時發(fā)音的音頻是一連續(xù)的漸變過程,而不是一個時間上獨立的過程,因而存在時間冗余。
視覺冗余
人類視覺系統(tǒng)并不是對任何圖像的變化都很敏感,人眼對于圖像的注意是非均勻的。事實上人類視覺系統(tǒng)一般分辨能力為64灰度等級,而一般圖像量化采用256灰度等級,這類冗余我們稱為視覺冗余。
圖像格式說明
圖像通用格式CIF
為了使現(xiàn)行各種電視制式,即PAL、NTSC、SECAM制的圖像,能比較容易地轉(zhuǎn)換成電視電話的圖像格式,既便于相互轉(zhuǎn)換,又考慮到位率較低,采用通用中間格式CIF(Common Intermediate Format)。
CIF格式規(guī)定圖像亮度分量Y的橫向像素為352個,縱向像素為288個。圖像色度分量Cr、Cb的縱橫像素數(shù)為亮度分量的一半。為了使圖像尺寸的縱橫比為3:4,與常規(guī)電視屏幕尺寸比例一致,所以像素的縱橫比為:
像素縱橫比=縱:橫=3/288:4/352=11:12
可見像素的縱橫比為11:12,接近于方形。
CIF格式圖像層次結(jié)構(gòu)
通常,視頻編碼算法把輸入的CIF和QCIF格式的視頻分成一系列以“塊”為基礎(chǔ)的層次結(jié)構(gòu),分別為圖像(Picture)、塊組(GOB)、宏塊(MB)和塊(Block)四個層次。每個宏塊由4個8X8的亮度塊和2個8X8的色度塊(Cr和Cb各一個)組成,一個塊組由3X11個宏塊組成,一個QCIF圖像由3個GOB組成,一個CIF圖像則包含12個GOB。
圖像宏塊與塊說明
在視頻編碼過程中,為使算法處理單元高效處理,通常把每幀監(jiān)控安裝場景圖像分成宏塊及塊,例如對于CIF圖像,將每幀圖像分成22X18個宏塊(MB),而每個宏塊包含6個子塊(Block),其中包含4個8X8的亮度快及2個8X8的色度塊(4:4:4取樣時)。宏塊是進(jìn)行運動補(bǔ)償(視頻編碼關(guān)鍵技術(shù))的基本單位。
在4:2:0取樣格式時,圖中共有6個8X8像素塊,亮度Y占4塊,色度Cb和Cr各占1塊。亮度Y的圖像區(qū)域與色度Cb或Cr的圖像區(qū)域面積相等并重合。因為色度Cb、Cr的像素數(shù)量少,故清晰度較低,但不影響人眼的主觀視覺感受,因為人眼對色度的敏感程度低。在處理監(jiān)控安裝場景圖像時,按圖中各8X8方塊的編號次序處理。塊是碼流的層,每個塊是一個8X8像素的數(shù)據(jù)矩陣。每個塊中只含有一種信號元素,即它或是亮度數(shù)據(jù)矩陣,或是某種色度數(shù)據(jù)矩陣。注意“塊”是進(jìn)行DCT運算的基本單位,“宏塊”在進(jìn)行DCT運算之前要被分成若干個塊。
視頻壓縮比計算舉例
根據(jù)圖像格式及信道指標(biāo),可以計算出所需的視頻編碼壓縮比。
例如:若采用CIF圖像格式,采樣格式為4:2:0,采用8位像素深度,幀率取25幀/秒,求在帶寬為2Mbps的網(wǎng)絡(luò)中傳輸時視頻編碼壓縮系統(tǒng)應(yīng)有的壓縮比。
解壓縮前的碼流為[352X288+2(176X144)]像素/幀x25幀/秒x8位/像素=30412.8kbps=30M。那么對視頻編碼器件的壓縮比要求是:30Mbps/2M=15倍。
電視制式介紹
PAL電視制式標(biāo)準(zhǔn)為每秒25幀,電視掃描線為625線,奇場在前,偶場在后,標(biāo)準(zhǔn)的數(shù)字化PAL電視標(biāo)準(zhǔn)分辨率為720X576, 24比特的色彩位深,監(jiān)控安裝場景畫面的寬高比為4:3,PAL電視標(biāo)準(zhǔn)用于中國、歐洲等國家和地區(qū)。NTSC電視制式標(biāo)準(zhǔn)下,每秒29.97幀(簡化為30幀),電視掃描線為525線,偶場在前,奇場在后,標(biāo)準(zhǔn)的數(shù)字化NTSC電視標(biāo)準(zhǔn)分辨率為720X480,采用24比特的色彩位深,畫面的寬高比為4:3。NTSC電視標(biāo)準(zhǔn)用于美、日等國家和地區(qū)。
CIF分辨率
如先前所講,CIF分辨率為352X288,約10萬像素格式圖像。
2CIF分辨率
2CIF格式的圖像縱向也只有288線,但每行的水平像點數(shù)卻翻了一倍,因此,圖像大約為20萬像素。雖然每一行的像點數(shù)增加了,但由于整個圖像中每隔一行都被忽略,因此,仍然丟失了大量的重要信息。所以,我們看到的監(jiān)控安裝場景圖像恰如其名只是半幀或半圖。2CIF分辨率是704X240像素(NTSC)或704X288(PAL)像素。
4CIF分辨率
4CIF格式的圖像由兩個時間上連續(xù)的隔行掃描半圖像拼合而成,這種格式的實際像素達(dá)到704X576=40萬,但由于半幀是在不同瞬間形成的,所以行與行之間就會發(fā)生錯位。這樣會導(dǎo)致所謂的“梳狀失真”,這是4CIF格式圖像在實際應(yīng)用中的一個缺陷。
D1與4CIF分辨率區(qū)別
D1的分辨率為720X480(NTSC)、720X576(PAL);4CIF的分辨率為704X480(NTSC)、704X576(PAL)。從分辨率數(shù)據(jù)來看兩者相差不多,但是從技術(shù)原理角度,4CIF的原型是由CIF發(fā)展而來的,通過后期處理得到。早起DSP運算能力不足以支持大分辨率畫面的實時編碼傳輸,因此將畫面切割成4個CIF大小的畫面分別處理然后進(jìn)行大畫面合成。而D1本身就是指大畫面的單個畫面,也可以進(jìn)行分割,成為多個CIF畫面。
VGA及SIF分辨率
VGA是Video Graphics Array的縮寫,是IBM公司開發(fā)的計算機(jī)顯示系統(tǒng),分辨率定義為640X480像素,此分辨率更適合IPC,因為IPC視頻基本上都在計算機(jī)上進(jìn)行顯示。而QVGA也經(jīng)常使用,QVGA是320X240像素,接近于CIF分辨率大小,QVGA有時稱為SIF(Standard Interchange Format)。
逐行掃描與隔行掃描
隔行掃描,是把一幅圖像分成兩場來掃描,場稱為奇數(shù)場,只掃描奇數(shù)行,而第二場只掃描偶數(shù)行,通過兩場掃描完成一幀圖像掃描的行數(shù),這就是隔行掃描。例如對于每幀圖像為625行的隔行掃描,每幀圖像分兩場掃,每一場只掃描了312.5行,每秒鐘共掃描50場,共25幀圖像,即隔行掃描時幀頻為25HZ、場頻為50HZ。由于視覺暫留效應(yīng),人眼不會注意到兩場只有一半的掃描行,而會視為完整的一幀。
隔行掃描的行掃描頻率為逐行掃描時的一半,因而電視信號的頻譜及傳送該信號的信道帶寬亦為逐行掃描的一半。這樣采用了隔行掃描后,在圖像質(zhì)量下降不多的情況下,信道利用率提高了一倍。
由于信道帶寬的減小,使系統(tǒng)及設(shè)備的復(fù)雜性與成本也相應(yīng)減少??梢?,隔行掃描的優(yōu)勢是在同樣的帶寬下可以傳送的場數(shù)是逐行采樣的兩倍,例如PAL制式下視頻流是50場/秒(25幀)/秒,該方式下,運動的監(jiān)控安裝場景圖像要比25幀/秒的逐行采樣模式自然許多。但是,對于橫向快速運動或紋理,可能產(chǎn)生不好的視覺效果(木梳狀失真)。隔行掃描的失真可以通過一些過濾器處理提升從而提高圖像質(zhì)量。
幀率、碼流與分辨率
幀率是每秒顯示監(jiān)控安裝場景圖像的數(shù)量,分辨率表示每幅圖像的尺寸,即像素數(shù)量,碼流是數(shù)據(jù)流量,而壓縮是去掉圖像的空間冗余和時間冗余。對于基本靜態(tài)的場景,可以用很低的碼流獲得較好的圖像質(zhì)量,而對于劇烈運動的場景,可能用很高的碼流也達(dá)不到好的圖像質(zhì)量。設(shè)置幀率表示想要的視頻實時性、連續(xù)性,設(shè)置分辨率是想要看的圖像尺寸大小,而碼流的設(shè)置取決于網(wǎng)絡(luò)、存儲及視頻場景的具體情況。
幀率概念
一幀就是一副靜止的畫面,連續(xù)的幀序列就形成動畫,如電視圖像等。我們通常說的幀率,就是在1秒鐘時間里傳輸、顯示的圖片的幀數(shù),也可以理解為圖形處理器每秒鐘能夠刷新幾次,通常用FPS(Frames Per Second)表示。每一幀是一副靜止的圖像,快速連續(xù)地顯示多幀便形成了運動的“假象”。高的幀率可以得到更流暢、更逼真的動畫。每秒鐘幀數(shù)越多,FPS值越高,所顯示的視頻動作就會越流暢,碼流需求就越大。
碼流概念
碼流(Bit Rate)是指視頻數(shù)據(jù)在單位時間內(nèi)的數(shù)據(jù)流量大小,也叫碼率,它是視頻編碼畫面質(zhì)量控制中最重要的部分。同樣分辨率及幀率下,視頻數(shù)據(jù)的碼流越大,壓縮比就越小,畫面質(zhì)量也就越高。
分辨率概念
分辨率是指圖像的大小或尺寸。常見的分辨率有4CIF(704X576)、CIF(352X288),QCIF(176X144)、VGA(640X480)及百萬像素(如1920X1080)。在成像的兩組數(shù)字中,前者為圖片長度,后者為圖片的寬度,兩者相乘得出的是圖片的像素數(shù),長寬比一般為4:3格式,在高清視頻監(jiān)控中主要為16:9格式。
視頻編碼模型
編碼器的作用是將原始監(jiān)控安裝場景圖像編碼壓縮成視頻流,的作用相反,將視頻流還原成圖像。通常,編碼器采用某種模型來描述一個視頻流,模型使得壓縮的視頻流盡可能占用較少地碼流,卻提供盡可能好的圖像質(zhì)量。
時域模型
時域模型的作用是消除連續(xù)視頻幀之間的時域冗余,在時域模型中,當(dāng)前幀與參考幀之間相減得到殘差圖像,預(yù)測幀越準(zhǔn)確(運動估計做得好),那么得到的殘差圖像的能量就越小。殘差圖像經(jīng)過編碼后傳輸?shù)?,通過重建幀與殘差圖像相加來恢復(fù)當(dāng)前圖像幀,并得到下幀圖像的預(yù)測幀,利用運動補(bǔ)償技術(shù)來降低預(yù)測幀與當(dāng)前幀的差別。時域模型的輸出是當(dāng)前幀與預(yù)測幀相減得到的殘差及運動模型參數(shù)(如運動矢量)。
空域模型
視頻圖像相鄰樣本點之間具有很強(qiáng)的相關(guān)性,圖像空域模型的目的是消除圖像或殘差圖像的空域相關(guān)性,將其轉(zhuǎn)換成一種便于熵編碼的格式。實際的空域模型分三個部分,變換(消除數(shù)據(jù)相關(guān)性)、量化(降低變換域數(shù)據(jù)精度)和重新排序(對數(shù)據(jù)重新編排,將重要的數(shù)據(jù)集中到一起)??沼蚰P偷妮斎胧菤埐顖D像(或完整圖像),空域模型利用殘差圖像內(nèi)部相鄰像素的相似性,來消除空域的冗余。在MPEG-4及H.264編碼壓縮方式中,編碼器對殘差圖像進(jìn)行頻域變換(DCT)、量化,之后作為空域模型的輸出。
熵編碼器
熵編碼器對空域模型(量化系數(shù))及時域模型(運動矢量)的輸出參數(shù)進(jìn)行壓縮,消除統(tǒng)計冗余,并輸出最后的比特流供傳輸或存儲之用。
運動補(bǔ)償技術(shù)介紹
在幀間編碼過程中,需要消除相鄰幀之間的時域信息冗余,即僅僅傳輸相鄰幀之間對應(yīng)宏塊的差值(殘差),此差值不是前后兩幀對應(yīng)像素的直接相減差值,而是需要在前幀(參考幀)內(nèi),對應(yīng)于后幀的宏塊位置的附近區(qū)域內(nèi),搜索找到一個最匹配的宏塊(最相似的宏塊,甚至能找到相同的宏塊),并得到宏塊在水平及垂直方向上的位移(運動矢量),然后傳送這兩個宏塊之間的差值(對于相似的宏塊,差值接近于零)及運動矢量。將存儲器中前一圖像幀(N-1幀)的重建圖像中相應(yīng)的塊供編碼器端求得的運動矢量進(jìn)行相應(yīng)的位移,得到第N幀圖像的預(yù)測圖像的過程就是運動補(bǔ)償過程。
運動估計
運動估計(Motion Estimation ,ME)就是搜索匹配塊的過程,或者說是尋找的運動向量的過程。
運動估計的基本思想是將圖像序列的幀分成多個宏塊,并認(rèn)為宏塊內(nèi)所有像素的位移量都相同,然后對每個宏塊在參考幀的某一給定搜索范圍內(nèi)根據(jù)一定的匹配準(zhǔn)則找出與當(dāng)前塊最相似的塊,即匹配塊,匹配塊與當(dāng)前塊的相對位移即為運動矢量(Motion Vector,MV)。視頻壓縮的過程中,只需保存運動矢量和殘差數(shù)據(jù)就可以恢復(fù)出當(dāng)前的塊。
運動補(bǔ)償
利用運動估計算出的運動矢量,將參考幀圖像中的宏塊在水平及垂直方向進(jìn)行相應(yīng)地移動,即可生成被壓縮圖像的預(yù)測。運動補(bǔ)償(Motion Compensation,MC)是通過先前的圖像來預(yù)測、補(bǔ)償當(dāng)前的圖像,它是減少視頻序列時域冗余的有效方法。即運動補(bǔ)償是一種描述相鄰幀差別的方法,具體來說是描述前一幀圖像的每個塊怎樣移動到當(dāng)前幀中的某個位置去,這種方法經(jīng)常被視頻編用來減少視頻序列中的時域冗余信息。
運動補(bǔ)償?shù)膶崿F(xiàn)
如上所述,運動補(bǔ)償?shù)幕驹砭褪钱?dāng)編碼處理視頻序列中的N幀的時候,利用運動補(bǔ)償中的關(guān)鍵技術(shù)——運動估計技術(shù)(Motion Estimation,ME)得到第N幀圖像的預(yù)測幀N’
,在實際傳輸時,不總是傳輸N幀本身(偶爾傳輸N幀本身做參考),而是傳輸N幀與N’的差值ΔN。在運動估計十分有效的情況下,ΔN的值會非常小(接近零甚至是零),這樣傳輸需要的碼流也非常小,從而實現(xiàn)對信源中時域冗余信息的消除,這是運動補(bǔ)償技術(shù)的根本所在。在運動補(bǔ)償時,一般將圖像分成多個矩形塊,而后對各個監(jiān)控安裝場景圖像塊進(jìn)行補(bǔ)償。