專利名稱:編碼裝置、編碼方法、編碼方法程序及相應的記錄媒體的制作方法
技術領域:
本發(fā)明涉及編碼裝置、編碼方法、編碼方法程序以及記錄編碼方法程序的記錄媒體。本發(fā)明適用于例如利用衛(wèi)星廣播、有線電視、因特網(wǎng)、蜂窩電話等傳送電影,以及在諸如光盤、磁光盤、閃速存儲器等記錄媒體上記錄電影。編碼裝置可在編碼過程之前檢測幀內(nèi)預測和幀間預測的最佳預測模式。編碼裝置可根據(jù)所檢測的最佳預測模式來檢測表明差異數(shù)據(jù)大小的變量。利用此變量,編碼裝置可設置各圖像的目標代碼量。以這種方式,編碼裝置還可被構造為用作解碼裝置以及圖像轉換裝置。本發(fā)明的一個實施例可簡化這種編碼裝置的整體構造。
背景技術:
近來,在廣播電臺、家庭等處越來越多地使用通過有效地利用圖像數(shù)據(jù)冗余度來傳送和記錄電影而有效地傳送和存儲圖像數(shù)據(jù)的裝置。例如,這類裝置適合特定系統(tǒng)、如MPEG(活動圖像專家組)。該裝置被構造成利用正交變換、如離散余弦變換和運動補償來壓縮圖像數(shù)據(jù)。
作為這些系統(tǒng)其中之一,MPEG2被定義為通用圖像編碼系統(tǒng)。MPEG2系統(tǒng)被定義成適合隔行掃描系統(tǒng)和逐行掃描系統(tǒng),并且適合標準分辨率圖像和高分辨率圖像。目前,MPEG2系統(tǒng)廣泛用于從專業(yè)人員到消費者的各種各樣應用。具體來說,例如,MPEG2將基于隔行掃描的標準分辨率的720×480像素的圖像數(shù)據(jù)壓縮到4至8Mbps的比特率。MPEG2將基于隔行掃描的高分辨率的1920×1088像素的圖像數(shù)據(jù)壓縮到18至22Mbps的比特率。MPEG2可確保高圖像質量以及高壓縮率。
但是,MPEG2是面向廣播的高質量編碼系統(tǒng),并且不適合具有比MPEG1更少的代碼量的高壓縮率的編碼系統(tǒng)。隨著近年來廣泛使用便攜終端,預計越來越需要具有比MPEG1更少的代碼量的高壓縮率的編碼系統(tǒng)。根據(jù)這些情況,基于MPEG4的編碼標準在1998年12月被ISO/IEC(國際標準化組織/國際電工委員會)14496-2批準為國際標準。
這種系統(tǒng)促進了最初針對遠程會議的圖像編碼的H26L(ITU-TQ6/16 VCEG)的標準化。該系統(tǒng)導致更多增加的計算量,但確保比MPEG2和MPEG4更高的編碼效率。作為MPEG4活動的一部分,基于H26L結合了各種功能。提出一種編碼系統(tǒng)來確保高得多的編碼效率。這種系統(tǒng)的標準化被推廣為增強壓縮視頻編碼的聯(lián)合模型。在2003年3月,這些系統(tǒng)被命名為H264和MPEG-4Part10(AVC高級視頻編碼),并被確立為國際標準。
圖3是說明基于AVC的編碼裝置的框圖。編碼裝置1從多個幀內(nèi)預測模式和幀間預測模式中選擇最佳預測模式。編碼裝置1根據(jù)預測模式從視頻數(shù)據(jù)中減去預測值,從而產(chǎn)生差異數(shù)據(jù)。編碼裝置1按照正交變換、量化和變長編碼來處理差異數(shù)據(jù)。以這種方式,視頻數(shù)據(jù)經(jīng)過幀內(nèi)編碼和幀間編碼。
在編碼裝置1中,模/數(shù)轉換器(A/D)2對視頻信號S1進行模數(shù)轉換,從而輸出視頻數(shù)據(jù)D1。圖像重排緩沖器3接收從模/數(shù)轉換器2輸出的視頻數(shù)據(jù)D1。圖像重排緩沖器3根據(jù)與編碼裝置1的編碼過程有關的GOP(圖像組)結構重新排列視頻數(shù)據(jù)D1的各幀以便輸出。
減法器4接收從圖像重排緩沖器3輸出的視頻數(shù)據(jù)D1。在幀內(nèi)編碼過程中,減法器4產(chǎn)生并輸出視頻數(shù)據(jù)D1與從幀內(nèi)預測器5產(chǎn)生的預測值之間的差異數(shù)據(jù)D2。在幀間編碼過程中,減法器4產(chǎn)生并輸出視頻數(shù)據(jù)D1與從運動預測器/補償器6產(chǎn)生的預測值之間的差異數(shù)據(jù)D2。正交變換器7接收來自減法器4的輸出數(shù)據(jù)D2。正交變換器7執(zhí)行正交變換過程,諸如離散余弦變換、Karhunen-Loeve變換等。正交變換器7輸出變換系數(shù)數(shù)據(jù)D3作為過程結果。
量化器8在速率控制器9的速率控制下使用量化標度,以及量化并輸出變換系數(shù)數(shù)據(jù)D3。無損編碼裝置10根據(jù)無損編碼過程、諸如變長編碼、算術編碼等處理來自量化器8的輸出數(shù)據(jù),并輸出處理后的數(shù)據(jù)。此外,無損編碼裝置10還從幀內(nèi)預測器5和運動預測器/補償器6獲取有關與幀內(nèi)編碼關聯(lián)的幀內(nèi)預測模式的信息以及有關與幀間編碼關聯(lián)的運動矢量的信息。無損編碼裝置10把這些信息分配給輸出數(shù)據(jù)D4中的首標信息,并輸出它。
累積緩沖器11積累來自無損編碼裝置10的輸出數(shù)據(jù)D4,并以后續(xù)傳輸通路的傳輸速率輸出所述輸出數(shù)據(jù)D4。速率控制器9監(jiān)測累積緩沖器11的未使用容量,以便監(jiān)測因編碼過程所產(chǎn)生的代碼量。根據(jù)監(jiān)測結果,速率控制器9改變量化器8中的量化標度,以便控制從編碼裝置1所產(chǎn)生的代碼量。
逆量化器13對來自量化器8的輸出數(shù)據(jù)進行逆量化,從而再現(xiàn)量化器8的輸入數(shù)據(jù)。逆正交變換器14根據(jù)逆正交變換處理來自逆量化器13的輸出數(shù)據(jù),從而再現(xiàn)正交變換器7的輸入數(shù)據(jù)。解塊濾波器15從來自逆正交變換器14的輸出數(shù)據(jù)中消除塊失真以輸出數(shù)據(jù)。幀內(nèi)預測器5或運動預測器/補償器6產(chǎn)生預測值。在適當?shù)那闆r下,幀存儲器16把這個預測值加至來自解塊濾波器15的輸出數(shù)據(jù),以便記錄此數(shù)據(jù)作為參考圖像信息。
在幀間編碼過程中,運動預測器/補償器6按照幀存儲器16中的參考圖像信息根據(jù)預測幀檢測從圖像重排緩沖器3輸出的視頻數(shù)據(jù)的運動矢量。利用所檢測的運動矢量,運動預測器/補償器6執(zhí)行幀存儲器16中的參考圖像信息的運動補償,以便產(chǎn)生預測圖像信息。運動預測器/補償器6把基于預測圖像信息的預測值輸出到減法器4。
在幀內(nèi)編碼過程中,幀內(nèi)預測器5根據(jù)在幀存儲器16中積累的參考圖像信息來確定幀內(nèi)預測模式。根據(jù)確定結果,幀內(nèi)預測器5從參考圖像信息中產(chǎn)生預測圖像信息的預測值,并把預測值輸出到減法器4。
以這種方式,編碼系統(tǒng)分別在幀間編碼和幀內(nèi)編碼過程中,根據(jù)與幀間預測關聯(lián)的運動補償產(chǎn)生差異數(shù)據(jù)D2,以及根據(jù)幀內(nèi)預測產(chǎn)生差異數(shù)據(jù)D2。系統(tǒng)被構造成按照正交變換、量化和變長編碼來處理這些差異數(shù)據(jù)D2并傳送它們。
圖4是框圖,說明在上述編碼過程之后對編碼數(shù)據(jù)D4解碼的解碼裝置。在解碼裝置20中,累積緩沖器21暫時存儲經(jīng)由傳輸通路輸入的編碼數(shù)據(jù)D4。無損解碼裝置22按照變長解碼、算術解碼等對來自累積緩沖器21的輸出數(shù)據(jù)解碼。以這種方式,無損解碼裝置22再現(xiàn)編碼裝置1中的無損編碼裝置10的輸入數(shù)據(jù)。當輸出數(shù)據(jù)經(jīng)過幀內(nèi)編碼時,無損解碼裝置22對首標中存儲的與幀內(nèi)預測模式有關的信息解碼,以便把數(shù)據(jù)傳送給幀內(nèi)預測器23。當輸出數(shù)據(jù)經(jīng)過幀間編碼時,無損解碼裝置22對首標中存儲的與運動矢量有關的信息解碼,以便把數(shù)據(jù)傳送給預測器/補償器24。
逆量化器25對來自無損解碼裝置22的輸出數(shù)據(jù)進行逆量化。以這種方式,逆量化器25再現(xiàn)輸入到編碼裝置1的量化器8的變換系數(shù)數(shù)據(jù)D3。逆正交變換器26接收從逆量化器25輸出的變換系數(shù)數(shù)據(jù),并執(zhí)行四元逆正交變換過程。以這種方式,逆正交變換器26再現(xiàn)輸入到編碼裝置1的正交變換器7的差異數(shù)據(jù)D2。
加法器27接收從逆正交變換器26輸出的差異數(shù)據(jù)D2。在幀內(nèi)編碼過程中,加法器27相加差異數(shù)據(jù)D2和基于從幀內(nèi)預測器23產(chǎn)生的預測圖像的預測值,并輸出結果。在幀間編碼過程中,加法器27相加差異數(shù)據(jù)D2和基于從運動預測器/補償器24產(chǎn)生的預測圖像的預測值,并輸出結果。以這種方式,加法器27再現(xiàn)編碼裝置1的減法器4的輸入數(shù)據(jù)。
解塊濾波器28從來自加法器27的輸出數(shù)據(jù)中消除塊失真并輸出數(shù)據(jù)。圖像重排緩沖器29根據(jù)GOP結構重新排列和輸出從解塊濾波器28輸出的視頻數(shù)據(jù)幀。數(shù)/模(D/A)轉換器30對來自圖像重排緩沖器29的輸出數(shù)據(jù)進行數(shù)/模轉換,并輸出數(shù)據(jù)。
幀存儲器31記錄并保存來自解塊濾波器28的輸出數(shù)據(jù)作為參考圖像信息。在幀間編碼過程中,運動預測器/補償器24根據(jù)從無損解碼裝置22通知的運動矢量信息來執(zhí)行對幀存儲器31中所保存的參考圖像信息的運動補償。運動預測器/補償器24產(chǎn)生基于預測圖像的預測值,并把預測值輸出給加法器27。在幀內(nèi)編碼過程中,幀內(nèi)預測器23根據(jù)從無損解碼裝置22通知的幀內(nèi)預測模式中的預測圖像、從幀存儲器31所保存的參考圖像信息中產(chǎn)生預測值。幀內(nèi)預測器23把預測值輸出給加法器27。
按照上述編碼過程的幀內(nèi)編碼提供幀內(nèi)4×4預測模式和幀內(nèi)16×16預測模式。AVC被構造成執(zhí)行各由4×4像素組成的塊單元中的差異數(shù)據(jù)D2的正交變換。幀內(nèi)4×4預測模式產(chǎn)生與用于正交變換過程的塊單元中的幀內(nèi)預測關聯(lián)的預測值。另一方面,16×16預測模式產(chǎn)生與用于正交變換過程的多個塊單元中的幀內(nèi)預測關聯(lián)的預測值。多個塊由水平的兩個塊和垂直的兩個塊組成。
如圖5所示,幀內(nèi)4×4預測模式提供由4×4像素a至p組成的塊來產(chǎn)生預測值。13個相鄰像素A至M的部分被用作預測像素來產(chǎn)生預測值。預測像素用來產(chǎn)生預測值。13個像素A至M按照以下方式形成。四個像素A至D在垂直方向與塊的掃描起始邊相鄰。四個像素E至H與在四個像素A至D的掃描終止邊的像素D鄰接。四個像素I至L在水平方向與塊的掃描起始邊相鄰。像素M位于四個水平相鄰像素I至L的掃描起始邊處的像素I上方。
幀內(nèi)4×4預測模式按照用于產(chǎn)生預測值的13個像素A至M與4×4像素a至p之間的相對關系來定義預測模式0至8,如圖6和圖7所示。如圖6所示,例如,模式0和1利用與用于產(chǎn)生預測值的13個像素A至M垂直和水平相鄰的像素A至D和I至L來產(chǎn)生預測值。
更明確地說,如圖8(A)中的箭頭所示,模式0利用垂直相鄰像素A至D來產(chǎn)生預測值。在這個模式中,預測像素被分配給4×4像素a至p中的第一列垂直鄰接像素a、e、i和m之上的像素A來產(chǎn)生預測值。此外,預測像素被分配給第二列像素b、f、j和n之上的像素B。預測像素分別被分配給第三列像素c、g、k和o以及第四列像素d、h、l和p之上的像素C和D。預測像素A至D的像素值被定義為像素a至p的預測值。模式0僅當預測像素A至D在此模式中有意義時才生效。
如圖8(B)所示,模式1利用水平相鄰像素I至L來產(chǎn)生預測值。在這個模式中,預測像素被分配給4×4像素a至p中的第一行水平鄰接像素a至d的左側的像素I來產(chǎn)生預測值。預測像素被分配給第二行水平鄰接像素e至h的左側的像素J。預測像素分別被分配給第三行像素i至k以及第四行像素m至p左側的像素K和L。預測像素I至L的像素值被定義為像素a至p的預測值。模式1僅當預測像素I至L在此模式中有意義時才生效。
如圖8(C)所示,模式2利用與該塊垂直和水平相鄰的13個像素A至M中的像素A至D和I至L來產(chǎn)生預測值。當像素A至D和I至L都有意義時,下式可用來產(chǎn)生像素a至p的預測值。
(A+B+C+D+I+J+K+L+4)>>3在模式2中,當像素A至D都無意義時,式(2)用來產(chǎn)生預測值。當像素I至L都無意義時,式(3)用來產(chǎn)生預測值。當像素A至D和I至L都無意義時,預測值被設置為128。
(I+J+K+L+2)>>2[式3](A+B+C+D+2)>>2如圖8(D)所示,模式3利用13個像素A至M中的水平鄰接像素A至H來產(chǎn)生預測值。模式3僅當像素A至H中的像素A至D和I至M都有意義時才生效。下式用來產(chǎn)生像素a至p的預測值。
a (A+23+C+2)>>2b,e(B+2C+D+2)>>2c,f,i (C+2D+E+2)>>2d,g,j,m (D+2E+F+2)>>2h,k,n (E+2F+G+2)>>2l,o(F+2G+H+2)>>2p (G+3H+2)>>2如圖8(E)所示,模式4利用13個像素A至M中與4×4像素塊a至p相鄰的像素A至D和I至M來產(chǎn)生預測值。模式4僅當像素A至D和I至M都有意義時才生效。下式用來產(chǎn)生像素a至p的預測值。
m (J+2K+L+2)>>2i,n (I+2J+K+2)>>2e,j,o(M+2I+J+2)>>2a,f,k,p (A+2M+I+2)>>2b,g,l(M+2A+B+2)>>2c,h (A+2B+C+2)>>2d (B+2C+D+2)>>2如圖8(F)所示,模式5與模式4相似,利用13個像素A至M中與4×4像素塊a至p相鄰的像素A至D和I至M來產(chǎn)生預測值。模式5僅當像素A至D和I至M都有意義時才生效。下式用來產(chǎn)生像素a至p的預測值。
a,j (M+A+1)>>1b,k (A+B+1)>>1c,l (B+C+1)>>1d (C+D+1)>>1e,n (I+2M+A+2)>>2f,o (M+2A+B+2)>>2g,p (A+2B+C+2)>>2h (B+2C+D+2)>>2l (M+2I+J+2)>>2m (I+2J+K+2)>>2
如圖8(G)所示,模式6與模式4和模式5相似,利用13個像素A至M中與4×4像素塊a至p相鄰的像素A至D和I至M來產(chǎn)生預測值。模式6僅當像素A至D和I至M都有意義時才生效。下式用來產(chǎn)生像素a至p的預測值。
a,g (M+I+1)>>1b,h (I+2M+A+2)>>2c (M+2A+B+2)>>2d (A+2B+C+2)>>2e,k (I+J+1)>>1f,l (M+2I+J+2)>>2i,o (J+K+1)>>1j,p (I+2J+K+2)>>2m (K+L+1)>>1n (J+2K+L+2)>>2如圖8(H)所示,模式7利用與4×4像素塊a至p頂部相鄰的四個像素A至D以及四個像素A至D之后的三個像素E至G來產(chǎn)生預測值。模式7僅當像素A至D和I至M都有意義時才生效。下式用來產(chǎn)生像素a至p的預測值。
a (A+B+1)>>1b,i (B+C+1)>>1c,j (C+D+1)>>1d,k (D+E+1)>>1l (E+F+3)>>1e (A+2B+C+2)>>2f,m (B+2C+D+2)>>2g,n (C+2D+E+2)>>2h,o (D+2E+F+2)>>2p (E+2F+G+2)>>2如圖8(I)所示,模式8利用13個像素A至M中與4×4像素塊的左側相鄰的四個像素I至L來產(chǎn)生預測值。模式8僅當像素A至D和I至M都有意義時才生效。下式用來產(chǎn)生像素a至p的預測值。
a (I+J+1)>>1b (I+2J+K+2)>>2c,e (J+K+1)>>1d,f (J+2K+L+2)>>2g,i (K+L+1)>>1h,j (K+3L+2)>>2k,l,m,n,o,p L在幀內(nèi)16×16預測模式中,如圖9所示,塊B由16×16像素P(0,15)至P(15,15)組成以產(chǎn)生預測值。對于組成該塊的像素P(0,15)至P(15,15)以及與宏塊MB上方和左側相鄰的像素P(0,-1)至P(15,-1)和P(-1,0)至P(-1,15)定義預測像素。這些預測像素用來產(chǎn)生預測值。
如圖10所示,幀內(nèi)16×16預測模式定義預測模式0至3。在這些模式之中,模式0僅當與宏塊MB頂部相鄰的像素P(0,-1)至P(15,-1)(假定x或y在P(x,-1)中為-1至15)有意義時才生效。下式用來產(chǎn)生組成塊B的像素P(0,15)至P(15,15)的預測值。如圖11(A)所示,與塊B相鄰的像素P(0,-1)至P(15,-1)的像素值用來產(chǎn)生塊B的垂直方向上的鄰接像素的預測值。
Pred(x,y)=P(x,-1);x,y=0..15模式1僅當與塊B的左側相鄰的像素P(-1,0)至P(-1,15)(假定x或y在P(-1,y)中為-1至15)有意義時才生效。下式用來產(chǎn)生組成塊B的像素P(0,15)至P(15,15)的預測值。如圖11(B)所示,與塊B相鄰的像素P(-1,0)至P(-1,15)的像素值用來產(chǎn)生塊B的水平方向上的鄰接像素的預測值。
Pred(x,y)=P(-1,y);x,y=0..15模式2僅當與塊B頂部和左側相鄰的像素P(0,-1)至P(15,-1)和P(-1,0)至P(-1,15)都有意義時才生效。下式用來查找預測值。如圖11(C)所示,像素P(0,-1)至P(15,-1)和P(-1,0)至P(-1,15)的像素值的平均值用來產(chǎn)生組成塊B的像素的預測值。
Pred(x,y)=[Σx′=015P(x′,-1)+Σy′=015P(-1,y′)+16]>>5]]>其中x,y=0..15在模式2中,可能存在以下情況在與塊B頂部和左側相鄰的像素P(0,-1)至P(15,-1)和P(-1,0)至P(-1,15)之中,像素P(-1,0)至P(-1,15)無意義。在這種情況下,式(13)用于根據(jù)在有效側的相鄰像素的平均值來產(chǎn)生像素的預測值。當與左側相鄰的像素P(-1,0)至P(-1,15)無意義時,使用式(14)。同樣在這種情況下,在有效側的相鄰像素的平均值還用來產(chǎn)生組成塊B的像素的預測值。當與塊B頂部和左側相鄰的像素P(0,-1)至P(15,-1)和P(-1,0)至P(-1,15)中沒有一個有意義時,預測值設置為128。
其中x,y=0..15[式14]Pred(x,y)=[Σx′=015P(x′-1)+8]>>4]]>其中x,y=0..15模式3僅當與塊B頂部和左側相鄰的像素P(0,-1)至P(15,-1)和P(-1,0)至P(-1,15)都有意義時才生效。下式用來產(chǎn)生預測值。如圖11(D)所示,對角線運算過程用來產(chǎn)生像素的預測值。
Pred(x,y)=Clip1((a+b·(x-7)+c·(y-7)+16)>>5)a=16·(P(-1.15)+P(15.-1))b=(5·H+32)>>6c=(5·V+32)>>6H=Σx=18x-(P(7+x,-1)-P(7-x,-1))]]>V=Σy=18y-(P(-1,7+y)-P(-1,7-y))]]>以這種方式,編碼裝置1的幀內(nèi)預測器5輸入從用于I、P和B圖像的圖像重排緩沖器3輸出的視頻數(shù)據(jù)D1。幀內(nèi)預測器5執(zhí)行所謂的幀內(nèi)預測,根據(jù)幀存儲器16中所保存的參考圖像信息來選擇最佳預測模式。對于所選預測模式下的幀內(nèi)編碼,幀內(nèi)預測器5根據(jù)參考圖像信息以所選預測模式產(chǎn)生預測值,并把預測值輸出到減法器4。幀內(nèi)預測器5將預測模式通知無損編碼裝置10,以便與編碼數(shù)據(jù)D4一起傳送預測模式。相反,解碼裝置20的幀內(nèi)預測器23根據(jù)隨編碼數(shù)據(jù)D4所傳送的預測模式中的信息來計算預測值,并把所計算的值輸出到加法器27。
如圖12所示,幀間編碼采用多個參考幀。任一個參考幀Ref被選擇用于待處理的幀Org,使得運動補償是可行的??赡艽嬖谝韵虑闆r與用于運動補償?shù)膲K對應的一部分隱藏在緊靠前面的幀中。可能存在另一種情況閃光臨時改變緊靠前面的幀的整個像素值。在這些情況下,高精度運動補償可改進數(shù)據(jù)壓縮效率。
如圖13(A1)所示,運動補償參照16×16像素塊應用于各塊。此外,根據(jù)可變MCBlock大小,樹形結構的運動補償?shù)玫街С?。相應地,如圖13(A2)至13(A4)所示,16×16像素塊可在水平或垂直方向上一分為二,從而提供16×8、8×16和8×8像素的子宏塊。子宏塊具備彼此無關的運動矢量和參考幀,從而能夠進行運動補償。如圖13(B1)至13(B4)所示,8×8像素的子宏塊進一步被劃分為8×8、8×4、4×8和4×4像素塊。這些塊具備彼此無關的運動矢量和參考幀,從而能夠進行運動補償。在以下描述中,16×16像素的最大基本塊在運動補償方面被稱作宏塊。
運動補償采用6抽頭FIR濾波器來提供1/4像素精度的運動補償。在圖14中,代碼A表示1像素精度的像素值。代碼b至d表示1/2像素精度的像素值。代碼e1至e3表示1/4像素精度的像素值。在這種情況下,下列計算首先通過采用值1、-5、20、20、-5和1對6抽頭FIR濾波器的抽頭輸入加權來執(zhí)行。以這種方式,像素值b或d以水平或垂直鄰接像素之間的1/2像素精度來計算。
F=A-2-5·A-1+20·A0+20·A1-5·A2+A3b,d=Clip1((F+16)>>5)以1/2精度計算的像素值b或d用于通過采用值1、-5、20、20、-5和1對6抽頭FIR濾波器的抽頭輸入加權來執(zhí)行下列計算。以這種方式,像素值c以水平和垂直鄰接像素之間的1/2像素精度來計算。
F=b-2-5·b-1+20·b0+20·b1-5·b2+b3或F=d-2-5·d-1+20·d0+20·d1-5·d2+d3c=Clip1((F+512)>>10)以1/2精度計算的像素值b至d被用于根據(jù)線性內(nèi)插來執(zhí)行下列計算,并以1/4像素精度計算像素e1至e3。用于式(16)和(17)中加權的歸一化過程在所有垂直和水平內(nèi)插過程完成之后執(zhí)行。
e1=(A+b+1)>>1e2=(b+d+1)>>1e3=(b+c+1)>>1以這種方式,編碼裝置1的運動預測器/補償器6利用多個預測幀根據(jù)P和B圖像中的宏塊和子宏塊、以1/4像素精度檢測運動矢量。按照幀存儲器16中所保存的參考圖像信息由編碼過程級(codingprocess level)和輪廓(profile)來定義預測幀。運動預測器/補償器6根據(jù)參考幀以及具有最小預測誤差的塊來檢測運動矢量。當以這種方式檢測時,運動預測器/補償器6采用參考幀和塊對于幀存儲器16中所保存的參考圖像信息以1/4像素精度執(zhí)行運動補償,以及執(zhí)行所謂的幀間預測過程。當把幀間預測用于幀間編碼過程時,運動預測器/補償器6根據(jù)運動補償把像素值作為預測值輸出到減法器4。運動預測器/補償器6將參考幀、塊和運動矢量通知無損編碼裝置10,并將它們與編碼數(shù)據(jù)D4一起傳送。另一方面,解碼裝置20的運動預測器/補償器24采用隨編碼數(shù)據(jù)D4傳送的參考幀、塊和運動矢量對幀存儲器16中所保存的參考圖像信息以1/4像素精度執(zhí)行運動補償,并產(chǎn)生預測值。運動預測器/補償器24把這個預測值輸出到加法器27。在P和B圖像方面,編碼裝置1根據(jù)按照幀內(nèi)預測器5的幀內(nèi)預測結果以及按照運動預測器/補償器6的幀間預測結果選擇幀內(nèi)編碼或幀間編碼。根據(jù)選擇結果,幀內(nèi)預測器5和運動預測器/補償器6分別按照幀內(nèi)預測和幀間預測輸出預測值。
相反,例如,速率控制器9采用根據(jù)TM5(MPEG-2測試模型5)的技術來提供速率控制?;赥M5的速率控制技術通過執(zhí)行圖15中的過程來控制量化器8的量化標度。開始此過程時,速率控制器9從步驟SP1轉移到步驟SP2。速率控制器9計算組成一個GOP的圖像之中未編碼圖像的目標代碼量,以便向圖像分配位。TM5根據(jù)以下兩個假設來計算各圖像的代碼分配量。
第一假設是,各圖像類型具有用于對圖像編碼的平均量化標度與所產(chǎn)生代碼量之間的恒定積,除非圖像變化?;诖?,速率控制對圖像編碼,然后更新參數(shù)Xi、Xp和Xb(全局復雜度度量),以便利用下式表示各圖像類型的圖像復雜度。利用這些參數(shù)Xi、Xp和Xb,基于TM5的速率控制估算量化標度與所產(chǎn)生代碼量之間的關系,以便對下一個圖像編碼。
Xi=SiQtXp=SpQpXb=SbQb在式(19)中,變量的下標表示I、P和B圖像。Si、Sp和Sb表示根據(jù)圖像的編碼過程所產(chǎn)生的代碼位數(shù)量。Qi、Qp和Qb表示用于對圖像編碼的平均量化標度代碼。下式利用目標代碼量比特率(比特/秒)提供參數(shù)Xi、Xp和Xb的初始值。
Xi=160×bit_rate/115Xp=60×bit_rate/115Xb=42×bit_rate/115第二假設是,當下式保持Kp與Kb之間的關系時,整體圖像質量始終為最佳,其中Kp為P圖像的量化標度代碼與I圖像的量化標度之比,以及Kb為B圖像的量化標度代碼與I圖像的量化標度之比。
Kp=1.0;Kb=1.4也就是說,這個假設表示,通過將B圖像的量化標度始終設置成I或P圖像的量化標度的1.4倍,整體圖像質量保持為最佳。B圖像比I和P圖像更粗略地量化,以便使分配給B圖像的代碼量更經(jīng)濟。作為補償,更多代碼量被分配給I和P圖像,以便提高這些圖像的圖像質量。另外,這提高了參考I和P圖像的B圖像的圖像質量。因此,整體圖像質量被認為是最佳的。
以這種方式,速率控制器9采用按照下式的計算來計算分配給圖像的位數(shù)量Ti、Tp和Tb。在下式中,Np或Nb各表示沒有在待處理的GOP中編碼的P或B圖像的數(shù)量。
Ti=max{R1+NPXpXiKb+NbXbXiKb,bit_rate/(8×picture_rate)}]]>Tp=max{RNp+NbKpXbKbXp,bit_rate/(8×picture_rate)}]]>Tb=max{RNb+NPKpXpKoXb+NbXbXiKb,bit_rate/(8×picture_rate)}]]>根據(jù)上述兩個假設,速率控制器9估算為圖像所產(chǎn)生的代碼量。當圖像具有不同于針對代碼分配的圖像類型時,速率控制器9估算針對分配的圖像的所產(chǎn)生代碼量是在圖像質量優(yōu)化條件下圖像所產(chǎn)生的代碼量的多少倍。根據(jù)這個假設,速率控制器9估算GOP中的未編碼圖像與具有針對代碼分配的圖像類型的相等數(shù)量的圖像之間的對應關系。根據(jù)這個估算結果,速率控制器9計算分配給各圖像的位數(shù)量。當計算待分配的位數(shù)量時,速率控制器9把下限設置為考慮到經(jīng)常需要的代碼數(shù)量、如首標等的某個值。
基于TM5的速率控制則進入步驟SP3,利用虛擬緩沖器控制來執(zhí)行速率控制過程。
速率控制過程提供與圖像類型對應的三種獨立的虛擬緩沖器,以便確保在步驟SP2找到的用于分配給圖像的位數(shù)量Ti、Tp和Tb與實際產(chǎn)生的代碼數(shù)量之間的對應關系。根據(jù)虛擬緩沖器的容量,此過程在宏塊單元中在反饋控制下計算量化器8的量化標度。
下式用于首先計算三種虛擬緩沖器的占用率。式中,d0i、d0p和d0b表示虛擬緩沖器的初始占用量;Bj表示從圖像開始到第j個宏塊的所產(chǎn)生位數(shù)量;以及MB_cnt表示一個圖像中的宏塊數(shù)量。
dji=d0i+Bj-1-Ti×(j-1)MB_cnt]]>diP=dop+Bj-1-To(j-1)MB_cnt]]>djb=d0b+Bj-1-Tb×(j-1)MB_cnt]]>根據(jù)從式(23)得出的計算結果,過程采用下式來計算第j個宏塊的量化標度。
Qj=dj×31r]]>
式中,r表示控制反饋響應的反應參數(shù)。根據(jù)TM5,下式用于提供反應參數(shù)r和初始值doi、dop和dob。
r=2×bit_ratepicture_rate]]>doi=10×r/31;]]>dop=Kpdoi;]]>dob=Kbdoi]]>TM5速率控制進入步驟SP4,校正在步驟SP3求出的、考慮到可視特性的量化標度。這執(zhí)行考慮到可視特性的最佳量化。最佳量化過程通過根據(jù)宏塊的活動校正在步驟SP3求出的量化標度來執(zhí)行。目的是對于其中視覺劣化易于注意到的平淡部分進行更細微地量化,或者對于其中視覺劣化較難以注意到的復雜圖案進行更粗略地量化。
通過下式來計算16×16像素的各宏塊相對于構成宏塊的各由8×8像素組成的四個塊的活動。計算采用總共八個塊的像素,即幀DCT模式中的四個塊以及場DCT模式中的四個塊。這表明宏塊的亮度等級的平滑度。
actj=1+min(var_sblksblk=1.8)]]>var_sblk=164Σk=164(Pk-P‾)2]]>P‾=164Σk=164Pk]]>在這個等式中,Pk表示原始圖像上的亮度信號塊中的像素值。為了通過在只有宏塊的一部分包含平淡部分時提供精細步長來防止圖像質量劣化,等式(26)采用最小值。
在利用這個等式求出活動之后,速率控制器9采用下式對活動歸一化,以便求出歸一化活動Nactj,其值的范圍是從0.5到2。在等式中,avg_act表示最近編碼圖像中的活動actj的平均值。
Nactj=2×actj+avg_actactj+2×avg_act]]>速率控制器9采用歸一化活動Nactj來執(zhí)行下式的計算,以及校正在步驟SP3所計算的量化標度Qj,從而控制量化器8。
mquantj=Qj×Nactj根據(jù)上述兩個假設,基于TM5的速率控制把代碼數(shù)量分發(fā)給圖像和宏塊。提供反饋控制以便利用實際產(chǎn)生的代碼數(shù)量依次校正已分發(fā)的代碼數(shù)量。以這種方式,量化標度被控制而被依次編碼。
但是,這種基于反饋的速率控制利用已編碼幀的特性來提供代碼數(shù)量控制。相應地,圖像質量穩(wěn)定性可能受到損害。常數(shù)值被分配給用于I、P和B圖像的量化標度比率作為目標值。這些比率根據(jù)序列而服從不同的最佳值。
下面將根據(jù)前饋控制是可用的假設來描述最佳速率控制。假定下式提供失真D與量化標度之間的關系。
D=aQm下式定義成本函數(shù)F。式中,N表示GOP中包含的幀數(shù),且被定義為1≤i≤N。
F=1NΣiDi]]>成本函數(shù)F在下式的限制條件下求解,其中假定R為所有未編碼幀的代碼分配數(shù)量。能夠計算最佳分配代碼數(shù)量Ri。
R=ΣiRi]]>一般來說,這個計算可通過下式采用Lagrange乘法器方法來求解。
=aNΣig(Ri)m-(R-ΣiRi)]]>=aNΣiQim-λ(R-Σif(Qi))]]>當R=f(Q)以及Q=g(R)時,成本函數(shù)F在下列條件下產(chǎn)生最小值。
以這種方式,最佳分配代碼數(shù)量Ri可通過解這些聯(lián)立方程來求出。下式表示MPEG2TM5中的復雜度參數(shù)X。因此,在量化標度Q與代碼數(shù)量R之間建立式(35)中的關系。
Q·Rα=X[式35]logR=a·log Q+b式中,α是確定量化器8中的量化特性(速率-量化特性)的參數(shù)。假定α為固定值,則式(32)可由下式表達。解此方程可得式(37)。
=aNΣiXim·Ri-αm-λ(R-ΣiRi)]]> Ri=(aαmNλXim)11+αm]]>R=ΣiRi=Σi(aαmNλXim)11+αm]]>λ11+αm=1RΣi(aαmN·Xim)11+αm]]>[式37]Ri=R·Xim1+αmΣiXim1+αm]]>Qi=Xi11+αmRα{ΣiXim1+αm}]]>式(37)提供歸納根據(jù)MPEG2 TM5的代碼數(shù)量分配的解。假定相應的圖像類型保持恒定量化特性,將此式代入下式可得出式(21)中的關系表達式。以這種方式,基于TM5的速率控制采用1.0和1.4的固定值用于比率Kp和Kb。但是,通過根據(jù)前饋控制預先檢測復雜度參數(shù)X,能夠更適當?shù)胤峙浯a數(shù)量。
α=1;Kp=(XiXp)1m+1;Kb=(XiXB)1m+1]]>在這種編碼裝置方面,例如,JP-A No.56827/2004提出各種設計方案來實現(xiàn)解碼過程等。
編碼裝置1與各種記錄裝置結合,不僅可處理基帶提供的視頻數(shù)據(jù),而且還可處理從網(wǎng)絡媒體和包裝媒體提供的視頻數(shù)據(jù)。這種網(wǎng)絡媒體和包裝媒體采用MPEG2等壓縮視頻數(shù)據(jù)。當處理這種視頻數(shù)據(jù)時,編碼裝置不僅用作對壓縮視頻數(shù)據(jù)解碼的解碼裝置,而且還用作轉換數(shù)據(jù)壓縮格式的圖像轉換裝置。
當編碼裝置構造成用作解碼裝置以及圖像轉換裝置時,顯然希望簡化整體構造。
JP-A No.56827/2004發(fā)明內(nèi)容考慮了上述方面而提出本發(fā)明。需要構造一種用作解碼裝置和圖像轉換裝置的編碼裝置。在這種情況下,希望提供能夠簡化整體構造的編碼裝置、編碼方法、編碼方法程序以及記錄編碼方法程序的記錄媒體。
要解決上述問題,本發(fā)明的一個實施例應用于一種編碼裝置,它采用編碼部件從多個幀內(nèi)預測模式和幀間預測模式中選擇最佳預測模式,通過按照所選預測模式從視頻數(shù)據(jù)中減去預測值來產(chǎn)生差異數(shù)據(jù),對差異數(shù)據(jù)執(zhí)行正交變換、量化和變長編碼過程,以及按照幀內(nèi)編碼和幀間編碼對視頻數(shù)據(jù)編碼。根據(jù)本發(fā)明的實施例提供幀內(nèi)預測部件,用于在編碼部件編碼之前預先為至少一個GOP利用視頻數(shù)據(jù)來選擇最佳預測模式,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀內(nèi)預測變量;幀間預測部件,用于在編碼部件編碼之前預先為至少一個GOP利用視頻數(shù)據(jù)選擇最佳預測模式,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀間預測變量;難度計算部件,用于將幀內(nèi)預測的變量與幀間預測的變量進行比較,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的變量;以及速率控制部件,用于根據(jù)表明差異數(shù)據(jù)的大小的變量在圖像之中分發(fā)要分配給一個GOP的數(shù)據(jù)量,從而計算各圖像的目標代碼量,并根據(jù)目標代碼量為編碼部件的編碼過程提供速率控制。
本發(fā)明的另一個實施例應用于一種編碼方法,它采用編碼部件從多個幀內(nèi)預測模式和幀間預測模式中選擇最佳預測模式,通過按照所選預測模式從視頻數(shù)據(jù)中減去預測值來產(chǎn)生差異數(shù)據(jù),對差異數(shù)據(jù)執(zhí)行正交變換、量化和變長編碼過程,以及按照幀內(nèi)編碼和幀間編碼對視頻數(shù)據(jù)編碼。根據(jù)本發(fā)明的實施例包括以下步驟在編碼部件編碼之前預先為至少一個GOP利用視頻數(shù)據(jù)來選擇最佳預測模式,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀內(nèi)預測變量;在編碼部件編碼之前預先為至少一個GOP利用視頻數(shù)據(jù)選擇最佳預測模式,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀間預測變量;將幀內(nèi)預測的變量與幀間預測的變量進行比較,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的變量;以及根據(jù)表明差異數(shù)據(jù)的大小的變量在圖像之中分發(fā)要分配給一個GOP的數(shù)據(jù)量,從而計算各圖像的目標代碼量,并根據(jù)目標代碼量為編碼部件的編碼過程提供速率控制。
本發(fā)明的又一個實施例應用于一種由計算部件執(zhí)行以控制編碼部件的操作的編碼方法程序。編碼方法程序包括以下步驟在編碼部件編碼之前預先為至少一個GOP利用視頻數(shù)據(jù)來選擇最佳預測模式,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀內(nèi)預測變量;在編碼部件編碼之前預先為至少一個GOP利用視頻數(shù)據(jù)選擇最佳預測模式,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀間預測變量;將幀內(nèi)預測的變量與幀間預測的變量進行比較,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的變量;以及根據(jù)表明差異數(shù)據(jù)的大小的變量在圖像之中分發(fā)要分配給一個GOP的數(shù)據(jù)量,從而計算各圖像的目標代碼量,并根據(jù)目標代碼量為編碼部件的編碼過程提供速率控制。
本發(fā)明的又一個實施例應用于一種用于記錄由計算部件執(zhí)行以控制編碼部件的操作的編碼方法程序的記錄媒體。編碼方法程序包括以下步驟在編碼部件編碼之前預先為至少一個GOP利用視頻數(shù)據(jù)來選擇最佳預測模式,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀內(nèi)預測變量;在編碼部件編碼之前預先為至少一個GOP利用視頻數(shù)據(jù)選擇最佳預測模式,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀間預測變量;將幀內(nèi)預測的變量與幀間預測的變量進行比較,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的變量;以及根據(jù)表明差異數(shù)據(jù)的大小的變量在圖像之中分發(fā)要分配給一個GOP的數(shù)據(jù)量,從而計算各圖像的目標代碼量,并根據(jù)目標代碼量為編碼部件的編碼過程提供速率控制。
此實施例的結構可應用于編碼裝置,以便包括幀內(nèi)預測部件,用于在編碼部件編碼之前預先為至少一個GOP利用視頻數(shù)據(jù)來選擇最佳預測模式,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀內(nèi)預測變量;幀間預測部件,用于在編碼部件編碼之前預先為至少一個GOP利用視頻數(shù)據(jù)選擇最佳預測模式,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀間預測變量;難度計算部件,用于將幀內(nèi)預測的變量與幀間預測的變量進行比較,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的變量;以及速率控制部件,用于根據(jù)表明差異數(shù)據(jù)的大小的變量在圖像之中分發(fā)要分配給一個GOP的數(shù)據(jù)量,從而計算各圖像的目標代碼量,并根據(jù)目標代碼量為編碼部件的編碼過程提供速率控制。可能存在將編碼裝置構造為用作解碼裝置和圖像轉換裝置的情況。在這種情況下,表明差異數(shù)據(jù)大小的變量例如可由通過解碼裝置得到的各圖像的量化標度與代碼量之間的相乘值來代替。這使得能夠通過有效地利用在解碼過程中檢測到的各種信息來提供速率控制。以這種方式,該構造可簡化為確保起圖像轉換裝置的作用。
當需要將編碼裝置配置成用作解碼裝置和圖像轉換裝置時,上述實施例可提供能夠簡化整體構造的編碼方法、編碼方法程序以及記錄編碼方法程序的記錄媒體。
根據(jù)本發(fā)明的實施例,當編碼裝置可配置成用作解碼裝置和圖像轉換裝置時,整體構造可得到簡化。
通過以下描述,本發(fā)明的其它和進一步的目的、特征和優(yōu)點將會更為全面。
圖1是框圖,表示根據(jù)本發(fā)明的實施例1的編碼裝置;圖2是流程圖,表示圖1的編碼裝置中的速率控制器9的過程;圖3是框圖,表示基于AVC的編碼裝置;圖4是框圖,表示基于AVC的解碼裝置;圖5是示意圖,表示涉及幀內(nèi)4×4預測模式的預測像素;圖6是示意圖,表示幀內(nèi)4×4預測模式中的預測模式;圖7是示意圖,描述幀內(nèi)4×4預測模式;圖8是示意圖,表示幀內(nèi)4×4預測模式的每個模式;圖9是示意圖,表示涉及幀內(nèi)16×16預測模式的預測像素;圖10是示意圖,描述幀內(nèi)16×16預測模式;圖11是示意圖,表示幀內(nèi)16×16預測模式中的預測模式;圖12是示意圖,表示基于AVC的參考幀;圖13是示意圖,表示基于AVC的運動補償;圖14是示意圖,表示基于AVC的運動補償精度;以及圖15是流程圖,表示基于TM5的速率控制。
具體實施例方式
參照附圖更詳細地描述本發(fā)明的實施例。
(1)實施例的構造圖1是框圖,表示根據(jù)本發(fā)明的一個實施例的編碼裝置。例如,DVD播放器等再現(xiàn)MPEG2壓縮編碼數(shù)據(jù)DMPEG。電視調(diào)諧器輸出模擬視頻信號S1。記錄和再現(xiàn)裝置在記錄媒體、如光盤上記錄編碼數(shù)據(jù)DMPEG以及視頻信號S1。編碼裝置41可應用于這種記錄和再現(xiàn)裝置,根據(jù)AVC壓縮編碼數(shù)據(jù)DMPEG和視頻信號S1,以及輸出編碼數(shù)據(jù)D4。
在編碼裝置41中,A/D轉換器(A/D)42對視頻信號S1進行模數(shù)轉換,并輸出視頻數(shù)據(jù)D11。
為解碼裝置43提供基于MPEG2的編碼數(shù)據(jù)DMPEG,該裝置對編碼數(shù)據(jù)DMPEG解碼,以及輸出基于基帶的視頻數(shù)據(jù)D12。在這個過程中,解碼裝置43向復雜度計算器44通知通過為編碼數(shù)據(jù)DMPEG的每個首標提供的控制代碼所檢測的量化標度Q和所產(chǎn)生代碼量B。
響應來自解碼裝置43的通知,復雜度計算器44計算編碼數(shù)據(jù)DMPEG中的幀的平均量化標度Q,以及計算為各幀所產(chǎn)生的代碼量B。復雜度計算器44采用平均量化標度Q和所產(chǎn)生代碼量B來執(zhí)行以下計算。復雜度計算器44計算表明通過對編碼數(shù)據(jù)DMPEG解碼所得到的視頻數(shù)據(jù)D12的AVC編碼的難度的復雜度參數(shù)X,并向編碼部分45通知復雜度參數(shù)X。
X=Q·BA/D轉換器42在控制器(未示出)控制下輸出視頻數(shù)據(jù)D11。解碼裝置43輸出視頻數(shù)據(jù)D12。有選擇地為視頻存儲器46提供視頻數(shù)據(jù)D11或D12,將它存儲指定的周期,并將它輸出到編碼部分45。在這個過程中,視頻存儲器46在相當于至少一個GOP的周期、視頻數(shù)據(jù)輸出到解碼裝置43之前的時間點把所存儲視頻數(shù)據(jù)輸出到幀內(nèi)預測器47和幀間預測器48。這使幀內(nèi)預測器47和幀間預測器48能夠在解碼裝置43編碼之前處理一個GOP的視頻數(shù)據(jù)。從解碼裝置43輸出的視頻數(shù)據(jù)D12可被輸入視頻存儲器46,以及輸出到編碼部分45。在這種情況下,在前輸出的一個GOP周期被調(diào)整為與視頻數(shù)據(jù)D12關聯(lián)的編碼數(shù)據(jù)DMPEG的一個GOP周期。
幀內(nèi)預測器47對于從視頻存儲器46所提供的視頻數(shù)據(jù)執(zhí)行幀內(nèi)預測。原始幀內(nèi)預測參照已解碼參考圖像信息來執(zhí)行。幀內(nèi)預測器47利用原始圖像的圖像信息而不是已解碼參考圖像信息來執(zhí)行幀內(nèi)預測。原始幀內(nèi)預測在幀內(nèi)4×4預測模式與幀內(nèi)16×16預測模式之間選擇最佳預測模式。幀內(nèi)預測47僅采用幀內(nèi)4×4預測模式來選擇最佳預測模式。
對于依次輸入的視頻數(shù)據(jù)中的4×4像素塊,下式用于根據(jù)組成塊的原始圖像來表示視頻數(shù)據(jù)的像素值。
[Orgi,j]=Og0,0Og1,0Org2,0Org3,0Org0,1Org1,1Org2,1Org3,1Org0,2Org1,2Org2,2Org3,2Org0,3Org1,3Org2,3Org3,3]]>不是利用已解碼視頻數(shù)據(jù),幀內(nèi)預測器47根據(jù)參照圖8(A)至8(I)所述、利用塊的相鄰像素的計算來計算下式所表示的預測值。式中,模式可采用0至8中的任一個。
[Refi,j(Mode)]]]>=Ref0,0(Mode)Ref1,0(Mode)Ref2,0(Mode)Ref3,0(Mode)Ref0,1(Mode)Ref1,1(Mode)Ref2,1(Mode)Ref3,1(Mode)Ref0,2(Mode)Ref1,2(Mode)Ref2,2(Mode)Ref3,2(Mode)Ref0,3(Mode)Ref1,3(Mode)Ref2,3(Mode)Ref3,3(Mode)]]>此外,幀內(nèi)預測器47根據(jù)下式利用來自原始圖像的視頻數(shù)據(jù)的像素值和預測值來執(zhí)行計算。幀內(nèi)預測器47計算在各模式的幀內(nèi)編碼期間在每個塊中產(chǎn)生的差異數(shù)據(jù)D2(參見圖3)的絕對差之和SAD(mode)。幀內(nèi)預測器47利用各模式的絕對差之和SAD(mode)計算最小值。幀內(nèi)預測器47檢測與最小值關聯(lián)的模式,以便檢測幀內(nèi)4×4預測模式中的最佳模式。在這些計算過程中,例如通過僅計算奇數(shù)或偶數(shù)行上的奇數(shù)或偶數(shù)抽樣點,所謂的交替抽樣技術可用來減少計算量。
SAD(Mode)=Σi,j=03|Refi,j(Mode)-Orgi,j|]]>
幀內(nèi)預測器47對各由4×4像素組成的、構成16×16像素的宏塊的所有塊重復這種計算,以檢測塊的最佳模式。幀內(nèi)預測器47采用最佳模式的式(42)的絕對差之和SAD(mode)(SAD(Block,BestMode(Block))來執(zhí)行下式的計算。幀內(nèi)預測器47把涉及最佳模式的差異數(shù)據(jù)D2的絕對差之和SAD(mode)相加起來。以這種方式,幀內(nèi)預測器47對表明從4×4預測模式計算的殘留大小的變量求和,以產(chǎn)生表明16×16像素宏塊中的殘留大小的變量IntraSAD。幀內(nèi)預測器47把這個變量IntraSAD輸出到難度計算器49。
IntraSAD=ΣBlock=015SAD(Block,Best_Mode(Block))]]>另一方面,幀間預測器48對于從視頻存儲器46提供的視頻數(shù)據(jù)執(zhí)行幀間預測。原始幀間預測參照已解碼參考圖像信息來執(zhí)行。幀間預測器48利用原始圖像的圖像信息而不是已解碼參考圖像信息來執(zhí)行幀間預測。幀間預測器48省略子宏塊的運動矢量檢測和運動補償過程。以這種方式,幀間預測器48只對16×16像素的宏塊檢測參考幀和運動矢量,以便執(zhí)行幀間預測。幀間預測器48以一個像素的精度檢測運動。
幀間預測器48按照依次輸入視頻數(shù)據(jù)中的16×16像素塊對參考幀的每一個執(zhí)行下式的計算。式中,參考幀的幀號Ref的范圍是0≤Ref≤Nref-1,其中Nref是參考幀的數(shù)量。
SAD(mv16×16(Ref))=Σi,j=015|Refi,j(mv16×16(Ref)-Orgi,j)|]]>幀間預測器48從計算結果中檢測各參考幀的最小值,并使用此最小值來檢測各參考幀的16×16運動矢量mv16×16(Ref)。在計算過程中,分級運動檢索可用來檢測來自各參考幀的16×16運動矢量?;蛘?,交替抽樣技術可用來減少計算量。作為參考,按照以下方式執(zhí)行分級運動檢索以檢測運動矢量。例如,運動矢量以4像素間隔來檢測。所檢測的運動矢量用來縮小檢測運動矢量的范圍以及重新檢測運動矢量。這些過程依次重復。在運動矢量檢索的±8像素的范圍內(nèi)以1像素的精度來檢測16×16運動矢量mv16×16。
幀間預測器48根據(jù)涉及參考幀的16×16運動矢量mv16×16(Ref)利用式(44)的計算結果SAD(mv16×16(Ref))來執(zhí)行下式的計算。當采用涉及最佳參考幀的運動矢量執(zhí)行幀內(nèi)編碼過程時,幀間預測器48計算最佳參考幀以及表明殘留大小的變量InterSAD。幀間預測器48把變量InterSAD輸出到難度計算器49。在式(45)中,argRef表示Ref作為變量而改變。
InterSAD=argRefmin(SAD(mv16×16(Ref)))難度計算器49采用從幀內(nèi)預測器47和幀間預測器48所通知的變量IntraSAD和InterSAD來執(zhí)行下式的計算,并選擇較小的變量。在這種情況下,所選變量對應于最佳編碼系統(tǒng)。當P和B圖像針對根據(jù)與編碼部分45的編碼過程關聯(lián)的GOP結構的預測時,難度計算器49執(zhí)行下式的計算。當I圖像針對預測時,難度計算器49取消下式的計算,并把從幀內(nèi)預測器47輸出的變量IntraSAD賦值給變量BD(m)。
BD(m)=min(IntraSAD(m),InterSAD(m))難度計算器49檢測各宏塊的變量BD(m),并執(zhí)行下式的計算以便對各圖像的變量BD(m)求和。式中,Ω表示一個圖像中包含的所有宏塊的集合。
X=Σm∈ΩBD(m)]]>難度計算器49計算表明從視頻存儲器46輸出的視頻數(shù)據(jù)D1的基于AVC的編碼過程的難度的難度參數(shù)X。難度計算器49把難度參數(shù)X通知給編碼部分45。復雜度計算器44通過將幀的平均量化標度Q與所產(chǎn)生的代碼量B相乘來計算復雜度參數(shù)X。換言之,復雜度參數(shù)X提供表明產(chǎn)生編碼數(shù)據(jù)D4的編碼過程實際檢測到的編碼過程的難度的信息。另一方面,難度計算器49所計算的復雜度參數(shù)X表示在基于AVC的編碼過程中所產(chǎn)生的差異數(shù)據(jù)的絕對差之和。換言之,這個復雜度參數(shù)X提供表明在基于AVC的編碼過程中所預測的編碼過程的難度的信息。
編碼部分45允許速率控制器45A利用從復雜度計算器44和難度計算器49輸出的參數(shù)X來執(zhí)行速率控制過程。因此,編碼部分45根據(jù)基于AVC的編碼來處理從視頻存儲器46輸出的視頻數(shù)據(jù)D1,并輸出視頻數(shù)據(jù)D1。
編碼部分45與參照圖3所述的編碼裝置1同樣配置,但有以下差別。從視頻存儲器46輸出的視頻數(shù)據(jù)D1被直接輸入圖像重排緩沖器3而沒有使用模/數(shù)轉換器2。速率控制器45A用來代替速率控制器9。當依次輸入的視頻數(shù)據(jù)D1對應于編碼數(shù)據(jù)DMPEG時,通過把I、P和B圖像相應地設置為編碼數(shù)據(jù)DMPEG中的I、P和B圖像的設定,對視頻數(shù)據(jù)D1編碼。以這種方式,編碼部分45配置成根據(jù)AVC對依次輸入的視頻數(shù)據(jù)D1執(zhí)行幀間編碼和幀內(nèi)編碼,并輸出編碼數(shù)據(jù)D4。
速率控制器45A執(zhí)行下式的計算以便計算對各圖像的代碼分配量Ri。當待編碼的視頻數(shù)據(jù)D1對應于視頻信號S1時,等式采用從難度計算器49輸出的參數(shù)X。當待編碼的視頻數(shù)據(jù)D1對應于編碼數(shù)據(jù)DMPEG時,等式采用從復雜度計算器44輸出的參數(shù)X。在等式中,R表示對整個未編碼幀的代碼分配量(0≤i≤N-1)。
Ri=R·Xi12ΣiXi12]]>速率控制器45A在各GOP的開始處計算代碼分配量Ri的初始值。每當一幀編碼結束時,速率控制器45A根據(jù)累積緩沖器11中的數(shù)據(jù)量來檢測實際產(chǎn)生的代碼量,并對所有未編碼幀校正代碼分配量R。速率控制器45A計算對下一幀的代碼分配量Ri。速率控制器45A對每個GOP重復這些過程。在各幀中,速率控制器45A采用實際產(chǎn)生的代碼量依次校正從幀的代碼分配量所檢測的宏塊的代碼分配量。速率控制器45A采用所檢測的代碼分配量來設置量化器8的量化標度。在這些過程中,速率控制器45A根據(jù)活動來校正量化器8的量化標度。
圖2是流程圖,表示速率控制器45A進行的速率控制過程以及與復雜度計算器44和難度計算器49關聯(lián)的過程。當過程開始時,速率控制器45A從步驟進入步驟SP12來確定待處理的視頻數(shù)據(jù)D1是否對應于模擬視頻信號S1。當結果為肯定時,速率控制器45A進入步驟SP13,從難度計算器49獲取參數(shù)X。
在步驟SP13的步驟SP13-1,難度計算器49將參數(shù)X初始化為0值。在步驟SP13-2和SP13-3,幀內(nèi)預測器47和幀間預測器48分別計算變量IntraSAD和InterSAD。在步驟SP13-4,難度計算器49將變量IntraSAD與InterSAD進行比較。
當來自幀內(nèi)預測器47的變量IntraSAD的值更小時,在步驟SP13-5選取來自幀內(nèi)預測器47的變量IntraSAD。當來自幀內(nèi)預測器48的變量InterSAD的值更小時,在步驟SP13-6選取來自幀內(nèi)預測器48的變量InterSAD。以這種方式,難度計算器49檢測一個宏塊的變量SAD。難度計算器49對一幀重復這個過程。在步驟SP13-7,難度計算器49累積變量,以便檢測組成GOP的一幀的參數(shù)X。參數(shù)X的檢測重復進行相當于一個GOP的次數(shù)。
在從難度計算器49得到一個GOP的參數(shù)X之后,速率控制器45A從步驟SP13進入步驟SP14,利用式(48)的計算來計算一個圖像的代碼分配量。在步驟SP15,速率控制器45A確定量化器8的量化標度,與上述圖15中的步驟SP3相似。在步驟SP16,速率控制器45A根據(jù)活動來校正量化器8的量化標度,與上述圖15中的步驟SP4相似。速率控制器45A進入步驟SP17,結束此過程。速率控制器45A在GOP單元中重復這個過程,以便執(zhí)行速率控制過程。
當步驟SP12中的結果為否定時,速率控制器45A從步驟SP12進入步驟SP18,從復雜度計算器44獲取一個GOP的參數(shù)X。在步驟SP14,速率控制器45A采用從復雜度計算器44得到的參數(shù)X來計算代碼分配量,并執(zhí)行速率控制過程。在步驟SP18,復雜度計算器44配置成在圖像的單元中重復變量X的計算。
(2)實施例的操作根據(jù)上述構造,考慮在編碼裝置41(圖1)中對模擬視頻信號S1編碼。在這種情況下,模/數(shù)轉換器42把視頻信號S1轉換為視頻數(shù)據(jù)D1。視頻數(shù)據(jù)D1則經(jīng)由視頻存儲器46輸入到編碼部分45。在編碼部分45中,圖像重排緩沖器3根據(jù)編碼過程的GOP結構重新排列視頻數(shù)據(jù)D1中的幀的順序(參見圖3)。然后視頻數(shù)據(jù)D1被輸入到幀內(nèi)預測器5以及運動預測器/補償器6。根據(jù)圖像,從多個幀內(nèi)預測模式和幀間預測模式中選擇最佳預測模式。減法器4從視頻數(shù)據(jù)D1中減去所選預測模式中的預測值,從而產(chǎn)生差異數(shù)據(jù)D2。通過有效地使用鄰接幀之間的相關性以及水平和垂直相關性,視頻數(shù)據(jù)D1在數(shù)據(jù)量方面被減少。具有減少的數(shù)據(jù)量的視頻數(shù)據(jù)D1產(chǎn)生差異數(shù)據(jù)D2。通過正交變換、量化和變長編碼過程,差異數(shù)據(jù)D2在數(shù)據(jù)量方面進一步減少,從而產(chǎn)生編碼數(shù)據(jù)D4。以這種方式,視頻信號S1根據(jù)幀內(nèi)編碼和幀間編碼被處理,然后被記錄在記錄媒體上。
在過程序列中,視頻數(shù)據(jù)D1在編碼部分45中的過程之前至少一個GOP被輸入幀內(nèi)預測器47和幀間預測器48(圖1)。幀內(nèi)預測器47和幀間預測器48分別選擇幀內(nèi)預測和幀間預測的最佳預測模式。利用差異數(shù)據(jù)D2的絕對差之和,幀內(nèi)預測器47和幀間預測器48計算表明最佳預測模式中所產(chǎn)生的差異數(shù)據(jù)D2的大小的變量IntraSAD和InterSAD。難度計算器49將變量IntraSAD與InterSAD進行比較,以便根據(jù)幀內(nèi)預測和幀間預測來檢測最佳預測模式。難度計算器49檢測表明最佳預測模式中產(chǎn)生的差異數(shù)據(jù)D2的大小的變量BD(m)。
在視頻數(shù)據(jù)D1中,變量BD(m)在圖像單元中被計算,從而產(chǎn)生變量X。利用變量X,速率控制器45A在圖像之間分發(fā)要分配給一個GOP的數(shù)據(jù)量,以便計算各圖像的目標代碼量。速率控制過程根據(jù)目標代碼量來執(zhí)行。
以這種方式,利用預先對一個GOP所檢測的變量X,在根據(jù)前饋控制的速率控制下對視頻數(shù)據(jù)D1編碼。因此,視頻數(shù)據(jù)D1可通過向圖像適當分發(fā)代碼量以及通過確保高圖像質量來編碼。
可通過利用表明差異數(shù)據(jù)D2的大小的基于圖像的變量X來分發(fā)要分配給一個GOP的數(shù)據(jù)量,計算各圖像的目標代碼量。目標代碼量可用來執(zhí)行速率控制過程,用于與解碼部件結合。甚至在可能存在轉換由類似編碼方法所編碼的編碼數(shù)據(jù)的格式的情況時,通過有效地使用與編碼數(shù)據(jù)有關的信息,速率控制也是可用的。因此,整體構造可得到簡化。
編碼裝置41可把基于MPEG2的編碼數(shù)據(jù)DMPEG的格式轉換為基于AVC的編碼數(shù)據(jù)D4。在這種情況下,解碼裝置43對基于MPEG2的編碼數(shù)據(jù)DMPEG進行解碼,從而將它轉換為視頻數(shù)據(jù)D12。視頻數(shù)據(jù)D12被輸入編碼部分45,然后被編碼為基于AVC的編碼數(shù)據(jù)D4。
在過程序列中,編碼數(shù)據(jù)DMPEG使量化標度Q和數(shù)據(jù)量B可對于各宏塊被檢測。復雜度計算器44對檢測結果求和,以便檢測通過將平均量化標度Q與幀單元中的數(shù)據(jù)量B相乘所產(chǎn)生的值X。相乘值X表示編碼過程的復雜度。當根據(jù)編碼數(shù)據(jù)DMPEG對視頻數(shù)據(jù)D12編碼時,編碼裝置41采用從復雜度計算器44輸出的變量X來取代從難度計算器49輸出的變量X。要分配給一個GOP的數(shù)據(jù)量在圖像之間分發(fā),以便計算各圖像的目標代碼量。速率控制過程根據(jù)目標代碼量來執(zhí)行。
以這種方式,有效地利用在解碼過程中檢測到的各種信息,編碼裝置41可為編碼數(shù)據(jù)DMPEG提供速率控制。這使得能夠簡化構造并確保起圖像轉換裝置的作用。
同樣在這種情況下,利用過去的基于MPEG2的編碼結果,最終提供速率控制。根據(jù)前饋控制的速率控制可用于對視頻數(shù)據(jù)D12編碼。因此,視頻數(shù)據(jù)D12可通過適當?shù)叵驁D像分發(fā)代碼量以及通過確保優(yōu)于根據(jù)反饋控制的速率控制的高圖像質量,借助于幀內(nèi)預測和幀間預測來編碼。
以這種方式,幀內(nèi)預測器47和幀間預測器48用來檢測變量X。編碼裝置41可允許幀內(nèi)預測器47和幀間預測器48以比用于編碼部分45中的幀內(nèi)預測和幀間預測的更為簡單的構造來執(zhí)行幀內(nèi)預測和幀間預測??傮w上,簡單構造可用于對視頻數(shù)據(jù)D1編碼。
也就是說,編碼部分45提供幀內(nèi)預測的幀內(nèi)預測模式。這個模式產(chǎn)生預測值,從而在塊單元中通過多種技術產(chǎn)生具有不同大小的兩種或兩種以上塊的差異數(shù)據(jù)D2。相反,幀內(nèi)預測器47從兩種或兩種以上塊中選擇最小塊的最佳預測模式,并檢測幀內(nèi)預測的變量IntraSAD。這使得能夠通過簡單過程以實際上足夠的精度來檢測最佳預測模式以及幀內(nèi)預測的變量IntraSAD。
明確地說,編碼裝置41采用兩種或兩種以上塊,即4×4和16×16像素塊。幀內(nèi)預測器47僅在4×4預測模式中對4×4像素塊處理視頻數(shù)據(jù)。這可簡化此過程。
編碼部分45為幀內(nèi)預測提供過程,從而參照從已解碼輸出數(shù)據(jù)產(chǎn)生的視頻數(shù)據(jù)來選擇最佳預測模式。幀內(nèi)預測器47根據(jù)涉及所謂的原始圖像的視頻數(shù)據(jù)D1選擇最佳預測模式。在這方面,對一個GOP預先從視頻存儲器46輸出視頻數(shù)據(jù)D1。根據(jù)此構造,前饋控制用來提供速率控制。這使得能夠省略解碼部件、存儲來自解碼部件的解碼結果的存儲器等的構造。整體構造可得到簡化,同時確保實際上足夠的精度。
編碼部分45提供幀間預測的幀間預測模式。這個模式產(chǎn)生預測值,從而在塊單元中通過多種技術產(chǎn)生具有不同大小的兩種或兩種以上塊的差異數(shù)據(jù)D2。相反,幀間預測器48從兩種或兩種以上塊中選擇最大塊的最佳預測模式,并檢測幀間預測的變量InterSAD。這還使得能夠通過簡單過程以實際上足夠的精度來檢測最佳預測模式以及幀間預測的變量InterSAD。
明確地說,編碼裝置41采用兩種或兩種以上塊,即4×4、4×8、8×4、8×8、8×16和16×8像素的子宏塊以及16×16像素的塊或宏塊。幀間預測器48僅對16×16像素的宏塊處理視頻數(shù)據(jù)。這可簡化此過程。
不同大小的塊允許幀內(nèi)預測器47和幀間預測器48檢測變量。幀內(nèi)預測器47合計并輸出幀內(nèi)預測的變量,以便對應于幀間預測器48的塊大小。簡化構造的目的是為過程提供不同的塊大小。這使得能夠根據(jù)相應變量來檢測最佳預測模式。
編碼部分45采用幀間預測的幀間預測模式從多個參考幀中以小于一個像素的1/4像素的精度檢測運動矢量。相反,幀間預測器48以一個像素的精度檢測運動矢量。以這種方式,簡單的過程可用于以實際上足夠的精度來檢測最佳預測模式,并檢測幀間預測的變量InterSAD。
(3)實施例的效果上述構造使得能夠在編碼過程之前檢測幀內(nèi)預測和幀間預測的最佳預測模式。該構造還實現(xiàn)根據(jù)所檢測的最佳預測模式來檢測表明差異數(shù)據(jù)大小的變量。該變量用來設置各圖像的目標代碼量。以這種方式,當編碼裝置可配置成用作解碼裝置和圖像轉換裝置時,整體構造可得到簡化。
也就是說,視頻數(shù)據(jù)根據(jù)正交變換、量化和變長編碼來處理,從而產(chǎn)生編碼數(shù)據(jù)DMPEG。當編碼數(shù)據(jù)DMPEG被處理時,其量化標度與數(shù)據(jù)量相乘,從而產(chǎn)生相乘值X。利用相乘值X,要分配給一個GOP的數(shù)據(jù)量被分發(fā)給圖像,并執(zhí)行速率控制過程。以這種方式,該構造可簡化為確保起圖像轉換裝置的作用。
在塊單元中通過多種技術,用于編碼的多個幀內(nèi)預測模式可產(chǎn)生具有不同大小的兩種或兩種以上塊的預測值。在這種情況下,作為幀內(nèi)預測部件的幀內(nèi)預測器47從兩種或兩種以上塊中選擇最小塊的最佳預測模式,并檢測幀內(nèi)預測的變量。這使得能夠通過簡單過程以實際上足夠的精度來檢測最佳預測模式以及幀內(nèi)預測的變量。
更明確地說,兩種或兩種以上的塊可包括4×4和16×16像素塊。幀內(nèi)預測器部件可以僅在4×4預測模式中對于4×4像素塊來處理視頻數(shù)據(jù)。這可簡化此過程。
編碼部件可參照已解碼視頻數(shù)據(jù)來選擇最佳預測模式。在這種情況下,幀內(nèi)預測部件參照原始視頻數(shù)據(jù)來選擇最佳預測模式。整體構造可得到簡化,同時確保實際上足夠的精度。
在塊單元中通過多種技術,多個幀間預測模式產(chǎn)生具有不同大小的兩種或兩種以上的塊的預測值。相反,作為幀間預測部件的幀間預測器48從兩種或兩種以上塊中選擇最大塊的最佳預測模式,并檢測幀間預測的變量。這使得能夠通過簡單過程以實際上足夠的精度來檢測最佳預測模式以及幀間預測的變量。
明確地說,兩種或兩種以上的塊包括4×4、4×8、8×4、8×8、8×16、16×8和16×16像素塊。幀間預測部件僅對16×16像素的宏塊處理視頻數(shù)據(jù)。這可簡化此過程。
幀內(nèi)預測的變量被求和并輸出,以便對應于幀間預測部件所用的塊大小。簡化構造的目的是為過程提供不同的塊大小。這使得能夠根據(jù)相應變量來檢測最佳預測模式。
編碼部件提供多個幀間預測模式。這些模式采用以小于一個像素的像素精度從多個參考幀中檢測的運動矢量,并通過執(zhí)行對相應參考幀的運動補償來產(chǎn)生預測值。相反,幀間預測部件以一個像素的精度檢測運動矢量,以便檢測最佳預測模式。以這種方式,簡單的過程可用于以實際上足夠的精度來檢測最佳預測模式,并檢測幀間預測的變量。
根據(jù)這個實施例,計算機運行編碼程序。以這種方式,計算機提供與以上參照實施例1所述的編碼裝置41的塊對應的功能塊。計算機執(zhí)行與編碼裝置41的那些等效的過程。編碼程序可通過預先安裝在計算機中來提供。此外,編碼程序可通過經(jīng)由網(wǎng)絡、如因特網(wǎng)下載來提供。或者,編碼程序可通過記錄在記錄媒體上來提供??赡苡懈鞣N記錄媒體可用,例如光盤、磁光盤等等。
如這個實施例那樣,計算機可運行處理程序以便構造與根據(jù)實施例1的編碼裝置41相似的功能塊來用于編碼。在這種情況下,實施例2還可提供與實施例1相似的效果。
在上述實施例中,已經(jīng)描述了利用差異數(shù)據(jù)中的絕對差之和來檢測涉及幀內(nèi)預測和幀間預測的變量的情況。但是,本發(fā)明不限于此。各種參數(shù)可根據(jù)需要廣泛被應用,例如差異數(shù)據(jù)的平方和來取代差異數(shù)據(jù)中的絕對差之和。
在上述實施例中,已經(jīng)描述了根據(jù)與參考圖像信息和運動補償關聯(lián)的精度以及根據(jù)與預測模式關聯(lián)的塊類型來簡化編碼部件中幀內(nèi)預測和幀間預測的幀內(nèi)預測部件和幀間預測部件中的過程的情況。但是,本發(fā)明不限于此。當可確保實際上足夠的吞吐量時,幀內(nèi)預測部件和幀間預測部件可用來執(zhí)行與編碼部件中的幀內(nèi)預測和幀間預測相同的過程。
在上述實施例中,已經(jīng)描述了把模擬視頻信號和基于MPEG2的編碼數(shù)據(jù)編碼為基于AVC的編碼數(shù)據(jù)的情況。但是,本發(fā)明不限于此。本發(fā)明可廣泛應用于把各種視頻數(shù)據(jù)和編碼數(shù)據(jù)編碼為基于AVC的編碼數(shù)據(jù)以及編碼為類似于AVC的編碼數(shù)據(jù)的情況。
在上述實施例中,已經(jīng)描述了將本發(fā)明應用于記錄裝置的情況。但是,本發(fā)明不限于此,并且例如可廣泛應用于視頻數(shù)據(jù)的傳送。
例如,本發(fā)明可應用于借助于衛(wèi)星廣播、有線電視、因特網(wǎng)、蜂窩電話等傳送電影以及在諸如光盤、磁光盤、閃速存儲器等記錄媒體上記錄電影。
本領域的技術人員應當理解,根據(jù)設計要求和其它因素,可出現(xiàn)各種修改、組合、子組合及變更,只要它們處于所附權利要求及其等效物的范圍內(nèi)。
權利要求
1.一種編碼裝置,它采用編碼部件從多個幀內(nèi)預測模式和幀間預測模式中選擇最佳預測模式,通過按照所述選擇的預測模式從視頻數(shù)據(jù)中減去預測值來產(chǎn)生差異數(shù)據(jù),對所述差異數(shù)據(jù)執(zhí)行正交變換、量化和變長編碼過程,以及按照幀內(nèi)編碼和幀間編碼對所述視頻數(shù)據(jù)編碼,所述編碼裝置包括幀內(nèi)預測部件,用于在所述編碼部件編碼之前預先為至少一個GOP利用所述視頻數(shù)據(jù)來選擇最佳預測模式,并在所述最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀內(nèi)預測變量;幀間預測部件,用于在所述編碼部件編碼之前預先為至少一個GOP利用所述視頻數(shù)據(jù)來選擇最佳預測模式,并在所述最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀間預測變量;難度計算部件,用于將所述幀內(nèi)預測的變量與所述幀間預測的變量進行比較,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的變量;以及速率控制部件,用于根據(jù)表明所述差異數(shù)據(jù)的大小的變量在圖像之中分發(fā)要分配給一個GOP的數(shù)據(jù)量,從而計算各圖像的目標代碼量,并根據(jù)所述目標代碼量為所述編碼部件的編碼過程提供速率控制。
2.如權利要求1所述的編碼裝置,其特征在于具有解碼部件,用于接收通過正交變換、量化和變長編碼過程從視頻數(shù)據(jù)產(chǎn)生的編碼數(shù)據(jù),并對所述視頻數(shù)據(jù)解碼;以及復雜度檢測部件,用于檢測涉及所述編碼數(shù)據(jù)的所述量化過程的量化標度與從所述解碼部件輸出的視頻數(shù)據(jù)的圖像單元中的所述編碼數(shù)據(jù)的數(shù)據(jù)量之間的相乘值,其中,當所述編碼部件對從所述解碼部件輸出的視頻數(shù)據(jù)編碼時,所述速率控制部件不根據(jù)表明所述差異數(shù)據(jù)的大小的變量在圖像之中分發(fā)要分配給一個GOP的數(shù)據(jù)量以計算各圖像的目標代碼量,也不根據(jù)所述目標代碼量為所述編碼部件的編碼過程提供速率控制,但是根據(jù)所述相乘值在圖像之中分發(fā)要分配給一個GOP的數(shù)據(jù)量,從而計算各圖像的目標代碼量,并根據(jù)所述目標代碼量為所述編碼部件的編碼過程提供速率控制。
3.如權利要求1所述的編碼裝置,其特征在于,在塊單元中通過多種技術,所述多個幀內(nèi)預測模式產(chǎn)生具有不同大小的兩種或兩種以上的塊的所述預測值;以及所述幀內(nèi)預測部件從所述兩種或兩種以上的塊中選擇最小塊的所述最佳預測模式,并檢測所述幀內(nèi)預測的變量。
4.如權利要求3所述的編碼裝置,其特征在于,所述兩種或兩種以上的塊包括4×4和16×16像素塊。
5.如權利要求1所述的編碼裝置,其特征在于,所述編碼部件參照通過對從所述編碼部件輸出的數(shù)據(jù)解碼所產(chǎn)生的已解碼視頻數(shù)據(jù)來選擇所述最佳預測模式;以及所述幀內(nèi)預測部件在所述編碼部件編碼之前預先為至少一個GOP參照所述視頻數(shù)據(jù)來選擇所述最佳預測模式。
6.如權利要求1所述的編碼裝置,其特征在于,在塊單元中通過多種技術,所述多個幀間預測模式產(chǎn)生具有不同大小的兩種或兩種以上的塊的所述預測值;以及所述幀間預測部件從所述兩種或兩種以上的塊中選擇最大塊的所述最佳預測模式,并檢測所述幀間預測的變量。
7.如權利要求6所述的編碼裝置,其特征在于,所述兩種或兩種以上的塊包括4×4、4×8、8×4、8×8、8×16、16×8和16×16像素塊。
8.如權利要求3所述的編碼裝置,其特征在于,所述幀間預測部件從所述兩種或兩種以上的塊中選擇最大塊的所述最佳預測模式,并檢測所述幀間預測的變量;以及所述幀內(nèi)預測部件合計并輸出所述幀內(nèi)預測的變量,以便對應于所述幀間預測部件所用的塊大小。
9.如權利要求1所述的編碼裝置,其特征在于,所述幀內(nèi)預測部件選擇與按照所述多個預測模式得到的所述差異數(shù)據(jù)的最小尺寸對應的預測模式,并將所述選擇的預測模式定義為所述最佳預測模式。
10.如權利要求1所述的編碼裝置,其特征在于,所述幀間預測部件選擇與按照所述多個預測模式得到的所述差異數(shù)據(jù)的最小尺寸對應的預測模式,并將所述選擇的預測模式定義為所述最佳預測模式。
11.如權利要求1所述的編碼裝置,其特征在于,所述編碼部件提供多個幀間預測模式,它們采用以小于一個像素的像素精度從多個參考幀中檢測的運動矢量,并通過執(zhí)行對相應參考幀的運動補償來產(chǎn)生預測值;以及所述幀間預測部件以一個像素的精度檢測運動矢量,以便檢測最佳預測模式。
12.一種編碼方法,它采用編碼部件從多個幀內(nèi)預測模式和幀間預測模式中選擇最佳預測模式,通過按照所述選擇的預測模式從視頻數(shù)據(jù)中減去預測值來產(chǎn)生差異數(shù)據(jù),對所述差異數(shù)據(jù)執(zhí)行正交變換、量化和變長編碼過程,以及按照幀內(nèi)編碼和幀間編碼對所述視頻數(shù)據(jù)編碼,所述編碼方法包括以下步驟在所述編碼部件編碼之前預先為至少一個GOP利用所述視頻數(shù)據(jù)來選擇最佳預測模式,并在所述最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀內(nèi)預測變量;在所述編碼部件編碼之前預先為至少一個GOP利用所述視頻數(shù)據(jù)來選擇最佳預測模式,并在所述最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀間預測變量;將所述幀內(nèi)預測的變量與所述幀間預測的變量進行比較,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的變量;以及根據(jù)表明所述差異數(shù)據(jù)的大小的變量在圖像之中分發(fā)要分配給一個GOP的數(shù)據(jù)量,從而計算各圖像的目標代碼量,并根據(jù)所述目標代碼量為所述編碼部件的編碼過程提供速率控制。
13.一種編碼方法程序,由計算部件執(zhí)行以控制編碼部件的操作,其中所述編碼部件從多個幀內(nèi)預測模式和幀間預測模式中選擇最佳預測模式,通過按照所述選擇的預測模式從視頻數(shù)據(jù)中減去預測值來產(chǎn)生差異數(shù)據(jù),對所述差異數(shù)據(jù)執(zhí)行正交變換、量化和變長編碼過程,以及按照幀內(nèi)編碼和幀間編碼對所述視頻數(shù)據(jù)編碼;以及所述編碼方法程序包括以下步驟在所述編碼部件編碼之前預先為至少一個GOP利用所述視頻數(shù)據(jù)來選擇最佳預測模式,并在所述最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀內(nèi)預測變量;在所述編碼部件編碼之前預先為至少一個GOP利用所述視頻數(shù)據(jù)來選擇最佳預測模式,并在所述最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀間預測變量;將所述幀內(nèi)預測的變量與所述幀間預測的變量進行比較,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的變量;以及根據(jù)表明所述差異數(shù)據(jù)的大小的變量在圖像之中分發(fā)要分配給一個GOP的數(shù)據(jù)量,從而計算各圖像的目標代碼量,并根據(jù)所述目標代碼量為所述編碼部件的編碼過程提供速率控制。
14.一種記錄媒體,用于記錄由計算部件執(zhí)行以控制編碼部件的操作的編碼方法程序,其中,所述編碼部件從多個幀內(nèi)預測模式和幀間預測模式中選擇最佳預測模式,通過按照所述選擇的預測模式從視頻數(shù)據(jù)中減去預測值來產(chǎn)生差異數(shù)據(jù),對所述差異數(shù)據(jù)執(zhí)行正交變換、量化和變長編碼過程,以及按照幀內(nèi)編碼和幀間編碼對所述視頻數(shù)據(jù)編碼;以及所述編碼方法程序包括以下步驟在所述編碼部件編碼之前預先為至少一個GOP利用所述視頻數(shù)據(jù)來選擇最佳預測模式,并在所述最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀內(nèi)預測變量;在所述編碼部件編碼之前預先為至少一個GOP利用所述視頻數(shù)據(jù)來選擇最佳預測模式,并在所述最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀間預測變量;將所述幀內(nèi)預測的變量與所述幀間預測的變量進行比較,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的變量;以及根據(jù)表明所述差異數(shù)據(jù)的大小的變量在圖像之中分發(fā)要分配給一個GOP的數(shù)據(jù)量,從而計算各圖像的目標代碼量,并根據(jù)所述目標代碼量為所述編碼部件的編碼過程提供速率控制。
15.一種編碼裝置,它采用編碼單元從多個幀內(nèi)預測模式和幀間預測模式中選擇最佳預測模式,通過按照所述選擇的預測模式從視頻數(shù)據(jù)中減去預測值來產(chǎn)生差異數(shù)據(jù),對所述差異數(shù)據(jù)執(zhí)行正交變換、量化和變長編碼過程,以及按照幀內(nèi)編碼和幀間編碼對所述視頻數(shù)據(jù)編碼,所述編碼裝置包括幀內(nèi)預測單元,配置成在所述編碼單元編碼之前預先為至少一個GOP利用所述視頻數(shù)據(jù)來選擇最佳預測模式,并在所述最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀內(nèi)預測變量;幀間預測單元,配置成在所述編碼單元編碼之前預先為至少一個GOP利用所述視頻數(shù)據(jù)來選擇最佳預測模式,并在所述最佳預測模式中檢測表明差異數(shù)據(jù)的大小的幀間預測變量;難度計算單元,配置成將所述幀內(nèi)預測的變量與所述幀間預測的變量進行比較,并在最佳預測模式中檢測表明差異數(shù)據(jù)的大小的變量;以及速率控制單元,配置成根據(jù)表明所述差異數(shù)據(jù)的大小的變量在圖像之中分發(fā)要分配給一個GOP的數(shù)據(jù)量,從而計算各圖像的目標代碼量,并根據(jù)所述目標代碼量為所述編碼單元的編碼過程提供速率控制。
全文摘要
公開了一種編碼裝置、編碼方法、編碼方法程序以及記錄編碼方法程序的記錄媒體。本發(fā)明適用于利用衛(wèi)星廣播、有線電視、因特網(wǎng)、蜂窩電話等傳送電影以及在諸如光盤、磁光盤、閃速存儲器等記錄媒體上記錄電影。以這種方式,編碼裝置還可構造成用作解碼裝置和圖像轉換裝置。本發(fā)明的一個實施例可簡化這種編碼裝置的整體構造。本發(fā)明的一個實施例在編碼過程之前檢測幀內(nèi)預測和幀間預測的最佳預測模式。該實施例根據(jù)所檢測的最佳預測模式來檢測表明差異數(shù)據(jù)大小的變量IntraSAD、InterSAD和(X)。該實施例根據(jù)變量IntraSAD、InterSAD和(X)來確定圖像的目標代碼量。
文檔編號H04N7/26GK1719905SQ20051008332
公開日2006年1月11日 申請日期2005年7月7日 優(yōu)先權日2004年7月7日
發(fā)明者佐藤數(shù)史, 竺逸雯, Y·亞加薩基 申請人:索尼株式會社