專利名稱:在dct系數編碼模式之間切換的制作方法
技術領域:
本發(fā)明涉及數字視頻和圖像素材的編碼和解碼。更具體地,本發(fā)明涉及在視頻和圖像編碼中的變換系數的高效編碼和解碼。
背景技術:
本部分旨在提供在權利要求書中記載的本發(fā)明的背景或者環(huán)境。這里的描述可以包括能夠探求的概念,但是這些概念未必是先前已經設想或者探求的概念。因此除非這里另行指明,在本部分中描述的內容并非是對于在本申請中的說明書和權利要求書的現(xiàn)有技術、也并不因為被包含在本節(jié)中而被承認為現(xiàn)有技術。視頻編碼器將輸入視頻變換成適合于存儲和/或傳輸的壓縮表示。視頻解碼器將壓縮的視頻表示解壓縮回可查看形式。通常,編碼器丟棄原始視頻序列中的某些信息以便用更緊湊形式(即,以更低比特率)表示視頻。傳統(tǒng)的混合視頻編碼解碼器(例如ITU-T H. 263和H. 264)在兩個階段中對視頻信息進行編碼。在第一階段中,預測像素的“塊”或者某個畫面區(qū)域中的像素值。例如可以通過運動補償機制來預測這些像素值,這些機制涉及發(fā)現(xiàn)和指示在先前編碼的視頻幀之一中的與編碼的塊接近對應的區(qū)域。備選地,可以經由空間機制來預測像素值,這些機制涉及使用塊周圍的像素值以估計塊內的像素值。第二階段涉及對預測誤差或者預測殘差(即, 預測的像素塊與原始像素塊之間的差)進行編碼。這通常通過使用指定變換(例如,離散余弦變換(DCT)或者其變體)對像素值中的差進行變換、量化變換系數以及對量化系數進行熵編碼來實現(xiàn)。通過改變量化過程的保真度,編碼器可以控制像素表示的精確度(即,畫面質量)與所得的編碼視頻表示的大小(即,文件大小或者傳輸比特率)之間的平衡。應當注意,關于視頻和/或圖像壓縮,有可能變換實際圖像和/或視頻幀的塊而不應用預測。熵編碼機制(諸如霍夫曼編碼、算術編碼)利用表示量化變換系數的符號值的統(tǒng)計概率以向概率更高的信號分配更短的碼字。另外,為了利用變換系數之間的相關性,可以對成對變換系數進行熵編碼。附加地,自適應熵編碼機制通常在廣泛的圖像和視頻內容范圍內實現(xiàn)高效壓縮。變換系數的高效編碼是視頻和圖像編碼的編碼解碼器實現(xiàn)更高壓縮性能的重要部分。
發(fā)明內容
根據一個實施方式,對塊的最后非零系數的位置和值進行編碼,此后,對下一系數分組(例如,(游程(rim),級別)對)進行編碼。如果大于1的幅值(不包括最后系數) 的累積和小于預定的定值,并且塊內的最后非零系數的位置小于某個位置閾值,則對下一對進行編碼。重復這些過程直到大于1的幅值(不包括最后系數)的累積和不再少于預定的定值和/或塊內的最新非零系數的位置不再小于該某個位置閾值。當這發(fā)生時,在級別模式中對其余系數進行編碼。根據另一實施方式,對塊的最后非零系數的位置和值進行編碼,此后,對下一系數分組(例如,(游程,級別)對)進行編碼。如果當前級別的幅值大于1,則在比特流中表明代碼是否應當在游程模式中繼續(xù)編碼或者編碼器是否將向級別模式切換。如果表明游程模式,則該過程繼續(xù)并且對下一對進行編碼。否則,在級別模式中對其余系數進行編碼。在此描述的各種實施方式通過更精確地限定從一個編碼模式向另一編碼模式的切換應當發(fā)生的位置,來改進用于對變換系數進行編碼的先前解決方案。這繼而提高編碼效率。用信令顯式發(fā)送切換位置通過向編碼器直接通知在何處切換編碼模式來進一步提高編碼效率。本發(fā)明的這些和其它優(yōu)點以及特征連同其組織和操作方式將根據在與附圖結合時的以下詳細描述而變得明顯,其中,相同元件在以下描述的若干幅圖中通篇具有相同標號。
通過參照附圖來描述各種實施方式中的實施方式,其中圖1是傳統(tǒng)視頻編碼器的框圖;圖2是傳統(tǒng)視頻解碼器的框圖;圖3圖示了示例性變換和系數編碼順序;圖4是圖示了根據一個實施方式的用于DCT系數的編碼而執(zhí)行的各種過程的流程圖;圖5是圖示了根據另一實施方式的用于DCT系數的編碼而執(zhí)行的各種過程的流程圖;圖6是用于與本發(fā)明的各種實施方式一起使用的通用多媒體通信系統(tǒng)的表示;圖7是可以與本發(fā)明的各種實施方式的實現(xiàn)結合使用的電子設備的透視圖;以及圖8是可以包括在圖7的電子設備中的電路系統(tǒng)的示意圖。
具體實施例方式各種實施方式針對一種用于在視頻和/或圖像編碼中對量化變換系數(例如,DCT 系數)塊進行熵編碼時提高效率的方法。以游程模式編碼和級別模式編碼這兩個單獨編碼模式對量化系數進行編碼。還提供了用于在這兩個模式之間進行切換的“規(guī)則”,并且通過允許熵編碼器基于上下文信息和規(guī)則自適應地判定何時在兩個編碼模式之間切換和/或通過用信令顯式發(fā)送切換位置(例如,向熵編碼器顯式通知它是否應當切換編碼模式)來實現(xiàn)各種實施方式。圖1是傳統(tǒng)視頻編碼器的框圖。更具體地,圖1示出了待編碼的圖像100如何經歷像素預測102以及預測誤差編碼103。對于像素預測102,圖像100經歷幀間預測106過程、幀內預測108過程或者兩者。模式選擇110選擇幀間預測和幀內預測之一以獲得預測塊112。然后從原始圖像100減去預測塊112從而獲得也被稱為預測殘差120的預測誤差。 在幀內預測108中,存儲在幀存儲器114中的相同圖像100的先前重建部分被用來預測當前塊。在幀間預測106中,存儲在幀存儲器114中的先前編碼的圖像被用來預測當前塊。在預測誤差編碼103中,預測誤差/殘差120最初經歷變換操作122。然后在IM量化所得變換系數。
在1 對量化的變換系數IM進行熵編碼。也就是說,向熵編碼1 傳遞對圖像塊112的預測誤差和預測表示進行描述的數據(例如,運動矢量、模式信息和量化的變換系數)。編碼器通常包括逆變換130和逆量化128以在本地獲得編碼圖像的重建版本。首先, 在1 逆量化所量化的系數,然后應用逆變換操作130以獲得預測誤差的編碼版本、然后獲得解碼版本。然后,將結果與預測112相加以獲得圖像塊的編碼和解碼版本。重建的圖像塊繼而可以經歷濾波操作116以創(chuàng)建向參考幀存儲器114發(fā)送的最終重建圖像140。一旦處理了所有圖像塊,就可以應用濾波。圖2是傳統(tǒng)視頻解碼器的框圖。如圖2中所示,在熵解碼200之后是預測誤差解碼202和像素預測204兩者。在預測誤差解碼202中使用逆量化206和逆變換208,從而最終獲得重建的預測誤差信號210。對于像素預測204,在212發(fā)生幀內預測或者幀間預測之一,以創(chuàng)建圖像塊214的預測表示。圖像塊214的預測表示與重建的預測誤差信號210被結合用來創(chuàng)建初步重建圖像216,初步重建圖像216轉而可以被用于在212的幀間預測或者幀內預測??梢栽谥亟總€塊之后或者一旦處理了所有圖像塊就應用濾波218。可以輸出濾波圖像作為最終重建圖像220,或者可以在參考幀存儲器222中存儲濾波圖像從而使其可用于預測212。解碼器通過應用與由解碼器使用的預測機制類似的預測機制來重建輸出視頻,以便形成像素塊的預測表示(使用由編碼器創(chuàng)建并且按壓縮表示來存儲的運動或者空間信息)。附加地,解碼器利用預測誤差解碼(預測誤差編碼的逆操作,該操作在空間像素域中恢復量化的預測誤差信號)。在應用預測和預測誤差解碼過程之后,解碼器將預測和預測誤差信號(即,像素值)求和,以形成輸出視頻幀。解碼器(和編碼器)也可以應用附加濾波過程以便在傳遞輸出視頻以供顯示和/或存儲輸出視頻作為用于視頻序列中的即將來臨的幀的預測參考之前提高輸出視頻的質量。在傳統(tǒng)視頻編碼解碼器中,與每個運動補償圖像塊關聯(lián)的運動矢量指示運動信息。這些運動矢量中的每個表示待編碼(在編碼器側)或者待解碼(在解碼器側)的畫面中的圖像塊相對于先前編碼或者解碼的畫面之一中的預測源塊而言的位移。為了高效地表示運動矢量,通常關于塊具體預測運動矢量對運動矢量進行區(qū)別編碼。在傳統(tǒng)視頻編碼解碼器中,例如通過計算相鄰塊的編碼或者解碼的運動矢量的中值來以預定義方式創(chuàng)建預測運動矢量。圖3圖示了變換系數300的8x8塊。通過變換像素或者預測殘差來獲得8x8個變換系數。圖3圖示了變換系數300的8x8塊的Z字形掃描。變換系數的排序可以始于塊的左上角(具有最低頻率系數)并且例如以Z字形方式向塊的右下角(具有最高頻率系數) 進行。繼而,可以(按照Z字形圖案)掃描二維系數陣列。繼而,可以按逆序(例如,最后系數具有的索引值為0,從最后一個到第一個)對這些系數進行編碼。應當注意,其它變換類型、變換大小和/或掃描順序以及系數的交織是可能的。在Z字形掃描之后,每個非零系數由(游程,級別)對表示,其中游程值表明連續(xù)零值的數目而級別值表明非零系數的值。根據各種實施方式,假設在待編碼的塊中存在至少一個非零系數。通常按照最后一個到第一個系數的順序對系數進行編碼,其中首先對更高頻率系數進行編碼。然而,按照任何其它順序的編碼是可能的。如果在編碼過程期間的任何點在塊中都不再有待編碼的系數,那么如果需要的話,用信令發(fā)送塊結束通知并且停止針對當前塊的編碼。
—種熵編碼方法,涉及使用兩個不同模式來對變換系數自適應地進行編碼。在被稱為“游程”模式的第一模式中,將系數編碼為(游程,級別)對。也就是說,“游程-級別” 指代非零級別前的零的游程長度,其中變換系數的量化通常導致將更高階系數量化為0。如果下一非零系數具有大于1的幅值,則編碼解碼器切換到“級別”模式。在級別模式中,將剩余系數依次編碼為單值、即在這一模式中未表明游程值。例如,8x8塊的量化的DCT系數可以具有以下值
2 0 0 1 0 0 0 0將量化的DCT系數排序成如圖3中所示1維表從而獲得以下系數列表。20 -2 01010010100000 -1 0—0從最后非零系數開始按逆序對經排序的系數進行編碼。首先,對最后非零系數的位置和值(-1)進行編碼。繼而,在游程模式中對接下來的系數進行編碼從而獲得以下編碼 (游程,級別)對的序列。
00000 I (游程=5’ 級另,J=I)
01‘(游程=1,級別=1)
001(游程=2,級另丨J=I) Oi (游程=1,級別=1)
0-2(游程=1,級別=-2)由于最后的編碼的系數具有大于1的幅值,所以編碼器切換到級別模式。在級別模式中,每次一個地對其余系數(0和2、進行編碼,此后塊編碼完成。即使在游程模式中繼續(xù)將是有益的(例如,當在游程模式中繼續(xù)時編碼解碼器產生的比特數將更少),但是這樣的編碼方案仍然經常導致向級別模式切換。這是因為游程編碼基于關于相同數字的游程的編碼信息而不是對數字本身進行編碼。在模式之間進行切換可以發(fā)生在固定位置或者并非隱含確定的任何點。在一個實施方式中,對塊的最后非零系數的位置和值進行編碼。如果最后系數的幅值大于1,則該過程繼續(xù)進行級別編碼。否則,對下一(游程,級別)對進行編碼。如果當前級別的幅值等于1,則編碼過程返回先前操作并且對下一對進行編碼。最后,在級別模式中對其余系數進行編碼。圖4圖示了根據一個實施方式的又一示例性編碼方法,該方法獲得比上述編碼方法的可能效率更大的效率。在400,根據一個實施方式的編碼操作開始。在410,對塊的最后非零系數的位置和值進行編碼。應當注意,未根據游程或者級別編碼模式對塊的最后非零系數的這一特定編碼進行編碼。在420,確定是否存在待編碼的其余非零系數。如果不再有待編碼的系數,則在425對最后(游程)或者塊末尾進行編碼,并且在480停止操作。在 430,如果存在更多系數,則對接下來的系數(例如(游程,級別)對)進行編碼。在440,確定當前級別的幅值是否等于1,并且如果是的話,則操作返回420并且在430對下一對進行編碼。應當注意,可以在440和后續(xù)過程使用大于“1”的不同最小幅值閾值。如果當前級別的幅值不等于1,則在450,針對幅值大于1的那些系數確定幅值(不包括最后系數的幅值)的累積和。在460,確定大于1的幅值(不包括最后系數)的累積和是否小于累積閾值L (例如,3)以及塊內的最后非零系數的位置是否小于K,并且如果是的話,則操作通過返回420并且在430對下一對進行編碼來重復其自身。如果在460,確定大于1的幅值(不包括最后系數)的累積和不小于累積閾值L和/或塊內的最后非零系數的位置不小于K, 則在470在級別模式中對其余系數進行編碼。一旦不再有系數留待編碼,則在480停止操作。應當注意,在460的確定(先前編碼的非零系數的幅值的累積和是否大于最小幅值閾值)可以通過幅值大于2的當前級別來滿足。附加地,至少可以通過針對先前編碼的非零系數之一的任何幅值滿足最大出現(xiàn)次數來滿足該確定。例如,如果出現(xiàn)兩個系數(每個系數具有等于2的幅值),則所得的大于1的幅值(不包括最后系數)的累積和將超過累積閾值3。也就是說,概括來說,在編碼模式之間的切換可以基于幅值的累積和以及位置或者幅值的出現(xiàn)以及位置,其中針對每個幅值級別個別地限定最大出現(xiàn)次數。各種實施方式利用多個系數以判定是否在游程與級別編碼模式之間進行切換。另外,各種實施方式把系數的位置視為切換標準的一部分。應當注意,根據經驗測試來選擇累積閾值3。然而,也可以使用其它值,其中例如使累積閾值L依賴于量化參數(QP)值以反映不同質量級別的變化統(tǒng)計。類似地,位置閾值K的值可以變化(例如,基于在對塊進行編碼時使用的QP、塊或者畫面的編碼模式)。另外,雖然在此描述的兩個模式為游程模式和級別模式,但是也可以使用任何兩個編碼模式。如上所述,各種實施方式允許基于指示是否應當切換模式的顯式信號來自適應地判定何時從例如游程模式向級別模式切換。圖5圖示了根據另一實施方式執(zhí)行的過程,其中通過在比特流中發(fā)送如下語法元素來用信令顯式發(fā)送切換位置,該語法元素指示編碼器應當在游程模式中繼續(xù)還是切換到級別模式。在500,編碼操作開始。在510,對塊的最后非零系數的位置和值進行編碼。應當注意,未根據游程或者級別編碼模式對塊的最后非零系數的這一特定編碼進行編碼。在520,確定是否有待編碼的其余非零系數。如果不再有待編碼的系數,則在525對最后(游程)或者塊末尾進行編碼,并且在570停止操作。在530, 如果存在更多系數,則對下一系數分組(例如(游程,級別)對)進行編碼。在M0,確定當前級別的幅值是否等于1,并且如果是的話,則操作返回520并且在530對下一對進行編碼??梢栽?40和后續(xù)過程使用不同于“1”的幅值閾值。如果當前級別的幅值不等于1,則在陽0,確定當前級別的幅值是否大于1。如果當前級別的幅值大于1,則在比特流中指示編碼器應當在游程模式中繼續(xù)還是切換到級別模式。如果指示游程模式,則操作返回530并且對下一對進行編碼。否則,在560,在級別模式中對其余剩余系數進行編碼。一旦不再有系數留待編碼,則在570停止操作。存在根據各種實施方式的對比特流中的切換指示進行編碼的不同方法。例如,可以將指示實現(xiàn)為存儲在比特流中的單個比特。備選地,該指示可以與一個或者多個其它編碼元素組合。在此描述的各種實施方式通過更精確地限定從一個編碼模式向另一編碼模式的切換應當發(fā)生的位置來改進用于對變換系數進行編碼的先前解決方案。這轉而提高編碼效率。用信令顯式發(fā)送切換位置通過向編碼器直接通知在何處切換編碼模式來進一步提高編碼效率。圖6是在其中可以實現(xiàn)各種實施方式的通用多媒體通信系統(tǒng)的圖形表示。如圖6 中所示,數據源600以模擬、未壓縮數字或者壓縮數字格式或者這些格式的任何組合提供源信號。應當注意,可以從位于實際上任何類型的網絡內的遠程設備直接或者間接接收待解碼的比特流。附加地,可以從本地硬件或者軟件接收比特流。編碼器610可以能夠對多于一個的媒體類型(諸如音頻和視頻)進行編碼,或者可能需要多于一個的解碼器610以對源信號的不同媒體類型進行編碼。編碼器610也可以獲得合成產生的輸入、諸如圖形和文本,或者它可以能夠產生合成媒體的編碼比特流。在下文中,僅考慮一個媒體類型的一個編碼媒體比特流的處理,以簡化描述。然而,應當注意,實時廣播服務通常包括若干流(通常至少一個音頻、視頻和文本字幕流)。也應當注意,系統(tǒng)可以包括多個編碼器,但是在圖6 中僅描繪了一個編碼器610以在不失一般性的情況下簡化描述。還應當理解,雖然在此包含的文本和示例可以具體描述編碼過程,但是本領域技術人員應當理解,相同概念和原理也適用于對應解碼過程并且反之亦然。向儲存器620傳送編碼比特流。儲存器620可以包括用于存儲編碼媒體比特流的任何類型的海量存儲器。儲存器620中的編碼媒體比特流的格式可以是基本自含式比特流格式,或者可以向容器文件中封裝一個或者多個編碼媒體比特流。某些系統(tǒng)“現(xiàn)場”操作, 即,省略儲存器并且從編碼器610向發(fā)送器630直接傳送編碼媒體比特流。繼而,按照需要向也被稱為服務器的發(fā)送器630傳送編碼媒體比特流。在傳輸中使用的格式可以是基本自含式比特流格式、分組流格式,或者可以封裝到容器文件中的一個或者多個編碼媒體比特流。編碼器610、儲存器620和服務器630可以駐留在相同物理設備中,或者它們可以被包括在不同設備中。編碼器610和服務器630可以用現(xiàn)場實時內容操作,在這種情況下編碼比特流通常不是永久存儲,而是短時間段地緩存在內容編碼器610中和/或服務器630中, 以平滑掉處理延遲、傳送延遲和編碼媒體比特速率的變化。服務器630使用通信協(xié)議棧來發(fā)送編碼媒體比特流。棧可以包括但不限于實時傳送協(xié)議(RTP)、用戶數據報協(xié)議(UDP)和網際協(xié)議(IP)。當通信協(xié)議棧是面向分組的時,服務器630將編碼媒體比特流封裝成分組。例如,當使用RTP時,服務器630根據RTP凈荷格式將編碼媒體比特流封裝成RTP分組。通常,每種媒體類型具有專用RTP凈荷格式。同樣應當注意,系統(tǒng)可以包含多于一個的服務器630,但是為了簡潔起見,以下描述僅考慮一個服務器630。服務器630可以通過通信網絡連接到網關640或者可以不通過通信網絡連接到網關640。網關640可以執(zhí)行不同類型的功能,諸如將根據一個通信協(xié)議棧的分組流轉譯成另一通信協(xié)議棧、對數據流進行合并和分叉,以及根據下行鏈路和/或接收器能力操控數據流(諸如根據主導的下行鏈路網絡條件控制轉發(fā)流的比特率)。網關640的示例包括MCU、 在電路切換視頻電話與分組切換視頻電話之間的網關、蜂窩一鍵通(PoC)服務器、在手持式數字視頻廣播(DVB-H)系統(tǒng)中的IP封裝器,或者向家庭無線網絡本地轉發(fā)廣播傳輸的機頂盒。當使用RTP時,網關640被稱為RTP混合器或者RTP翻譯器并且通常充當RTP連接的端點。系統(tǒng)包括通常能夠接收所傳輸的信號、將該信號解調和解封裝成編碼媒體比特流的一個或者多個接收器650。將編碼媒體比特流傳送到記錄儲存器655。記錄儲存器655 可以包括用于存儲編碼媒體比特流的任何類型的海量存儲器。備選地或者附加地,記錄儲存器655可以包括計算存儲器、諸如隨機存取存儲器。記錄儲存器655中的編碼媒體比特流的格式可以是基本自含式比特流格式,或者可以將一個或者多個編碼媒體比特流封裝到容器文件中。如果存在相互關聯(lián)的多個編碼媒體比特流,諸如音頻流和視頻流,則通常使用容器文件并且接收器650包括或者附接到根據輸入流生成容器文件的容器文件生成器。某些系統(tǒng)“現(xiàn)場”操作,即,省略記錄儲存器655并且從接收器650直接向解碼器660傳送編碼媒體比特流。在某些系統(tǒng)中,在記錄儲存器655中僅維持記錄流的最近部分(例如,記錄流的最近10分鐘選錄),而從記錄儲存器655丟棄任何更早的記錄數據。從記錄儲存器655向解碼器660傳送編碼媒體比特流。如果存在相互關聯(lián)并且被封裝到容器文件中的多個編碼媒體比特流、諸如音頻流和視頻流,則使用文件解析器(圖中未示出)以解封裝來自容器文件的每個編碼媒體比特流。記錄儲存器655或者解碼器 660可以包括文件解析器,或者文件解析器附接到記錄儲存器655或者解碼器660。編碼媒體比特流通常由解碼器660進一步處理,解碼器660的輸出是一個或者多個未壓縮媒體流。最后,渲染器670可以例如用揚聲器或者顯示器再現(xiàn)未壓縮媒體流。接收器650、記錄儲存器655、解碼器660和渲染器670可以駐留在相同物理設備中,或者它們可以被包括在在不同設備中。根據各種實施方式的發(fā)送器630可以被配置用于出于多個原因而選擇傳輸層,該原因諸如響應于接收器650的請求或者供比特流在其上傳送的網絡的主導條件。來自接收器的請求可以是例如針對用于顯示的層的變化或者與先前渲染設備相比具有不同能力的渲染設備的變化的請求。圖7和圖8示出了可以供本發(fā)明在其中實現(xiàn)的一個有代表性的電子設備12。然而,應當理解,本發(fā)明并非意在被限制到一個特定設備類型。圖7和圖8的電子設備12包括外殼30、采用液晶顯示器形式的顯示器32、小鍵盤34、麥克風36、耳機38、電池40、紅外線端口 42、天線44、根據一個實施方式的采用UICC形式的智能卡46、讀卡器48、無線電接口電路系統(tǒng)52、編碼解碼器電路系統(tǒng)M、控制器56和存儲器58。個別的電路和單元都是本領域中公知的類型。在方法步驟或者過程的一般上下文中描述在此描述的各種實施方式,這些方法步驟或者過程在一個實施方式中可以由體現(xiàn)為計算機可讀介質的計算機程序產品實現(xiàn),該計算機程序產品包括由聯(lián)網環(huán)境中的計算機執(zhí)行的計算機可執(zhí)行指令,諸如程序代碼。計算機可讀介質可以包括可移除和不可移除存儲設備,其包括但不限于只讀存儲器(ROM)、隨機存取存儲器(RAM)、光盤(⑶)、數字多功能盤(DVD)等。一般而言,程序模塊可以包括執(zhí)行特定任務或者實現(xiàn)特定抽象數據類型的例程、程序、對象、組件、數據結構等。計算機可執(zhí)行指令、關聯(lián)數據結構以及程序模塊代表用于執(zhí)行在此公開的方法步驟的程序代碼的示例。這樣的可執(zhí)行指令或者關聯(lián)數據結構的特定序列代表用于實現(xiàn)在這樣的步驟或者過程中描述的功能的對應動作的示例。
可以用軟件、硬件、應用邏輯或者軟件、硬件和應用邏輯的組合實現(xiàn)本發(fā)明的實施方式。軟件、應用邏輯和/或硬件可以駐留在例如芯片組、移動設備、臺式計算機、膝上型計算機或者服務器上。可以用標準編程技術實現(xiàn)各種實施方式的軟件和web實現(xiàn),這些技術用基于規(guī)則的邏輯和其它邏輯實現(xiàn)各種數據庫搜索步驟或者過程、相關步驟或者過程、比較步驟或者過程和判定步驟或者過程。各種實施方式也可以完全或者部分地在網元或者模塊內實現(xiàn)。應當注意,如在此和在接下來的權利要求中使用的術語“部件”和“組件”旨在包括使用一行或者多行軟件代碼的實現(xiàn)和/或硬件實現(xiàn)和/或用于接收手工輸入的設備。盡管在權利要求中的限制在其中未使用術語“裝置”的情況下不應被解釋為構成 “裝置加功能”的限制,但是在前述示例中描述的個別和具體結構應當被理解為構成用于執(zhí)行在接下來的權利要求中描述的具體功能的裝置的有代表性的結構。附加地,在之前描述中對術語“步驟”的使用不應當被用來將權利要求中的任何具體限制解釋為構成“步驟加功能”這樣的限制。在這里描述或者以別的方式提及的包括授權專利、專利申請和非專利出版物的個別參考文獻這一程度上,這樣的參考文獻并非意在也不應當被解釋為限制接下來的權利要求的范圍。已經出于圖示和描述的目的呈現(xiàn)了實施方式的上述描述。上述描述并非意在窮舉本發(fā)明或者使本發(fā)明的實施方式限于公開的精確形式,并且根據上述教導有可能進行修改和變化或者可以根據各種實施方式的實踐來獲悉修改和變化。選擇和描述在此討論的實施方式以便說明各種實施方式的原理和性質及其實際應用,以支持本領域技術人員在各種實施方式中和用如與設想的特定用途相適應的各種修改來利用本發(fā)明。可以在方法、裝置、模塊、系統(tǒng)和計算機程序產品的所有可能組合中組合在此描述的實施方式的特征。
權利要求
1.一種方法,包括對塊的最后非零系數的位置和值進行編碼;當至少一個系數的幅值小于或者等于閾值時,根據第一編碼模式對所述至少一個系數進行編碼;以及確定大于所述閾值的先前編碼的非零系數的幅值的累積和;以及其中,當所述累積和小于累積閾值并且所述最后非零系數的所述位置小于位置閾值時根據所述第一編碼模式對后續(xù)系數進行編碼; 否則,根據第二編碼模式對后續(xù)系數進行編碼。
2.根據權利要求1所述的方法,其中所述第一編碼模式包括配置用于對所述至少一個成組系數編碼的游程編碼模式,并且其中所述組包括游程和級別對。
3.根據權利要求1所述的方法,其中所述第二編碼模式包括配置用于每次一個地對系數進行編碼的級別編碼模式。
4.根據權利要求1所述的方法,其中所述累積閾值至少依賴于在對所述塊進行編碼時使用的量化參數。
5.根據權利要求1所述的方法,其中當針對所述先前編碼的非零系數之一的任何可能的幅值至少滿足最大出現(xiàn)閾值時,大于所述閾值的所述先前編碼的非零系數的幅值的所述累積和大于所述累積閾值。
6.一種計算機可讀介質,具有存儲在其上的計算機程序,所述計算機程序包括可操作用于使處理器執(zhí)行根據權利要求1至5中所述的任一方法的指令。
7.一種裝置,包括處理器,所述處理器配置用于 對塊的最后非零系數的位置和值進行編碼;當至少一個系數的幅值小于或者等于閾值時,根據第一編碼模式對所述至少一個系數進行編碼;以及確定大于所述閾值的先前編碼的非零系數的幅值的累積和;以及其中當所述累積和小于累積閾值并且所述最后非零系數的所述位置小于位置閾值時根據所述第一編碼模式對后續(xù)系數進行編碼; 否則,根據第二編碼模式對后續(xù)系數進行編碼。
8.根據權利要求7所述的裝置,其中所述第一編碼模式包括配置用于對所述至少一個成組系數編碼的游程編碼模式,并且其中所述組包括游程和級別對。
9.根據權利要求7所述的裝置,其中所述第二編碼模式包括配置用于每次一個地對系數進行編碼的級別編碼模式。
10.根據權利要求7所述的裝置,其中所述累積閾值至少依賴于在對所述塊進行編碼時使用的量化參數。
11.根據權利要求7所述的裝置,其中當針對所述先前編碼的非零系數之一的任何可能的幅值至少滿足最大出現(xiàn)閾值時,大于所述閾值的所述先前編碼的非零系數的幅值的所述累積和大于所述累積閾值。
12.一種方法,包括對編碼比特流中的塊的最后非零系數的位置和值進行解碼;根據第一編碼模式和第二編碼模式的至少一個編碼模式從所述編碼比特流解碼至少一個量化變換系數,其中所述解碼產生以下之一根據所述第一編碼模式來編碼的量化系數組,其中大于閾值的先前編碼的非零系數的幅值的累積和小于累積閾值,并且最后非零系數的位置小于位置閾值;以及根據所述第二編碼模式來編碼的量化系數,其中大于所述閾值的先前編碼的非零系數的幅值的所述累積和之一是等于或者大于所述累積閾值的值,并且所述最后非零系數的所述位置是等于或者大于所述位置閾值的值。
13.根據權利要求12所述的方法,其中所述第一編碼模式包括配置用于對成組系數編碼的游程編碼模式,并且其中所述組包括游程和級別對。
14.根據權利要求12所述的方法,其中所述第二編碼模式包括配置用于每次一個地對系數進行編碼的級別編碼模式。
15.根據權利要求12所述的方法,其中所述累積閾值依賴于在對所述塊進行編碼時使用的量化參數。
16.根據權利要求12所述的方法,其中當針對所述先前編碼的非零系數之一的任何可能的幅值至少滿足最大出現(xiàn)閾值時,大于所述閾值的所述先前編碼的非零系數的幅值的所述累積和大于所述累積閾值。
17.一種計算機可讀介質,具有存儲在其上的計算機程序,所述計算機程序包括可操作用于使處理器執(zhí)行根據權利要求12至16中所述的任一方法的指令。
18.一種裝置,包括處理器,所述處理器配置成對編碼比特流中的塊的最后非零系數的位置和值進行解碼;根據第一編碼模式和第二編碼模式的至少一個編碼模式從所述編碼比特流解碼至少一個量化變換系數,其中所述解碼產生以下之一根據所述第一編碼模式來編碼的量化系數組,其中大于閾值的先前編碼的非零系數的幅值的累積和小于累積閾值,并且最后非零系數的位置小于位置閾值;以及根據所述第二編碼模式來編碼的量化系數,其中大于所述閾值的先前編碼的非零系數的幅值的所述累積和之一是等于或者大于所述累積閾值的值,并且所述最后非零系數的所述位置是等于或者大于所述位置閾值的值;以及輸出包括所述量化系數組和所述量化系數的至少一項的量化系數塊。
19.根據權利要求18所述的裝置,其中所述第一編碼模式包括配置用于對成組系數編碼的游程編碼模式,并且其中所述組包括游程和級別對。
20.根據權利要求18所述的裝置,其中所述第二編碼模式包括配置用于每次一個地對系數進行編碼的級別編碼模式。
21.根據權利要求18所述的裝置,其中所述累積閾值依賴于在對所述塊進行編碼時使用的量化參數。
22.根據權利要求18所述的裝置,其中當針對所述先前編碼的非零系數之一的任何可能的幅值至少滿足最大出現(xiàn)閾值時,大于所述閾值的所述先前編碼的非零系數的幅值的所述累積和大于所述累積閾值。
全文摘要
提供一種用于在視頻編碼中對量化變換系數塊進行熵編碼時提高效率的系統(tǒng)和方法。在兩個單獨編碼模式(即游程模式到級別模式編碼模式)中對量化系數進行編碼。提供用于在這兩個模式之間進行切換的“規(guī)則”,并且通過允許熵編碼器基于上下文信息、規(guī)則自適應地判定何時在兩個編碼模式之間進行切換和/或通過用信令顯式發(fā)送切換位置(例如,它是否應當切換編碼模式)來實現(xiàn)各種實施方式。
文檔編號G06T9/00GK102273080SQ200980154196
公開日2011年12月7日 申請日期2009年11月23日 優(yōu)先權日2008年12月3日
發(fā)明者A·阿拉皮羅, J·萊尼瑪, K·雨居爾 申請人:諾基亞公司