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

算術(shù)譯碼的方法及設(shè)備的制造方法

文檔序號:10539287閱讀:287來源:國知局
算術(shù)譯碼的方法及設(shè)備的制造方法
【專利摘要】一種在一視頻譯碼器中具高吞吐量的熵譯碼的設(shè)備和方法被揭露。上述設(shè)備包括一算術(shù)譯碼處理電路及一可變長度譯碼器。上述算術(shù)譯碼處理電路通過一位元串流接收一視頻位元串流,應(yīng)用算術(shù)譯碼至上述視頻位元串流至少一部分以推導(dǎo)一或多個(gè)算術(shù)譯碼二進(jìn)制字符串,其中上述算術(shù)譯碼二進(jìn)制字符串不包含算術(shù)編碼二進(jìn)制字符串,接著儲存上述算術(shù)譯碼二進(jìn)制字符串至一儲存裝置。上述可變長度譯碼器耦接至上述算術(shù)譯碼處理電路、上述儲存裝置及一可變長度譯碼器輸出。當(dāng)儲存在上述儲存裝置中的算術(shù)譯碼位元串流對一選擇影像單元為完整時(shí),上述可變長度譯碼器接收算術(shù)譯碼位元串流至少一部分,譯碼上述算術(shù)譯碼位元串流至少一部分為一或多個(gè)譯碼語法元素,并通過上述可變長度譯碼器輸出提供上述一或多個(gè)譯碼語法元素。
【專利說明】
算術(shù)譯碼的方法及設(shè)備
技術(shù)領(lǐng)域
[0001] 發(fā)明是關(guān)于用于壓縮數(shù)據(jù)的熵譯碼器。特別地,本發(fā)明是有關(guān)于由算術(shù)編碼所產(chǎn) 生熵編碼位元串流的高吞吐量算術(shù)譯碼設(shè)計(jì)。
【背景技術(shù)】
[0002] 視頻數(shù)據(jù)需要大量的儲存空間來儲存或一寬的頻寬來傳輸。隨著日益增長的高分 辨率和高幀率,如果視頻數(shù)據(jù)以未壓縮的形式被儲存或傳輸,將會需要巨大的儲存或傳輸 頻寬的需求。因此,視頻數(shù)據(jù)通常由使用一視頻編碼技術(shù)以一壓縮格式被儲存或被傳輸。編 碼效率已通過使用較新的視頻編碼標(biāo)準(zhǔn),像是H.264/AVC及新興的HEVC(High Efficiency Video Coding)(高效視頻編碼)標(biāo)準(zhǔn)而大幅改善。為了維持可管理的復(fù)雜性,一影像常被分 為多個(gè)區(qū)塊,例如宏塊(Macroblock,MB)或最大編碼單元(Largest Coding Unit,IXU)/編 碼單元(Coding Unit,⑶)以應(yīng)用視頻編碼。視頻編碼標(biāo)準(zhǔn)通常在一區(qū)炔基礎(chǔ)上采用自適應(yīng) 的幀間/幀內(nèi)預(yù)測。
[0003] 圖1為顯示一支援HEVC視頻標(biāo)準(zhǔn)的視頻譯碼器100的一示例性的系統(tǒng)方塊圖。HEVC (High Efficiency Video Coding)(高效視頻編碼)由視頻編碼的聯(lián)合協(xié)作小組(Joint Collaborative Team on Video Coding,JCT_VC)所研發(fā)的一種新的國際視頻編碼標(biāo)準(zhǔn)。 HEVC系基于混合區(qū)炔基礎(chǔ)的運(yùn)動(dòng)補(bǔ)償DCT-型(DCT-like)變換的編碼架構(gòu)。壓縮的基本單 位,稱為編碼單元(coding unit,CU),是一2NX2N的平方區(qū)塊。一編碼單元可開始于一最大 編碼單元(large st QJ,IXU),其在HEVC中也被稱為編碼樹單元(coded tree unit,CTU), 且每一編碼單元可遞回地分割成四個(gè)更小的編碼單元,直到達(dá)到一個(gè)預(yù)定義的最小尺寸為 止。一旦編碼單元分層樹的分割完成后,每一編碼單元進(jìn)一步根據(jù)預(yù)測類型及預(yù)測單元分 割被分成的一或多個(gè)預(yù)測單元(prediction unit,PU)。每一編碼單元或每一編碼單元的殘 值被分為一轉(zhuǎn)換單元(Transform units,TUs)樹,以應(yīng)用二維(two-dimensional,2D)轉(zhuǎn)換。
[0004] 在圖1中,首先通過使用可變長度譯碼器(variable length decoder,VLD)110處 理輸入視頻位元串流以執(zhí)行可變長度譯碼及語法分析。經(jīng)分析的語法可對應(yīng)外部/內(nèi)部殘 值信號(來自可變長度譯碼器110中較上方的輸出路徑)或運(yùn)動(dòng)信息(來自可變長度譯碼器 110中較下方的輸出路徑)。在熵編碼位元串流間,一些二進(jìn)制(bin)可由算術(shù)編碼來編碼。 算術(shù)編碼元素將需要一算術(shù)譯碼器以恢復(fù)編碼數(shù)據(jù)。如圖1所示,算術(shù)譯碼引擎132被用作 熵譯碼引擎110的一部分。此外,算術(shù)譯碼操作通常較其它類型的熵譯碼,如可變長度編碼, 更為復(fù)雜。因此,相對于其他譯碼過程,算術(shù)譯碼可能相對緩慢,因而成為整體譯碼器吞吐 量的瓶頸。殘余信號通常被轉(zhuǎn)換編碼。因此,編碼殘值信號是通過逆掃描(inverse scan, IS)/逆量化(inverse quantization,IQ)方塊112,以及逆轉(zhuǎn)換(inverse transform,IT)方 塊114所處理。逆轉(zhuǎn)換(inverse transform,IT)方塊114的輸出對應(yīng)重建殘值信號。重建殘 值信號連同與通過幀間/幀內(nèi)選擇方塊122來自幀內(nèi)預(yù)測方塊118中用于一幀內(nèi)編碼區(qū)塊的 幀內(nèi)預(yù)測或來自運(yùn)動(dòng)補(bǔ)償方塊120中用于一幀間編碼區(qū)塊的幀間預(yù)測被加到重建方塊116 中。幀間/幀內(nèi)選擇方塊122選擇用于重建視頻信號的幀內(nèi)預(yù)測或幀間預(yù)測取決于上述區(qū)是 否為幀間或幀內(nèi)編碼。對于運(yùn)動(dòng)補(bǔ)償,上述處理將存取儲存在已編碼圖像緩沖器124中的一 或多個(gè)參考區(qū)塊及由運(yùn)動(dòng)矢量(motion vector,MV)產(chǎn)生方塊126所決定的運(yùn)動(dòng)矢量。為了 改善視覺質(zhì)量,去塊濾波器128及取樣自適應(yīng)偏移(Sample Adaptive 0ffset,SA0)濾波器 (130)被用以在已重建視頻被儲存在譯碼圖像緩沖器124之前處理已重建視頻。在Η. 264/ AVC的標(biāo)準(zhǔn)中,只有使用去塊濾波器(deblocking filter,DF),而無需取樣自適應(yīng)偏移濾波 器。
[0005] 圖2為顯示一具有內(nèi)建音頻/視頻譯碼器的一典型的電子系統(tǒng),如一電視。如圖2所 示,該系統(tǒng)使用一CPU總線及動(dòng)態(tài)隨機(jī)存取存儲器(dynamic random access memory,DRAM) 總線。外部存儲器儲存器(210)用于儲存用于視頻譯碼的參考圖像、用于顯示的譯碼圖像以 及其它數(shù)據(jù)的譯碼圖像。外部存儲器儲存器通常使用動(dòng)態(tài)隨機(jī)存取存儲器(dynamic random access memory,DRAM)。外部存儲器存取引擎(220)被用以連接外部存儲器儲存器 至數(shù)據(jù)總線。該系統(tǒng)可包括一 CPU(230)、一視頻譯碼器(240)、一音頻引擎(250)和一顯示引 擎(260)。視頻譯碼器240將執(zhí)行壓縮視頻數(shù)據(jù)的視頻譯碼任務(wù)。音頻引擎250將已壓縮音頻 數(shù)據(jù)的進(jìn)行音頻譯碼。音頻引擎250還可以支援其他音頻任務(wù),像是產(chǎn)生用于使用者界面的 音頻提示。顯示引擎260負(fù)責(zé)處理視頻顯示及產(chǎn)生顯示信息。舉例來說,該顯示引擎260可以 產(chǎn)生用于使用者界面的圖形或文字信息。該顯示引擎也負(fù)責(zé)合并用于主視窗及副視窗口顯 示、或分割熒幕顯示的兩個(gè)已譯碼視頻數(shù)據(jù)。該CPU230可被用以初始化系統(tǒng)、控制其他子系 統(tǒng)、或提供用于該電子系統(tǒng)的使用者界面。
[0006] 算術(shù)編碼系為高效率熵編碼工具且已被廣泛用于先進(jìn)視頻編碼系統(tǒng)中,上述操作 為高數(shù)據(jù)相關(guān)。圖3顯示基于上下文自適應(yīng)性二進(jìn)制算術(shù)編碼(context-based adaptive binary arithmetic coding,CABAC)過程的一示例性方塊圖。由于CABAC引擎中算術(shù)編碼器 可以僅編碼二進(jìn)制符元值,CABAC過程需轉(zhuǎn)換語法元素值為使用二值化器(binarizer) (310)的一二進(jìn)制字符串。此轉(zhuǎn)換過程通常稱為二值化。在編碼過程中,機(jī)率模型逐漸從不 同上下文中的編碼符號中建立起來。上下文建模器(320)用于建立模型目的且模型使用譯 碼輸出數(shù)據(jù)進(jìn)行更新。因此,來自常規(guī)編碼引擎(330)的上下文建模器(320)輸出的一路徑 335被提供。在正?;谏舷挛木幋a間,常規(guī)編碼引擎(330)被使用,其對應(yīng)一二進(jìn)制算術(shù)編 碼器。用于編碼下一二進(jìn)制符元的建模上下文的選擇可以由編碼信息來決定。符元也可無 須上下文建模階段而編碼并假定相等的機(jī)率分布,其通常被稱為旁路(bypass)模式,用以 降低復(fù)雜性。對于旁路符元,一旁路編碼引擎(340)可以被使用。如圖3所示,開關(guān)(S1、S2及 S3)被用以指引在常規(guī)CABA模式與旁路模式之間的數(shù)據(jù)流。當(dāng)常規(guī)CABAC模式被選擇時(shí),開 關(guān)被轉(zhuǎn)至與上方接觸。當(dāng)旁路模式被選擇時(shí),開關(guān)被轉(zhuǎn)至與下方接觸。
[0007] 對于算術(shù)編碼,上下文形成和上下文更新為高數(shù)據(jù)相關(guān)。上下文模型可涉及多個(gè) 相鄰重建樣本。此外,上下文更新必須等待直到所涉及樣本為可用時(shí)。算術(shù)譯碼器可成為在 譯碼過程中吞吐量的瓶頸。因此,開發(fā)高吞吐量算術(shù)譯碼器是值得期待的。

【發(fā)明內(nèi)容】

[0008] 一種在一視頻譯碼器中具高吞吐量熵譯碼的方法及設(shè)備被揭露。上述設(shè)備包括一 算術(shù)譯碼處理電路及一可變長度譯碼器(variable-length decoder,VLD)。上述算術(shù)譯碼 處理電路耦接至一位元串流輸入及一儲存裝置。上述算術(shù)譯碼處理電路通過上述位元串流 接收一視頻位元串流,應(yīng)用算術(shù)譯碼至上述視頻位元串流至少一部分以推導(dǎo)出一或多個(gè)算 術(shù)譯碼二進(jìn)制字符串,并儲存上述算術(shù)譯碼二進(jìn)制字符串至上述儲存裝置。上述可變長度 譯碼器(variable-length decoder,VLD)親接至上述算術(shù)譯碼處理電路、上述儲存裝置及 一可變長度譯碼器輸出。當(dāng)儲存在上述儲存裝置中的算術(shù)譯碼位元串流對一選擇影像單元 為完整時(shí),上述可變長度譯碼器接收算術(shù)譯碼位元串流至少一部分,譯碼上述算術(shù)譯碼位 元串流至少一部分為一或多個(gè)譯碼語法元素 (syntax elements),并通過上述可變長度譯 碼器輸出提供上述一或多個(gè)譯碼語法元素。
[0009] 上述算術(shù)譯碼處理電路包括一上下文二進(jìn)制譯碼器及一上下文模型更新處理電 路,其中上述上下文二進(jìn)制譯碼器被安排用以執(zhí)行基于上下文譯碼以基于一上下文模型產(chǎn) 生一或多個(gè)譯碼位元(bin),以及上述上下文模型更新處理電路根據(jù)上述上下文譯碼位元 更新上述上下文模型。上述算術(shù)譯碼處理電路系耦接至一上下文儲存裝置及相鄰數(shù)據(jù)儲存 裝置以取得上述基于上下文譯碼所需的上下文信息。上述可變長度譯碼器包括用于譯碼一 或多個(gè)相應(yīng)之可變長度譯碼器碼的一或多個(gè)可變長度譯碼器引擎。上述一或多個(gè)可變長度 譯碼器引擎包括霍夫曼譯碼(Huffman decoding)引擎、一元譯碼(Unary decoding)引擎及 指數(shù)哥倫布譯碼(Exp-Golomb decoding)引擎。為了更進(jìn)一步改善吞吐量,上述算術(shù)譯碼處 理電路可包括多個(gè)算術(shù)譯碼處理電路以平行操作。
[0010] 上述熵譯碼器更可包括一錯(cuò)誤檢查電路,能檢查儲存在上述儲存裝置中用于上述 選擇影像單元的上述算術(shù)譯碼位元串流中的任何錯(cuò)誤。當(dāng)檢測到任何錯(cuò)誤時(shí),上述錯(cuò)誤檢 查電路提供錯(cuò)誤信息給一之后的視頻譯碼器用于處理錯(cuò)誤。
[0011] 上述算術(shù)譯碼處理電路及上述可變長度譯碼器被安排用以執(zhí)行在選擇影像單元 中同時(shí)執(zhí)行管線化算術(shù)譯碼和可變長度譯碼。上述平行處理可應(yīng)用至影像單元對應(yīng)編碼樹 單元(coding tree unit,CTU)或宏塊(macroblock,MB)〇
【附圖說明】
[0012] 圖1顯示一支援HEVC(High Efficiency Video Coding)(高效視頻編碼)視頻標(biāo)準(zhǔn) 的一視頻譯碼器的一示例性的系統(tǒng)方塊圖。
[0013] 圖2顯示一具有內(nèi)建音頻/視頻譯碼器的一典型的電子系統(tǒng)。
[0014]圖3顯示基于上下文自適應(yīng)性二進(jìn)制算術(shù)編碼過程的一示例性方塊圖。
[0015]圖4顯示根據(jù)本發(fā)明一示例性算術(shù)譯碼器的架構(gòu),其中,上述算術(shù)譯碼器包括耦接 至一儲存裝置的一預(yù)看位元串流重新格式化處理電路及可變長度譯碼器。
[0016] 圖5顯示根據(jù)本發(fā)明一熵譯碼程序的一例子,其中上述算術(shù)編碼位元串流通過預(yù) 看位元串流重新格式化處理電路所處理,其儲存于儲存裝置中且使用可變長度譯碼器譯碼 以恢復(fù)編碼語法。
[0017] 圖6顯示根據(jù)本發(fā)明一熵譯碼程序的另一例子,其中上述算術(shù)編碼位元串流通過 預(yù)看位元串流重新格式化處理電路所處理,其儲存于儲存裝置中且使用可變長度譯碼器譯 碼以恢復(fù)編碼語法。
[0018] 圖7顯示通過應(yīng)用熵譯碼處理至對應(yīng)圖像、切片、編碼樹單元列、宏塊列、編碼樹單 元、宏塊、編碼單元或一區(qū)塊的影像單元使用結(jié)合本發(fā)明一實(shí)施例熵譯碼器架構(gòu)來進(jìn)行平 行處理管線的一例子。
[0019 ]圖8顯示預(yù)看位元串流重新格式化處理電路詳細(xì)結(jié)構(gòu)的一例子。
[0020] 圖9顯示根據(jù)本發(fā)明一實(shí)施例的包括用于譯碼非算術(shù)編碼二進(jìn)制字符串的多個(gè)可 變長度譯碼器引擎的可變長度譯碼器處理電路的一例子。
[0021] 圖10顯示預(yù)看位元串流重新格式化處理電路處理的一示范性流程圖。
[0022] 圖11顯示可變長度譯碼器處理電路處理的一示范性流程圖。
[0023]圖12顯示根據(jù)本發(fā)明一實(shí)施例用于影像單元與一圖像相關(guān)的算術(shù)譯碼之錯(cuò)誤檢 測的一例子。
[0024]圖13顯示根據(jù)本發(fā)明一實(shí)施例結(jié)合一預(yù)看位元串流重新格式化處理電路的一熵 譯碼器的一示范性流程圖。
[0025]圖中,
[0026] 100視頻譯碼器
[0027] 110可變長度譯碼器
[0028] 112逆掃描/逆量化
[0029] 114逆轉(zhuǎn)換
[0030] 116 重建 [0031] 118幀內(nèi)預(yù)測
[0032] 120運(yùn)動(dòng)補(bǔ)償
[0033] 122幀間/幀內(nèi)選擇
[0034] 124參考幀緩沖器
[0035] 126運(yùn)動(dòng)矢量產(chǎn)生
[0036] 128去塊濾波器
[0037] 130取樣自適應(yīng)偏移濾波器
[0038] 132算術(shù)譯碼引擎
[0039] 210外部存儲器儲存器
[0040] 220外部存儲器存取引擎 [0041 ] 230 CPU
[0042] 240視頻譯碼器
[0043] 250音頻引擎
[0044] 260顯示引擎
[0045] 310 二值化器
[0046] 320上下文建模器
[0047] 330常規(guī)編碼引擎
[0048] 335上下文模型更新二進(jìn)制值
[0049] 340旁路編碼引擎
[0050] 410預(yù)看位元串流重新格式化
[0051 ] 420可變長度譯碼器(非算術(shù))
[0052] 430儲存裝置
[0053] 510預(yù)看位元串流重新格式化
[0054] 520可變長度譯碼器(非算術(shù))
[0055] 530儲存裝置
[0056] 610預(yù)看位元串流重新格式化
[0057] 620可變長度譯碼器(非算術(shù))
[0058] 630儲存裝置
[0059] 800預(yù)看位元串流重新格式化處理電路
[0060] 810上下文表格儲存裝置
[0061 ] 820 CPU
[0062] 831上下文本地緩沖器
[0063] 832位址產(chǎn)生器
[0064] 833上下文模型更新單元
[0065] 834二進(jìn)制譯碼單元
[0066] 840非算術(shù)譯碼位元串流儲存裝置
[0067] 850起始上下文單元
[0068] 860控制暫存器
[0069] 870相鄰數(shù)據(jù)存取單元
[0070] 880相鄰數(shù)據(jù)儲存裝置
[0071] 910位元串流直接記憶存取
[0072] 920霍夫曼譯碼引擎
[0073] 930 -元譯碼引擎
[0074] 940指數(shù)哥倫布譯碼引擎
[0075] 1010、1020、1030、1040、1050 步驟
[0076] 1110、1120、1130 步驟
[0077] 1210預(yù)看位元串流重新格式化
[0078] 1220 錯(cuò)誤表
[0079] 1230可變長度譯碼器
[0080] 1310、1320、1330、1340、1350 步驟
【具體實(shí)施方式】
[0081] 后面的描述為實(shí)施本發(fā)明最佳的設(shè)想模式。給出此描述的目的是用以說明本發(fā)明 的一般性原理,且不應(yīng)被理解成做出限制。本發(fā)明的范圍為參照所附的申請專利范圍來作 最佳地確定。
[0082] 算術(shù)編碼通常用于在預(yù)測和/或量化后產(chǎn)生的二進(jìn)制字符串。此外,各種編碼參數(shù) 和系統(tǒng)配置信息需要被傳送。這些編碼參數(shù)和系統(tǒng)配置信息將被二值化為二進(jìn)制字符串二 進(jìn)制字符串。算術(shù)編碼位元串流接著根據(jù)所選擇的二進(jìn)制碼,象是一元碼(Unary code)、霍 夫曼碼(Huffman code)及指數(shù)哥倫布碼(Exp-Golomb code),使用二值化程序進(jìn)行處理。算 術(shù)編碼通常適用于與某些語法元素相關(guān)的二進(jìn)制字符串,象是,運(yùn)動(dòng)矢量差(Motion vector difference,MVD)、編碼單元(coding unit,CU)分割模式預(yù)測殘值量化轉(zhuǎn)換系數(shù)的 符號及絕對值。
[0083]圖4顯示根據(jù)本發(fā)明一示例性算術(shù)譯碼器的架構(gòu)。算術(shù)譯碼器包括一預(yù)看位元串 流重新格式化處理電路410、可變長度譯碼器(variable-length decoder,VLD)420和儲存 裝置430。如圖4所示,來自儲存裝置的一算術(shù)編碼位元串流被提供給預(yù)看位元串流重新格 式化處理電路410,其為一算術(shù)譯碼處理電路。算術(shù)編碼位元串流接著被算術(shù)譯碼以恢復(fù)已 算術(shù)譯碼的一二進(jìn)制字符串。此算術(shù)譯碼二進(jìn)制字符串也被稱為非算術(shù)二進(jìn)制字符串或一 中間二進(jìn)制字符串。算術(shù)譯碼二進(jìn)制字符串接著儲存在儲存裝置430中。當(dāng)足夠的算術(shù)譯碼 二進(jìn)制字符串被緩沖在儲存裝置430中時(shí),非算術(shù)二進(jìn)制字符串接著從儲存裝置430中讀出 且由可變長度譯碼器(VLD)420譯碼??勺冮L度譯碼器(VLD)420將非算術(shù)二進(jìn)制字符串譯碼 成表示預(yù)測殘值、各種編碼參數(shù)和系統(tǒng)配置信息的編碼符號。譯碼符號將提供給一譯碼器 中的其他處理模塊以重建影像數(shù)據(jù)。
[0084]如前所提,算術(shù)編碼處理非常依賴數(shù)據(jù),且常關(guān)系到譯碼吞吐量。為了克服此問 題,本發(fā)明通過儲存來自儲存裝置中算術(shù)譯碼器的非算術(shù)編碼位元串流解耦來自可變長度 譯碼器(VLD)程序的算術(shù)譯碼。當(dāng)足夠的非算術(shù)編碼位元串流已被緩沖時(shí),像是編碼樹單 元、宏塊、編碼樹單元列、宏塊列、切片(slice)或圖像的一完整單元,上述完整單元像是編 碼樹單元/宏塊的非算術(shù)編碼位元串流由儲存裝置中被讀出并通過可變長度譯碼器譯碼。 由于可變長度譯碼器(VLD)420與算術(shù)譯碼器相比相對簡單,所以系統(tǒng)設(shè)計(jì)只需專注在算術(shù) 譯碼器的吞吐量問題。當(dāng)需要時(shí),算術(shù)譯碼處理電路可使用多個(gè)算術(shù)譯碼器平行操作以增 加處理速度。
[0085]在圖4中,來自預(yù)看位元串流重新格式化處理電路410的算術(shù)譯碼二進(jìn)制字符串儲 存并使用作為在輸入二進(jìn)制字符串之后數(shù)據(jù)算術(shù)譯碼的上下文。用于上下文信息的儲存裝 置可共享相同的儲存裝置430或使用個(gè)別的儲存裝置。對于可變長度譯碼器(VLC)420,當(dāng)足 夠的非算術(shù)編碼位元串流可使用時(shí),從儲存裝置接收其輸入。圖4顯示根據(jù)本發(fā)明一實(shí)施例 的實(shí)施算術(shù)譯碼器所需的主要元件。一些關(guān)鍵元件可在一系統(tǒng)中的其它電路或模塊共享。 舉例來說,儲存裝置430可為一系統(tǒng)的一共享資源,其中象是被用以譯碼的二進(jìn)制字符串的 其他數(shù)據(jù)及算術(shù)譯碼二進(jìn)制字符串可儲存在儲存裝置430中。預(yù)看位元串流重新格式化處 理電路410和可變長度譯碼器(VLD)420可被實(shí)現(xiàn)為單獨(dú)的模塊或數(shù)個(gè)模塊。預(yù)看位元串流 重新格式化處理電路410和可變長度譯碼器(VLD)420也可被嵌入在一影像譯碼器內(nèi)。舉例 來說,預(yù)看位元串流重新格式化處理電路410和可變長度譯碼器(VLD)420兩者可被嵌入一 個(gè)影像譯碼器內(nèi)??商娲?,可變長度譯碼器(VLD)420可被嵌入至一影像譯碼器中,而預(yù)看 位元串流重新格式化處理電路410可以是一單獨(dú)的模塊。此外,輸入位元串流至預(yù)看位元串 流重新格式化410來自儲存裝置430,如圖4所示,輸入位元串流可以是來自獨(dú)立的系統(tǒng)儲存 裝置或來自系統(tǒng)其他程序的一輸出。
[0086] 舉例來說,在HEVC標(biāo)準(zhǔn)中,語法元素 last_sig_coeff_x_prefix說明在一轉(zhuǎn)換方塊 內(nèi)一掃描順序最后有效系數(shù)的行位前綴。根據(jù)HEVC標(biāo)準(zhǔn),語法元素1 as t_s i g_c〇 ef f _x_ pref ix為算術(shù)編碼。一元碼可用于語法元素 last_sig_coef f_x_pref ix的二進(jìn)制化。語法元 素 last_sig_coeff_x_prefix的一示范性一元碼示于表格1中,其中一最長碼有6位元且元 素位置表示為binldx。在編碼器端,在掃描順序中最后有效系數(shù)的行位前綴值被二值化為 相應(yīng)的二進(jìn)制字符串。舉例來說,等于3的前綴值被二值化為"1110"。二值化二進(jìn)制字符串 使用算術(shù)編碼更進(jìn)一步被編碼。根據(jù)本發(fā)明的一實(shí)施例,算術(shù)編碼位元串流是由預(yù)看位元 串流重新格式化處理電路510在譯碼器端中所處理,如圖5所示。來自預(yù)看位元串流重新格 式化處理電路510的算術(shù)譯碼二進(jìn)制字符串"1110"將儲存在儲存裝置530。在對于一影像單 元(例如,一編碼樹單元或宏塊)足夠的二進(jìn)制字符串可使用后,所儲存的二進(jìn)制字符串 "1110"隨后將提供給可變長度譯碼器520以恢復(fù)編碼語法,即具有值為3的last_sig_ c〇eff_x_prefiX〇
[0087] 表格 1
[0088]
[0089]
[0090] 在另一例子中,一AVS2標(biāo)準(zhǔn)的語法元素值(即,synElVal)被轉(zhuǎn)換為使用一元碼的 二進(jìn)制字符串,如表格2所示。舉例來說,等于5的語法元素值被二值化為"00000Γ。二值化 二進(jìn)制字符串使用算術(shù)編碼進(jìn)一步編碼。根據(jù)本發(fā)明的一實(shí)施例,算術(shù)編碼位元串流是由 在譯碼器端的預(yù)看位元串流重新格式化處理電路610所處理,如圖6所示。來自預(yù)看位元串 流重新格式化處理電路610的算術(shù)譯碼二進(jìn)制字符串"000001"將儲存于儲存裝置630。所儲 存的二進(jìn)制字符串"000001"接著提供給可變長度譯碼器620以恢復(fù)編碼語法,即具有值為5 的synElVal。
[0091] 表格 2
[0092]
L〇〇94J 具有分割算木譯媽功能和W變長度譯媽器譯媽功能的熵譯媽器架構(gòu)提供一有效 平行處理的優(yōu)點(diǎn)。在算術(shù)譯碼后,剩余的熵譯碼功能只依賴于可變長度譯碼器模塊。因此, 平行管線處理可基于結(jié)合本發(fā)明一實(shí)施例的熵譯碼器架構(gòu)所安排。圖7顯示使用結(jié)合本發(fā) 明一實(shí)施例熵譯碼器架構(gòu)來進(jìn)行平行處理管線的一例子。平行處理可應(yīng)用于視頻數(shù)據(jù)的影 像單元。每個(gè)影像單元可對應(yīng)一圖像、一切片(siice)、一宏塊(macroblock,MB)/編碼樹單 元(coding tree unit,CTU)列、一宏塊/編碼樹單元、一區(qū)塊/編碼單元(coding unit,CU)。 也可以使用其他的處理單元。在一當(dāng)前區(qū)塊通過預(yù)看位元串流重新格式化處理電路進(jìn)行算 術(shù)譯碼后,當(dāng)前區(qū)塊被提供給可變長度譯碼器用于之后的可變長度譯碼器譯碼,以恢復(fù)編 碼語法,而下一單元被提供給預(yù)看位元串流重新格式化處理電路。因此,下一單元的算術(shù)譯 碼與當(dāng)前單元的可變長度譯碼器譯碼可同時(shí)進(jìn)行或互相重疊。
[0095]圖8顯示預(yù)看位元串流重新格式化處理電路800詳細(xì)結(jié)構(gòu)的一例子。方塊830表示 為二進(jìn)制譯碼器,其輸出提供給非算術(shù)編碼位元串流儲存裝置840,用于更進(jìn)一步地譯碼處 理??刂茣捍嫫?60提供譯碼信息給二進(jìn)制譯碼器830及相鄰信息存取單元870。另一方面, 相鄰信息存取單元870連接至相鄰數(shù)據(jù)儲存裝置880及上下文模型更新單元或上下文模型 更新處理單元833,以提供上下文模型更新所需的相鄰數(shù)據(jù)。CPU 820連接至控制暫存器860 以儲存用于元素譯碼器的譯碼信息。CPU可以是視頻譯碼器的一共享資源。可替代地,一專 用小型處理器可用以作為預(yù)看位元串流重新格式化處理電路800的一部分??刂茣捍嫫?60 提供初始上下文信息給初始上下文單元850,而初始上下文將被儲存于上下文表格儲存裝 置 810。
[0096] 在圖8中,上下文表格儲存裝置810和相鄰數(shù)據(jù)儲存裝置880可實(shí)現(xiàn)為芯片上緩沖 器,以支援所需的高速和高效數(shù)據(jù)存取。另一方面,由于成本問題,非算術(shù)編碼位元串流840 的儲存裝置可為基于芯片外的儲存裝置,象是動(dòng)態(tài)隨機(jī)存取存儲器(Dynamic random access memory,DRAM)〇
[0097] 二進(jìn)制譯碼器830包括一上下文本地緩沖器831、位址產(chǎn)生器832、上下文模型更新 單元833及二進(jìn)制譯碼單元834。位址產(chǎn)生器832將產(chǎn)生位址上下文表格儲存裝置的位址。上 下文模型更新單元833用于產(chǎn)生新的上下文模型,并在二進(jìn)制譯碼期間更新儲存在上下文 本地緩沖器831的上下文模型。二進(jìn)制譯碼單元834通過使用來自上下文模型更新單元833 的更新上下文模型執(zhí)行二進(jìn)制算術(shù)譯碼或旁路譯碼的任務(wù)。來自二進(jìn)制譯碼單元834的譯 碼輸出將被儲存在非算術(shù)編碼位元串流840的儲存裝置以更進(jìn)一步進(jìn)行譯碼處理。在圖8中 預(yù)看位元串流重新格式化處理電路的詳細(xì)架構(gòu)用于說明根據(jù)本發(fā)明的一例子。本領(lǐng)域的技 術(shù)人士可采用類似的結(jié)構(gòu)且不偏離本發(fā)明的實(shí)質(zhì)精神來實(shí)現(xiàn)本發(fā)明。
[0098]圖9顯示根據(jù)本發(fā)明一實(shí)施例的非算術(shù)二進(jìn)制字符串的可變長度譯碼器900的一 例子。來自預(yù)看位元串流重新格式化處理電路的算術(shù)譯碼二進(jìn)制字符串不包括任何算術(shù)編 碼數(shù)據(jù),使得二進(jìn)制字符串可使用可變長度譯碼器譯碼??勺冮L度譯碼器900包括用于快速 存取儲存在儲存裝置840中的非算術(shù)編碼位元串流直接存儲器存取(direct memory access,DMA)910。在非算術(shù)編碼二進(jìn)制字符串中的編碼語法元素可通過各種可變長度碼, 如霍夫曼碼(Huffman code)、一元碼(Unary code)及指數(shù)哥倫布碼(Exp-Golomb code)等 進(jìn)行編碼。因此,非算術(shù)二進(jìn)制字符串將被提供給一對應(yīng)的霍夫曼譯碼引擎920、一元譯碼 引擎930、指數(shù)哥倫布譯碼引擎940等。每一譯碼引擎將各自恢復(fù)編碼語法元素。輸出語法可 被儲存于一緩沖器/存儲器以用于后續(xù)處理或提供給一視頻譯碼器中的其它處理器。
[0099]圖10顯示預(yù)看位元串流重新格式化處理電路處理的一示范性流程圖。如圖10所 示,在步驟1010中,算術(shù)編碼位元串流被讀取至預(yù)看位元串流重新格式化處理電路。代替全 部位元串流,每次讀取算術(shù)編碼位元串流的一部分。當(dāng)處理單元對應(yīng)于一大處理區(qū)域時(shí),像 是一圖片、一切片或一宏塊/編碼樹單元列,特別有用?;谙噜彅?shù)據(jù)和解碼語法信息的上 下文模型在步驟1020中產(chǎn)生,以在步驟1030中執(zhí)行語法元素譯碼。譯碼語法在步驟1040中 寫出至儲存裝置。由于上下文模型依賴于譯碼語法,因此譯碼語法被用于更新語法模型,如 步驟1050所示。圖10中的流程圖是用于說明根據(jù)本發(fā)明實(shí)施例的算術(shù)譯碼處理的一例子。 本領(lǐng)域技術(shù)人員可修改處理步驟以實(shí)施本發(fā)明,且不脫離本發(fā)明的實(shí)質(zhì)精神。例如步驟 1010和1020可以交換。而步驟1040和1050也可以交換。
[0100] 圖11顯示可變長度譯碼器處理的一示范性流程圖。如圖11所示,在步驟1110中,非 算術(shù)編碼位元串流被讀入至可變長度譯碼器中。代替全部的位元串流,每次可讀取部分的 非算術(shù)編碼位元串流。當(dāng)該處理單元對應(yīng)一大處理區(qū)域時(shí),像是一圖片、一切片或一宏塊/ 編碼樹單元列,特別有用。在步驟1120中,語法譯碼接著被應(yīng)用至使用一相應(yīng)可變長度譯碼 器的非算術(shù)編碼位元串流。譯碼語法接著被進(jìn)行輸出,如步驟1130所示。在圖11中的流程圖 系用以說明根據(jù)本發(fā)明實(shí)施例的可變長度譯碼器譯碼處理的一例子。
[0101] 本發(fā)明儲存算術(shù)譯碼二進(jìn)制字符串于存儲器中。在一實(shí)施例中,該系統(tǒng)可以利用 已儲存的算術(shù)譯碼二進(jìn)制字符串并檢測在算術(shù)譯碼二進(jìn)制字符串中可能的錯(cuò)誤。預(yù)看位元 串流重新格式化處理電路解析影像位元串流的一部分圖像、一圖像或多圖像,并在提供可 變長度譯碼器處理及之后的視頻譯碼處理的二進(jìn)制字符串之前,將二進(jìn)制字符串存入存儲 器中。如果視頻位元串流內(nèi)有任何錯(cuò)誤時(shí),錯(cuò)誤可由預(yù)看位元串流重新格式化處理電路來 檢測,而語法解析器可以記錄此錯(cuò)誤。舉例來說,一錯(cuò)誤表可用來記錄一圖像中的錯(cuò)誤信 息。圖12顯示結(jié)合本發(fā)明一實(shí)施例的一例子,其中每一影像單元對應(yīng)一編碼樹單元或一宏 塊。預(yù)看位元串流重新格式化處理電路1210解析視頻位元串流并檢測錯(cuò)誤。在圖像中的錯(cuò) 誤被記錄在一錯(cuò)誤表1220。算術(shù)譯碼位元串流被提供給可變長度譯碼器1230用于可變長度 譯碼器譯碼以恢復(fù)語法元素。錯(cuò)誤信息在譯碼編碼樹單元/宏塊列期間將被提供至之后的 視頻譯碼處理。如果在當(dāng)前須被處理的編碼樹單元/宏塊期間有任何錯(cuò)誤時(shí),視頻譯碼器可 應(yīng)用錯(cuò)誤處理至當(dāng)前的編碼樹單元/宏塊。
[0102] 圖13顯示根據(jù)本發(fā)明一實(shí)施例結(jié)合一預(yù)看位元串流重新格式化處理電路的一熵 譯碼器的一示范性流程圖。在步驟1310中該譯碼器接收與視頻數(shù)據(jù)相關(guān)的一視頻位元串流 的輸入數(shù)據(jù)。在步驟1320中,算術(shù)譯碼被應(yīng)用于視頻位元串流至少一部分,以推導(dǎo)出一或多 個(gè)算術(shù)譯碼二進(jìn)制字符串,其中上述一或多個(gè)算術(shù)譯碼二進(jìn)制字符串不包括算術(shù)編碼二進(jìn) 制字符串。在步驟1330中,上述的存儲器一或多個(gè)算術(shù)譯碼二進(jìn)制字符串被儲存在一存儲 器。在步驟1340中,當(dāng)儲存在上述存儲器中的算術(shù)譯碼位元串流對一選擇影像單元為完整 時(shí),從上述存儲器中接收上述算術(shù)譯碼位元串流至少一部分,用于一可變長度譯碼器 (variable-length decoder,VLD),其中上述算術(shù)譯碼位元串流包括用于上述選擇影像單 元的算術(shù)譯碼二進(jìn)制字符串。在步驟1350中,上述算術(shù)譯碼位元串流至少一部分被譯碼為 一或多個(gè)譯碼語法元素。
[0103] 所示的流程圖用以說明根據(jù)本發(fā)明熵譯碼的一例子。本領(lǐng)域技術(shù)人員可修改每一 步驟、重新排列上述步驟、分割一步驟、或結(jié)合步驟來實(shí)施本發(fā)明,且不脫離本發(fā)明的實(shí)質(zhì) 精神。在本揭露中,特定的語法和語義已被用以說明例子來實(shí)現(xiàn)本發(fā)明的實(shí)施方式。本領(lǐng)域 技術(shù)人員可通過替換具有等效語法和語義的語法和語義且不脫離本發(fā)明精神的前提下實(shí) 現(xiàn)本發(fā)明。
[0104] 本發(fā)明公開了一種算術(shù)編碼二進(jìn)制字符串的高吞吐量熵譯碼器。上面的描述能夠 使本領(lǐng)域技術(shù)人員以上文所提供的特定應(yīng)用及其要求來實(shí)施本發(fā)明。各種于上述實(shí)施例的 修改對本領(lǐng)域技術(shù)人員將是顯而易見,且此處所定義的基本原則可被應(yīng)用于其它實(shí)施例 中。因此,本發(fā)明并不僅限于上面描述及顯示的特定實(shí)施例,而是記載了符合本原則及新的 特征的最廣范圍。為提供有關(guān)本發(fā)明的全面理解,上述詳細(xì)記載中描述了各種具體細(xì)節(jié)。然 而,本領(lǐng)域技術(shù)人員應(yīng)理解本發(fā)明可以實(shí)施。
[0105] 本發(fā)明在不脫離其本質(zhì)特征的情況下,可以以其它特定形式實(shí)現(xiàn)。所描述的實(shí)施 例在所有方面僅被認(rèn)為是說明性而非限制性的。因此,本發(fā)明的范圍由所附的申請專利范 圍來指示而不是通過前面的描述來指示。所有落入申請專利范圍的等同物的意義和范圍內(nèi) 的改變均被涵蓋在其范圍內(nèi)。
【主權(quán)項(xiàng)】
1. 一種在一視頻譯碼器中使用可變長度編碼和算術(shù)編碼所編碼的二進(jìn)制字符串的熵 譯碼的方法,上述方法包括: 接收與視頻數(shù)據(jù)相關(guān)的一視頻位元串流的輸入數(shù)據(jù); 應(yīng)用算術(shù)譯碼至上述視頻位元串流至少一部分以推導(dǎo)出一或多個(gè)算術(shù)譯碼二進(jìn)制字 符串,其中上述一或多個(gè)算術(shù)譯碼二進(jìn)制字符串不包括算術(shù)編碼二進(jìn)制字符串; 儲存上述一或多個(gè)算術(shù)譯碼二進(jìn)制字符串在一存儲器中; 當(dāng)儲存在上述存儲器中的算術(shù)譯碼位元串流對一選擇影像單元為完整時(shí),從上述存儲 器中接收上述算術(shù)譯碼位元串流至少一部分,用于一可變長度譯碼器,其中上述算術(shù)譯碼 位元串流包括用于上述選擇影像單元的算術(shù)譯碼二進(jìn)制字符串;以及 譯碼上述算術(shù)譯碼位元串流至少一部分為一或多個(gè)譯碼語法元素。2. 如權(quán)力要求1所述的方法,其中上述算術(shù)譯碼包括執(zhí)行基于上下文譯碼,以基于一上 下文模型產(chǎn)生一或多個(gè)譯碼位元(bin),以及根據(jù)上述上下文譯碼位元更新上述上下文模 型。3. 如權(quán)力要求1所述的方法,其中上述選擇影像單元對應(yīng)一圖像、切片、宏塊列、一編碼 樹單元列、一宏塊、一編碼樹單元、一編碼單元或一區(qū)塊。4. 如權(quán)力要求1所述的方法,其中上述可變長度譯碼器能譯碼一或多個(gè)可變長度譯碼 器碼。5. 如權(quán)力要求4所述的方法,其中上述一或多個(gè)可變長度譯碼器碼包括霍夫曼碼、一元 碼及指數(shù)哥倫布碼。6. 如權(quán)力要求1所述的方法,其中上述算術(shù)譯碼為平行使用多個(gè)算術(shù)譯碼處理電路以 被應(yīng)用至于至少一部分的上述視頻位元串流至少一部分的平行使用多個(gè)算術(shù)譯碼處理電 路。7. 如權(quán)力要求1所述的方法,更進(jìn)一步包括檢查儲存在上述存儲器中用于上述選擇影 像單元的上述算術(shù)譯碼位元串流中的任何錯(cuò)誤。8. 如權(quán)力要求7所述的方法,更進(jìn)一步包括當(dāng)檢測到任何錯(cuò)誤時(shí),提供錯(cuò)誤信息給一之 后的視頻譯碼器用于處理錯(cuò)誤。9. 如權(quán)力要求1所述的方法,其中一算術(shù)譯碼處理電路用于上述算術(shù)譯碼,以及上述算 術(shù)譯碼處理電路及上述可變長度譯碼器被安排用以執(zhí)行在選擇影像單元中同時(shí)執(zhí)行管線 化算術(shù)譯碼和可變長度譯碼。10. 如權(quán)力要求9所述的方法,其中每一選擇影像單元對應(yīng)一編碼樹單元或一宏塊。11. 一種在一視頻譯碼器中使用可變長度編碼和算術(shù)編碼所編碼之二進(jìn)制字符串的熵 譯碼設(shè)備,上述設(shè)備包括: 一算術(shù)譯碼處理電路,耦接至一位元串流輸入及一儲存裝置,其中上述算術(shù)譯碼處理 電路通過上述位元串流接收一視頻位元串流,應(yīng)用算術(shù)譯碼至上述視頻位元串流至少一部 分以推導(dǎo)出一或多個(gè)算術(shù)譯碼二進(jìn)制字符串,其中上述一或多個(gè)算術(shù)譯碼二進(jìn)制字符串不 包括算術(shù)編碼二進(jìn)制字符串,以及 一可變長度譯碼器,耦接至上述算術(shù)譯碼處理電路、上述儲存裝置及一可變長度譯碼 器輸出,其中, 當(dāng)儲存在上述儲存裝置中的算術(shù)譯碼位元串流對一選擇影像單元為完整時(shí),上述可變 長度譯碼器接收算術(shù)譯碼位元串流至少一部分,譯碼上述算術(shù)譯碼位元串流至少一部分為 一或多個(gè)譯碼語法元素,并通過上述可變長度譯碼器輸出提供上述一或多個(gè)譯碼語法元 素。12. 如權(quán)力要求11所述的熵譯碼設(shè)備,其中上述算術(shù)譯碼處理電路包括一上下文二進(jìn) 制譯碼器及一上下文模型更新處理電路,其中上述上下文二進(jìn)制譯碼器被安排用以執(zhí)行基 于上下文譯碼以基于一上下文模型產(chǎn)生一或多個(gè)譯碼位元,以及上述上下文模型更新處理 電路根據(jù)上述上下文譯碼位元更新上述上下文模型。13. 如權(quán)力要求12所述的熵譯碼設(shè)備,其中上述算術(shù)譯碼處理電路系耦接至一上下文 儲存裝置及相鄰數(shù)據(jù)儲存裝置以取得上述基于上下文譯碼所需的上下文信息。14. 如權(quán)力要求11所述的熵譯碼設(shè)備,其中上述可變長度譯碼器包括用于譯碼一或多 個(gè)相應(yīng)的可變長度譯碼器碼的一或多個(gè)可變長度譯碼器引擎。15. 如權(quán)力要求14所述的熵譯碼設(shè)備,其中上述一或多個(gè)可變長度譯碼器引擎包括霍 夫曼譯碼引擎、一元譯碼引擎及指數(shù)哥倫布譯碼引擎。16. 如權(quán)力要求11所述的熵譯碼設(shè)備,其中上述算術(shù)譯碼處理電路包括多個(gè)算術(shù)譯碼 處理電路以平行操作。17. 如權(quán)力要求11所述的熵譯碼設(shè)備,更包括一錯(cuò)誤檢查電路,能檢查儲存在上述儲存 裝置中用于上述選擇影像單元的上述算術(shù)譯碼位元串流中的任何錯(cuò)誤。18. 如權(quán)力要求17所述的熵譯碼設(shè)備,其中當(dāng)檢測到任何錯(cuò)誤時(shí),上述錯(cuò)誤檢查電路提 供錯(cuò)誤信息給一之后的視頻譯碼器用于處理錯(cuò)誤。19. 如權(quán)力要求11所述的熵譯碼設(shè)備,其中上述算術(shù)譯碼處理電路及上述可變長度譯 碼器被安排用以執(zhí)行在選擇影像單元中同時(shí)執(zhí)行管線化算術(shù)譯碼和可變長度譯碼。20. 如權(quán)力要求19所述的熵譯碼設(shè)備,其中每一選擇影像單元對應(yīng)一圖像、切片、編碼 樹單元列、宏塊列、編碼樹單元、編碼單元或區(qū)塊。
【文檔編號】H04N19/107GK105898301SQ201610084448
【公開日】2016年8月24日
【申請日】2016年2月14日
【發(fā)明人】鄭佳韻, 張永昌
【申請人】聯(lián)發(fā)科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1