專利名稱:分段可逆視頻編碼方法、分段可逆視頻譯碼方法、分段可逆視頻編碼裝置、分段可逆視頻 ...的制作方法
技術領域:
本發(fā)明涉及高效率視頻編碼、譯碼技術,特別涉及作為基本部分傳送的碼保持與H.264標準的兼容性,同時盡量減小附加部分的代碼量,可進行與原始信號一致的可逆譯碼的分段可逆視頻編碼、譯碼技術。
本申請對2004年9月30日申請的特愿2004-286412號主張優(yōu)先權,這里引用其內容。
背景技術:
現有的可逆或分段視頻編碼方式有以下一些方式。MotionJPEG2000標準(參照非專利文獻1)的可逆方式或JPEG-LS(參照非專利文獻2)因為是基于靜止圖像,故在幀內進行封閉編碼。
H.264標準(參照非專利文獻3)的第2版“逼真范圍擴展(FidelityRange ExtensionFRExt)”在幀內和幀間直接傳送(不進行正交變換和量化)預測殘差信號。
作為與非可逆編碼方式組合的分段編碼方式,有對譯碼圖像和原始圖像的差分進行編碼的方式(參照非專利文獻4)。這里,雖然在基本信息中使用了MPEG-2,但也可以適用于其他方式。
此外,還有像MPEG-4標準(參照非專利文獻5)的精細可伸縮性(Fine Granularity ScalableFGS)輪廓方式那樣,對施加DCT(離散余弦變換)且取整后的數據進行位面展開并進行逐次傳送的方式。
非專利文獻1ISO/IEC 15444-32002 Information technology-JPEG2000image coding system-Part 3Motion JPEG 2000非專利文獻2ISO/IEC 14495-11999 Information technology-Lossless and near-lossless coding of continuous tone still images
非專利文獻3ISO/IEC 14496-102003 Information technology-Coding of audio-visual objects-Part 10Advanced Video coding非專利文獻4中島、八島、小林“基于MPEG-2編碼參數的分段無損編碼的研究”信學總大D-11-49,Mar.2000非專利文獻5ISO/IEC 14496-22003 Information technology-Coding of audio-visual objects-Part 2Visual上述JPEG2000(參照非專利文獻1)雖然可分段傳送,但因進行幀內編碼,故存在不能進行使用了視頻特有的幀間相關的高效率編碼的問題。此外,上述JPEG-LS(參照非專利文獻2)雖然效率比JPEG2000高,但仍然是幀內封閉編碼,效率有限,此外,還存在不能分段傳送的問題。
H.264標準(參照非專利文獻3)的第2版“逼真范圍擴展(FidelityRange ExtensionFRExt)”存在不能分段傳送的問題。
此外,上述非專利文獻4記載的特征因不是以正交變換空間內的殘差而是以原始信號空間的殘差作為編碼對象,故編碼時不得不考慮原始信號不該存在的空間,壓縮效率有限。
MPEG-4標準(參照非專利文獻5)的精細可伸縮性(FineGranularity ScalableFGS)輪廓方式存在以下問題*因在實數變換DCT之后將系數取整,故即使使用很多附加信息也不可逆。
*若直接使用使像后述式(6)那樣變換后的系數擴展的H.264標準方式,則擴展多少就會浪費多少代碼量。
像這樣,通過進行幀間預測來提高視頻編碼效率、具有可測量性且基本信息兼容H.264標準的方式還沒有提出來。
發(fā)明內容
本發(fā)明是鑒于上述問題提出的,其目的在于能夠使作為基本部分傳送的代碼保持與H.264標準的兼容性,同時盡量減小附加部分的代碼量,并能夠進行可逆譯碼。
為了解決上述問題,本發(fā)明第1形態(tài)的分段可逆視頻編碼方法是進行可實現與原始信號一致的譯碼的視頻編碼的可逆視頻編碼方法,包括如下步驟根據預先確定的非可逆視頻編碼方式,對圖像信號的每一個塊輸入從原始信號減去幀內編碼的空間預測或幀間編碼的時間預測的預測信號而得到的殘差信號;求出根據上述非可逆視頻編碼方式對上述殘差信號進行正交變換得到的變換系數和將其量化后的量化系數;指定由上述量化系數、量化時使用的量化參數和量化方法確定的變換系數的存在空間;判斷將上述變換系數的存在空間內的某格子點作為殘差信號的正交變換的結果是否妥當的妥當性判斷;按照規(guī)定的格子點的順序搜索并列舉在上述變換系數的存在空間內的格子點中判斷較妥當的格子點;按照列舉的順序對列舉的格子點分配序號;在列舉的格子點中得到與殘差信號的變換系數一致的格子點的序號;對與上述殘差信號的變換系數一致的格子點的序號進行編碼并輸出。
本發(fā)明的第2形態(tài)是,在上述分段可逆視頻編碼方法中,在列舉在上述變換系數的存在空間內的格子點中判斷是妥當的格子點的步驟中,對于通過使用變換系數間的整數值的關系從而在上述空間內不能取得變換系數這一點,省略作為殘差信號的正交變換的結果是否妥當的判斷處理。
本發(fā)明的第3形態(tài)是,在上述分段可逆視頻編碼方法中,具有代替輸出幾個特定的變換系數,而輸出除了不能利用該系數和已輸出的系數的整數值關系來取得該系數的值的信息的步驟,在列舉在上述變換系數的存在空間內的格子點中判斷較妥當的格子點的步驟中,列舉使用上述預先輸出的變換系數將維數縮小后的存在空間內的格子點。
本發(fā)明的第4形態(tài)是,在上述分段可逆視頻編碼方法中,在上述妥當性判斷步驟中,只使用位運算和整數加減運算來判斷妥當性。
本發(fā)明的第5形態(tài)是,在上述分段可逆視頻編碼方法中,利用殘差信號的存在范圍和變換系數的存在范圍相交形成凸多面體的情況,當作為判斷對象的上述格子點存在于上述凸多面體的外部時,途中中止上述妥當性判斷。
本發(fā)明的第6形態(tài)是,在上述分段可逆視頻編碼方法中,不執(zhí)行列舉在上述變換系數的存在空間內的格子點中判斷較妥當的格子點的步驟,而進行代碼量的估計。
本發(fā)明的第7形態(tài)是對利用上述分段可逆視頻編碼方法編碼后的編碼數據流進行譯碼的譯碼方法,包括如下步驟執(zhí)行與預先確定的非可逆視頻編碼方式對應的譯碼方式;指定由量化參數、量化系數和編碼時的量化方法、以及當具有已譯碼的系數時由該系數決定的變換系數的存在空間;譯碼應譯碼的系數;判斷將上述變換系數的存在空間內的某格子點作為殘差信號的正交變換的結果是否妥當的妥當性判斷;按照和編碼時格子點的搜索相同的順序搜索并列舉在上述變換系數的存在空間內的格子點中上述判斷較妥當的格子點;對序號進行譯碼;在上述列舉的格子點中輸出與上述譯碼的序號相等的順序的格子點。
本發(fā)明的第8形態(tài)的分段可逆視頻編碼裝置是進行可實現與原始信號一致的譯碼的視頻編碼的可逆視頻編碼裝置,包括根據預先確定的非可逆視頻編碼方式,對圖像信號的每一個塊輸入從原始信號減去幀內編碼的空間預測或幀間編碼的時間預測的預測信號而得到的殘差信號的單元;求出根據上述非可逆視頻編碼方式對上述殘差信號進行正交變換得到的變換系數和將其量化后的量化系數的單元;指定由上述量化系數、量化時使用的量化參數和量化方法決定的變換系數的存在空間的單元;判斷將上述變換系數的存在空間內的某格子點作為殘差信號的正交變換的結果是否妥當的妥當性判斷單元;按照規(guī)定的格子點的順序搜索并列舉在上述變換系數的存在空間內的格子點中判斷較妥當的格子點的單元;按照列舉的順序對列舉的格子點分配序號的單元;在列舉的格子點中得到與殘差信號的變換系數一致的格子點的序號的單元;對與上述殘差信號的變換系數一致的格子點的序號進行編碼并輸出的單元。
本發(fā)明的第9形態(tài)是對利用上述分段可逆視頻編碼裝置編碼后的編碼數據流進行譯碼的譯碼裝置,包括執(zhí)行與預先確定的非可逆視頻編碼方式相對應的譯碼方式的單元;指定由量化參數、量化系數和編碼時的量化方法、以及當具有已譯碼的系數時由該系數決定的變換系數的存在空間的單元;譯碼應譯碼的系數的系數譯碼單元;判斷將上述變換系數的存在空間內的某格子點作為殘差信號的正交變換的結果是否妥當的妥當性判斷單元;按照和編碼時格子點的搜索相同的順序搜索并列舉在上述變換系數的存在空間內的格子點中上述判斷較妥當的格子點的單元;對序號進行譯碼的序號譯碼單元;在上述列舉的格子點中輸出與上述譯碼的序號相等的順序的格子點的輸出單元。
以上的分段可逆視頻編碼和譯碼的處理可以利用計算機和軟件程序來實現,將該程序記錄在計算機可讀取的記錄媒體上再向外提供,也可以通過網絡提供。
即,本發(fā)明的第10形態(tài)是用來在計算機上實現本發(fā)明的分段可逆視頻編碼方法的分段可逆視頻編碼程序。
本發(fā)明的第11形態(tài)是用來在計算機上執(zhí)行本發(fā)明的分段可逆視頻譯碼方法的分段可逆視頻譯碼程序。
本發(fā)明的第12形態(tài)是將用來在計算機上實現本發(fā)明的分段可逆視頻編碼方法的程序記錄在計算機可讀取的記錄媒體上的分段可逆視頻編碼程序的記錄媒體。
本發(fā)明的第13形態(tài)是將用來在計算機上實現本發(fā)明的分段可逆視頻譯碼方法的程序記錄在計算機可讀取的記錄媒體上的分段可逆視頻譯碼程序的記錄媒體。
若按照本發(fā)明,作為基本部分傳送的代碼可以保持與H.264標準的兼容性,同時,可以盡量減小附加部分的代碼量,并進行與原始信號一致的可逆譯碼。
此外,若按照本發(fā)明,可以以幾兆倍的高速來執(zhí)行上述處理。此外,可以不實際進行編碼就能夠對代碼量進行推測,結果,可以快速進行減小代碼量的預測模式的選擇。
圖1是用Ω和Ψ來分別表示R、X的存在范圍的圖。
圖2是Ψ區(qū)域的放大圖。
圖3是表示分段可逆視頻編碼裝置的構成例的圖。
圖4是表示分段可逆視頻譯碼裝置的構成例的圖。
圖5是表示當將通用可變長度編碼用于index編碼時的分段可逆視頻譯碼裝置的構成例的圖。
圖6是表示實施例1的處理流程的圖。
圖7是表示實施例2的處理流程的圖。
具體實施例方式
下面,參照附圖詳細說明本發(fā)明的實施形態(tài)和實施例。但是,本發(fā)明不限于以下說明的實施形態(tài)和實施例,例如,將它們適當組合的形態(tài)也屬于本發(fā)明的范圍。
作為說明本發(fā)明的前提,首先說明H.264方式的正交變換。
在H.264標準中,在預測幀內或幀間的像素值之后,對每一個縱橫各4個像素的小塊進行殘差的正交變換和系數的量化。
將原始信號的小塊用4×4的矩陣U來表示,同樣用4×4的矩陣Y來表示在幀內和幀間預測該塊的信號。而且,設預測殘差信號(4×4矩陣R)為R=U-Y (1)它們中的所有的元素都是整數。這里,將殘差信號的各元素記為[數式1]R=abcdefghijklmnop...(2)]]>對其進行下面的正交變換。
X=TRTt(3)這里,[數式2]是T=111121-1-21-1-111-22-1...(4)]]>此外,Tt表示矩陣T的轉置矩陣。
進而,設X的各元素為[數式3]X=ABCDEFGHIJKLMNOP...(5)]]>這里,應注意,T雖然是正交變換,但不是正規(guī)的正交變換。正規(guī)的正交變換的矩陣始終是1,而T的矩陣(detT)是40,故任何一個16維區(qū)域的體積經T映射后變成40倍。式(3)因利用T對R的4行和4列進行變換,故變換后系數X與變換前(殘差信號R)相比為延伸了404+4=6,553,600,000,000倍(6)被映射到極疏的空間內。H.264中的正交變換系數雖然變成整數,但系數空間的格子點作為殘差信號幾乎是不合適的(即,即使利用后面的式(8)進行逆變換也得不到整數值)。假如將系數空間的所有的格子點作為對象,對和原始信號對應的格子點進行編碼,則每一個像素需要多出用2為底上述數的對數除以像素數(4×4=16)log2(404+4)/16=2.66[bit] (7)的位。若考慮作為對象的信號是(每1個顏色分量)8位,不得不說增加2.66位明顯地阻礙了其實用性。
在H.264方式中,如前所述,通過對放大后的X的各元素進行粗略的量化(使用較寬的幅度)來對該放大部分進行補償。
若不進行量化,則通過逆變換R=T-1(Tt)-1(8)殘差信號完全復原,雖然利用
U=R+Y (9)可以再現原像素值的4×4的矩陣U,但是,對于實際的H.264編碼,若在譯碼側對量化后系數進行逆量化,則一般地,雖然可以復原成接近原來的值,但不是完全相同的值。這樣,X在傳送后變成不同的值X’(≠X),利用式(8)進行逆變換,變成R≠R′=T-1X′(Tt)-1雖然在譯碼側Y可以和在編碼側相同,但因R不能再現,故也不能再現原像素值U=R+Y。
因此,為了完全再現U,有必要另外傳送對X的量化時損失的信息進行補償的附加信息。
本實施形態(tài)是和本發(fā)明的第1形態(tài)相對應的形態(tài)。
實施形態(tài)1的分段可逆視頻編碼方法像下述那樣,對該量化后損失的信息有效地進行編碼。
例如,式(5)中的系數A的值因經過量化并被傳送,譯碼側不能準確地知道量化前的A值。這里,編碼側的量化方法已知,知道A的取值范圍。即,若以H.264軟件JM(參考文獻http//bs.hhi.de/~suehring/tml/,“JM Reference Software version 8.4”,jul 2004)的量化方法為例,可以像|levelA|=(|A|*qcA+qpconst)>>qbits (10)那樣求出量化后的值levelA。這里,“>>”是按位右移運算符。再有,levelA的正負與A一致。這里,qcA與A的位置、量化參數對應并由JM所確定的整數,qbits與量化參數對應、并由JM確定的整數。
因為在譯碼側可以知道量化參數、編碼方式和量化方法,所以,可以具有和編碼側公用的levelA、qpconst、qbits。首先,根據levelA的值求出
x=|levelA|<<qbitsy=x+(1<qbits)-1mmin(x-qpconst+qcA-1)/qcAmmax=(y-qpconst)/qcA這里,“<<”是按位左移運算符,“/”是舍棄小數點后面的整數除法運算。可以像下述那樣求出上下限Amin和Amax。 這樣,可以得到量化前系數可取的上下限值下限值Amin,Bmin,Cmin,...,Pmin(13)上限值Amax,Bmax,Cmax,...,Pmax(14)這些數值的范圍相當于本發(fā)明的第1形態(tài)的‘變換系數的存在空間’。
通過以該上下限為基礎執(zhí)行下述算法1那樣的16次循環(huán)(相當于本發(fā)明的第1形態(tài)的‘列舉步驟’),從而可以將正交變換后的空間內的妥當的格子點無遺漏地全部列舉出來。這里,以下的處理相當于本發(fā)明的第1形態(tài)的‘妥當性判斷’。
*‘R的全部元素是整數’*‘U的全部元素都在8位整數范圍(0~255)內’上述妥當性判斷結果,列舉的格子點的總數為cases,與殘差信號的正交變換系數一致的格子點的‘序號’作為index給出。
1.index←O2.cases←O3.for A←Aminto Amax4.for B←Bminto Bmax5.for C←Cminto Cmax6.for D←Dminto Dmax7.for E←Eminto Emax8.for F←Fminto Fmax9.for G←Gminto Gmax10.for H←Hminto Hmax11.for I←Iminto Imax12.for J←Jminto Jmax13.for K←Kminto Kmax14.for L←Lminto Lmax15.for M←Mminto Mmax16.for N←Nminto Nmax17.for O←Ominto Omax18.for P←Pminto Pmax19.begin20.R←T-1X(Tt)-1(*式(8)*)21.if R的全部元素是整數22.then(*A~P作為整數信號的正交變換的結果是妥當的*)23.U←R+Y(*式(9)*)24.if U的全部元素是在8位整數的范圍內
25.then(*A~P作為整數信號的正交變換的結果是妥當的*)26.if X和原變換系數一致
27.then index←cases28.endif29.cases←cases+130.endif31.endif32.end33.使用與cases對應的信息量對index進行編碼[實施形態(tài)2]利用變換系數間的整數值關系實現高速化本實施形態(tài)與本發(fā)明的第2形態(tài)相對應。
在實施形態(tài)1中,因在1個間隔中分別執(zhí)行16次循環(huán),故總循環(huán)數非常多。但是,在實施形態(tài)2中,通過使用正交變換系數間存在的整數關系,在編碼效率相同的條件下,可以大幅度減少循環(huán)次數。
首先,利用從頂行到底行按順序排列的16維的行矢量↑x,像↑x=[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p](15)那樣,來表現4×4矩陣R。
若使用該16維矢量改寫式(3),則可以寫成A=↑tA↑xtB=↑tB↑xt···P=↑tP↑xt這里是
↑tA=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]↑tB=[2,1,-1,-2,2,1,-1,-2,2,1,-1,-2,2,1,-1,-2]↑tC=[1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1]↑tD=[1,-2,2,-1,1,-2,2,-1,1,-2,2,-1,1,-2,2,-1]↑tE=[2,2,2,2,1,1,1,1,-1,-1,-1,-1,-2,-2,-2,-2]↑tF=[4,2,-2,-4,2,1,-1,-2,-2,-1,1,2,-4,-2,2,4]↑tG=[2,-2,-2,2,1,-1,-1,1,-1,1,1,-1,-2,2,2,-2]↑tH=[2,-4,4,-2,1,-2,2,-1,-1,2,-2,1,-2,4,-4,2]↑tI=[1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1]↑tJ=[2,1,-1,-2,-2,-1,1,2,-2,-1,1,2,2,1,-1,-2]↑tK=[1,-1,-1,1,-1,1,1,-1,-1,1,1,-1,1,-1,-1,1]↑tL=[1,-2,2,-1,-1,2,-2,1,-1,2,-2,1,1,-2,2,-1]↑tM=[1,1,1,1,-2,-2,-2,-2,2,2,2,2,-1,-1,-1,-1]↑tN=[2,1,-1,-2,-4,-2,2,4,4,2,-2,-4,-2,-1,1,2]↑tO=[1,-1,-1,1,-2,2,2,-2,2,-2,-2,2,-1,1,1,-1]↑tP=[1,-2,2,-1,-2,4,-4,2,2,-4,4,-2,-1,2,-2,1]這里,若計算↑tA+↑tC,則變成↑tA+↑tC=[2,0,0,2,2,0,0,2,2,0,0,2,2,0,0,2]=2[1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1]因此,因為是,A+C=(↑tA+↑tC)↑xt=2[1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1]↑xt所以,對于任意的整數元素矢量↑x,A+C始終是偶數。
即,當知道A的值時,因知道C的下位第1位和A的該位相同,所以,C的存在范圍為
Cmin+((Cmin+A)&1)≤C≤Cmax-((Cmin+A)&1)(16)在該區(qū)域內,C按間隔2稀疏地存在于該區(qū)域中。這里,‘&’是按位與運算符。具有相同的位置關系。
E和GI和KM和O也一樣。
同樣,對于縱方向,因A+I也是偶數,故當A的值已知時,可知I以間隔2存在的范圍。具有相同的位置關系。
B和JC和KD和L也一樣。
其次,對于任意的整數元素矢量↑x,B+(C>>1)+(A>>1)始終是偶數。這一點可以通過對使↑x的各元素按0,1,2,3變化的所有的情況進行確認來加以證明。即,當A和C的值已知,因知道B的下位的第1位和(C>>1)+(A>>1)的該位相同,所以,和上述一樣,可知B的存在范圍,在那里,B按間隔2存在。具有相同的位置關系,且縱向的位置關系相同。
Fと(E>>1)+(G>>1)Jと(I>>1)+(K>>1)Nと(M>>1)+(O>>1)Eと(A>>1)+(I>>1)Fと(B>>1)+(I>>1)Gと(C>>1)+(K>>1)Hと(D>>1)+(L>>1)也一樣。
其次,因2.5(↑tA+↑tC)+2↑tB+↑tD=[10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0]=10[1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0]故對于任意整數元素矢量↑x,2B+D+2.5(A+C)始終是10的倍數。
即,當A、B、C的值已知時,因D的以10作為除數的余數(Dmod 10)和2.5(A+C)+2B的該值的和是0或10,可知D的存在范圍,在其中,以間隔10存在。
相同的位置關系或縱向相同的位置關系,在例如M和A、E、I之間也具有同樣的關系。
這里使用的以某整數y作為除數的余數運算符mod y對于非負整數x≥0,和C語言等的余數運算符‘%’相同,是x mod y =x%y再有,%運算符對于負整數x<0,像x%y=-((-x)%y)那樣變成奇函數,但是,這里使用的mod y結果不會變成負值。
x mod y=(x%y)+y(x<0時)例如是(-1)mod 10=9進而,變成↑tA+↑tC+↑tI+↑tK=[4,0,0,4,0,0,0,0,0,0,0,0,4,0,0,4]=4[1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1]因此,對于任意整數元素矢量↑x,A+C+I+K始終是4的倍數。
即當A、C、I的值已知時,因K的以4作為除數的余數和(A+C+I)的該值的和是0或4,故可知K的存在范圍,在這里,以間隔4存在。
進而還具有以下關系
↑tB-↑tJ+↑tE-↑tG=
=4
2.5(↑tA+↑tC+↑tI+↑tK)+2(↑tE+↑tG)+↑tM+↑tO=[20,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0]=20[1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0]2.5(↑tA+↑tC+↑tI+↑tK)+2(↑tB+↑tJ)+↑tD+↑tL=[20,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0]=20[1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0]6.25(↑tA+↑tC+↑tI+↑tK)+5(↑tB+↑tE+↑tG+↑tJ)+2.5(↑tD+↑tL+↑tM+↑tO)+4↑tF+2(↑tH+↑tN)+↑tP=[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]=100[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]即,像1)使A的范圍在1間隔內循環(huán)2)使C的范圍在2間隔內循環(huán)(利用A)3)使B的范圍在2間隔內循環(huán)(利用A、C)4)使D的范圍在10間隔內循環(huán)(利用A、B、C)5)使I的范圍在2間隔內循環(huán)(利用A)6)使E的范圍在2間隔內循環(huán)(利用A、I)7)使M的范圍在10間隔內循環(huán)(利用A、I、E)8)使K的范圍在4間隔內循環(huán)(利用A、C、I)9)使G的范圍在2間隔內循環(huán)(利用E)10)使F的范圍在2間隔內循環(huán)(利用E、G)11)使H的范圍在10間隔內循環(huán)(利用E、F、G)12)使J的范圍在4間隔內循環(huán)(利用B、E、G)13)使L的范圍在20間隔內循環(huán)(利用A、B、C、D、I、J、K)
14)使N的范圍在10間隔內循環(huán)(利用B、F、J)15)使O的范圍在20間隔內循環(huán)(利用A、C、E、G、I、K、M)16)使P的范圍在100間隔內循環(huán)(利用A~O)那樣,若執(zhí)行多重循環(huán),則將各for循環(huán)與1間隔循環(huán)相比,可以將循環(huán)次數減至1/(2*2*10*2*2*10*4*2*2*10*4*20*10*20*100)=1/409,600,000,000具體的順序像算法2那樣。這里,例如如下所示,使用f(x,y)=(-x)mod y (17)可以求出C’min、B’min和D’min。
C′min=Cmin+f(Cmin+A,2) (18)B′min=Bmin+f(Bmin+(A>>1)+(C>>1),2) (19)D′min=Dmin+f(Dmin+2B+2.5(A+C),10) (20)E’min~P’min也一樣。
1.index←02.cases←03.for A←Aminto Amax(*只在這里是1間隔*)
4.for C←C′minto Cmaxstep 25.for B←B′minto Bmaxstep 26.for D←D′minto Dmaxstep 107.for I←I′minto Imaxstep 28.for E←E′minto Emaxstep 29.for M←M′minto Mmaxstep 1010.for K←K′minto Kmaxstep 411.for G←G′minto Gmaxstep 212.for F←F′minto Fmaxstep 213.for H←H′minto Hmaxstep 1014.for J←J′minto Jmaxstep 415.for L←L′minto Lmaxstep 2016.for N←N′minto Nmaxstep 1017.for O←O′minto Omaxstep 2018.for P←P′minto Pmaxstep 10019.begin20.R←T-1X(Tt)-1(*式(8)*)21.if R的全部元素是整數22.then(*A~P作為整數信號的正交變換的結果是妥當的*)23.U←R+Y(*式(9)*)24.if U的全部元素是在8位整數的范圍內
25.then(*A~P作為殘差信號的正交變換的結果是妥當的*)26.if X和原變換系數一致27.then index←cases28.endif29.cases←cases+130.endif31.endif32.end
33.使用與cases對應的信息量對index進行編碼[實施形態(tài)3]減少多重循環(huán)本實施形態(tài)與本發(fā)明的第3形態(tài)對應。
上述實施形態(tài)1和實施形態(tài)2的算法都使用16次循環(huán),但在實施形態(tài)3中,為了進一步實現高速化,而減少循環(huán)的次數。這里,通過獨立地傳送A~P的16個系數中A B C DE · · ·I · K ·M · · ·的8個系數來除去這些循環(huán)。
首先,考慮系數A的傳送。例如,作為‘附加信息’,若傳送ZA=A-Amin則通過在譯碼側設為A=ZA+Amin可以復原A。
再有,因這時能取得A的情形的數是Amax-Amin+1故對ZA進行編碼所需要的信息量變成log2(Amax-Amin+1)[bit](21)因為這是和譯碼側共用的,所以可以對ZA進行譯碼。
雖然對于B~P可以像該A那樣傳送,但因殘差信號在正交變換后的空間內分布非常稀疏,故代碼量大大浪費。因此,例如,對于B,當A、C已知時,與B有關的循環(huán)能夠以2間隔完成,故若傳送ZB=(B-B’min)/2則在譯碼側可以通過B=2ZB+B’min復原B。對ZB進行編碼所需要的信息量變成
log2((Bmax-B’min)/2+1)[bit]。
對于C~K也一樣。因此,通過執(zhí)行下述步驟1)利用ZA對A的值進行編碼2)利用將C的范圍縮小到約1/2的Zc進行編碼(利用A)3)利用將B的范圍縮小到約1/2的ZB進行編碼(利用A、C)4)利用將D的范圍縮小到約1/10的ZD進行編碼(利用A、B、C)5)利用將I的范圍縮小到約1/2的ZI進行編碼(利用A)6)利用將E的范圍縮小到約1/2的ZE進行編碼(利用A、I)7)利用將M的范圍縮小到1/10的ZM進行編碼(利用A、E、I)8)利用將K的范圍縮小到約1/4的ZK進行編碼(利用A、C、I)可以有效地傳送X中的A B C DE · · ·I · K ·M · ··8個系數。像這樣范圍縮小后的Zx相當于本發(fā)明的第3形態(tài)的‘除去不能取得該系數的值的信息’。
對于剩下的8個系數·· · ·· F G H· J · L· N O P和實施形態(tài)1一樣,歸納起來用1個數index來表現并傳送。
若將它們歸納在一起,則變成算法3所示的步驟。
1.按A、C、B、D、I、E、M、K的順序編碼
2.index←O3.cases←O4.for G←G′minto Gmaxstep 25.for F←F′minto Fmaxstep 26.for H←H′minto Hmaxstep 107.for J←J′minto Jmaxstep 48.for L←L′minto Lmaxstep 209.for N←N′minto Nmaxstep 1010.for O←O′minto Omaxstep 2011.for P←P′minto Pmaxstep 10012.begin13.R←T-1X(Tt)-1(*式(8)*)14.if R的全部元素是整數15.then(*A~P作為整數信號的正交變換的結果是妥當的*)16 U←R+Y(*式(9)*)17.if U的全部元素是在8位整數的范圍內
18.then(*A~P作為殘差信號的正交變換的結果是妥當的*)19.if X和原變換系數一致20.then index←cases21.endif22.cases←cases+123.endif24.endif25.end26.使用與cases對應的信息量對index進行編碼如上所述,16次循環(huán)減少到8次,處理速度更高。
再有,記述index所需要的信息量為
log2cases[bit](22)該信息是譯碼側在沒有附加信息的情況下可以具有的,而且,是index譯碼所必需的信息。
對應的譯碼本實施形態(tài)是與本發(fā)明的第7形態(tài)對應的形態(tài)。
在這里,說明與上述實施形態(tài)3的編碼對應的關于譯碼的實施形態(tài)。在譯碼側,通過執(zhí)行和編碼同樣的循環(huán),當在最里面的循環(huán)的妥當性判斷結果是index+1次為真時,A~K和G~P的值變成與原殘差信號對應的正交變換系數。
在index編碼時,當與具有多少信息量對應進行編碼時,在index的譯碼中,首先,必須知道具有多少信息量。因此,有必要預先得到cases。為此,有必要執(zhí)行和編碼一樣的循環(huán)。
例如,雖然需要額外的存儲器,但是,為了避免再次執(zhí)行多重循環(huán),通過像算法4那樣只執(zhí)行一次多重循環(huán),可以按順序取得cases、index和原始信號。這里,Ubuf[]是將4×4矩陣作為元素的排列,假定是動態(tài)確?;蛘呤穷A先確保有足夠的量。
1.按A、C、B、D、I、E、M、K的順序譯碼2.cases←O3.for G←G′minto Gmaxstep 24.fpr F←F′minto Fmaxstep 25.for H←H′minto Hmaxstep 106.for J←J′minto Jmaxstep 47.for L←L′minto Lmaxstep 208.for N←N′minto Nmaxstep 109.for O←O′minto Omaxstep 2010.for P←P′minto Pmaxstep 10011.begin12.R←T-1X(Tt)-1(*式(8)*)
13.if R的全部元素是整數14.then(*A~P作為整數信號的正交變換的結果是妥當的*)15.U←R+Y(*式(9)*)16.if U的全部元素是在8位整數的范圍內
17.then(*A~P作為整數信號的正交變換的結果是妥當的*)18.Ubuf[cases]←U19.cases←cases+120.endif21.endif22.end23.使用與cases對應的信息量對index進行譯碼24.U←Ubuf[index](*原始信號值*)[實施形態(tài)5]代碼量的快速推測本實施形態(tài)是與本發(fā)明的第6形態(tài)相對應的形態(tài)。
在H.264方式中,可以選擇各種各樣的預測模式,對于幀內預測,可以選擇多個模式或種類,對于幀間預測可以選擇多個塊的尺寸等。預測殘差信號R也因預測模式而變化,所以,當在代碼量對失真的意義上選擇最佳預測模式時,有必要合適地估計每一個模式的代碼量。
可逆編碼時,因失真始終是零,故只需注意使代碼量(H.264標準的代碼量和附加信息代碼量的和)最小即可。
若執(zhí)行算法1、算法2和算法3所示那樣的多重循環(huán),則當然可以估計正確對的附加信息代碼量,但是,如果有更高速的代碼量推測法,則適于將多個模式進行比較。
實施形態(tài)5的目的在于在不執(zhí)行多重循環(huán)的情況下估計附加信息的代碼量。
首先,說明像實施形態(tài)1、實施形態(tài)2那樣事前沒有傳送特定的變換系數的情況。事前求出量化前的系數可取的上下限值(式(13),式(14))。據此,可以像下面那樣求出本發(fā)明第6形態(tài)的‘變換系數的存在空間’的體積V。
V=Πx∈A,···P(xmax-xmin+1)...(23)]]>考慮該V與存在空間中的格子點的個數近似。不是其中所有的都與原殘差信號對應,因空間如式(6)所示那樣被放大,故V除以該倍數得到的V0V0=V/404+4(24)可以與格子點的總數近似。因此,每一個像素的附加信息的代碼量I0變成l0=log2V0/16=log2(V/404+4)/16=log2V/16-2.66[bit] (25)此外,當像實施形態(tài)3那樣事前傳送特定的變換系數時,這些信息量I1和式(21)一樣是[數式6]I1=Σx∈A,··,K((xmax-xmin′)/nx+1)...(26)]]>這里,x是A B C DE · ··I · K ·M · ··的系數。
再有,nx是使所敘述的空間縮小的量,對于A,...,M分別是12210
2 · ··2 · 4 ·10···A’min=Amin,C’min~M’min可以像式(18)等那樣求出。
此外,剩下的8維的‘變換系數的存在空間’的體積V1如下[數式7]V1=Πx∈F,···p(xmax-xmin+1)...(27)]]>這里,和上面的情況一樣,與原殘差信號對應的格子點稀疏地存在。該空間的放大率應該是用全部乘以nx(x∈A,...,M)的項除以式(6)所得到的數[數式8]n0=404+4/Πx∈A,···,Mnx=408/(1*2*2*10*2*2*4*10)]]>=1,024,000,000...(28)]]>因此,每一個像素的‘格子點總數’的信息量I1變成l2=log2(V1/n0)/16=log2V1/16-1.87[bit](29)結果,每一個像素的附加信息量是兩者之和l1+l2[bit] (30)利用像式(25)、式(30)那樣估算的值,可以不執(zhí)行使用多重循環(huán)的編碼來進行代碼量的推測。使用它來選擇代碼量最小的模式,并只對所選擇的模式進行實際的編碼,由此,可以實現準最佳的可逆編碼。
妥當性判斷的高速化本實施形態(tài)是與本發(fā)明的第4形態(tài)相對應的形態(tài)。
因T-1是[數式9]T-1=0.250.20.250.10.250.1-0.25-0.20.25-0.1-0.250.20.25-0.20.25-0.1...(31)]]>故當直接計算式(8)時,必需要進行浮點運算。但是,若將其放大20倍,則變成[數式10]T0=20T-1=545252-5-45-2-545-45-2...(32)]]>所以,通過用T0代替T-1,可以像下面那樣只通過整數運算就能夠得到正確的R的400(=20×20)倍的值(記作R400)。
R400=400R=T0XTt0(33)這里,當設[數式11]stuv=Toabcd...(34)]]>時,式(33)可以縱橫8次分解成式(34),但是該計算可以具體地像算法5那樣求出。
1.x0←5(a+c)2.x1←5(a-c)3.x2←4b+2c4.x3←2b-4c5.s←x0+x26.t←x1+x37.u←x1-x38.v←x0-x2這里,5x可以像(x<<2)+x那樣通過1次移位、1次相加求得,4b+2c等也可以作為(b<<2)+(c<<1),通過2次移位、1次相加求得,故在式(33)的計算中,乘法一概不需要。
這里,作為前述的‘妥當性判斷’之一的‘R的全部元素是整數’和‘R400的全部元素是400的倍數’等價。當執(zhí)行它時,為了確認用400除得的余數是0,除法運算是必需的。但是,因在完成1個循環(huán)的時刻除去了作為25的倍數的冗余性,故只要確認是16的倍數即可。這和‘R400的全部元素的低位4位全是0’等價。這和‘各元素和15(二進制1111)的按位與運算的結果是0’等價,可以不用除法來進行判斷。
這里,是另一個‘妥當性判斷’,有必要對‘U的全部元素都在8位整數的范圍
內’進行修正。若將式(9)的兩邊乘以400,則變成U400=400U=R400+Y400(35)這里,Y400是將預測信號Y放大400倍的值,預先準備Y400(若使用256元素的查尋表則不需要400倍的乘法運算),若求出與R400的和,則可以得到原始信號的400倍的信號。這里,因255×400=102,000,故只要確認‘U400的全部元素都在
之內’即可。
歸納該步驟,便變成算法6。
1.index←02.cases←03.for A←Aminto Amax(*僅這里是1間隔*)4.for C←C′minto Cmaxstep 25.for B←B′minto Bmaxstep 26.for D←D′minto Dmaxstep 107.for I←I′minto Imaxstep 28.for E←E′minto Emaxstep 29.for M←M′minto Mmaxstep 1010.for K←K′minto Kmaxstep 411.for G←G′minto Gmaxstep 212.for F←F′minto Fmaxstep 213.for H←H′minto Hmaxstep 1014.for J←J′minto Jmaxstep 415.for L←L′minto Lmaxstep 2016.for N←N′minto Nmaxstep 1017.for O←O′minto Omaxstep 2018.for P←P′minto Pmaxstep 10019.begin20.R400←T0XTt0(*式(33)*)21.if R400的全部元素的低位4位是022.then(*A~P作為整數信號的正交變換的結果是妥當的*)23.U400←R400+Y400(*式(35)*)24.if U400的全部元素是在
之內25.then(*A~P作為整數信號的正交變換的結果是妥當的*)26.if X和原變換系數一致
27.then index←cases28.endif29.cases←cases+130.endif31.endif32.end33.使用與eases對應的信息量對index進行編碼[實施形態(tài)7]利用了凸形狀的處理高速化本實施形態(tài)與本發(fā)明的第5形態(tài)對應。
考慮殘差信號[數式12]R=abcdefghijklmnop]]>的存在空間。若設左上位置的預測像素信號為Ya,則該位置的元素a滿足0≤a+Ya≤255(36)-Ya≤a≤255-Ya(37)的存在范圍。b~p也同樣決定上限和下限。若考慮16維空間,則R的存在范圍Ω變成凸多面體(超長方體)的形狀。
即使仍然是利用式(3)將R的存在范圍變換后的16維空間,經過旋轉、放大后仍然是凸多面體。雖然變換系數X存在于該變換目標的空間內,但各元素的上下限像式(13)、(14)那樣求出,所以,X的存在范圍Ψ仍然是凸多面體(超長方體)。因此,Ω和Ψ的相交Ω∩Ψ也仍然是凸多面體。為了簡化這些關系,若用2維來圖示,則如圖1所示。
將圖1的Ψ區(qū)域放大后變成圖2。在列舉格子點的步驟中,當執(zhí)行多重循環(huán)時,如該圖所示,當在A=A0的情況下改變B時,妥當性判斷的第2輪(U的全部元素都在8位整數的范圍
內)在第5個格子點(灰色)上變成‘真’→‘偽’。因存在范圍Ω∩Ψ是凸,故確定在第6個之后是‘偽’,所以,中止B的循環(huán),作為下一次A=A1,重新開始B的循環(huán)。這里,在第6個格子點(灰色)上變成‘真’→‘偽’,所以,中止循環(huán)。這樣,可以中止對圖中由虛線包圍的部分的判斷。
若將它們歸納起來,則變成算法7。若示出對全部系數進行中止妥當性判斷的步驟,因縮進太深,故為了簡單起見,這里只示出對多重循環(huán)最內層的3個變量(N,O,P)進行中止妥當性判斷的步驟,但是,對于反映其一般特性已經足夠了。
1.index←O2.cases←O3.for A←AmintoAmax4.for B←BmintoBmax5.for C←CmintoCmax6.for D←DmintoDmax7.for E←EmintoEmax8.for F←FmintoFmax9.for G←GmintoGmax10.for H←HmintoHmax11.for I←ImintoImax12.for J←JmintoJmax13.for K←KmintoKmax14.for L←LmintoLmax15.for M←MmintoMmax16.begin
17.CheckN←偽18.for N←NmintoNmax19.begin20.CheckO←偽21.for O←OmintoOmax22.begin23.CheckP←偽24.for P←PmintoPmax25.begin26.R←T-1X(Tt)-1(*式(8)*)27.if R的全部元素是整數28.then(*A~P作為整數信號的正交變換的結果是妥當的*)29.U←R+Y(*式(9)*)30.if U的全部元素是在8位的整數范圍
之內31.then(*A~P作為整數信號的正交變換的結果是妥當的*)32.if X和原變換系數一致33.then index←cases34 endif35.CheckN←真36.CheckO←真37.CheckP←真38.cases←cases+139.else if CheckP=真40.then goto 21(*變成真→偽*)41.endif42.endif43.end44.if CheckP=偽and CheckO=真45.then goto 18(*變成真→偽*)46.endif
47.end48.if CheckP=偽and CheckO=偽and CheckN=真49.then goto 15(*變成真→偽*)50.endif51.end52.end53.使用與cases對應的信息量對index進行編碼[實施形態(tài)8]編碼裝置的構成例本實施形態(tài)與本發(fā)明的第8形態(tài)對應。
下面,說明實現上述本發(fā)明的裝置構成。圖3是表示本發(fā)明的分段可逆視頻編碼裝置的構成例的圖。分段可逆視頻編碼裝置1除了根據H.264標準編碼方式對每一個塊算出原始圖像信號和通過幀內編碼的空間預測或幀間編碼的時間預測所產生的預測圖像信號的殘差信號Rorig的部分(在圖示3中被省略)之外,還包括初始化cases,index的初始化部11;對殘差信號Rorig進行正交變換的正交變換部12、量化正交變換部12的輸出的量化部13;求出上下限信息AminAmax,...,Pmin,Pmax的存在空間決定部14;對逐次編碼傳送的系數進行編碼處理的系數逐次編碼部15;求出表示匯總系數的數index再進行編碼的系數匯總編碼部16;判定圖像內的所有塊是否已編碼的結束判定部17。
系數匯總編碼部16由列舉在各系數的上下限內所有的系數組合的多重循環(huán)開始部161、對由已編碼傳送的系數和當前循環(huán)中的系數決定的4×4矩陣X進行逆正交變換的逆正交變換部162、求出矩陣和U=R+Y的預測信號加法部163、更新處理index和cases的內部變量更新部164、判定是否檢查了在各系數的上下限內所有的系數組合的多重循環(huán)結束判定部165和對index進行編碼的序號編碼部166構成。
圖3所示的分段可逆視頻編碼裝置1像以下那樣動作。首先,在初始化部11中分別將‘格子點總數’cases、與殘差信號的正交變換系數一致的格子點的‘序號’index初始化為0。
其次,在正交變換部12中對殘差信號Rorig進行正交變換并得到Xorig。在量化部13中使用量化參數信息對其進行量化。在存在空間決定部14中根據該量化信息求出上下限信息Amin,Amax,…,Pmin,Pmax。
其次,在系數逐次編碼部15中對逐次編碼傳送的系數進行編碼處理。例如,在上述實施形態(tài)1中是0個,在實施形態(tài)3中是A、B、C、D、L、E、M、K共8個。
接著,在系數匯總編碼部16中求出表示剩余的表示匯總系數的數index再進行編碼。即,系數匯總編碼部16中的多重循環(huán)開始部161列舉剩余的系數(例如,實施形態(tài)1是A~P的16個,實施形態(tài)3是G、F、H、J、L、N、O、P共8個)在各自的上下限內可取的所有范圍。這時,也可以像實施形態(tài)2那樣,在列舉時利用系數間的整數值關系跳過不能取得的系數。
在逆正交變換部162中,對由已編碼傳送的系數和當前循環(huán)中的系數A~P所決定的4×4矩陣X進行逆正交變換,并將其作為R。這里,若R中存在不是整數的值,則進入多重循環(huán)結束判定部165的處理。
其次,在預測信號加法部163中求出矩陣和U=R+Y。這里,若U的元素存在不在
的范圍內的值,則進入多重循環(huán)結束判定部165的處理。
其次,在內部變量更新部164中,當X和Xorig一致時,進行將cases代入index的處理。此外,cases加1。
在多重循環(huán)結束判定部165中,判定是否檢查了在上下限內所有系數的組合,若還沒有則返回到多重循環(huán)開始部161的處理。若已檢查完畢,則在序號編碼部166中使用與cases對應的信息量對index進行編碼。
接著,在結束判定部17中判定是否對圖像內的所有塊進行了編碼,若未完成則轉移到下一個塊重新開始初始化部11的處理。若完成,則結束編碼。
在本發(fā)明中,例如,通過使用通用可變長度編碼(參考文獻Y.Itoh,N-M Cheung”Universal Variable length code for DCTcoding”,IEEE Proc.Int.Conf.Image Processing,Vol.1,pp.940-943,2000)等,可以不使用cases而對index進行編碼。這時,在內部變量更新部164中,若X和Xorig一致,則對此時的cases的值進行通用可變長度編碼,并立即結束系數匯總編碼部16的處理。
譯碼裝置的構成例本實施形態(tài)與與本發(fā)明的第9形態(tài)對應。
圖4是表示本發(fā)明的分段可逆視頻譯碼裝置的構成例的圖。分段可逆視頻譯碼裝置2由在對量化參數和量化系數進行譯碼的同時生成預測信號Y的初始化譯碼部21、求出上下限值信息Amin,Amax,...,Pmin,Pmax的存在空間決定部22、對逐次編碼傳送的系數進行譯碼的系數逐次譯碼部23、對表示匯總系數的數index進行譯碼的系數匯總譯碼部24、存儲U的值的作為排列存儲的Ubuf[]25、和判定圖像內的所有決是否已譯碼的結束判定部26構成。
系數匯總譯碼部24由列舉在各系數的上下限內所有系數的組合的多重循環(huán)開始部241、對由已譯碼的系數和當前循環(huán)中的系數決定的4×4矩陣X進行逆正交變換的逆正交變換部242、求出矩陣和U=R+Y的預測信號加法部243、在將U存儲在Ubuf[]25的cases地址中的同時更新cases的內部變量更新部244、判定是否檢查了在上下限內所有系數的組合的多重循環(huán)結束判定部245、對index進行譯碼的序號譯碼部246和將Ubuf[]25的第index個值作為原始圖像信號輸出的原始信號輸出部247構成。
圖4所示的分段可逆視頻譯碼裝置2像以下那樣動作。首先,在初始化譯碼部21中將‘格子點總數’cases初始化為0,進行對量化參數和量化系數的譯碼并生成預測信號Y。
在存在空間決定部22中根據量化參數和量化系數求出上下限值信息Amin,Amax,...,Pmin,Pmax。
其次,在系數逐次編碼部23中對逐次編碼傳送的系數進行譯碼。例如,在上述實施形態(tài)1中不進行譯碼,在實施形態(tài)3中按順序對A、C、B、D、I、E、M、K共8個進行譯碼。
接著,在系數匯總編碼部24中對表示剩余的匯總系數的數index進行譯碼和可逆復原。即,系數匯總編碼部24中的多重循環(huán)開始部241列舉剩余的系數(例如,實施形態(tài)1的情形,是A~P共16個,實施形態(tài)3的情形是G、F、H、J、L、N、O、P共8個)在各自的上下限內可取的所有范圍。
這時,也可以像實施形態(tài)2那樣,在列舉時利用系數間的整數值關系跳過不能取得的系數的組合。但是,跳過不能取得的系數的組合而列舉的順序是和對應的編碼裝置完全相同的順序。
在逆正交變換部242中,對由已譯碼的系數和當前循環(huán)中的系數A~P決定的4×4矩陣X進行逆正交變換,并將其作為R。這里,若R中存在不是整數的值,則進入多重循環(huán)結束判定部245的處理。
其次,在預測信號加法部243中求出矩陣和U=R+Y。這里,若U的元素中存在不在
的范圍內的值,則進入到多重循環(huán)結束判定部245的處理。
其次,在內部變量更新部244中,將U存儲在預先確保的Ubuf[]25的cases地址中,并使cases加1。
在多重循環(huán)結束判定部245中,判定是否檢查了在各系數的上下限內所有的系數組合,若還沒有則返回到多重循環(huán)開始部241的處理。若已檢查完畢,則在序號譯碼部246中使用與cases相對應的信息量對index進行譯碼。
接著,在原始信號輸出部247中,取出Ubuf[]25的第index號的值,并作為原始圖像信號輸出。
接著,在結束判定部26中判定是否對圖像內的所有塊進行了譯碼,若未完成則轉移到下一個塊重新開始初始化譯碼部21的處理。如完成,則結束譯碼。
在本發(fā)明中,當index的編碼使用通用的可變長度編碼時,譯碼側變成圖5所示那樣的功能塊結構。圖5所示的分段可逆視頻譯碼裝置3在通用可變長度譯碼部27中對index進行譯碼,并在多重循環(huán)結束判定部285中判定執(zhí)行了多重循環(huán)的次數是不是第index次,若不是則判定為立即結束,并將此時的U值作為原始信號輸出。因此,不需要像圖4所示的Ubuf[]25那樣的排列存儲。其余部分的動作和圖4所說明的例子相同。
實施例1說明與實施形態(tài)3對應的實施例1。在該實施例1中,作為核心處理的概況如下輸入量化參數,預測信號Y和原殘差信號Rorig
處理對于和原始信號對應的正交變換系數,一部分變成壓縮信息,剩下的作為無遺漏地列舉所有的能變成原始信號的組合中的序號來表現。
輸出分別表現一部分系數的(A、C、B、D、I、E、M、K)的壓縮信息(ZA~ZK),用1個數值代表剩下的匯總系數(G、F、H、J、L、N、O、P)的代碼(index)參照圖6所示的處理流程說明實施例1。首先,在步驟S101中輸入量化參數,預測信號Y和原殘差信號Rorig。其次,在步驟S102中將index和cases同時初始化為0。
其次,在步驟S103中,對Rorig進行正交變換并得到原變換系數Xorig,同時,求出對Xorig進行量化后的量化系數。在步驟S104中,根據前面得到的量化參數和量化系數的信息求出作為反推Xorig的矩陣之X的各元素(A~P)的上下限。在步驟S105中,在此基礎上,按順序對A、C、B、D、I、E、M、K進行壓縮編碼。
接著,進入G、F、H、J、L、N、O、P的8重循環(huán)(步驟S106~步驟S114)。在步驟S107中,利用式(8)對由當前的A~P的值構成的4×4矩陣X進行逆變換,得到R。
在步驟S108中,確認R的元素全部是否是整數,若是‘偽’則進入到S114,若是‘真’則進入到S109,并計算U=R+Y。
其次,在步驟S110中,確認U的所有元素是否都在
的范圍之內。若是‘偽’則進入S114,若是‘真’則進入S111,確認X是否和原變換系數Xorig相等。若是‘真’則在步驟S112中,將當前的cases值保存在變量index中。接著,在步驟S113中,使cases值加1并進入步驟S114。
在步驟S114中,確認8重循環(huán)是否都完成,若是‘偽’則返回到循環(huán)開始的步驟S106,若是‘真’則在步驟S115中使用已求出的與cases(格子點總數)對應的信息量(式(22))對index進行編碼并結束程序。
這里,示出了預先對部分系數(A、C、B、D、I、E、M、K共8個系數)另外進行編碼(步驟S105)的例子,但也可以省略這一步驟,若將從步驟S106到S114作為整個16個系數的多重循環(huán),則變成框架結構和實施形態(tài)1或實施形態(tài)2完全對應的實施例。
實施例2說明與實施形態(tài)4對應的實施例2。在該實施例2中,作為核心處理的概況如下輸入量化參數,預測信號Y和量化系數處理對于和原始信號對應的正交變換系數,一部分(A、C、B、D、I、E、M、K)從壓縮信息進行譯碼,剩余的(G、F、H、J、L、N、O、P)作為無遺漏地列舉所有的能變成原始信號的組合中的序號來譯碼。
輸出原圖像信號參照圖7所示的處理流程說明實施例2。首先,在步驟S201中將cases初始化為0。其次,在步驟S202中進行量化參數、量化系數的譯碼并生成預測信號Y。這些是從H.264基本信息位流中得到的信息。
在步驟S203中,根據前面得到的信息求出矩陣X的各元素(A~P)的上下限。在步驟S204中,在此基礎上,按順序對A、C、B、D、I、E、M、K進行譯碼。
接著,進入G、F、H、J、L、N、O、P的8重循環(huán)(步驟S205~步驟S212)。在步驟S206中,利用式(8)對由當前的A~P的值構成的4×4矩陣X進行逆變換,得到R。
在步驟S207中,確認R的元素是否全是整數,若是‘偽’則進入S212,若是‘真’則進入S208,并計算U=R+Y。
其次,在步驟S209中,確認U的所有元素是否都在
的范圍之內,若是‘真’則在步驟S210中,將當前的U值保存在陣列Ubuf[]的cases地址中,進入到步驟S211使cases值加1,并進入S212,若是‘偽’則進入到步驟S212。
在步驟S212中,確認8重循環(huán)是否都完成,若是‘偽’則返回循環(huán)開始的步驟S205。若是‘真’,則在步驟S213中使用已求出的與cases(格子點總數)對應的信息量(式(22))對index進行譯碼,在步驟S214中輸出Ubuf[index](相當于原始信號)并結束程序。
在以上實施例中,說明了使用cases對index進行編碼的例子,但也可以使用通用可變長度編碼(UVLC)或停止代碼對index進行編碼。當index編碼使用通用可變長度編碼或停止代碼時,譯碼側即使不知道cases也可以譯碼。這時,可以預想index用的代碼量增加不到兩成,由于不必計算cases的值,故可以中途中斷多重循環(huán),具有使編碼和譯碼的時間減半的效果。此外,還具有譯碼側不需要排列存儲Ubuf[]的效果。
以上,參照
了本發(fā)明的實施形態(tài)和實施例,但這些只不過是本發(fā)明的例子,很明顯,本發(fā)明不限于這些實施形態(tài)和實施例。因此,在不脫離本發(fā)明的精神和范圍的范圍內,可以進行構成要素的增加、省略、置換及其他的變更。
例如,圖3~圖5所示的裝置除了利用專用的硬件來實現的形態(tài)之外,也可以利用具有存儲器和CPU(中央處理裝置)等的計算機系統來構成,通過將用于實現這些裝置的處理(例如,圖6~圖7所示的各步驟)程序安裝在存儲器中后再執(zhí)行來實現該功能。此外,也可以將用來實現該功能的程序記錄在計算機可讀取的記錄媒體中,使計算機系統讀取記錄在該記錄媒體中的程序后再執(zhí)行。
再有,這里所說的計算機系統包含OS或外設等硬件。此外,計算機可讀取的記錄媒體是指軟盤、光磁盤、ROM、CD-ROM等可移動的媒體和內置在計算機內的硬盤等存儲裝置,還包括經由像經因特網等網絡或電話線路等通信線路發(fā)送程序時的通信線路那樣,動態(tài)地保持程序的程序載體(傳送媒體乃至傳送波)、和像此時的服務器或客戶計算機系統內部的易失性存儲器那樣,在一定時間內保持程序的介質。此外,上述程序也可以是用來實現上述部分功能的程序,進而,也可以是通過與已記錄在計算機系統中的程序組合來實現上述功能的、所謂差分文件(差分程序)。
此外,分段可逆視頻編碼裝置和分段可逆視頻譯碼裝置例如可以像以下那樣構成。
即,分段可逆視頻編碼裝置的構成包括生成以H.264標準為基準的位流的單元;在對圖像信號的各塊進行的編碼中輸入幀內編碼的空間預測或幀間編碼的時間預測的預測信號的單元;輸入從原始信號減去預測信號后的殘差信號的單元;求出根據H.264標準方式對殘差信號進行正交變換得到的變換系數和將其量化后的量化系數的單元;指定由量化系數、量化參數和量化方法決定的變換系數的存在空間的單元;判斷將該空間內的某格子點作為殘差信號的正交變換的結果是否妥當的妥當性判斷單元;列舉在該空間內的格子點中上述判斷是妥當的格子點的列舉單元;按照列舉的順序從0開始對列舉的格子點分配序號的單元;在列舉的格子點中得到與殘差信號的變換系數一致的格子點的序號的單元;對得到的序號進行編碼的單元。
在上述分段可逆視頻編碼裝置中,可以具有在列舉格子點時通過使用變換系數間的整數值的關系對在空間內不能取得變換系數的點省略妥當性判斷處理的單元。
在上述分段可逆視頻編碼裝置中,可以具有對特定的幾個變換系數,傳送除了利用該系數和已傳送完成的系數(如果有的話)的整數值的關系而不能取得該系數的值之外的信息,從而代替?zhèn)魉驮撓禂档膯卧?;和列舉使用像這樣預先已傳送的變換系數將維數縮小的存在空間內的格子點的單元。
在上述分段可逆視頻編碼裝置中,可以具有只通過位運算和整數加減運算來等效地實現上述妥當性判斷的單元。
在上述分段可逆視頻編碼裝置中,可以具有利用殘差信號的存在范圍和變換系數的存在范圍相交形成為凸多面體的情況在途中中止上述妥當性判斷的單元。
在上述分段可逆視頻編碼裝置中,可以具有不用上述列舉裝置列舉格子點而進行代碼量的估計的單元。
與上述分段可逆視頻編碼裝置對應的分段可逆視頻譯碼裝置的構成包括執(zhí)行H.264標準譯碼方式的單元;指定由量化參數、量化系數、編碼時的量化方法和已復原的系數(如果有的話)決定的變換系數的存在空間的單元;對應譯碼的系數進行譯碼的單元;和第1~第3的本發(fā)明相同的列舉單元和判斷單元;對序號進行譯碼的單元;輸出序號與所列舉的順序相等的格子點的單元。
本發(fā)明涉及實現高效率視頻編碼和譯碼的分段可逆視頻編碼、譯碼技術。若按照本發(fā)明,可使作為基本部分傳送的代碼保持與H.264標準的兼容性,同時可以盡量減小附加部分的代碼量,可進行與原始信號一致的可逆譯碼。此外,若按照本發(fā)明,能夠以幾兆倍的高速進行處理。進而,可以不實際進行編碼就能夠對代碼量進行推測,結果,可以快速進行減小代碼量的預測模式的選擇。
權利要求
1.一種分段可逆視頻編碼方法,進行可實現與原始信號一致的譯碼的視頻編碼,其特征在于,包括如下步驟根據預先規(guī)定的非可逆視頻編碼方式,對圖像信號的每一個塊輸入從原始信號減去幀內編碼的空間預測或幀間編碼的時間預測的預測信號而得到的殘差信號;求出根據上述非可逆視頻編碼方式對上述殘差信號進行正交變換所得到的變換系數和將其量化后的量化系數;指定由上述量化系數、量化時使用的量化參數和量化方法決定的變換系數的存在空間;判斷將上述變換系數的存在空間內的某格子點作為殘差信號的正交變換的結果是否妥當的妥當性判斷;按照規(guī)定的格子點的順序搜索并列舉在上述變換系數的存在空間內的格子點中上述判斷較妥當的格子點;按照列舉的順序對列舉的格子點分配序號;在列舉的格子點中得到與殘差信號的變換系數一致的格子點的序號;對與上述殘差信號的變換系數一致的格子點的序號進行編碼并輸出。
2.權利要求1記載的分段可逆視頻編碼方法,其特征在于在列舉上述變換系數的存在空間內的格子點中上述判斷較妥當的格子點的步驟中,對于通過使用變換系數間的整數值的關系在上述空間內不能取得變換系數這一點,省略作為殘差信號的正交變換的結果是否妥當的判斷處理。
3.權利要求1或2記載的分段可逆視頻編碼方法,其特征在于具有如下步驟,即代替輸出幾個特定的變換系數,而輸出除了不能利用該系數和已輸出的系數的整數值關系來取得該系數的值之外的信息;在列舉在上述變換系數的存在空間內的格子點中上述判斷較妥當的格子點的步驟中,列舉使用上述預先輸出的變換系數將維數縮小的存在空間內的格子點。
4.權利要求1~3的任何一項記載的分段可逆視頻編碼方法,其特征在于在上述妥當性判斷步驟中,只使用位運算和整數加減運算來判斷妥當性。
5.權利要求1~4的任何一項記載分段可逆視頻編碼方法,其特征在于利用殘差信號的存在范圍和變換系數的存在范圍相交形成凸多面體的情況,當作為判斷對象的上述格子點存在于上述凸多面體的外部時,中途中止上述妥當性判斷。
6.權利要求1~3的任何一項記載的分段可逆視頻編碼方法,其特征在于,具有如下步驟不執(zhí)行列舉在上述變換系數的存在空間內的格子點中上述判斷較妥當的格子點的步驟,而進行代碼量的估計。
7.一種譯碼方法,對利用權利要求1~6的任何一項記載的分段可逆視頻編碼方法編碼后的編碼數據流進行譯碼,其特征在于,包括如下步驟執(zhí)行與以預先確定的非可逆視頻編碼方式相對應的譯碼方式;指定由量化參數、量化系數和編碼時的量化方法決定的、以及當具有已譯碼的系數時由該系數決定的變換系數的存在空間;對應譯碼的系數進行譯碼;判斷將上述變換系數的存在空間內的某格子點作為殘差信號的正交變換的結果是否妥當的妥當性判斷;按照和編碼時格子點的搜索順序相同的順序搜索并列舉在上述變換系數的存在空間內的格子點中上述判斷較妥當的格子點;對序號進行譯碼;在上述列舉的格子點中,輸出與上述譯碼的序號相等的順序的格子點。
8.一種分段可逆視頻編碼裝置,進行可實現與原始信號一致的譯碼的視頻編碼,其特征在于,包括根據預先確定的非可逆視頻編碼方式,對圖像信號的每一個塊輸入從原始信號減去幀內編碼的空間預測或幀間編碼的時間預測的預測信號而得到的殘差信號的單元;求出根據上述非可逆視頻編碼方式對上述殘差信號進行正交變換而得到的變換系數和將其量化后的量化系數的單元;指定由上述量化系數、量化時使用的量化參數和量化方法決定的變換系數的存在空間的存在空間決定單元;判斷將上述變換系數的存在空間內的某格子點作為殘差信號的正交變換結果是否妥當的妥當性判斷單元;按照規(guī)定的格子點的順序搜索并列舉在上述變換系數的存在空間內的格子點中上述判斷較妥當的格子點的單元;按照列舉的順序對列舉的格子點分配序號的單元;在列舉的格子點中得到與殘差信號的變換系數一致的格子點的序號的單元;對與上述殘差信號的變換系數一致的格子點的序號進行編碼并輸出的單元。
9.一種對利用權利要求8記載的分段可逆視頻編碼裝置編碼后的編碼數據流進行譯碼的分段可逆視頻譯碼裝置,其特征在于,包括執(zhí)行與按照預先確定的非可逆視頻編碼方式相對應的譯碼方式的單元;指定由量化參數、量化系數和編碼時的量化方法決定的、以及當具有已譯碼的系數時由該系數決定的變換系數的存在空間的單元;對應譯碼的系數進行譯碼的系數譯碼單元;判斷將上述變換系數的存在空間內的某格子點作為殘差信號的正交變換的結果是否妥當的妥當性判斷單元;按照和編碼時格子點的搜索順序相同的順序搜索并列舉在上述變換系數的存在空間內的格子點中上述判斷較妥當的格子點的單元;對序號進行譯碼的序號譯碼單元;在上述列舉的格子點中,輸出與上述譯碼的序號相等的順序的格子點的輸出單元。
10.一種分段可逆視頻編碼程序,其特征在于利用計算機執(zhí)行權利要求1~6的任何一項記載的分段可逆視頻編碼方法。
11.一種分段可逆視頻譯碼程序,其特征在于利用計算機執(zhí)行權利要求7記載的分段可逆視頻譯碼方法。
12.一種分段可逆視頻編碼程序的記錄媒體,其特征在于將用來在計算機上執(zhí)行權利要求1~6的任何一項記載的分段可逆視頻編碼方法的程序記錄在計算機可讀取的記錄媒體上。
13.一種分段可逆視頻譯碼程序的記錄媒體,其特征在于將用來在計算機上執(zhí)行權利要求7記載的分段可逆視頻譯碼方法的程序記錄在計算機可讀取的記錄媒體上。
全文摘要
作為基本部分傳送的代碼保持與H.264標準的兼容性,同時可進行高效率的可逆譯碼。正交變換部(12)對殘差信號Rorig進行正交變換后,再取得變換系數Xorig,量化部(13)對其進行量化。存在空間決定部(14)根據量化信息求出各系數的上下限信息(變換系數的存在空間)。在系數匯總編碼部(16)中,判斷將變換系數的存在空間內的格子點作為殘差信號的正交變換的結果是否妥當,列舉判斷為妥當的格子點。按照列舉順序分配序號index,利用序號編碼部(166)對和殘差信號的變換系數Xorig一致的格子點的序號進行編碼。
文檔編號H04N7/50GK1922890SQ20058000514
公開日2007年2月28日 申請日期2005年9月29日 優(yōu)先權日2004年9月30日
發(fā)明者高村誠之, 八島由幸 申請人:日本電信電話株式會社