對視頻塊的經交錯子塊的熵解碼的製作方法
2023-09-12 14:07:35
專利名稱:對視頻塊的經交錯子塊的熵解碼的製作方法
技術領域:
本發明涉及數字視頻解碼,且更特定來說,涉及視頻塊的係數的熵解碼。
背景技術:
數字視頻能力可併入到廣泛範圍的裝置中,包括數位電視、數字直播系統、例如無 線電電話手持機的無線通信裝置、無線廣播系統、個人數字助理(PDA)、膝上型或桌上型計 算機、數位相機、數字記錄裝置、視頻遊戲裝置、視頻遊戲控制臺等。數字視頻裝置實施例如 MPEG-2、MPEG-4或H. 264/MPEG-4第10部分高級視頻解碼(AVC)的視頻壓縮技術,以較有 效地發射和接收數字視頻。視頻壓縮技術執行空間和時間預測以減少或移除視頻序列中固 有的冗餘。在視頻解碼中,視頻壓縮通常包括空間預測、運動估計和運動 補償。幀內解碼依賴 於空間預測來減少或移除給定視頻幀內的視頻塊之間的空間冗餘。幀間解碼依賴於時間預 測來減少或移除視頻序列的連續視頻幀的視頻塊之間的時間冗餘。對於幀間解碼來說,視 頻編碼器執行運動估計以追蹤兩個或兩個以上鄰近幀之間的匹配的視頻塊的移動。運動估 計產生運動向量,所述運動向量指示視頻塊相對於一個或一個以上參考幀中的對應預測視 頻塊的位移。運動補償使用運動向量從參考幀產生預測視頻塊。在運動補償後,通過從待 解碼的原始視頻塊減去預測視頻塊來形成給定殘餘視頻塊。視頻編碼器可應用變換、量化和熵解碼過程來進一步降低與殘餘塊的通信相關聯 的位速率。變換技術可包含離散餘弦變換或概念上類似的過程、子波變換、或可能其它類型 的變換。在離散餘弦變換或概念上類似的過程中,變換過程將像素值的一集合改變為表示 像素值在頻域中的能量的變換係數。將量化應用於變換係數,且通常涉及限制與任何給定 係數相關聯的位數目的過程。熵解碼包含共同地壓縮經量化的變換係數的序列的一個或一 個以上過程。熵解碼過程的實例包括內容自適應可變長度解碼(CAVLC)和上下文自適應二 進位算術解碼(CABAC)。CAVLC為由ITU H. 264/MPEG4,AVC標準支持的一種類型的熵解碼技術。CAVLC以 有效地壓縮變換係數的經串行化的「遊程」的方式使用可變長度解碼(VLC)表。CABAC為由 ITU H. 264/MPEG4,AVC標準支持的另一類型的熵解碼技術。CABAC可涉及若干階段,包括二 值化、上下文模型選擇和二進位算術解碼。還存在許多其它類型的熵解碼技術,且將很可能 在將來出現新的熵解碼技術。不管編碼過程中所使用的熵解碼的類型如何,視頻解碼器均可執行相反的熵解碼 操作以重建係數。所述視頻解碼器接著反量化並反變換所述係數。所述視頻解碼器可基於 運動信息和與視頻塊相關聯的殘餘信息而對視頻信息解碼以便產生視頻信息的經解碼的 序列。
發明內容
一般來說,本發明描述用於視頻塊的熵解碼的技術。本發明提出可提升熵解碼效率的語法元素。所述語法元素可識別給定視頻塊內的非零值子塊的數目,其中所述非零值 子塊包含給定視頻塊內的包括至少一個非零係數(例如,非零變換係數)的子塊。相反,零 值子塊指給定視頻塊內的僅包括零值係數的子塊。根據本發明,可在熵編碼期間跳過零值 子塊,且可基於語法元素在解碼器處重建這些零值子塊。以此方式,可避免零值係數的解碼 以提升解碼效率。所提出的語法元素提供用以傳達一個或一個以上子塊是在編碼過程期間 跳過的零值子塊的事實的機制,藉此允許解碼器在無任何額外信息傳遞的情況下重建這些 零值子塊。在一個實例中,本發明提供一種用於對視頻塊進行解碼的方法,所述方法包含對 界定視頻塊的非零值子塊的數目的語法元素進行解碼,其中非零值子塊包括至少一個非零 係數;產生視頻塊的非零值子塊;以及對非零值子塊進行熵解碼。在另一實例中,本發明提供一種包含熵解碼單元的設備,所述熵解碼單元經配置 以對界定視頻塊的非零值子塊的數目的語法元素進行解碼,其中非零值子塊包括至少一 個非零係數;產生視頻塊的非零值子塊;以及對非零值子塊進行熵解碼。在另一實例中,本發明提供一種裝置,其包含用於對界定視頻塊的非零值子塊的 數目的語法元素進行解碼的裝置,其中非零值子塊包括至少一個非零係數;用於產生視頻 塊的非零值子塊的裝置;以及用於對非零值子塊進行熵解碼的裝置。在另一實例中,本發明提供一種包含熵編碼單元和無線發射器的裝置。熵編碼單 元經配置以對界定視頻塊的非零值子塊的數目的語法元素進行解碼,其中非零值子塊包 括至少一個非零係數;產生視頻塊的非零值子塊;以及對非零值子塊進行熵編碼。無線發 射器發送包含經熵解碼的非零值子塊和語法元素的位流。在另一實例中,本發明提供一種裝置,其包含無線接收器,其接收包含經熵解碼 的非零值子塊和語法元素的位流;以及熵解碼單元,其經配置以對語法元素進行解碼以確 定視頻塊的非零值子塊的數目,其中非零值子塊包括至少一個非零係數。熵解碼單元基於 語法元素產生視頻塊的非零值子塊,且對非零值子塊進行熵解碼。可以硬體、軟體、固件、或其任何組合實施本發明中所描述的技術。如果以硬體實 施,則可將設備實現為集成電路、處理器、離散邏輯、或其任何組合。如果以軟體實施,則軟 件可執行於例如微處理器、專用集成電路(ASIC)、現場可編程門陣列(FPGA)或數位訊號處 理器(DSP)的一個或一個以上處理器中。執行所述技術的軟體可初始存儲於計算機可讀媒 體中且加載於處理器中並被執行。因此,本發明也涵蓋一種計算機可讀媒體,所述計算機可讀媒體包含在視頻解碼 裝置中執行後致使裝置對視頻塊進行解碼的指令,其中所述指令致使裝置對界定視頻塊 的非零值子塊的數目的語法元素進行解碼,其中非零值子塊包括至少一個非零係數;產生 視頻塊的非零值子塊;以及對非零值子塊進行熵解碼。在一些情況下,計算機可讀媒體可形 成可售給製造商和/或用於視頻解碼裝置中的電腦程式產品的部分。電腦程式產品可 包括計算機可讀媒體,且在一些情況下也可包括封裝材料。在附圖和以下描述中闡述本發明的一個或一個以上方面的細節。將從描述和圖式以及從權利要求書明白本發明中所描述的技術的其它特徵、目的和優勢。
圖1為說明視頻解碼和解碼系統的示範性框圖。圖2為說明與本發明一致的視頻編碼器的實例的框圖。圖3為說明8X8視頻塊的鋸齒形掃描的概念圖。圖4為說明圖3中所展示的8X8視頻塊的四個不同的4X4子塊的係數的表格圖。圖5為說明與本發明一致的視頻解碼器的一實例的框圖。圖6為針對示範性語法元素值四而說明圖3中所展示的8X8視頻塊 的四個不同 的4X4子塊的係數的表格圖。圖7為針對示範性語法元素值三而說明圖3中所展示的8X8視頻塊的四個不同 的4X4子塊的係數的表格圖。圖8為針對示範性語法元素值二而說明圖3中所展示的8X8視頻塊的四個不同 的4X4子塊的係數的表格圖。圖9為針對示範性語法元素值一而說明圖3中所展示的8X8視頻塊的四個不同 的4X4子塊的係數的表格圖。圖10為說明與本發明一致的解碼(即,編碼或解碼)技術的流程圖。圖11為說明與本發明一致的編碼技術的流程圖。圖12為說明與本發明一致的解碼技術的流程圖。
具體實施例方式本發明描述用於視頻塊的熵解碼的技術。視頻塊可形成視頻幀、視頻切片或其它 視頻單元,且本發明的技術可被應用為例如幀或切片的視頻單元的序列的解碼過程(例 如,編碼或解碼)的部分。為了促進有效的熵解碼,本發明提出一特定類型的語法元素。根 據本發明,所述語法元素可識別給定視頻塊內的非零值子塊的數目,其中非零值子塊包含 給定視頻塊內的包括至少一個非零係數的子塊。相反,零值子塊指給定視頻塊內的僅包括 零值係數的子塊。根據本發明,可在熵編碼期間跳過零值子塊,且可基於語法元素在解碼器處重建 零值子塊。以此方式,可避免零值係數的解碼以提高解碼效率。所提出的語法元素提供用 於傳達一個或一個以上子塊是在編碼過程期間跳過的零值子塊的事實的機制,藉此允許解 碼器在無任何額外信息傳遞的情況下重建這些零值子塊。語法元素可界定作為零值子塊的 子塊的數目,且在此過程中,可固有地識別這些子塊在經解碼的視頻塊中存在的地方和在 視頻塊內界定子塊(零值子塊和非零值子塊)的方式。在編碼器側,可經由基於空間或基於運動的預測技術來對視頻塊進行編碼(例 如)以分別產生經幀內解碼的(I)幀或經幀間解碼的(P或B)幀。可在熵解碼之前變換並 量化視頻塊的殘餘像素值。對於熵編碼來說,可掃描視頻塊的係數(即,經變換並量化的系 數)以便界定係數的一維向量。鋸齒形掃描為本文中所描述的一個實例,但也可使用其它 類型的掃描,例如,垂直或水平掃描。可界定語法元素以識別存在於視頻塊中的非零值子塊 的數目。可基於語法元素交錯對應於視頻塊的係數的經串行化的一維向量以便界定對應於非零值子塊的係數的一維向量的集合。可關於對應於非零值子塊的係數的一維向量執行熵編碼(例如,CAVLC、CABAC或另一熵解碼方法),同時可忽略或跳過零值子塊。經熵解碼的非零值子塊和語法元素可界定 可發送到解碼器的經編碼的位流。在解碼器側,接收經編碼的位流。而且,位流可包括經熵解碼的非零值子塊和語法 元素。基於界定非零值子塊的數目的語法元素,解碼器可識別哪些子塊為經熵解碼的非零 值子塊且哪些子塊為被跳過的零值子塊。即,語法元素可界定非零值子塊的數目和所有系 數等於零的零值子塊的數目兩者。舉例來說,給定針對特定視頻塊大小的預期子塊的已知 數目,傳達非零值子塊的數目或零值子塊的數目的語法元素可界定非零值子塊的數目和零 值子塊的數目兩者。因此,基於語法元素,解碼器對非零值子塊進行解碼,且針對任何零值 子塊的係數產生零以便重建視頻塊的係數的完整集合。可接著執行反量化、反變換和基於 空間的解碼或基於運動的預測以便重建視頻塊。圖1為說明可實施本發明的技術的示範性視頻編碼和解碼系統10的框圖。如圖1 中所展示,系統10包括源裝置12,其經由通信信道15將經編碼的視頻發射到接收裝置16。 源裝置12和接收裝置16可包含廣泛範圍的裝置中的任一者。在一些情況下,源裝置12和 接收裝置16包含無線通信裝置手持機,S卩,所謂的蜂窩式或衛星無線電電話。然而,大體上 涉及視頻塊的熵解碼的本發明的技術不一定限於無線應用或設定。源裝置12可包括視頻源20、視頻編碼器22、調製器/解調器(數據機)23和 發射器24。接收裝置16可包括接收器26、數據機27、視頻解碼器28和顯示裝置30。 根據本發明,源裝置12的視頻編碼器22可經配置以如下文中更詳細地描述而執行有效的 熵解碼。圖1的所說明的系統10僅為示範性的。可由支持例如內容自適應可變長度解碼 (CAVLC)、上下文自適應二進位算術解碼(CABAC)或其它熵解碼方法等廣泛多種熵解碼方 法中的任一者的任一編碼或解碼裝置來執行本發明的熵解碼技術。源裝置12和接收裝置 16僅為這些解碼裝置的實例。本發明的技術可包括對界定視頻塊的非零值子塊的數目的語法元素進行解碼, 其中非零值子塊包括至少一個非零係數;基於語法元素產生視頻塊的非零值子塊;以及對 非零值子塊進行熵解碼。可由裝置12在編碼過程期間和/或由裝置16在解碼過程期間執 行所述技術。一般來說,源裝置12產生用於發射到接收裝置16的經解碼的視頻數據。然而,在 一些情況下,裝置12、16可以大體上對稱的方式操作。舉例來說,裝置12、16中的每一者可 包括視頻編碼和解碼組件。因此,系統10可支持視頻裝置12、16之間的單向或雙向視頻發 射,例如,以用於視頻串流、視頻回放、視頻廣播或視頻電話。源裝置12的視頻源20可包括例如攝像機等視頻捕獲裝置、含有先前捕獲的視頻 的視頻檔案、或來自視頻內容提供者的視頻饋送。作為另一替代方案,視頻源20可產生基 於計算機圖形的數據作為源視頻,或作為直播視頻、所存檔的視頻與計算機產生的視頻的 組合。在一些情況下,如果視頻源20為攝像機,則源裝置12和接收裝置16可形成所謂的 相機電話或視頻電話。在每一情況下,可由視頻編碼器22對經捕獲、經預捕獲或計算機產 生的視頻編碼。可接著由數據機23根據例如碼分多址(CDMA)等通信標準或另一通信標準或技術調製經編碼的視頻信息,且將其經由發射器24發射到接收裝置16。接收裝置16的接收器26經由信道15接收信息,且數據機27解調所述信息。 由視頻解碼器28執行的視頻解碼過程可執行熵解碼以作為視頻序列的重建的部分。類似 於編碼過程,熵解碼過程使用本發明的技術以便支持經改進的數據壓縮水平。顯示裝置28 向用戶顯示經解碼的視頻數據,且可包含例如陰極射線管(CRT)、液晶顯示器(IXD)、等離 子體顯示器、有機發光二極體(OLED)顯示器或另一類型的顯示裝置等多種顯示裝置中的 任一者。在圖1的實例中,通信信道15可包含任何無線或有線通信媒體,例如,射頻(RF) 頻譜或一個或一個以上物理髮射線、或無線媒體與有線媒體的任何組合。通信信道15可形 成例如區域網、廣域網,或全球網絡(例如,網際網路)等基於包的網絡的部分。通信信道15 一般代表用於將視頻數據從源裝置12發射到接收裝置16的任何合適的通信媒體或不同通 信媒體的集合。視頻編碼器22和視頻解碼器28可根據支持CAVLC、CABAC或例如ITU-T H. 264標 準(或者被稱作MPEG-4第10部分高級視頻解碼(AVC))等另一熵解碼方法的視頻壓縮標 準而操作。儘管在圖1中未展示,但在一些方面中,視頻編碼器22和視頻解碼器28可各自 與音頻編碼器和解碼器集成,且可包括適當的MUX-DEMUX單元或其它硬體和軟體,以處置 共同數據流或單獨數據流中的音頻與視頻兩者的編碼。如果適用,則MUX-DEMUX單元可符 合ITU H. 223多路復用器協議或例如用戶數據報協議(UDP)等其它協議。
由ITU-T視頻解碼專家組(VCEG)與IS0/IEC運動圖片專家組(MPEG) —起將ITU H. 264/MPEG-4(AVC)標準制定為被稱作聯合視頻小組(JVT)的集體合作夥伴的產品。在一 些方面中,本發明中所描述的技術可應用於通常符合H. 264標準的裝置。ITU-T研究組在 2005年3月在ITU-T推薦H. 264 「用於通用音視頻服務的高級視頻解碼(Advanced Video Coding for generic audiovisual services) 」 中描述了 H. 264 標準,其在本文中可被稱 作H. 264標準或H. 264規範或H. 264/AVC標準或規範。聯合視頻小組(JVT)繼續致力於對 H. 264/MPEG-4AVC 的擴展。可將視頻編碼器22和視頻解碼器28各自實施為一個或一個以上微處理器、數字 信號處理器(DSP)、專用集成電路(ASIC)、現場可編程門陣列(FPGA)、離散邏輯、軟體、硬 件、固件、或其任何組合。可將視頻編碼器22和視頻解碼器28中的每一者包括於一個或一 個以上編碼器或解碼器中,其任一者可在相應的移動裝置、訂戶裝置、廣播裝置、伺服器等 中集成為組合的編碼器/解碼器(CODEC)的部分。視頻序列包括一系列視頻幀。在一些情況下,可將視頻序列布置為圖像群組 (GOP)。視頻編碼器22對個別視頻幀內的視頻塊操作以便對視頻數據進行編碼。視頻塊可 具有固定或變化的大小,且其大小可根據所規定的解碼標準而不同。每一視頻幀可包括一 系列切片。每一切片可包括可布置成更小塊的一系列宏塊。作為一實例,ITU-T H. 264標準 支持各種塊大小的幀內預測(例如,對於亮度分量來說為16X16、8X8或4X4,且對於色度 分量來說為8X8)以及各種塊大小的幀間預測(例如,對於亮度分量來說為16X16、16X8、 8X16、8X8、8X4、4X8和4X4,且對於色度分量來說為對應的經縮放的大小)。視頻塊可 (例如)在例如離散餘弦變換或概念上類似的變換過程的變換過程後包含像素數據的塊或 變換係數的塊。可量化變換係數。本發明的熵解碼技術通常應用於經量化的變換係數的熵解碼。可將例如宏塊的視頻塊劃分為較小大小的視頻塊。較小的視頻塊可提供較好的分 辨率,且可用於定位包括高細節水平的視頻幀。一般來說,可將宏塊(MB)和各種較小塊全 部視為視頻塊。另外,可認為切片為一系列視頻塊(例如,MB和/或較小大小的塊)。每一 切片可為一視頻幀的可獨立解碼的單元。在預測後,可對8X8殘餘塊或4X4殘餘塊執行 變換,且如果使用intra_16X16預測模式,則可將額外變換應用於色度分量或亮度分量的 4X4塊的DC係數。在變換後,仍可將數據稱作視頻塊。然而,在變換後,視頻塊含有變換系 數而非像素值。因此,經變換的視頻塊包含變換係數的塊。術語「係數」通常指變換係數, 但或者可指其它類型的係數或值。在幀內或幀間預測解碼和變換技術(例如,用於H. 264/AVC中的4X4或8X8整數 變換或離散餘弦變換DCT)後,可執行量化。可使用例如基於子波的壓縮的其它變換技術。 量化通常指係數經量化以可能減少用以表示係數的數據的量的過程。量化過程可減小與所 述係數中的一些或全部相關聯的位深度。舉例來說,可在量化期間將8位值下捨入到7位
值。在量化後,可根據本文中所描述的技術執行熵解碼。特定來說,可將變換係數的視 頻塊(例如,8X8視頻塊或16X16視頻塊)交錯成4X4子塊的集合。可以促進創建包含 每一變換係數為零的子塊的零值子塊的方式界定交錯。語法元素界定此交錯且藉此界定視 頻塊內的子塊。在熵解碼期間,因為解碼器可使用語法元素來重建零值子塊,所以跳過零值 子塊。即,在熵解碼過程中僅對非零值子塊進行解碼,且放棄零值子塊且不將其包括在經編 碼的位流中。非零值子塊指具有至少一個非零係數的子塊。零值子塊指所有變換係數均具 有零值的子塊。圖2為說明視頻編碼器50的實例的框圖,所述視頻編碼器50包括在編碼過程期 間執行本發明的技術的熵解碼單元46。視頻編碼器50可執行視頻幀內的塊的幀內解碼和 幀間解碼。幀內解碼依賴於空間預測來減少或移除給定視頻幀內的視頻中的空間冗餘。幀 間解碼依賴於時間預測來減小或移除視頻序列的鄰近幀內的視頻中的時間冗餘。對於幀間 解碼來說,視頻編碼器50執行運動估計以追蹤在兩個或兩個以上鄰近幀之間的匹配的視 頻塊的移動。幀內模式(I模式)可指基於空間的壓縮模式且例如預測(P模式)或雙向(B 模式)的幀間模式可指基於時間的壓縮模式。如圖2中所展示,視頻編碼器50接收待編碼的視頻幀內的當前視頻塊。在圖2的 實例中,視頻編碼器50包括運動估計單元32、參考幀存儲件34、運動補償單元36、塊變換單 元38、量化單元40、反量化單元42、反變換單元44和熵解碼單元46。也可包括解塊濾波器 (未圖示)以對塊邊界濾波以移除塊假影。視頻編碼器50也包括加法器48和加法器51。 圖2說明用於視頻塊的幀間解碼的視頻編碼器50的時間預測組件。雖然為了易於說明在 圖2中未展示,但視頻編碼器50也可包括用於一些視頻塊的幀內解碼的空間預測組件。運動估計單元32比較待編碼的視頻塊與一個或一個以上鄰近視頻參考幀中的各 個塊以便確定一個或一個以上運動向量。可從參考幀存儲件34檢索鄰近幀,所述參考幀存 儲件34可包含任何類型的存儲器或數據存儲裝置以存儲從先前編碼的塊重建的視頻塊。 可對可變大小(例如,16\16、16\8、8\16、8父8或更小塊大小)的塊執行運動估計。運動 估計單元32識別鄰近幀中的最緊密匹配待解碼的當前視頻塊的塊,且確定塊之間的位移。在此基礎上,運動估計單元32產生運動向量(MV)(或在雙向預測的情況下為多個MV),所述 運動向量指示當前視頻塊與用以對當前視頻塊進行解碼的預測塊之間的位移的量值和軌 跡。運動向量可具有二分之一或四分之一像素精確度或更精細的精確度,從而允許視 頻編碼器50追蹤具有高於整數像素位置的精確度的運動,且獲得較好的預測塊。在使用具 有分數像素值的運動向量時,在運動補償單元36中實行內插運算。運動估計單元32識別 視頻塊的所要的運動向量,且運動補償單元36使用所得的運動向量通過運動補償而形成 預測視頻塊。視頻編碼器50通過從正解碼的原始視頻塊中減去由運動補償單元36產生的預測 視頻塊而形成殘餘視頻塊。加法器48執行此減法運算。塊變換單元38對殘餘塊應用例 如離散餘弦變換(DCT)或概念上類似的變換的變換,從而產生包含殘餘變換塊係數的視頻 塊。塊變換單元38 (例如)可執行由H. 264標準定義的概念上類似於DCT的其它變換。量化單元40量化殘餘變換係數以進一步減小位速率。量化單元40 (例如)可限 制用以對係數中的每一者進行解碼的位的數目。在量化後,熵編碼單元46根據例如CAVLC 或CABAC等熵解碼方法對經量化的變換係數進行熵編碼以進一步壓縮數據。特定來說,根據本發明,熵解碼單元46可將視頻塊(例如,8 X 8或16 X 16視頻塊) 劃分成子塊(例如,4X4子塊)。舉例來說,視頻塊可包含包含64個係數的8X8視頻塊, 且子塊可包含若干4X4塊,每一塊包含16個係數。在另一實例中,視頻塊可包含包含256 個係數的16X 16視頻塊,且子塊可包含包含16個係數的若干4X4塊。然而,許多其它形 狀或大小的塊和子塊是與本發明一致的。在任一情況下,可將子塊表徵為非零值子塊或零 值子塊。非零值子塊包含具有至少一個非零係數(例如,其中至少一係數值為1、2、3或更 高)的子塊,而零值子塊包含具有所有零值係數的子塊。熵編碼單元46對界定視頻塊的非零值子塊的數目的語法元素進行解碼,其中非 零值子塊包括至少一個非零係數。熵解碼單元46產生非零值子塊,且對非零值子塊進行熵 解碼。舉例來說,熵編碼單元46可基於語法元素而交錯視頻塊的係數以便產生子塊,且此 交錯可促進創建零值子塊。因為可在無需發射零值的情況下基於語法元素在解碼器處重建 零值子塊,所以熵編碼單元46對非零值子塊進行熵解碼,但跳過對零值子塊的熵編碼。在由熵編碼單元46進行熵解碼後,可將經編碼的視頻發射到另一裝置或經存檔 以用於稍後發射或檢索。反量化單元42和反變換單元44分別應用反量化和反變換以重建 像素域中的殘餘塊以用作參考塊。在此重建過程中使用零值子塊。加法器51將經重建的 殘餘塊添加到由運動補償單元36產生的經運動補償的預測塊以產生經重建的視頻塊以供 存儲在參考幀存儲件34中。經重建的視頻塊由運動估計單元32和運動補償單元36用作 參考塊以對後續視頻幀中的塊進行編碼。圖3為可由熵編碼單元46 (或由編碼器50的另一單元)執行以便將視頻塊80表 示為係數的一維向量的鋸齒形掃描的概念說明。此鋸齒形掃描的掃描次序遵循穿過視頻塊 80的箭頭,且以掃描次序標註係數。特定來說,圖3中所展示的數值指示連續一維向量內的 係數的位置,且不表示係數的值。本發明的技術不限制於任何特定掃描次序或技術。然而, 因為較高能量係數通常位於視頻塊80的左上角,所以例如圖3所說明的鋸齒形掃描可對變 換係數非常有用。因此,鋸齒形掃描常引起具有零值的許多較低編號的係數。雖然被描述為由熵編碼單元46執行,但在編碼過程中的較早階段可執行鋸齒形掃描或掃描成一維向 量的其它類型的掃描(例如,水平或垂直掃描)。圖4為說明圖3中所展示的8X8視頻塊的四個不同的4X4子塊的係數的表格圖。 如圖4中所展示,可界定四個不同的經交錯的子塊且將其表示為四個不同的一維向量。每 隔三個係數包括在給定子塊中。因此,可將圖3的視頻塊80表示為六十四個係數的一維向 量(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50, 51,52,53,54,55,56,57,58,59,60,61,62,63,64)。可將四個不同的經交錯的子塊表示為四個不同的十六個係數的一維向量,如圖4 中所展示。在此情況下,經交錯的子塊1為(1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61)。經交錯的子塊2為(2,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62)。經交錯的子塊3為(3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63)。經交錯的子塊4為(4,8,12,16,20,24,28,32,36,40,44,48,52,57,60,64)。因此,交錯視頻塊的值以使得每隔三個變換係數組合在給定子塊中,其中每一子 塊與下一子塊偏移一。在上文和圖4中所展示的子塊中,數字指劃分成子塊的視頻塊內的 係數的位置。根據本發明,以促進創建一個或一個以上零值視頻塊的方式交錯視頻塊可為 有用的。在此情況下,識別一個或一個以上零值視頻塊的語法元素可包含顯著少於原本編 碼並傳達零值視頻塊將需要的位的位。如下文更詳細地論述,本文中被稱作Syntax (Number of Blocks)的語法元素可用於此目的。圖5為說明視頻解碼器60的實例的框圖,所述視頻解碼器60對以本文中所描述 的方式編碼的視頻序列解碼。視頻解碼器60包括熵解碼單元52,其執行由圖2的熵編碼單 元46執行的編碼的互逆解碼功能。視頻解碼器60可對視頻幀內的塊執行幀內解碼和幀間解碼。在圖5的實例中,視 頻解碼器60包括熵解碼單元52 (上文中提及)、運動補償單元54、反量化單元56、反變換單 元58和參考幀存儲件62。視頻解碼器60還包括加法器64。任選地,視頻解碼器60還可 包括解塊濾波器(未圖示),其對加法器64的輸出進行濾波。圖5說明用於視頻塊的幀間 解碼的視頻解碼器60的時間預測組件。儘管在圖5中未展示,但視頻解碼器60還可包括 用於一些視頻塊的幀內解碼的空間預測組件。如所述,熵解碼單元52執行由圖2的熵編碼單元46執行的編碼的互逆解碼功能。 一般來說,熵解碼單元52對界定視頻塊的非零值子塊的數目的語法元素進行解碼,其中非 零值子塊包括至少一個非零係數,基於語法元素產生視頻塊的非零值子塊,並對非零值子 塊進行熵解碼。在解碼側,產生非零值子塊包含基於語法元素解析位流。熵解碼單元52接收位 流,所述位流包含語法元素和經熵解碼的非零值子塊,但不包括所有係數等於零的任何零值子塊。熵解碼單元52可基於語法元素識別此些零值子塊。熵解碼單元52基於語法元素 解析位流以便產生非零值子塊,且接著重建任何零值子塊的零值係數的集合。換句話說,從 經編碼的位流排除零值子塊的係數,且熵解碼單元52產生此些值。熵解碼單元52僅使用 語法元素來確定是否已排除任何零值子塊,且因此需要在解碼器60處產生所述零值子塊。例如,由編碼器50的熵編碼器46執行的交錯過程(圖2)可界定非零值子塊和零 值子塊。此外,如果可能,熵解碼器46可選擇用以執行的交錯類型以便產生零值子塊。在 隨後的實例中,假設視頻塊包含係數的8X8塊,且子塊包含4X4塊。然而,本發明不限制 於任何特定大小或形狀的塊。子塊通常為與正解碼的視頻塊相關聯的係數的子集,但視頻 塊中的係數的實際數目和子塊中的係數的數目經受廣泛多種變化或實施。可將語法元素表示為Syntax (Number of Blocks)。在可交錯成四個4X4子塊的 8X8視頻塊的實例中,Syntax (Number of Blocks)可採用值1、2、3或4。作為另一實例, 可將16X16視頻塊交錯成十六個4X4子塊,且在此情況下,Syntax (Number of Blocks) 可採用值1、2、3、4、5、6、7、8、9、10、11、12、13、14、15或16。此外,許多其它形狀和大小的 視頻塊和子塊與本發明一致。在一些情況下,對於交錯成四個4X4子塊的8X8視頻塊, Syntax (Number of Blocks)的值可限於(例如)值1或3。
圖6為針對示範性語法元素值四而說明圖3中所展示的8X8視頻塊的四個不同 的4X4子塊的係數的表格圖。S卩,在圖6中,Syntax (Number of Blocks) =4。在此情況 下,交錯與圖4中所展示且上文所論述的交錯相同。每隔三個係數包括在給定子塊中。可 將圖3的視頻塊80表示為六十四個係數的一維向量(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50, 51,52,53,54,55,56,57,58,59,60,61,62,63,64)。可將四個不同的經交錯的子塊表示為四個不同的十六個係數的一維向量,如圖6 中所展示。在此情況下,在Syntax (Number of Blocks) = 4時,經交錯的子塊1為(1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61)。經交錯的子塊2為(2,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62)。經交錯的子塊3為(3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63)。經交錯的子塊4為(4,8,12,16,20,24,28,32,36,40,44,48,52,57,60,64)。Syntax (Number of Blocks) = 4的圖6的說明可用信號通知解碼器60 所有子塊 為非零值子塊,且子塊不包含零值子塊。然而,在一些情況下,較低編號的係數中的一些(參看圖3)可具有等於零的值。 如果使用圖4或圖6中所展示的交錯,則子塊中的每一者將包括可具有非零值的較高編號 的係數中的至少一些。在此情況下,可需要不同類型的交錯以便幫助產生零值子塊。如果 (例如)所有係數49到64具有零值(此情形相當典型),則可需要在一子塊中包括所有系 數49到64,而不在多個子塊中將其與其它係數交錯。圖7為針對示範性語法元素值三而說明圖3中所展示的8X8視頻塊的四個不同的4X4子塊的係數的表格圖。S卩,在圖7中,Syntax (Number of Blocks) =3。在此情況下,每隔兩個係數包括在給定子塊中,且第四子塊包含係數49到64以形成零值子塊。編碼 器可執行此交錯且使用等於三的語法元素以便將此事實傳達到解碼器。在此情況下,如果將圖3的塊80表示為六十四個係數的一維向量(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50, 51,52,53,54,55,56,57,58,59,60,61,62,63,64),則可將四個不同的經交錯的子塊表示為四個不同的十六個係數的一維向量,如圖 7中所展示。在此情況下,經交錯的子塊1為(1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46)。經交錯的子塊2為(2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47)。經交錯的子塊3為(3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48)。子塊4為(49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64)。因為係數49到64的所有值具有零值,所以未將子塊4編碼到位流中。因此,子塊 4為解碼器經由語法元素可識別的零值子塊。基本上,如圖7中所展示,如果Syntax (Number of Blocks) =3,則解碼器60可認為係數49到64具有零值,且子塊1、2和3是經交錯的。 因此,可從位流消除原本需要用來傳達係數49到64的信息的位以提升解碼效率。圖8為針對示範性語法元素值二而說明圖3中所展示的8X8視頻塊的四個不同 的4X4子塊的係數的表格圖。S卩,在圖8中,Syntax (Number of Blocks) =2。在此情況 下,每隔一個係數(即,每隔一係數)包括在給定子塊中,且第三和第四子塊分別包含係數 33到48和49到64以形成兩個零值子塊。在此情況下,如果將圖3的塊80表示為六十四個係數的一維向量(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50, 51,52,53,54,55,56,57,58,59,60,61,62,63,64),則可將四個不同的經交錯的子塊表示為四個不同的十六個係數的一維向量,如圖 8中所展示。在此情況下,經交錯的子塊1為(1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31)。經交錯的子塊2為(2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32)。子塊3為(33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48)。子塊4為(49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64)。因為係數33到64的所有值具有零值,所以未將子塊3和4編碼到位流中。因此,子 塊3和4包含可由語法元素識別的零值子塊。基本上,如圖8中所展示,如果Syntax (Numberof Blocks) =2,則解碼器60可認為係數33到64具有零值,且子塊1和2曾經交錯。因此,在此情況下,可從位流消除原本需要用來傳達係數33到64的信息的位以提升解碼效率。圖9為針對示範性語法元素值一而說明圖3中所展示的8X8視頻塊的四個不同 的4X4子塊的係數的表格圖。即,在圖9中,Syntax (Number of Blocks) = 1。在此情況下,以掃描次序界定子 塊,且第二、第三和第四子塊包含零值子塊。在此情況下,如果將圖3的塊80表示為六十四個係數的一維向量(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50, 51,52,53,54,55,56,57,58,59,60,61,62,63,64),則可將四個不同的經交錯的子塊表示為四個不同的十六個係數的一維向量,如圖 9中所展示。在此情況下,子塊1為(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)。子塊2為(17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32)。子塊3為(33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48)。子塊4為(49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64)。因為係數17到64的所有值具有零值,所以未將子塊2、3和4編碼到位流中。 因此,子塊2、3和4包含可由語法元素識別的零值子塊。基本上,如圖9中所展示,如果 Syntax (Number of Blocks) = 1,則解碼器60可認為係數17到64具有零值,且子塊1被 界定為係數1到16。與本發明一致的經編碼的位流包括與非零值子塊相關聯的經熵解碼的位,且也包 括所描述的語法元素,其允許解碼器適當地解析位流並產生與從位流排除的任何零值子塊 相關聯的零值。可將語法元素傳達為與經編碼的位流相關聯的語法信息,且可在經特定界 定以傳達與經編碼的位流相關聯的此語法信息的位流的任一部分內傳達所述語法元素。在 一些情況下,可將語法元素傳達為標頭文件的部分或網絡抽象層(NAL)單元。在任一情況 下,解碼器可經編程以理解語法信息並在解碼過程中使用語法信息。圖10為說明與本發明一致的解碼(即,編碼或解碼)技術的流程圖。如圖10中 所展示,熵解碼單元(例如,圖2的熵編碼單元46或圖5的熵解碼單元52)對語法元素進 行解碼以界定視頻塊中的非零值子塊的數目(101)。非零值子塊可包含包括至少一個非零 係數的係數的集合。相反,零值子塊可包含包括具有零值的所有係數的係數的集合。熵譯 碼單元(例如,圖2的熵編碼單元46或圖5的熵解碼單元52)產生非零值子塊(102),且對 非零值子塊進行熵解碼(103)。圖11為說明與本發明一致的編碼技術的流程圖。如圖11中所展示,熵編碼單元 46將視頻塊掃描成一維向量(111)。此掃描可包含鋸齒形掃描(如圖3中所展示)或另一 類型的掃描技術(例如,水平掃描、垂直掃描、反鋸齒形掃描等)。熵編碼單元46對語法元素進行編碼以便界定視頻塊中的非零值子塊的數目(112),且交錯對應於所述視頻塊的一維向量以產生對應於子塊的一維向量的集合(113)。圖6到圖9針對交錯成四個4X4子 塊的8X8塊說明步驟112和113的實例,其中交錯的類型視語法元素而定。如本文中所描 述,因為可基於語法元素在解碼器處重建零值子塊,所以熵編碼單元46對非零值子塊進行 熵編碼(114),且可跳過對零值子塊的編碼。圖12為說明與本發明一致的解碼技術的流程圖。如圖12中所展示,熵解碼單元 52接收包括語法元素的位流(121)。熵解碼單元52基於語法元素解析位流以產生視頻塊 中的非零值子塊的數目(122)。舉例來說,語法元素可向熵解碼單元52通知曾由編碼器使 用的交錯的類型。圖6到圖9和上文中的對應描述陳述可針對8X8係數視頻塊界定的語 法元素值為1、2、3和4的實例。熵解碼單元52可使用語法元素來確定如何解析位流以便 適當地產生非零值子塊。一旦產生非零值子塊,熵解碼單元52便對非零值子塊進行熵解碼 (123),且產生不包括在位流中的任何零值子塊的零值係數(124)。此外,語法元素向熵解碼 單元52通知不包括在位流中的任何此些零值子塊。再次參看圖1,在一個與本發明一致的特定實例中,編碼器22可應用如ITU H. 264 中所陳述的4X4CAVLC解碼,但可僅將此4X4CAVLC解碼應用於較大的經掃描的視頻塊的 非零值子塊。所描述的語法元素向解碼器通知零值子塊。在此情況下,編碼器22應用CAVLC 技術以如下方式對係數的4X4非零值子塊進行編碼。首先,編碼器22結合「尾隨的一」的 數目對4X4非零值子塊中的非零係數的總數進行解碼。可將尾隨的一的數目界定為在以 相反的掃描次序讀取係數向量時在遇到具有大於「一」的量值的係數之前遇到的具有量值 「一」的係數的數目。用以對此信息進行解碼的可變長度碼是基於非零係數的預測數目,其 中預測是基於先前編碼的相鄰塊(例如,上方相鄰塊和左側相鄰塊)中的非零係數的數目。其次,編碼器22對任何「尾隨的一」的正負號進行解碼。第三,編碼器22對非零 係數而非「尾隨的一」的水平(即,量值)進行解碼。第四,編碼器22對最後一個非零係數 之前的係數向量中的零值的數目(即,所有「遊程」的和)進行解碼。因為此總和值與塊中 的非零係數的總數之間通常存在某一關係,所以在對此總和值進行解碼時所用的可變長度 碼可視塊中的非零係數的總數而定。最終,從係數向量中的最後一個非零值開始,編碼器22 對在每一非零係數之前出現的遊程進行解碼。可基於遊程的和而選擇用以對遊程值進行編碼的可變長度解碼表。如果(例如) 塊具有「遊程和」8,且經編碼的第一遊程為6,則所有剩餘遊程必須為0、1或2。因為可能 的遊程長度逐漸變短,所以可選擇更有效的可變長度碼來最小化需用來表示特定遊程值的 位的數目。本發明的技術可實施於包括無線手持機和集成電路(IC)或IC的集合(S卩,晶片 組)的廣泛多種裝置或設備中。已描述經提供以強調功能方面的任何組件、模塊或單元,且 其不一定需要由不同硬體單元實現。因此,可以硬體、軟體、固件、或其任何組合實施本文中所描述的技術。被描述為 模塊或組件的任何特徵可一起實施於集成的邏輯裝置中或單獨實施為離散但可共同操作 的邏輯裝置。如果以軟體實施,則可至少部分由包含指令的計算機可讀媒體來實現所述技 術,所述指令在執行時執行上文中所描述的方法中的一者或一者以上。計算機可讀數據存 儲媒體可形成電腦程式產品的部分,所述電腦程式產品可包括封裝材料。計算機可讀媒體可包含隨機存取存儲器(RAM),例如,同步動態隨機存取存儲器(SDRAM)、只讀存儲器 (ROM)、非易失性隨機存取存儲器(NVRAM)、電可擦除可編程只讀存儲器(EEPROM)、快快閃記憶體 儲器、磁性或光學數據存儲媒體等。另外或替代地,可至少部分由計算機可讀通信媒體來實 現所述技術,所述計算機可讀通信媒體載運或傳送呈指令或數據結構的形式的代碼且可由 計算機存取、讀取和/或執行。
可由例如一個或一個以上數位訊號處理器(DSP)、通用微處理器、專用集成電路 (ASIC)、現場可編程邏輯陣列(FPGA)或其它等效集成或離散邏輯電路等一個或一個以上 處理器來執行代碼。因此,如本文中所使用的術語「處理器」可指上述結構或適合於實施本 文中所描述的技術的任何其它結構中的任一者。另外,在一些方面中,可將本文中所描述的 功能性提供於經配置以用於編碼和解碼的專用軟體模塊或硬體模塊內,或併入於組合的視 頻編碼器-解碼器(CODEC)中。而且,可將所述技術完全實施於一個或一個以上電路或邏 輯元件中。已描述本發明的各個方面。這些和其它方面處於所附權利要求書的範圍內。
權利要求
一種用於對視頻塊進行解碼的方法,所述方法包含對界定所述視頻塊的非零值子塊的數目的語法元素進行解碼,其中所述非零值子塊包括至少一個非零係數;產生所述視頻塊的所述非零值子塊;以及對所述非零值子塊進行熵解碼。
2.根據權利要求1所述的方法,其中對所述語法元素進行解碼包含對所述語法元素進行編碼; 其中產生所述非零值子塊包含基於所述語法元素交錯所述視頻塊;以及 其中對所述非零值子塊進行熵解碼包含對所述非零值子塊進行熵編碼。
3.根據權利要求2所述的方法,其中零值子塊包含所述視頻塊的所有係數等於零的子 塊,所述方法進一步包含跳過對所述零值子塊的熵編碼。
4.根據權利要求1所述的方法,其中解碼包含解碼,所述方法進一步包含接收包括所 述語法元素的位流,其中對所述語法元素進行解碼包含對所述語法元素進行解碼; 其中產生所述非零值子塊包含基於所述語法元素解析所述位流;以及 其中對所述非零值子塊進行熵解碼包含對所述子塊進行熵解碼。
5.根據權利要求4所述的方法,其中所述位流不包括所有係數等於零的任何零值子塊。
6.根據權利要求1所述的方法,其進一步包含 將所述視頻塊掃描成係數的一維向量。
7.根據權利要求6所述的方法,其中產生所述視頻塊的所述非零值子塊包含基於所述語法元素交錯所述一維向量以界定對應於所述非零值子塊的多個一維向量。
8.根據權利要求1所述的方法,其中所述語法元素界定非零值子塊的所述數目和所有 係數等於零的零值子塊的數目兩者,且其中所述方法進一步包含跳過對所述零值子塊的熵解碼。
9.根據權利要求1所述的方法,其中所述視頻塊包含包含64個係數的8X8視頻塊 和包含256個係數的16 X 16視頻塊中的一者,且其中所述子塊包含若干包含16個係數的 4X4 塊。
10.根據權利要求9所述的方法,其中所述視頻塊和所述子塊包含經掃描的係數的一維向量。
11.根據權利要求1所述的方法,其中對所述非零值子塊進行熵解碼包含對所述非 零值子塊的係數執行內容自適應可變長度解碼(CAVLC)或上下文自適應二進位算術解碼 (CABAC)中的至少一者。
12.一種包含熵解碼單元的設備,所述熵解碼單元經配置以對界定視頻塊的非零值子塊的數目的語法元素進行解碼,其中所述非零值子塊包括至 少一個非零係數;產生所述視頻塊的所述非零值子塊;以及 對所述非零值子塊進行熵解碼。
13.根據權利要求12所述的設備,其中所述熵解碼單元包含熵編碼單元,所述熵編碼 單元經配置以對所述語法元素進行編碼;基於所述語法元素交錯所述視頻塊以產生所述非零值子塊;以及 對所述非零值子塊進行熵編碼。
14.根據權利要求13所述的設備,其中零值子塊包含所述視頻塊的所有係數等於零的 子塊,且其中所述熵編碼單元經進一步配置以跳過對所述零值子塊的熵編碼。
15.根據權利要求12所述的設備,其中所述熵解碼單元包含熵解碼單元,所述熵編碼 單元經配置以接收包括所述語法元素的位流; 對所述語法元素進行解碼;基於所述語法元素解析所述位流以產生所述非零值子塊;以及 對所述子塊進行熵解碼。
16.根據權利要求15所述的設備,其中所述位流不包括所有係數等於零的任何零值子塊。
17.根據權利要求12所述的設備,其中所述熵解碼單元經進一步配置以 將所述視頻塊掃描成係數的一維向量。
18.根據權利要求12所述的設備,其中所述熵解碼單元經進一步配置以基於所述語法元素交錯所述一維向量以界定對應於所述非零值子塊的多個一維向量。
19.根據權利要求12所述的設備,其中所述語法元素界定非零值子塊的所述數目和所 有係數等於零的零值子塊的數目兩者,且其中所述熵解碼單元經進一步配置以跳過對所述零值子塊的熵解碼。
20.根據權利要求12所述的設備,其中所述視頻塊包含包含64個係數的8X8視頻塊 和包含256個係數的16X16視頻塊中的一者,且其中所述子塊包含若干包含16個係數的 4X4 塊。
21.根據權利要求20所述的設備,其中所述視頻塊和所述子塊包含經掃描的係數的一維向量。
22.根據權利要求12所述的設備,其中所述熵解碼單元對所述非零值子塊的係數執行 內容自適應可變長度解碼(CAVLC)或上下文自適應二進位算術解碼(CABAC)中的至少一者ο
23.根據權利要求12所述的設備,其中所述設備包含集成電路和微處理器中的一者。
24.一種計算機可讀媒體,其包含在視頻解碼裝置中執行時致使所述裝置對視頻塊進 行解碼的指令,其中所述指令致使所述裝置對界定所述視頻塊的非零值子塊的數目的語法元素進行解碼,其中所述非零值子塊包 括至少一個非零係數;產生所述視頻塊的所述非零值子塊;以及 對所述非零值子塊進行熵解碼。
25.根據權利要求24所述的計算機可讀媒體,其中所述指令致使所述裝置對所述語法元素進行編碼;基於所述語法元素交錯所述視頻塊以產生所述非零值子塊;以及 對所述非零值子塊進行熵編碼。
26.根據權利要求25所述的計算機可讀媒體,其中零值子塊包含所述視頻塊的所有系 數等於零的子塊,其中所述指令致使所述裝置跳過對所述零值子塊的熵編碼。
27.根據權利要求24所述的計算機可讀媒體,其中所述指令致使所述裝置 接收包括所述語法元素的位流;對所述語法元素進行解碼;基於所述語法元素解析所述位流以產生所述非零值子塊;以及 對所述子塊進行熵解碼。
28.根據權利要求27所述的計算機可讀媒體,其中所述位流不包括所有係數等於零的 任何零值子塊。
29.根據權利要求24所述的計算機可讀媒體,其中所述指令致使所述裝置 將所述視頻塊掃描為係數的一維向量。
30.根據權利要求29所述的計算機可讀媒體,其中所述指令致使所述裝置基於所述語法元素交錯所述一維向量以界定對應於所述非零值子塊的多個一維向量。
31.根據權利要求24所述的計算機可讀媒體,其中所述語法元素界定非零值子塊的所 述數目和所有係數等於零的零值子塊的數目兩者,且其中所述指令致使所述裝置跳過對所述零值子塊的熵解碼。
32.根據權利要求24所述的計算機可讀媒體,其中所述視頻塊包含包含64個係數的 8X8視頻塊和包含256個係數的16X16視頻塊中的一者,且其中所述子塊包含若干包含 16個係數的4X4塊。
33.根據權利要求32所述的計算機可讀媒體,其中所述視頻塊和所述子塊包含經掃描 的係數的一維向量。
34.根據權利要求24所述的計算機可讀媒體,其中所述指令致使所述裝置 對所述非零值子塊的係數執行內容自適應可變長度解碼(CAVLC)或上下文自適應二進位算術解碼(CABAC)中的至少一者。
35.一種裝置,其包含用於對界定視頻塊的非零值子塊的數目的語法元素進行解碼的裝置,其中所述非零值 子塊包括至少一個非零係數;用於產生所述視頻塊的所述非零值子塊的裝置;以及 用於對所述非零值子塊進行熵解碼的裝置。
36.根據權利要求35所述的裝置, 其中解碼包含編碼;其中用於對所述語法元素進行解碼的裝置包含用於對所述語法元素進行編碼的裝置;其中用於產生所述非零值子塊的裝置包含用於基於所述語法元素交錯所述視頻塊的 裝置;以及其中用於對所述非零值子塊進行熵解碼的裝置包含用於對所述非零值子塊進行熵編 碼的裝置。
37.根據權利要求36所述的裝置,其中零值子塊包含所述視頻塊的所有係數等於零的 子塊,且其中所述裝置進一步包含用於跳過對所述零值子塊的熵編碼的裝置。
38.根據權利要求35所述的裝置,其中解碼包含解碼,所述裝置進一步包含用於接收 包括所述語法元素的位流的裝置,其中用於對所述語法元素進行解碼的裝置包含用於對所述語法元素進行解碼的裝置;其中用於產生所述非零值子塊的裝置包含用於基於所述語法元素解析所述位流的裝 置;以及其中用於對所述非零值子塊進行熵解碼的裝置包含用於對所述子塊進行熵解碼的裝置。
39.根據權利要求38所述的裝置,其中所述位流不包括所有係數等於零的任何零值子塊。
40.根據權利要求35所述的裝置,其進一步包含 用於將所述視頻塊掃描為係數的一維向量的裝置。
41.根據權利要求40所述的裝置,其中用於產生所述視頻塊的所述非零值子塊的裝置 包含用於基於所述語法元素交錯所述一維向量以界定對應於所述非零值子塊的多個一維 向量的裝置。
42.根據權利要求35所述的裝置,其中所述語法元素界定非零值子塊的所述數目和所 有係數等於零的零值子塊的數目兩者,且其中所述裝置進一步包含用於跳過對所述零值子塊的熵解碼的裝置。
43.根據權利要求35所述的裝置,其中所述視頻塊包含包含64個係數的8X8視頻塊 和包含256個係數的16X 16視頻塊中的一者,且其中所述子塊包含若干包含16個係數的 4X4 塊。
44.根據權利要求43所述的裝置,其中所述視頻塊和所述子塊包含經掃描的係數的一維向量。
45.根據權利要求35所述的裝置,其中用於對所述非零值子塊進行熵解碼的裝置包含 用於對所述非零值子塊的係數執行內容自適應可變長度解碼(CAVLC)或上下文自適應二 進位算術解碼(CABAC)中的至少一者的裝置。
46.一種裝置,其包含 熵編碼單元,其經配置以對界定視頻塊的非零值子塊的數目的語法元素進行編碼,其中所述非零值子塊包括至 少一個非零係數;產生所述視頻塊的所述非零值子塊;以及 對所述非零值子塊進行熵編碼;以及無線發射器,其發送包含所述經熵解碼的非零值子塊和所述語法元素的位流。
47. 一種裝置,其包含無線接收器,其接收包含經熵解碼的非零值子塊和語法元素的位流;以及 熵解碼單元,其經配置以對所述語法元素進行解碼以確定視頻塊的非零值子塊的數目,其中所述非零值子塊包 括至少一個非零係數;基於所述語法元素產生所述視頻塊的所述非零值子塊;以及 對所述非零值子塊進行熵解碼。
全文摘要
本發明描述用於對視頻塊進行熵解碼的技術,且提出可提升解碼效率的語法元素。所述語法元素可識別視頻塊內的非零值子塊的數目,其中所述非零值子塊包含所述視頻塊內的包括至少一個非零係數的子塊。一種用於對視頻塊進行解碼的方法可包含對所述語法元素進行解碼;產生所述視頻塊的所述非零值子塊;以及對所述非零值子塊進行熵解碼。
文檔編號H04N7/50GK101822065SQ200880111058
公開日2010年9月1日 申請日期2008年10月10日 優先權日2007年10月12日
發明者葉琰, 馬爾塔·卡切維奇 申請人:高通股份有限公司