一種視頻編碼方法和編碼器的制造方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)一種視頻編碼方法和編碼器。一種視頻編碼方法,包括步驟:將未編碼的原始視頻的幀圖像建立起至少兩層的依賴(lài)關(guān)系,上一層依賴(lài)關(guān)系囊括的幀圖像數(shù)量少于下一層依賴(lài)關(guān)系囊括的幀圖像數(shù)量;對(duì)原始視頻的幀圖像進(jìn)行編碼,每層依賴(lài)關(guān)系對(duì)應(yīng)生成一種碼流。本發(fā)明能匹配多種帶寬的網(wǎng)絡(luò)、提供高壓縮率的碼流,具有良好的容錯(cuò)性能。
【專(zhuān)利說(shuō)明】一種視頻編碼方法和編碼器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及多媒體信號(hào)傳輸領(lǐng)域,更具體的說(shuō),涉及一種視頻編碼方法和編碼器?!颈尘凹夹g(shù)】
[0002]視音頻編解碼技術(shù)是數(shù)字視頻監(jiān)控系統(tǒng)的核心技術(shù),其中視頻編解碼算法實(shí)現(xiàn)的優(yōu)劣直接決定了圖像的清晰度、網(wǎng)絡(luò)傳輸?shù)膸挼母叩?、所占存?chǔ)空間的大小而成為技術(shù)實(shí)現(xiàn)的關(guān)鍵。
[0003]H.264編碼標(biāo)準(zhǔn)相較于以前的編碼標(biāo)準(zhǔn)有著一些新特性,如多參考幀的運(yùn)動(dòng)補(bǔ)償、變塊尺寸運(yùn)動(dòng)補(bǔ)償、幀內(nèi)預(yù)測(cè)編碼等,通過(guò)利用這些新特性,H.264比其他編碼標(biāo)準(zhǔn)有著更高的視頻質(zhì)量和更低的碼率,也因此受到了人們的認(rèn)可。
[0004]H.265/HEVC的編碼架構(gòu)大致上和H.264/AVC的架構(gòu)相似,主要也包含:幀內(nèi)預(yù)測(cè)(intra prediction)、中貞間預(yù)測(cè)(inter prediction)、轉(zhuǎn)換(transform)、量化(quantization)、去區(qū)塊濾波器(deblocking filter)、熵編碼(entropy coding)等模塊。但在HEVC編碼架構(gòu)中,整體被分為了三個(gè)基本單位,分別是:編碼單位(coding unit,⑶)、預(yù)測(cè)單位(predict unit, PU)和轉(zhuǎn)換單位(transformunit, TU)。
[0005]比起H.264/AVC,H.265/HEVC提供了更多不同的工具來(lái)降低碼率,以編碼單位來(lái)說(shuō),H.264中每個(gè)宏塊(marcoblock, MB)大小都是固定的16x16像素,而H.265的編碼單位可以選擇從最小的8x8到最大的64x64。以下圖為例,信息量不多的區(qū)域(顏色變化不明顯,比如車(chē)體的紅色部分和地面的灰色部分)劃分的宏塊較大,編碼后的碼字較少,而細(xì)節(jié)多的地方(輪胎)劃分的宏塊就相應(yīng)的小和多一些,編碼后的碼字較多,這樣就相當(dāng)于對(duì)圖像進(jìn)行了有重點(diǎn)的編碼,從而降低了整體的碼率,編碼效率就相應(yīng)提高了。同時(shí),H.265的幀內(nèi)預(yù)測(cè)模式支持33種方向(H.264只支持8種),并且提供了更好的運(yùn)動(dòng)補(bǔ)償處理和矢量預(yù)測(cè)方法。
[0006]不論H.264還是H.265,所有的MPEG視頻標(biāo)準(zhǔn)均采用如圖1所示的編碼過(guò)程。即當(dāng)前幀F(xiàn)_n幀間預(yù)測(cè)(ME)是用上一時(shí)刻點(diǎn)編碼重建幀(F’ _(n-l))做參考幀,幀間預(yù)測(cè)模式編碼過(guò)程產(chǎn)生的碼流只是包括幀間預(yù)測(cè)(ME)產(chǎn)生的殘差,其對(duì)應(yīng)的運(yùn)動(dòng)矢量,模式和對(duì)應(yīng)的參考巾貞信息。
[0007]由于網(wǎng)絡(luò)服務(wù)器中的視頻媒體信息越來(lái)越豐富,因此促進(jìn)了視頻流傳輸技術(shù)的應(yīng)用。同時(shí)伴隨著移動(dòng)通信和無(wú)線網(wǎng)絡(luò)的迅猛發(fā)展,如3G、WIMAX、LTE (長(zhǎng)期演進(jìn),即3.9G無(wú)線通信標(biāo)準(zhǔn))、4G等新的技術(shù)應(yīng)用之后,無(wú)線網(wǎng)絡(luò)為視頻應(yīng)用和信息的交互提供了新的場(chǎng)景和可能。通過(guò)這些應(yīng)用,人們可以使用移動(dòng)設(shè)備直接瀏覽最新視頻,查詢(xún)和檢索資料,撥打可視電話,甚至進(jìn)行遠(yuǎn)程的視頻會(huì)議等等??傊?,隨著多媒體通信技術(shù)的發(fā)展,視頻應(yīng)用的領(lǐng)域越來(lái)越廣泛。
[0008]然而,Internet是一個(gè)異構(gòu)性網(wǎng)絡(luò),對(duì)于視頻服務(wù)而言,它體現(xiàn)在網(wǎng)絡(luò)中通信網(wǎng)絡(luò)的異構(gòu)性和接收方的異構(gòu)性。由于各子網(wǎng)的網(wǎng)絡(luò)資源(如處理能力、傳輸帶寬、存儲(chǔ)能力等)分布不均勻,以及服務(wù)器的傳輸吞吐量、延時(shí)、丟包率等各不相同,從而造成了通訊子網(wǎng)的異構(gòu)性。而接收方的異構(gòu)性則體現(xiàn)在用戶(hù)不同的使用偏好,以及接收和播放設(shè)備的不同的分辨率和處理器的能力上。網(wǎng)絡(luò)終端的異構(gòu)性造成了視頻形式的多樣性。因此用戶(hù)可能通過(guò)高速的以太網(wǎng)(Ethernet), WIMAX、LTE等服務(wù)的接入,也可能通過(guò)中等速度的調(diào)制解調(diào)器獲取視頻(如個(gè)域網(wǎng),WIFI),還有一些用戶(hù)通過(guò)低速的無(wú)線網(wǎng)絡(luò)(如3G,EDGE,GPRS)進(jìn)行視頻傳輸。這些眾多因素導(dǎo)致用戶(hù)通過(guò)不同的網(wǎng)絡(luò)所能得到的帶寬不盡相同,甚至同一個(gè)用戶(hù)所能得到的帶寬也因時(shí)而變(它可能會(huì)受到多徑衰落和快衰落等影響)。因此恒定速率的視頻流難以在帶寬波動(dòng)比較大的網(wǎng)絡(luò)環(huán)境下進(jìn)行高效傳輸,網(wǎng)絡(luò)終端視頻的重構(gòu)質(zhì)量也就受到了一些影響。
[0009]網(wǎng)絡(luò)的異構(gòu)性、信道帶寬的波動(dòng)和信道的誤碼等因素的存在,使得原來(lái)面向存儲(chǔ)的壓縮算法已經(jīng)很難滿足實(shí)時(shí)傳輸?shù)囊蟆?br>
【發(fā)明內(nèi)容】
[0010]本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種能適應(yīng)多種帶寬視頻編碼方法和編碼器。
[0011]本發(fā)明的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的:
[0012]一種視頻編碼方法,包括步驟:
[0013]將未編碼的原始視頻的幀圖像建立起至少兩層的依賴(lài)關(guān)系,上一層依賴(lài)關(guān)系囊括的幀圖像數(shù)量少于下一層依賴(lài)關(guān)系囊括的幀圖像數(shù)量;
[0014]對(duì)原始視頻的幀圖像進(jìn)行編碼,每層依賴(lài)關(guān)系對(duì)應(yīng)生成一種碼流。
[0015]進(jìn)一步的,根據(jù)人類(lèi)視覺(jué)敏感區(qū)域來(lái)建立幀圖像的依賴(lài)關(guān)系,在同一層依賴(lài)關(guān)系的情況下,處于敏感區(qū)域時(shí)間段的相鄰兩個(gè)幀圖像之間的間隔時(shí)間小于非敏感區(qū)域時(shí)間段的相鄰兩個(gè)幀圖像之間的間隔時(shí)間。人類(lèi)視覺(jué)系統(tǒng)對(duì)勻速運(yùn)動(dòng)比對(duì)加速運(yùn)動(dòng)更敏感,人類(lèi)視覺(jué)系統(tǒng)對(duì)前景運(yùn)動(dòng)物體比對(duì)背景運(yùn)動(dòng)物體敏感,人類(lèi)視覺(jué)系統(tǒng)對(duì)平緩運(yùn)動(dòng)比對(duì)快速運(yùn)動(dòng)更敏感。本領(lǐng)域技術(shù)人員可以根據(jù)視頻幀與幀之間的全局運(yùn)動(dòng)模型得出勻速運(yùn)動(dòng)和加速運(yùn)動(dòng)的幀圖像;由視頻處理的物體分割背景建模等方法得出幀圖像的前景和背景物體。根據(jù)這些原理,我們可以在人類(lèi)視覺(jué)敏感區(qū)域時(shí)間段可伸縮運(yùn)動(dòng)補(bǔ)償依賴(lài)關(guān)系更密集,而在非敏感域時(shí)間段依賴(lài)關(guān)系更稀疏。這樣解碼顯示的視覺(jué)損失最小。
[0016]進(jìn)一步的,不同依賴(lài)關(guān)系對(duì)應(yīng)碼流的數(shù)據(jù)量之間呈線性關(guān)系。依賴(lài)運(yùn)功補(bǔ)償原理的視頻編碼技術(shù),隨著參考幀時(shí)間間隔越長(zhǎng),其編碼效率越差,每一幀的碼流數(shù)據(jù)越大。為了精準(zhǔn)適應(yīng)帶寬變化(如網(wǎng)絡(luò)帶寬以25%的帶寬大小降低或增加),以線性關(guān)系方式來(lái)調(diào)節(jié)幀間依賴(lài)關(guān)系,達(dá)到層與層碼流按比例遞增,從而更好地適應(yīng)帶寬的變化。
[0017]進(jìn)一步的,第η層的依賴(lài)關(guān)系中,幀圖像的序號(hào)可以被2的η次冪整除,η為正整數(shù)。保留在基準(zhǔn)碼流中可以被2的η次冪整除的序號(hào)的幀為一種等間距的抽幀策略,每?jī)蓚€(gè)保留幀之間抽離的幀數(shù)相等,保障了畫(huà)面的連續(xù)性。
[0018]進(jìn)一步的,最下層的依賴(lài)關(guān)系為基本依賴(lài)關(guān)系,基本依賴(lài)關(guān)系囊括所有的幀圖像,所述編碼器根據(jù)基本依賴(lài)關(guān)系對(duì)每個(gè)幀圖像進(jìn)行一次編碼,形成基本碼流;
[0019]直接從基本碼流中提取出跟它依賴(lài)關(guān)系一一對(duì)應(yīng)的的碼流。如果每一層的幀圖像都需要重復(fù)編碼,無(wú)疑會(huì)大幅增加編碼器的運(yùn)算量,實(shí)質(zhì)上每一層之間都有幀圖像是重復(fù)的,因此只需對(duì)基本依賴(lài)關(guān)系中的幀圖像(即所有的幀圖像)進(jìn)行一次編碼,然后根據(jù)一次編碼結(jié)果來(lái)抽取幀圖像數(shù)據(jù)進(jìn)行二次編碼,形成其它層依賴(lài)關(guān)系對(duì)應(yīng)的碼流。這樣能減少重復(fù)勞動(dòng),減輕編碼器負(fù)擔(dān)。
[0020]進(jìn)一步的,最下層的依賴(lài)關(guān)系為基本依賴(lài)關(guān)系,基本依賴(lài)關(guān)系囊括所有的幀圖像,以最下層編碼數(shù)據(jù)量最小為依據(jù)確定基本依賴(lài)關(guān)系。此為一種)最優(yōu)編碼效率的方式,通過(guò)自由建立可伸縮幀間依賴(lài)關(guān)系來(lái)選擇基本碼流最小的路徑,使可伸縮碼流與傳統(tǒng)視頻編碼效率差距縮短到最小。
[0021]進(jìn)一步的,最上層的依賴(lài)關(guān)系僅囊括采用幀內(nèi)編碼的關(guān)鍵幀圖像。此為一種僅傳遞關(guān)鍵幀的技術(shù)方案,所有的關(guān)鍵幀都只采用幀內(nèi)編碼模式而不采用幀間編碼模式;而其它非關(guān)鍵幀都是采用前一個(gè)關(guān)鍵幀或非關(guān)鍵幀作為運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)的參考,因此可伸縮編碼的最低限度就是僅傳關(guān)鍵幀,低于這個(gè)限度,解碼后的視頻基本無(wú)法觀看。
[0022]進(jìn)一步的,所述編碼器將每一層對(duì)應(yīng)的幀圖像間的依賴(lài)關(guān)系和其對(duì)應(yīng)的碼流一起發(fā)送到外部網(wǎng)絡(luò)。隨著時(shí)間、視頻內(nèi)容不停變換的時(shí)間軸上幀間依賴(lài)關(guān)系不停變化。碼流經(jīng)過(guò)一次可伸縮編碼后,這種幀間依賴(lài)關(guān)系和在網(wǎng)絡(luò)傳輸過(guò)程中的分層碼流必須要傳遞到下一個(gè)網(wǎng)絡(luò)中轉(zhuǎn)站(如路由器)。如編碼器到網(wǎng)絡(luò)中轉(zhuǎn)服務(wù)器A,碼流為第4層碼流,則第4層幀間依賴(lài)關(guān)系要以某種形式傳到A。網(wǎng)絡(luò)中轉(zhuǎn)服務(wù)器A到B,碼流為第3層碼流,則第3層幀間依賴(lài)關(guān)系以某種形式傳到B,以此類(lèi)推。這樣每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)都可以按照下一級(jí)網(wǎng)絡(luò)的帶寬狀況來(lái)自動(dòng)選擇相應(yīng)層級(jí)對(duì)應(yīng)的碼流來(lái)發(fā)送,能自適應(yīng)網(wǎng)絡(luò)帶寬的變化,確保大部分網(wǎng)絡(luò)都能流暢地觀看視頻。
[0023]進(jìn)一步的,所述依賴(lài)關(guān)系通過(guò)私有協(xié)議的方式跟隨碼流發(fā)出;或者所述依賴(lài)關(guān)系嵌套在標(biāo)準(zhǔn)化的碼流當(dāng)中。此為具體依賴(lài)關(guān)系的傳遞關(guān)系,解碼器可以根據(jù)接收到的碼流及其對(duì)應(yīng)的依賴(lài)關(guān)系來(lái)正確解碼幀數(shù)據(jù)。
[0024]一種編碼器,包括:
[0025]將未編碼的原始視頻的幀圖像建立起至少兩層的依賴(lài)關(guān)系的幀計(jì)算模塊;
[0026]與幀計(jì)算模塊耦合的、對(duì)原始視頻的幀圖像進(jìn)行編碼,并根據(jù)每層依賴(lài)關(guān)系對(duì)應(yīng)生成一種碼流的編碼模塊。
[0027]經(jīng)研究,現(xiàn)有視頻數(shù)據(jù)在網(wǎng)絡(luò)傳輸過(guò)程中,如果帶寬波動(dòng),丟掉任一幀圖像數(shù)據(jù),則無(wú)法在解碼器端重建此幀,其后續(xù)的幀也都無(wú)法重建,直到接收到下一個(gè)關(guān)鍵幀圖像,才能重新解碼,這樣就造成了客戶(hù)端畫(huà)面出現(xiàn)卡頓和跳躍,嚴(yán)重影響觀看體驗(yàn)。本發(fā)明由于將原始視頻的幀圖像建立了不同層級(jí)的依賴(lài)關(guān)系,每一層級(jí)依賴(lài)關(guān)系囊括的幀圖像數(shù)據(jù)都不一樣,因此對(duì)應(yīng)產(chǎn)生的碼流的數(shù)據(jù)量大小也不一樣,這樣就能匹配多種帶寬的網(wǎng)絡(luò)。依賴(lài)關(guān)系可以人為定義,可以建立起幀數(shù)量很少的依賴(lài)關(guān)系,提供高壓縮率的碼流。另外,雖然不同層級(jí)的依賴(lài)關(guān)系中一般需要丟棄部分的原始幀圖像,但保留的幀圖像之間存在依賴(lài)關(guān)系,客戶(hù)端的解碼器可以根據(jù)依賴(lài)關(guān)系按正確的順序和方式解讀幀圖像,仍然可以保障客戶(hù)端畫(huà)面的連續(xù)性,因此具有良好的容錯(cuò)性能。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0028]圖1是MPEG視頻標(biāo)準(zhǔn)采用的編碼過(guò)程;
[0029]圖2是本發(fā)明視頻編碼方法的示意圖;
[0030]圖3是本發(fā)明編碼器的示意圖;
[0031]圖4是本發(fā)明實(shí)施例以2的η次幕建立各層依賴(lài)關(guān)系的不意圖;[0032]圖5是本發(fā)明實(shí)施例以碼流數(shù)據(jù)量呈線性變化建立各層依賴(lài)關(guān)系的示意圖?!揪唧w實(shí)施方式】
[0033]如圖2所示,本發(fā)明公開(kāi)一種視頻編碼方法,包括步驟:
[0034]將未編碼的原始視頻的幀圖像建立起至少兩層的依賴(lài)關(guān)系,上一層依賴(lài)關(guān)系囊括的幀圖像數(shù)量少于下一層依賴(lài)關(guān)系囊括的幀圖像數(shù)量;
[0035]對(duì)原始視頻的幀圖像進(jìn)行編碼,每層依賴(lài)關(guān)系對(duì)應(yīng)生成一種碼流。
[0036]如圖3所示,本發(fā)明還公開(kāi)一種編碼器,編碼器包括:將未編碼的原始視頻的幀圖像建立起至少兩層的依賴(lài)關(guān)系的幀計(jì)算模塊;與幀計(jì)算模塊耦合的、對(duì)原始視頻的幀圖像進(jìn)行編碼,并根據(jù)每層依賴(lài)關(guān)系對(duì)應(yīng)生成一種碼流的編碼模塊。
[0037]經(jīng)研究,現(xiàn)有視頻數(shù)據(jù)在網(wǎng)絡(luò)傳輸過(guò)程中,如果帶寬波動(dòng),丟掉任一幀圖像數(shù)據(jù),則無(wú)法在解碼器端重建此幀,其后續(xù)的幀也都無(wú)法重建,直到接收到下一個(gè)關(guān)鍵幀圖像,才能重新解碼,這樣就造成了客戶(hù)端畫(huà)面出現(xiàn)卡頓和跳躍,嚴(yán)重影響觀看體驗(yàn)。本發(fā)明由于將原始視頻的幀圖像建立了不同層級(jí)的依賴(lài)關(guān)系,每一層級(jí)依賴(lài)關(guān)系囊括的幀圖像數(shù)據(jù)都不一樣,因此對(duì)應(yīng)產(chǎn)生的碼流的數(shù)據(jù)量大小也不一樣,這樣就能匹配多種帶寬的網(wǎng)絡(luò)。依賴(lài)關(guān)系可以人為定義,可以建立起幀數(shù)量很少的依賴(lài)關(guān)系,提供高壓縮率的碼流。另外,雖然不同層級(jí)的依賴(lài)關(guān)系中一般需要丟棄部分的原始幀圖像,但保留的幀圖像之間存在依賴(lài)關(guān)系,客戶(hù)端的解碼器可以根據(jù)依賴(lài)關(guān)系按正確的順序和方式解讀幀圖像,仍然可以保障客戶(hù)端畫(huà)面的連續(xù)性,因此具有良好的容錯(cuò)性能。
[0038]下面結(jié)合附圖和較佳的實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
[0039]本發(fā)明公開(kāi)一種視頻編碼方法,包括步驟:將未編碼的原始視頻的幀圖像建立起至少兩層的依賴(lài)關(guān)系,上一層依賴(lài)關(guān)系囊括的幀圖像數(shù)量少于下一層依賴(lài)關(guān)系囊括的幀圖像數(shù)量;對(duì)原始視頻的幀圖像進(jìn)行編碼,每層依賴(lài)關(guān)系對(duì)應(yīng)生成一種碼流。
[0040]本發(fā)明采用時(shí)間可伸縮編碼技術(shù),固定了時(shí)間軸上幀與幀之間運(yùn)動(dòng)補(bǔ)償?shù)南嗷ヒ蕾?lài)關(guān)系。固定的依賴(lài)模式使編碼器設(shè)計(jì)及時(shí)間軸分層更容易及有效。以圖4為例進(jìn)行說(shuō)明,采用固定跳二的運(yùn)動(dòng)補(bǔ)償依賴(lài)關(guān)系,使傳統(tǒng)編碼變成可以分為4層的時(shí)間可伸縮碼流。如在這9幀視頻數(shù)據(jù)中,第一層只有2幀碼流數(shù)據(jù),在解碼端可以完整解碼顯示。第二層碼流有3幀視頻數(shù)據(jù),第三層碼流有5幀視頻數(shù)據(jù);第4層有9幀視頻數(shù)據(jù)。
[0041]網(wǎng)絡(luò)帶寬好的情況下,傳輸?shù)?層視頻碼流。帶寬條件變差的情況下,可以根據(jù)帶寬傳輸?shù)?層,第2層碼流等。
[0042]在多用戶(hù)同時(shí)登陸觀看同一視頻時(shí),按照相似的帶寬適應(yīng)原理,為每個(gè)客戶(hù)提供其帶寬條件容許情況下最佳觀看體驗(yàn)的視頻碼流。
[0043]本發(fā)明在這種時(shí)間段可伸縮技術(shù)基礎(chǔ)之上,可以動(dòng)態(tài)調(diào)整時(shí)間軸上的運(yùn)動(dòng)補(bǔ)償依賴(lài)關(guān)系,提高視頻編碼效率,提高視頻觀看主觀效果,及更好適應(yīng)網(wǎng)絡(luò)帶寬變化,當(dāng)然,本發(fā)明的依賴(lài)關(guān)系的層次不局限于4層,可根據(jù)不同的應(yīng)用場(chǎng)合適當(dāng)增加或減少層次。
[0044]在視頻編碼過(guò)程中,通過(guò)前處理,多幀運(yùn)動(dòng)預(yù)測(cè),幀內(nèi)預(yù)測(cè),頻域變化(如DCT變化),殘差編碼等步驟,我們可以得出視頻內(nèi)容的各種信息,如運(yùn)動(dòng)物體特征,運(yùn)動(dòng)平緩與否,編碼數(shù)據(jù)大小等。
[0045]依賴(lài)關(guān)系可以人為定義,同樣的視頻數(shù)據(jù)可以依據(jù)不同的參考依據(jù)來(lái)建立不同的依賴(lài)關(guān)系,下面僅以三種參考依據(jù)為例進(jìn)行說(shuō)明,不代表本發(fā)明構(gòu)思下的所有技術(shù)方案。
[0046]I)根據(jù)人類(lèi)視覺(jué)敏感區(qū)域來(lái)建立幀圖像的依賴(lài)關(guān)系。在同一層依賴(lài)關(guān)系的情況下,處于敏感區(qū)域時(shí)間段的相鄰兩個(gè)幀圖像之間的間隔時(shí)間小于非敏感區(qū)域時(shí)間段的相鄰兩個(gè)幀圖像之間的間隔時(shí)間。人類(lèi)視覺(jué)系統(tǒng)對(duì)勻速運(yùn)動(dòng)比對(duì)加速運(yùn)動(dòng)更敏感,人類(lèi)視覺(jué)系統(tǒng)對(duì)前景運(yùn)動(dòng)物體比對(duì)背景運(yùn)動(dòng)物體敏感,人類(lèi)視覺(jué)系統(tǒng)對(duì)平緩運(yùn)動(dòng)比對(duì)快速運(yùn)動(dòng)更敏感。本領(lǐng)域技術(shù)人員可以根據(jù)視頻幀與幀之間的全局運(yùn)動(dòng)模型得出勻速運(yùn)動(dòng)和加速運(yùn)動(dòng)的幀圖像;由視頻處理的物體分割背景建模等方法得出幀圖像的前景和背景物體。根據(jù)這些原理,我們可以在人類(lèi)視覺(jué)敏感區(qū)域時(shí)間段可伸縮運(yùn)動(dòng)補(bǔ)償依賴(lài)關(guān)系更密集,而在非敏感域時(shí)間段依賴(lài)關(guān)系更稀疏。這樣解碼顯示的視覺(jué)損失最小。
[0047]敏感區(qū)域時(shí)間段和非敏感區(qū)域時(shí)間段可以通過(guò)二次編碼來(lái)判斷,第一次快速編碼可以得到運(yùn)動(dòng)前景物體,后景物體;物體運(yùn)動(dòng)的方向,速度,加速度等,根據(jù)這些信息,判斷敏感,非敏感時(shí)間段,然后做二次編碼。
[0048]2)不同依賴(lài)關(guān)系對(duì)應(yīng)碼流的數(shù)據(jù)量之間呈線性關(guān)系。如圖5所示,第4層有9幀數(shù)據(jù),第3層有5幀數(shù)據(jù)。從第4層切換到第3層時(shí),幀數(shù)據(jù)0,4,8保持不變,丟掉幀數(shù)據(jù)6,7,每一層的幀圖像形成碼流后,基本呈線性關(guān)系變化。依賴(lài)運(yùn)功補(bǔ)償原理的視頻編碼技術(shù),隨著參考幀時(shí)間間隔越長(zhǎng),其編碼效率越差,每一幀的碼流數(shù)據(jù)越大。為了精準(zhǔn)適應(yīng)帶寬變化(如網(wǎng)絡(luò)帶寬以25%的帶寬大小降低或增加),以線性關(guān)系方式來(lái)調(diào)節(jié)幀間依賴(lài)關(guān)系,達(dá)到層與層碼流按比例遞增,從而更好地適應(yīng)帶寬的變化,實(shí)現(xiàn)網(wǎng)絡(luò)帶寬精準(zhǔn)自適應(yīng)。
[0049]當(dāng)然,為了簡(jiǎn)化操作,還可以采用固定間隔進(jìn)行抽幀的方式,比如在第η層的依賴(lài)關(guān)系中,幀圖像的序號(hào)可以被2的η次冪整除(參見(jiàn)圖4),η為正整數(shù)。
[0050]3)最優(yōu)編碼效率方式。最下層的依賴(lài)關(guān)系為基本依賴(lài)關(guān)系,基本依賴(lài)關(guān)系囊括所有的幀圖像,以最下層編碼數(shù)據(jù)量最小為依據(jù)確定基本依賴(lài)關(guān)系。通過(guò)自由建立可伸縮幀間依賴(lài)關(guān)系來(lái)選擇基本碼流最小的路徑,使可伸縮碼流與傳統(tǒng)視頻編碼效率差距縮短到最小。
[0051]本發(fā)明將原始幀圖像建立多層依賴(lài)關(guān)系,每一層依賴(lài)關(guān)系的幀圖像都對(duì)應(yīng)產(chǎn)生一種碼流,如果每一層的幀圖像都需要重新編碼,無(wú)疑會(huì)大幅增加編碼器的運(yùn)算量,實(shí)質(zhì)上每一層之間都有幀圖像是重復(fù)的,因此只需對(duì)基本依賴(lài)關(guān)系中的幀圖像(即所有的幀圖像)進(jìn)行一次編碼,形成基本碼流;直接從基本碼流中提取出跟它依賴(lài)關(guān)系一一對(duì)應(yīng)的的增強(qiáng)碼流。這樣能減少重復(fù)勞動(dòng),減輕編碼器負(fù)擔(dān)。
[0052]最上層的依賴(lài)關(guān)系僅囊括采用幀內(nèi)編碼的關(guān)鍵幀圖像。所有的關(guān)鍵幀都采用幀內(nèi)編碼,而其它幀都是采用前一個(gè)關(guān)鍵幀作為運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)的參考,因此可伸縮編碼的最低限度就是僅傳關(guān)鍵幀,低于這個(gè)限度,解碼后的視頻基本無(wú)法觀看,沒(méi)有什么實(shí)用價(jià)值。
[0053]編碼器將每一層對(duì)應(yīng)的幀圖像間的依賴(lài)關(guān)系和其對(duì)應(yīng)的碼流一起發(fā)送到外部網(wǎng)絡(luò),依賴(lài)關(guān)系可以通過(guò)私有協(xié)議的方式跟隨碼流發(fā)出;也可以嵌套在標(biāo)準(zhǔn)化的碼流當(dāng)中。隨著時(shí)間、視頻內(nèi)容不停變換的時(shí)間軸上幀間依賴(lài)關(guān)系不停變,碼流經(jīng)過(guò)一次可伸縮編碼后,這種幀間依賴(lài)關(guān)系和在網(wǎng)絡(luò)傳輸過(guò)程中的分層碼流必須要傳遞到下一個(gè)網(wǎng)絡(luò)中轉(zhuǎn)站(如路由器)。如編碼器到網(wǎng)絡(luò)中轉(zhuǎn)服務(wù)器Α,碼流為第4層碼流,則第4層幀間依賴(lài)關(guān)系要以某種形式傳到Α。網(wǎng)絡(luò)中轉(zhuǎn)服務(wù)器A到B,碼流為第3層碼流,則第3層幀間依賴(lài)關(guān)系以某種形式傳到B,以此類(lèi)推。這樣每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)都可以按照下一級(jí)網(wǎng)絡(luò)的帶寬狀況來(lái)自動(dòng)選擇相應(yīng)層級(jí)對(duì)應(yīng)的碼流來(lái)發(fā)送,能自適應(yīng)網(wǎng)絡(luò)帶寬的變化,確保大部分網(wǎng)絡(luò)都能流暢地觀看視頻。
[0054]標(biāo)準(zhǔn)解碼器會(huì)根據(jù)每個(gè)接收到幀數(shù)據(jù)包頭信息,維護(hù)一個(gè)解碼幀緩存(如H.264中的DPB buffer),保留正確的參考幀和顯示順序。如果中間缺少了 I, 3,5,7幀數(shù)據(jù)。由于不是所有解碼器會(huì)錯(cuò),取決與解碼器容錯(cuò)能力有的解碼器的解碼幀緩存順序會(huì)錯(cuò),使時(shí)間順序后的解碼幀產(chǎn)生錯(cuò)誤。
[0055]為了適應(yīng)所有標(biāo)準(zhǔn)解碼器,我們提出一種產(chǎn)生標(biāo)準(zhǔn)碼流的方式。即在抽掉的幀圖像數(shù)據(jù)位置處(如以上的1,3,5,7)填入一個(gè)替換幀,每個(gè)替換幀寫(xiě)入NAL數(shù)據(jù),這個(gè)很小的數(shù)據(jù)包包含準(zhǔn)確的解碼幀緩存操作指令,保證所有標(biāo)準(zhǔn)解碼器可解。如在H.264標(biāo)準(zhǔn)中,整個(gè)替換幀只有幾個(gè)到30幾個(gè)字節(jié)。
[0056]以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種視頻編碼方法,包括步驟: 將未編碼的原始視頻的幀圖像建立起至少兩層的依賴(lài)關(guān)系,上一層依賴(lài)關(guān)系囊括的幀圖像數(shù)量少于下一層依賴(lài)關(guān)系囊括的幀圖像數(shù)量; 對(duì)原始視頻的幀圖像進(jìn)行編碼,每層依賴(lài)關(guān)系對(duì)應(yīng)生成一種碼流。
2.如權(quán)利要求1所述的一種視頻編碼方法,其特征在于,根據(jù)人類(lèi)視覺(jué)敏感區(qū)域來(lái)建立幀圖像的依賴(lài)關(guān)系,在同一層依賴(lài)關(guān)系的情況下,處于敏感區(qū)域時(shí)間段的相鄰兩個(gè)幀圖像之間的間隔時(shí)間小于非敏感區(qū)域時(shí)間段的相鄰兩個(gè)幀圖像之間的間隔時(shí)間。
3.如權(quán)利要求1所述的一種視頻編碼方法,其特征在于,不同依賴(lài)關(guān)系對(duì)應(yīng)碼流的數(shù)據(jù)量之間呈線性關(guān)系。
4.如權(quán)利要求1所述的一種視頻編碼方法,其特征在于,第η層的依賴(lài)關(guān)系中,幀圖像的序號(hào)可以被2的η次冪整除,η為正整數(shù)。
5.如權(quán)利要求1所述的一種視頻編碼方法,其特征在于,最下層的依賴(lài)關(guān)系為基本依賴(lài)關(guān)系,基本依賴(lài)關(guān)系囊括所有的幀圖像,以最下層編碼數(shù)據(jù)量最小為依據(jù)確定基本依賴(lài)關(guān)系。
6.如權(quán)利要求1所述的一種視頻編碼方法,其特征在于,最下層的依賴(lài)關(guān)系為基本依賴(lài)關(guān)系,基本依賴(lài)關(guān)系囊括所有的幀圖像,所述編碼器根據(jù)基本依賴(lài)關(guān)系對(duì)每個(gè)幀圖像進(jìn)行一次編碼,形成基本碼流; 直接從基本碼流中提取出跟它依賴(lài)關(guān)系一一對(duì)應(yīng)的的碼流。
7.如權(quán)利要求1所述的一種視頻編碼方法,其特征在于,最上層的依賴(lài)關(guān)系僅囊括采用幀內(nèi)編碼的關(guān)鍵幀圖像。
8.如權(quán)利要求1所述的一種視頻編碼方法,其特征在于,所述編碼器將每一層對(duì)應(yīng)的幀圖像間的依賴(lài)關(guān)系和其對(duì)應(yīng)的碼流一起發(fā)送到外部網(wǎng)絡(luò)。
9.如權(quán)利要求8所述的一種視頻編碼方法,其特征在于,所述依賴(lài)關(guān)系通過(guò)私有協(xié)議的方式跟隨碼流發(fā)出;或者所述依賴(lài)關(guān)系嵌套在標(biāo)準(zhǔn)化的碼流當(dāng)中。
10.一種編碼器,其特征在于,包括: 將未編碼的原始視頻的幀圖像建立起至少兩層的依賴(lài)關(guān)系的幀計(jì)算模塊; 與幀計(jì)算模塊耦合的、對(duì)原始視頻的幀圖像進(jìn)行編碼,并根據(jù)每層依賴(lài)關(guān)系對(duì)應(yīng)生成一種碼流的編碼模塊。
【文檔編號(hào)】H04N7/26GK103475878SQ201310404748
【公開(kāi)日】2013年12月25日 申請(qǐng)日期:2013年9月6日 優(yōu)先權(quán)日:2013年9月6日
【發(fā)明者】史方, 金明 申請(qǐng)人:同觀科技(深圳)有限公司