專利名稱:產(chǎn)生量化矩陣的方法
本申請系CN98800434.8的分案申請,該申請題為“靜畫和動畫編碼的量化矩陣”,其申請日為1998.2.5,其優(yōu)先權(quán)日及在先申請?zhí)柗謩e為1997.2.8 JP61647/97、1997.7.11 JP186437/97。
本發(fā)明特別實用于高度壓縮的靜畫和動畫編碼。它適用于在標(biāo)準(zhǔn)電話線路上進行視頻會議以及其它需要高度壓縮的應(yīng)用。
在大多數(shù)壓縮算法中,預(yù)期在解碼的圖像中會有某些形式的損耗。為取得良好結(jié)果的典型的壓縮方法是通過量化信號將這種損耗引入變換域而不是象素域。這種變換例如分離的余弦變換DCT、子波變換以及部分波段的分析濾波器。在根據(jù)壓縮算法進行的變換中,將圖形轉(zhuǎn)換至變換域并將一種量化型式運用于系數(shù)以減少信息量。變換具有將能量集中在少量系數(shù)中的效果并能將噪音引入這些系數(shù)中而又不致影響重顯圖像能覺察到的視感質(zhì)量。
人們都知道,對人類視覺感受系統(tǒng)的某些形態(tài)以不同的系數(shù)進行不同的量化加權(quán)可以改進感受到的視覺質(zhì)量。在諸如ISO/IEC.JTC1/SC29/WG11 IS-13818-2(MPEG2)之類的編碼標(biāo)準(zhǔn)中,DCT系數(shù)的量化是用量化矩陣進行加權(quán)的。但編碼器通常可以選用一缺省矩陣向解碼器發(fā)送量化矩陣的新數(shù)值。它是在位流頭中這樣發(fā)送信號的。
按照MPEG-2視頻標(biāo)準(zhǔn)發(fā)送量化矩陣的有關(guān)現(xiàn)有技術(shù)為,若要用設(shè)置成“1”的特定量化矩陣的位信號,就發(fā)送每個為8位的64個固定值。
較高頻帶位置中的矩陣值實際上是不使用的,特別是對于采用大的量化階的很低位率編碼的情形或是對于具有很單調(diào)的結(jié)構(gòu)或有良好運動補償?shù)妮斎雲(yún)^(qū)塊的情形就更是如此。
而且還在以上現(xiàn)有技術(shù)中發(fā)現(xiàn),對于在不同應(yīng)用中所用的任何量化矩陣來說,量化矩陣的第一個值總是設(shè)置成八,而不管是低位率編碼還是高位率編碼。
這種方法帶來的一個問題是需將信息量作為量化矩陣部分的信息發(fā)送量。在通常的情況下需要全部每個為8位的64個系數(shù)。這表示總共為512位。若是三段彩色信息需要三個不同的量化矩陣,整個位數(shù)將會是此數(shù)的三倍。這表示對于以低位率傳送來說開銷太多。如果矩陣在傳送中間被改變會造成太長的建立時間或者傳送中的等待時間會使矩陣在傳送中間就被改變。
要解決的第二個問題是人類視覺系統(tǒng)的空間掩蔽問題。平坦區(qū)的噪音比有紋理區(qū)中的噪音更易覺察到。因而將同一矩陣作為全局的優(yōu)化矩陣應(yīng)用于整個區(qū)域而不對局部區(qū)域的活動量進行局部調(diào)節(jié)并非好的解決辦法。
第三個要解決的是從直流的可變量化矩陣值中節(jié)約位數(shù)的問題。量化短陣中的第一值,在高位率和平坦區(qū)內(nèi)被減小了,而在低位率和有紋理區(qū)內(nèi)則被增大。
為了解決上述問題以使傳送數(shù)據(jù)減少,按照本發(fā)明的一種用于進行靜畫和動畫量化矩陣編碼的編碼方法,包括保持一缺省的量化矩陣,它包含多個具有預(yù)定值的量化元;產(chǎn)生一特定的量化矩陣,它包含多個具有選定值的量化元;按一預(yù)定的Z字形讀出所述的特定量化矩陣;在按預(yù)定的Z字形讀出的同時在一選定的位置處結(jié)束特定量化矩陣的讀出,并產(chǎn)生一特定量化矩陣的前部分在所述特定量化矩陣的前部分的量化元之后加一末端碼從緊靠所述選定位置之后的一位置處按照所述預(yù)定的Z字形讀出所述缺省的量化矩陣,并產(chǎn)生一缺省量化矩陣的后部分;以及合成所述特定量化矩陣的前部分和所述缺省量化矩陣的后部分形成一合成的量化矩陣。
按照本發(fā)明,一種用于對靜畫和動畫量化矩陣進行解碼的解碼方法,包括保持一缺省量化矩陣,它包含多個具有預(yù)定值的量化元;接收若干量化元和一末端碼按一預(yù)定的Z字形對所述接收的量化元進行定位以形成一前部分,并在檢測到所述的末端碼后結(jié)束對所接收的量化元的定位;按照所述預(yù)定的Z字形從緊靠所述前部分之后的一位置處讀出所述缺省量化矩陣,并形成帶有來自缺省量化矩陣的量化元的一后部分;以及合成所述特定量化矩陣的前部分和所述缺省矩陣的后部分形成一合成的量化矩陣。
按照本發(fā)明一種用于對靜畫和動畫量化矩陣進行編碼的編碼器,包括一保持件,它保持一包含有預(yù)定值的多個量化元的缺省量化矩陣;一產(chǎn)生件,它產(chǎn)生一包含有選定值的多個量化元的特定量化矩陣一讀出件,它按一預(yù)定的Z字形讀出所述的特定量化矩陣;一結(jié)束件,它在按預(yù)定的Z字形讀出的同時,在一選定位置處結(jié)束特定量化矩陣的讀出,并產(chǎn)生一特定矩陣的前部分;一添加件,它在所述特定量化矩陣前部分的量化元之后加一末端碼;一讀出件,它按所述預(yù)定的Z字形從緊靠所述選定位置之后的一位置處讀出所述缺省量化矩陣,并產(chǎn)生一缺省量化矩陣的后部分;以及一合成件,它合成所述特定量化矩陣的前部分和所述缺省量化矩陣的后部分形成一合成的量化矩陣。
按照本發(fā)明,一種用于對靜畫和動畫的量化矩陣進行解碼的解碼器,包括一保持件,它保持一包含有預(yù)定值的多個量化元的缺省量化矩陣;一接收件,它接收若干量化元和一末端碼;一定位件,它按一預(yù)定的Z字形對所述接收的量化元進行定位形成一前部分,并在檢測到所述末端碼之后就結(jié)束對所接收的量化元的定位;一讀出件,它按所述預(yù)定的Z字形從緊靠所述前部分之后的一位置處讀出所述缺省量化矩陣,并形成帶有來自缺省量化矩陣的量化元的一后部分;以及一合成件,它合成所述特定量化矩陣的前部分和所述缺省量化矩陣的后部分形成一合成的量化矩陣。
還有一些問題是用以下的方法解決的。
缺省矩陣被設(shè)計成使可變的加權(quán)數(shù)能由編碼器進行更新修改。以這種方法對圖像的內(nèi)容進行不同程度調(diào)節(jié)的矩陣此后稱為截短量化矩陣。
這種截短量化矩陣可以通過根據(jù)編碼位率、編碼圖像的復(fù)雜度以及其它方式作出判定。往往通常集中在直流和前幾位交流系數(shù)上需有少量的非零值,尤其在低位率編碼中更是如此。而且對這些非零值進行不同的編碼,并且將使用每一值低于8位的數(shù)值對該不同數(shù)值編碼。
量化加權(quán)是按照區(qū)塊的活動量進行度量的。
量化加權(quán)是按照區(qū)塊的量化階尺寸進行度量的。
本發(fā)明從既節(jié)約位數(shù)又適用于各個區(qū)塊當(dāng)中提供了一種提高量化矩陣使用效率的方法。
量化矩陣是根據(jù)不同編碼的位率以及其它方式進行判定的,所用的方法是只對量化矩陣中首先的少量值設(shè)置成有一定加權(quán)的非零值,其它的則截短為零不予編碼和傳送。
這一截短的矩陣與非零值的數(shù)目一起進到編碼和傳送用Z字形或其它方式掃描,或用專用的符號終結(jié)。
由于留下的系數(shù)的數(shù)目能夠反映區(qū)塊的活動量,所以通過校核在量化之后留下的系數(shù)數(shù)目能對加權(quán)的量度進行調(diào)節(jié)。若在量化后只留下直流系數(shù),則因它是平坦區(qū),直流的加權(quán)量度應(yīng)小于或等于8,不然若是留下大量交流系數(shù),就可加大直流的加權(quán)量度(例如為量化階數(shù)的兩倍)。對直流系數(shù)的加權(quán)量度可以進行同樣的調(diào)節(jié)。
圖1A示出一例缺省量化矩陣圖。
圖1B示出一例特定的量化矩陣圖。
圖2A示出本發(fā)明一截短的量化矩陣圖。
圖2B示出另一例特定的量化矩陣圖。
圖3示出本發(fā)明一例合成的量化矩陣圖。
圖4為本發(fā)明的編碼器的方框圖。
圖5為本發(fā)明的解碼器的方框圖。
圖6為表示對截短的量化矩陣進行編碼的方法之一的方框圖。
圖7示出只對直流值進行量度的一例對截短的量化矩陣進行量度的圖。
圖8為表示對一截短的量化矩陣中的直流系數(shù)進行量度過程的流程圖。
圖9為用于對所量度的截短量化矩陣進行解碼的解碼器的方框圖。
當(dāng)前實施例被分成兩部分。實施例的第一部分描述截短的量化矩陣。實施例的第二部分描述適合的量化階尺寸量度的操作。盡管實施例描述對一單獨部分的操作,兩種方法都能獨立地應(yīng)用于實現(xiàn)所要的結(jié)果。
圖1A示出一例亮度幀內(nèi)部(Y內(nèi)部)編碼的缺省矩陣,圖1B則示出一例更粗略地量化高頻系數(shù)的特定量化矩陣。
圖2A為由本發(fā)明提出的一例截短的量化矩陣。此實施例的關(guān)鍵在于量化矩陣中要傳送的數(shù)值的數(shù)目可以不超過64。這尤其是對于首先只需有2或3數(shù)值的很低位率的編碼特別有用。
圖4示出本發(fā)明利用靜畫和動畫量化矩陣的一編碼器。該編碼器包括一DCT轉(zhuǎn)換器32、一量化器34以及一可變長度編碼部件49。設(shè)置—QP發(fā)生器36用于在例如提供每一大區(qū)塊之后產(chǎn)生量化參數(shù)。量化參數(shù)能在每一大區(qū)塊之后利用預(yù)定的公式計算出來,也可從一查閱表中選出。獲得量化參數(shù)后就應(yīng)用于量化器,而且還用于解碼器,這將在以后結(jié)合圖5進行說明。
在圖4中,編碼器還有一特定的QM發(fā)生器38用于產(chǎn)生按一矩陣格式對準(zhǔn)的特定的量化元。矩陣中的特定量化元是產(chǎn)生在由多個層次組成的各個視頻對象層(VOL)之后。矩陣QM中的特量化元的示例在圖1B和圖2B中示出。在用少量數(shù)據(jù)發(fā)送視頻數(shù)據(jù)的情況下(諸如當(dāng)位率低,或當(dāng)圖象簡單時),使用了圖1B中所示的特定量化元,其中在高頻區(qū)使用了大量的如200這樣的量化元。特定的量化元可以通過計算或是通過利用合適的查閱表得到。設(shè)置一選擇器37用于選擇在計算中所用的參數(shù),或是從查閱表中選擇矩陣中合適的量化元。選擇器37可以由使用者手動操作,也可按照圖像的類型(實體圖或圖解的圖)或是圖像的質(zhì)量自動操作。
將矩陣QM中的特定量化元用于一截短器40。截短器40經(jīng)圖2A中虛線所示從直流成分至高頻成分的Z字形掃描器48控制,按Z字形格式讀出矩陣QM中的特定量化元。當(dāng)截短器40讀出預(yù)定數(shù)目的矩陣的特定量化元時,就結(jié)束了從方塊38的矩陣QM中進一步進行Z字形的讀出。此后,由一末端碼加法器將一諸如零的末端碼加到特定量化元的預(yù)定數(shù)目的末端。預(yù)定數(shù)目是由受使用者手動操縱或受與圖像類型或質(zhì)量相關(guān)的自動操縱的設(shè)定部件39決定的。按照圖2A中所示的一例,預(yù)定數(shù)目為十三。這樣,在結(jié)束Z字形讀出之前將會有十三個特定量化元要讀出。這讀出的量化元,由于它們是在矩陣QM中Z字形讀出特定量化元的前部分當(dāng)中,因而就稱為前部分中的量化元。前部分中的量化元被送至一合成的QM發(fā)生器44,并將同樣的量化元加上末端碼送至圖5中所示的一解碼器。將跟隨有末端碼的一系列這些前部分中的量化元稱為簡化的數(shù)據(jù)QMt。
設(shè)置一缺省QM發(fā)生器46用于存儲按如圖1A中所示矩陣對準(zhǔn)的缺省量化元。這些缺省量化元也是受Z字形掃描器48的控制按Z字形讀出的。
設(shè)置一合成的QM發(fā)生器44用于產(chǎn)生矩陣形式的合成量化元。在合成的QM發(fā)生器44中,將從截短器40中得到的前部分中的特定量化元和來自缺省的QM發(fā)生器46的后部分(前部分以外的部分)中的缺省量化元進行合成。這樣,合成的QM發(fā)生器44就用前部分中的特定量化元與后部分中的缺省量化元合成矩陣的合成量化元。
圖3示出一例矩陣的合成量化元,其中前部分F填入特定的量化元,而后部分L則填入缺省量化值。
在量化器34中,矩陣格式的DCT系數(shù)COF是用來自合成的QM發(fā)生器44的矩陣的合成量化元和來自QP發(fā)生器36的量化參數(shù)QP進行量化的。然后,量化器34按矩陣格式產(chǎn)生量化的DCT系數(shù)COF'。系數(shù)COFij和COF'ij(i和j包括在1和8之間的正整數(shù))有以下的關(guān)系。
COFij′∝COFijQMij*QP]]>這里,QMij表示從合成的QM發(fā)生器44中產(chǎn)生的矩陣的量化元,QP表示從QP發(fā)生器36中產(chǎn)生的一量化參數(shù)。然后還在可變長度編碼部件49中對量化的DCT系數(shù)COF'編碼,并從部件49中輸出壓縮的視頻數(shù)據(jù)VD送往圖5中所示的解碼器。
圖5示出本發(fā)明使用靜畫和動畫量化矩陣的一解碼器。解碼器包括一可變長度解碼器部件50、一逆向量化器52、一逆向DCT轉(zhuǎn)換器62、一末端碼解碼器56、一合成的QM發(fā)生器54,一缺省的QM發(fā)生器58以及一Z字形掃描器60。
缺省發(fā)生器58存儲一如圖1A中所示那樣的缺省量化矩陣。要注意到在缺省QM發(fā)生器58中儲存的缺省量化矩陣與圖4中所示缺省QM發(fā)生器46中存入的同屬一個。合成的QM發(fā)生器54和Z字形掃描器60與圖4中所示的合成的QM發(fā)生器44和Z字形掃描器48基本上分別相同。
由圖4的編碼器發(fā)送的視頻數(shù)據(jù)VD被送至可變長度解碼部件50。與此類似,量化參數(shù)QP被送至逆向量化器52,而簡化數(shù)據(jù)QMt則被送至末端碼解碼器56。
如上所述,簡化的數(shù)據(jù)QMt包括矩陣中前部分的特定量化元。特定量化元被Z字形掃描器60進行Z字形掃描并存入合成的QM發(fā)生器54的前部分。然后,當(dāng)末端碼檢測器56檢測到末端碼時,就結(jié)束由末端碼檢測器56對特定量化元的提供,并在合成的QM發(fā)生器54的后部分中對來自缺省QM發(fā)生器58的缺省量化元進行Z字形掃描。
因此,在圖5的合成QM發(fā)生器54中產(chǎn)生的合成的量化矩陣就和圖4的合成QM發(fā)生器44中產(chǎn)生的合成的量化矩陣相同。由于能用簡化的數(shù)據(jù)QMt再現(xiàn)合成的量化矩陣,因而就可以使得用較少數(shù)據(jù)由編碼器向解碼器傳送的高質(zhì)量圖像得到再現(xiàn)。
圖6示出對截短的量化矩陣編碼和傳送的方法之一。
這里,單元1是在單元2中經(jīng)核查不同的編碼位率、不同的編碼圖像尺寸等等所確定的截短的量化矩陣。單元1中的X1、X2、X3、…是用于在與X1、X2、X3、…相同的位置中量化8×8 DCT系數(shù)的區(qū)塊的那些非零量化矩陣值。單元1中有零值的量化矩陣的其它部分是指將要使用的量化矩陣的缺省值。在編碼器中,將對8×8區(qū)塊的DCT系數(shù)的同一部分設(shè)置成零。
單元3是將單元1中的非零值掃描進一組數(shù)據(jù)中,在該組的第一部分上集中有較大的數(shù)值。這里所示的是作為一例的Z字形掃描。
單元4表示任選的部件,它通過減去相鄰的數(shù)值對掃描的數(shù)據(jù)編碼以獲得如圖6中所示△X1、△X2、…較小的差值,或許還接著用霍夫曼(Huffman)編碼或其它熵編碼的方法進行編碼。
與此同時,還對非零量化矩陣值的數(shù)目進行編碼并和那些非零值一起傳送給解碼器。對這種信息的編碼有各種方法。最簡單的方法用固定的8位對該數(shù)目編碼。另一種方法是用一可變長度的表對該數(shù)目編碼,這種表設(shè)計成能用較少的位數(shù)去處理大多數(shù)常見情況。
另一種方法是,不是在對上一次的非零值xN或上一次的差值△xN(N=1、2、3、…)編碼之后對如圖6中所示的非零量化矩陣值的數(shù)目進行編碼和發(fā)送,而是用一專用符號插入位流中表示非零量化矩陣的終結(jié)。這種符號可以是一數(shù)值,它不用在諸如零或負值的非零數(shù)值編碼中。
圖7為以S作為只對直流加權(quán)的量度因子的截短量化矩陣。這一量度因子根據(jù)個別區(qū)塊的活動量進行調(diào)節(jié)。通過校核在量化之后留下的交流系數(shù)的數(shù)目能夠取得活動量的信息。x1、x2、x3、…、X9是要用于量化8×8 DCT系數(shù)區(qū)塊的截短量化矩陣中的非零值,而S則按比例增/降第一值的調(diào)節(jié)直流系數(shù)量化器的權(quán)數(shù)。
圖8顯示對量化矩陣中的第一值進行量度過程的有關(guān)細節(jié)。
單元5首先通過應(yīng)用截短的量化矩陣,接著通過在那個區(qū)塊的那個時間所需的量化階對每一8×8區(qū)塊進行量化。單元6校核在上述量化之后留下的交流系數(shù)的數(shù)目送往單元7決定圖7中的權(quán)數(shù)S哪一個是提升或降低量度的。若是在單元5中進行的量化之后留下較多的交流系數(shù),這時就是單元8中所示的可以按比例增加權(quán)數(shù)S;否則就是單元9中所示的按比例降低。單元10量度權(quán)數(shù)S以調(diào)節(jié)量化矩陣中的第一值,而單元11則用區(qū)塊A的新的調(diào)節(jié)值對直流系數(shù)進行再量化并向解碼器輸出全部直流和交流系數(shù)。
可以選出與現(xiàn)有量化階有關(guān)的一些數(shù)值或是一固定數(shù)值進行按比例增加和降低。
接著可以用類似方式調(diào)節(jié)其它交流系數(shù)的量化矩陣值。
圖9中示出一適合量化階尺寸量度和截短量化短陣的解碼器。
在圖9中,向解碼器輸入解碼的位流。單元12將對截短量化矩陣解碼,而單元13則將對每一區(qū)塊的量化階解碼。單元14將對每一區(qū)塊的全部直流和交流系數(shù)解碼。單元15將校核非零的交流系數(shù)的數(shù)目,并可通過從單元15中獲取的信息以及遵循與編碼器中相同的準(zhǔn)則在單元16中確定量度因子。每一區(qū)塊的全部直流和交流系數(shù)均能通過解碼量度量化矩陣和解碼量度矩陣在單元17中進行逆轉(zhuǎn)量化。最后將全部反量化系數(shù)送往一反DCT變換單元去重建圖像畫面。
下面是用于量化和反量化的公式量化的直流內(nèi)Level=|COF|∥(QM/2)交流內(nèi)Level=|COF|×8/(QP/QM)相互間Level=[|COF|-(QP×QM)/32]×8/(QP×QM)反量化的直流內(nèi)|COF'|=Level×QM/2其它|COF'|=0若Level=0|COF'|=(2×Level+1)×(QP×QM/16),若Leve≠0,則(QP×QM/16)為奇數(shù)|COF'|=(2×Level+1)×(QP×QM/16)-1,若Leve≠0,則(QP×QM/16)為偶數(shù)其中COF為要進行量化的變換系數(shù)。
LEVEL為變換系數(shù)量化形式的絕對值。
COF'為重建的變換系數(shù)。
QP為現(xiàn)有區(qū)塊的量化階尺寸。
QM為與要進行量化的系數(shù)相對應(yīng)的量化矩陣的值。
QM的缺省值為16。
本發(fā)明使量化矩陣按照編碼位率、編碼尺寸以及人類的視覺系統(tǒng)進行適應(yīng)性的改變,使得能夠通過截短和量度量化矩陣以及對矩陣的數(shù)值進行不同的編碼節(jié)省大量數(shù)位。因而它將提高編碼效率,特別是提高很低位率編碼的編碼效率。
對本發(fā)明所作的這樣的說明,顯然將會同樣可能以許多方式進行改變。對這樣的一些改變并不能視為超脫了本發(fā)明的基本精神和范圍,而且所有這種對專業(yè)技術(shù)人員來說都是顯而易見的改進是被視為包括在附后的權(quán)利要求范圍以內(nèi)。
權(quán)利要求
1.一種通過解碼已編碼的截短量化矩陣產(chǎn)生量化矩陣的方法,所述矩陣被用于逆轉(zhuǎn)量化階,所述方法包括如下步驟檢測位流中指示所述編碼的截短量化矩陣結(jié)束的末端碼;抽取已編碼的截短的量化矩陣,直至遇到所述末端碼;把抽取的已編碼之截短量化矩陣的結(jié)果解碼成一維陣列,該一維陣列包含多個截短的量化矩陣的元素;按Z字形掃描順序?qū)⑺鲆痪S陣列轉(zhuǎn)換成二維陣列,該二維陣列包含多個截短的量化矩陣的元素;用所述截短之量化矩陣的二維陣列產(chǎn)生所述量化矩陣。
2.按照權(quán)利要求1所述的方法,其中將所述末端碼設(shè)定為‘0’值。
3.按照權(quán)利要求2所述的方法,其中所述編碼的截短量化矩陣的每個元素都是8位的固定長度碼。
全文摘要
本發(fā)明公開了一種靜畫和動畫的編碼器和解碼器。編碼器有存儲包含多個有預(yù)定值量化元的缺省矩陣的存儲器。還設(shè)有在若干幀之后產(chǎn)生一特定量化矩陣的產(chǎn)生器。按Z字形讀出特定量化矩陣并在Z字形中段的一選定位置處結(jié)束讀出。在特定量化矩陣前部分量化元讀出之后加一末端碼。在緊靠選定位置之后按同樣Z字形讀出缺省量化矩陣中的量化元,并產(chǎn)生缺省量化矩陣的后部分。合成特定量化矩陣前部分和缺省量化矩陣后部分形成合成的量化矩陣。
文檔編號H04N7/26GK1329439SQ01118860
公開日2002年1月2日 申請日期2001年6月26日 優(yōu)先權(quán)日1997年2月8日
發(fā)明者申省梅, 陳朝慶 申請人:松下電器產(chǎn)業(yè)株式會社