亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

重新排序的變換系數(shù)的多級(jí)表示的制作方法

文檔序號(hào):7734075閱讀:201來(lái)源:國(guó)知局
專利名稱:重新排序的變換系數(shù)的多級(jí)表示的制作方法
重新排序的變換系數(shù)的多級(jí)表示背景在編碼諸如視頻幀或靜止圖像等圖片時(shí),編碼器通常將虛擬數(shù)據(jù)拆分成多塊樣 本值。編碼器執(zhí)行諸如離散系數(shù)變換(DCT)等頻率變換來(lái)將該塊樣本值轉(zhuǎn)換成一塊變換 系數(shù)。按慣例在一個(gè)塊的左上方示出的變換系數(shù)一般稱為DC系數(shù),并且其他系數(shù)一般 稱為AC系數(shù)。對(duì)于樣本值的大多數(shù)塊,頻率變換往往將非零變換系數(shù)值組織到左上方, 那里是該塊變換系數(shù)的較低頻率部分。在頻率變換之后,編碼器量化變換系數(shù)值。量化一般減少DC和AC系數(shù)的可能 值的數(shù)量。這一般將量化值的分辨率以及保真度降低到原始系數(shù)值,但它使后續(xù)熵編碼 更加高效。在較高頻率系數(shù)具有被量化成零的低振幅時(shí),量化往往還“移除”較高頻率 系數(shù)(一般被組織在該塊的右下側(cè))。

圖1示出量化之后的變換系數(shù)的8X8的塊(100)的一個(gè)示例。在該示例性塊 (100)中,該塊左上角中的值25是DC系數(shù),而另63個(gè)值是AC系數(shù)。雖然該塊(100) 中的最高振幅系數(shù)是左上角的低頻系數(shù),但沿著右側(cè),該塊包括較高頻率的一簇非零系 數(shù)值。在量化了變換系數(shù)后,編碼器對(duì)經(jīng)量化的變換系數(shù)進(jìn)行熵編碼。一種對(duì)一塊變 換系數(shù)進(jìn)行編碼的常見(jiàn)方法通過(guò)使用“ζ字形”掃描次序(200)對(duì)該塊進(jìn)行重新排序來(lái)開(kāi) 始,如圖2所示。在該方法中,編碼器根據(jù)該掃描次序(200)將來(lái)自二維陣列的變換系 數(shù)的值映射成一維串。掃描次序200在塊(100)的帶有DC系數(shù)的左上角開(kāi)始,遍歷該 塊(100)的位置1和2處的AC系數(shù),遍歷位置3、4和5處的AC系數(shù),以此類推。該 掃描根據(jù)掃描次序(200)來(lái)在該塊(100)上跨對(duì)角線地繼續(xù),在該塊(100)的具有最高頻 率AC系數(shù)的右下角位置63處結(jié)束。因?yàn)榱炕僮魍ǔ⑤^低值、較高頻系數(shù)的顯著一 部分量化成零,同時(shí)保留較高值、較低頻系數(shù)的非零值,所以ζ字形掃描重新排序通常造 成剩余非零變換系數(shù)中的大多數(shù)都靠近一維串的開(kāi)頭且大量零值在該串的結(jié)尾。圖2示出將掃描次序(200)應(yīng)用于該塊(100)變換系數(shù)所得到的示例性一維串 (250)。在該示例中,一維串(250)以與該塊(100)的DC系數(shù)相對(duì)應(yīng)的值25開(kāi)始。掃 描次序隨后讀取值12,此后是兩個(gè)0,值-52,以此類推。符號(hào)“EOB”表示“塊結(jié) 束”并指示該塊中的所有其余值都是0。編碼器隨后使用行程長(zhǎng)度編碼或行程級(jí)別編碼來(lái)對(duì)系數(shù)值的該一維向量進(jìn)行熵 編碼。在行程級(jí)別編碼中,編碼器遍歷該一維向量,將連續(xù)零值的每一行程編碼成行程 計(jì)數(shù)并將每一非零值編碼成一個(gè)級(jí)別。對(duì)于簡(jiǎn)單編碼,編碼器向行程計(jì)數(shù)和級(jí)別值分配 如Huffman碼的可變長(zhǎng)度碼。簡(jiǎn)單編碼的一個(gè)問(wèn)題是行程計(jì)數(shù)可以從0到64變化,只對(duì)于行程計(jì)數(shù)就需要65 個(gè)代碼的字母表。如果編碼器將行程計(jì)數(shù)與后續(xù)非零級(jí)別值聯(lián)合編碼(以利用行程計(jì)數(shù) 和級(jí)別值之間的相關(guān)),則行程計(jì)數(shù)-級(jí)別字母表的大小更大,這增加了熵編碼的復(fù)雜度 (例如,由于碼表大小和查找操作)。將轉(zhuǎn)義碼用于較不頻繁的組合幫助控制碼表大小, 但可降低編碼效率。
在編碼器對(duì)各行程級(jí)別組合使用同一可能的代碼值而不管哪些AC系數(shù)被編碼的 情況下,行程級(jí)別編碼發(fā)生另一問(wèn)題。如果對(duì)于較高頻率AC系數(shù)而言,遇到長(zhǎng)行程的 零值的機(jī)會(huì)增加,則對(duì)各行程級(jí)別組合使用同一可能代碼值有損效率。最后,在一些情況下,使用圖2所示的Z字形掃描次序(200)進(jìn)行重新排序可損 害編碼效率。一般而言,一個(gè)塊內(nèi)的鄰居系數(shù)值是相關(guān)的——如果變換系數(shù)值是零,則 其鄰居更可能是零,并且如果該變換系數(shù)值為非零,則其鄰居更可能為非零。在一些情 況下,使用ζ字形掃描次序(200)的重新排序在一維向量中將各鄰居系數(shù)位置(例如,位 置15和27)分開(kāi)。例如,雖然圖1中的該塊(100)中的非零系數(shù)出現(xiàn)在兩個(gè)簇中,但圖 2的一維串(250)中的非零系數(shù)值被一個(gè)或多個(gè)“0”值的序列打斷4次。鑒于編碼和解碼對(duì)于數(shù)字視頻的關(guān)鍵重要性,編碼和解碼是充分開(kāi)發(fā)的領(lǐng)域并 不令人驚奇。然而,不論先前的視頻編碼和解碼技術(shù)的好處如何,它們都沒(méi)有以下技術(shù) 和工具的優(yōu)點(diǎn)。概述總體而言,“詳細(xì)描述”呈現(xiàn)了用于編碼和解碼各塊頻率系數(shù)的技術(shù)和工具。 例如,這些技術(shù)和工具通過(guò)改進(jìn)各塊頻率系數(shù)的壓縮來(lái)改進(jìn)編碼器的性能。通過(guò)在一維 串中將頻率系數(shù)的非零值編組在一起來(lái)增加壓縮效率,并隨后根據(jù)多級(jí)嵌套集合表示來(lái) 對(duì)這些系數(shù)值進(jìn)行熵編碼。在一個(gè)實(shí)施例中,諸如編碼工具等工具選擇多個(gè)掃描次序之一并應(yīng)用所選掃描 次序來(lái)對(duì)一個(gè)塊的頻率系數(shù)進(jìn)行重新排序。該工具使用經(jīng)重新排序的頻率系數(shù)的多級(jí)嵌 套集合表示來(lái)對(duì)該經(jīng)重新排序的頻率系數(shù)進(jìn)行熵編碼。這包括在概括表示中將經(jīng)重新排 序的頻率系數(shù)中的一個(gè)或多個(gè)的第一集合表示為多分辨率表示的第一級(jí)處的第一符號(hào), 并且對(duì)該第一符號(hào)和多分辨率表示的第一級(jí)處的第二符號(hào)進(jìn)行熵編碼。在一些情況下, 該工具還在概括表示中將第一集合的經(jīng)重新排序的頻率系數(shù)中的一個(gè)或多個(gè)的第一子集 表示為嵌套集合表示的第二級(jí)處的第一子符號(hào),并且該工具對(duì)該第一子符號(hào)進(jìn)行熵編 碼。在另一實(shí)施例中,諸如解碼工具等工具通過(guò)對(duì)來(lái)自位流的視頻信息進(jìn)行熵解碼 來(lái)重構(gòu)經(jīng)熵編碼的視頻。該工具對(duì)頻率系數(shù)的多級(jí)嵌套集合表示的第一級(jí)處的第一符號(hào) 和第二符號(hào)進(jìn)行解碼。第一符號(hào)表示頻率系數(shù)中的一個(gè)或多個(gè)的第一集合,并且第二符 號(hào)表示頻率系數(shù)中的一個(gè)或多個(gè)的第二集合。接著,該工具對(duì)多級(jí)嵌套集合表示的第二 級(jí)處的第一子符號(hào)進(jìn)行解碼。該子符號(hào)表示第一集合的頻率系數(shù)中的一個(gè)或多個(gè)的第一 子集。該工具隨后確定頻率系數(shù)的掃描次序,根據(jù)該掃描次序?qū)@些系數(shù)進(jìn)行重新排 序,并使用這些系數(shù)來(lái)重構(gòu)視頻。在一些實(shí)現(xiàn)中,編碼工具使用Huffman編碼來(lái)進(jìn)行熵編碼,并且解碼工具使用 對(duì)應(yīng)的Huffman解碼。在其他實(shí)現(xiàn)中,編碼工具使用行程級(jí)別編碼或行程長(zhǎng)度編碼的另 一變型,并且解碼工具使用對(duì)應(yīng)解碼。在一些實(shí)現(xiàn)中,編碼和解碼工具從多個(gè)預(yù)定掃描 次序中為一個(gè)塊來(lái)選擇掃描次序。在其他實(shí)現(xiàn)中,如果預(yù)定掃描次序中沒(méi)有一個(gè)產(chǎn)生變 換系數(shù)的合適壓縮,則編碼工具確定新掃描次序。參考附圖閱讀以下詳細(xì)描述,將更清楚本發(fā)明的前述和其他目標(biāo)、特征和優(yōu) 點(diǎn)。提供本概述是為了以簡(jiǎn)化形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概念。本概述并不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所 要求保護(hù)的主題的范圍。附圖簡(jiǎn)述圖1是示出示例性的一塊經(jīng)量化變換系數(shù)的圖表。圖2包括示出現(xiàn)有技術(shù)ζ字形掃描次序的圖表,并且還示出將該ζ字形掃描次序 應(yīng)用于來(lái)自圖1的該塊變換系數(shù)的結(jié)果。圖3是其中可實(shí)現(xiàn)所描述的若干實(shí)施例的合適的計(jì)算環(huán)境的框圖。圖4是可用于選擇掃描次序并使用各塊的多級(jí)嵌套集合表示對(duì)圖片進(jìn)行編碼的 一般化編碼工具的框圖。圖5A-C是示出用于選擇掃描次序并使用多級(jí)嵌套集合表示對(duì)圖片進(jìn)行編碼的不 同的一般化技術(shù)的流程圖。圖6是示出選擇掃描次序并使用多級(jí)嵌套集合表示對(duì)圖片進(jìn)行編碼的示例性技 術(shù)的流程圖。圖7和8包括示出示例掃描次序的圖表,并且還示出將相應(yīng)掃描次序應(yīng)用于來(lái)自 圖1的該塊變換系數(shù)的結(jié)果。圖9A和9B是示出掃描次序選擇的信令的偽碼列表。圖10是示出使用多級(jí)嵌套集合表示對(duì)一個(gè)塊的一組頻率系數(shù)進(jìn)行編碼的示例性 技術(shù)的流程圖。圖11A、IlB和IlC是示例多級(jí)嵌套集合表示的示圖。圖12A是示出將圖IlA的多級(jí)嵌套集合表示應(yīng)用于圖7中示出的經(jīng)重新排序的 系數(shù)值的向量的示圖。圖12B是示出將圖IlA的多級(jí)嵌套集合表示應(yīng)用于圖8中示出的經(jīng)重新排序的 系數(shù)值的向量的示圖。圖13A和13B分別是示出圖12A和12B的多級(jí)嵌套集合表示的示例Hufftnan碼
的示圖。圖14是用于對(duì)一圖片的各塊的經(jīng)重新排序的多級(jí)嵌套集合表示進(jìn)行解碼的一般 化解碼系統(tǒng)的框圖。圖15是示出用于對(duì)一個(gè)塊的經(jīng)重新排序的多級(jí)嵌套集合表示進(jìn)行解碼的一般化 技術(shù)的流程圖。圖16是示出用于對(duì)一個(gè)塊的經(jīng)重新排序的多級(jí)嵌套集合表示進(jìn)行解碼的示例性 技術(shù)的流程圖。詳細(xì)描述以下詳細(xì)描述呈現(xiàn)了用于通過(guò)根據(jù)掃描次序?qū)σ唤M頻率系數(shù)進(jìn)行重新排序來(lái)對(duì) 它們進(jìn)行編碼以將這些頻率系數(shù)的值轉(zhuǎn)換成這些值的一維串的工具和技術(shù)。各值的該串 是根據(jù)熵編碼方法來(lái)使用多級(jí)嵌套集合表示進(jìn)行編碼的。以下詳細(xì)描述還表示用于對(duì)一 組頻率系數(shù)進(jìn)行解碼的對(duì)應(yīng)工具和技術(shù)。本文所描述的技術(shù)和工具中的某一些解決了背景中所指出的一個(gè)或多個(gè)問(wèn)題。 通常,所給出的技術(shù)/工具并不解決所有這些問(wèn)題。相反,鑒于編碼時(shí)間、編碼資源、 解碼時(shí)間、解碼資源和/或質(zhì)量的約束和折衷,所給出的技術(shù)/工具改進(jìn)了特定實(shí)現(xiàn)或情頁(yè) 形的編碼和/或性能。I.計(jì)算環(huán)境圖3示出了其中可實(shí)現(xiàn)若干所描述的實(shí)施例的合適的計(jì)算環(huán)境(300)的一般化示 例。計(jì)算環(huán)境(300)并非旨在對(duì)使用范圍或功能提出任何限制,因?yàn)檫@些技術(shù)和工具可 以在完全不同的通用或?qū)S糜?jì)算環(huán)境中實(shí)現(xiàn)。參考圖3,計(jì)算環(huán)境(300)包括至少一個(gè)處理單元(310)和存儲(chǔ)器(320)。在圖 3中,這一最基本的配置(330)被包括在虛線內(nèi)。處理單元(310)執(zhí)行計(jì)算機(jī)可執(zhí)行指 令,并且可以是真實(shí)或虛擬處理器。在多處理系統(tǒng)中,多個(gè)處理單元執(zhí)行計(jì)算機(jī)可執(zhí)行 指令以提高處理能力。存儲(chǔ)器(320)可以是易失性存儲(chǔ)器(例如,寄存器、高速緩存、 RAM)、非易失性存儲(chǔ)器(例如,ROM、EEPROM、閃存等)或兩者的某種組合。存儲(chǔ) 器(320)存儲(chǔ)使用所描述的用于對(duì)經(jīng)重新排序的頻率系數(shù)的嵌套集合表示進(jìn)行編碼和/或 解碼的技術(shù)和工具中的一個(gè)或多個(gè)來(lái)實(shí)現(xiàn)編碼器的軟件(380)。計(jì)算環(huán)境可具有其他特征。例如,計(jì)算環(huán)境(300)包括存儲(chǔ)(340)、一個(gè)或多 個(gè)輸入設(shè)備(350)、一個(gè)或多個(gè)輸出設(shè)備(360)以及一個(gè)或多個(gè)通信連接(370)。諸如總 線、控制器或網(wǎng)絡(luò)等互連機(jī)制將計(jì)算環(huán)境(300)的各組件互連。通常,操作系統(tǒng)軟件(未 示出)為在計(jì)算環(huán)境(300)中執(zhí)行的其他軟件提供了操作環(huán)境,并協(xié)調(diào)計(jì)算環(huán)境(300)的 各組件的活動(dòng)。存儲(chǔ)(340)可以是可移動(dòng)或不可移動(dòng)的,并包括磁盤、磁帶或磁帶盒、 CD-ROM、DVD或可用于儲(chǔ)存信息并可在計(jì)算環(huán)境(300)內(nèi)訪問(wèn)的任何其他介質(zhì)。存儲(chǔ) (340)儲(chǔ)存用于實(shí)現(xiàn)視頻編碼器和/或解碼器的軟件(380)的指令。輸入設(shè)備(350)可以是諸如鍵盤、鼠標(biāo)、筆或跟蹤球等觸摸輸入設(shè)備,語(yǔ)音輸 入設(shè)備,掃描設(shè)備或向計(jì)算環(huán)境(300)提供輸入的另一設(shè)備。對(duì)于音頻或視頻編碼,輸 入設(shè)備(350)可以是聲卡、顯卡、TV調(diào)諧卡、或接受模擬或數(shù)字形式的音頻或視頻輸入 的類似設(shè)備、或?qū)⒁纛l或視頻樣本讀入計(jì)算環(huán)境(300)的CD-ROM或CD-RW。輸出設(shè) 備(360)可以是顯示器、打印機(jī)、CD刻錄機(jī)或提供來(lái)自計(jì)算環(huán)境(300)的輸出的另一設(shè) 備。通信連接(370)允許通過(guò)通信介質(zhì)與另一計(jì)算實(shí)體進(jìn)行通信。通信介質(zhì)傳達(dá) 諸如已調(diào)制數(shù)據(jù)信號(hào)形式的計(jì)算機(jī)可執(zhí)行指令、音頻或視頻輸入或輸出、或其他數(shù)據(jù)等 信息。已調(diào)制數(shù)據(jù)信號(hào)是其一個(gè)或多個(gè)特征以在信號(hào)中編碼信息的方式設(shè)置或改變的信 號(hào)。作為示例而非局限,通信介質(zhì)包括以電、光、RF、紅外、聲學(xué)或其他載波實(shí)現(xiàn)的有 線或無(wú)線技術(shù)。各種技術(shù)和工具可以在計(jì)算機(jī)可讀介質(zhì)的一般上下文中描述。計(jì)算機(jī)可讀介質(zhì) 可以是可在計(jì)算環(huán)境內(nèi)訪問(wèn)的任何可用介質(zhì)。作為示例而非局限,對(duì)于計(jì)算環(huán)境(300), 計(jì)算機(jī)可讀介質(zhì)可包括存儲(chǔ)器(320)、存儲(chǔ)(340)、通信介質(zhì)和以上任一種的組合。該技術(shù)和工具可在諸如程序模塊中所包括的在目標(biāo)真實(shí)或虛擬處理器上的計(jì)算 環(huán)境中執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述。一般而言,程序模塊包括執(zhí)行特 定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、庫(kù)、對(duì)象、類、組件、數(shù)據(jù)結(jié)構(gòu)等。程 序模塊的功能可以如各實(shí)施例中所需的組合或在程序模塊之間分離。用于程序模塊的計(jì) 算機(jī)可執(zhí)行指令可以在本地或分布式計(jì)算環(huán)境中執(zhí)行。
為了呈現(xiàn)起見(jiàn),本詳細(xì)描述使用了如“確定”和“重構(gòu)”等術(shù)語(yǔ)來(lái)描述計(jì)算環(huán) 境中的計(jì)算機(jī)操作。這些術(shù)語(yǔ)是由計(jì)算機(jī)執(zhí)行的操作的高級(jí)抽象,且不應(yīng)與人類所執(zhí)行 的動(dòng)作混淆。對(duì)應(yīng)于這些術(shù)語(yǔ)的實(shí)際的計(jì)算機(jī)操作取決于實(shí)現(xiàn)而不同。II.用于經(jīng)重新排序的頻率系數(shù)的嵌套集合表示的一般化編碼工具圖4示出其中可以實(shí)現(xiàn)本發(fā)明的各實(shí)施例的一般化編碼工具(400)的框圖。該 工具(400)依次接收輸入圖片(405)。術(shù)語(yǔ)“圖片” 一般指的是源、已編碼的或已重構(gòu) 的圖像數(shù)據(jù)。對(duì)于逐行視頻,圖片是逐行視頻幀。對(duì)于隔行視頻,取決于上下文,圖片 可以指的是隔行視頻幀、幀的上半幀、或幀的下半幀。輸入圖片(405)可以是整個(gè)視頻 幀或靜止圖片,或輸入圖片可以只是視頻幀的一部分或靜止圖片的一部分?;蛘?,輸入 圖片(405)可只包括經(jīng)降采樣圖片的一個(gè)色彩分量,例如YCbCr圖片的亮度分量。為簡(jiǎn)明起見(jiàn),圖4未示出編碼工具(400)的與運(yùn)動(dòng)估計(jì)、運(yùn)動(dòng)補(bǔ)償、以及其他運(yùn) 動(dòng)處理相關(guān)的模塊。在一些實(shí)現(xiàn)中,除處理樣本值的各塊來(lái)進(jìn)行圖片內(nèi)壓縮之外,該工 具(400)使用圖4中示出的各模塊來(lái)處理樣本值的各塊的運(yùn)動(dòng)補(bǔ)償殘差。對(duì)于給定殘差 塊,該工具執(zhí)行該殘差塊的頻率系數(shù)值的頻率變換、量化、掃描重新排序以及熵編碼。在圖4中,對(duì)于圖片內(nèi)壓縮,拆分器(410)將輸入圖片(405)拆分成一系列塊, 每一個(gè)塊都包含多個(gè)樣本值。對(duì)于8X8的塊,每一個(gè)塊包括被安排成8行和8列的64 個(gè)樣本值?;蛘?,各塊可以是4X4、4X8、8X4、16X 16或某一其他大小。頻率變換器(415)將各塊變換系數(shù)轉(zhuǎn)換成頻域(即,頻譜、變換)數(shù)據(jù)。頻率 變換器(415)將DCT、DCT的變型、或其他頻率變換應(yīng)用于各塊樣本值,從而產(chǎn)生各塊 頻率變換系數(shù)。頻率變換器(415)可應(yīng)用8X8、8X4、4X8、4X4或其他大小的頻率變 換。量化器(420)隨后量化各塊變換系數(shù)。量化器(420)將非均勻的標(biāo)量量化應(yīng)用于 頻譜數(shù)據(jù),其中量化步長(zhǎng)在逐圖片的基礎(chǔ)上、在逐塊的基礎(chǔ)上、或其他基礎(chǔ)上變化。量 化器(420)還可以將另一類型的量化應(yīng)用于數(shù)據(jù)系數(shù),例如這些系數(shù)中的至少一些的均 勻或自適應(yīng)量化,或在不使用頻率變換的編碼器系統(tǒng)中直接量化空間域數(shù)據(jù)。系數(shù)掃描儀/重新排序器(425)掃描經(jīng)量化的系數(shù)并在一維串中根據(jù)掃描次序?qū)?它們進(jìn)行重新排序。熵編碼器(430)對(duì)該一維串中的系數(shù)進(jìn)行編碼。例如,熵編碼器 (430)使用自適應(yīng)Huffman編碼來(lái)對(duì)變換系數(shù)進(jìn)行編碼。或者,熵編碼器可以使用行程長(zhǎng) 度編碼、行程級(jí)別編碼、或某一其他熵編碼方法來(lái)對(duì)變換系數(shù)進(jìn)行編碼。熵編碼器(430) 將經(jīng)熵編碼的系數(shù)值(435)輸出到緩沖區(qū)(440)。在一些實(shí)施例中,該工具(400)使用系數(shù)掃描儀(425)可用的多個(gè)掃描次序中的 任一個(gè)。例如,該工具(400)在圖2中的掃描次序(200)、圖7中的掃描次序(700)、圖 8中的掃描次序(800)、以及一個(gè)或多個(gè)其他掃描次序之間切換。該工具(400)在逐塊的 基礎(chǔ)上、逐宏塊的基礎(chǔ)上、逐片的基礎(chǔ)上、逐圖片的基礎(chǔ)上或在某一其他基礎(chǔ)上來(lái)在可 用掃描次序之間進(jìn)行選擇。該多個(gè)可用掃描次序可包括在編碼工具和對(duì)應(yīng)解碼工具兩者 處設(shè)置的一個(gè)或多個(gè)預(yù)定義掃描次序。在使用預(yù)定義掃描次序之一時(shí),編碼工具(400) 使用標(biāo)識(shí)所選掃描次序的代碼和其他位流元素來(lái)用信號(hào)通知掃描次序選擇。該多個(gè)可用 掃描次序還可包括由編碼工具(400)在編碼期間特別定義并用信號(hào)通知給對(duì)應(yīng)解碼工具 以在解碼時(shí)使用的一個(gè)或多個(gè)掃描次序。在自身用信號(hào)通知了掃描次序后,在編碼工具(400)稍后使用該掃描次序時(shí),該工具(400)可以用信號(hào)通知標(biāo)識(shí)該掃描次序的代碼或其 他位流元素,其中解碼器存儲(chǔ)了該掃描次序。盡管ζ字形掃描次序(200)為某些變換系數(shù)塊提供非零值的合適聚類,但通過(guò)選 擇性地使用其他掃描次序,該編碼工具(400)通??梢蕴岣哽鼐幋a效率。該工具(400) 可以使用開(kāi)環(huán)方法或閉環(huán)方法來(lái)選擇掃描次序。緩沖區(qū)(400)存儲(chǔ)經(jīng)熵編碼的系數(shù)值 (435),并且緩沖區(qū)充滿度因而提供熵編碼所提供的壓縮效率的某種度量。這一度量可 以基于經(jīng)壓縮系數(shù)的總大小或某一其他度量。系數(shù)掃描儀(425)可以應(yīng)用不同的掃描次 序,其中該工具(400)對(duì)結(jié)果進(jìn)行評(píng)估。在閉環(huán)方法中,該工具(400)應(yīng)用可用的每一 掃描次序并且選擇造成最高效地壓縮的經(jīng)熵編碼的系數(shù)值(435)的一個(gè)次序。在一些實(shí) 現(xiàn)中,如果預(yù)定義掃描次序中沒(méi)有一個(gè)提供可接受的性能(例如,根據(jù)可被預(yù)編程或由 用戶定義的閾值),該工具(400)確定新掃描次序并在輸出位流中用信號(hào)通知它?;蛘?, 掃描次序可由用戶指定。III.用于經(jīng)重新排序的頻率系數(shù)的嵌套集合表示的一般編碼技術(shù)圖5A示出一種對(duì)一塊頻率系數(shù)進(jìn)行編碼的一般化技術(shù)(500)的流程圖。諸如參 考圖4描述的工具(400)等編碼工具或其他工具執(zhí)行該技術(shù)(500)。圖5A中示出的技術(shù) (500)包括對(duì)掃描次序的自適應(yīng)選擇和使用默認(rèn)多級(jí)嵌套集合表示的熵編碼。該工具選擇多個(gè)掃描次序之一(505)。該掃描次序可以根據(jù)按實(shí)際結(jié)果的壓縮效 率或估計(jì)的壓縮效率來(lái)進(jìn)行選擇(505)。另外,該掃描次序可以是多個(gè)預(yù)定掃描次序之 一,或該掃描次序可以由該工具(400)在編碼過(guò)程期間構(gòu)造。該工具隨后將所選掃描次序應(yīng)用于該塊的多個(gè)頻率系數(shù)(510)。這一步驟將多個(gè) 頻率系數(shù)重新排序成這些系數(shù)的一維串。優(yōu)選地,根據(jù)該掃描次序的重新排序造成非零 頻率系數(shù)值在這些系數(shù)的一維串內(nèi)的聚類,例如在該一維串的開(kāi)頭。最后,該工具使用經(jīng)重新排序的頻率系數(shù)的默認(rèn)多級(jí)嵌套集合表示來(lái)對(duì)該經(jīng)重 新排序的頻率系數(shù)進(jìn)行熵編碼(515)。圖11A、IlB和IlC示出了示例多級(jí)嵌套集合表 示??梢允褂弥T如自適應(yīng)Huffman編碼、行程長(zhǎng)度編碼等熵編碼方法或某一其他方法來(lái) 將頻率系數(shù)編碼在嵌套集合表示內(nèi)。該工具在逐塊的基礎(chǔ)上或某一其他基礎(chǔ)上重復(fù)該技術(shù)(500)。例如,該工具在逐 幀的基礎(chǔ)上選擇掃描次序,為整個(gè)幀選擇掃描次序并隨后在進(jìn)行熵編碼之前對(duì)該幀中的 各塊的系數(shù)進(jìn)行重新排序。圖5B示出對(duì)多個(gè)頻率系數(shù)的塊進(jìn)行編碼的替換一般化技術(shù)(520)的流程圖。諸 如參考圖4描述的工具(400)等編碼工具或其他工具執(zhí)行該技術(shù)(520)。與圖5A的技 術(shù)(500)相比,圖5B中示出的技術(shù)(520)包括使用默認(rèn)掃描模式來(lái)進(jìn)行的重新排序和不 同多級(jí)嵌套集合表示之間的自適應(yīng)選擇。在該技術(shù)(520)中,已經(jīng)由該工具執(zhí)行先前分 析、通過(guò)用戶定義、或通過(guò)某一其他確定因素確定了掃描次序。該工具將該掃描次序應(yīng) 用于該塊的各頻率系數(shù)(525)。這將多個(gè)頻率系數(shù)重新排序成這些系數(shù)的一維串。該工具隨后選擇多個(gè)多級(jí)嵌套集合表示之一(530)。嵌套集合表示可以基于編 碼效率、用戶定義、或某一其他因素來(lái)選擇。圖IlA示出64個(gè)變換系數(shù)在一維向量中 的一個(gè)示例多級(jí)嵌套集合表示,根據(jù)該表示每一集合被分成兩個(gè)子集,每一子集包括一 個(gè)或多個(gè)變換系數(shù)。圖IlB示出替換多級(jí)嵌套集合表示,根據(jù)該表示每一集合被拆分成兩個(gè)、三個(gè)、或四個(gè)子集,每一子集包括一個(gè)或多個(gè)變換系數(shù)。圖IlC示出具有三層的 第三多級(jí)嵌套集合表示一在一層處,每一集合(或子集)被拆分成四個(gè)子集(或變換系 數(shù))。其他嵌套集合表示用不同的方式來(lái)分割這64個(gè)系數(shù),例如將頂層0到64拆分成位 置0到3的第一集合和位置4到63的第二集合,將第二集合拆分成第一和第二子集,以 此類推??蔀閳D片的特定掃描次序或類型來(lái)預(yù)測(cè)頻率系數(shù)的特定群集模式,并且可以指 定特定嵌套集合表示來(lái)利用這些模式并進(jìn)一步提高編碼效率。特定類型的熵編碼可以對(duì) 更積極地將系數(shù)的集合拆分成更多子集的特定嵌套集合表示更有效。該工具隨后根據(jù)諸 如自適應(yīng)Huffman編碼、行程長(zhǎng)度編碼等方法或某一其他熵編碼方法使用所選嵌套集合 表示對(duì)經(jīng)重新排序的多個(gè)頻率系數(shù)進(jìn)行熵編碼(535)。該工具在逐塊的基礎(chǔ)上或某一其他基礎(chǔ)上重復(fù)該技術(shù)(520)。例如,該工具在逐 幀的基礎(chǔ)上選擇多級(jí)嵌套集合表示,為整個(gè)幀選擇嵌套集合表示并隨后在使用所選嵌套 集合表示進(jìn)行熵編碼之前對(duì)該幀中的各塊的系數(shù)進(jìn)行重新排序。圖5C示出對(duì)頻率系數(shù)的塊進(jìn)行編碼的替換一般化技術(shù)(540)的流程圖。諸如參 考圖4描述的工具(400)等編碼工具或其他工具執(zhí)行該技術(shù)(540)。這一技術(shù)(540) —般 將參考圖5A和5B描述的技術(shù)(500、520)進(jìn)行組合。在該技術(shù)(540)中,該工具選擇多個(gè)掃描次序之一(545)并隨后將所選掃描次序 應(yīng)用于該塊的多個(gè)頻率系數(shù)(550)。接著,該工具選擇多個(gè)嵌套集合部分之一(555)并根 據(jù)諸如行程長(zhǎng)度編碼、自適應(yīng)Huffman編碼等熵編碼方法或某一其他方法使用所選嵌套 集合部分來(lái)對(duì)經(jīng)重新排序的多個(gè)頻率系數(shù)進(jìn)行熵編碼(560)。該工具在逐塊的基礎(chǔ)上或某 一其他基礎(chǔ)上重復(fù)該技術(shù)(540)。例如,該工具在逐幀的基礎(chǔ)上選擇掃描次序和多級(jí)嵌套 集合表示,為整個(gè)幀選擇掃描次序和嵌套集合表示并隨后在使用所選嵌套集合表示進(jìn)行 熵編碼之前使用所選掃描次序?qū)υ搸械母鲏K的系數(shù)進(jìn)行重新排序。IV.用于經(jīng)重新排序的頻率系數(shù)的嵌套集合表示的示例性編碼技術(shù)圖6示出對(duì)圖片的各塊頻率系數(shù)進(jìn)行編碼的示例性技術(shù)(600)的流程圖。諸如 參考圖4描述的工具(400)等編碼工具或某一其他編碼工具執(zhí)行該技術(shù)(600)。在該技術(shù)(600)中,該工具選擇預(yù)定掃描次序來(lái)進(jìn)行評(píng)估(605)。一般而言,該 工具可以使用多個(gè)預(yù)定掃描次序中的任一個(gè)。在特定實(shí)現(xiàn)中,存在默認(rèn)掃描次序并且是 所選擇的第一個(gè)掃描次序。編碼工具的默認(rèn)掃描次序可以在編碼工具的源代碼中定義或 作為編碼工具設(shè)置,或用戶可以在啟動(dòng)編碼時(shí)定義特定圖片或序列的默認(rèn)掃描次序。或 者,默認(rèn)掃描次序不存在,并且改為隨機(jī)選擇多個(gè)預(yù)定掃描次序之一。該工具應(yīng)用所選預(yù)定掃描次序來(lái)對(duì)各塊的頻率系數(shù)進(jìn)行重新排序(610)。對(duì)于給 定塊,應(yīng)用預(yù)定掃描次序一般包括根據(jù)該掃描次序遍歷頻率系數(shù)的二維塊,并將這些系 數(shù)重新排序成頻率系數(shù)的一維串。在該工具將掃描次序分別應(yīng)用于各塊的頻率系數(shù)之后(610),該工具檢查系數(shù)重 新排序是否充分(615)。例如,這一檢查(615)包括確定將掃描次序應(yīng)用于各塊的多個(gè)頻 率系數(shù)(610)是否將二維塊的非零頻率值充分群集到這些系數(shù)的一維串的前部。這一檢 查(615)可以基于該工具的預(yù)定閾值、用戶選擇的閾值、或某一其他判定。掃描次序判定是在對(duì)幀進(jìn)行編碼時(shí)執(zhí)行的,以便使用同一所選掃描次序?qū)υ搸?中的所有塊進(jìn)行編碼?;蛘撸瑨呙璐涡蚺卸梢栽谛蛄械拈_(kāi)頭處執(zhí)行,使得使用同一通用掃描次序?qū)D片序列進(jìn)行編碼,或掃描次序可以在逐塊的基礎(chǔ)上或某一其他基礎(chǔ)上確 定。何時(shí)選擇掃描次序可以根據(jù)用戶定義的準(zhǔn)則或根據(jù)諸如編碼在編碼工具的源代碼中 的指令等其他準(zhǔn)則來(lái)選擇。如果系數(shù)被充分地重新排序,則該工具接著確定圖片的各塊的經(jīng)重新排序的頻 率系數(shù)的多級(jí)嵌套集合表示(620)。在一些實(shí)現(xiàn)中,只有一個(gè)嵌套集合表示對(duì)該工具可 用。該嵌套集合表示是在編碼工具的源代碼中、作為編碼工具設(shè)置、由用戶指令、或由 某一其他準(zhǔn)則來(lái)預(yù)定義的。或者,該工具具有可從中進(jìn)行選擇的多個(gè)嵌套集合表示。一 般而言,嵌套集合表示可以基于諸如所使用的熵編碼的類型、多個(gè)頻率系數(shù)是否一般被 安排成一致的模式、或哪一嵌套集合表示產(chǎn)生圖片的頻率系數(shù)的一維串的最高效編碼等 因素來(lái)定義或選擇。該工具將所選多級(jí)嵌套集合表示應(yīng)用于經(jīng)重新排序的頻率系數(shù)以產(chǎn)生圖片的各 塊中的每一個(gè)塊的一系列符號(hào)(625),并對(duì)這些符號(hào)進(jìn)行熵編碼(630)。一般而言,對(duì)于 多級(jí)嵌套集合表示的給定層,編碼工具使用概括該層處的集合(或子集)中的系數(shù)值的符 號(hào)來(lái)表示結(jié)果。例如,每一符號(hào)指示非零頻率系數(shù)值在頻率系數(shù)值的給定集合(或子集) 中的存在或缺席。如果給定集合(或子集)的符號(hào)指示頻率系數(shù)值的給定集合(或子集) 中存在至少一個(gè)非零頻率系數(shù)值,則另一符號(hào)可指示頻率系數(shù)值的給定集合(或子集)的 更低層子集中存在或缺少非零頻率系數(shù)值。集合和子集的這一遞進(jìn)嵌套可以重復(fù),直至 子集只包含零值或只有一個(gè)非零系數(shù)為止,在這種情況下,另一符號(hào)將指示該位置處的 特定頻率系數(shù)的非零值。在一些實(shí)現(xiàn)中,該工具將自適應(yīng)Huffman編碼應(yīng)用于經(jīng)重新排序的頻率系數(shù)。 或者,該工具可以使用諸如非自適應(yīng)Huffman編碼、行程長(zhǎng)度編碼、算術(shù)編碼、LZ編碼 等其他熵編碼方法或某一其他方法。返回前一步驟,如果系數(shù)重新排序(615)因諸如重新排序不滿足特定效率閾值 等原因或某一其他原因而不充分,則該工具檢查其他預(yù)定掃描次序是否可用(635)。如 果一個(gè)或多個(gè)不同預(yù)定掃描次序可用,則該工具重復(fù)選擇一個(gè)或多個(gè)預(yù)定掃描次序之一 (605)、應(yīng)用所選掃描次序以根據(jù)所選掃描次序?qū)Ω鲏K的頻率系數(shù)進(jìn)行重新排序(610)、 并檢查該系數(shù)重新排序是否充分(615)。如果該工具檢查出另一預(yù)定掃描次序不可用(635),則該工具確定產(chǎn)生充分系數(shù) 重新排序的新掃描次序并應(yīng)用該掃描次序來(lái)對(duì)各塊的頻率系數(shù)進(jìn)行重新排序(640)。另一 預(yù)定掃描次序因諸如用戶指定不使用特定掃描次序、該工具只預(yù)定了一個(gè)掃描次序、或 已遍歷所有掃描次序并且它們中沒(méi)有一個(gè)具有充分地重新排序了系數(shù)等原因而不可用。 或者,如果另一預(yù)定掃描次序不可用,則該工具簡(jiǎn)單地使用產(chǎn)生最高效系數(shù)重新排序的 預(yù)定掃描次序,或該工具可以用信號(hào)向用戶通知錯(cuò)誤。V.示例掃描次序和掃描次序選擇的信令圖2示出諸如在圖4示出的編碼工具等編碼工具(400)可以應(yīng)用來(lái)對(duì)頻率系數(shù)進(jìn) 行重新排序的一個(gè)可能的掃描次序(200)。然而,使用固定ζ字形掃描次序?qū)ψ儞Q系數(shù)的 某些塊而言是不高效的。圖7和8示出兩個(gè)替換掃描次序?;蛘?,編碼工具和解碼工具 使用其他和/或附加掃描次序。圖7示出諸如在圖4示出的編碼工具等編碼工具(400)可以應(yīng)用來(lái)對(duì)頻率系數(shù)進(jìn)行重新排序的一個(gè)替換掃描次序(700)。圖7中示出的掃描次序(700)可以用于頻率系數(shù) 的一般分布。在一些實(shí)現(xiàn)中,這一掃描次序(700)是一個(gè)塊的默認(rèn)掃描次序。圖7還示出將該掃描次序(700)應(yīng)用于圖1中示出的頻率系數(shù)(100)來(lái)產(chǎn)生示例 性一維串(750)的結(jié)果。系數(shù)值25處于該掃描次序(700)的系數(shù)位置0處,所以一維串 (750)的第一個(gè)值是25。沿該掃描次序(700)繼續(xù),在該掃描次序中,所掃描的下一系 數(shù)值將在系數(shù)位置1處,它對(duì)應(yīng)于頻率系數(shù)(100)中的值12,所以系數(shù)值12在該一維串 (750)中是下一個(gè)。這之后是系數(shù)位置2處的系數(shù)值0,隨后是位置3處的值-5。系數(shù) 位置4到28具有系數(shù)值0,導(dǎo)致該一維串(750)中的25個(gè)0值,以此類推。相比于通過(guò) 根據(jù)圖2的現(xiàn)有技術(shù)ζ字形模式(200)進(jìn)行重新排序所產(chǎn)生的一維串(250),根據(jù)該掃描 次序(700)產(chǎn)生的該一維串(750)稍微更加高效(在將非零值進(jìn)行群集方面)。圖8示出用于圖1所示的特定頻率系數(shù)(100)的更高效掃描次序(800)。這一掃 描次序(800)可由特定用戶來(lái)定義。或者,這一掃描次序(800)可以是編碼工具可用的 多個(gè)可能預(yù)定義掃描次序之一并且可被選作對(duì)多個(gè)頻率系數(shù)進(jìn)行最高效重新排序的掃描 次序?;蛘撸瑨呙璐涡?800)不是預(yù)定掃描次序之一,而是在預(yù)定掃描次序中沒(méi)有一個(gè) 對(duì)頻率系數(shù)進(jìn)行適當(dāng)?shù)闹匦屡判虻那闆r下由編碼工具確定的。圖8示出將該掃描次序(800)應(yīng)用于圖1中示出的頻率系數(shù)(100)來(lái)產(chǎn)生示例性 一維串(850)的結(jié)果。與應(yīng)用圖7的掃描次序(700)的結(jié)果或應(yīng)用圖2的掃描次序(200) 的結(jié)果相比,對(duì)于該特定掃描次序(800),該一維串(850)顯著地更緊致。圖9A和9B示出一種用于在編碼工具和解碼工具在逐幀的基礎(chǔ)上在多個(gè)掃描次 序選項(xiàng)之間進(jìn)行選擇時(shí)用信號(hào)通知并接收選擇信息的方法。這一方法使用序列層句法元 素和圖片層句法元素的組合。圖9A示出接收指示編碼工具為一序列所定義的掃描次序的序列層句法元素的 解碼工具的偽碼列表(900)。編碼工具執(zhí)行該信息的對(duì)應(yīng)信令。在一序列頭部中, 解碼工具接收并解析指示該序列頭部之后將有多少掃描次序(從0到15)的句法元素 NumOfNonDefaultScanOrders。對(duì)于所定義的非默認(rèn)掃描次序中的每一個(gè),解碼工具接收指示該掃描次序的索 引位置的信息。圖9A示出8X8的塊的信令。對(duì)于8X8的塊的掃描次序中的64個(gè)位 置中的每一個(gè)位置,解碼工具接收指示該位置是否具有掃描次序位置的默認(rèn)值的單個(gè)位 Defaultldx。以下列表(對(duì)解碼工具和編碼工具兩者都可用)指示掃描次序的默認(rèn)位置。
DefaultScanOrderIdx[64]={0,1,‘4,5,16, 17, 20, 21,2,3, 6, 7,18,19,22,23, 8, 10, 12, 13, 24,25,28,29,9, 11, 14, 15,26,27, 30,31,32,34,40, 41, 48, 49, 52, 53,33,35,42,43, 50, 51, 54,55,36, 38,44,45,56,
57,60,61,37,39,46,47,58,59,62,63}。這些默認(rèn)位置與圖7中示出的位置相 對(duì)應(yīng)。如果DefaultIdx指示該默認(rèn)位置被用在用信號(hào)通知的掃描次序中,則解碼工具在 DefaultScanOrderIdx中查找默認(rèn)位置。否則,解碼工具獲得指示在用信號(hào)通知的掃描次 序中使用的非默認(rèn)位置的6個(gè)位。 解碼工具存儲(chǔ)該序列的這一用信號(hào)通知的預(yù)定義掃描次序以及總是對(duì)編碼工具 和解碼工具可用的零個(gè)或更多個(gè)其他掃描次序。雖然圖9A示出8X8的塊的信令,但對(duì) 于其他大小的塊,編碼工具可以用信號(hào)通知按掃描次序的塊大小。
圖9B示出用于在各掃描次序之間進(jìn)行切換的解碼工具的偽碼列表(910)。解碼 工具例如在解碼期間在逐幀的基礎(chǔ)上切換掃描次序。編碼工具執(zhí)行掃描次序選擇信息的 對(duì)應(yīng)信令,例如在幀頭部用信號(hào)通知用于一個(gè)幀的掃描次序。解碼工具接收并解析指示是對(duì)該幀使用默認(rèn)掃描次序(沒(méi)有對(duì)該幀的掃描次序 信息的進(jìn)一步信令)還是對(duì)該幀使用非默認(rèn)掃描次序的句法元素UseDefaultOrder。默 認(rèn)掃描次序可以由編碼工具和解碼工具對(duì)所有序列、對(duì)被編碼/解碼的特定序列進(jìn)行定 義,或由編碼工具和解碼工具處的一組規(guī)則來(lái)導(dǎo)出。如果解碼工具對(duì)該幀使用非默認(rèn)掃描次序,則解碼工具檢查是否應(yīng)當(dāng)使用針對(duì) 該序列來(lái)用信號(hào)通知的非默認(rèn)掃描次序(如果有的話)之一。如果是,則解碼工具接收 并解析標(biāo)識(shí)針對(duì)該序列用信號(hào)通知的非默認(rèn)掃描次序之一的句法元素Orderldx。否則(如果針對(duì)該序列沒(méi)有用信號(hào)通知非默認(rèn)掃描次序或用信號(hào)通知了它們但 不應(yīng)使用),解碼工具接收并解析新掃描次序的信息。與圖9A—樣,圖9B示出8X8的 塊的信令。對(duì)于8X8的塊的新掃描次序中的64個(gè)位置中的每一個(gè)位置,解碼工具接收 指示該位置是否具有掃描次序位置的默認(rèn)值的單個(gè)位Defaultldx。如果否,則解碼工具獲 得指示在該新掃描次序中使用的非默認(rèn)位置的6個(gè)位?;蛘?,編碼工具和解碼工具使用另一位流句法來(lái)在逐宏塊的基礎(chǔ)上、在逐幀的 基礎(chǔ)上、或在某一其他基礎(chǔ)上切換掃描次序。VI.使用多級(jí)嵌套集合表示的示例編碼圖10示出使用多級(jí)嵌套集合表示來(lái)對(duì)多個(gè)頻率系數(shù)的經(jīng)重新排序的塊進(jìn)行編碼 的示例性技術(shù)(1000)。該技術(shù)(1000)可以例如在圖6中描述的技術(shù)(600)中使用。該 技術(shù)(1000)是遞歸式的。在對(duì)一組系數(shù)值進(jìn)行編碼時(shí),在一些情況下,該技術(shù)(1000)遞 歸地對(duì)該集合內(nèi)的系數(shù)值的一子集或多個(gè)子集中的每一個(gè)子集進(jìn)行編碼。該技術(shù)(1000) 包括退出條件,在該條件下,該技術(shù)(1000)返回到入口點(diǎn)或完成對(duì)該集合的編碼。在該技術(shù)(1000)中,編碼工具接收通過(guò)根據(jù)特定掃描次序?qū)σ粋€(gè)塊的頻率系數(shù) 值進(jìn)行重新排序而產(chǎn)生的一維串中的一組系數(shù)值。該工具評(píng)估該集合的給定級(jí)別的一個(gè) 或多個(gè)系數(shù)值(1005)。當(dāng)首次啟動(dòng)該技術(shù)(1000)時(shí),該組多個(gè)頻率系數(shù)一般將在該一維 串中包括所有這多個(gè)頻率系數(shù)。稍后,該技術(shù)(1000)可以在作為一維串的子集的較小集 合上執(zhí)行。出于這一原因,所討論的集合可包括64個(gè)系數(shù)值、63個(gè)系數(shù)值、32個(gè)系數(shù) 值、16個(gè)系數(shù)值、1個(gè)系數(shù)值或某一其他數(shù)量的系數(shù)值。編碼工具檢查系數(shù)的給定集合是否只包含單個(gè)頻率系數(shù)(1010)。如果該組頻率 系數(shù)確實(shí)只包含單個(gè)系數(shù),則該工具對(duì)該系數(shù)的值進(jìn)行編碼(1015)。例如,該工具對(duì)該 單個(gè)系數(shù)值使用Golomb編碼、Huffinan編碼、或另一形式的可變長(zhǎng)度編碼。如果以其 他方式暗示了該單個(gè)系數(shù)的值的幅度(例如,在對(duì)于某些類型的熵編碼,該系數(shù)是-ι或 1時(shí)),則該工具用信號(hào)通知指示該單個(gè)系數(shù)的符號(hào)的標(biāo)志。該工具隨后返回(子集的) 入口點(diǎn)或完成對(duì)該頻率系數(shù)的特定集合的編碼(1020)。如果給定集合在該集合中包含多個(gè)頻率系數(shù),則該工具分析該集合并為該集合 編碼一個(gè)或多個(gè)代碼(1025)。取決于所使用的熵編碼的類型,該代碼指示非零頻率系 數(shù)在該集合中的存在或缺席并且還可以指示該集合中的哪些子集包括任何非零值頻率系 數(shù)。如果該集合不包括任何非零頻率系數(shù),則該工具編碼指示該集合不包括任何非零頻率系數(shù)的符號(hào)。然而,如果該集合包括至少一個(gè)非零頻率系數(shù),則該工具編碼指示一個(gè) 或多個(gè)非零頻率系數(shù)在該集合中的存在的一個(gè)或多個(gè)符號(hào)。該代碼還指示給定集合應(yīng)當(dāng) 被拆分成η個(gè)子集,并且給出關(guān)于非零頻率系數(shù)值在這η個(gè)子集中的每一個(gè)中的存在或缺 席的信息。例如,該一個(gè)或多個(gè)代碼可以指示第一子集不包括具有非零值的至少一個(gè)頻 率系數(shù),第二子集包括具有非零值的至少一個(gè)頻率系數(shù),以及第三子集不包括具有非零 值的至少一個(gè)頻率系數(shù)。對(duì)于某些多級(jí)嵌套集合表示,η等于2并且每一集合可被拆分 成多達(dá)兩個(gè)子集?;蛘?,η是某一其他數(shù)量,如3或4。在某些實(shí)施例中,該代碼可以 另外指示與該集合中的頻率系數(shù)的非零值有關(guān)的其他信息,如子集中的單個(gè)系數(shù)是正的 還是負(fù)的或一子集中的任何系數(shù)大于還是等于給定值。在該工具為該集合編碼了一個(gè)或多個(gè)代碼后(1025),該工具確定是否將給定集 合拆分成多達(dá)η個(gè)頻率系數(shù)子集(1030)。如果該集合中沒(méi)有非零頻率系數(shù),則該工具不 拆分該集合并且返回(子集的)入口點(diǎn)或完成對(duì)頻率系數(shù)的特定集合的編碼(1020)。然而,如果該集合包含一個(gè)或多個(gè)非零頻率系數(shù),則該工具對(duì)包括至少一個(gè)非 零值的任何子集進(jìn)行編碼。該工具將給定集合拆分成η個(gè)子集(1030)并檢查以查看是否 要將這些子集中的第一子集作為“集合”來(lái)進(jìn)行編碼(1035)。如果這些子集中的第一 子集包含非零頻率系數(shù),則該工具在更低級(jí)別對(duì)該第一子集執(zhí)行方法(1000)并且因此將 第一子集作為“集合”進(jìn)行編碼。在對(duì)該子集進(jìn)行編碼(1040)時(shí),執(zhí)行該方法(1000) 的工具所產(chǎn)生的這些符號(hào)和代碼被組織來(lái)闡明正在被分析的頻率系數(shù)值是第一集合的子 集,并且正在嵌套集合表示的更低級(jí)表示處被進(jìn)行分析。如果第一子集因其不包含至少一個(gè)非零頻率系數(shù)而不應(yīng)被編碼,則該工具隨后 檢查該集合中是否剩余其他子集(1045)。類似地,在該工具編碼了第一子集(1040)之 后,該工具檢查該集合中是否剩余其他子集(1045)。如果另一子集存在,則該工具檢查 以查看是否將該子集作為“集合”進(jìn)行編碼(1035),并且如果是,則該工具對(duì)該子集進(jìn) 行編碼(1040)。在該工具確定該集合沒(méi)有剩余的其他子集之后,該工具返回(子集的) 入口點(diǎn)或完成對(duì)頻率系數(shù)的特定集合的編碼(1020)——該工具或者返回更高級(jí)別以對(duì)下 一集合或子集進(jìn)行編碼,或轉(zhuǎn)移至另一個(gè)塊或圖片。VII.示例多級(jí)嵌套集合表示使用變換系數(shù)的多級(jí)嵌套集合表示通過(guò)使用零值變換系數(shù)的概括表示可以方便 對(duì)變換系數(shù)進(jìn)行高效的熵編碼。在結(jié)合自適應(yīng)掃描次序選擇使用時(shí),多級(jí)嵌套集合表 示尤其高效,但它們還可與非自適應(yīng)掃描重新排序一起使用。取決于實(shí)現(xiàn),可以使用 Huffman編碼、行程級(jí)別編碼、行程長(zhǎng)度編碼的另一變型或某一其他形式的熵編碼來(lái)對(duì)一 個(gè)塊的多級(jí)嵌套集合表示進(jìn)行編碼。考慮變換系數(shù)的典型的8X8的塊(在量化之后)。大多數(shù)非零系數(shù)值群集在少 數(shù)區(qū)域中,如用于低頻系數(shù)的左上角。有效的多級(jí)嵌套集合表示將零值高頻率系數(shù)編組 在一起成為單個(gè)塊,并且將它們表示成單個(gè)零值系數(shù)(或符號(hào))。除以此方式將零值系數(shù) 編組成一個(gè)或多個(gè)塊之外,多級(jí)嵌套集合表示將包括非零值(或非零值和零值的混合)的 系數(shù)的子集編組成單個(gè)塊并將它們當(dāng)作一個(gè)系數(shù)(或符號(hào))。在給定級(jí)別,多級(jí)嵌套集合 表示包括一個(gè)或多個(gè)“概括”系數(shù)(或符號(hào)),它們隨后被進(jìn)行熵編碼。對(duì)于包括一個(gè) 或多個(gè)非零值系數(shù)的塊,多級(jí)嵌套集合表示遞歸地將這些系數(shù)拆分成被表示為單個(gè)系數(shù)(或符號(hào))各個(gè)子組來(lái)進(jìn)行編碼。圖11A、IlB和IlC示出了示例多級(jí)嵌套集合表示。圖11A、IlB和IlC示出 可被用于例如圖10中示出的技術(shù)(1000)中的具有64個(gè)系數(shù)的塊的示例多級(jí)嵌套集合表 示(1100、1150、1180)?;蛘?,編碼工具和解碼工具使用其他和/或附加多級(jí)嵌套集合表不。參考圖11A,在將一集合拆分成η個(gè)子集時(shí),η等于2。在圖IlB中示出的表示 (1150)中,η等于2、3或4,并且在圖IlC中示出的表示(1180)中,η等于4。或者, η可以等于3、4或某一其他數(shù)字。在該表示中,位置0到63處的系數(shù)值表示第一級(jí)別(1105)處的第一集合,并且 可能被拆分成第二級(jí)別(1110)處的包含位置0處的系數(shù)值的第一子集和第二級(jí)別(1110) 處的包含位置1到63處的系數(shù)值的第二子集。位置0的集合是具有單個(gè)系數(shù)值的集合, 并且因此位置0處的頻率系數(shù)的非零值將被進(jìn)行熵編碼,例如使用第二級(jí)別(1110)處的 代碼。如果第二級(jí)別(1110)處的(位置1到63的)子集包括任何非零系數(shù)值,則位置 1到63處的系數(shù)值被拆分成第三級(jí)別(1115)處的兩個(gè)子集。第三級(jí)別(1115)處的各子 集中的第一子集包含位置1到3處的系數(shù)值,并且第三級(jí)別(1115)處的各子集中的第二 子集包含位置4到63處的系數(shù)值。不進(jìn)一步拆分只包括零值系數(shù)的各子集。然而,如 果第三級(jí)別(1115)處的這些子集之一包括非零系數(shù)值,則第三級(jí)別(1115)處的該子集被 拆分成第四級(jí)別處的多個(gè)不同子集,如圖IlA所示。圖IlB示出第二多級(jí)嵌套集合表示(1150),根據(jù)該表示,第一級(jí)別(1155)處的 集合(從位置0到63)可能被拆分成第二級(jí)別(1160)處的兩個(gè)子集,并且第二級(jí)別(1160) 處的第二子集(從位置1到63)可能被拆分成第三級(jí)別(1165)處的三個(gè)子集。圖IlB中 的表示(1150)比圖IlA中的表示(1100)更寬但不一樣深,因?yàn)榧?或子集)可能被拆 分成更低級(jí)別處的三個(gè)或四個(gè)子集。圖IlC示出第三多級(jí)嵌套集合表示(1180),根據(jù)該表示,第一級(jí)別(1185)處的 集合(從位置0到63)可能被拆分成第二級(jí)別(1190)處的四個(gè)等大小的子集,并且第二 級(jí)別(1190)處的每一子集可能被拆分成第三級(jí)別(1195)處的四個(gè)子集。圖IlC中的表 示(1180)比圖IlB中的表示(1150)更寬,因?yàn)榧?或子集)可能被拆分成每一更低級(jí) 別處的四個(gè)子集。圖12Α示出將圖IlA的多級(jí)嵌套集合表示(1100)應(yīng)用于圖7的示例性一維串 (750)。變換系數(shù)(100)的該一維串(750)提供包括從位置0到位置63的系數(shù)值的第一 級(jí)別集合(1205)。第一級(jí)別集合(1205)不是單值集合,并包括至少一個(gè)非零值,所以該 第一級(jí)別集合被拆分成多個(gè)子集。取決于熵編碼是如何實(shí)現(xiàn)的,一個(gè)或多個(gè)代碼指示第 一級(jí)別集合被拆分成第二級(jí)別(1210)處的兩個(gè)子集。在本示例中,第二級(jí)別(1210)處 的兩個(gè)子集包括位置0處的系數(shù)的第一子集和位置1到63處的系數(shù)的第二子集。該工具隨后將第二級(jí)別(1210)處的(位置0的)第一子集作為“集合”進(jìn)行編 碼。在本示例中,該子集只包含單個(gè)值——系數(shù)位置0處的系數(shù)值25。該工具對(duì)該第一 子集進(jìn)行熵編碼。該工具隨后繼續(xù)進(jìn)行以將第二級(jí)別處的第二子集(1210)(包括位置1到63的系數(shù)的值)作為集合進(jìn)行編碼。第二子集被拆分成第三級(jí)別(1215)處的兩個(gè)子集。第三 級(jí)別子集中的第一子集包括系數(shù)值12、0和-5,它們分別是系數(shù)位置1、2和3處的系數(shù) 值。第二第三級(jí)別子集包括系數(shù)位置4到63處的系數(shù)值。第三級(jí)別(1215)處的第一子集被拆分成第四級(jí)別(1220)處的兩個(gè)子集。這些 第四級(jí)別子集中的第一子集包括系數(shù)值12,它是系數(shù)位置1處的系數(shù)值。對(duì)這一系數(shù)值 進(jìn)行熵編碼。這些第四級(jí)別子集中的另一子集包括值0和-5,它們是系數(shù)位置2和3處 的系數(shù)值。這一第四級(jí)別子集被拆分成第五級(jí)別(1225)處的兩個(gè)子集。這些第五級(jí)別 子集中的第一子集包括系數(shù)位置2處的單個(gè)系數(shù)值0,并且這些第五級(jí)別子集中的第二子 集包括系數(shù)位置3處的單個(gè)系數(shù)值-5。這些子集中的每一個(gè)都是單值子集,并且因此對(duì) 這些子集中的每一個(gè)的系數(shù)值進(jìn)行熵編碼。返回第三級(jí)別(1215),第三級(jí)別(1215)處的第二子集(包含系數(shù)位置4到63處 的系數(shù)值)被拆分成第四級(jí)別(1220)處的兩個(gè)子集。這些第四級(jí)別子集中的第一子集包 括位置4到15處的系數(shù)的值,并且這些第四級(jí)別子集中的第二子集包括位置16到63處 的系數(shù)的值。在該示例中,系數(shù)位置4到15處的系數(shù)值全是0。因?yàn)檫@樣,所以位置 4到15的子集不必被進(jìn)一步拆分,因?yàn)樗话魏畏橇阆禂?shù)值。用信號(hào)通知指示該子 集不包含任何非零頻率系數(shù)值的代碼,該子集不被拆分,并且不對(duì)該子集執(zhí)行進(jìn)一步分 析。包含位置16到63處的系數(shù)的值的子集被拆分成第五級(jí)別(1225)處的兩個(gè)分開(kāi)的子 集,每一子集包括零值系數(shù)和非零系數(shù)的混合。繼續(xù)這一分析和對(duì)集合到各個(gè)子集的選 擇性地拆分,直至定位了所有非零頻率系數(shù)并進(jìn)行了熵編碼為止。圖12B示出將圖IlA的多級(jí)嵌套集合表示(1100)應(yīng)用于圖8的示例性一維串 (850)??傮w而言,圖12B示出與圖7的掃描次序(700)相比,圖8是掃描次序(800)對(duì) 圖1的變換系數(shù)(100)進(jìn)行了更高效的群集。變換系數(shù)(100)的該一維串(850)提供包括從位置0到位置63的系數(shù)值的第一 級(jí)別集合(1255)。第一級(jí)別集合(1255)被拆分成兩個(gè)子集,其中一個(gè)或多個(gè)代碼指示拆 分成第二級(jí)別(1260)處的兩個(gè)子集。第二級(jí)別(1210)處的兩個(gè)子集包括位置0處的系 數(shù)的第一子集和位置1到63處的系數(shù)的第二子集。位置0的子集包含單個(gè)值——系數(shù)位 置0處的系數(shù)值25,它被進(jìn)行了熵編碼。位置1到63的子集被拆分成第三級(jí)別(1265) 處的兩個(gè)子集。第三級(jí)別子集中的第一子集包括系數(shù)值12、0和-5,并且如參考圖12A所描述 的那樣被處理。(系數(shù)位置4到63處的系數(shù)值的)第二第三級(jí)別子集被拆分成第四級(jí)別 (1270)處的兩個(gè)子集。這些第四級(jí)別子集中的第一子集(包括位置4到15處的系數(shù)的 值)被進(jìn)一步拆分成兩個(gè)第五級(jí)別子集。一個(gè)第五級(jí)別子集只包含零值系數(shù),并且不被 進(jìn)一步拆分;另一第五級(jí)別子集包含零值系數(shù)和非零值系數(shù)的混合并且如圖12B所示的 那樣被進(jìn)一步拆分。第四級(jí)別子集的第二子集(包括位置16到63的系數(shù)的零值)不被 進(jìn)一步拆分,并且用信號(hào)通知指示該子集不包含任何非零頻率系數(shù)值的代碼。除圖11A、IlB和IlC中示出的多級(jí)嵌套集合表示之外,其他多級(jí)嵌套集合表示 也是可能的。并非將每一集合或子集拆分成下一級(jí)別處的兩個(gè)子集,每一集合或子集可 被拆分成多達(dá)三個(gè)子集、多達(dá)四個(gè)子集、或某一其他數(shù)量的子集。例如,第一級(jí)別集合 包括系數(shù)位置0到63處的系數(shù)值,可被拆分成三個(gè)第二級(jí)別子集,第一子集包括位置0處的系數(shù)值,第二子集包括位置1到15處的系數(shù)值,并且第三子集包括位置16到63處 的系數(shù)值。另外,至少對(duì)于圖IlA和IlB中的表示(1100、1150),劃分策略假定掃描次 序會(huì)高效地將來(lái)自該塊變換系數(shù)的非零頻率系數(shù)值編組到一維串的前部。然而,如果安 排系數(shù)值而使得它們不能被高效地編組,則嵌套集合表示可具有某種其他通用劃分,如 將包括系數(shù)0到63的第一級(jí)別集合拆分成兩個(gè)子集的二元?jiǎng)澐?,第一子集包括系?shù)位置0 到31處的系數(shù)值,并且第二子集包括系數(shù)位置32到63處的系數(shù)值,其中每一子集可能 都經(jīng)受進(jìn)一步的二元拆分。另外,多級(jí)嵌套集合表示的代碼的信令取決于實(shí)現(xiàn)。在一些情況下,給定級(jí)別 的代碼是作為對(duì)該表示的深度優(yōu)先遍歷的一部分來(lái)用信號(hào)通知的。對(duì)于圖11A,編碼工 具用信號(hào)通知0-63的代碼、0的代碼、1-63的代碼、1-3的代碼、1的代碼、2_3的代 碼、2的代碼、3的代碼、4-63的代碼,等等?;蛘撸a是作為對(duì)該表示的寬度優(yōu)先遍 歷的一部分來(lái)用信號(hào)通知的。VIII.示例熵編碼和解碼被用來(lái)表示多級(jí)嵌套集合表示中的變換系數(shù)的熵編碼的類型取決于實(shí)現(xiàn)。這一 部分描述熵編碼和解碼的兩種通用方法?;蛘撸幋a工具和解碼工具使用另一方法。A.行程長(zhǎng)度編碼和解碼變型使用行程長(zhǎng)度編碼和解碼,將給定集合的各符號(hào)(表示各單獨(dú)的系數(shù)值或系數(shù) 值的子集)編碼成序列。例如,對(duì)于某一子集,符號(hào)值0指示該子集只包括零值系數(shù), 并且符號(hào)值1指示該子集包括至少一個(gè)非零值系數(shù)。對(duì)于某一單獨(dú)的系數(shù)值,符號(hào)值0 指示該系數(shù)值是零,并且符號(hào)值1指示該系數(shù)值是非零,其中一個(gè)或多個(gè)其他代碼指示 實(shí)際值。在以下示例中,術(shù)語(yǔ)“行程_級(jí)別_代碼_x”、“行程_長(zhǎng)度_代碼”以 及“值_x”僅僅是可變長(zhǎng)度代碼、固定長(zhǎng)度代碼或表示行程級(jí)別組合、行程長(zhǎng)度計(jì)數(shù)或 值的其他位模式的指示符。對(duì)于圖IlC中的多級(jí)嵌套集合表示(1180),圖8的掃描次序(800)和圖1的變 換系數(shù)(100),位置0、1、3和9-15具有非零值,并且其他位置具有零值系數(shù)。位置 0到15的子集包括至少一個(gè)非零值,但其他三個(gè)第二級(jí)別子集中沒(méi)有一個(gè)包括任何非零 值,所以第一級(jí)別表示是1000。使用行程級(jí)別編碼(每一代碼指示零的行程計(jì)數(shù)+非零 級(jí)別),這些符號(hào)被表示成OEOB的代碼。實(shí)際上,隨后使用某一個(gè)或多個(gè)代碼來(lái)對(duì)這一 表示進(jìn)行編碼,在此其將被指示為行程_級(jí)別_代碼_0 (0的計(jì)數(shù)零+第一個(gè)1)和行程_ 級(jí)別_代碼_EOB (對(duì)于最后三個(gè)0)。第一級(jí)別表示1000足以指示位置16到63處的系 數(shù)是零值系數(shù)。位置0到15的子集被拆分成0-3、4-7、8_11以及12-15的四個(gè)子集,它們用 1011來(lái)表示。使用行程級(jí)別編碼,這些符號(hào)被表示成代碼010,指示為行程_級(jí)別_代 碼_0 (0的計(jì)數(shù)零+第一個(gè)1)、行程_級(jí)別_代碼_1 (0的計(jì)數(shù)1+第二個(gè)1)以及行程_級(jí) 別_代碼_0 (0的計(jì)數(shù)零+最后一個(gè)1)。這足以指示位置4到7的系數(shù)是零值系數(shù)。位置0到3的子集被表示為1101,位置8-11的子集被表示為0111,并且位置 12-15的子集被表示為1111。這些子集是使用行程級(jí)別編碼來(lái)進(jìn)行編碼的,或另選地使 用向量Huffman代碼或文字值來(lái)進(jìn)行編碼。對(duì)于每一非零值,一個(gè)或多個(gè)代碼隨后用信 號(hào)通知實(shí)際值以及該系數(shù)的符號(hào)。例如,代碼“值_25”、“值_12”和“值_-5”遵循位置0-3的子集的行程級(jí)別代碼。用于某一表示的代碼的信令可以遵循該表示的深度 優(yōu)先遍歷或?qū)挾葍?yōu)先遍歷。對(duì)于來(lái)自圖1、8和IlC的同一示例多級(jí)嵌套集合表示,使用除0和1的替換行程 (例如,0010或0000或1110)之外的簡(jiǎn)單行程長(zhǎng)度編碼變型,符號(hào)1000被表示為OlEOB 的代碼,指示為行程_長(zhǎng)度_代碼_0 (0的計(jì)數(shù)零)、行程_長(zhǎng)度_代碼_1 (1的計(jì)數(shù)1)和 行程_長(zhǎng)度_代碼_EC)B(0的計(jì)數(shù)3)。位置0到15的子集被拆分成0-3、4_7、8_11以 及12-15的四個(gè)子集,被編碼成行程_長(zhǎng)度_代碼_0(0的計(jì)數(shù)零)、行程_長(zhǎng)度_代碼 _1(1的計(jì)數(shù)1)、行程_長(zhǎng)度_代碼_1(0的計(jì)數(shù)1)以及行程_長(zhǎng)度_代碼_EOB (最后 兩個(gè)1)。位置0到3的子集被表示為1101,位置8-11的子集被表示為0111,并且位置 12-15的子集被表示為1111。這些子集是使用簡(jiǎn)單行程長(zhǎng)度編碼的變型來(lái)進(jìn)行編碼的, 或另選地使用向量Huffman代碼或文字值來(lái)進(jìn)行編碼。對(duì)于每一非零值,一個(gè)或多個(gè)代 碼隨后用信號(hào)通知實(shí)際值以及該系數(shù)的符號(hào)。同樣,用于某一表示的代碼的信令可以遵 循該表示的深度優(yōu)先遍歷或?qū)挾葍?yōu)先遍歷。一般而言,某一集合或子集(如,該集合/子集的兩個(gè)子集10、01或11,或者 該集合/子集的三個(gè)子集111、110、101、100、011、010或001)的符號(hào)的模式可以在位 流中用特定數(shù)量的位或位模式來(lái)指示,如行程_長(zhǎng)度_代碼、行程_級(jí)別_代碼或某一其 他模式。另外,非零值頻率系數(shù)的值是使用某一特定數(shù)量的位或位模式來(lái)指示的。例 如,值25可由任意代碼來(lái)指示,如值_(25)。B.Huffman編碼和解碼使用Huffman編碼和解碼,Huffman代碼表示特定子集或系數(shù)的符號(hào)。用 Huffman代碼表示的Huffman代碼和符號(hào)取決于實(shí)現(xiàn)。Huffman代碼可以是自適應(yīng)或非自
適應(yīng)的。例如,對(duì)于某一子集,符號(hào)值0指示該子集只包括零值系數(shù),并且符號(hào)值1指 示該子集包括至少一個(gè)非零值系數(shù)。對(duì)于某一單獨(dú)的系數(shù)值,符號(hào)值0指示該系數(shù)值是 零,并且符號(hào)值1指示該系數(shù)值是非零,其中一個(gè)或多個(gè)其他代碼指示實(shí)際值。Huffman 代碼聯(lián)合表示給定級(jí)別處的符號(hào)的值,例如表示前一章節(jié)描述的四個(gè)符號(hào)組合。作為另一示例,某一符號(hào)的符號(hào)值的字母表具有三個(gè)元素AO、Al和A2。該示 例性字母表中的第一元素是元素AO。這一元素指示,對(duì)于一個(gè)或多個(gè)系數(shù)值的給定集合 (或子集)(set_cv),set_cv中的每一系數(shù)值(cv)等于0。換言之,set_CV中不存在非零 頻率系數(shù)值。該示例性字母表中的第二元素是元素Al。這一元素指示對(duì)于set_CV中的至 少一個(gè)cv,(^=1或_1。set_cv中的其他值cv可以等于0,只要一個(gè)cv等于1或_1, 并且沒(méi)有一個(gè)具有大于1的絕對(duì)值。該示例性字母表中的第三字母表元素是A2。這一 元素指示對(duì)于set_cv中的至少一個(gè)cv,cv大于1或小于-1。set_cv中的其他值cv可以 等于0、1或-1,只要一個(gè)cv大于1或小于-1。在替換實(shí)施例中,A2可以表示Set_cv 中的至少一個(gè)cv大于或小于一個(gè)不同的數(shù)字,例如2、4、8或某一其他數(shù)字。三個(gè)不同元素AO、Al和A2可幫助該工具確定在編碼期間是否進(jìn)一步拆分該集 合或子集,并且這些元素可幫助該工具在解碼期間重構(gòu)集合或子集的值。表1指示包含 多個(gè)頻率系數(shù)值的集合X的示例性Huffinan代碼,這些頻率系數(shù)值中的至少一個(gè)等于1 或-1而沒(méi)有一個(gè)具有大于1的絕對(duì)值。表2指示包含多個(gè)頻率系數(shù)值的集合X的示例性Huffman代碼,這些頻率系數(shù)值中的至少一個(gè)具有大于1或小于_1的值。Huffman代碼 中的每一個(gè)指示與集合X的子集x_l和x_2有關(guān)的信息,其中子集可包括單個(gè)系數(shù)。
集合(或子集 的Huffman代碼集合X的子集 X 1的意義集合Z的子集 X 2的意義
權(quán)利要求
1.一個(gè)或多個(gè)存儲(chǔ)指令的存儲(chǔ)介質(zhì),所述指令在計(jì)算機(jī)上被執(zhí)行時(shí)使得所述計(jì)算機(jī) 執(zhí)行一種對(duì)視頻進(jìn)行編碼的方法,所述方法包括選擇多個(gè)掃描次序之一(605); 在位流中輸出指示所選掃描次序的信息; 應(yīng)用所選掃描次序來(lái)對(duì)一個(gè)塊的多個(gè)頻率系數(shù)進(jìn)行排序(610); 使用經(jīng)重新排序的頻率系數(shù)的多級(jí)嵌套集合表示來(lái)對(duì)該經(jīng)重新排序的多個(gè)頻率系數(shù) 進(jìn)行熵編碼(630),包括將所述經(jīng)重新排序的多個(gè)頻率系數(shù)中的一個(gè)或多個(gè)的第一集合表示為具有所述多級(jí) 嵌套集合表示的第一級(jí)別處的第一符號(hào)的概括表示;以及對(duì)所述多級(jí)嵌套集合表示的第一級(jí)別處的所述第一符號(hào)和第二符號(hào)進(jìn)行熵編碼;以及在所述位流中輸出經(jīng)熵編碼的頻率系數(shù)。
2.如權(quán)利要求1所述的一個(gè)或多個(gè)存儲(chǔ)介質(zhì),其特征在于,所述第一符號(hào)指示非零系 數(shù)值在經(jīng)重新排序的頻率系數(shù)的第一集合中的存在或缺席。
3.如權(quán)利要求1所述的一個(gè)或多個(gè)存儲(chǔ)介質(zhì),其特征在于,所述第二符號(hào)表示在所述 第一集合外的經(jīng)重新排序的多個(gè)頻率系數(shù)之一。
4.如權(quán)利要求3所述的一個(gè)或多個(gè)存儲(chǔ)介質(zhì),其特征在于,對(duì)所述第一符號(hào)和所述 第二符號(hào)進(jìn)行熵編碼包括使用Huffman編碼對(duì)所述第一符號(hào)和所述第二符號(hào)進(jìn)行聯(lián)合編 碼。
5.如權(quán)利要求1所述的一個(gè)或多個(gè)存儲(chǔ)介質(zhì),其特征在于,對(duì)所述第一符號(hào)和所述第 二符號(hào)進(jìn)行熵編碼包括對(duì)所述第一符號(hào)和所述第二符號(hào)連同一個(gè)或多個(gè)其他符號(hào)進(jìn)行行 程長(zhǎng)度編碼。
6.如權(quán)利要求1所述的一個(gè)或多個(gè)存儲(chǔ)介質(zhì),其特征在于,所述熵編碼還包括 將所述經(jīng)重新排序的多個(gè)頻率系數(shù)中的一個(gè)或多個(gè)的第二集合表示為具有所述多級(jí)嵌套集合表示的第一級(jí)別處的第二符號(hào)的概括表示,其中對(duì)所述第一符號(hào)和所述第二符 號(hào)進(jìn)行熵編碼包括使用Huffman編碼對(duì)所述第一符號(hào)和所述第二符號(hào)進(jìn)行聯(lián)合編碼。
7.如權(quán)利要求1所述的一個(gè)或多個(gè)存儲(chǔ)介質(zhì),其特征在于,所述第一集合包括至少一 個(gè)非零系數(shù)值,并且其中所述熵編碼還包括在所述多級(jí)嵌套集合表示的低于所述第一級(jí) 別的第二級(jí)別處對(duì)所述第一集合的相應(yīng)系數(shù)的系數(shù)值進(jìn)行熵編碼。
8.如權(quán)利要求1所述的一個(gè)或多個(gè)存儲(chǔ)介質(zhì),其特征在于,所述第一集合包括至少一 個(gè)非零系數(shù)值,并且其中所述熵編碼還包括將所述第一集合的頻率系數(shù)中的一個(gè)或多個(gè)的第一子集表示為具有所述多級(jí)嵌套集 合表示的低于所述第一級(jí)別的第二級(jí)別處的第一子符號(hào)的概括表示。
9.如權(quán)利要求8所述的一個(gè)或多個(gè)存儲(chǔ)介質(zhì),其特征在于,還包括在所述多級(jí)嵌套集 合表示的低于所述第二級(jí)別的第三級(jí)別處對(duì)所述第一子集的相應(yīng)系數(shù)的系數(shù)值進(jìn)行熵編 碼。
10.如權(quán)利要求1所述的一個(gè)或多個(gè)存儲(chǔ)介質(zhì),其特征在于,所述選擇包括 在所述多個(gè)掃描次序之間評(píng)估多個(gè)預(yù)定掃描次序;以及如果所述多個(gè)預(yù)定掃描次序沒(méi)有一個(gè)產(chǎn)生用于熵編碼的合適的經(jīng)重新排序的頻率系數(shù),則創(chuàng)建所述多個(gè)掃描次序的新掃描次序。
11.一種重構(gòu)視頻的方法,所述方法包括在位流中接收多個(gè)頻率系數(shù)的經(jīng)熵編碼的視頻信息; 對(duì)所述經(jīng)熵編碼的視頻信息進(jìn)行熵解碼(1505),包括對(duì)所述多個(gè)頻率系數(shù)的多級(jí)嵌套集合表示的第一級(jí)別處的第一符號(hào)和第二符號(hào)進(jìn)行 熵解碼,其中所述第一符號(hào)表示所述多個(gè)頻率系數(shù)中的一個(gè)或多個(gè)的第一集合;以及對(duì)所述多個(gè)頻率系數(shù)的多級(jí)嵌套集合表示的低于第一級(jí)別的第二級(jí)別處的第一子符 號(hào)進(jìn)行熵解碼,其中所述第一子符號(hào)表示所述第一集合的頻率系數(shù)中的一個(gè)或多個(gè)的第一子集;確定所述多個(gè)頻率系數(shù)的掃描次序(1510);根據(jù)所確定的掃描次序?qū)λ龆鄠€(gè)頻率系數(shù)進(jìn)行重新排序(1515);以及 使用經(jīng)重新排序的頻率系數(shù)來(lái)重構(gòu)所述視頻。
12.如權(quán)利要求11所述的方法,其特征在于,所述第一符號(hào)指示非零系數(shù)值在所述第 一集合中的存在或缺席。
13.如權(quán)利要求12所述的方法,其特征在于,所述多個(gè)頻率系數(shù)的多級(jí)嵌套集合表示 的第一級(jí)別處的第二符號(hào)指示非零系數(shù)值在所述第一集合外部的所述多個(gè)頻率系數(shù)中的 一個(gè)或多個(gè)的第二集合中的在場(chǎng)或缺席。
14.如權(quán)利要求11所述的方法,其特征在于,所述第一子符號(hào)指示非零系數(shù)值在所述 第一子集中的存在或缺席。
15.如權(quán)利要求11所述的方法,其特征在于,所述確定所述掃描次序包括 接收所述位流中的掃描次序信息,所述掃描次序信息指示所確定的項(xiàng)掃描次序。
16.如權(quán)利要求15所述的方法,其特征在于,所述掃描次序是多個(gè)預(yù)定掃描次序之一。
17.—種編碼器系統(tǒng),包括用于從多個(gè)掃描次序中選擇掃描次序的塊掃描次序選擇器(425); 用于使用所選掃描次序?qū)σ粋€(gè)塊中的多個(gè)頻率系數(shù)進(jìn)行重新排序的塊掃描儀 (425);用于通過(guò)以下動(dòng)作對(duì)多級(jí)嵌套集合表示中的經(jīng)重新排序的頻率系數(shù)進(jìn)行編碼的一個(gè) 或多個(gè)熵編碼模塊(430)對(duì)所述多級(jí)嵌套集合表示的給定級(jí)別處的多個(gè)符號(hào)進(jìn)行編碼,所述給定級(jí)別處的所 述多個(gè)符號(hào)中的每一個(gè)表示所述經(jīng)重新排序的頻率系數(shù)中的一個(gè)或多個(gè)的集合;以及對(duì)于所述給定級(jí)別處的多個(gè)符號(hào)中的每一個(gè),確定是否要將所述符號(hào)的集合拆分成 多個(gè)子集,并且如果是,則對(duì)所述多級(jí)嵌套集合表示的更低級(jí)別處的多個(gè)子符號(hào)進(jìn)行編 碼,所述更低級(jí)別處的多個(gè)子符號(hào)中的每一個(gè)表示所述多個(gè)子集之一。
18.如權(quán)利要求17所述的編碼器系統(tǒng),其特征在于,所述塊掃描次序選擇器被用來(lái)基 于將所述多個(gè)掃描次序中的每一個(gè)閉環(huán)應(yīng)用于所述塊的結(jié)果來(lái)選擇所述掃描次序。
19.如權(quán)利要求17所述的編碼器系統(tǒng),其特征在于,所述塊掃描次序選擇器被用來(lái)基 于將所述多個(gè)掃描次序中的一個(gè)或多個(gè)應(yīng)用于所述塊的開(kāi)環(huán)評(píng)估的結(jié)果來(lái)選擇所述掃描 次序。
20.如權(quán)利要求17所述的編碼器系統(tǒng),其特征在于,所述多個(gè)掃描次序是預(yù)定的。
全文摘要
呈現(xiàn)了用于對(duì)一塊頻率系數(shù)進(jìn)行編碼和解碼的技術(shù)和工具。編碼器從多個(gè)可用掃描次序中選擇掃描次序并隨后將所選掃描次序應(yīng)用于變換系數(shù)的二維矩陣,從而將頻率系數(shù)的非零值一起編組在一維串中。編碼器根據(jù)多級(jí)嵌套集合表示對(duì)該系數(shù)值的一維串進(jìn)行熵編碼。在解碼時(shí),解碼器對(duì)來(lái)自多級(jí)嵌套集合表示的系數(shù)值的一維串進(jìn)行熵解碼。解碼器從多個(gè)可用掃描次序中選擇掃描次序,并隨后使用所選掃描次序?qū)⑦@些系數(shù)重新排序回二維矩陣。
文檔編號(hào)H04N7/30GK102017634SQ200980116564
公開(kāi)日2011年4月13日 申請(qǐng)日期2009年4月1日 優(yōu)先權(quán)日2008年5月2日
發(fā)明者C·圖, C-L·林, S·孫, S·瑞古納薩恩 申請(qǐng)人:微軟公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1