能夠至少依據一個語法元素解碼結果來控制掃描程序的重復次數的解碼裝置與相關的解 ...的制作方法
【專利摘要】一種解碼裝置包含算術解碼器與控制器。控制器中的計數邏輯依據第一語法元素解碼結果產生第一統計結果。控制器中的控制邏輯指示算術解碼器來執行第一掃描程序至少一次,以產生至少一部分轉換系數的第一語法元素解碼結果,至少部分依據第一統計結果控制第二掃描程序的重復次數,并且指示算術解碼器來執行第二掃描程序至少一次,來產生至少一部分轉換系數的第二語法元素解碼結果,其中當算術解碼器執行一次該第一掃描程序時,該第一掃描程序解碼該多個轉換系數中的一個轉換系數的第一編碼的語法元素,其中當算術解碼器執行一次該第二掃描程序時,該第二掃描程序解碼該多個轉換系數中的一個轉換系數的第二編碼的語法元素。
【專利說明】能夠至少依據一個語法元素解碼結果來控制掃描程序的重復 次數的解碼裝置與相關的解碼方法
[0001 ] 優先權聲明
[0002] 本申請主張在2014年1月24日提出申請的美國臨時專利申請第61 /931,094號的權 利,且上述美國專利申請W引用方式并入本文中。
技術領域
[0003] 本發明與轉換系數解碼有關,更具體來說,與一種能夠依據至少一語法元素解碼 結果來控制掃描程序的重復次數的解碼裝置W及相關的方法有關。
【背景技術】
[0004] 高效視頻編碼化EVC)是一種后繼于H.264/AVC(Advanced Video Coding)標準的 視頻編碼標準。其主要的特點是提供較佳的壓縮效率而不具有可偵測到的視覺質量的損 失。相似地,皿VC使用空間與時間預測、預測冗余的轉換W及轉換與預測信息的賭編碼。依 據肥VC,基本處理單元是編碼樹單元(coding tree unit,CTU),運是H.264/AVC內容的中的 宏區塊(MB)的歸納。每一個CTU具有一個相關的四叉樹結構(qua化ree Struc化re),其具體 說明了 CTU是怎么分割的。運樣的分割產生編碼單元(CU)。一個編碼單元使用帖內預測或者 帖間預測,并且再分為預測單元(PU)。此外,一個嵌套的四叉樹,作為冗余四叉樹(residual qua化ree,RQT),將一個編碼單元分割為轉換單元(transform unit,TU)。關于賭編碼,肥VC 使用上下文自適應二進制算數編碼(employs context-adaptive binary arithmetic coding,CABAC)。每一轉換單元的4x 4轉換系數區塊中的轉換系數依據一個選擇的掃描模 式使用CABAC編碼,掃描模式舉例來說為對角掃描模式(diagonal scan pattern)、水平掃 描模式化〇rizon1:al scan pattern)或者垂直掃描模式(vertical scan pattern)。通常, 使用一個掃描來轉換一個二維(2D)轉換系數區塊為一個一維(ID)轉換系數陣列,并且也定 義了編碼轉換系數的處理順序。
[0005] 在編碼端,一個或者多個語法元素用來編碼在4x 4轉換系數區塊中的每一轉換系 數。解碼程序是編碼程序的逆程序。因此,在解碼端,針對在4x 4轉換系數區塊中的每一轉 換系數,一個或者多個語法元素被解碼。一個傳統的賭解碼器使用不同掃描程序(SP)來分 別決定不同的語法元素。具體來說,傳統的賭解碼器是用來針對一個4x 4轉換系數區塊中 中每一系數位置執行掃描程序。由于一個4x 4轉換系數區塊具有16個轉換系數,對應16個 不同的系數位置,一個掃描程序重復16次。即,一個掃描程序的重復次數是16。然而,很可能 賭編碼器并沒有編碼一個特定轉換系數的一個特定語法元素,針對對應該特定轉換系數的 系數位置執行一個特定的掃描程序是不必要的,運將影響解碼效率。因此,需要一種創新的 賭解碼器設計,能夠減少至少一個掃描程序的重復次數,從而增進解碼效率。
【發明內容】
[0006] 本發明的目的之一聽一種解碼裝置W及相關的方法,能夠依據至少一個語法元素 解碼結果來控制掃描程序的重復次數。
[0007] 本發明的一實施例提供了一種用于解碼一個轉換系數區塊的比特流的解碼裝置。 該轉換系數區塊包含多個轉換系數。該解碼裝置包含算術解碼器與控制器。算術解碼器用 來執行算術解碼。控制器包含計數邏輯與控制邏輯。計數邏輯用來依據第一語法元素解碼 結果產生第一統計結果。控制邏輯用來指示該算術解碼器來執行第一掃描程序至少一次, W產生至少一部分轉換系數的第一語法元素解碼結果,至少部分依據該第一統計結果控制 第二掃描程序的重復次數,并且指示該算術解碼器來執行該第二掃描程序至少一次,來產 生至少一部分轉換系數的第二語法元素解碼結果,其中當該算術解碼器執行一次該第一掃 描程序時,該第一掃描程序解碼該多個轉換系數中的一個轉換系數的第一編碼的語法元 素,其中當該算術解碼器執行一次該第二掃描程序時,該第二掃描程序解碼該多個轉換系 數中的一個轉換系數的第二編碼的語法元素。
[0008] 依據本發明的另一實施例提供了一種控制解碼轉換系數區塊的比特流的解碼方 法。該轉換系數區塊包含多個轉換系數。該解碼方法包含:指示算術解碼器來執行第一掃描 程序至少一次,W產生至少一部分轉換系數的第一語法元素解碼結果,其中當該算術解碼 器執行一次該第一掃描程序時,該第一掃描程序解碼該多個轉換系數中的一個轉換系數的 第一編碼的語法元素;依據該第一語法元素解碼結果產生第一統計結果;W及至少部分依 據該第一統計結果控制第二掃描程序的重復次數,并且指示該算術解碼器來執行該第二掃 描程序至少一次,來產生至少一部分轉換系數的第二語法元素解碼結果,其中當該算術解 碼器執行一次該第二掃描程序時,該第二掃描程序解碼該多個轉換系數中的一個轉換系數 的第二編碼的語法元素,W產生第二語法元素。
[0009] 在本領域的技術人員閱讀了如下的本發明的細節說明與附圖之后,可了解本發明 的其他目的。
【附圖說明】
[0010] 圖1是依據本發明的一實施例的解碼裝置的舉例說明。
[0011] 圖2是依據本發明的一實施例的一帖中包含的轉換系數區塊W及適用于編碼該轉 換系數區塊中的多個轉換系數的掃描模式的示意圖。
[0012] 圖3是依據本發明的一實施例的解碼一個4x 4轉換系數區塊的解碼流程的流程 圖。
[0013] 圖4是依據本發明的一實施例用于存儲非零轉換系數的位置信息與中間值信息的 第一數據結構的舉例說明。
[0014] 圖5是依據本發明的另一實施例的用于存儲非零轉換系數的位置信息與中間值信 息的第二數據結構的舉例說明。
[0015] 圖6是在針對對應的非零轉換系數的每一位置已執行掃描程序之后,存儲非零轉 換系數的中間值的存儲階段的示意圖。
[0016] 圖7是在針對對應的每一具有大于1的絕對值的非零轉換系數的每一位置已執行 掃描程序之后,存儲非零轉換系數的中間值的存儲階段的示意圖。
[0017] 圖8是在針對對應的每一具有大于1的絕對值的非零轉換系數的每一位置已執行 掃描程序之后,存儲非零轉換系數的中間值的另一存儲階段的示意圖。
[0018] 圖9是依據本發明的實施例的控制解碼一個轉換系數區塊的比特流的方法的流程 圖。
【具體實施方式】
[0019] 整個說明書和權利要求書采用確定的術語來指代特定的部件。正如本領域的技術 人員將理解的是,制造商可W使用不同的名稱來指代某一部件。本文件無意于區分那些名 稱不同但功能相同的部件。在下面的說明書和權利要求書中,用開放式方式使用術語"包 含"和"包括",因此應當被解釋為"包含,但是不限于……"。同樣地,術語"禪合"既可W表示 間接電氣連接也可W表示直接電氣連接。因此,如果一個設備與另一個設備禪合,其連接可 W是通過直接電氣連接或者是通過其他設備和連接件的間接電氣連接。
[0020] 圖1是依據本發明的一實施例的一種解碼裝置的示意圖。舉例來說,解碼裝置100 是肥VC解碼器的一部分。在運個實施例中,解碼裝置100包含控制器102、算術解碼器 (arithmetic decoder) 104W及一個存儲裝置106,并且能夠解碼一個視頻帖的一個轉換系 數區塊的一個比特流BSbk。算術解碼器104用來針對轉換系數區塊的比特流BSbk執行算術解 碼,例如CABAC解碼程序,其中比特流BSbk包含轉換系數區塊中的多個轉換系數的已編碼的 二進制序列(bins)。在運個實施例中,算術解碼器104包含算術解碼單元112、計算器114W 及一個更新單元116。算術解碼單元112具有一個常規模式(regular-mode)解碼引擎(未顯 示)W及一個旁通模式(bypass-mode)解碼引擎(未顯示)。算術解碼單元112可同時解碼至 少一個語法元素的一個二進制值。
[0021] 當一個二進制值(即一個比特)是通過旁通模式來編碼的,使能旁通模式解碼引擎 來解碼該二進制值。需注意的是,在旁通模式解碼程序中沒有設及文本選擇與文本更新。因 此,計算器114W及更新單元116可能在旁通模式解碼程序中不工作。然而,當一個二進制值 (即一個比特)是通過常規模式來編碼的,使能常規模式解碼引擎來解碼該二進制值。如本 領域技術人員所知,在常規模式中的CABAC解碼可包含文本選擇程序、算術解碼程序W及文 本更新程序。因此,計算器114與更新單元116在常規模式解碼程序中被激活。計算器114與 更新單元116的更多細節將在W下部分中詳細說明。
[0022] 存儲裝置106的第二存儲單元118可W使用一個靜態隨機存取記憶體(SRAM)來實 現。第二存儲單元118用來存儲上下文變量(context variables)(即上下文模式數據),其 中每一上下文變量對應一個語法元素的二進制值的可能值W及每一可能值的可能性。計算 器114用來通過決定上下文索引CtxIdx來處理上下文選擇程序,從而由上下文索引CtxIdx 所指示的上下文變量從第二存儲單元118中讀出,并且提供給算術編碼單元112。上下文索 引CtxIdx可通過上下文索引偏移CtxOff set W及上下文索引增量CtxInc的和來表示。上下 文索引偏移CtxOffset是依據語法元素的類型來唯一定義的。換言之,當待解碼的一個二進 制值是第一語法元素的一部分時,上下文索引偏移CtxOff set通過第一預定值來設定,并且 當待解碼的二進制值是第二語法元素的一部分時,上下文索引偏移CtxOffset是通過第二 預定值來設定。
[0023] 計算器114在上下文選擇程序中評估上下文索引增量ctxinc。在一個實施例中,計 算器114具有多個專屬邏輯,每一專屬邏輯是用來計算一個對應的語法元素的上下文索引 增量ctxinc。在另一個實施例中,計算器114具有多個通用的基本邏輯,并且每一語法元素 的上下文索引增量CtxInc可W通過所有的通用基本邏輯中的一部分的組合來計算。然而, 運僅僅是舉例說明使用,而并非是本發明的限制。
[0024] 算術解碼單元112的常規模式解碼引擎通過依據待解碼的二進制值的選擇的上下 文變量產生的二進制值來處理算術解碼程序。更新單元116用來處理上下文更新程序。具體 來說,在一個二進制的解碼程序完成之后,更新單元116依據二進制值的解碼結果(即算術 解碼單元112的常規模式解碼引擎產生的二進制值)更新在第二存儲單元118中的對應的上 下文變量。
[0025] 在比特流BSbk的一部分例如一個編碼語法元素的所有二進制位被算術解碼單元 112的常規模式解碼引擎或者旁通模式解碼引擎成功解碼之后,一個代表語法元素SE的二 進制字符串據此產生。
[00%]在運個實施例中,控制器102禪接至算術解碼器104,并且用來指示算術解碼器104 來執行多個不同的掃描程序,每一掃描程序用來解碼轉換系數區塊的比特流BSbk中獲得的 部分比特流,來產生轉換系數區塊的一個轉換系數的語法元素SE。在編碼端,轉換系數區塊 的轉換系數使用算術編碼(例如CABAC編碼程序)來編碼,從而比特流BSbk從編碼轉換系數區 塊的轉換系數產生。
[0027]圖2是依據本發明的實施例的一個視頻帖的一個轉換系數區塊W及適用于編碼該 轉換系數區塊中包含的轉換系數的示意圖。轉換系數區塊BK的尺寸是4x 4。因此,如圖2的 子圖(A)所示,轉換系數區塊BK包含16個轉換系數Co-Cis,分別對應16個位置(0,0)-(3,3)。 當使用如圖2的子圖(B)所示的對角掃描模式時,轉換系數區塊BK中的轉換系數Co-Cis是通 過對角掃描模式所定義的處理順序來掃描的。因此,轉換系數Cis是第一個掃描的轉換系數, 并且轉換系數Cg是最后一個掃描的轉換系數。最多五個掃描程序可應用至轉換系數Co-Cis, 并且所有的掃描程序遵循相同的掃描模式。每一掃描程序是用來編碼轉換系數Co-Cis中的 一個轉換系數的語法元素。在每一掃描程序中,僅僅當需要時才編碼語法元素。由于解碼操 作是編碼操作的逆操作。因此,由控制器102控制的算術解碼器104執行最多五次掃描程序 來解碼轉換系數區塊服中包含的轉換系數Co-Cis的所有編碼的語法元素。舉例來說,一個特 定的掃描程序一旦當被算術解碼器104執行時,可解碼從轉換系數區塊的輸入比特流BSbk中 獲得的部分比特流,來輸出一個轉換系數的一個特定語法元素。
[00%]除了指示算術解碼器104來執行不同的掃描程序,控制器102更進一步依據一個從 不同的掃描程序產生的語法元素解碼結果來控制掃描程序的重復次數(即一個掃描程序的 執行次數),或者依據一個從不同的掃描程序產生的多個語法元素解碼結果來控制掃描程 序的重復次數。在運個實施例中,控制器102包含控制邏輯122W及計數邏輯124。計數邏輯 124是用來依據算術解碼器104所執行的一個或者多個掃描程序所產生的解碼結果來產生 一個或者多個統計結果(例如計數值NCi與NC2)。舉例來說,計數邏輯124可依據語法元素解 碼結果(例如化6_1)產生第一統計結果(例如計數值NCi),并且進一步依據至少兩個語法元 素解碼結果(例如Dse_2與化e_3)產生第二統計結果(例如計數值NC2)。控制邏輯122參考至少 一個統計結果(例如計數值NCi與NC2中的一個)來控制一個特定掃描程序的重復次數。W運 樣的方式,算術解碼器104執行特定掃描程序的次數可被控制小于轉換系數區塊BK中的轉 換系數Co-Cis的數量,因此獲得較好的解碼效率。更進一步的細節將如下詳述。
[0029]圖3是依據本發明的實施例的解碼一個4x 4轉換系數區塊的示意圖。開始,控制器 102的控制邏輯122指示算術解碼器104來執行掃描程序SPi至少一次(例如16次),其中算術 解碼器104所執行的掃描程序SPi解碼一部分比特流,其中該部分比特流包含轉換系數Co- Cis中的一個轉換系數的一個已編碼語法元素,來產生一個語法元素Si即ificant_coeff_ flag。在運個實施例中,控制邏輯122控制掃描程序SPi的重復次數化是16,從而算術解碼器 104產生轉換系數Co-Ci日中的每一個轉換系數的語法元素Si即if icant_coeff_f lag。換言 之,針對轉換系數區塊BK中的位置(0,0)-(3,3)中的每一個位置執行掃描程序SPi。因此,轉 換系數Co-Cis的語法元素解碼結果DsE_lof包含所有轉換系數Co-Cis的語法元素 si即if ;[。曰]11:_(3〇6';1^_;1^1曰旨,其中每一語法元素si即if icant_coeff_f lag指示對應的轉換系 數是否是非零。舉例來說,當significant_coeff_flag = l,表示對應的轉換系數具有一個 非零值,并且當significant_coeff_flag = 0,表示對應的轉換系數具有零值。更進一步,當 一個特定的轉換系數的語法元素significant_coeff_flag指示該特定的轉換系數是非零 值時,該特定的轉換系數可視為具有一個等于1的中間值,并且應該檢查附加語法元素來決 定該特定的轉換系數的一個最終值。然而,當特定轉換系數的語法元素significant coeff_flag指示特定的轉換系數是零值時,該特定的轉換系數的最終值確認為零值,并且 也不需要再檢查附加的語法元素,附加的語法元素包含coeff_abs_level_greate;rl_flag、 coeff_abs_level_greater2_f lag、coeff_sign_f lag 與 coeff_abs_level_remaining。具體 來說,轉換系數區塊BK的比特流BSbk可能沒有特定的轉換系數的編碼的語法元素coeff_ abs_level_greaterl_flag、coeff_abs_level_greater2_flag、coeff_sign_flag與coeff- abs_level_remaining。針對特定的轉換系數中的一個位置的后續的掃描程序SP2、SP3、SP4 與SPs可省略。
[0030] 計數邏輯124用來參考轉換系數Co-Cis的語法元素解碼結果化£_1(即轉換系數Co- 打5的語法元素31旨]11門。曰]11:_(306'仁門曰旨),來計數每一個具有非零值的轉換系數的數量,并 據此輸出一個計數值NCi至控制邏輯122。控制邏輯122可存儲計數值NCi至暫存器 (register)REGi,作為未來使用。在運個實施例中,控制邏輯122是用來依據計數值NCi控制 掃描程序SP2的重復次數化W及/或者掃描程序SP2的重復次數N4。此外,計數值NCi可用來決 定掃描程序SPs的重復次數化。
[0031] 為了幫助非零轉換系數的最終值的計算W及后續掃描程序的重復次數的計算,控 制邏輯122更進一步用來存儲掃描程序SPi所找到的非零的轉換系數的位置信息W及中間 值信息至存儲裝置106的第一存儲單元117。通過舉例說明,而并非限制,第一存儲單元117 可使用暫存器實現。
[0032] 圖4是依據本發明的實施例的用來存儲非零轉換系數的位置信息與中間值的第一 數據結構。在運個例子中,一個ID陣列402可用來存儲位置信息,并且另一個ID陣列404用來 存儲中間值信息。假設轉換系數C日、C日、C8、Cl日與Cl3的語法元素si即ificant_coeff_flag指 示對應的轉換系數具有非零值,剩余轉換系數的語法元素significant_coeff_flag指示對 應的轉換系數具有零值。陣列402的陣列元素Eii-Eis分別存儲位置信息(0,0)、( 1,1 )、(2, 0)、(2,2)與(3,1),陣列404的陣列元素E21-E25分別存儲中間值信息與1。
[0033] 圖5是依據本發明另一實施例的用于存儲非零轉換系數的位置信息與中間值的第 二數據結構的示意圖。在運個例子中,一個2D陣列(例如4x 4陣列)502用來存儲位置信息與 中間值信息,其中位置信息使用索引值記錄,中間值信息記錄在由位置信息索引的陣列元 素。為了清楚與簡單,假設如圖5所示的數據結構是通過第一存儲單元117來實現。
[0034] 在運個例子中,轉換系數C日、C日、C8、Cl日與Cl3的語法元素si即ificant_coeff_flag 指示轉換系數Co、C5、C8、Clo與Cl3具有非零值。因此,計數值NCl設置為5,并且存儲在暫存器 REGi。接著,控制器102的控制邏輯122指示算術解碼器104來執行至少一次的另一掃描程序 SP2,其中由算術解碼器104來執行一次掃描程序SP2解碼一部分比特流,該部分比特流包含 轉換系數Cq-Cis中的一個的編碼的語法元素,來產生一個語法元素coeff_abs_level_ greaterl_f lag。在運個實施例中,控制邏輯122至少部分依據語法元素解碼結果化E_1來控 制掃描程序SP2的重復次數化。具體來說,控制邏輯122依據從語法元素解碼結果化E_1獲得 的計數值NCi來控制掃描程序SP2的重復次數N2。依據皿VC,語法元素coeff_abs_level_ greaterl_flag針對4x4轉換系數區塊中的最多8個非零轉換系數來編碼。控制邏輯122用來 比較計數值NCi與一個闊值(例如8),并且依據比較結果設置掃描程序SP2的重復次數化。舉 例來說,如果NCi蘭8,則化=NCi;如果NCi〉8,則化=8。因此,當NCi蘭別寸,執行掃描程序SP2至 對應依據先前掃描程序SPi指示的所有非零轉換系數的位置。當NCi〉8時,執行掃描程序SP2 至對應首先的8個非零轉換系數的位置,從而對應剩余的非零轉換系數的位置將不通過掃 描程序SP2來檢查。
[0035] 針對轉換系數區塊BK內的位置化執行掃描程序SP2。因此,至少一部分轉換系數Co- Cis的語法元素解碼結果Dse_2包含化轉換系數的語法元素coeff_abs_l eve Lgreater 1_ flag,其中每一語法元素coeff_abs_level_greate;rl_flag指示對應的轉換系數是否大于 l。舉例來說,當coeff_abs_level_greate;rl_flag=l時,指示對應的轉換系數大于l;當 coeff_abs_level_greate;rl_f Iag = O時,指示對應的轉換系數不大于1。當一個特定的非零 轉換系數的語法元素coeff_abs_level_greate;rl_f lag指示該非零的轉換系數大于1時,該 特定的非零轉換系數可視為具有一個等于2的中間值,并且需要檢查附加語法元素來決定 該特定非零轉換系數的最終值。然而,當特定的非零轉換系數的語法元素coeff_abs_ level_greaterl_flag指示該特定的非零轉換系數不大于1時,該特定的非零轉換系數的最 終絕對值確認為1,就不需要檢查附件的語法元素,附加的語法元素包含coeff_abs_level_ greater2_flag與coeff_abs_level_remaining。具體來說,轉換系數區塊服的比特流BSbk可 能不包含特定的非零轉換系數的編碼的語法元素coeff_abs_level_greater2_flag與 coeff_abs_level_remaining。針對該特定的非零轉換系數的一個位置的后續的掃描程序 SP3與SPs可W省略。
[0036] 計數邏輯124參考化個轉換系數的語法元素解碼結果化e_2(即化個轉換系數的語 法元素[06''_曰63_16¥61_旨'6曰161'1_'1曰旨)來計數具有等于1或者2的絕對值的轉換系數的 數量,并據此輸出另一計數值NC2至控制邏輯122。控制邏輯122可存儲計數值NC2在另一個暫 存器REG2中W未來使用。
[0037] 為了說明計算非零轉換系數的最終值W及計算后續掃描程序的重復次數,控制邏 輯122依據掃描程序SP2所找到的大于1的非零轉換系數更新存儲裝置106的第一存儲單元 117中存儲的中間值。假設轉換系數。、枯與〔8的語法元素(306''_曰63_16¥61_邑'6曰161'1_'1曰邑 指示轉換系數C〇、C5與Cs具有大于1的絕對值。因此,在陣列元素中存儲的對應位置(0,0)、 (1,1)與(2,0)的中間值更新為2,如圖6所示。需注意的是,由于轉換系數CiO與Ci3的語法元 素。06''_日63_16¥61_旨'6日161'1_^日旨指示轉換系數(:1日與(:13具有不大于1的絕對值,轉換系 數Cio與Cl3的最終絕對值確認為1。由于存在兩個非零的轉換系數,每一轉換系數的絕對值 確認為1,計數值NC2因此確認為2。
[003引接著,控制器102的控制邏輯122指示算術解碼器104來執行另一掃描程序SP3至少 一次(例如僅僅一次),其中當算術解碼器104執行一次掃描程序SP3時,掃描程序SP3解碼部 分比特流,該部分比特流包含轉換系數Co-Cis中的一個轉換系數的編碼的語法元素,W產生 i吾'法元素 coef f_abs_level_greater2_f Ia邑。依據HEVC,i吾'法元素 coeff_abs_level_ greater2_flag針對4x 4轉換系數區塊中的僅僅1個非零轉換系數來編碼。因此,在轉換系 數區塊服的解碼程序中,算術解碼器104僅僅執行掃描程序SP3-次,從而控制邏輯122直接 設定掃描程序SP3的重復次數化為1。
[0039] 掃描程序SP2僅僅針對語法元素coeff_abs_level_greate;rl_f lag指示的具有大 于1的絕對值的對應的轉換系數中的一個位置執行。因此轉換系數Co-Cis的至少一部分的語 法元素解碼結果化e_3僅僅包含一個轉換系數的語法元素coeff_abs_level_greater2_ flag,該轉換系數的語法元素。06''_日63_16¥61_旨'6日161'1_^日旨指示其具有大于1的絕對 值,其中語法元素coeff_abs_level_greater2_flag指示對應的轉換系數是否大于2。舉例 來說,當。〇日''_日63_1日¥日1_旨'日日1日'2_門日旨=1時,指示對應的轉換系數的絕對值大于2;當 (3〇6''_日63_1日¥日1_旨'日日1日'2_巧日旨=0時,指示對應的轉換系數的絕對值不大于2。當語法元 素特定的非零轉換系數的coeff_abs_level_greater2_flag指示該特定的非零的轉換系數 的絕對值大于2時,該特定的非零的轉換系數可視為具有等于3的中間值,并且需要檢查附 加的語法元素來絕對該特定的非零轉換系數的最終值。然而,當特定的非零的轉換系數的 語法元素coeff_abs_level_greater2_flag指示該特定的非零的轉換系數不大于2時,該特 定的非零轉換系數的最終絕對值確認為2,因此不再需要檢查附加語法元素coeff_abs_ level_remaining。具體來說,轉換系數區塊BK的比特流B&3兩能不具有特定的非零轉換系 數的編碼的語法元素coeff_abs_level_remaining。針對對應于該特定非零轉換系數的一 個位置的后續的掃描程序SPs可省略。
[0040] 計數邏輯124參考一個轉換系數的語法元素解碼結果化e_3(即一個轉換系數的語 法元素[06''_曰63_16¥61_旨'6曰16'2_'1曰旨)來選擇性地更新具有等于1或者2的絕對值的轉 換系數的數量。當語法元素。0日''_日63_1日¥日1_旨'日日1日'2_^日旨指示對應的轉換系數的絕對 值大于2時,存儲在暫存器REG2中的計數值N2保持不變。然而,當語法元素coeff_abs_level_ greater2_f lag指示對應的轉換系數的絕對值不大于2時,計數邏輯124在當前計數值化上 增加1,并且輸出更新的計數值化至控制邏輯122。由于存在兩個非零轉換系數確認具有等 于1的絕對值W及一個非零轉換系數確認具有等于2的絕對值,存儲在REG2中的計數值NC2因 此更新為3。
[0041] 假設掃描程序SP3在位置(1,1)執行,對應的轉換系數Cs具有大于1的絕對值,并且 轉換系數C日的語法元素coeff_abs_level_greater2_flag指示轉換系數C日具有大于2的絕對 值。因此存儲在陣列元素中對應位置(1,1)的中間值更新為3,如圖7所示。需注意的是,只有 轉換系數Cio與Ci3的最終絕對值已確認。計數值NC2因此設定為2。
[0042] 假設掃描程序SP3在位置(1,1)執行,對應的轉換系數Cs具有大于1的絕對值,并且 轉換系數C日的語法元素coeff_abs_level_greater2_flag指示轉換系數C日不具有大于2的絕 對值。因此轉換系數Cs的最終絕對值確認為2,如圖8所示。需注意的是,轉換系數C5、Cio與Ci3 的最終絕對值已確認。計數值NC2因此設定為3。
[0043] 接著,控制器102的控制邏輯122指示算術解碼器104來執行另一掃描程序SP4至少 一次(例如NCi次),其中當算術解碼器104執行一次掃描程序SP4時,掃描程序SP3解碼部分比 特流,該部分比特流包含轉換系數Co-Cis中的一個轉換系數的編碼的語法元素,W產生語法 元素(306''_31旨]1_'1曰旨。在運個實施例中,控制邏輯122依據至少語法元素解碼結果化£_1來 控制掃描程序SP4的重復次數N4。如上所述,當特定轉換系數的語法元素Signif icant_ coeff_f lag指示該特定的轉換系數是0時,該特定轉換系數的最終值確認為0。因此,不需要 再檢查附加語法元素來確認特定轉換系數的符號信息(sign information)。控制邏輯122 因此依據從語法元素解碼結果化E_1或者的計數值NCi控制掃描程序SP4的重復次數N4。具體 來說,掃描程序SP4的重復次數N4是通過計數值NCi來設定。因此,轉換系數Co-Cis的至少一部 分的語法元素解碼結果Dse_4包含NCi個轉換系數的語法元素coeff_sign_flag,其中每一語 法元素coeff_sign_flag指示對應的轉換系數的符號信息。舉例來說,當coeff_sign_flag =1,指示對應的轉換系數是一個正值;當coeff_sign_flag = 0時,指示對應的轉換系數是 一個負值。
[0044] 如上所述,轉換系數C日、C日、C8、Cl日與Cl3的語法元素 si即ificant_coeff_flag指示 轉換系數〔0心心、(:1()與(:13具有非零值。因此掃描程序8?廟對應非零轉換系數〔()心心、(:10 與Ci3的位置(0,0)、(1,1)、(2,0)、(2,2)、(3,1)上執行。因此轉換系數0)^5、〔8、(:1〇與打3的符 號信息被決定。
[0045] 接著,控制器102的控制邏輯122指示算術解碼器104來執行另一掃描程序SPs至少 一次,其中當算術解碼器104執行一次掃描程序SPs時,掃描程序SPs解碼部分比特流,該部分 比特流包含轉換系數Co-Cis中的一個轉換系數的編碼的語法元素,W產生語法元素coeff_ 曰63_16¥61_'6111曰;[]1;[]1旨。在運個實施例中,控制邏輯122依據至少語法元素解碼結果化£_1、 Dse_2與Dse_3來控制掃描程序SP4的重復次數Ns。如上所述,當非零轉換系數(其 si 邑 nif icant_coeff_f Ia邑=1)白勺 i吾'法元素 coeff_abs_levle_ 邑 reaterl_fal 邑指示 i亥非零白勺 轉換系數的絕對值大不于1時,該非零轉換系數的最終值確認為1,當非零轉換系數(其 si 邑 nif icant_coeff_f Ia邑=1)白勺 i吾'法元素 coeff_abs_levle_ 邑 reater2_fal 邑指示 i亥非零白勺 轉換系數的絕對值大不于2時,該非零轉換系數的最終值確認為2。因此,當一個非零轉換系 數確認為其絕對值為1或者2時,不需要檢查附加語法元素coeff_abs_level_remaining來 確定剩余絕對值。換言之,當一個非零轉換系數的最終絕對值還沒有確認時,需要檢查附加 的語法元素coeff_abs_level_remaining來確認剩余的絕對值。
[0046] 計數邏輯124產生的計數值NCi是具有非零值的第一轉換系數的數量的標識,其中 每一個第一轉換系數是包含在待解碼的轉換系數區塊服中。計數邏輯124產生/更新的并且 存儲在暫存器REG2中的計數值NC2,是具有等于1或者2的絕對值的第二轉換系數的數量的標 識,其中每一個第二轉換系數是包含在待解碼的轉換系數區塊BK中。因此,控制邏輯122依 據計數值NCi與NC2控制掃描程序SPs的重復次數化。具體來說,掃描程序SPs的重復次數化是 通過計數值NCi與NC2之間的差來設定,即化= NCi-NCs。因此,至少一部分轉換系數Co-Cis的語 法元素解碼結果Dse_5包含(NC1-NC2)個轉換系數的語法元素coeff_abs_level_remaining, 其中每一語法元素coeff_abs_level_remaining指示對應的轉換系數的剩余的絕對值。
[0047] 假設轉換系數的基本值BaseLevel定義如下:
[0048]
(I)
[0049] 其中旗標的值為0或者I,并且當不存在時即推斷為0。換言之,系數的基本值 BaseLevel可W是僅僅通過掃描程序SPi設定的中間值來設定、或者開始通過掃描程序SPi來 設定后續通過掃描程序SP2來更新的中間值來設定、或者開始通過掃描程序SPi來設定后續 通過掃描程序Sh與SP3來更新的中間值來設定。系數的絕對值absCoeff Level可簡單定義如 下:
[0050] absCoeffLevel=baseLevel+coeff_abs_level_remaining (2)
[0051] 關于圖7所示的例子,非零轉換系數Cio與Ci3的最終絕對值分別確認為1與1;并且 非零轉換系數Co、C5與Cs的最終絕對值并沒有確認。因此,掃描程序SPs在對應非零轉換系數 C〇、Cs與Cs的每一個位置(0,0)、(1,1)與(2,0)執行。舉例來說,當非零轉換系數抗心與〔8的 語法元素coeff_abs_level_remaining指示剩余絕對值是5、3與6時,非零轉換系數〔〇心與 Cs的最終絕對值確認為5、6與8。
[0052] 關于圖8所示的例子,非零轉換系數CsXio與Ci3的最終絕對值分別確認為2、1與1; 并且非零轉換系數Co、C8的最終絕對值沒有被確認。因此,掃描程序SPs在對應非零轉換系數 Co與Cs的每一個位置(0,0)與(2,0)執行。舉例來說,當非零轉換系數Co與Cs的語法元素 coeff_abs_level_remaining指示剩余絕對值是5與3時,非零轉換系數Cq與Cs的最終絕對值 確認為7與5。
[0053] 依據肥 VC,語法元素si 即if icant_coeff_f lag、coeff_abs_level_greate;rl_f Ia 邑 與。06';1^_日63_16¥61_旨'6日16'2_;1^1日旨在常規模式下編碼,并且語法元素(306';1^_3;[即_;1^1曰邑與 coeff_abs_level_remaining在旁通模式下編碼。在所需的語法元素被解碼裝置100通過執 行一些或者所有的掃描程序SPi-SPs獲得之后,轉換系數區塊BK中的轉換系數Co-Cis的最終 值可W決定。由于算術解碼器104所執行的掃描程序的重復次數可在所提出的控制器102的 控制之下減少,解碼效率因此大幅增加。
[0054] 在上述實施例中,當從計數邏輯124接收到計數值NC2之后,從控制邏輯122存儲計 數值NC連暫存器REG2。因此,控制邏輯122從暫存器REGi與REG2中讀出計數值NCi與NC2,并且 從計數值NCi減去計數值NC2來產生一個差值,W控制掃描程序SPs重復次數化。然而,運僅僅 作為舉例說明,而并非是本發明的限制。在一個替換性設計中,當從計數邏輯124接收到計 數值NC2之后,控制邏輯122用來從計數值NCi中減去計數值NC2, W產生一個差值,并且存儲 上述差值至暫存器REG2。因此,控制邏輯122可直接從暫存器REG2中讀出上述差值來控制掃 描程序SPs重復次數化。
[0055] 圖9是依據本發明的實施例的用來控制解碼一個轉換系數區塊的比特流的方法的 流程圖。作為舉例說明,而并非限制,轉換系數區塊的比特流可從皿VC編碼器產生,其中轉 換系數區塊具有多個轉換系數。如果結果相似,則不需嚴格依照圖9所示的各個步驟的順 序。上述方法由圖1所示的解碼裝置100的控制器102實現,并且簡單總結如下。
[0化6] 步驟900:開始。
[0057]步驟902:指示算術解碼器來執行掃描程序SPi至少一次(例如16次),W產生至少 一部分(例如所有)轉換系數的語法元素解碼結果Dse_1,其中當算術解碼器執行一次掃描程 序SPi時,掃描程序SPi解碼部分比特流,該部分比特流包含多個轉換系數中的一個轉換系數 的編碼的語法元素,W產生語法元素S ignif icant_coef f_f lag。
[0058] 步驟904:依據語法元素解碼結果化E_l,計數具有非零值的特定轉換系數的數量, 并且據此產生并存儲第一計數值NCio
[0059] 步驟906:至少部分依據第一計數值NCi控制另一掃描程序SP2的重復次數,并且指 示算術解碼器來執行掃描程序SP2至少一次,來產生至少一部分轉換系數的語法元素解碼 結果化e_2,其中當算術解碼器執行一次掃描程序SP2時,掃描程序SP2解碼部分比特流,該部 分比特流包含多個轉換系數中的一個轉換系數的編碼的語法元素,W產生語法元素coeff_ abs_level_greate;rl_flag。當第一計數值NCi與一個闊值的比較結果顯示第一計數值NCi超 出該闊值時,另一掃描程序SP2的重復次數可限制在該闊值(例如8)之下。
[0060] 步驟908:依據語法元素解碼結果化e_2,計數具有等于1的絕對值的特定轉換系數 的數量,并且據此產生并存儲第二計數值NC2。
[0061] 步驟910:指示算術解碼器來執行另一掃描程序SP3至少一次(例如僅僅1次),W產 生至少一部分(例如僅僅一個)轉換系數的語法元素解碼結果化e_3,其中當算術解碼器執行 一次掃描程序SP3時,掃描程序SP3解碼部分比特流,該部分比特流包含多個轉換系數中的一 個轉換系數的編碼的語法元素,W產生語法元素coeff_abs_level_greater2_f lag。
[0062] 步驟912:依據語法元素解碼結果化e_3,選擇性地更新第二計數值NC2,來指示具有 等于1或2的絕對值的特定轉換系數的數量。
[0063] 步驟914:至少部分依據第一計數值NCi控制另一掃描程序SP4的重復次數,并且指 示算術解碼器來執行掃描程序SP4至少一次(例如NCi次),來產生至少一部分轉換系數的語 法元素解碼結果化e_4,其中當算術解碼器執行一次掃描程序SP4時,掃描程序SP4解碼部分 比特流,該部分比特流包含多個轉換系數中的一個轉換系數的編碼的語法元素,W產生語 i4^^coeff_si 邑 n_fla 邑。
[0064] 步驟916:至少部分依據第一計數值NCi與計數值NC2之間的差值D控制另一掃描程 序SPs的重復次數,并且指示算術解碼器來執行掃描程序SPs至少一次(例如D次),來產生至 少一部分轉換系數的語法元素解碼結果化e_5,其中當算術解碼器執行一次掃描程序SPs時, 掃描程序SPs解碼部分比特流,該部分比特流包含多個轉換系數中的一個轉換系數的編碼 的語法元素,U產生語法元素coeff_abs_level_remainin邑。
[00化]步驟918:結束。
[0066] 本領域技術人員在閱讀了 W上段落之后,可了解圖9所示的各個步驟的細節,在此 不再寶述。
[0067] 本發明通過上述實施例進行舉例說明,本發明并非局限于上述舉例說明。本發明 應理解為涵蓋本領域技術人員可了解的多種變型的實施方式與相似的安排。因此,本發明 的權利要求書應該理解為涵蓋本領域技術人員可了解的多種變型的實施方式與相似的安 排的較廣范圍。
【主權項】
1. 一種解碼裝置,用于解碼一個轉換系數區塊的比特流,該轉換系數區塊包含多個轉 換系數,該解碼裝置包含: 算術解碼器,用來執行算術解碼;以及 控制器,包含: 計數邏輯,用來依據第一語法元素解碼結果產生第一統計結果;以及 控制邏輯,用來指示該算術解碼器來執行至少一次第一掃描程序,以產生至少一部分 轉換系數的該第一語法元素解碼結果,至少部分依據該第一統計結果控制第二掃描程序的 重復次數,并且指示該算術解碼器來執行至少一次該第二掃描程序,來產生至少一部分轉 換系數的第二語法元素解碼結果,其中當該算術解碼器執行一次該第一掃描程序時,該第 一掃描程序解碼該多個轉換系數中的一個轉換系數的第一編碼的語法元素,其中當該算術 解碼器執行一次該第二掃描程序時,該第二掃描程序解碼該多個轉換系數中的一個轉換系 數的第二編碼的語法元素。2. 根據權利要求1所述的解碼裝置,其特征在于,該第二掃描程序的該重復次數小于該 轉換系數區塊中的該多個轉換系數的數量。3. 根據權利要求1所述的解碼裝置,其特征在于,在該第一語法元素解碼結果中包含的 每一第一語法元素指示對應的轉換系數是否是0。4. 根據權利要求3所述的解碼裝置,其特征在于,該計數邏輯通過計數每一具有非零值 的特定轉換系數的數量來產生計數值作為該第一統計結果,其中該每一特定轉換系數包含 在該轉換系數區塊中。5. 根據權利要求1所述的解碼裝置,其特征在于,在該第二語法元素解碼結果中包含的 每一第二語法元素指示對應的轉換系數的絕對值是否大于1。6. 根據權利要求1所述的解碼裝置,其特征在于,在該第二語法元素解碼結果中包含的 每一第二語法元素指示對應的轉換系數的符號信息。7. 根據權利要求1所述的解碼裝置,其特征在于,該計數邏輯進一步依據該第二語法元 素解碼結果與第三語法元素解碼結果產生第二統計結果;并且該控制邏輯進一步指示該算 術解碼器來執行第三掃描程序至少一次,以產生至少一部分轉換系數的第三語法元素解碼 結果,至少部分依據該第一統計結果與該第二統計結果控制第四掃描程序的重復次數,并 且指示該算術解碼器來執行至少一次該第四掃描程序,來產生至少一部分轉換系數的第四 語法元素解碼結果,其中當該算術解碼器執行一次該第三掃描程序時,該第三掃描程序解 碼該多個轉換系數中的一個轉換系數的第三編碼的語法元素,其中當該算術解碼器執行一 次該第四掃描程序時,該第四掃描程序解碼該多個轉換系數中的一個轉換系數的第四編碼 的語法元素。8. 根據權利要求7所述的解碼裝置,其特征在于,該第四掃描程序的該重復次數小于該 轉換系數區塊中的該多個轉換系數的數量。9. 根據權利要求7所述的解碼裝置,其特征在于,在該第一語法元素解碼結果中包含的 每一第一語法元素指示對應的轉換系數是否是0;在該第二語法元素解碼結果中包含的每 一第二語法元素指示對應的轉換系數的絕對值是否大于1;在該第三語法元素解碼結果中 包含的每一第三語法元素指示對應的轉換系數的絕對值是否大于2。10. 根據權利要求9所述的解碼裝置,其特征在于,該計數邏輯通過計數每一具有非零 值的第一轉換系數的數量來產生第一計數值作為該第一統計結果,并且通過計數每一絕對 值具有1或者2的第二轉換系數的數量來產生第二計數值以作為該第二統計結果,其中該每 一第一轉換系數包含在該轉換系數區塊中,其中該每一第二轉換系數包含在該轉換系數區 塊中; 并且該控制邏輯通過該第一計數值與該第二計數值之間的差來控制該第四掃描程序 的重復次數。11. 根據權利要求7所述的解碼裝置,其特征在于,在該第四語法元素解碼結果中包含 的每一第四語法元素指示一個對應的轉換系數的剩余絕對值。12. -種解碼方法,用于控制解碼轉換系數區塊的比特流,該轉換系數區塊包含多個轉 換系數,該解碼方法包含: 指示算術解碼器來執行至少一次第一掃描程序,以產生至少一部分轉換系數的第一語 法元素解碼結果,其中當該算術解碼器執行一次該第一掃描程序時,該第一掃描程序解碼 該多個轉換系數中的一個轉換系數的第一編碼的語法元素; 依據該第一語法元素解碼結果產生第一統計結果;以及 至少部分依據該第一統計結果控制第二掃描程序的重復次數,并且指示該算術解碼器 來執行至少一次該第二掃描程序,來產生至少一部分該轉換系數的第二語法元素解碼結 果,其中當該算術解碼器執行一次該第二掃描程序時,該第二掃描程序解碼該多個轉換系 數中的一個轉換系數的第二編碼的語法元素,以產生第二語法元素。13. 根據權利要求12所述的解碼方法,其特征在于,該第二掃描程序的該重復次數小于 該轉換系數區塊中的該多個轉換系數的數量。14. 根據權利要求12所述的解碼方法,其特征在于,在該第一語法元素解碼結果中包含 的每一第一語法元素指示對應的轉換系數是否是0。15. 根據權利要求12所述的解碼方法,其特征在于,該依據該第一語法元素解碼結果產 生第一統計結果的步驟包含: 通過計數每一具有非零值的特定轉換系數的數量來產生計數值作為該第一統計結果, 其中該每一特定轉換系數包含在該轉換系數區塊中。16. 根據權利要求12所述的解碼方法,其特征在于,在該第二語法元素解碼結果中包含 的每一第二語法元素指示對應的轉換系數的絕對值是否大于1。17. 根據權利要求12所述的解碼方法,其特征在于,在該第二語法元素解碼結果中包含 的每一第二語法元素指示對應的轉換系數的符號信息。18. 根據權利要求12所述的解碼方法,其特征在于,進一步包含:指示該算術解碼器來 執行至少一次第三掃描程序,以產生至少一部分轉換系數的第三語法元素解碼結果,其中 當該算術解碼器執行一次該第三掃描程序時,該第三掃描程序解碼該多個轉換系數中的一 個轉換系數的第三編碼的語法元素; 至少依據該第二語法元素解碼結果與第三語法元素解碼結果產生第二統計結果;以及 至少部分依據該第一統計結果與該第二統計結果控制第四掃描程序的重復次數,并且 指示該算術解碼器來執行至少一次該第四掃描程序,來產生至少一部分轉換系數的第四語 法元素解碼結果,其中當該算術解碼器執行一次該第四掃描程序時,該第四掃描程序解碼 該多個轉換系數中的一個轉換系數的第四編碼的語法元素。19. 根據權利要求18所述的解碼方法,其特征在于,該第四掃描程序的該重復次數小于 該轉換系數區塊中的該多個轉換系數的數量。20. 根據權利要求18所述的解碼方法,其特征在于,在該第一語法元素解碼結果中包含 的每一第一語法元素指示對應的轉換系數是否是〇;在該第二語法元素解碼結果中包含的 每一第二語法元素指示對應的轉換系數的絕對值是否大于1;在該第三語法元素解碼結果 中包含的每一第三語法元素指示對應的轉換系數的絕對值是否大于2。21. 根據權利要求20所述的解碼方法,其特征在于: 該依據該第一語法元素解碼結果產生第一統計結果的步驟包含: 通過計數每一具有非零值的第一轉換系數的數量來產生第一計數值作為該第一統計 結果,其中每一個第一轉換系數是包含在該轉換系數區塊中; 該依據該第二語法元素解碼結果與第三語法元素解碼結果產生第二統計結果的步驟 包含: 通過計數每一絕對值具有1或者2的第二轉換系數的數量來產生第二計數值以作為該 第二統計結果,其中每一個第二轉換系數是包含在該轉換系數區塊中;包含該至少部分依 據該第一統計結果與該第二統計結果控制第四掃描程序的該重復次數的步驟包含:依據該 第一計數值與該第二計數值的差值控制該第四掃描程序的重復次數。22. 根據權利要求18所述的解碼方法,其特征在于,在該第四語法元素解碼結果中包含 的每一第四語法元素指示一個對應的轉換系數的剩余絕對值。
【文檔編號】H04N19/00GK105940676SQ201580004681
【公開日】2016年9月14日
【申請日】2015年1月21日
【發明人】鄭佳韻, 朱啟誠, 張永昌, 王智鳴
【申請人】聯發科技股份有限公司