專利名稱:在圖像/視頻編碼器和/或解碼器中將變換系數(shù)編碼的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于數(shù)字視頻編碼的方法、編碼器、解碼器和裝置。更具體地說,本發(fā)明涉及使用變長編碼(VLC),對在視頻/圖像編碼器/解碼器中由塊變換編碼產(chǎn)生的量化變換系數(shù)編碼。
背景技術(shù):
諸如在膠片上錄制的普通動畫等數(shù)字視頻序列包括一序列靜態(tài)圖像,運動錯覺是通過以相對快的速率,一般為每秒15到30幀的速率,連續(xù)顯示圖像而產(chǎn)生的。由于顯示速率相對較快,因此,連續(xù)幀中的圖像往往很相似,因此包含了大量冗余信息。例如,一個典型的場面可包括一些靜止元素如背景景物和一些移動區(qū)域,這些區(qū)域可能有許多不同形式,例如,新聞播報員的面孔、移動的車流等等?;蛘?,例如,錄制場景的攝像機本身可能移動,在這種情況下,圖像的所有元素具有同類的運動。在許多情況下,這表示一個視頻幀與下一視頻幀之間的整體變化相當小。
未壓縮數(shù)字視頻序列的每個幀包括圖像像素陣列。例如,在通稱為四分之一公共交換格式(QCIF)的數(shù)字視頻格式中,一個幀包括176×144個像素的陣列,在這種情況下,每個幀具有25344個像素。每個像素又由一定數(shù)量的比特表示,這些比特攜帶與像素對應(yīng)的圖像區(qū)域的亮度和/或色度有關(guān)的信息。通常,所謂的YUV彩色模型用于表示圖像的亮度和色度內(nèi)容。亮度即Y分量表示圖像的強度(亮度),而圖像的顏色內(nèi)容由標記為U和V的兩種色度或色差分量表示。
與基于與表示有關(guān)的基色(即紅、綠和藍RGB)的彩色模型相比,基于圖像內(nèi)容亮度/色度表示的彩色模型具有某些優(yōu)點。人的視覺系統(tǒng)對強度變化比對顏色變化更敏感,因此,YUV彩色模型利用了此屬性,對色度分量(U、V)使用了比對亮度分量(Y)更低的空間分辨率。這樣,可以減少將圖像中顏色信息編碼所需的信息量,同時具有可接受的圖像質(zhì)量下降。
色度分量的更低空間分辨率通常通過二次抽樣實現(xiàn)。一般情況下,視頻序列的每個幀劃分成所謂的“宏塊”,它包括空間上二次抽樣的亮度(Y)信息和相關(guān)聯(lián)的色度(U、V)信息。圖3顯示了可以形成宏塊的一種方式。圖3a顯示了使用YUV彩色模型表示的視頻序列的一個幀,每個分量具有相同的空間分辨率。宏塊是通過將原始圖像(圖3b)中的16×16個圖像像素區(qū)域表示為4個亮度信息塊而形成的,每個亮度塊包括亮度(Y)值和兩個空間對應(yīng)的色度分量(U和V)的8×8陣列,兩個色度值在x和y方向上根據(jù)因數(shù)2進行二次抽樣,以產(chǎn)生對應(yīng)的8×8色度(U、V)值陣列(參見圖3c)。根據(jù)某些視頻編碼建議,如國際電信聯(lián)盟(ITU-T)建議H.26L,在宏塊內(nèi)使用的數(shù)據(jù)塊大小可以不同于8×8,例如,可以是4×8或4×4(參閱Joint Model(JM)2.0工作草案編號2[Joint Model(JM)2.0Working Draft Number 2,Doc.JVT-B118,Joint Video Team(JVT) ofISO/IEC MPEG and ITU-T VCEG Pattaya,2ndJVT Meeting,Geneva,CH,Jan.29-Feb.1,2002,Section 3.2])。
QCIF圖像包括11×9個宏塊。如果亮度塊和色度塊用8比特分辨率(即,由0到255之間的數(shù)字)表示,則每個宏塊所需的總比特數(shù)為(16×16×8)+2×(8×8×8)=3072比特。因此,表示QCIF格式的一個視頻幀所需的比特數(shù)量為99×3072=304128個比特。這意味著要以每秒30幀的速率發(fā)送/錄制/顯示以YUV彩色模型表示的QCIF格式的未壓縮視頻序列,則所需數(shù)據(jù)量超過9Mbps(每秒百萬比特)。這是極高的數(shù)據(jù)率,由于需要非常大的存儲容量、傳輸信道容量和極佳的硬件性能而實際上不適用于視頻錄制、傳輸和顯示應(yīng)用。
如果要通過諸如ISDN(綜合業(yè)務(wù)數(shù)字網(wǎng)絡(luò))或常規(guī)PSTN(公共交換電話網(wǎng))等固定線路網(wǎng)絡(luò)實時傳送視頻數(shù)據(jù),則可用的數(shù)據(jù)傳輸帶寬一般約為每秒64千比特。在移動視頻電話中,至少部分傳輸要通過無線電通信鏈路進行,可用的帶寬可能低到每秒20千比特。這意味著必須使得表示視頻數(shù)據(jù)所需的信息量大量減少才可以通過低帶寬通信網(wǎng)絡(luò)傳輸數(shù)字視頻序列。為此,開發(fā)了視頻壓縮技術(shù)以減少發(fā)送的信息量,同時保持可接受的圖像質(zhì)量。
視頻壓縮方法基于減少視頻序列的冗余的且感覺上不相關(guān)的部分。視頻序列的冗余可分為空間、時間和頻譜冗余?!翱臻g冗余”是用于描述幀內(nèi)相鄰像素之間相關(guān)性(相似度)的術(shù)語。術(shù)語“時間冗余”表示在序列的一個幀中出現(xiàn)的對象可能在隨后的幀中出現(xiàn)的事實;而“頻譜冗余”指同一圖像不同顏色分量之間的相關(guān)性。
簡通過單地降低給定圖像序列中不同形式的冗余,通常無法實現(xiàn)充分有效的壓縮。因此,大多數(shù)當前的視頻編碼器還降低了主觀上最不重要的那些視頻序列部分的質(zhì)量。另外,通過有效的無損編碼,降低了壓縮視頻經(jīng)特流本身的冗余。通常,這通過使用稱為熵編碼的技術(shù)實現(xiàn)。
在組成每個數(shù)字視頻序列幀的像素之間,經(jīng)常有大量空間冗余。換言之,序列的幀內(nèi)任何像素的值與其緊密相鄰的其它像素的值大致是相同的。一般情況下,視頻編碼系統(tǒng)使用稱為“塊變換編碼”技術(shù)降低空間冗余,在該技術(shù)中,將諸如二維離散余弦變換(DCT)的數(shù)學變換應(yīng)用于圖像像素塊上。這將圖像數(shù)據(jù)從包括像素值的表示變換為包括一組表示空間頻率分量的系數(shù)值的形式,極大地降低了空間冗余,由此產(chǎn)生了更簡潔的圖像數(shù)據(jù)表示。
使用塊變換編碼壓縮,而未引用序列內(nèi)其它任何幀的視頻序列幀稱為INTRA編碼幀或I幀。此外,并且在可能時,從同一幀內(nèi)的先前的編碼塊預測INTRA編碼幀塊。這種稱為INTRA預測的技術(shù)可進一步降低表示INTRA編碼幀所需的數(shù)據(jù)量。
通常,視頻編碼系統(tǒng)不僅降低了視頻序列各個幀內(nèi)的空間冗余,而且利用稱為“運動補償預測”的技術(shù)來降低序列中的時間冗余。通過使用運動補償預測,數(shù)字視頻序列中一些(經(jīng)常是許多)幀的圖像內(nèi)容是從序列中稱為“參考”幀的一個或多個其它幀“預測”的。通過使用“運動矢量”在要編碼(壓縮)的幀與參考幀之間跟蹤圖像對象或區(qū)域的運動,可實現(xiàn)對圖像內(nèi)容的預測。通常,參考幀可在視頻序列中要編碼的幀之前,或者可在它之后。與在INTRA編碼中的情況一樣,視頻幀的運動補償預測一般是逐宏塊執(zhí)行的。
使用運動補償預測壓縮的視頻序列幀通常稱為INTER編碼幀或P幀。單獨的運動補償預測很少提供足夠精確的視頻幀圖像內(nèi)容表示,因此,通常有必要為每個INTER編碼幀提供稱為“預測誤差”(PE)幀。預測誤差幀表示INTER編碼幀的解碼版本與要編碼的幀圖像內(nèi)容之間的差異。更具體地說,預測誤差幀包括表示要編碼的幀中像素值與基于所述幀的預測版本形成的對應(yīng)重建像素值之間的差異的值。因此,預測誤差幀具有類似于靜態(tài)圖像的特性,并且可以應(yīng)用塊變換編碼以降低其空間冗余,并因此降低表示它所需的數(shù)據(jù)量(比特數(shù)量)。
為更詳細地說明視頻編碼系統(tǒng)的操作,現(xiàn)在參照
圖1和圖2。圖1是通用視頻編碼器的示意圖,它采用INTRA和INTER編碼組合以產(chǎn)生壓縮(編碼)的視頻比特流。稍后將描述圖2顯示的對應(yīng)解碼器。
視頻編碼器100包括用于從攝像機或其它視頻源(未顯示)接收數(shù)字視頻信號的輸入101。它還包括用于執(zhí)行基于塊的離散余弦變換(DCT)的變換單元104、量化器106、逆量化器108、用于執(zhí)行基于塊的逆向離散余弦變換的逆變換單元110、合并器112和116及幀存儲器120。編碼器還包括運動估計器130、運動場編碼器(coder)140和運動補償預測器150。開關(guān)102和114由控制管理器160操作共同用于使編碼器在視頻編碼的INTRA模式與視頻編碼的INTER模式之間切換。編碼器100還包括視頻復用編碼器170,該編碼器根據(jù)編碼器100產(chǎn)生的不同類型信息形成一個比特流,以便進一步傳輸?shù)竭h程接收端,或者例如,以便存儲在諸如計算機硬盤驅(qū)動器(未顯示)等海量存儲介質(zhì)上。
編碼器100的操作如下。接收從視頻源提供給輸入101的每個未壓縮視頻幀并逐宏塊進行處理,最好是以光柵掃描順序處理。在新的視頻序列編碼開始時,將要編碼的第一個幀編碼為INTRA編碼幀。隨后,除非滿足以下條件之一,否則編碼器設(shè)計為以INTER編碼格式將每個幀編碼1)斷定正在被編碼的幀的當前宏塊與在其預測中使用的參考幀中的像素值如此不同,以致產(chǎn)生過量的預測誤差信息,在這種情況下,當前宏塊以INTRA編碼格式編碼;2)預定的INTRA幀重復間隔已滿期;或者3)從接收終端收到表示以INTRA編碼格式提供幀的請求的反饋。
通過監(jiān)視合并器116的輸出可檢測條件1)的出現(xiàn)。合并器116形成在編碼的幀的當前宏塊與其在運動補償預測功能塊150中產(chǎn)生的預測之間的差異。如果此差異的測量值(例如,像素值的絕對差之和)超過預定閾值,則合并器116經(jīng)控制線119通知控制管理器160,并且控制管理器160經(jīng)控制線113操作開關(guān)102和114,以便將編碼器100切換到INTRA編碼模式。這樣,本來要以INTER編碼格式編碼的幀可包括INTRA編碼宏塊。條件2)的出現(xiàn)通過實現(xiàn)于控制管理器160中的計時器或幀計數(shù)器來監(jiān)視,使得如果計時器到期,或者幀計數(shù)器達到預定數(shù)量的幀,則控制管理器160經(jīng)控制線113操作開關(guān)102和114,將編碼器100切換到INTRA編碼模式。如果控制管理器160例如經(jīng)控制線121從接收終端收到指示接收終端需要INTRA幀刷新的反饋信號,就觸發(fā)條件3)。例如,如果先前發(fā)送的幀因其傳輸期間的干擾而被嚴重損壞,使得無法在接收機上將其解碼,則此類條件可發(fā)生。在這種情況下,接收解碼器發(fā)出請求,請求以INTRA編碼格式對下一幀編碼,從而重新初始化編碼序列。
現(xiàn)在將描述INTRA編碼模式下編碼器100的操作。在INTRA編碼模式,控制管理器160操作開關(guān)102以接受來自輸入線108的視頻輸入。通過輸入線118從輸入101逐宏塊接收視頻信號輸入。在接收它們時,組成宏塊的亮度和色度值塊傳遞到DCT變換塊104,DCT變換塊104對每個值塊執(zhí)行二維離散余弦變換,每個數(shù)據(jù)塊產(chǎn)生一個二維DCT系數(shù)陣列。DCT變換塊104為每個數(shù)據(jù)塊產(chǎn)生系數(shù)值陣列,系數(shù)值的數(shù)量取決于組成宏塊的塊的性質(zhì)。例如,如果在宏塊中使用的基本塊大小為4×4,則DCT變換塊104為每個數(shù)據(jù)塊產(chǎn)生4×4的DCT系數(shù)陣列。如果數(shù)據(jù)塊大小為8×8,則產(chǎn)生8×8的DCT系數(shù)陣列。
每個塊的DCT系數(shù)傳遞到量化器108,在該量化器中使用量化參數(shù)QP對它們進行量化。量化參數(shù)QP的選擇由控制管理器160經(jīng)控制線115控制。由于量化的系數(shù)比DCT變換塊104原來生成的系數(shù)具有更低的數(shù)值精度,因此,量化引入了信息損傷。這提供了又一種機制,通過該機制可減少表示視頻序列的每個圖像所需的數(shù)據(jù)量。然而,不同于基本上無損的DCT變換,量化引起的信息損傷使圖像質(zhì)量不可逆地降低。對DCT系數(shù)施加的量化度越大,則圖像質(zhì)量損傷越大。
如圖1線125所示,每個塊的量化DCT系數(shù)從量化器106傳遞到視頻復用編碼器170。視頻復用編碼器170使用之字形掃描過程將每個塊的量化變換系數(shù)排序。此操作將量化變換系數(shù)的二維陣列變換成一維陣列。諸如用于圖4所示4×4陣列的典型的之字形掃描順序近似按空間頻率的升序?qū)⑾禂?shù)排序。這往往還根據(jù)系數(shù)的值將系數(shù)排序,使得位于一維陣列更前面的系數(shù)更可能比位于該陣列后面的系數(shù)具有更大的絕對值。這是因為較低的空間頻率往往在圖像塊內(nèi)具有更高的幅度。因此,量化變換系數(shù)一維陣列中最后的值通常為零。
一般情況下,視頻復用編碼器170用兩個值表示一維陣列中的每個非零量化系數(shù),稱為level(級別)和run(游程)。Level是量化系數(shù)的值,run是在所述系數(shù)前連續(xù)零值系數(shù)的數(shù)量。將給定系數(shù)的run和level值排序,使得level值在相關(guān)聯(lián)的run值前面。等于零的level值用于指示數(shù)據(jù)塊中不再有其它非零系數(shù)值。此0級別值稱為EOB(塊結(jié)束)符號。
或者,一維陣列中每個非零值量化系數(shù)可由三個值(run、level、last)表示。Level和run的意義與前一方案相同,而last指示在一維陣列中當前系數(shù)后是否有其它任何非零值系數(shù)。因此,無需單獨的EOB符號。
使用熵編碼對Run和level值(及適用情況下的last)作進一步的壓縮。熵編碼是無損運算,它利用了要編碼的數(shù)據(jù)集內(nèi)的符號一般具有不同的出現(xiàn)概率的事實。因此,可不使用固定數(shù)量的比特表示每個符號,而是分配可變數(shù)量的比特,以便用具有更少比特的碼字表示更可能出現(xiàn)的符號。為此,熵編碼經(jīng)常稱為變長編碼(VLC)。由于level和run的某些值比其它值更可能出現(xiàn),因此,熵編碼技術(shù)可有效地用于減少表示run和level值所需的比特數(shù)量。
一旦run和level值已經(jīng)過熵編碼,視頻復用編碼器170就將其與控制信息組合在一起,以形成編碼圖像信息135的單個壓縮比特流,其中所述控制信息也采用適合所述信息種類的變長編碼方法進行了熵編碼。從編碼器發(fā)送的正是此比特流,它包括了表示(run、levl)對的變長碼字。
雖然結(jié)合視頻復用編碼器170執(zhí)行的操作對熵編碼進行了描述,但應(yīng)注意的是,在替代實施中可提供單獨的熵編碼單元。
編碼器100中還形成了本地解碼的宏塊版本。這是通過使量化器106輸出的每個塊的量化變換系數(shù)通過逆量化器108,并在逆變換塊110中施加逆DCT變換而實現(xiàn)的。這樣,構(gòu)造了對應(yīng)宏塊的每個塊的重建的像素值陣列。所得的解碼圖像數(shù)據(jù)輸入合并器112。在INTRA編碼模式下,設(shè)置開關(guān)114以使經(jīng)開關(guān)114到合并器112的輸入為零。這樣,合并器112執(zhí)行的操作等同于不加變化地傳遞解碼圖像數(shù)據(jù)。
隨著當前幀的后續(xù)宏塊被接收,并在塊104、106、108、110和112中經(jīng)歷如前所述的編碼和本地解碼步驟,于是在幀存儲器120中建立了INTRA編碼幀的解碼版本。在當前幀的最后一個宏塊已經(jīng)過INTRA編碼,隨后又經(jīng)解碼后,幀存儲器120包含了完整的解碼幀,該幀可以在將隨后接收的視頻幀以INTER編碼格式編碼的過程中用作預測參考幀。
現(xiàn)在將描述INTER編碼模式下編碼器100的操作。在INTER編碼模式,控制管理器160操作開關(guān)102以從線路117接收其輸入,它包括合并器116的輸出。合并器116逐宏塊從輸入101接收視頻輸入信號。合并器116收到組成宏塊的亮度和色度值塊時,就形成對應(yīng)的預測誤差信息塊。預測誤差信息表示所述塊及在運動補償預測功能塊150中產(chǎn)生的其預測之間的差異。更具體地說,宏塊的每個塊的預測誤差信息包括值的二維陣列,每個值表示在編碼的亮度或色度信息塊中的像素值與根據(jù)下述過程通過形成數(shù)據(jù)塊的運動補償預測所獲得的解碼像素值之間的差異。因此,在每個宏塊包括例如4×4塊集合(包括亮度和色度值)的情況下,宏塊的每個塊的預測誤差信息同樣包括4×4的預測誤差值陣列。
宏塊的每個塊的預測誤差信息傳遞到DCT變換塊104,DCT變換塊104對每個預測誤差值塊執(zhí)行二維離散余弦變換,為每個塊產(chǎn)生DCT變換系數(shù)的二維陣列。DCT變換塊104為每個預測誤差塊產(chǎn)生系數(shù)值陣列,系數(shù)值的數(shù)量取決于組成宏塊的數(shù)據(jù)塊的性質(zhì)。例如,如果在宏塊中使用的基本數(shù)據(jù)塊大小為4×4,則DCT變換塊104為每個預測誤差塊生成的4×4DCT系數(shù)陣列。如果數(shù)據(jù)塊大小為8×8,則產(chǎn)生8×8的DCT系數(shù)陣列。
每個預測誤差塊的變換系數(shù)傳遞到量化器106,在該量化器中,使用量化參數(shù)QP,以類似于以上結(jié)合INTRA編碼模式下的編碼器操作所述的方式,對它們進行量化。同樣地,量化參數(shù)QP的選擇由控制管理器160經(jīng)控制線115控制。
如圖1中線路125所示,表示宏塊的每個塊的預測誤差信息的量化DCT系數(shù)從量化器106傳遞到視頻復用編碼器170。與在INTRA編碼模式下一樣,視頻復用編碼器170使用上述之字形掃描過程(參見圖4)將每個預測誤差塊的變換系數(shù)排序,隨后將每個非零量化系數(shù)表示為level和run值。它還以類似于以上結(jié)合INTRA編碼模式所述的方式,采用熵編碼對run和level值進行壓縮。視頻復用編碼器170還經(jīng)線路126從運動場編碼塊140接收運動矢量信息(在下面描述)并從控制管理器160接收控制信息。它對運動矢量信息和控制信息進行熵編碼,形成編碼圖像信息的單個比特流135,其中包括經(jīng)熵編碼的運動矢量、預測誤差和控制信息。
表示宏塊的每個塊的預測誤差信息的量化DCT系數(shù)還從量化器106傳遞到逆量化器108。在該處,它們被逆量化,所得的逆量化DCT系數(shù)塊應(yīng)用到逆DCT變換塊110上,在逆DCT變換塊110中,它們經(jīng)受逆DCT變換以產(chǎn)生本地解碼的預測誤差值塊。本地解碼的預測誤差值塊隨后輸入合并器112。在INTER編碼模式下,設(shè)置開關(guān)114,以便合并器112還為宏塊的每個塊接收由運動補償預測功能塊150生成的預測像素值。合并器112將每個本地解碼的預測誤差值塊與對應(yīng)的預測像素值塊合并,以得到重建的圖像塊,并將它們存儲在幀存儲器120中。
在功能塊104、106、108、110和112中,從視頻源接收視頻信號的后續(xù)宏塊并對其執(zhí)行上述的編碼和本地解碼步驟時,于是在幀存儲器120中建立了幀的解碼版本。在已對幀的最后一個宏塊作了處理之后,幀存儲器120包含完全解碼的幀,該幀可以在以INTER編碼格式對后續(xù)收到的視頻幀進行編碼的過程中用作預測參考幀。
現(xiàn)在將描述當前幀的宏塊的預測的形成。以INTER編碼格式編碼的任意幀需要參考幀以進行運動補償預測。這必然意味著在對進視頻序列行編碼時,要編碼的第一幀無論是序列中的第一幀還是某個其它幀,必須以INTRA編碼格式對其進行編碼。這又意味著在視頻編碼器100由控制管理器160切換到INTER編碼模式時,通過在本地對先前編碼的幀進行解碼而形成的完整參考幀已經(jīng)在編碼器的幀存儲器120中可用。通常,參考幀是通過在本地將INTRA編碼幀或INTER編碼幀解碼而形成的。
形成當前幀宏塊的預測的第一個步驟由運動估計功能塊130執(zhí)行。運動估計功能塊130經(jīng)線路128接收亮度和色度值塊,這些數(shù)據(jù)塊組成了要編碼的幀的當前宏塊。它隨后執(zhí)行數(shù)據(jù)塊匹配操作以便識別參考幀中大致與當前宏塊對應(yīng)的區(qū)域。為執(zhí)行數(shù)據(jù)塊匹配操作,運動估計功能塊經(jīng)線路127訪問存儲在幀存儲器120中的參考幀數(shù)據(jù)。更具體地說,運動估計功能塊130通過計算表示被檢查的宏塊與幀存儲器120中存儲的參考幀的像素的候選最佳匹配區(qū)域之間像素值差異的差值(例如,絕對差值之和),執(zhí)行數(shù)據(jù)塊匹配。對于在參考幀的預定義搜索區(qū)域內(nèi)所有可能偏移上的候選區(qū)域,產(chǎn)生相應(yīng)的差值,并由運動估計功能塊130確定最小的計算差值。當前幀中宏塊與產(chǎn)生最小差值的參考幀中候選像素值塊之間的偏差定義了所述宏塊的運動矢量。
一旦運動估計功能塊130已產(chǎn)生了宏塊的運動矢量,則它將運動矢量輸出到運動場編碼功能塊140。運動場編碼功能塊140使用包括一組基本函數(shù)和運動系數(shù)的運動模型,逼近從運動估計功能塊130接收的運動矢量。更具體地說,運動場編碼功能塊140將運動矢量表示為運動系數(shù)值集,這些系數(shù)值與基本函數(shù)相乘時形成運動矢量的近似值。通常,采用只具有兩個運動系數(shù)和基本函數(shù)的平移運動模型(translational motion model),但也可以使用更復雜的運動模型。
運動系數(shù)從運動場編碼功能塊140傳遞到運動補償預測功能塊150。運動補償預測功能塊150還從幀存儲器120接收由運動估計功能塊130識別的最佳匹配候選像素值區(qū)域。利用由運動場編碼功能塊140生成的運動矢量的近似表示和參考幀的最佳匹配候選區(qū)域的像素值,運動補償預測功能塊150為宏塊的每個塊生成預測像素值陣列。每個預測像素值陣列傳遞到合并器116,在合并器中,從當前宏塊的對應(yīng)塊中的實際(輸入)像素值中減去預測像素值。這樣,獲得宏塊的測誤差塊集。
現(xiàn)在將描述圖2所示的視頻解碼器200的操作。解碼器200包括視頻復用解碼器270、逆量化器210、逆DCT變換器220、運動補償預測功能塊240、幀存儲器250、合并器230、控制管理器260及輸出280,其中視頻復用解碼器270從編碼器100接收編碼的視頻比特流135,并將其去復用成各組成部分。
控制管理器260響應(yīng)于是否在對INTRA或INTER編碼幀解碼而對解碼器200的操作進行控制。使解碼器在解碼模式之間切換的INTRA/INTER觸發(fā)控制信號例如可從與從編碼器接收的每個壓縮視頻幀相關(guān)聯(lián)的圖像類型信息中獲得。INTRA/INTER觸發(fā)控制信號由視頻復用解碼器270從編碼的視頻比特流中提取,并經(jīng)控制線215傳遞到控制管理器260。
對INTRA編碼幀的解碼是基于宏塊來執(zhí)行的,每個宏塊實際上是在視頻比特流135中一收到與其相關(guān)的編碼信息后就被解碼。視頻復用解碼器270將宏塊的塊的編碼信息與可能的涉及所述宏塊的控制信息分開。INTRA編碼宏塊的每個塊的編碼信息包括變長碼字,該變長碼字表示該塊的非零量化DCT系數(shù)的熵編碼level和run值。視頻復用解碼器270使用與編碼器100中所用編碼方法對應(yīng)的變長解碼方法將變長碼字解碼,從而恢復level和run值。隨后,它重建宏塊的每個塊的量化變換系數(shù)值陣列,并將它們傳遞到逆量化器210。與宏塊相關(guān)的任何控制信息也在視頻復用解碼器中采用適當?shù)慕獯a方法解碼,并傳遞到控制管理器260。具體地說,與應(yīng)用到變換系數(shù)的量化級相關(guān)的信息由視頻復用解碼器270從編碼比特流中提取,并經(jīng)控制線217提供給控制管理器260。該控制管理器又將此信息經(jīng)控制線218傳送到逆量化器210。逆量化器210根據(jù)控制信息將宏塊的每個塊的量化DCT系數(shù)逆量化,并將現(xiàn)在的逆量化DCT系數(shù)提供給逆DCT變換器220。
逆DCT變換器220對宏塊的每個塊的逆量化DCT系數(shù)執(zhí)行逆DCT變換,以形成包括重建像素值的圖像信息的解碼數(shù)據(jù)塊,宏塊的每個塊的重建像素值經(jīng)合并器230傳遞到解碼器的視頻輸出280,例如,它們可從該處提供給顯示裝置(未顯示)。宏塊的每個塊的重建像素值還存儲在幀存儲器250中。由于在對INTRA編碼宏塊的編碼/解碼中未使用運動補償預測,因此,控制管理器260控制合并器230將這樣的每個像素值塊傳遞到視頻輸出280和幀存儲器250。隨著后續(xù)INTRA編碼幀宏塊被解碼和存儲,解碼幀逐漸匯集在幀存儲器250中,并因而可用作參考幀,以便在對后續(xù)接收的INTER編碼幀解碼時用于運動補償預測。
INTER編碼幀也按宏塊進行解碼,每個INTER編碼宏塊實際上是在視頻比特流135中一收到與其相關(guān)的編碼信息就被解碼。視頻復用解碼器270將INTER編碼宏塊的每個塊的編碼預測誤差信息與編碼運動矢量信息和與所述宏塊相關(guān)的可能控制信息分開。如上所述,宏塊的每個塊的編碼預測誤差信息包括變長碼字,該變長碼字表示所述預測誤差塊的非零量化變換系數(shù)的熵編碼的level和run值。視頻復用解碼器270使用與編碼器100中所用編碼方法對應(yīng)的變長解碼方法將變長碼字解碼,由此恢復level和run值。隨后,它重建每個預測誤差塊的量化變換系數(shù)值陣列,并將它們傳遞到逆量化器210。與INTER編碼宏塊相關(guān)的控制信息也在視頻復用解碼器270中采用適當?shù)慕獯a方法解碼,并傳遞到控制管理器260。與應(yīng)用到預測誤差塊變換系數(shù)的量化級相關(guān)的信息從編碼比特流中提取,并經(jīng)控制線217提供給控制管理器260。該控制管理器又將此信息經(jīng)控制線218傳送到逆量化器210。逆量化器210根據(jù)控制信息將表示宏塊的每個塊的預測誤差信息的量化DCT系數(shù)逆量化,并將現(xiàn)在的逆量化DCT系數(shù)提供給逆DCT變換器220。隨后在逆DCT變換器220中將表示每個數(shù)據(jù)塊的預測誤差信息的逆量化DCT系數(shù)逆變換,以產(chǎn)得到宏塊的每個塊的重建預測誤差值陣列。
與宏塊相關(guān)聯(lián)的編碼運動矢量信息由視頻復用解碼器270從編碼視頻比特流135中提取。由此獲得的解碼運動矢量信息經(jīng)控制線225傳遞到運動補償預測功能塊240,運動補償預測功能塊240使用與編碼器100中用于將INTER編碼宏塊編碼的運動模型相同的運動模型,重建宏塊的運動矢量。重建的運動矢量接近編碼器的運動估計功能塊130原來確定的運動矢量。解碼器的運動補償預測功能塊240使用重建的運動矢量識別幀存儲器250中存儲的預測參考幀中重建像素區(qū)域的位置。參考幀例如可以是先前解碼的INTRA編碼幀,或者先前解碼的INTER編碼幀。在任何一種情況下,將重建運動矢量指示的像素區(qū)域用于形成所述宏塊的預測。更具體地說,運動補償預測功能塊240通過從在參考幀中識別的像素區(qū)域復制對應(yīng)的像素值,形成宏塊的每個塊的像素值陣列。預測,即從參考幀導出的像素值塊,從運動補償預測功能塊240傳遞到合并器230,在合并器230中,將其與解碼的預測誤差信息組合在一起。實際上,將每個預測塊的像素值添加到由逆DCT變換器220輸出的對應(yīng)重建預測誤差值中。這樣,獲得了宏塊的每個塊的重建像素值陣列。重建像素值傳遞到解碼器的視頻輸出280,并且還存儲在幀存儲器250中。
隨著后續(xù)INTER編碼幀宏塊被解碼和存儲,解碼幀逐漸匯集在幀存儲器250中,并因而可用其它INTER編碼幀的運動補償預測的參考幀。
現(xiàn)在將更詳細地分析使用變長編碼(VLC)技術(shù),對與量化變換系數(shù)相關(guān)聯(lián)的run和level值進行熵編碼。
一般情況下,將run-level對作為單個符號編碼。這通過在每個可能的run-level對與定義的碼號(code number)之間定義映射關(guān)系來實現(xiàn)。表3中顯示了一個run-level對到碼號的查找表形式的映射示例。使用查找表中的映射,為每個塊的對(run,level)指定一個碼號,并通過VLC編碼技術(shù)對所得的碼號進行編碼。例如,在Joint Model(JM)2.0工作草案編號2(Joint Model(JM)2.0 Working Draft Number2,Doc.JVT-B118,Joint Video Team(JVT)of ISO/IEC MPEG and ITU-TVCEG Pattaya,2ndJVT Meeting,Geneva,CH,Jan.29-Feb.1,2002)(H.26L視頻編碼標準)中,定義了將(run,level)對映射到碼號上的兩個不同查找表。選擇使用哪個查找表基于數(shù)據(jù)塊的QP值和編碼模式。更具體地說,如果編碼模式是INTRA且QP小于24,則使用不同的表。
JVT H.26L的Joint Model JM 2.0利用了稱為UVLC的所謂的“通用”變長編碼方案。因此,根據(jù)H.26L JM 2.0實現(xiàn)的視頻編碼器使用單個變長碼字集對要在比特流中從編碼器發(fā)送的所有信息(語法元素)進行熵編碼。雖然使用相同的碼字,但為不同類型信息的編碼定義了預定數(shù)量的數(shù)據(jù)符號到碼字的不同的映射。例如,為包含亮度信息的塊提供了兩個數(shù)據(jù)符號到碼字的映射,而映射的選擇取決于用于將量化DCT變換系數(shù)排序的之字形掃描操作的類型(單掃描或雙重掃描)。有關(guān)根據(jù)H.26L定義的單掃描和雙重掃描之字形掃描方案,請參閱工作草案編號2(Working Draft Number 2,Doc.JVT-B118,Joint Video Team(JVT)of ISO/IEC MPEG and ITU-T VCEGPattaya,2ndJVT Meeting,Geneva,CH,Jan.29-Feb.1,2002)。除其它映射之外,還為宏塊類型(MB_Type)信息、運動矢量數(shù)據(jù)(MVD)和INTRA預測模式信息提供不同的映射(參見下表3)。
H.26L JM 2.0中定義的UVLC碼字可以下面表1所示的如下壓縮形式編寫,其中,xn項可取0或1值。
10 1 x00 0 1 x1x00 0 0 1 x2x1x00 0 0 0 1 x3x2x1x0..................................
表1根據(jù)H.26L JM 2.0生成UVLC碼字的方案表2顯示了根據(jù)表1所示方案生成的前16個UVLC碼字,而表3顯示了根據(jù)H.26L提供的一些不同數(shù)據(jù)符號到碼字映射。要了解完整的映射說明,讀者應(yīng)再次參閱工作草案編號2(Working DraftNumber 2,Doc.JVT-B118,Joint Video Team(JVT)of ISO/IEC MPEGand ITU-T VCEG Pattaya,2ndJVT Meeting,Geneva,CH,Jan.29-Feb.1,2002,Section 3.2)。
表2根據(jù)表1所示方案生成的前16個H.26L JM 2.0 UVLC碼字
表格3H.26L TML-5中定義的示例數(shù)據(jù)符號到UVLC碼字映射H.26L中采用的通用變長編碼方案具有多種技術(shù)優(yōu)點。具體地說,使用可根據(jù)諸如表1所示的簡單規(guī)則構(gòu)造的單個VLC碼字集允許逐比特創(chuàng)建碼字。這消除了在編碼器和解碼器中存儲碼字表的需要,因而降低了對編碼器和解碼器的存儲器要求。當然,應(yīng)注意,在替代實施中,可在編碼器和解碼器中生成并存儲碼字表。不同的數(shù)據(jù)符號到碼字映射至少允許對UVLC編碼方案進行有限的調(diào)整,以適應(yīng)經(jīng)過熵編碼的各種類型的圖像相關(guān)數(shù)據(jù)和控制信息的不同統(tǒng)計屬性。不同數(shù)據(jù)符號到碼字映射可存儲在編碼器和解碼器中,因而無需在比特流中從編碼器向解碼器發(fā)送映射信息。這有助于保持抗差錯能力。
然而,UVLC熵編碼方案也有一些缺陷。具體地說,不同數(shù)據(jù)符號到碼字映射提供的固定碼字和有限的適應(yīng)性不可避免地得到并非最佳的數(shù)據(jù)壓縮效果。這歸因于如下事實在圖像編碼中,不同變換系數(shù)的出現(xiàn)頻率(即概率)及相應(yīng)的不同(run,level)對的概率會根據(jù)在編碼的圖像內(nèi)容和圖像類型改變。因此,如果使用單個變長碼字集,并且在要編碼/解碼的數(shù)據(jù)符號與VLC之間只提供了單個映射,則通常無法取得最佳的編碼效能。
為此,已建議對基本UVLC編碼方案加以改進。更具體地說,建議包括不止一個VLC碼字集。Gisle Bjontegaard在Q.15/SG16“在用于INTRA Luma系數(shù)的兩個VLC之間使用自適應(yīng)切換”(Use ofAdaptive Switching Between Two VLC for INTRA Luma Coefficients,Doc.Q15-K-30,August 2000)中提出了這樣的一個提議。此提議建議對某些類型的信息熵編碼使用第二VLC碼字集。根據(jù)文檔Q15-K-30,所提議的第二個VLC碼字集稱為VLC2,它是根據(jù)下面表4中所示的方案構(gòu)造的。具體地說,它用于對run和level值進行編碼,這些值與使用根據(jù)H.26L定義的雙重之字形掃描方案掃描的4×4像素INTRA編碼亮度塊的量化變換系數(shù)相關(guān)聯(lián)。表5以明確的形式顯示了該VLC2的前16個碼字。
1 01 1 01 1 10 1 x1x00 0 1 x2x1x00 0 0 1 x3x2x1x0...............................
表4根據(jù)Q.15/SG 16文檔Q15-K-30生成VLC2碼字的方案
表5根據(jù)表4所示方案生成的Q.15/SG 16文檔Q15-K-30前16個VLC2碼字通過將表4、表5分別與表1、表2比較可以看出,VLC2的最短碼字有兩個比特,而為原來的UVLC碼字集中的最短碼字分配的為單比特。由于通用的可解碼性要求任何VLC碼字不可以是其它任何碼字的前綴,因此,這種變更對其它VLC2碼字的結(jié)構(gòu)有重要的影響。具體地說,為最短碼字分配兩個比特使得可以用更少的比特來表示具有具有更高索引值的碼字。例如,參照表2,可以看到索引7對應(yīng)的UVLC碼字有7個比特,而索引7對應(yīng)的VLC2碼字只有6個比特。
同樣也可觀察到,一個塊內(nèi)非零系數(shù)數(shù)量與同一塊中可能的(run,level)對之間有很強的相關(guān)性。應(yīng)注意,數(shù)據(jù)塊中非零系數(shù)的數(shù)量受變換塊大小的限制,例如,對于4×4變換,該數(shù)量上限為16。同樣地,run的值受變換塊大小的限制,例如,對于4×4變換,該值上限為15。非零系數(shù)的數(shù)量很大,如接近陣列的總大小時,可觀察到具有小run值和高level值的(run,level)對具有較高的概率。例如,對于具有15個非零系數(shù)的4×4變換,run只可以在范圍
內(nèi)取值。
基于這些觀察,Karczewicz所提的提議“高比特率的VLC系數(shù)編碼”(“VLC Coefficients Coding for High Bit-Rate”,Doc.JVT-B072,2ndJVT Meeting,Geneva,CH,Jan.29-Feb.1,2002)中建議了一種變長編碼方法,在該方法中,提供了單獨的查找表,以對應(yīng)于不同數(shù)量的非零值量化變換系數(shù)。根據(jù)此提議,碼字及(run,level)對與每個表的碼字之間的映射設(shè)計為在應(yīng)用到從具有指定數(shù)量的非零值系數(shù)的量化變換系數(shù)值陣列導出的(run,level)對集時,提供最佳的數(shù)據(jù)壓縮。有關(guān)(run,level)對統(tǒng)計屬性相對于非零值量化變換系數(shù)數(shù)量的變化的信息是以經(jīng)驗方式獲得的,例如,通過預先對若干測試(“訓練”)圖像或視頻序列進行編碼而獲得。隨后可設(shè)計VLC碼字及碼字之間的映射并作為編碼器中的一個或多個查找表存儲。
Karczewicz建議的算法細節(jié)如下在圖像像素塊或預測誤差值數(shù)據(jù)塊已進行變換編碼以形成二維變換系數(shù)值陣列,且每個系數(shù)值已量化后,則陣列中非零量化系值的數(shù)量被確定。將稱為Nc的值設(shè)為該數(shù)量并用于明確表示陣列中非零系數(shù)值的數(shù)量。因此,不再需要EOB符號(例如,等于零的level值)。隨后,通過使用定義(run,level)對與碼字之間映射的查找表,將所述塊中的每個(run,level)對映射到碼字上,其中,查找表是根據(jù)Nc值來選擇的。
上述兩種VLC編碼方法中,通過在不止一個碼字集之間進行基于上下文的切換來選擇碼字;這兩種方法與使用單個VLC碼字集的方法相比,均提高了數(shù)據(jù)壓縮效率。然而,在許多數(shù)據(jù)壓縮應(yīng)用中,特別是在與視頻編碼相關(guān)的應(yīng)用中,人們不斷期望提高數(shù)據(jù)壓縮效率。因此,對于開發(fā)新的變長編碼方法,以提高對要編碼的數(shù)據(jù)符號類型和統(tǒng)計屬性的適應(yīng)性,同時保持低計算復雜性、低存儲要求和良好的抗差錯能力,人們?nèi)匀挥兄喈敻叩呐d趣。正是在這樣的背景下,提出了根據(jù)本發(fā)明的方法。
發(fā)明概述本發(fā)明一般涉及表示為(run,level)對的數(shù)據(jù)符號的變長編碼。它涉及使用數(shù)據(jù)符號與VLC碼字之間的至少兩個映射,并定義映射之間的切換規(guī)則,這些規(guī)則考慮了要進行變長編碼的數(shù)據(jù)符號的統(tǒng)計屬性。這樣,與在數(shù)據(jù)符號與碼字之間使用固定映射的VLC編碼方法相比,取得了提高的數(shù)據(jù)壓縮效率。切換規(guī)則設(shè)計為使得無需在比特流中包括與映射選擇相關(guān)的任何信息,便可將包括按照本發(fā)明方法形成的VLC碼字的比特流解碼。換言之,無需在比特流中提供用于生成每個碼字的映射的明確指示。此屬性增強了數(shù)據(jù)壓縮效率。
具體地說,本發(fā)明提出用于對量化變換系數(shù)進行編碼以提高編碼效率的方法。更具體地說,本發(fā)明的具體目的是提供一種用于對表示非零值量化變換系數(shù)的(run,level)對進行編碼的新的更有效的方案。象Karczewicz在文檔“高比特率的VLC系數(shù)編碼”(“VLCCoefficients Coding for High Bit-Rate”,Doc.JVT-B072,2ndJVT Meeting,Geneva,CH,Jan.29-Feb.1,2002)中建議的方法一樣,本發(fā)明基于如下觀察變換系數(shù)塊中非零值系數(shù)的數(shù)量以及run的值受變換塊大小限制。此觀察及對現(xiàn)實圖像操作的編碼器的進一步分析使本發(fā)明的發(fā)明者意識到,在塊中非零系數(shù)數(shù)量與所述塊中run值之間存在相關(guān)性。具體地說,他們意識到隨著從塊將越來越多的(run,level)對編碼,run-level組合的可能數(shù)量開始減少。正是此后一認識促成了本發(fā)明。
因此,根據(jù)本發(fā)明的VLC編碼方法將如下事實納入考慮隨著為連續(xù)的(run,level)對指配了碼字,與要編碼的下一(run,level)對相關(guān)聯(lián)的run值的可能范圍變得更加有限。
Run的可能值隨每次(run,level)對的編碼而變化的事實可以在(run,level)對到碼號的索引分配期間加以利用。
更具體地說,根據(jù)本發(fā)明的實施例,至少提供了兩個映射集以將(run,level)對與碼號相關(guān)。利用根據(jù)max_run值從至少兩個映射集中之一選擇的映射表,首先將每個(run,level)對映射到一個碼號,max_run值定義了run可以取的最大值。通過考慮塊內(nèi)非零值系數(shù)數(shù)量將Max_run初始化,并在將每個(run,level)對編碼后對Max_run進行更新。以下示例闡明了這一點假設(shè)一個量化變換系數(shù)塊具有5個非零系數(shù),帶有(run,level)對(2,1)、(3,2)、(4,3)、(2,3)和(1,2)。此處應(yīng)注意的是,通常給定系數(shù)的run和level值是有序的,以便level值在相關(guān)聯(lián)的run值之前。因此,在上述(run,level)對中,level值是每對的第一個數(shù)字(2,3,4,2,1),并且run值是每對的后一個數(shù)字(1,2,3,3,2)。在編碼過程開始時,由于有5個非零系數(shù),并且最多可以有16個這種系數(shù),因此,run可以取的最大值為11。將此最大可能的run值表示為max_run,可以看到,在將第一個(run,level)對,即(2,1)編碼后,max_run將減少,準確地說,通過減去當前run值而更新先前的max_run值,可發(fā)現(xiàn)它將變成10。更具體地說,max_run的更新方式為max_run=max_run-run其中,max_run在塊編碼開始時,初始化為16-Nc。
根據(jù)本發(fā)明的第一方面,提供了一種將包括零值數(shù)據(jù)符號和非零值數(shù)據(jù)符號的數(shù)據(jù)符號集編碼的方法,所述方法包括通過映射操作指配碼字以表示非零值數(shù)據(jù)符號及相關(guān)聯(lián)的若干在前或在后的零值符號。根據(jù)所述方法,所述映射操作依賴于所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的最大可能數(shù)量;通過所述映射操作,將一個碼字指配給非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號。
根據(jù)本發(fā)明的第二方面,提供了一種將表示數(shù)據(jù)符號集的碼字集解碼的方法,所述數(shù)據(jù)符號集包括零值數(shù)據(jù)符號和非零值數(shù)據(jù)符號,所述方法包括接收所述數(shù)據(jù)符號集中非零值數(shù)據(jù)符號的數(shù)量指示,接收表示非零值數(shù)據(jù)符號及相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號的碼字,以及通過執(zhí)行逆映射操作,將所述碼字解碼以恢復所述非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號。根據(jù)所述方法,所述逆映射操作依賴于所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的最大可能數(shù)量;通過所述逆映射操作,可從所述碼字將所述非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號解碼。
根據(jù)本發(fā)明的第三方面,提供了一種將包括零值數(shù)據(jù)符號和非零值數(shù)據(jù)符號的數(shù)據(jù)符號集編碼的編碼器;所述編碼器包括用于通過映射操作指配碼字,以表示非零值數(shù)據(jù)符號及相關(guān)聯(lián)的若干在前或在后的零值符號的部件。根據(jù)本發(fā)明,指定編碼器中提供的碼字的部件設(shè)置來根據(jù)所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的最大可能數(shù)量來調(diào)整指配碼字的映射操作。
根據(jù)本發(fā)明的第四方面,提供了一種將表示數(shù)據(jù)符號集的碼字集解碼的解碼器;所述數(shù)據(jù)符號集包括零值數(shù)據(jù)符號和非零值數(shù)據(jù)符號;所述解碼器包括用于接收表示所述數(shù)據(jù)符號集中非零值數(shù)據(jù)符號數(shù)量指示的部件;用于接收表示非零值數(shù)據(jù)符號及相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號的碼字的部件;以及用于通過執(zhí)行逆映射操作,將碼字解碼以恢復所述非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號的部件。根據(jù)本發(fā)明,用于將碼字解碼的部件設(shè)置來根據(jù)所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的最大可能數(shù)量來調(diào)整逆映射操作,通過逆映射操作,可將非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號解碼。
根據(jù)本發(fā)明的第五方面,提供了一種多媒體終端,它包括根據(jù)本發(fā)明第三方面的編碼器。
根據(jù)本發(fā)明的第六方面,提供了一種多媒體終端,它包括根據(jù)本發(fā)明第四方面的解碼器。
根據(jù)本發(fā)明第五和/或第六方面的多媒體終端最好是移動多媒體終端,用于通過無線電連接與移動電信網(wǎng)絡(luò)通信。
附圖簡述現(xiàn)在將參照附圖,通過示例描述本發(fā)明的實施例,其中圖1是根據(jù)現(xiàn)有技術(shù)的通用視頻編碼器的示意方框圖;圖2是根據(jù)現(xiàn)有技術(shù)且與圖1所示編碼器對應(yīng)的通用解碼器的示意方框圖;圖3顯示了根據(jù)現(xiàn)有技術(shù)的宏塊的形成;圖4顯示了作為示例的之字形掃描順序;圖5是根據(jù)本發(fā)明實施例的視頻編碼器的示意方框圖;圖6是根據(jù)本發(fā)明實施例且與圖5所示編碼器對應(yīng)的視頻解碼器的示意方框圖;以及圖7是可實施根據(jù)本發(fā)明的方法的多媒體通信終端的示意方框圖。
本發(fā)明詳細說明在下面的詳細說明中,給出了本發(fā)明的示范實施例。這些實施例涉及視頻編碼器中(run,level)對的變長編碼及其在對應(yīng)視頻解碼器中的后續(xù)解碼,(run,level)對表示作為塊變換編碼結(jié)果產(chǎn)生的非零值變換系數(shù)。然而,本領(lǐng)域的技術(shù)人員會理解,根據(jù)本發(fā)明的方法可以一般地適用于表示為(run,level)對的數(shù)據(jù)符號或要編碼的數(shù)據(jù)符號集的任何等效表示的VLC編碼。
圖5是可應(yīng)用根據(jù)本發(fā)明的VLC編碼方法的視頻編碼器600的示意方框圖。圖5所示視頻編碼器的結(jié)構(gòu)大致與圖1所示現(xiàn)有技術(shù)視頻編碼器的結(jié)構(gòu)相同,但對執(zhí)行變長編碼操作的那些編碼器部件進行了適當?shù)男薷?。在某種意義上功能實現(xiàn)和操作與前述現(xiàn)有技術(shù)視頻編碼器相同的所有視頻編碼器部件以相同的標記標識。在此說明書中,假定所有變長編碼操作在視頻復用編碼器670中執(zhí)行。然而,應(yīng)理解,在本發(fā)明的替代實施例中,可提供單獨的變長編碼單元。還應(yīng)注意的是,根據(jù)本發(fā)明的方法可應(yīng)用于視頻編碼器生成的某些數(shù)據(jù)符號(例如,與非零值變換系數(shù)相關(guān)聯(lián)的(run,level)對),并且其它VLC編碼方法可用于將其它數(shù)據(jù)符號編碼。
現(xiàn)在將詳細地介紹視頻編碼器600的操作。在將數(shù)字視頻幀編碼時,編碼器600在某種意義上以類似于前面結(jié)合圖1所述的方式操作,以生成INTRA編碼和INTER編碼的壓縮視頻幀。如本文前面所述的那樣,在INTRA編碼模式下,對每個圖像數(shù)據(jù)(像素值)塊應(yīng)用離散余弦變換(DCT),以生成對應(yīng)的變換系數(shù)值二維陣列。DCT操作在變換塊104中執(zhí)行,由此生成的系數(shù)隨后傳遞到量化器106中進行量化。在INTER編碼模式下,對預測誤差值塊應(yīng)用功能塊104執(zhí)行的DCT變換。由此產(chǎn)生的變換系數(shù)也傳遞到量化器106并在其中量化。
應(yīng)注意的是,ITNER編碼幀可包含INTRA編碼圖像塊;此外,在一些情況下,不對特定圖像塊應(yīng)用變換編碼。例如,如果INTRA預測在INTRA編碼模式下使用,則在編碼器中從一個或多個先前編碼的圖像塊中預測一些圖像塊。這種情況下,編碼器為解碼器提供要在預測中使用的先前數(shù)據(jù)塊的指示,并且不輸出任何變換系數(shù)數(shù)據(jù)。此外,在INTER編碼模式下,某個塊的預測與該塊本身的圖像數(shù)據(jù)之間的差異可能很小,以致從數(shù)據(jù)壓縮率角度上最好不發(fā)送任何預測誤差信息。因此,根據(jù)本發(fā)明的VLC編碼方法適用于經(jīng)過變換編碼及隨后的變換系數(shù)量化的那些圖像塊。
根據(jù)本發(fā)明,在視頻復用編碼器670收到量化變換系數(shù)塊(二維陣列)時,它確定陣列中非零值系數(shù)的數(shù)量Nc,并將此數(shù)量的指示在比特流635中傳送給解碼器。在本發(fā)明的優(yōu)選實施例中,Nc是在傳輸前作了變長編碼。在替代實施例中,可以如上所述傳送或可以應(yīng)用另一種編碼方法。
視頻復用編碼器670接著將非零值系數(shù)表示為(run,level)對。更具體地說,如圖4中所示那樣,先使用預定的掃描順序掃描量化變換系數(shù)的二維陣列,以生成有序的一維陣列。有序的一維陣列中的每個非零值系數(shù)值隨后用run值和level值表示,其中,level值表示系數(shù)值,run值表示在非零值系數(shù)前連續(xù)的零值系數(shù)的數(shù)量。
隨后,視頻復用編碼器670對run和level值應(yīng)用變長編碼,以便為每個(run,level)對指配一個VLC碼字。根據(jù)本發(fā)明的優(yōu)選實施例,在將符號編碼前考慮可能的最大run(表示為max_run),通過選擇(run,level)對到碼號的不同映射,將(run,level)對編碼。在對量化變換系數(shù)塊中第一(run,level)對進行編碼時,將max_run設(shè)為等于塊中可存在的非零值系數(shù)的最大可能數(shù)量減去先前確定的Nc值。因此,對于4×4塊,max_run初始化為max_run=16-Nc(1)以下示范偽碼提供了根據(jù)本發(fā)明將碼字指配給(run,level)對的一種方法Index_RL=RL_index[max_run,level,run];(2)其中,RL_index根據(jù)max_run值將run_level值的整數(shù)值映射到不同的碼號。max_run在使用訓練材料運行模擬后初始化。最后,用表2或表5所列VLC碼字之一將Index_RL編碼。
更具體地說,對于每個可能的max_run值,通過分析不同(run,level)對的出現(xiàn)概率,以經(jīng)驗方式從一個或多個視頻數(shù)據(jù)測試序列中構(gòu)造映射函數(shù)RL_index。隨后將應(yīng)用映射方法生成的碼號(即,Index_RL值)用于從碼字表中選擇表示(run,level)對的碼字。本發(fā)明的優(yōu)選實施例使用以上表2中所示的碼字表或表5中所示的碼字表。
表6和表7顯示了根據(jù)max_run值將(run,level)對映射到碼號的示例。在所述兩個表中,行對應(yīng)于level值,列對應(yīng)于run值,而每個單元格中的條目表示該特定run-level對(即,run和level值的組合)的VLC碼字的碼號。為最可能的對相配碼號1,為第二最可能的對指定碼號2,以此類推。表6和表7均列出了前15個最可能的對。表6顯示了max_run為8時的情況,而表7顯示了max_run為3時的情況。
Run
Level表6max_run=8。
Run
Level表7max_run=3使用以上映射方法,選擇VLC碼字以表示特定的(run,level)對后,視頻復用編碼器670在比特流635中將碼字發(fā)送到解碼器。如果當前數(shù)據(jù)塊有更多的(run,level)對要編碼,則它將通過減去當前run值來更新max_run,以便用于將下一(run,level)對編碼,更新方式即max_run=max_run-run
編碼過程會繼續(xù),直至已將給定塊的所有(run,level)對表示為碼字為止,隨之視頻復用編碼器670接收下一量化變換系數(shù)塊以進行編碼,并對下一數(shù)據(jù)塊重復編碼過程。
現(xiàn)在將參照圖6描述根據(jù)本發(fā)明的視頻解碼器700的操作。圖6所示視頻解碼器結(jié)構(gòu)大致與圖2所示的現(xiàn)有技術(shù)視頻解碼器的結(jié)構(gòu)相同,但對執(zhí)行變長解碼操作的那些解碼器部件進行了適當?shù)男薷?。功能實現(xiàn)和操作在某種意義上與前述現(xiàn)有技術(shù)視頻解碼器相同的所有視頻解碼器部件用相同的標記標識。在下面的說明中,假定所有變長解碼操作在視頻復用解碼器770中執(zhí)行。然而,應(yīng)理解,在本發(fā)明的替代實施例中,可提供單獨的變長解碼單元。
現(xiàn)在將詳細地介紹該視頻解碼器的操作。這里,假定圖6所示視頻解碼器與結(jié)合圖5所述的編碼器相對應(yīng),因此能夠接收編碼器600發(fā)送的比特流635并將其解碼。在該解碼器中,比特流由視頻復用解碼器770接收并分成各組成部分。如先前有關(guān)現(xiàn)有技術(shù)的所述那樣,對從比特流中提取的壓縮視頻數(shù)據(jù)按宏塊進行處理。根據(jù)本發(fā)明,INTRA編碼宏塊的壓縮視頻數(shù)據(jù)包括表示宏塊的每個塊的VLC編碼(run,level)對的變長碼字,以及每塊中出現(xiàn)的非零值變換系數(shù)的數(shù)量Nc的指示和編碼控制信息(例如,與量化參數(shù)QP相關(guān))。INTER編碼宏塊的壓縮視頻數(shù)據(jù)包括每塊的VLC編碼預測誤差信息(包括每塊的VLC編碼的(run,level)對和Nc指示)、宏塊的運動矢量信息和編碼的控制信息。
以同樣的方式處理INTRA編碼宏塊的每個塊的Nc值和(run,level)對和與INTRA編碼宏塊相關(guān)聯(lián)的每個預測誤差數(shù)據(jù)塊的Nc值和(run,level)對。
更具體地說,在對INTRA或INTER編碼圖像塊的VLC編碼(run,level)對解碼時,視頻復用解碼器770先確定該塊中非零值量化變換系數(shù)的數(shù)量。如上所述,與非零值量化變換系數(shù)數(shù)量Nc相關(guān)的信息由編碼器600插入比特流635中。此信息由解碼器700的視頻復用解碼器770從接收的比特流中抽取。
隨后,視頻復用解碼器770開始對圖像塊的VLC編碼的(run,level)對解碼。根據(jù)本發(fā)明,解碼操作的執(zhí)行方式類似于如上所述編碼器中執(zhí)行的編碼過程。更具體地說,在對與特定圖像塊相關(guān)聯(lián)的第一變長碼字解碼時,視頻復用解碼器770通過將max_run的值設(shè)為等于塊中可能存在的非零值系數(shù)的最大數(shù)量減去從接收的比特流中提取的與所述塊相關(guān)的Nc值,將max_run值初始化。它隨后確定與接收碼字對應(yīng)的碼號,并根據(jù)max_run的值,選擇將該碼號與run和level值的特定組合相關(guān)的映射表,解碼器中使用的映射表對應(yīng)于編碼器中用于生成碼字的那些映射表。
在恢復與數(shù)據(jù)塊第一非零值量化變換系數(shù)對應(yīng)的level和run值后,視頻復用解碼器770通過減去剛確定的run值來更新max_run的值,并開始對數(shù)據(jù)塊的下一碼字進行解碼。此過程會繼續(xù),直到已將表示特定圖像塊的所有碼字解碼為止,視頻復用解碼器770隨之從解碼的(run,level)對重建圖像塊的量化變換系數(shù),并將它們傳遞到逆量化器210。如結(jié)合現(xiàn)有技術(shù)視頻解碼器200所述的那樣,視頻解頻過程的剩余部分繼續(xù),從而形成每個圖像塊的重建像素值。
圖7顯示了包括可適于按照本發(fā)明操作的視頻編碼和解碼設(shè)備的終端裝置。更具體地說,該圖顯示了根據(jù)ITU-T建議H.324實現(xiàn)的多媒體終端80。終端可視為多媒體收發(fā)裝置。它包括捕獲數(shù)據(jù)流并將其編碼和復用以便經(jīng)通信網(wǎng)傳送的單元以及接收多媒體內(nèi)容并將其去復用、解碼和顯示的單元。ITU-T建議H.324定義了終端的全部操作,并涉及控制其不同構(gòu)成部分操作的其它建議。此種多媒體終端可在諸如常規(guī)移動視頻電話等實時應(yīng)用或諸如從例如因特網(wǎng)多媒體內(nèi)容服務(wù)器檢索和/或流式傳送視頻剪輯的非實時應(yīng)用中使用。
在本發(fā)明范圍中,應(yīng)理解圖7所示H.324終端僅僅是適于應(yīng)用本發(fā)明方法的多種替代多媒體終端實施例之一。還應(yīng)注意到,就終端設(shè)備的位置和實現(xiàn)而言,存在多種替代方案。如圖7所示,多媒體終端可位于連接到諸如模擬PSTN(公共交換電話網(wǎng))等固定線路電話網(wǎng)絡(luò)的通信設(shè)備中。這種情況下,多媒體終端配有符合ITU-T建議V.8、V.34和可選的V.8bis標準的調(diào)制解調(diào)器91。或者,多媒體終端可連接到外部調(diào)制解調(diào)器。調(diào)制解調(diào)器允許將多媒體終端生成的復用數(shù)字數(shù)據(jù)和控制信號轉(zhuǎn)換成適合經(jīng)PSTN傳輸?shù)哪M形式。它還使多媒體終端能夠從PSTN接收模擬形式的數(shù)據(jù)和控制信號,并將它們轉(zhuǎn)換成可由終端以適當方式去復用并加以處理的數(shù)字數(shù)據(jù)流。
H.324多媒體終端也可以這樣實現(xiàn),使它可直接連接到數(shù)字固定線路網(wǎng)絡(luò),如ISDN(綜合業(yè)務(wù)數(shù)字網(wǎng)絡(luò))。這種情況下,調(diào)制調(diào)解器91可替換為ISDN用戶網(wǎng)絡(luò)接口。在圖7中,此ISDN用戶網(wǎng)絡(luò)接口由備選功能塊92表示。
H.324多媒體終端也可適于在移動通信應(yīng)用中使用。如果配合無線通信鏈路使用,則調(diào)制解調(diào)器91可替換為任何適當?shù)臒o線接口,如圖7中備選功能塊93所示。例如,H.324/M多媒體終端可包括無線電收發(fā)信機,其可實現(xiàn)到當前第二代GSM移動電話網(wǎng),或所提出的第三代UMTS(通用移動電話系統(tǒng))的連接。
應(yīng)注意的是,在設(shè)計用于雙向通信,即用于收發(fā)視頻數(shù)據(jù)的多媒體終端中,同時提供按照本發(fā)明實施的視頻編碼器和視頻解碼器是有利的。此類編碼器和解碼器對經(jīng)常實現(xiàn)為一個組合功能單元,稱為“編解碼器”。
現(xiàn)在將參照圖7進一步詳細描述典型的H.324多媒體終端。
多媒體終端80包括稱為“終端設(shè)備”的多個單元。這包括一般性地分別用標記81、82和83表示的視頻、音頻和遠程信息處理裝置。例如,視頻設(shè)備81可包括捕獲視頻圖像的攝像機、顯示接收視頻內(nèi)容的監(jiān)視器和可選的視頻處理設(shè)備。音頻設(shè)備82通常包括例如用于捕獲語音消息的麥克風以及再現(xiàn)接收音頻內(nèi)容的揚聲器。音頻設(shè)備還可包括其它音頻處理單元。遠程信息處理設(shè)備83可包括數(shù)據(jù)終端、鍵盤、電子白板或靜態(tài)圖像收發(fā)信機,如傳真機。
視頻設(shè)備81連接到視頻編解碼器85。視頻編解碼器85包括均根據(jù)本發(fā)明實現(xiàn)的視頻編碼器和相應(yīng)的視頻解碼器。此類編碼器和解碼器將在下面描述。視頻編解碼器85負責以適當?shù)男问綄⒉东@的視頻數(shù)據(jù)編碼,以便通過通信鏈路傳輸,并且將從通信網(wǎng)絡(luò)接收的壓縮視頻內(nèi)容解碼。在圖7所示示例中,視頻編解碼器是根據(jù)ITU-T建議H.26L實現(xiàn)的,但進行了適當?shù)男薷囊员阍谝曨l編解碼器的編碼器和解碼器中實施根據(jù)本發(fā)明的自適應(yīng)變長編碼方法。
終端的音頻設(shè)備連接到圖7中用標號88表示的音頻編解碼器。類似于視頻編解碼器,音頻編解碼器包括編碼器/解碼器對。它將終端音頻設(shè)備捕獲的音頻數(shù)據(jù)轉(zhuǎn)換成適合經(jīng)通信鏈路傳輸?shù)男问?,以及將從網(wǎng)絡(luò)接收的音頻數(shù)據(jù)變換成適合再現(xiàn)的形式,例如,適合在終端的揚聲器上再現(xiàn)。音頻編解碼器的輸出傳遞到延遲塊87,以補償視頻編碼過程引入的延遲,從而確保音頻和視頻內(nèi)容的同步。
多媒體終端的系統(tǒng)控制功能塊84采用適當?shù)目刂茀f(xié)議(信令功能塊88)在發(fā)送和接收終端之間建立共同的操作模式,控制端到網(wǎng)絡(luò)的信令。信令功能塊88交換有關(guān)發(fā)送和接收終端的編碼和解碼功能的信息,并可用于實現(xiàn)視頻編碼器的不同編碼模式。系統(tǒng)控制部功能塊84還控制數(shù)據(jù)加密的使用。有關(guān)在數(shù)據(jù)傳輸中要使用的加密類型的信息從加密功能塊89傳遞到復用器/去復用器(MUX/DMUX單元)90。
在始自多媒體終端的數(shù)據(jù)傳輸期間,MUX/DMUX單元90將編碼的、同步的視頻和音頻流與從遠程信息處理設(shè)備83輸入的數(shù)據(jù)和可能的控制數(shù)據(jù)組合在一起,形成單個比特流。有關(guān)要應(yīng)用到比特流的數(shù)據(jù)加密類型(如果有的話)的信息由加密功能塊89提供,用于選擇加密模式。對應(yīng)地,正在接收復用的并且可能加密的多媒體比特流時,MUX/DMUX單元負責將該比特流解密,將其分成各多媒體組成分量,并將這些分量傳遞到適當?shù)木幗獯a器和/或終端設(shè)備,以進行解碼和再現(xiàn)。
應(yīng)注意的是,根據(jù)本發(fā)明的多媒體終端功能單元、視頻編碼器、解碼器和視頻編解碼器可實現(xiàn)為軟件或?qū)S糜布?,或兩者的組合。根據(jù)本發(fā)明的變長編碼和解碼方法特別適合以計算機程序的形式實現(xiàn),該計算機程序包括用于執(zhí)行本發(fā)明功能步驟的機器可讀指令。因此,根據(jù)本發(fā)明的變長編碼器和解碼器可實現(xiàn)為存儲在存儲媒體上并在諸如個人臺式計算機的計算機中執(zhí)行的軟件代碼。
如果多媒體終端80是移動終端,即,如果它配有無線電收發(fā)信機93,則本領(lǐng)域的技術(shù)人員可以理解,它還可以包括其它單元。在一個實施例中,它包括具有允許用戶操作多媒體終端80的顯示器和鍵盤、控制負責多媒體終端不同功能的功能塊的中央處理器如微處理器、隨機存取存儲器RAM、只讀存儲器ROM和數(shù)字攝像機。微處理器的操作指令是對應(yīng)于多媒體終端80基本功能的程序代碼,存儲在只讀存儲器ROM中,并可在需要時,例如在用戶的控制下由微處理器執(zhí)行。微處理器按照程序代碼使用無線電收發(fā)信機93形成與移動通信網(wǎng)絡(luò)的連接,從而使多媒體終端80可經(jīng)無線電路徑從移動通信網(wǎng)絡(luò)收發(fā)信息。
微處理器監(jiān)視用戶接口的狀態(tài)并控制數(shù)字攝像機。微處理器響應(yīng)用戶命令而指示攝像機將數(shù)字圖像錄制到RAM中。一旦捕獲了圖像,或者在捕獲過程期間,微處理器將圖像分割成圖像段(例如宏塊),并如上所述使用編碼器對各段執(zhí)行運動補償編碼以生成壓縮圖像序列。用戶可命令多媒體終端80在其顯示屏上顯示捕獲的圖像,或者使用無線電收機信機93將壓縮的圖像序列發(fā)送到另一多媒體終端、連接到固定線路網(wǎng)絡(luò)(PSTN)的視頻電話或其它一些電信裝置。在優(yōu)選實施例中,圖像數(shù)據(jù)的傳輸在對第一段編碼時便開始,以便收信方可以最小的延遲開始對應(yīng)的解碼過程。
雖然在特定實施例的范圍中進行了描述,但本領(lǐng)域的技術(shù)人員清楚,可以對所述內(nèi)容進行多種修改并予以不同的變化。因此,雖然已針對一個或多個優(yōu)選實施例對本發(fā)明作了示意和描述,但本領(lǐng)域的技術(shù)人員將理解,可以在不脫離如上所述本發(fā)明范圍和精神的情況下,進行某些修改或改變。
本發(fā)明的一個替代實施例基于以下觀察對系數(shù)的之字形掃描往往根據(jù)其值將系數(shù)排序,這樣,一維陣列中位置較靠前的系數(shù)比陣列中位置較靠后的系數(shù)具有更大的絕對值。因此,連續(xù)的level值表現(xiàn)出極大的相似性,即,在給定的變換系數(shù)塊內(nèi),要編碼的系數(shù)的level一般具有與先前編碼系數(shù)大致類似的幅值。此替代實施例利用了這種相似性,按照如下關(guān)系將(run,level)對編碼Index_RL=RL_Index{max_run,level,run,pre_level}(3)其中,pre_level是塊中先前編碼的level值。與先前所述的實施例相比,存在影響(run,level)的索引值分配的另一參數(shù)(即,pre_level)。
本發(fā)明的又一實施例依據(jù)的事實是連續(xù)的level值表現(xiàn)出很強的相關(guān)性。更具體地說,先前編碼的level值除了用于索引分配中,還可用于指定不同的VLC碼本以將當前符號編碼。下面的示范偽碼提供了一種方法,用于將VLC碼本指配給通過采用本發(fā)明前述實施例之一找到的(run,level)對碼號VLC_N=Nc_map[prev_level] (4)其中,prev_level是塊中先前編碼的level值,并且Nc_map是將整數(shù)值映射到不同的可用VLC代碼的陣列。
權(quán)利要求
1.一種將包括零值數(shù)據(jù)符號和非零值數(shù)據(jù)符號的數(shù)據(jù)符號集編碼的方法,它包括-通過映射操作指配碼字以表示非零值數(shù)據(jù)符號及相關(guān)聯(lián)的若干在前或在后的零值符號,其特征在于將一個碼字指配給非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號的所述映射操作依賴于所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的最大可能數(shù)量。
2.如權(quán)利要求1所述的編碼方法,其特征在于結(jié)合將非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號指配給一個碼字,通過從零值數(shù)據(jù)符號的所述最大可能數(shù)量中減去所述相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號的數(shù)量以得到零值數(shù)據(jù)符號的更新的最大可能數(shù)量,從而更新所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的所述最大可能數(shù)量,其中,借以將后續(xù)碼字指配給非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號的所述映射操作依賴于零值數(shù)據(jù)符號的所述更新的最大可能數(shù)量。
3.如權(quán)利要求1或2所述的編碼方法,其特征在于通過從所述數(shù)據(jù)符號集中數(shù)據(jù)符號的總數(shù)中減去所述數(shù)據(jù)符號集中非零值數(shù)據(jù)符號的數(shù)量,確定所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號數(shù)量的所述最大可能數(shù)量。
4.如權(quán)利要求1、2或3所述的編碼方法,其特征在于將所述數(shù)據(jù)符號集中非零值數(shù)據(jù)符號的所述數(shù)量指示發(fā)送到對應(yīng)的解碼裝置。
5.如權(quán)利要求1到4中任意一項所述的編碼方法,其特征在于根據(jù)所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的所述最大可能數(shù)量從映射表集選擇特定的映射表來執(zhí)行所述映射操作,所述映射表集的每個映射表定義數(shù)據(jù)符號到碼字的指配關(guān)系。
6.如權(quán)利要求5所述的編碼方法,其特征在于每個所述映射表定義非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號到碼字的指配關(guān)系。
7.如權(quán)利要求5所述的編碼方法,其特征在于每個所述映射表定義非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號到碼號的指配關(guān)系,每個碼號表示碼字集中的一個碼字,并可用作所述碼字集的引用,由此定義非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號到碼字的指配關(guān)系。
8.如權(quán)利要求1到7中任意一項所述的編碼方法,其特征在于所述數(shù)據(jù)符號集表示變換系數(shù)值。
9.如權(quán)利要求1到8中任意一項所述的編碼方法,其特征在于先前編碼的非零值數(shù)據(jù)符號的值用于從包含碼字的碼本集中指定一個碼本,以將當前非零值數(shù)據(jù)符號編碼。
10.如權(quán)利要求1到9中任意一項所述的編碼方法,其特征在于所述方法用于視頻編碼器中。
11.一種將表示數(shù)據(jù)符號集的碼字集解碼的方法,所述數(shù)據(jù)符號集包括零值數(shù)據(jù)符號和非零值數(shù)據(jù)符號,所述方法包括-接收所述數(shù)據(jù)符號集中表示若干非零值數(shù)據(jù)符號的指示;-接收表示非零值數(shù)據(jù)符號及相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號的碼字;-通過執(zhí)行逆映射操作,將所述碼字解碼以恢復所述非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號;其特征在于所述逆映射操作依賴于所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的最大可能數(shù)量;通過所述逆映射操作,可從所述碼字將非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號解碼。
12.如權(quán)利要求11所述的解碼方法,其特征在于結(jié)合將接收的碼字解碼以恢復由所述碼字表示的所述非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號,通過從零值數(shù)據(jù)符號的所述最大可能數(shù)量中減去所述相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號的數(shù)量以得到零值數(shù)據(jù)符號的更新的最大可能數(shù)量,從而更新所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的所述最大可能數(shù)量,所述逆映射操作依賴于零值數(shù)據(jù)符號的所述更新的最大可能數(shù)量,通過所述逆映射操作,將后續(xù)碼字解碼以恢復所述后續(xù)碼字表示的所述非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號。
13.如權(quán)利要求11或12所述的解碼方法,其特征在于通過從所述數(shù)據(jù)符號集的數(shù)據(jù)符號的總數(shù)中減去所述數(shù)據(jù)符號集中非零值數(shù)據(jù)符號的數(shù)量,確定所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的所述最大可能數(shù)量。
14.如權(quán)利要求11、12或13所述的解碼方法,其特征在于所述數(shù)據(jù)符號集中非零值數(shù)據(jù)符號的數(shù)量指示是從對應(yīng)的編碼裝置接收的。
15.如權(quán)利要求11到14中任意一項所述的解碼方法,其特征在于根據(jù)所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的所述最大可能數(shù)量從逆映射表集中選擇特定的逆映射表,從而執(zhí)行所述逆映射操作,所述逆映射表集的每個逆映射表定義碼字到數(shù)據(jù)符號的指配關(guān)系。
16.如權(quán)利要求15所述的解碼方法,其特征在于每個所述逆映射表定義碼字到非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號的指配關(guān)系。
17.如權(quán)利要求15所述的解碼方法,其特征在于對所述接收的碼字進行解碼以恢復碼號,所述碼號用作根據(jù)所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的所述最大可能數(shù)量選擇的特定逆映射表的引用,由此恢復由所述碼字表示的所述非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號。
18.如權(quán)利要求11到17中任意一項所述的解碼方法,其特征在于所述數(shù)據(jù)符號集表示變換系數(shù)值。
19.如權(quán)利要求11到18中任意一項所述的解碼方法,其特征在于先前解碼的非零值數(shù)據(jù)符號的值用于從包含表示非零值數(shù)據(jù)符號的碼字的碼本集中選擇一個碼本,以將當前碼字解碼。
20.如權(quán)利要求11到19中任意一項所述的解碼方法,其特征在于所述方法用于視頻解碼器中。
21.一種用于將包括零值數(shù)據(jù)符號和非零值數(shù)據(jù)符號的數(shù)據(jù)符號集編碼的編碼器,它包括-通過執(zhí)行映射操作指配碼字,以表示非零值數(shù)據(jù)符號及相關(guān)聯(lián)的若干在前或在后的零值符號的部件,其特征在于用于指配碼字的所述部件設(shè)置來調(diào)整所述映射操作,通過所述映射操作,根據(jù)所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的最大可能數(shù)量來指配碼字。
22.如權(quán)利要求21所述的編碼器,其特征在于包括用于結(jié)合將非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號指配給一個碼字,通過從零值數(shù)據(jù)符號的所述最大可能數(shù)量中減去所述相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號的數(shù)量以得到零值數(shù)據(jù)符號的更新的最大可能數(shù)量,從而更新所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的所述最大可能數(shù)量的部件,用于指配碼字的所述部件設(shè)置來調(diào)整所述映射操作,通過所述映射操作,根據(jù)零值數(shù)據(jù)符號的所述更新的最大可能數(shù)量來將后續(xù)碼字指配給非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號。
23.如權(quán)利要求21或22所述的編碼器,其特征在于它設(shè)置來通過從所述數(shù)據(jù)符號集的數(shù)據(jù)符號總數(shù)中減去所述數(shù)據(jù)符號集中非零值數(shù)據(jù)符號的數(shù)量,從而確定所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的所述最大可能數(shù)量。
24.如權(quán)利要求21、22或23所述的編碼器,其特征在于它包括用于將所述數(shù)據(jù)符號集中非零值數(shù)據(jù)符號數(shù)量指示發(fā)送到對應(yīng)解碼裝置的部件。
25.如權(quán)利要求21到24中任意一項所述的編碼器,其特征在于用于指配碼字的所述部件設(shè)置來根據(jù)所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的所述最大可能數(shù)量從映射表集中選擇特定的映射表,從而執(zhí)行所述映射操作,所述映射表集的每個映射表定義數(shù)據(jù)符號到碼字的指配關(guān)系。
26.如權(quán)利要求25所述的編碼器,其特征在于每個所述映射表定義非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號到碼字的指配關(guān)系。
27.如權(quán)利要求25所述的編碼器,其特征在于每個所述映射表定義非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號到碼號的指配關(guān)系,每個碼號表示碼字集中的一個碼字,其中指配碼字的所述部件用于將所述碼號用作到所述碼字集的引用,由此定義非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號到碼字的指配關(guān)系。
28.如權(quán)利要求21到27中任意一項所述的編碼器,其特征在于所述數(shù)據(jù)符號集表示變換系數(shù)值。
29.如權(quán)利要求21到28中任意一項所述的編碼器,其特征在于先前編碼的非零值數(shù)據(jù)符號的值用于從包含碼字的碼本集中指定一個碼本,以將當前非零值數(shù)據(jù)符號編碼,其中指配碼字的所述部件用于將所述先前編碼的非零值數(shù)據(jù)符號的所述值用作到所述碼本集的引用。
30.如權(quán)利要求21到29中任意一項所述的視頻編碼器。
31.一種用于將表示數(shù)據(jù)符號集的碼字集解碼的解碼器,所述數(shù)據(jù)符號集包括零值數(shù)據(jù)符號和非零值數(shù)據(jù)符號,所述解碼器包括-用于接收所述數(shù)據(jù)符號集中表示非零值數(shù)據(jù)符號數(shù)量指示的部件;-用于接收表示非零值數(shù)據(jù)符號及相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號的碼字的部件;-用于通過執(zhí)行逆映射操作,將碼字解碼以恢復所述非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號的部件;其特征在于用于將所述碼字解碼的所述部件設(shè)置來調(diào)整所述逆映射操作,通過所述逆映射操作,根據(jù)所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的最大可能數(shù)量,將非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號解碼。
32.如權(quán)利要求31所述的解碼器,其特征在于它包括用于結(jié)合將接收的碼字解碼以恢復所述碼字所表示的所述非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號,通過從零值數(shù)據(jù)符號的所述最大可能數(shù)量中減去所述相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號的數(shù)量以得到零值數(shù)據(jù)符號的更新的最大可能數(shù)量,從而更新所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的所述最大可能數(shù)量的部件;用于將碼字解碼的所述部件設(shè)置來調(diào)整所述逆映射操作,通過所述所述逆映射操作,根據(jù)零值數(shù)據(jù)符號的所述更新的最大可能數(shù)量,將后續(xù)碼字解碼以恢復所述后續(xù)碼字表示的所述非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號。
33.如權(quán)利要求31或32所述的解碼器,其特征在于它設(shè)置來通過從所述數(shù)據(jù)符號集的數(shù)據(jù)符號的總數(shù)中減去所述數(shù)據(jù)符號集中非零值數(shù)據(jù)符號的數(shù)量,確定所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的所述最大可能數(shù)量。
34.如權(quán)利要求31、32或33所述的解碼器,其特征在于它包括用于從對應(yīng)的編碼裝置接收所述數(shù)據(jù)符號集中非零值數(shù)據(jù)符號的所述數(shù)量指示的部件。
35.如權(quán)利要求31到34中任意一項所述的解碼器,其特征在于用于將碼字解碼的所述部件設(shè)置來根據(jù)所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的所述最大可能數(shù)量從逆映射表集中選擇特定的逆映射表,執(zhí)行所述逆映射操作,所述逆映射表集的每個逆映射表定義碼字到數(shù)據(jù)符號的指配關(guān)系。
36.如權(quán)利要求35所述的解碼器,其特征在于每個所述逆映射表定義碼字到非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號的指配關(guān)系。
37.如權(quán)利要求35所述的解碼器,其特征在于用于將碼字解碼的所述部件設(shè)置來將接收的碼字解碼,以恢復碼號并將所述碼號用作根據(jù)所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的所述最大可能數(shù)量而選擇的所述特定逆映射表的引用,由此恢復所述碼字表示的所述非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號。
38.如權(quán)利要求31到37中任意一項所述的解碼器,其特征在于所述數(shù)據(jù)符號集表示變換系數(shù)值。
39.如權(quán)利要求31到38中任意一項所述的解碼器,其特征在于用于將碼字解碼的所述部件設(shè)置來利用先前解碼的非零值數(shù)據(jù)符號的所述值,從包含表示非零值數(shù)據(jù)符號的碼字的碼本集中選擇一個碼本,以將當前碼字解碼。
40.如權(quán)利要求31到39中任意一項所述的解碼器。
41.一種多媒體終端,它包括如權(quán)利要求30所述的視頻編碼器。
42.一種多媒體終端,它包括如權(quán)利要求40所述的視頻解碼器。
43.如權(quán)利要求41或42所述的多媒體終端,其特征在于它包括用于形成到無線電通信網(wǎng)的無線鏈路的部件。
全文摘要
本發(fā)明涉及用于將包括零值數(shù)據(jù)符號和非零值數(shù)據(jù)符號的數(shù)據(jù)符號集編碼的方法,所述方法包括通過執(zhí)行映射操作指配碼字以表示非零值數(shù)據(jù)符號及相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號。根據(jù)本發(fā)明,將一個碼字指配給非零值數(shù)據(jù)符號及其相關(guān)聯(lián)的若干在前或在后的零值數(shù)據(jù)符號的映射操作依賴于所述數(shù)據(jù)符號集中零值數(shù)據(jù)符號的最大可能數(shù)量。本發(fā)明還描述了對應(yīng)的解碼方法及編碼和解碼裝置。
文檔編號H04N7/50GK1656690SQ03812229
公開日2005年8月17日 申請日期2003年4月2日 優(yōu)先權(quán)日2002年4月2日
發(fā)明者R·庫爾切倫, M·卡策維茨 申請人:諾基亞有限公司