TWI620434B - 用於在硬體熵引擎的外部記憶設備中產生計數表的視訊處理設備和相關的視訊處理方法 - Google Patents

用於在硬體熵引擎的外部記憶設備中產生計數表的視訊處理設備和相關的視訊處理方法 Download PDF

Info

Publication number
TWI620434B
TWI620434B TW106106266A TW106106266A TWI620434B TW I620434 B TWI620434 B TW I620434B TW 106106266 A TW106106266 A TW 106106266A TW 106106266 A TW106106266 A TW 106106266A TW I620434 B TWI620434 B TW I620434B
Authority
TW
Taiwan
Prior art keywords
count
entropy
memory device
engine
hardware
Prior art date
Application number
TW106106266A
Other languages
English (en)
Other versions
TW201740732A (zh
Inventor
王勝仁
張永昌
鄭佳韻
Original Assignee
聯發科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 聯發科技股份有限公司 filed Critical 聯發科技股份有限公司
Publication of TW201740732A publication Critical patent/TW201740732A/zh
Application granted granted Critical
Publication of TWI620434B publication Critical patent/TWI620434B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一種視訊處理裝置包括外部記憶設備,硬體熵引擎以及軟體執行引擎。硬體熵引擎執行當前圖像之熵處理,並且還在當前圖像之熵處理期間將計數信息輸出到外部記憶設備;以及在外部記憶設備外部的軟體執行引擎。其中當軟體執行引擎裝載和執行時,軟體程式指令軟體執行引擎將計數信息轉換為多個計數表內容,並且至少根據多個計數表內容在外部記憶設備中生成計數表。引用計數表來對由硬體熵引擎選擇性地使用之概率表應用後向適應來執行下一圖像之熵處理。

Description

用於在硬體熵引擎的外部記憶設備中產生計數表的視訊 處理設備和相關的視訊處理方法
本發明涉及熵編碼/解碼,更具體地,涉及用於在硬體熵引擎(例如,硬體熵編碼器/解碼器)的外部記憶設備中生成計數表(count table)的視訊處理裝置(例如,視訊編碼器/解碼器)和相關的視訊處理方法。
傳統的視訊編解碼標準通常採用基於塊的編解碼技術來利用空間和時間冗餘。例如,基本方法是將整個源訊框劃分為多個塊,對每個塊執行訊框內預測/訊框間預測(intra prediction/inter prediction),對每個塊的殘差進行變換,並執行量化和熵編碼。此外,在編解碼循環(coding loop)中生成重建訊框(reconstructed frame)以提供用於編解碼後面的塊的參考像素資料。對於某些視訊編解碼標準,可以使用環路濾波器(in-loop filter)來增強重構訊框的圖像質量。
視訊解碼器用於執行由視訊編碼器執行的視訊編碼操作的逆操作。例如,視訊編碼器中的熵編碼器用於生成編碼比特流,而視訊解碼器中的熵解碼器用於解碼編碼比特流。算術編解碼可以由熵編碼器使用。因此,熵編碼器參考概率表執行熵編碼,並且視訊解碼器也參考相同的概率表來執行熵解碼。由於視訊內容本質上是不穩定的,對於視訊編碼器和視訊解碼器中的每一個,概率表的適應性對於統計資料的變化至關重要。
要求保護的發明的目的之一是提供一種用於在硬體熵引擎(例如,硬體熵編碼器/解碼器)的外部記憶設備中生成計數表的視訊處理裝置(例如,視訊編碼器/解碼器)和相關聯的視訊處理方法。
依據本發明之第一方面,提出一種範例的視訊處理裝置。範例的視訊處理裝置包括外部記憶設備、硬體熵引擎以及軟體執行引擎。硬體熵引擎被布置為執行當前圖像之熵處理,並且還被布置成在當前圖像之熵處理期間將計數信息輸出到外部記憶設備。軟體執行引擎在外部記憶設備外部。當軟體執行引擎裝載和執行時,軟體程式指令軟體執行引擎將計數信息轉換為多個計數表內容,並且至少根據多個計數表內容在外部記憶設備中生成計數表,其中,引用計數表來對由硬體熵引擎選擇性地使用之概率表應用後向適應來執行下一圖像之熵處理。
依據本發明之第二方面,提出一種範例的視訊處理方法。範例的視訊處理方法包括通過硬體熵引擎執行當前圖像之熵處理,並且在當前圖像之熵處理期間將計數信息輸出到硬體熵引擎的外部記憶設備;以及執行軟體程式以將計數信息轉換為多個計數表內容,並且至少根據多個計數表內容在外部記憶設備中產生計數表,其中引用計數表來對由硬體熵引擎選擇性地使用之概率表應用後向適應來執行下一圖像之熵處理。
在閱讀了在各種附圖和附圖中示出的優選實施例的以下詳細描述之後,本發明的這些和其它目的無疑將在本領域具有通常知識者中變得顯而易見。
100‧‧‧視訊處理系統
102‧‧‧CPU
104‧‧‧視訊解碼器
106‧‧‧視訊編碼器
108‧‧‧存儲控制器
110‧‧‧顯示引擎
113、115‧‧‧硬體熵引擎
112、114‧‧‧內部記憶設備
116‧‧‧外部記憶設備
120‧‧‧CPU總綫
130‧‧‧存儲資料總綫
202‧‧‧熵處理單元
204‧‧‧流量控制單元
206‧‧‧相鄰資料更新單元
208‧‧‧概率表選擇單元
210‧‧‧概率表訪問單元
212‧‧‧計數信息收集單元
214‧‧‧DMA單元
216‧‧‧相鄰資料緩衝器
218‧‧‧概率表緩衝器
402~410、502~524、1102~1106、1302~1306‧‧‧步驟
902‧‧‧後向更新器
1002‧‧‧DMA電路
第1圖是根據本發明之實施例的視訊處理系統的框圖示意圖。
第2圖是根據本發明之實施例的硬體熵引擎的框圖之示意圖。
第3圖是根據本發明之實施例為一組符號創建的二叉樹之示意圖。
第4圖是根據本發明之實施例的第一後向概率表更新方法的流程圖。
第5圖是示出根據本發明之實施例的第二後向概率表更新方法的流程圖。
第6圖是基於硬體的計數表維護設計的後向概率表更新操作與使用所提出的混合計數表維護設計的後向概率表更新操作之間的比較之示意圖。
第7圖是根據本發明之實施例的將由標識符組成之計數信息轉換為計數表之操作之示意圖。
第8圖是根據本發明之實施例的將由坐標組成之計數信息轉換為計數表之操作之示意圖。
第9圖是根據本發明之實施例的第一後向適應設計之示意圖。
第10圖是根據本發明之實施例的第二後向適應設計之示意圖。
第11圖是根據本發明之實施例的概率表加載方法的流程圖。
第12圖是根據本發明之實施例的完整概率表和部分概率表之示意圖。
第13圖是根據本發明之實施例的另一概率表加載方法的流程圖。
在以下描述和申請專利範圍中使用某些術語,其涉及特定組件。如本領域具有通常知識者將理解的,電子設備製造商可以通過不同的名稱來引用組件。本文檔不打算區分不同名稱但功能不一致的組件。在下面的描述和權利要求中,術語“包括”和“包括”以開放的方式使用,因此應被解釋為意味著“包括但不限於...”。此外,術語“耦合”意在指間接或直接電連接。因此,如果一個設備耦合到另一個設備,該連接可以通過直接電連接,或通過經由其他設備和連接的間接電連接。
第1圖是根據本發明之實施例的視訊處理系統的框圖示意圖。視訊處理系統100包括軟體執行引擎(例如,中央處理單元(CPU)102)、多個視訊處理裝置(例如,視訊解碼器104和視訊編碼器106)、存儲控制器(例如,記憶體控制器)108和顯示引擎(例如,顯示驅動電路)110。視訊解碼器104、視訊編碼器106、存儲控制器108和顯示引擎110可以經由CPU總綫120與CPU 102通信。CPU 102、視訊解碼器104、視訊編碼器106和顯示引擎110可以經由存儲資料總綫130與存儲控制器108進行通信。視訊解碼器104支持熵解碼功能,視訊編碼器106支持熵編碼功能。在該示例中,視訊解碼器104具有硬體熵引擎(例如,硬體熵解碼器)113和可由硬體熵引擎113訪問的內部記憶設 備(例如,片上靜態隨機存取記憶體(static random access memory,簡寫為SRAM))112,並且視訊編碼器106具有硬體熵引擎(例如,硬體熵編碼器)115和可由硬體熵引擎115訪問的內部記憶設備(例如,片上SRAM)114。例如,硬體熵引擎113及其內部記憶設備112可以在相同的晶片中實現,並且硬體熵引擎115及其內部記憶設備114可以在相同的晶片中實現。外部記憶設備116可以是CPU 102,視訊解碼器104和視訊編碼器106外部的片外(off-chip)動態隨機存取記憶體(dynamic random access memory,簡寫為DRAM)。因此,關於視訊解碼器104和視訊編碼器106,硬體熵引擎113和115可經由存儲控制器108訪問外部記憶設備116。
關於視訊解碼器104,硬體熵引擎113被布置為執行當前圖像之熵處理(即,熵解碼),並且還被布置為在當前圖像之熵處理(即熵解碼)期間將計數信息輸出到外部記憶設備116。CPU 102用作軟體執行引擎。當CPU102裝載並執行時,軟體程式PROG指示CPU 102將計數信息轉換為計數表內容,並根據至少計數表內容在外部記憶設備116中生成計數表。在本實施例中,參考為當前圖像之熵解碼生成之計數表,以對硬體熵引擎113選擇性地使用之概率表應用後向適應(backward adaptation),以執行下一圖像之熵處理(即熵解碼)。
關於視訊編碼器106,硬體熵引擎115被布置為執行當前圖像之熵處理(即,熵編碼),並且還被布置為在當前圖像之熵處理(即熵編碼)期間將計數信息輸出到外部記憶設備116。如上所述,CPU 102用作軟體執行引擎。當CPU 102裝載並執行時,軟體程式PROG指示CPU 102將計數信息轉換為計數表內容,並且至少根據計數表內容在外部記憶設備116中生成計數表。在本實施例中,參考為當前圖像之熵編碼生成之計數表,以對硬體熵引擎115選擇性地使用之概率表應用後向適應,以執行下一圖像之熵處理(即熵編碼)。
簡而言之,硬體熵引擎115/113不創建並存儲計數表(其被引用為對熵編碼/解碼使用之概率表應用後向適應)在內部記憶設備114/112中。使用內部記憶設備114/112來存儲概率表的後向適應所需之計數表是相當昂貴的。例如,當計數表存儲在內部記憶設備114/112中時,分配存儲空間以存儲可能具有12.2K字節(即3066×32比特)的表大小的計數表。因此,本發明提出了硬體和軟體分區優化,使得軟體引擎(例如,CPU 102)可以根據由硬體引擎(例如,硬體熵引擎115/113)提供的提議的計數信息創建和存儲計數表(其被引用 以對熵編碼/解碼使用之概率表應用後向適應)在外部記憶設備116中。稍後將描述計數信息之更多細節。
第2圖是根據本發明之實施例的硬體熵引擎的框圖之示意圖。硬體熵引擎113和115中的每一個可以被配置為採用與第2圖所示相同的硬體結構。在本實施例中,硬體熵引擎115/113包括多個電路,例如熵處理單元202、流量控制單元204、相鄰資料更新單元206、概率表選擇單元208、概率表訪問單元210、計數信息收集單元212和直接記憶體訪問(direct memory access,簡寫為DMA)單元214。專用於對應的硬體熵引擎115/113的內部記憶設備114/112可以具有分配在其中的相鄰資料緩衝器216和概率表緩衝器218。外部記憶設備116用於存儲由硬體熵引擎115/113提供的計數信息CNT_info和由軟體執行引擎(例如,CPU 102)生成之計數表CNT_table,該計數表基於從計數信息CNT_info轉換之計數表內容。
VP9是由Google®開發的開放及免版稅視訊編解碼標準。為了清楚和簡單起見,假定硬體熵引擎115/113被配置為執行符合VP9編解碼標準的熵編碼/解碼。然而,這僅僅是為了說明的目的,並不意味著對本發明之限制。使用硬體熵引擎115/113的任何視訊編碼器/解碼器(特別是所提出的計數信息收集單元212)都屬於本發明之範圍。
概率表緩衝器218用於存儲用於語法編碼/解碼的概率表Prob_table。相鄰資料緩衝器216用於存儲為概率表Prob_table的概率模型選擇而引用的上相鄰塊的信息。存儲在外部記憶設備116中的計數表CNT_table基於當前圖像之熵處理(例如布爾(boolean)編碼/解碼)期間由計數信息收集單元212收集的計數信息CNT_info而生成。例如,計數表CNT_table記錄當前圖像中所有編碼/解碼語法的實際計數,並被引用用於概率表Prob_table的後向適應。在當前圖像之熵編碼/解碼期間,DMA單元214可以將由計數信息收集單元212收集的計數信息CNT_info發送到外部記憶設備116。
流量控制單元204控制整個圖像編碼/解碼流程。熵處理單元202是硬體熵引擎115/113的核心部分。例如,熵處理單元202可以執行模式處理、運動向量差(motion vector difference,簡寫為MVD)處理、符記(token)處理等。模式處理用於對模式相關的語法元素進行編碼/解碼。MVD處理用於對運動向量差進行編碼/解碼。令牌處理用於執行係數編碼/解碼,從而對令牌進行編碼/解碼。概率表訪問單元210是用於訪問存儲在概率表緩衝器218中的概率表Prob_table 的接口模塊。相鄰資料更新單元206用於根據當前塊的語法類型和一些語法元素執行相鄰資料選擇。概率表選擇單元208用於參考相鄰資料更新單元206提供的相鄰信息,以執行用於確定語法熵編碼/解碼(例如模式處理、MVD處理和令牌處理)所使用之概率模型的概率模型選擇。
在外部記憶設備116中可獲得用於當前圖像之熵編碼/解碼產生的最終計數表CNT_table之後,CPU 102(特別是在CPU 102上運行之軟體程式PROG)根據語法邊信息(side information)(例如,語法類型)、舊概率表(即,使用之當前概率表Prob_table)和計數表CNT_table執行後向概率更新功能來生成新的概率表(即,更新的概率表)。
除了被直接編碼為原始值(raw value)的很少的標頭位元(header bit)之外,大部分壓縮的VP9資料值是使用布爾算術編碼器進行編碼的,該算術編碼器充當底層的二進制算術編碼器。一般來說,給定任何n字母(n-ary alphabet)的符號,使用(n-1)非葉(non-leaf)節點(或稱為父節點)和(n)葉節點來構造靜態二叉樹(binary tree),並且當樹被遍歷時,二進制算術編碼器在每個非葉節點上進行操作以對特定符號(其可以是語法類型的一個上下文之一個語法設置)進行編碼。第3圖是根據本發明之實施例為一組符號創建的二叉樹(binary tree)之示意圖。在這個例子中,有四個非葉節點NP_0、NP_1、NP_2、NP_3由圓圈表示,5個葉節點NL_0、NL_1、NL_2、NL_3、NL_4用方形表示。字母表中的任何符號可以由通過從根節點NP_0到相應的葉節點遍歷二叉樹生成之一系列二進制值來表示。二叉樹中的每個非葉節點具有基於採用左(0)分支進行遍歷的可能性分配的概率(例如,P0、P1、P2、P3)。將用於編碼特定語法的可能符號的概率P0-P3的集合稱為要編碼的特定語法的熵編解碼上下文(或稱為概率模型)。視訊內容本質上是非固定的,並且任何視訊編碼器/解碼器的關鍵元素是用於跟踪各種符號的統計信息並更新概率表中符號的熵編解碼上下文(概率模型),以匹配符號的實際分配的機制。例如,可以採用後向適應來在每個圖像之編碼/解碼結束時更新熵編解碼上下文(概率模型)。換句話說,一旦當前圖像中的所有符號已被處理(例如,編碼或解碼),則進行後向適應步驟,以根據當前圖像中的每個符號的實際計數進一步更新下一圖像中使用之概率。基於這些實際計數,可以獲得相應二叉樹中各種非葉節點的概率。取第3圖所示之二叉樹為例。對於每個非葉節點NP_0-NP_3,記錄在計數表中的信息可以指示0的發生次數和1的發生次數。因此,基於與所有非葉節點 NP_0-NP_3相關聯的計數表信息,可以獲得概率集合P0-P3的新值,然後由後向適應步驟使用以設置概率集合P0-P3的更新值,其可以被選擇用於對下一個圖像進行編碼/解碼。
如上所述,計數信息收集單元212收集與由熵處理單元202執行的語法編碼/解碼相關聯的計數信息CNT_info,並且經由DMA單元214將收集的計數信息CNT_info輸出到外部記憶設備116;並且基於從計數信息CNT_info轉換之計數表內容生成計數表CNT_table(其用於概率表Prob_table的後向適應)。在一個示例性設計中,軟體執行引擎(例如,CPU 102)不開始將計數信息CNT_info轉換為計數表內容,直到當前圖像被熵處理(即,熵編碼/解碼)完全處理,其中計數信息CNT_info是當前圖像之整個熵處理過程(即,熵編碼/解碼過程)由計數信息收集單元212收集的當前圖像之全部計數信息。
第4圖是根據本發明之實施例的第一後向概率表更新方法的流程圖。如果結果基本相同,則不需要按照第4圖所示之確切順序執行步驟。在步驟402,硬體熵引擎115/113被觸發以啟動圖像之熵處理。因此,流量控制單元204指示熵處理單元202開始圖像之熵處理。在步驟404中,熵處理單元202執行圖像之熵處理,並且計數信息收集單元212在圖像之熵處理期間收集從熵處理單元202生成之計數信息CNT_info。在步驟406,檢查圖像之熵處理是否完成。也就是說,步驟406檢查圖像是否被完全熵編碼/解碼。如果圖像沒有被完全熵編碼/解碼,則流程進行到步驟404,使得熵處理單元202繼續執行圖像之熵處理,並且計數信息收集單元212繼續收集與圖像之熵處理相關聯的計數信息CNT_info。如果圖像被完全熵編碼/解碼,則流程進行到步驟408。在步驟408,CPU 102(特別地,在CPU 102上運行之軟體程式PROG)開始將存儲在外部記憶設備116中的計數信息CNT_info(其是圖像之全部計數信息)轉換成存儲在外部記憶設備116中的計數表CNT_table。換句話說,CPU 102(特別是在CPU 102上運行之軟體程式PROG)僅執行計數信息轉換操作一次,從而獲得圖像之完整計數表CNT_table。在步驟410,CPU102(特別是在CPU102上運行之軟體程式PROG)至少根據計數表CNT_table執行概率表Prob_table的後向適應。例如,外部記憶設備116可以具有分配在其中的工作緩衝器,使得後向概率表更新可以使用工作緩衝器基於舊概率表(即,目前使用之概率表Prob_table)和計數表CNT_table來計算新的概率表(即,更新的概率表)。在更新概率表被計算之後,更新的概率表可以被選擇性地加載到內部記憶設備 114/112的概率表緩衝器218中,以對下一個圖像進行熵處理。
在另一個示例性設計中,軟體執行引擎(例如,CPU 102)在當前圖像被完全熵處理之前開始將計數信息CNT_info轉換為計數表內容,其中計數信息CNT_info是當前圖像之部分計數信息,並且由計數信息收集單元212收集用於當前圖像之一部分的熵處理(即,熵編碼/解碼)。
第5圖是示出根據本發明之實施例的第二後向概率表更新方法的流程圖。如果結果基本相同,則不需要按照第5圖所示之確切順序執行步驟。在步驟502,控制參數PIC_END被初始化為第一值。例如,PIC_END=0。在步驟504,硬體熵引擎115/113被觸發以開始當前圖像之熵處理。因此,流量控制單元204指示熵處理單元202開始當前圖像之熵處理。在步驟506,熵處理單元202執行圖像之熵處理,並且還輸出計數信息CNT_info。此外,計數信息收集單元212收集計數信息CNT_info,並且在當前圖像之熵處理期間將收集的計數信息CNT_info轉移到外部記憶設備116。在步驟508,檢查當前圖像之熵處理是否結束。也就是說,步驟508檢查當前圖像是否被完全熵編碼/解碼。如果當前圖像未被完全熵編碼/解碼,則控制參數PIC_END保持不變(即,PIC_END=0)。如果當前圖像被完全熵編碼/解碼,則控制參數PIC_END被更新為第二值。例如,PIC_END=1。在步驟514,CPU 102(特別是CPU102上運行之軟體程式PROG)從硬體熵引擎115/113(特別是熵處理單元202)獲得硬體狀態,其中硬體狀態指示要轉換之計數信息CNT_info之數量。
在一個示例性設計中,CPU 102(特別是在CPU 102上運行之軟體程式PROG)在當前圖像之熵處理期間執行多個轉換迭代(conversion iteration)。在PIC_END=0的情况下,CPU 102(特別是CPU102上運行之軟體程式PROG)檢查硬體狀態,判定要轉換之計數信息CNT_info之數量是否達到預定值,並在當計數信息CNT_info的量達到預定值時,執行轉換迭代之一以將計數信息CNT_info轉換為計數表內容。因此,當PIC_END=0時,在一個轉換迭代(不是最後之轉換迭代)中要轉換之計數信息之總數N等於預定值,其中在步驟514由N設置控制參數CNT。
在PIC_END=1的另一情况下,CPU 102(特別是CPU 102上運行之軟體程式PROG)檢查硬體狀態以確定要轉換之剩餘計數信息CNT_info的量,並執行最後的迭代轉換,以將剩餘計數信息CNT_info轉換為計數表內容。因此,當PIC_END=1時,在最後之轉換迭代中要轉換之計數信息之總數N等 於待轉換之剩餘計數信息CNT_info的量,其中在步驟514中控制參數CNT由N設置。
關於當前圖像之計數表之生成,執行除了最後之轉換迭代之外的所有轉換迭代以轉換等於預定值的相同數目的計數信息CNT_info,並且執行最後之轉換迭代以轉換尚未轉換之剩餘計數信息CNT_info。控制參數CNT初始化為N,用於指示是否完成了一次轉換迭代的計數信息CNT_info之轉換。在步驟516,檢查控制參數CNT是否等於零。如果控制參數CNT不等於零,則流程繼續步驟518。在步驟518,CPU102(特別是在CPU102上運行之軟體程式PROG)通過尚未轉換之計數信息CNT_info之一之轉換結果來更新外部記憶設備116中的計數表CNT_table。在步驟520,將控制參數CNT減1,以反映外部記憶設備116中可用之計數信息CNT_info中的一個之轉換之完成,並且流程進行到步驟516以檢查是否已經執行將N個計數信息CNT_info轉換為計數表內容的N個轉換迭代。如果控制參數CNT等於零,則流程繼續步驟522以檢查控制參數PIC_END是否被設置為第二值(例如,PIC_END=1)。當控制參數PIC_END仍然被設置為第一值(例如,PIC_END=0)時,這意味著該圖像尚未被完全熵編碼/解碼。因此,流程繼續步驟506。當控制參數PIC_END被設置為第二值(例如,PIC_END=1)時,這意味著圖像被完全熵編碼/解碼。因此,流程繼續步驟524。在步驟524,CPU 102(特別是在CPU 102上運行之軟體程式PROG)獲得硬體熵引擎115/113當前使用之概率表Prob_table,並且根據通過當前圖像之熵編碼/解碼產生的計數表CNT_table對概率表Prob_table執行後向適應,使得可以通過對下一圖像之熵編碼/解碼來選擇性地使用更新的概率表Prob_table。
在另一示例性設計中,CPU 102(特別是在CPU 102上運行之軟體程式PROG)在當前圖像之熵處理期間執行多次轉換迭代。在每次轉換迭代期間,不管當前可用於轉換迭代的計數信息CNT_info之數量,CPU 102(特別是在CPU 102上運行之軟體程式PROG)將計數信息CNT_info轉換為計數表內容。例如,CPU102(特別是CPU102上運行之軟體程式PROG)周期性地執行一次轉換迭代,使得在每次轉換迭代中要轉換之計數信息CNT_info的量可以變化。在步驟514,CPU 102(特別是在CPU 102上運行之軟體程式PROG)檢查硬體狀態以確定當前轉換迭代可用之計數信息CNT_info的量。當PIC_END=0時,在一次轉換迭代(不是最後一次轉換迭代)中要轉換之計數信息之總數N等於 由當前轉換迭代檢查之硬體狀態指示之計數信息CNT_info之數量,其中在步驟514由N設置控制參數CNT。當PIC_END=1時,在最後一次轉換迭代中要轉換之計數信息之總數N等於由當前轉換迭代(其是最後之轉換迭代)檢查之硬體狀態指示之計數信息CNT_info的量,其中在步驟514由N設置控制參數CNT。
關於生成當前圖像之計數表,可以通過用於不同轉換迭代(包括最後之轉換迭代)的不同值來初始化控制參數CNT。控制參數CNT由N初始化,用於指示是否完成了一次轉換迭代的計數信息CNT_info之轉換。在步驟516,檢查控制參數CNT是否等於零。如果控制參數CNT不等於零,則流程繼續步驟518。在步驟518,CPU102(特別是在CPU102上運行之軟體程式PROG)通過尚未轉換之計數信息CNT_info之一之轉換結果來更新外部記憶設備116中的計數表CNT_table。在步驟520,將控制參數CNT減1,以反映外部記憶設備116中可用之計數信息CNT_info中的一個之轉換之完成,並且流程進行到步驟516以檢查是否已經執行N個轉換迭代,以將N個計數信息CNT_info轉換為計數表內容。如果控制參數CNT等於零,則流程繼續步驟522以檢查控制參數PIC_END是否被設置為第二值(例如,PIC_END=1)。當控制參數PIC_END仍然被設置為第一值(例如,PIC_END=0)時,這意味著該圖像尚未被完全熵編碼/解碼。因此,流程繼續步驟506。當控制參數PIC_END被設置為第二值(例如,PIC_END=1)時,這意味著圖像被完全熵編碼/解碼。因此,流程繼續步驟524。在步驟524,CPU 102(特別是在CPU 102上運行之軟體程式PROG)獲得硬體熵引擎115/113當前使用之概率表Prob_table,並且根據通過當前圖像之熵編碼/解碼產生的計數表CNT_table,對概率表Prob_table執行後向適應,使得可以通過對下一圖像之熵編碼/解碼來選擇性地使用更新的概率表Prob_table。
第6圖是基於硬體的計數表維護設計的後向概率表更新操作與使用所提出的混合計數表維護設計的後向概率表更新操作之間的比較之示意圖。為了清楚和簡單起見,假設在視訊解碼器處執行後向概率表更新。第6圖的頂部S1顯示了基於硬體的計數表維護設計的後向概率表更新操作。因此,軟體(SW)執行語法解析(由“SP”表示),然後硬體(HW)執行熵解碼。應當注意,HW還負責根據熵解碼在HW之內部記憶設備中生成和存儲計數表。在完成圖像之熵解碼之後,在HW之內部記憶設備中可以看到圖像之計數表。SW從HW獲 得舊概率表(由“PT”表示)和計數表(由“CT”表示),然後根據獲得的舊的概率表和計數表生成新概率表(由“NPT”表示)。
第6圖的中間部分S2示出了第4圖所示之提出的混合計數表維護設計的後向概率表更新操作。軟體(SW)執行語法解析(syntax parsing)(用“SP”表示),然後硬體(HW)執行熵解碼。應該注意的是,HW還負責在熵解碼期間向HW之外部記憶設備生成計數信息(count information)(由“CI”表示)。
在第6圖的中間部分S2所示之一個示例性設計中,HW不需要在HW之內部記憶設備中生成並存儲計數表。以這種方式,可以有效地降低HW之成本(特別是HW之內部記憶設備的成本)。在圖像之熵解碼完成之後,SW從外部記憶設備獲取計數信息(由“CI”表示),並且根據計數信息在外部記憶設備中生成圖像之計數表(由“CT”表示)到。接下來,SW從HW獲得舊概率表(由“PT”表示),然後根據舊概率表和計數表生成新概率表(由“NPT”表示)。
在替代設計中,HW可以保留用於存儲計數表之一部分的內部記憶設備的一部分(例如,由少量對應於上下文之計數值和用於某些語法類型(例如MVD和/或模式)的相關語法設置組成之一個部分計數表,),而計數表之剩餘部分(例如,由對應於上下文之大量計數值和用於剩餘語法類型(例如係數)的相關語法設置組成之另一個部分計數表,)不需要存儲在內部記憶設備中。由於內部記憶設備僅需要存儲小型部分計數表而不是整個計數表,所以可以降低HW之內部記憶設備的成本。在圖像之熵解碼完成之後,小型部分計數表被存儲在內部記憶設備中。因此,SW從內部記憶設備獲取小型部分計數表,從外部記憶設備獲取計數信息,並根據小型部分計數表以及計數信息在外部記憶設備中生成圖像之計數表,其中通過組合小型部分計數表和基於計數信息生成之大型部分計數表來獲得計數表。接下來,SW從HW獲得舊概率表,然後根據舊概率表和計數表生成新的概率表。
第6圖的底部S3示出了第5圖所示之提出的混合計數表維護設計的後向概率表更新操作。與第4圖所示之混合計數表維護設計相比,第5圖所示之提出的混合計數表維護設計具有較短的處理時間。理想地,利用第5圖所示之所提出的混合計數表維護設計,通過使用後向概率表更新操作來生成計數表所需之處理時間等於通過使用基於硬體的計數表維護設計的後向概率表更新操作來生成計數表所需之處理時間。如第6圖所示,軟體(SW)執行語法解析,然後硬體(HW)執行熵解碼。應該注意的是,HW還負責在熵解碼期間向 HW之外部記憶設備生成計數信息(由“CI”表示)。具體地說,在一個圖像之熵解碼期間,SW執行多次轉換迭代,其中在除了最後之轉換迭代之外的所有轉換迭代中轉換之計數信息之數量可以相同,或者在不同之轉換迭代(包括最後之轉換迭代)中轉換之計數信息之數量可能會有所不同。
在第6圖的底部S3所示之一個示例性設計中,HW不需要在HW之內部記憶設備中生成並存儲計數表。在每個轉換迭代中,計數表(由“CT”表示)由計數信息(由“CI”表示)更新。以這種方式,由於基於HW之熵解碼和基於SW的計數表更新的並行處理,生成一個圖像之計數表所需之處理時間可以減少。如第6圖所示,在圖像之熵解碼完成之後,計數表即將準備就緒。接下來,SW從HW獲得舊概率表(由“PT”表示),然後根據舊概率表和計數表生成新概率表(由“NPT”表示)。
在替代設計中,HW可以保留內部記憶設備的一部分以存儲計數表之一部分(例如,由對應於上下文之少量計數值和對於某些語法類型(例如MVD和/或模式)的相關聯的語法設置組成之一個部分計數表),以及計數表之剩餘部分(例如,由對應於上下文之大量計數值和對於剩餘語法類型(例如係數)的相關聯的語法設置組成之另一個部分計數表)不需要存儲在內部記憶設備中。由於內部記憶設備僅需要存儲小型部分計數表而不是整個計數表,所以可以降低HW之內部記憶設備的成本。每個轉換迭代中的計數信息更新大型部分計數表。以這種方式,由於基於HW之熵解碼和基於SW的部分計數表更新的並行處理,可以減少生成大型部分計數表所需之處理時間。在圖像之熵解碼完成之後,大型部分計數表即將準備就緒。SW從內部記憶設備獲取小型部分計數表,並通過組合小型部分計數表和大型部分計數表,在外部記憶設備中生成圖像之計數表。接下來,SW從HW獲得舊概率表,然後根據舊概率表和計數表生成新的概率表。
如上所述,第2圖所示之計數信息收集單元212收集從熵處理單元202生成之計數信息CNT_info,其中計數信息CNT_info被轉換為用於生成計數表CNT_table的計數表內容。在該實施例中,計數表CNT_table記錄分別對應於不同上下文和不同語法類型的相關聯的不同語法設置的多個計數值,其中每個計數值記錄一個對應上下文之發生次數和一個相應的語法類型的一個對應的相關語法設置。在該實施例中,計數信息CNT_info被設計為包括指示一個上下文之指示值和一個語法類型的一個相關聯的語法設置。在一個示例性計數信 息實現中,包括在計數信息CNT_info中的每個指示值由一個標識符(ID)設置。因此,當生成計數信息CNT_info時,硬體熵引擎115/113的熵處理單元202為不同的語法類型分別分配不同的上下文和不同的相關語法設置。
應當注意,術語“語法設置”可以意味著一個特定語法值,或者可以表示特定語法值範圍內的任何語法值,這取决於實際的設計考慮。為了清楚和簡單起見,在以下計數信息轉換示例中提到的一個“語法設置”可以是一個特定的語法值。然而,這僅僅是為了說明的目的,並不意味著對本發明之限制。
第7圖是根據本發明之實施例的將由標識符組成之計數信息轉換為計數表之操作之示意圖。假設不同語法類型之一是inter_mode。因此,用於inter_mode語法類型的計數表CNT_table具有多個訊框間模式(inter mode)上下文[0,1,2,3,4,5,6],每個訊框間模式上下文與多個訊框間模式值[0,1,2,3]相關聯。在該示例中,硬體熵引擎115/113的熵處理單元202將7×4標識符分配給inter_mode語法類型的7×4上下文和語法設置組合,其中7×4上下文和語法設置組合被inter_mode[Inter_mode_context][Inter_mode_value]索引。例如,將inter_mode[0][0]的上下文和語法設置組合分配給標識符“0”,將inter_mode[0][1]的上下文和語法設置組合分配給標識符“1”,將inter_mode[0][2]的上下文和語法設置組合分配給標識符“2”,將inter_mode[0][3]的上下文和語法設置組合分配為標識符“3”,依此類推。考慮其中inter_mode[2][2]、inter_mode[3][0]、inter_mode[3][3]、inter_mode[5][0]、inter_mode[5][0]、inter_mode[2][3]、inter_mode[3][1]、inter_mode[0][0]、inter_mode[0][0]、inter_mode[0][2]、inter_mode[0][2]、inter_mode[0][3]以及inter_mode[5][0]的上下文和語法設置組合由硬體熵引擎115/113的熵處理單元202進行熵處理(例如,熵編碼/解碼)的情况,從熵處理單元202生成並由計數信息收集單元212收集的計數信息CNT_info包括標識符“10”、“12”、“15”、“20”、“20”、“11”、“13”、“0”、“0”、“2”、“2”、“3”及“20”。在獲得計數信息CNT_info之後,CPU 102(特別是在CPU 102上運行之軟體程式PROG)將計數信息CNT_info轉換為計數表CNT_table的計數表內容。
每個計數表內容是計數值,其記錄一個對應的上下文之出現次數和一個對應的語法類型的相應的一個語法設置。具體地,記錄在計數表CNT_table中的一個計數值根據包含在計數信息CNT_info中的相同標識符之數量來設置。由於計數信息CNT_info包含兩個標識符“0”,因此將inter_mode[0][0] 的計數值設置為2。由於計數信息CNT_info包括兩個標識符“2”,所以inter_mode[0][2]的計數值被設置為2。由於計數信息CNT_info包括一個標識符“3”,所以inter_mode[0][3]的計數值被設置為1。由於計數信息CNT_info包括一個標識符“10”,所以inter_mode[2][2]的計數值被設置為1。由於計數信息CNT_info包括一個標識符“11”,所以計數值inter_mode[2][3]設置為1。由於計數信息CNT_info包含一個標識符“12”,因此將inter_mode[3][0]的計數值設置為1。由於計數信息CNT_info包含一個標識符“13”,所以將inter_mode[3][1]的計數值設置為1。由於計數信息CNT_info包含一個標識符“15”,因此inter_mode[3][3]設置為1。由於計數信息CNT_info包括三個標識符“20”,所以inter_mode[5][0]的計數值被設置為“3”。由於沒有對應的上下文和語法設置進行編碼/解碼,計數表CNT_table的剩餘計數值由0設置。
在第7圖所示之示例中,包含在計數信息CNT_info中的指示值是標識符。然而,這僅僅是為了說明的目的,並不意味著對本發明之限制。在另一示例性計數信息實現中,包括在計數信息CNT_info中的每個指示值由一個坐標設置。第8圖是根據本發明之實施例的將由坐標組成之計數信息轉換為計數表之操作之示意圖。硬體熵引擎115/113的熵處理單元202將7×4坐標(例如,(x,y)=(inter_mode_value,Inter_mode_context))分配給inter_mode語法類型的7×4上下文和語法設置組合,其中7×4上下文和語法設置組合由inter_mode[Inter_mode_context][Inter_mode_value]索引。例如,inter_mode[0][0]的上下文和語法設置組合被分配一個坐標(0,0),inter_mode[0][1]的上下文和語法設置組合被分配一個坐標(1,0),inter_mode[0][2]的上下文和語法設置組合被分配一個坐標(2,0),inter_mode[0][3]的上下文和語法設置組合被分配一個坐標(3,0),等等。考慮其中inter_mode[2][2]、inter_mode[3][0]、inter_mode[3][3]、inter_mode[5][0]、inter_mode[5][0]、inter_mode[2][3]、inter_mode[3][1]、inter_mode[0][0]、inter_mode[0][0]、inter_mode[0][2]、inter_mode[0][2]、inter_mode[0][3]及inter_mode[5][0]的上下文和語法設置組合由硬體熵引擎115/113的熵處理單元202進行熵處理(例如,熵編碼/解碼)的情况,從熵處理單元202生成之計數信息CNT_info由計數信息收集單元212收集,包括坐標(2,2)、(0,3)、(3,3)、(0,5)、(0,5)、(3,2)、(1,3)、(0,0)、(0,0)、(2,0)、(2,0)、(3,0)和(0,5)。在獲得計數信息CNT_info之後,CPU 102(特別是在CPU 102上運行之軟體程式PROG)將計數信息CNT_info轉換為計數表CNT_table的計數表 內容。
每個計數表內容是記錄一個對應上下文之出現次數和一個對應的語法類型的一個對應的相關語法設置的計數值。具體地,記錄在計數表CNT_table中的一個計數值根據包含在計數信息CNT_info中的相同坐標數來設定。由於計數信息CNT_info包含兩個坐標(0,0),所以將inter_mode[0][0]的計數值設置為2。由於計數信息CNT_info包含兩個坐標(2,0),因此inter_mode[0][2]的計數值設置為2。由於計數信息CNT_info包括一個坐標(3,0),所以inter_mode[0][3]的計數值被設置為1。由於計數信息CNT_info包括一個坐標(2,2),所以inter_mode[2][2]的計數值設置為1。由於計數信息CNT_info包括一個坐標(3,2),所以將inter_mode[2][3]的計數值設置為1。由於計數信息CNT_info包括一個坐標(0,3),將inter_mode[3][0]的計數值設置為1。由於計數信息CNT_info包括一個坐標(1,3),所以將inter_mode[3][1]的計數值設置為1。由於計數信息CNT_info包含一個坐標(3,3),因此將inter_mode[3][3]的計數值設置為1。由於計數信息CNT_info包含三個標識符(0,5),所以將inter_mode[5][0]的計數值設置為“3”。由於沒有對應的上下文進行編碼/解碼,計數表CNT_table的剩餘計數值設置為0。
如第2圖所示,概率表Prob_table存儲在分配在內部記憶設備114/112中的概率表緩衝器218中,計數表CNT_table存儲在外部記憶設備116中。當執行基於軟體的後向概率表更新時,需要將概率表Prob_table加載到外部記憶設備116中進行處理。第9圖是根據本發明之實施例的第一後向適應設計之示意圖。CPU 102可以將內部記憶設備114/112的概率表緩衝器218中的概率表Prob_table直接讀取到外部記憶設備116,其中當前使用之概率表Prob_table可以作為要更新的舊概率表Prob_table_old。後向更新器902是軟體程式PROG的模塊。當由CPU 102執行後向更新器902時,根據外部記憶設備116中的計數表CNT_table和語法邊信息(例如語法類型),對外部記憶設備116中的舊概率表Prob_table_old執行後向適應,使得在外部記憶設備116中生成新的概率表Prob_table_new,並且可以由硬體熵引擎115/113選擇性地使用用於下一圖像之熵處理(例如,熵編碼/解碼)的新概率表Prob_table_new。
第10圖是根據本發明之實施例的第二後向適應設計之示意圖。視訊處理裝置(例如,視訊編碼器106/視訊解碼器104)還可以包括直接記憶體訪問(DMA)電路1002。DMA電路1002被布置為從內部記憶設備114/112 的概率表緩衝器218發送概率表Prob_table到外部記憶設備116,而不需要CPU 102的干預。當前使用之概率表Prob_table可以作為要更新的舊概率表Prob_table_old。後向更新器902是軟體程式PROG的模塊。當由CPU 102執行後向更新器902時,根據外部記憶設備116中的計數表CNT_table和語法邊信息(例如語法類型),對外部記憶設備116中的舊概率表Prob_table_old執行後向適應,使得在外部記憶設備116中生成新的概率表Prob_table_new,並且可以由硬體熵引擎115/113選擇性地使用新概率表Prob_table_new用於下一圖像之熵處理(例如,熵編碼/解碼)。
在本發明之一些實施例中,概率表Prob_table被完全加載到內部記憶設備114/112中用於熵編碼/解碼。將整個概率表Prob_table加載到內部記憶設備114/112可能需要較大的緩衝區大小。然而,可能的是,一個圖像之熵編碼/解碼不需要概率表Prob_table中的所有表內容。本發明還提出僅將概率表Prob_table的所需部分加載到內部記憶設備114/112中用於熵編碼/解碼。以這種方式,當一個圖像被熵編碼/解碼時,可以減少分配在內部記憶設備114/112中的概率表緩衝區的大小,從而允許內部記憶設備114/112具有可用於視訊編碼器106/視訊解碼器104的其他功能的更多空閑存儲空間。
第11圖是根據本發明之實施例的概率表加載方法的流程圖。在步驟1102,檢查當前圖像是否為key_frame或intra_only。當當前訊框不是key_frame或intra_only時,流程繼續步驟1106。在步驟1106,加載完整概率表。當當前訊框是key_frame或intra_only時,流程繼續步驟1104。在步驟1104,加載部分概率表(例如,僅包含訊框內語法的概率表)。第12圖是根據本發明之實施例的完整概率表和部分概率表之示意圖。子圖(A)示出了包括訊框內語法和訊框間語法的概率內容的完整概率表Prob_table,例如“partition_mode”、“tx_related”、“intra_mode”、“inter_mode相關”、“filter_mode”、“ref_frame_mode”和“運動向量相關”。子圖(B)示出了僅包含諸如“partition_mode”、“tx_mode”和“intra_mode”的訊框內語法的概率內容的部分概率表Prob_table_intra。當當前圖像是訊框內圖像時,加載部分概率表Prob_table_intra用於訊框內圖像(intra picture)的熵編碼/解碼。由於不需要為訊框內圖像之熵編碼/解碼而加載完整概率表Prob_table,所以可以減少對訊框內圖像熵編碼/解碼的概率表存儲要求。
如第12圖所示,部分概率表Prob_table_intra是完整概率表Prob_table的一部分。然而,這僅僅是為了說明的目的,並不意味著對本發明之 限制。例如,僅包含訊框內語法的概率表可以具有不包括在僅包含訊框間語法的概率表中的表內容。對於另一示例,僅包含訊框間語法的概率表可以具有不包括在僅包含訊框內語法的概率表中的表內容。對於另一個示例,僅包含訊框內語法的概率表和僅包含訊框間語法的概率表可以是部分相同的並且部分地不同。第13圖是根據本發明之實施例的另一概率表加載方法的流程圖。在步驟1302,檢查當前圖像是否是訊框內圖像。當當前訊框是訊框內圖像時,流程進行到步驟1304。在步驟1304,加載僅包含訊框內語法的概率表,用於訊框內圖像之熵編碼/解碼。當當前訊框是訊框間圖像時,流程進行到步驟1306。在步驟1306,加載僅包含訊框間語法的概率表,用於訊框間圖像之熵編碼/解碼。
簡而言之,可以檢查訊框類型和/或訊框級語法以决定熵編碼/解碼當前圖像實際需要的概率表內容。因此,基於訊框類型和/或訊框級語法,加載僅包含對當前圖像進行熵編碼/解碼所需之概率表內容的概率表。由於沒有加載包含熵編碼/解碼當前圖像所需之概率表內容的完整概率表和對當前圖像進行熵編碼/解碼所不需要的概率表內容,所以對當前圖像之熵編碼/解碼的概率表存儲要求可以減少。
本領域具有通常知識者將容易地觀察到,可以在保留本發明的教導的同時進行裝置和方法的許多修改和改變。因此,上述公開內容應被解釋為僅受所附權利要求的範圍和限制。

Claims (22)

  1. 一種視訊處理裝置,其特徵在於,包括:外部記憶設備;在該外部記憶設備外部的硬體熵引擎,其中該硬體熵引擎被布置為執行當前圖像之熵處理,並且還被布置成在該當前圖像之該熵處理期間將計數信息輸出到該外部記憶設備;以及在該外部記憶設備外部的軟體執行引擎,其中當該軟體執行引擎裝載和執行時,軟體程式指令該軟體執行引擎將該計數信息轉換為多個計數表內容,並且至少根據該多個計數表內容在該外部記憶設備中生成計數表,其中,引用該計數表來對由該硬體熵引擎選擇性地使用之概率表應用後向適應來執行下一圖像之熵處理。
  2. 如申請專利範圍第1項所述之視訊處理裝置,其中該軟體執行引擎不開始將該計數信息轉換為該計數表內容,直到該當前圖像被該熵處理完全處理為止;該計數信息是該當前圖像之全部計數信息。
  3. 如申請專利範圍第1項所述之視訊處理裝置,其中該軟體執行引擎在通過該熵處理完全處理該當前圖像之前開始將該計數信息轉換為該計數表內容;該計數信息是該當前圖像之部分計數信息。
  4. 如申請專利範圍第3項所述之視訊處理裝置,其中該軟體程式進一步指示該軟體執行引擎從該硬體熵引擎獲得硬體狀態,其中該硬體狀態指示該計數信息之數量;並且該軟體執行引擎根據該硬體狀態將該計數信息轉換為該計數表內容。
  5. 如申請專利範圍第4項所述之視訊處理裝置,其中該軟體執行引擎在當前圖像之熵處理期間執行多個轉換迭代;軟體執行引擎檢查硬體狀態以確定計數信息之數量是否達到預定值;並且當計數信息之數量達到預定值時,軟體執行引擎執行轉換迭代之一以將計數信息轉換為計數表內容。
  6. 如申請專利範圍第4項所述之視訊處理裝置,其中該軟體執行引擎在該當前圖像之該熵處理期間執行多個轉換迭代;並且在每次轉換迭代期間,該軟體執行引擎將該計數信息轉換為該計數表內容,而不管可用於該轉換迭代的該計數信息之數量。
  7. 如申請專利範圍第1項所述之視訊處理裝置,其中該計數表之每個計數值對應於一個語法類型採用一個上下文時解出來的語法設置,其中每個計數值記錄一個對應上下文之發生次數和一種對應的語法類型的一個相應的相關語法設置;並且該計數信息包括每個指示值指示一個上下文和一個語法類型的一個相關聯的語法設置的多個指示值。
  8. 如申請專利範圍第7項所述之視訊處理裝置,其中該硬體熵引擎分別為不同的上下文和不同語法類型的相關聯的不同語法設置分配不同標識符;並且每個該指示值是一個標識符。
  9. 如申請專利範圍第1項所述之視訊處理裝置,其中該硬體熵引擎具有布置成存儲該概率表的內部記憶設備;並且該軟體執行引擎直接從該內部記憶設備讀取該概率表到該外部記憶設備,並根據該計數表對該外部記憶設備 中的該概率表上執行該後向適應。
  10. 如申請專利範圍第1項所述之視訊處理裝置,其中該硬體熵引擎具有布置成存儲該概率表的內部記憶設備;該視訊處理裝置還包括:直接記憶體訪問電路,被布置為將該概率表從該內部記憶設備傳輸到該外部記憶設備;以及該軟體執行引擎根據該計數表對該外部記憶設備中的該概率表執行該後向適應。
  11. 如申請專利範圍第1項所述之視訊處理裝置,其中該硬體熵引擎還被布置為在該硬體熵引擎可訪問的內部記憶設備中生成並存儲第一部分計數表;並且該軟體程式進一步指示該軟體執行引擎通過組合該第一部分計數表和第二部分計數表來生成該計數表,其中基於從該計數信息轉換之該多個計數表內容生成該第二部分計數表。
  12. 一種視訊處理方法,其特徵在於,包括:通過硬體熵引擎執行當前圖像之熵處理,並且在該當前圖像之熵處理期間將計數信息輸出到硬體熵引擎的外部記憶設備;以及執行軟體程式以將該計數信息轉換為多個計數表內容,並且至少根據該多個計數表內容在該外部記憶設備中產生計數表,其中引用該計數表來對由該硬體熵引擎選擇性地使用之概率表應用後向適應來執行下一圖像之熵處理。
  13. 如申請專利範圍第12項所述之視訊處理方法,其中該軟體程式的執行不開始將該計數信息轉換為該多個計數表內容,直到該當前圖像被該熵處 理完全處理為止;該計數信息是該當前圖像之全部計數信息。
  14. 如申請專利範圍第12項所述之視訊處理方法,其中在通過該熵處理完全處理該當前圖像之前,該軟體程式的執行開始將該計數信息轉換為該多個計數表內容;該計數信息是該當前圖像之部分計數信息。
  15. 如申請專利範圍第14項所述之視訊處理方法,其中該軟體程式的執行還從該硬體熵引擎獲取硬體狀態,其中該硬體狀態指示該計數信息之數量;並且該軟體程式的執行根據該硬體狀態將該計數信息轉換為該多個計數表內容。
  16. 如申請專利範圍第15項所述之視訊處理方法,其中該軟體程式的執行在該當前圖像之該熵處理期間執行多次轉換迭代,檢查該硬體狀態以確定該計數信息之數量是否達到預定值,並且當該計數信息之該量達到該預定值時,執行該多個轉換迭代之一以將該計數信息轉換為該多個計數表內容。
  17. 如申請專利範圍第15項所述之視訊處理方法,其中該軟體程式的執行在該當前圖像之該熵處理期間執行多個轉換迭代;並且在每個轉換迭代期間,該軟體程式的執行將該計數信息轉換為該多個計數表內容,而不管可用於該轉換迭代的該計數信息之數量。
  18. 如申請專利範圍第12項所述之視訊處理方法,其中該計數表記錄分別對應於不同上下文和不同語法類型的相關聯的不同語法設置的多個計數值,其中每個計數值記錄一個對應上下文之發生次數以及一種對 應的語法類型的一個相應的相關語法設置;並且該計數信息包括每個指示值指示一個上下文和一個語法類型的一個相關聯的語法設置的多個指示值。
  19. 如申請專利範圍第18項所述之視訊處理方法,其中該硬體熵引擎分別為不同的上下文和不同語法類型的相關聯的不同語法設置分配不同標識符;並且每個指示值是一個標識符。
  20. 如申請專利範圍第12項所述之視訊處理方法,其中該硬體熵引擎具有布置成存儲該概率表的內部記憶設備;並且該視訊處理方法還包括:執行該軟體程式以直接從該內部記憶設備讀取該概率表到該外部記憶設備,並且根據該計數表對該外部記憶設備中的該概率表執行該後向適應。
  21. 如申請專利範圍第12項所述之視訊處理方法,其中該硬體熵引擎具有布置成存儲該概率表的內部記憶設備;該視訊處理方法還包括:通過直接記憶體訪問傳送方式將該概率表從該內部記憶設備發送到該外部記憶設備;以及執行該軟體程式以根據該計數表對該外部記憶設備中的該概率表執行該後向適應。
  22. 如申請專利範圍第12項所述之視訊處理方法,其中還包括:通過該硬體熵引擎生成和存儲該硬體熵引擎可訪問的內部記憶設備中的第一部分計數表;其中該軟體程式通過組合該第一部分計數表和第二部分計數表來生成該計數表,並且基於從該計數信息轉換之該多個計數表內容生成該第二部分計數表。
TW106106266A 2016-02-24 2017-02-24 用於在硬體熵引擎的外部記憶設備中產生計數表的視訊處理設備和相關的視訊處理方法 TWI620434B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662299067P 2016-02-24 2016-02-24
US62/299,067 2016-02-24
US15/439,964 US10375395B2 (en) 2016-02-24 2017-02-23 Video processing apparatus for generating count table in external storage device of hardware entropy engine and associated video processing method
US15/439,964 2017-02-23

Publications (2)

Publication Number Publication Date
TW201740732A TW201740732A (zh) 2017-11-16
TWI620434B true TWI620434B (zh) 2018-04-01

Family

ID=59630430

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106106266A TWI620434B (zh) 2016-02-24 2017-02-24 用於在硬體熵引擎的外部記憶設備中產生計數表的視訊處理設備和相關的視訊處理方法

Country Status (3)

Country Link
US (1) US10375395B2 (zh)
CN (1) CN108513138B (zh)
TW (1) TWI620434B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10848386B2 (en) * 2015-12-08 2020-11-24 Siemens Aktiengesellschaft Method and apparatus for automatic identification of an outage of a network node
US10922026B2 (en) * 2018-11-01 2021-02-16 Fungible, Inc. Data processing unit having hardware-based range encoding and decoding
CN113055017A (zh) * 2019-12-28 2021-06-29 华为技术有限公司 数据压缩方法及计算设备
CN111757119B (zh) * 2020-05-21 2022-05-13 瑞芯微电子股份有限公司 一种软硬件协同工作实现vp9 prob更新的方法和存储设备
DE102021106883A1 (de) * 2021-03-19 2022-09-22 Infineon Technologies Ag Komprimierung in der gitterbasierten Kryptografie
US11638020B2 (en) * 2021-03-30 2023-04-25 Qualcomm Incorporated Video processing using multiple bitstream engines
CN114025162B (zh) * 2021-11-12 2024-04-09 安谋科技(中国)有限公司 熵解码方法、介质、程序产品和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI348653B (en) * 2006-06-08 2011-09-11 Via Tech Inc Decoding of context adaptive binary arithmetic codes in computational core of programmable graphics processing unit
CN103096075A (zh) * 2011-11-07 2013-05-08 索尼公司 视频数据编码和解码
TWI401958B (zh) * 2006-12-10 2013-07-11 Apusone Technology Inc 視訊壓縮與解壓縮用的可程式視訊訊號處理器
US20140205012A1 (en) * 2013-01-21 2014-07-24 Mediatek Inc. Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728377B1 (en) * 1998-07-09 2004-04-27 Ricoh Company, Ltd. Coding apparatus and an information processing apparatus provided with the coding apparatus
CN101383968B (zh) * 2008-09-27 2012-08-08 北京创毅视讯科技有限公司 视频解码器、视频解码方法和移动多媒体终端芯片
CN101710986B (zh) * 2009-11-18 2012-05-23 中兴通讯股份有限公司 基于同构多核处理器的h.264并行解码方法和系统
US9641854B2 (en) * 2014-05-19 2017-05-02 Mediatek Inc. Count table maintenance apparatus for maintaining count table during processing of frame and related count table maintenance method
US20170019679A1 (en) * 2015-07-15 2017-01-19 Mediatek Inc. Hybrid video decoding apparatus for performing hardware entropy decoding and subsequent software decoding and associated hybrid video decoding method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI348653B (en) * 2006-06-08 2011-09-11 Via Tech Inc Decoding of context adaptive binary arithmetic codes in computational core of programmable graphics processing unit
TWI401958B (zh) * 2006-12-10 2013-07-11 Apusone Technology Inc 視訊壓縮與解壓縮用的可程式視訊訊號處理器
CN103096075A (zh) * 2011-11-07 2013-05-08 索尼公司 视频数据编码和解码
US20140205012A1 (en) * 2013-01-21 2014-07-24 Mediatek Inc. Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding

Also Published As

Publication number Publication date
CN108513138B (zh) 2020-11-20
TW201740732A (zh) 2017-11-16
CN108513138A (zh) 2018-09-07
US20170244967A1 (en) 2017-08-24
US10375395B2 (en) 2019-08-06

Similar Documents

Publication Publication Date Title
TWI620434B (zh) 用於在硬體熵引擎的外部記憶設備中產生計數表的視訊處理設備和相關的視訊處理方法
US7460041B2 (en) Arithmetic decoding system and apparatus based on an adaptive content
US20220295047A1 (en) Image prediction method and device
US20080240234A1 (en) High speed context memory implementation for h.264
US8634474B2 (en) CABAC macroblock rewind and end of slice creation to control slice size for video encoders
US10225569B2 (en) Data storage control apparatus and data storage control method
US9813739B2 (en) Backward adaptation apparatus for applying backward adaptation to probability table at end of processing of frame and related backward adaptation method
BR112014011150B1 (pt) Método de determinação de palavras de código binárias para coeficientes de transformada
US9380314B2 (en) Pixel retrieval for frame reconstruction
US9918098B2 (en) Memory management of motion vectors in high efficiency video coding motion vector prediction
US20160241854A1 (en) Method and Apparatus for Arithmetic Decoding
CN103947211A (zh) 具有已分区比特流的视频编码装置及方法
CN106162192A (zh) 处理视频数据的方法和装置
US20210195196A1 (en) Video decoding method and video decoding device
CN106358042A (zh) 使用视频图像的帧间预测的并行解码器
JP7534032B2 (ja) 適応的ローカル参照範囲によるイントラブロックコピー
JP2007259323A (ja) 画像復号化装置
TWI382766B (zh) 一種用於超高解析度之顯示框壓縮系統及方法
CN115334313A (zh) 一种视频解码方法、装置、设备及存储介质
CN110087085A (zh) 图像处理装置
PT2938077T (pt) Método de codificação preditiva de vídeo animado, dispositivo de codificação preditiva de vídeo animado, programa de codificação preditiva de vídeo animado, método de descodificação preditiva de vídeo animado, dispositivo de descodificação preditiva de vídeo animado e programa de descodificação preditiva de vídeo animado
US20160234529A1 (en) Method and apparatus for entropy encoding and decoding
JP2011109364A (ja) 画像処理装置
US10205957B2 (en) Multi-standard video decoder with novel bin decoding
CN117440157B (zh) 视频编码方法、装置、设备及存储介质

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees