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