国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      視頻譯碼中的系數的譯碼的制作方法

      文檔序號:7791006閱讀:268來源:國知局
      視頻譯碼中的系數的譯碼的制作方法
      【專利摘要】視頻編碼器對系數塊中的系數執(zhí)行多個譯碼遍次。在每一譯碼遍次期間,所述視頻編碼器對所述系數塊中的系數的語法元素的不同集合進行編碼。視頻解碼器使用系數的所述語法元素來確定所述系數的值。當所述視頻編碼器執(zhí)行譯碼遍次時,所述視頻編碼器至少部分地基于在非因果系數的較早譯碼遍次中產生的語法元素且至少部分地基于在因果系數的當前譯碼遍次期間產生的語法元素的值來選擇語法元素的譯碼上下文。所述視頻編碼器基于所述選定譯碼上下文對所述語法元素進行熵編碼。視頻解碼器執(zhí)行相似系列的譯碼遍次,其中所述視頻解碼器選擇譯碼上下文且對所述語法元素進行熵解碼。
      【專利說明】視頻譯碼中的系數的譯碼
      [0001]本申請案主張以下申請案的權益:
      [0002]2012年I月22日申請的第61/589,384號美國臨時專利申請案;
      [0003]2012年I月30日申請的第61/592,300號美國臨時專利申請案;
      [0004]2012年3月2日申請的第61/606,300號美國臨時專利申請案;
      [0005]2012年3月2日申請的第61,606, 304號美國臨時專利申請案;
      [0006]2012年3月2日申請的第61/606,338號美國臨時專利申請案;
      [0007]2012年4月16日申請的第61/625,062號美國臨時專利申請案;以及
      [0008]2012年4月16日申請的第61/625,072號美國臨時專利申請案,
      [0009]以上申請案的每一者的整個內容以引用方式并入本文。

      【技術領域】
      [0010]本發(fā)明涉及視頻譯碼和壓縮,且特定來說涉及視頻譯碼中的系數的譯碼。

      【背景技術】
      [0011]數字視頻能力可并入到廣泛多種裝置中,包含數字電視機、數字直播系統(tǒng)、無線廣播系統(tǒng)、個人數字助理(PDA)、膝上型或桌上型計算機、平板計算機、電子書閱讀器、數碼相機、數字記錄裝置、數字媒體播放器、視頻游戲裝置、視頻游戲控制臺、蜂窩式或衛(wèi)星無線電電話、所謂的“智能電話”、視頻電話會議裝置、視頻流式傳輸裝置和類似裝置。數字視頻裝置實施視頻壓縮技術,例如由 MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4 第 10 部分高級視頻譯碼(AVC)界定的標準、當前在開發(fā)的高效視頻譯碼(HEVC)標準以及此些標準的擴展中描述的那些技術。視頻裝置可通過實施此些視頻壓縮技術來較有效地發(fā)射、接收、編碼、解碼和/或存儲數字視頻信息。
      [0012]視頻壓縮技術執(zhí)行空間(圖片內)預測和/或時間(圖片間)預測以減少或移除視頻序列中固有的冗余。對于基于塊的視頻譯碼,可將視頻切片(即,視頻幀或視頻幀的一部分)分割為若干視頻塊,所述視頻塊也可稱為樹塊、譯碼單元(CU)和/或譯碼節(jié)點。圖片的經幀內譯碼(I)切片中的視頻塊是使用相對于同一圖片中的相鄰塊中的參考樣本的空間預測來編碼。圖片的經幀間譯碼(P或B)切片中的視頻塊可使用相對于同一圖片中的相鄰塊中的參考樣本的空間預測或相對于其它參考圖片中的參考樣本的時間預測。圖片可稱為巾貞,且參考圖片可稱為參考中貞。
      [0013]空間或時間預測得到待譯碼塊的預測塊。殘余數據表示待譯碼的原始塊與預測塊之間的像素差。經幀間譯碼塊是根據指向形成預測塊的參考樣本的塊的運動向量以及指示經譯碼塊與預測塊之間的差的殘余數據來編碼。經幀內譯碼塊是根據幀內譯碼模式和殘余數據來編碼。為了進一步壓縮,可將殘余數據從像素域變換到變換域,從而得到殘余系數,所述系數隨后可經量化。可掃描初始以二維陣列布置的經量化系數以便產生系數的一維向量,且可應用熵譯碼以實現甚至更多的壓縮。


      【發(fā)明內容】

      [0014]大體上,本發(fā)明描述用于對視頻譯碼中的系數塊的系數進行譯碼的技術。所述系數可包括對應于與視頻塊相關聯的殘余像素值集合的經變換系數,其分別經譯碼且變換到頻域中?;蛘?,如果未將變換應用于殘余樣本塊,那么系數可為樣本域中的殘余樣本。特定來說,視頻編碼器產生系數塊且對系數塊中的系數執(zhí)行多個譯碼遍次。在每一譯碼遍次期間,所述視頻編碼器對所述系數塊中的系數的語法元素的不同集合進行編碼。視頻解碼器可使用系數的所述語法元素來確定所述系數的值。當視頻編碼器執(zhí)行除了初始譯碼遍次之外的譯碼遍次時,視頻編碼器可至少部分地基于在非因果系數的較早譯碼遍次中產生的語法元素的值且至少部分地基于在因果系數的當前譯碼遍次期間產生的語法元素的值來選擇語法元素的譯碼上下文。根據當前譯碼遍次的譯碼次序,非因果系數在系數之后發(fā)生,且因果系數在系數之前發(fā)生。視頻編碼器可基于選定譯碼上下文對語法元素進行熵編碼。視頻解碼器可執(zhí)行相似系列的譯碼遍次,其中所述視頻解碼器選擇譯碼上下文且對系數的語法元素進行熵解碼。
      [0015]在一個方面中,本發(fā)明描述用于對視頻數據進行編碼的方法。所述方法包括基于殘余樣本塊產生系數塊。另外,所述方法包括在所述系數塊的系數的第一譯碼遍次期間對對應于所述系數塊的系數的語法元素的第一集合進行編碼。此外,所述方法包括在系數塊的系數的第二譯碼遍次期間編碼對應于系數塊的系數的語法元素的第二集合。對語法元素的第二集合進行編碼包括產生第一語法元素,所述第一語法元素在語法元素的所述第二集合中且對應于所述系數塊的當前系數。對語法元素的第二集合進行編碼還包括至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文。第二語法元素在語法元素的第一集合中且對應于非因果系數。所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生。另外,對語法元素的第二集合進行編碼包括至少部分地基于為第一語法元素選擇的譯碼上下文來熵編碼第一語法元素。
      [0016]在另一方面中,本發(fā)明描述包括經配置以基于殘余樣本塊產生系數塊的一或多個處理器的視頻編碼裝置。所述一或多個處理器還經配置以在所述系數塊的系數的第一譯碼遍次期間對對應于所述系數塊的系數的語法元素的第一集合進行編碼。另外,所述一或多個處理器還經配置以在系數塊的系數的第二譯碼遍次期間對對應于系數塊的系數的語法元素的第二集合進行編碼。所述一或多個處理器經配置以使得在所述第二譯碼遍次期間所述一或多個處理器產生第一語法元素,所述第一語法元素在語法元素的所述第二集合中且對應于所述系數塊的當前系數。在所述第二譯碼遍次期間,所述一或多個處理器還至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文。第二語法元素在語法元素的第一集合中且對應于非因果系數。所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生。另外,在第二譯碼遍次期間,所述一或多個處理器至少部分地基于為第一語法元素選擇的譯碼上下文來對第一語法元素進行熵編碼。
      [0017]在另一方面中,本發(fā)明描述一種視頻編碼裝置,其包括用于基于殘余樣本塊產生系數塊的裝置。所述視頻編碼裝置還包括用于在所述系數塊的系數的第一譯碼遍次期間對對應于所述系數塊的系數的語法元素的第一集合進行編碼的裝置。另外,視頻編碼裝置包括用于在系數塊的系數的第二譯碼遍次期間解碼對應于系數塊的系數的語法元素的第二集合進行編碼的裝置。用于對語法元素的第二集合進行編碼的裝置包括用于產生第一語法元素的裝置,所述第一語法元素在語法元素的所述第二集合中且對應于所述系數塊的當前系數。用于對語法元素的第二集合進行編碼的裝置還包括用于至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文的裝置。第二語法元素在語法元素的第一集合中且對應于非因果系數。所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生。用于對語法元素的第二集合進行編碼的裝置還包括用于至少部分地基于為第一語法元素選擇的譯碼上下文來對第一語法元素進行熵編碼的裝置。
      [0018]在另一方面中,本發(fā)明描述一種存儲指令的計算機可讀存儲媒體,所述指令在由視頻編碼裝置的一或多個處理器執(zhí)行時配置所述視頻編碼裝置以基于殘余樣本塊產生系數塊。所述指令還配置所述視頻編碼裝置以在所述系數塊的系數的第一譯碼遍次期間對對應于所述系數塊的系數的語法元素的第一集合進行編碼。所述指令還配置所述視頻編碼裝置以在所述系數塊的系數的第二譯碼遍次期間對對應于所述系數塊的系數的語法元素的第二集合進行編碼。所述指令配置所述視頻編碼裝置以使得在第二譯碼遍次期間,所述視頻編碼裝置產生第一語法元素,所述第一語法元素在語法元素的第二集合中且對應于系數塊的當前系數。所述指令還配置所述視頻編碼裝置以使得在所述第二譯碼遍次期間,所述視頻編碼裝置至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文。第二語法元素在語法元素的第一集合中且對應于非因果系數。所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生。另外,所述指令配置所述視頻編碼裝置以使得在第二譯碼遍次期間,所述視頻編碼裝置至少部分地基于為第一語法元素選擇的譯碼上下文來對第一語法元素進行熵編碼。
      [0019]在另一方面中,本發(fā)明描述用于對視頻數據進行解碼的方法。所述方法包括在系數塊的系數的第一譯碼遍次期間對對應于所述系數塊的系數的語法元素的第一集合進行解碼。所述方法還包括在系數塊的系數的第二譯碼遍次期間對對應于系數塊的系數的語法元素的第二集合進行解碼。執(zhí)行第二譯碼遍次包括至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文,所述第一語法元素在語法元素的第二集合中且對應于系數塊的當前系數。第二語法元素在語法元素的第一集合中且對應于非因果系數。所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生。執(zhí)行第二譯碼遍次還包括至少部分地基于為第一語法元素選擇的譯碼上下文來對第一語法元素進行熵解碼。另外,執(zhí)行第二譯碼遍次包括基于所述系數塊的所述系數產生殘余樣本塊。
      [0020]在另一方面中,本發(fā)明描述一種視頻解碼裝置,其包括一或多個處理器,所述一或多個處理器經配置以在系數塊的系數的第一譯碼遍次期間對對應于系數塊的系數的語法元素的第一集合進行解碼。所述一或多個處理器還經配置以在所述系數塊的系數的第二譯碼遍次期間對對應于所述系數塊的系數的語法元素的第二集合進行解碼。所述一或多個處理器經配置以使得在第二譯碼遍次期間,所述一或多個處理器至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文,所述第一語法元素在語法元素的第二集合中且對應于系數塊的當前系數。第二語法元素在語法元素的第一集合中且對應于非因果系數。所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生。所述一或多個處理器還經配置以使得在第二譯碼遍次期間,所述一或多個處理器至少部分地基于為第一語法元素選擇的譯碼上下文來對第一語法元素進行熵解碼。此外,所述一或多個處理器經配置以基于所述系數塊的所述系數產生殘余樣本塊。
      [0021]在另一方面中,本發(fā)明描述一種視頻解碼裝置,其包括用于在系數塊的系數的第一譯碼遍次期間對對應于系數塊的系數的語法元素的第一集合進行解碼的裝置。所述視頻解碼裝置還包括用于在所述系數塊的系數的第二譯碼遍次期間對對應于所述系數塊的系數的語法元素的第二集合進行解碼的裝置。用于執(zhí)行第二譯碼遍次的裝置包括用于至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文的裝置,所述第一語法元素在語法元素的第二集合中且對應于系數塊的當前系數。第二語法元素在語法元素的第一集合中且對應于非因果系數。所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生。用于執(zhí)行第二譯碼遍次的裝置還包括用于至少部分地基于為第一語法元素選擇的譯碼上下文來對第一語法元素進行熵解碼的裝置。此外,所述視頻解碼裝置包括用于基于所述系數塊的所述系數產生殘余樣本塊的裝置。
      [0022]在另一方面中,本發(fā)明描述一種存儲指令的計算機可讀存儲媒體,所述指令在由視頻解碼裝置的一或多個處理器執(zhí)行時配置所述視頻解碼裝置以在系數塊的系數的第一譯碼遍次期間對對應于系數塊的系數的語法元素的第一集合進行解碼。所述指令還配置所述視頻解碼裝置以在所述系數塊的系數的第二譯碼遍次期間對對應于所述系數塊的系數的語法元素的第二集合進行解碼。所述指令配置所述視頻編碼裝置以使得在第二譯碼遍次期間,所述視頻解碼裝置至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文,所述第一語法元素在語法元素的第二集合中且對應于系數塊的當前系數。第二語法元素在語法元素的第一集合中且對應于非因果系數。所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生。所述指令還配置所述視頻解碼裝置以使得在第二譯碼遍次期間,所述視頻解碼裝置至少部分地基于為第一語法元素選擇的譯碼上下文來對第一語法元素進行熵編碼。此外,所述指令配置所述視頻解碼裝置以基于所述系數塊的所述系數產生殘余樣本塊。
      [0023]在附圖和以下描述中陳述本發(fā)明的一個或一個以上實例的細節(jié)。從描述、圖式以及權利要求書將明了其它特征、目的和優(yōu)點。

      【專利附圖】

      【附圖說明】
      [0024]圖1是圖解說明可利用本發(fā)明中描述的技術的實例性視頻譯碼系統(tǒng)的框圖。
      [0025]圖2是圖解說明經劃分為若干子塊的實例系數塊的概念圖。
      [0026]圖3是圖解說明未經劃分為若干子塊的實例系數塊的概念圖。
      [0027]圖4是圖解說明經劃分為若干子塊的實例系數塊的概念圖且展示包含非因果系數的上下文鄰域。
      [0028]圖5是圖解說明可實施本發(fā)明中描述的技術的實例性視頻編碼器的框圖。
      [0029]圖6是圖解說明可實施本發(fā)明中描述的技術的實例性視頻解碼器的框圖。
      [0030]圖7是圖解說明根據本發(fā)明的一或多種技術的用于對視頻數據進行編碼的視頻編碼器的實例操作的流程圖。
      [0031]圖8是圖解說明根據本發(fā)明的一或多種技術的用于對視頻數據進行解碼的視頻解碼器的實例操作的流程圖。
      [0032]圖9A是圖解說明實例4x4子塊的概念圖。
      [0033]圖9B到9G是圖解說明圖9A的子塊中的系數的上下文鄰域中的實例孔的概念圖。
      [0034]圖1OA到1F是圖解說明系數塊的4x4子塊中的系數的實例群組的概念圖。
      [0035]圖11是圖解說明系數塊的4x4子塊內的系數的另一實例分組的概念圖。
      [0036]圖12是圖解說明根據本發(fā)明的一或多種技術的視頻解碼器在三個譯碼遍次中對子塊的系數語法元素進行譯碼的實例操作的流程圖。
      [0037]圖13A和13B是圖解說明當根據對角線譯碼次序執(zhí)行譯碼遍次時用于選擇SigMapFlag的譯碼上下文的上下文鄰域的實例模板的概念圖。
      [0038]圖14A和14B是圖解說明當根據水平譯碼次序執(zhí)行譯碼遍次時用于選擇SigMapFlag的譯碼上下文的上下文鄰域的實例模板的概念圖。
      [0039]圖15A和15B是圖解說明當根據垂直譯碼次序執(zhí)行譯碼遍次時用于選擇sigMapFlag的譯碼上下文的上下文鄰域的實例模板的概念圖。

      【具體實施方式】
      [0040]在視頻編碼期間,視頻編碼器可通過從原始樣本塊的樣本減去預測樣本塊的對應樣本來產生殘余樣本塊。在一些情況下,視頻編碼器可隨后將一或多個變換應用于殘余樣本塊以便產生系數塊。在其它情況下,視頻編碼器不將變換應用于殘余樣本塊。如果視頻編碼器不將變換應用于殘余樣本塊,那么視頻譯碼器可以與系數塊相同或相似的方式處置殘余樣本塊。因此,為便于闡釋,本發(fā)明可將殘余樣本塊稱為系數塊且將殘余樣本塊中的樣本稱為系數。然而應注意,如果視頻編碼器不將變換應用于殘余樣本塊,那么系數塊和系數的論述可應用于殘余樣本塊和殘余樣本。
      [0041]視頻編碼器可根據特定譯碼次序處理系數塊中的每一系數。當視頻編碼器處理系數塊中的系數時,視頻編碼器可產生且熵編碼系數的語法元素集合。視頻解碼器可能夠基于系數的語法元素集合來確定系數的值。為了熵編碼系數的語法元素,視頻編碼器可選擇語法元素的譯碼上下文,且隨后使用語法元素的選定譯碼上下文來對語法元素進行熵編碼。視頻編碼器可基于系數的上下文鄰域中的先前處理系數的語法元素的值來選擇語法元素的譯碼上下文。
      [0042]上文描述的用于處理系數的方法可能具有若干缺點。舉例來說,上述方法可使得難以使系數塊的多個系數的處理并行化。在另一實例中,上述方法可需要視頻編碼器(和視頻解碼器)存儲系數的絕對值以用于選擇譯碼上下文。存儲此些絕對值可增加視頻譯碼裝置中所需的存儲量。
      [0043]本發(fā)明的技術可解決這些問題和其它問題。根據本發(fā)明的技術,視頻編碼器可執(zhí)行多個譯碼遍次以產生和編碼系數塊的系數的語法元素。視頻編碼器可根據相同譯碼次序或根據兩個或兩個以上不同譯碼次序執(zhí)行譯碼遍次中的每一者。當視頻編碼器執(zhí)行除了初始譯碼遍次之外的譯碼遍次時,視頻編碼器可至少部分地基于在非因果系數的較早譯碼遍次中產生的語法元素的值且至少部分地基于在因果系數的當前譯碼遍次期間產生的語法元素的值來選擇當前語法元素的譯碼上下文。根據當前譯碼遍次的譯碼次序,非因果系數在當前系數(即,正譯碼的系數)之后發(fā)生,且因果系數在當前系數之前發(fā)生。視頻編碼器可基于選定譯碼上下文對當前語法元素進行熵編碼。通過至少部分地基于一或多個非因果系數的語法元素來選擇當前系數的當前語法元素的譯碼上下文,視頻編碼器可改善視頻編碼器選擇譯碼上下文的準確性。同時,通過至少部分地基于一或多個非因果系數的語法元素來選擇譯碼上下文,視頻編碼器可能夠選擇譯碼上下文而不如此重地依賴于視頻編碼器可與當前系數并行處理的因果語法元素。
      [0044]舉例來說,視頻編碼器可在系數塊的系數的第一譯碼遍次期間編碼對應于系數塊的系數的語法元素的第一集合。此外,視頻編碼器可在系數塊的系數的第二譯碼遍次期間編碼對應于系數塊的系數的語法元素的第二集合。當視頻編碼器執(zhí)行第二譯碼遍次時,視頻譯碼器可產生第一語法元素。第一語法元素在語法元素的第二集合中且對應于系數塊的當前系數。視頻編碼器可至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文。第二語法元素在語法元素的第一集合中且對應于非因果系數。第三語法元素在語法元素的第二集合中且對應于因果系數。非因果系數在第二譯碼遍次的譯碼次序中在當前系數之后發(fā)生。因果系數在譯碼次序中在當前系數之前發(fā)生。視頻編碼器可至少部分地基于針對第一語法元素選擇的譯碼上下文來熵編碼第一語法元素。
      [0045]附圖圖解說明實例。在附圖中由參考標號指示的元件對應于在以下描述中由相同參考標號指示的元件。在本發(fā)明中,具有以序數詞(例如,“第一”、“第二”、“第三”等等)開始的名稱的元件不一定暗示所述元件具有特定次序。而是,此些序數詞僅可用以指代相同或相似類型的不同元件。
      [0046]圖1是圖解說明可利用本發(fā)明的技術的實例性視頻譯碼系統(tǒng)10的框圖。如本文描述,術語“視頻譯碼器”一般指代視頻編碼器和視頻解碼器兩者。在本發(fā)明中,術語“視頻譯碼”或“譯碼”可一般指代視頻編碼或視頻解碼。
      [0047]如圖1所示,視頻譯碼系統(tǒng)10包含源裝置12和目的地裝置14。源裝置12產生經編碼視頻數據。因此,源裝置12可稱為視頻編碼裝置或視頻編碼設備。目的地裝置14可對由源裝置12產生的經編碼視頻數據進行解碼。因此,目的地裝置14可稱為視頻解碼裝置或視頻解碼設備。源裝置12和目的地裝置14可為視頻譯碼裝置或視頻譯碼設備的實例。源裝置12和目的地裝置14可包括廣泛多種裝置,包含桌上型計算機、移動計算裝置、筆記型(例如,膝上型)計算機、平板計算機、機頂盒、例如所謂的“智能”電話等電話手持機、電視機、相機、顯示裝置、數字媒體播放器、視頻游戲控制臺、車載計算機或類似裝置。
      [0048]目的地裝置14可經由信道16從源裝置12接收經編碼視頻數據。信道16可包括能夠將經編碼視頻數據從源裝置12移動到目的地裝置14的一或多個媒體和/或裝置。在一個實例中,信道16可包括一或多個通信媒體,其使得源裝置12能夠實時地將經編碼視頻數據直接發(fā)射到目的地裝置14。在此實例中,源裝置12可根據例如無線通信協議等通信標準而調制經編碼視頻數據,且可將經調制視頻數據發(fā)射到目的地裝置14。所述一或多個通信媒體可包含無線和/或有線通信媒體,例如射頻(RF)頻譜或者一或多種物理傳輸線。所述一或多個通信媒體可形成基于包的網絡的部分,所述網絡例如為局域網、廣域網或全球網(例如,因特網)。所述一或多個通信媒體可包含路由器、交換機、基站或促進從源裝置12到目的地裝置14的通信的其它設備。
      [0049]在另一實例中,信道16可包含存儲由源裝置12產生的經編碼視頻數據的存儲媒體。在此實例中,目的地裝置14可經由磁盤存取或卡存取而存取存儲媒體。存儲媒體可包含多種本地存取的數據存儲媒體,例如藍光光盤、DVD、CD-ROM、快閃存儲器或其它合適的用于存儲經編碼視頻數據的數字存儲媒體。
      [0050]在又一實例中,信道16可包含文件服務器或另一中間存儲裝置,其存儲由源裝置12產生的經編碼視頻數據。在此實例中,目的地裝置14可經由流式傳輸或下載而存取存儲在文件服務器或其它中間存儲裝置處的經編碼視頻數據。文件服務器可為能夠存儲經編碼視頻數據且將所述經編碼視頻數據發(fā)射到目的地裝置14的類型的服務器。實例文件服務器包含網絡服務器(例如,用于網站)、文件傳送協議(FTP)服務器、網絡附接存儲(NAS)裝置和本地磁盤驅動器。
      [0051]目的地裝置14可通過標準數據連接(例如因特網連接)存取經編碼視頻數據。數據連接的實例類型包含適于存取存儲在文件服務器上的經編碼視頻數據的無線信道(例如,W1-Fi連接)、有線連接(例如,DSL、電纜調制解調器等等)或兩者的組合。經編碼視頻數據從文件服務器的發(fā)射可為流式發(fā)射、下載發(fā)射或兩者的組合。
      [0052]本發(fā)明的技術不限于無線應用或設定。所述技術可應用于視頻譯碼以支持多種多媒體應用,例如空中電視廣播、閉路電視發(fā)射、衛(wèi)星電視發(fā)射、流式傳輸視頻發(fā)射(例如,經由因特網)、為存儲在數據存儲媒體上對視頻數據的編碼、對存儲在數據存儲媒體上的視頻數據的解碼,或其它應用。在一些實例中,視頻譯碼系統(tǒng)10可經配置以支持單向或雙向視頻發(fā)射以支持例如視頻流式傳輸、視頻重放、視頻廣播和/或視頻電話等應用。
      [0053]在圖1的實例中,源裝置12包含視頻源18、視頻編碼器20和輸出接口 22。在一些實例中,輸出接口 22可包含調制器/解調器(調制解調器)和/或發(fā)射器。視頻源18可包含視頻俘獲裝置(例如攝像機)、含有先前俘獲視頻數據的視頻檔案、用以從視頻內容提供者接收視頻數據的視頻饋送接口,和/或用于產生視頻數據的計算機圖形系統(tǒng),或此些視頻數據源的組合。
      [0054]視頻編碼器20可對來自視頻源18的視頻數據進行編碼。在一些實例中,源裝置12經由輸出接口 22將經編碼視頻數據直接發(fā)射到目的地裝置14。經編碼視頻數據也可存儲到存儲媒體或文件服務器上供目的地裝置14稍后存取,用于解碼和/或重放。
      [0055]在圖1的實例中,目的地裝置14包含輸入接口 28、視頻解碼器30和顯示裝置32。在一些實例中,輸入接口 28包含接收器和/或調制解調器。輸入接口 28可經由信道16接收經編碼視頻數據。顯示裝置32可與目的地裝置14集成或可在目的地裝置14的外部。大體上,顯示裝置32顯示經解碼視頻數據。顯示裝置32可包括多種顯示裝置,例如液晶顯示器(LCD)、等離子顯示器、有機發(fā)光二極管(OLED)顯示器,或另一類型的顯示裝置。
      [0056]視頻編碼器20和視頻解碼器30可根據例如當前在開發(fā)的高效視頻譯碼(HEVC)標準等視頻壓縮標準來操作,且可符合HEVC測試模型(HM)。稱為“HEVC工作草案5”或“WD5”的即將到來的HEVC標準的草案在布洛斯(Bross)等人的文獻JCTVC-Gl 103 “WD5:高效視頻譯碼工作草案 5 (WD5:fforking Draft5of High-Efficiency Video Coding)(ITU-TSG16WP3和IS0/IEC JTC1/SC29/WG11的視頻譯碼聯合合作組(JCT-VC), % 7次會議:瑞士日內瓦,2011年11月)中描述,其從2012年11月26日起可從http://phenix.1t-sudparis.eu/jet/doc_end_user/documents/7_Geneva/wgll/JCTVC-G1103-vl2.zip 下載,其整個內容以引用方式并入本文。稱為“HEVC工作草案9”的即將到來的HEVC標準的另一草案在布洛斯(Bross)等人的“高效視頻譯碼(HEVC)文本規(guī)范草案9 (High EfficiencyVideo Coding (HEVC) text specificat1n draft9),,(ITU-T SG16WP3 和 IS0/IEC JTCl/SC29/WG11的視頻譯碼聯合合作組(JCT-VC),第11次會議:中國上海,2012年10月)中描述,其從 2012 年 11 月 26 日起可從 http://phenix.1nt-evry.frijet/doc_end_user/documents/1l_Shanghai/wglI/JCTVC-K1003-v8.zip 下載,其整個內容以引用方式并入本文。
      [0057]或者,視頻編碼器20和視頻解碼器30可根據其它專門或行業(yè)標準操作,包含ITU-TH.261、IS0/IEC MPEG-lVisual, ITU-T H.262 或、IS0/IEC MPEG_2Visual、ITU-TH.263、IS0/IEC MPEG_4Visual 和 ITU-T H.264(也稱為 IS0/IEC MPEG-4AVC),包含其可縮放視頻譯碼(SVC)和多視圖視頻譯碼(MVC)擴展。然而本發(fā)明的技術不限于任何特定譯碼標準或技術。
      [0058]再次,圖1僅是實例,且本發(fā)明的技術可應用于不一定包含編碼與解碼裝置之間的任何數據通信的視頻譯碼設定(例如,視頻編碼或視頻解碼)。在其它實例中,數據是從本地存儲器檢索、經由網絡串流傳輸等。編碼裝置可對數據進行編碼且將數據存儲到存儲器,和/或解碼裝置可從存儲器檢索數據且對數據進行解碼。在許多實例中,編碼和解碼由不彼此通信但是簡單地將數據編碼到存儲器和/或從存儲器檢索和解碼數據的裝置執(zhí)行。
      [0059]視頻編碼器20和視頻解碼器30各自可實施為多種合適電路中的任一者,例如一或多個微處理器、數字信號處理器(DSP)、專用集成電路(ASIC)、現場可編程門陣列(FPGA)、離散邏輯、硬件或其任一組合。如果所述技術部分地以軟件實施,裝置可將用于所述軟件的指令存儲在合適的非暫時性計算機可讀存儲媒體中,且可使用一或多個處理器執(zhí)行硬件中的指令以執(zhí)行本發(fā)明的技術。上述任一者(包含硬件、軟件、硬件與軟件的組合等等)可視為一或多個處理器。視頻編碼器20和視頻解碼器30中的每一者可包含于一或多個編碼器或解碼器中,其中任一者可集成為相應裝置中的組合式編碼器/解碼器(CODEC)的部分。
      [0060]本發(fā)明可大體上涉及視頻編碼器20將某些信息“用信號發(fā)送”到另一裝置,例如視頻解碼器30。術語“用信號發(fā)送”可大體上指代表示經編碼視頻數據的語法元素和/或其它數據的通信。此通信可實時或近實時地發(fā)生。或者,此通信可在一時間跨度中發(fā)生,例如可能當在編碼時在經編碼位流中將語法元素存儲到計算機可讀存儲媒體時發(fā)生,所述語法元素可隨后在存儲到此媒體之后的任何時間由解碼裝置檢索。
      [0061]如上文簡要提到,視頻編碼器20對視頻數據進行編碼。視頻數據可包括一或多個圖片。圖片中的每一者可為靜止圖像。視頻編碼器20可產生位流,位流包含形成視頻數據的經譯碼表示的位序列。視頻數據的經譯碼表示可包含經譯碼圖片和相關聯數據。經譯碼圖片是圖片的經譯碼表示。相關聯數據可包含序列參數集(SPS)、圖片參數集(PPS)和其它語法結構。SPS可含有適用于零個或零個以上圖片序列的參數。PPS可含有適用于零個或零個以上圖片的參數。語法結構可為在位流中以指定次序一起存在的零或多個語法元素的
      口 O
      [0062]圖片包含一亮度(即,亮度或Y)樣本塊和兩個色度(即,色度)樣本塊。為便于闡釋,本發(fā)明可將樣本的二維陣列稱為樣本塊。為了產生圖片的經編碼表示,視頻編碼器20可產生圖片的多個譯碼樹塊(CTB)。在一些實例中,樹塊也可稱為最大譯碼單元(LCU)或樹塊。圖片的每一 CTB可與一亮度塊和兩個色度塊相關聯。CTB亮度塊是圖片的亮度塊的子塊且CTB色度塊是圖片的色度塊的子塊。CTB色度塊對應于圖片內與CTB亮度塊相同的區(qū)域。HEVC的CTB可廣義地類似于例如H.264/AVC等先前視頻譯碼標準的宏塊。然而,CTB不一定限于特定大小,且可包含一或多個譯碼單元(CU)。視頻編碼器20可使用四叉樹分割來將與CTB相關聯的樣本塊分割為與CU相關聯的樣本塊,因此名稱為“譯碼樹塊”。
      [0063]圖片的CTB可經分組為一或多個切片。在一些實例中,切片中的每一者包含整數個CTB。作為對圖片進行編碼的部分,視頻編碼器20可產生圖片的每一切片的經編碼表示(即,經譯碼切片)。為了產生經譯碼切片,視頻編碼器20可對切片的每一 CTB進行編碼以產生切片的CTB中的每一者的經編碼表示(即,經譯碼CTB)。
      [0064]為了產生經譯碼CTB,視頻編碼器20可對與CTB相關聯的樣本塊遞歸地執(zhí)行四叉樹分割以將樣本塊劃分為逐漸變小的樣本塊。CTB的CU可與一亮度樣本塊和兩個色度樣本塊相關聯。CU的亮度樣本塊可為CTB的亮度樣本塊的子塊且CU的色度樣本塊可為CTB的色度樣本塊的子塊。CU的亮度樣本塊和色度樣本塊可對應于圖片內的相同區(qū)域。經分割CU可為樣本塊經分割為與其它CU相關聯的樣本塊的CU。未經分割CU可為樣本塊未經分割為與其它CU相關聯的樣本塊的CU。
      [0065]視頻編碼器20可針對每一未經分割⑶產生一或多個預測單元(PU)。⑶的PU中的每一者可與圖片的區(qū)域內對應于CU的圖片區(qū)域對應。視頻編碼器20可產生CU的每一PU的預測樣本塊。I3U的預測樣本塊可為樣本塊。
      [0066]視頻編碼器20可使用幀內預測或幀間預測來產生的預測樣本塊。如果視頻編碼器20使用幀內預測來產生的預測樣本塊,那么視頻編碼器20可基于與相關聯的圖片的經解碼樣本來產生PU的預測樣本塊。如果視頻編碼器20使用幀間預測來產生的預測樣本塊時,視頻編碼器20可基于除了與相關聯的圖片之外的一或多個圖片的經解碼像素來產生I3U的預測樣本塊。
      [0067]視頻編碼器20可基于⑶的I3U的預測樣本塊產生⑶的殘余塊。⑶的殘余樣本塊可指示CU的PU的預測樣本塊中的樣本與CU的原始樣本塊中的對應樣本之間的差。
      [0068]此外,作為對未經分割CU進行編碼的部分,視頻編碼器20可對CU的殘余樣本塊執(zhí)行遞歸四叉樹分割以將CU的殘余樣本塊分割為與CU的變換單元(TU)相關聯的一或多個較小殘余樣本塊。TU中的每一者可與亮度樣本的一殘余樣本塊和色度樣本的兩個殘余樣本塊相關聯。
      [0069]視頻編碼器20可將一或多個變換應用于與TU相關聯的殘余樣本塊以產生系數塊(即,系數的塊)。視頻編碼器20可對系數塊中的每一者執(zhí)行量化過程。量化大體上指代其中系數經量化以可能地減少用以表示所述系數的數據量從而提供進一步壓縮的過程。在量化之后,視頻編碼器20可對表示系數的值的語法元素進行熵編碼。舉例來說,視頻編碼器20可對表示系數的值的語法元素中的至少一些執(zhí)行上下文自適應二進制算術譯碼(CABAC)編碼。對語法元素進行熵編碼可提供進一步壓縮。視頻編碼器20可輸出包含經熵編碼語法元素的位流。
      [0070]視頻解碼器30可接收位流。位流可包含由視頻編碼器20編碼的視頻數據的經譯碼表示。視頻解碼器30可剖析位流以從位流提取語法元素。作為從位流提取至少一些語法元素的部分,視頻解碼器30可對位流中的數據執(zhí)行熵解碼(例如,CABAC解碼、指數哥倫布解碼等等)。
      [0071]視頻解碼器30可基于從位流提取的語法元素來重構視頻數據的圖片。用以基于語法元素重構視頻數據的過程可與由視頻編碼器20執(zhí)行以產生語法元素的過程大體上互逆。舉例來說,視頻解碼器30可基于與CU相關聯的語法元素產生CU的PU的預測樣本塊。另外,視頻解碼器30可對與CU的TU相關聯的系數塊進行逆量化。視頻解碼器30可對系數塊執(zhí)行逆變換以重構與CU的TU相關聯的殘余樣本塊。視頻解碼器30可基于預測樣本塊和殘余樣本塊重構⑶的樣本塊。
      [0072]如上文簡單提到,視頻編碼器20可通過將一或多個變換應用于殘余樣本塊來產生系數塊。(在一些實例中,視頻編碼器20可跳過將一或多個變換應用于殘余樣本塊。)此外,在一些實例中,視頻編碼器20可將系數塊劃分為子塊。舉例來說,視頻編碼器20可將系數塊劃分為四個正方形子塊。子塊在本文也可稱為“組塊”。在一些實例中,子塊的大小為十六。因此,子塊中的每一者在逆掃描次序中含有十六個系數。因此,每一 4x4子塊對應于子集或組塊。此外,在一些實例中,除了使用水平或垂直掃描的某些8x8TU之外,所有TU使用4x4子塊掃描。
      [0073]視頻編碼器20可對子塊中的每一者執(zhí)行五個譯碼遍次。視頻編碼器20可在對子塊中的下一者執(zhí)行五個譯碼遍次之前對子塊執(zhí)行全部五個譯碼遍次。視頻編碼器20可以各種次序處理子塊。舉例來說,視頻編碼器20可以反向z掃描處理子塊,其首先處理右下方子塊,之后是左下方子塊,右上方子塊,且最終是左上方子塊。例如對角線左下等其它掃描也是可能的。
      [0074]當視頻編碼器20對子塊執(zhí)行譯碼遍次時,視頻編碼器20根據與特定譯碼遍次相關聯的譯碼次序處理子塊中的系數中的每一者。不同譯碼遍次可使用相同譯碼次序或者一或多個不同譯碼次序。在一些實例中,譯碼次序可為對角線左下次序,其在右下系數處開始,且隨后從右下系數逐漸遠離地處理系數的對角線。在此實例中,視頻編碼器20可沿著系數的每一對角線從右上到左下處理系數。在其它實例中,譯碼次序可為垂直或水平次序。視頻編碼器20可使用反向掃描次序(S卩,在右下系數處開始的譯碼次序)用于顯著水平譯石馬(即,針對 sigMapFlags、grlFlags、gr2Flags、signFlags 和 IevelRems)。然而,本發(fā)明的技術甚至在使用前向掃描次序時也可為有效的。本發(fā)明的技術也可無論使用對角線、z字形、水平、垂直、4x4子塊掃描或任何其它掃描均為有效的。
      [0075]當視頻編碼器20對子塊執(zhí)行第一譯碼遍次時,視頻編碼器20可針對子塊中的每一系數產生significant_coeff_flag(簡寫為sigMapFlag)。在一些實例中,視頻編碼器20可僅針對在第一譯碼遍次的譯碼次序中的第一非零系數之后發(fā)生的那些系數產生sigMapFlag。系數的sigMapFlag指示所述系數的絕對值是否大于零。在本發(fā)明中,如果系數的絕對值大于零,那么所述系數稱為“顯著的”。視頻編碼器20和視頻解碼器30可使用規(guī)則CABAC譯碼來對sigMapFlag進行熵譯碼。規(guī)則CABAC譯碼可使用多個上下文。
      [0076]當視頻編碼器20對子塊執(zhí)行第二譯碼遍次時,視頻編碼器20針對子塊中具有大于零的絕對值的每一系數產生coeff_abs_level_greaterl_flag(簡寫為grlFlag)。系數的grlFlag指示所述系數的絕對值是否大于I。在一些實例中,可使用每子塊最多八個grlFlags來指示對應系數大于I。視頻編碼器20和視頻解碼器30可使用規(guī)則CABAC譯碼來對grlFlag進行熵譯碼。
      [0077]當視頻編碼器20對子塊執(zhí)行第三譯碼遍次時,視頻編碼器20可針對子塊中具有大于I的絕對值的每一系數產生coeff_abs_level_greater2_flag(簡寫為gr2Flag)。系數的gr2Flag指示所述系數的絕對值是否大于2。在一些實例中,可使用每子塊最多一個gr2Flag來指示對應系數大于2。因此,針對每一子塊可發(fā)送最多八個grlFlag和一個gr2Flag0因此,IevelRem的解譯可取決于grlFlag和/或gr2Flag是否已經譯碼而改變。視頻編碼器20和視頻解碼器30可使用規(guī)則CABAC譯碼來對gr2Flag進行熵譯碼。
      [0078]當視頻編碼器20對子塊執(zhí)行第四譯碼遍次時,視頻編碼器20可針對子塊中具有大于O的絕對值的每一系數產生coeff_sign_flag(簡寫為signFlag)。系數的signFlag指示系數的正/負符號。視頻編碼器20和視頻解碼器30可使用旁路熵譯碼來對signFlag進行熵譯碼。
      [0079]當視頻編碼器20對子塊執(zhí)行第五譯碼遍次時,視頻編碼器20可針對子塊中具有大于O的絕對值的每一系數產生coeff_abs_level_remain value (簡寫為IevelRem)。在一些實例中,視頻編碼器20可用信號發(fā)送具有大于2的振幅的每一系數的levelRem(即,其中gr2Flag = I)。系數的IevelRem指示系數的剩余絕對值。視頻編碼器20可針對子塊中gr2Flag為I或當gr2Flag未經譯碼且grlFlag為I時或當grlFlag和gr2Flag未經譯碼且sigMapFlag為I時的每一系數產生levelRem。如果系數的gr2Flag指不系數大于
      2,那么系數的IevelRem指示系數的絕對值減3。如果系數的gr2Flag未經譯碼但系數的grlFlag指示系數大于I,那么系數的IevelRem指示系數的絕對值減2。類似地,如果系數的grlFlag或gr2Flag未產生但sigMapFlag為I,那么系數的IevelRem指示系數的絕對值減I。視頻編碼器20和視頻解碼器30可使用旁路熵譯碼來對levelRem進行熵譯碼。為便于闡釋,本發(fā)明可將sigMapFlag、grlFlag、gr2Flag、signFlag和levelRem稱為“系數語法元素”或“等級信息”。在一些實例中,可使用另一旗標來指示整個子塊是否為非顯著的。
      [0080]在本發(fā)明中,在較早譯碼遍次期間產生的語法元素稱為具有比在較晚譯碼遍次期間產生的語法元素高的優(yōu)先級。換句話說,首先譯碼的系數語法元素可稱為具有較高優(yōu)先級。舉例來說,sigMapFlag 具有比 grlFlag、gr2Flag、signFlag 和 levelRem 高的優(yōu)先級。grlFlag具有比gr2Flag、signFlag和IevelRem高的優(yōu)先級,但具有比sigMapFlag低的優(yōu)先級。針對gr2Flag、signFlag和IevelRem可提供相似實例。
      [0081]在視頻編碼器20執(zhí)行第一、第二和第三譯碼遍次時,視頻編碼器20可分別對sigMapFlag、grlFlag和gr2Flag執(zhí)行規(guī)則CABAC編碼。也就是說,在五個系數語法元素中,僅三個是使用CABAC進行上下文譯碼,即sigMapFlag、grlFlag和gr2Flag。舉例來說,在視頻編碼器20在第三譯碼遍次中產生gr2Flag時,視頻編碼器20可在產生下一系數gr2Flag的之前對gr2Flag執(zhí)行規(guī)則CABAC編碼。在視頻編碼器20執(zhí)行第四和第五譯碼遍次時,視頻編碼器20可對signFlag和IevelRem執(zhí)行旁路編碼。
      [0082]當視頻編碼器20對例如sigMapFlag、grlFlag、gr2Flag或levelRem等語法元素執(zhí)行CABAC編碼時,視頻編碼器20可二進制化語法元素以形成包括一系列一或多個位的二進制串,稱為“二進位”。視頻編碼器20可使用規(guī)則CABAC編碼來對二進位中的一些進行編碼,且可使用旁路編碼來對二進位中的其它者進行編碼。
      [0083]當視頻編碼器20使用規(guī)則CABAC編碼來對二進位序列進行編碼時,視頻編碼器20可首先識別譯碼上下文。譯碼上下文可識別譯碼二進位具有特定值的概率。舉例來說,譯碼上下文可指示譯碼O值二進位的0.7概率和譯碼I值二進位的0.3概率。在識別譯碼上下文之后,視頻編碼器20可將區(qū)間劃分為下部子區(qū)間和上部子區(qū)間。子區(qū)間中的一者可與值O相關聯,且另一子區(qū)間可與值I相關聯。子區(qū)間的寬度可與所識別譯碼上下文針對相關聯值指示的概率成比率。如果語法元素的二進位具有與下部子區(qū)間相關聯的值,那么經編碼值可等于下部子區(qū)間的下部邊界。如果語法元素的同一二進位具有與上部子區(qū)間相關聯的值,那么經編碼值可等于上部子區(qū)間的下部邊界。為了對語法元素的下一二進位進行編碼,視頻編碼器20可重復這些步驟,其中區(qū)間是與經編碼位的值相關聯的子區(qū)間。當視頻編碼器20針對下一區(qū)間重復這些步驟時,視頻編碼器20可基于由所識別譯碼上下文指示的概率和經編碼二進位的實際值來使用經修改概率。
      [0084]當視頻解碼器30執(zhí)行CABAC解碼時,視頻解碼器30可對一些二進位執(zhí)行規(guī)則CABAC解碼且可對其它二進位執(zhí)行旁路解碼。當視頻解碼器30對語法元素使用規(guī)則CABAC解碼時,視頻解碼器30可識別譯碼上下文。視頻解碼器30可隨后將區(qū)間劃分為下部子區(qū)間和上部子區(qū)間。子區(qū)間中的一者可與值O相關聯,且另一子區(qū)間可與值I相關聯。子區(qū)間的寬度可與所識別譯碼上下文針對相關聯值指示的概率成比率。如果經編碼值在下部子區(qū)間內,那么視頻解碼器30可對具有與下部子區(qū)間相關聯的值的二進位進行解碼。如果經編碼值在上部子區(qū)間內,那么視頻解碼器30可對具有與上部子區(qū)間相關聯的值的二進位進行解碼。為了對語法元素的下一二進位進行解碼,視頻解碼器30可重復這些步驟,其中區(qū)間是含有經編碼值的子區(qū)間。當視頻解碼器30針對下一區(qū)間重復這些步驟時,視頻解碼器30可基于由所識別譯碼上下文指示的概率和經解碼二進位來使用經修改概率。視頻解碼器30可隨后對二進位進行去二進制化以恢復語法元素。去二進制化可稱為根據二進制串與語法元素值之間的映射選擇語法元素值。
      [0085]替代于對所有語法元素或對所有二進位執(zhí)行規(guī)則CABAC,例如視頻編碼器20或視頻解碼器30等視頻譯碼器可使用旁路譯碼對一些二進位進行譯碼。旁路譯碼大體上指代對二進位進行算術編碼而不使用自適應譯碼上下文的過程。舉例來說,在旁路算術譯碼中,視頻譯碼器不選擇上下文且可假定兩個符號(O和I)的0.5的概率。雖然旁路譯碼可能不如CABAC譯碼那樣帶寬高效,但旁路譯碼可比CABAC譯碼計算上成本較低。此外,執(zhí)行旁路譯碼可允許較高程度的并行化和處理量。
      [0086]選擇并不準確反映二進位具有O或I的概率的譯碼上下文可不利地影響譯碼性能。因為在相鄰系數的值之間存在已知的統(tǒng)計關系,所以視頻編碼器20可基于先前產生的關于相鄰系數的信息來選擇譯碼上下文。雖然基于關于相鄰系數的信息選擇譯碼上下文可增加視頻編碼器20選擇譯碼上下文的準確性,但視頻編碼器20必須在選擇譯碼上下文之前產生此關于相鄰系數的信息。這可能阻止視頻編碼器20與選擇語法元素的譯碼上下文并行地產生關于相鄰系數的信息。
      [0087]本發(fā)明的技術可針對等級信息和重要性信息形成經上下文譯碼的語法元素(例如,sigMapFlag、grlFlag和gr2Flag)的上下文。根據本發(fā)明的一或多個技術,視頻編碼器20可在系數的每一相應譯碼遍次期間并行地選擇子塊中的系數的所有相應譯碼遍次的語法元素的譯碼上下文。在一些實例中,本發(fā)明的技術可實現并行地推導對應于子塊中的特定語法元素的所有旗標的上下文。舉例來說,視頻編碼器20可并行地選擇(即,推導)子塊中的系數的所有gr2Flag的譯碼上下文。
      [0088]為此,視頻編碼器20在一些實例中可至少部分地基于系數塊的先前經譯碼子塊中的系數的所有系數語法元素來選擇特定子塊中的特定系數的語法元素的譯碼上下文。換句話說,上下文可取決于先前子塊中的所有重要性和等級信息。另外,視頻編碼器20可至少部分地基于特定子塊的系數的較高優(yōu)先級系數語法元素來選擇語法元素的譯碼上下文。也就是說,上下文可取決于來自當前子塊的較高優(yōu)先級語法元素。
      [0089]圖2是圖解說明劃分為若干子塊的實例系數塊48的概念圖。圖2的實例展示8x8TU的4x4子塊掃描的實例。每一 4x4子塊是“組塊”。HEVC工作草案5不將4x4子塊掃描用于8x8TU,然而此處將其說明為實例。
      [0090]在圖2中,圓對應于系數。系數塊48包含子塊50A、50B、50C和50D。在圖2的實例中,以反向對角線左下次序掃描4x4子塊。因此,4x4子塊的處理次序是右下、右上、左下和左上。在每一 4x4子塊內,根據反向對角線左下掃描處理系數。圖2中的箭頭指示系數的譯碼次序。在其它實例中,可使用不同掃描次序,例如右上對角線、z字形、水平或垂直。如果使用正向掃描代替反向掃描,那么本發(fā)明的技術可適用。換句話說,本發(fā)明的技術可適用于正向掃描以及后向掃描。
      [0091]每一子塊的重要性和等級信息(例如,系數語法元素)可在繼續(xù)到下一子塊之前完全譯碼。在子塊內,可以如下次序對重要性和等級信息進行譯碼:sigMapFlag、grlFlag、gr2Flag、signFlag和levelRem。在圖2的實例中,視頻編碼器20可能已經對子塊50A、50B和50C中的系數的系數語法元素進行編碼。也就是說,視頻編碼器20可能已經對子塊50A、50B和50C中的系數執(zhí)行所有五個譯碼遍次。在此實例中,視頻編碼器20可至少部分地基于子塊 50A、50B 和 50C 中的系數的 sigMapFlag、grlFlag、gr2Flag、signFlag 和 levelRem來選擇系數52的系數語法元素的譯碼上下文。此外,視頻編碼器20可基于子塊50D中的系數的較高優(yōu)先級系數語法元素來選擇系數52的系數語法元素的譯碼上下文。舉例來說,視頻編碼器20可基于子塊50D中的系數的sigMapFlag和grlFlag中的任一者來選擇系數52的gr2Flag的譯碼上下文。因此,當系數52的gr2Flag經譯碼時,已經處理的三個子塊(即,右上、左下和右下子組塊)的所有重要性和等級信息(sigMapFlag、grlFlag、gr2Flag、signFlag和levelRem)可用于上下文形成。另外,可使用左上4x4子塊的sigMapFlag和grlFlag。
      [0092]在其它實例中,視頻編碼器20可僅基于先前經譯碼子塊的較高優(yōu)先級系數語法元素和當前子塊的較高優(yōu)先級系數語法元素來選擇當前子塊中的系數的系數語法元素的譯碼上下文。舉例來說,在圖2的實例中,視頻編碼器20可基于子塊50A、50B、50C和50D中的系數的sigMapFlag和grlFlag中的任一者而不是子塊50A、50B、50C或50D中的系數的gr2Flag、signFlag或IevelRem來選擇系數52的gr2Flag的譯碼上下文。
      [0093]此外,在一些實例中,視頻編碼器20基于特定系數的上下文鄰域中的系數的系數語法元素來選擇特定系數的系數語法元素的譯碼上下文。如上文指示,當形成系數語法元素的上下文時,可取決于來自當前子塊的系數語法元素的已經譯碼的信息來得到上下文。在此些實例中,單獨的上下文導出鄰域可用于來自當前語法元素和較高優(yōu)先級語法元素的已經譯碼的信息。在圖2的實例中,四邊形54指示系數52的上下文鄰域。如圖2的實例中所示,系數52的上下文鄰域包含子塊50B中的系數55、子塊50C中的系數56以及子塊50D中的三個系數58、60和62。在一些實例中,視頻編碼器20可基于系數54和56的任何系數語法元素以及系數58、60和62的較高優(yōu)先級系數語法元素來選擇系數52的系數語法元素的譯碼上下文。在其它實例中,視頻編碼器20可基于系數54、56、58、60和62的較高優(yōu)先級系數語法元素來選擇系數52的系數語法元素的譯碼上下文。舉例來說,系數52是含有十六個系數的子塊中的第8系數。因此,當對系數52的gr2Flag進行譯碼時,系數52的gr2Flag的上下文可取決于目前為止針對子塊50D譯碼的gr2Flag (直到第7系數)以及子塊50D的所有sigMapFlag和grlFlag。另外,系數52的gr2Flag的上下文可取決于來自先前子塊(即,子塊50A、50B和50C)的重要性和等級信息。因此,為了對系數52的gr2Flag進行譯碼,除了所有4x4子塊50A、50B、50C和50D的sigMapFlag和grlFlag信息之外,可使用系數58、60和62的gr2Flag信息。在一些實例中當系數語法元素的上下文取決于來自先前子塊的重要性和等級信息時,可能較難以并行化上下文推導過程。
      [0094]在一些實例中,視頻編碼器20并不如圖2的實例中所示將系數塊劃分為子塊。在此些實例中,視頻編碼器20可以上述方式對整個系數塊執(zhí)行相同的五個編碼遍次。圖3是圖解說明未經劃分為若干子塊的實例系數塊70的概念圖。在圖3中,圓對應于系數。在圖3的實例中,四邊形72指示系數74的上下文鄰域。視頻編碼器20可基于系數74的上下文鄰域中的系數的較高優(yōu)先級語法元素來選擇系數72的系數語法元素的譯碼上下文。換句話說,當組塊的大小與TU的大小相同時,整個TU的較高優(yōu)先級語法元素的經譯碼信息可用于形成當前語法元素的上下文。在一些實例中,當系數74的gr2Flag正譯碼時,在上下文形成中可使用整個TU的sigMapFlag和grlFlag。另外,可使用來自先前TU的所有重要性和等級信息用于上下文形成。在一些實例中,僅當前和先前TU的較高優(yōu)先級語法元素(例如,sigMapFlag和grlFlag)可用于系數74的gr2Flag的譯碼上下文的上下文形成。
      [0095]在另一實例中,不必使用整個信息來形成上下文。通常,在上下文的形成中可使用來自當前系數周圍的鄰域的較高優(yōu)先級語法元素信息。舉例來說,當子塊(即,組塊)的大小等于TU的大小時,在鄰域中可包含TU系數中的任一者而不考慮因果關系或掃描。在圖3的實例中,四邊形72展示系數74的實例上下文鄰域。為了對系數74的gr2Flag進行譯碼,視頻編碼器20可基于系數74的上下文鄰域中的系數的sigMapFlag和grlFlag來選擇系數74的gr2Flag的譯碼上下文。
      [0096]在圖3的實例中,可使用反向左下掃描處理整個TU來代替使用子塊(即,組塊)。在此實例中,子塊的大小可選擇為與TU的大小相同的大小。此外,在圖3的實例中,首先對整個TU的sigMapFlag信息進行譯碼。這之后是整個TU的grlFlag信息,以此類推。對應于每一語法元素的信息本文可稱為“遍次”,因為子塊或TU中的系數對于每一語法元素可能必須被訪問(但不一定譯碼)一次。
      [0097]此外,在一些實例中,視頻編碼器20可至少部分地基于當前子塊的因果系數的相同優(yōu)先級系數語法元素來選擇當前子塊的系數的系數語法元素的譯碼上下文。在此些實例中,視頻編碼器20還可基于當前譯碼遍次的譯碼次序中的當前子塊以及先前子塊中的系數的較高優(yōu)先級系數語法元素(且在一些實例中在當前譯碼遍次的譯碼次序中的當前子塊之前發(fā)生的子塊中的系數的任何系數語法元素)來選擇系數語法元素的譯碼上下文。舉例來說,視頻編碼器20可至少部分地基于當前子塊的因果系數的gr2Flag來確定當前子塊的系數的gr2Flag的譯碼上下文。
      [0098]為了在當前系數語法元素的譯碼上下文是至少部分地基于先前經譯碼子塊的系數語法元素形成的實例中實現并行上下文推導,可基于當前系數語法元素的已經譯碼的信息對上下文推導鄰域強加一或多個限制。也就是說,上下文鄰域不含有需要并行上下文推導的任何位置。這在原理上類似于以全文引用方式并入本文的2011年11月11日申請的第13/294,869號美國申請案和以全文引用方式并入本文的2012年I月13日申請的第61/586,609號美國申請案中描述的想法。
      [0099]為了并行地對子塊的多個系數語法元素進行編碼,視頻編碼器20可僅基于子塊中未與系數并行地編碼的相同優(yōu)先級系數語法元素來選擇譯碼上下文。舉例來說,系數的上下文鄰域可經成形以使得上下文鄰域不包含可與系數并行地譯碼的任何系數。在此實例中,上下文鄰域的形狀可從一個位置到另一位置改變,如第61/586,609號美國申請案中描述。在圖2的實例中,使用基于反向4x4子塊的掃描。4x4子塊的右下方的系數(例如,系數64、66和68)可能必須基于當前語法元素的已經譯碼的信息使用經修改上下文推導相鄰者。舉例來說,如果對系數64、66和68中的一者的gr2Flag進行譯碼需要上下文推導中的并行性,那么不使用4x4子塊的右下方像素的經譯碼gr2Flag信息。
      [0100]在一個實例中,視頻編碼器20可并行地產生第一語法元素和第二語法元素,且可并行地選擇第一語法元素的譯碼上下文和第二語法元素的譯碼上下文。在此實例中,第一語法元素的譯碼上下文不是基于第二語法元素來選擇,且第二語法元素的譯碼上下文不是基于第一語法元素來選擇。在此實例中,視頻編碼器20可基于第一和第二語法元素的譯碼上下文并行地對第一和第二語法元素進行熵編碼。類似地,視頻解碼器30可并行地產生第一語法元素和第二語法元素,且并行地選擇第一語法元素的譯碼上下文和第二語法元素的譯碼上下文。在此實例中,第一語法元素的譯碼上下文不是基于第二語法元素來選擇,且第二語法元素的譯碼上下文不是基于第一語法元素來選擇。在此實例中,視頻編碼器30可基于第一和第二語法元素的譯碼上下文并行地對第一和第二語法元素進行熵解碼。
      [0101]在另一實例中,組塊大小可等于TU大小,且視頻編碼器20正對系數的gr2Flag進行譯碼。在此實例中,可使用正向或反向次序上的z字形或對角線掃描。此外,在此實例中,如果對應于對角線的gr2Flag的所有上下文將并行地推導,那么沒有來自所述對角線的gr2Flag信息可包含于上下文推導鄰域中。在此實例中,在取決于sigMap和grlFlag的gr2Flag的上下文推導鄰域中可包含TU位置中的任一者。圖2中的實例上下文鄰域遵守此限制。
      [0102]在另一實例中,視頻編碼器20可并行地選擇當前子塊的第一和第二系數的gr2Flag的譯碼上下文。在此實例中,第一系數的上下文鄰域不包含第二系數,且第二系數的上下文鄰域不包含第一系數。因此,在此實例中,視頻編碼器20不基于第二系數的gr2Flag來選擇第一系數的gr2Flag的譯碼上下文,且反之亦然。
      [0103]在一些此類實例中,特定系數的上下文鄰域可包含與所述特定系數不同的子塊中的系數。此外,在一些實例中,特定系數塊的上下文鄰域可包含特定系數的與特定系數在同一子塊中的因果和非因果相鄰者。如果根據譯碼遍次的譯碼次序第一系數在第二系數之前發(fā)生,那么第一系數是第二系數的因果相鄰者。如果根據譯碼遍次的譯碼次序第一系數在第二系數之后發(fā)生,那么第一系數是第二系數的非因果相鄰者。
      [0104]圖4是圖解說明包含因果和非因果系數的實例上下文鄰域的概念圖。圖4中的圓對應于系數塊80中的系數。在圖4的實例中,系數塊80劃分為子塊82A、82B、82C和82D。形狀84指示系數86的上下文鄰域。在圖4的實例中,系數86的上下文鄰域包含系數88、90、92、94、96和98。系數88、90和92在譯碼次序上在系數86之前發(fā)生且因此是因果系數。系數94、96和98在譯碼次序上在系數86之后發(fā)生且因此是非因果系數。
      [0105]根據本發(fā)明的技術,視頻編碼器20可在系數塊的系數的第一譯碼遍次期間編碼對應于系數塊的系數的語法元素的第一集合。此外,視頻編碼器20可在系數塊的系數的第二譯碼遍次期間編碼對應于系數塊的系數的語法元素的第二集合。當視頻編碼器20執(zhí)行第二譯碼遍次時,視頻編碼器20可產生第一語法元素。第一語法元素可在語法元素的第二集合中且可對應于系數塊的當前系數。此外,視頻編碼器20可至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文。第二語法元素在語法元素的第一集合中且對應于非因果系數。第三語法元素在語法元素的第二集合中且對應于因果系數。非因果系數在當前(第二)譯碼遍次的譯碼次序中在當前系數之后發(fā)生。因果系數在第二譯碼遍次的譯碼次序中在當前系數之前發(fā)生。視頻編碼器20可至少部分地基于針對第一語法元素選擇的譯碼上下文來熵編碼第一語法元素。
      [0106]類似地,視頻解碼器30可在系數塊的系數的第一譯碼遍次期間解碼對應于系數塊的系數的語法元素的第一集合。另外,視頻解碼器30可在系數塊的系數的第二譯碼遍次期間解碼對應于系數塊的系數的語法元素的第二集合。當視頻解碼器30執(zhí)行第二譯碼遍次時,視頻解碼器30可至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文。第二語法元素在語法元素的第一集合中且對應于非因果系數。第三語法元素在語法元素的第二集合中且對應于因果系數。視頻解碼器30可至少部分地基于針對第一語法元素選擇的譯碼上下文來熵解碼第一語法元素。
      [0107]應注意,上下文推導不需要使用所有以上信息。舉例來說,上下文推導可僅基于鄰域,如圖3和圖4所示。在另一實例中,上下文推導可僅基于具有較高優(yōu)先級的語法元素。作為實例,為了對給定系數的gr2Flag進行譯碼,為了上下文推導目的,可僅使用與語法元素sigMapFlag和grlFlag相關的信息??梢猿松衔闹付ǖ姆绞街獾钠渌绞较拗朴糜谏舷挛男纬傻男畔ⅰ?br> [0108]圖5是圖解說明經配置以實施本發(fā)明的技術的實例性視頻編碼器20的框圖。圖5是為了闡釋目的而提供,且不應視為限制如本發(fā)明中廣義地例示和描述的技術。為了闡釋的目的,本發(fā)明在HEVC譯碼的上下文中描述視頻編碼器20。然而,本發(fā)明的技術可適用于其它譯碼標準或方法。
      [0109]在圖5的實例中,視頻編碼器20包含預測處理單元100、殘余產生單元102、變換處理單元104、量化單元106、逆量化單元108、逆變換處理單元110、重構單元112、濾波器單元113、經解碼圖片緩沖器114,以及熵編碼單元116。預測處理單元100包含幀間預測處理單元121和幀內預測處理單元126。幀間預測處理單元121包含運動估計單元122和運動補償單元124。在其它實例中,視頻編碼器20可包含較多、較少或不同功能組件。
      [0110]視頻編碼器20可接收視頻數據。為了對視頻數據進行編碼,視頻編碼器20可對視頻數據的每一圖片的每一切片進行編碼。作為對切片進行編碼的部分,視頻編碼器20可對切片中的每一 CTB進行編碼。作為對CTB進行編碼的部分,預測處理單元100可對與CTB相關聯的樣本塊執(zhí)行四叉樹分割以將樣本塊劃分為逐漸變小的樣本塊。較小的樣本塊可與CU相關聯。舉例來說,預測處理單元100可將CTB的樣本塊中的每一者分割為四個相等大小的子塊,將子塊中的一或多者分割為四個相等大小的子子塊,等等。
      [0111]視頻編碼器20可對圖片中的CTB的⑶進行編碼以產生⑶的經編碼表示(即,經譯碼CU)。視頻編碼器20可根據Z掃描次序對CTB的CU進行編碼。換句話說,視頻編碼器20可對左上方⑶、右上方⑶、左下方⑶和隨后右下方⑶以此次序進行編碼。當視頻編碼器20對經分割CU進行編碼時,視頻編碼器20可根據z掃描次序對與經分割CU的樣本塊的子塊相關聯的CU進行編碼。
      [0112]此外,作為對⑶進行編碼的部分,預測處理單元100可在⑶的一或多個I3U之間分割CU的樣本塊。視頻編碼器20和視頻解碼器30可支持各種PU大小。假定特定CU的大小為2Nx2N,則視頻編碼器20和視頻解碼器30可支持用于幀內預測的2Nx2N或NxN的PU大小以及用于幀間預測的2NX2N、2NXN、NX2N、NXN或類似的對稱I3U大小。視頻編碼器20和視頻解碼器30還可支持用于幀間預測的2NxnU、2NxnD、nLx2N和nRx2N的PU大小的不對稱分割。
      [0113]幀間預測處理單元121可通過對⑶的每一執(zhí)行幀間預測來產生的預測數據。PU的預測數據可包含對應于PU的預測樣本塊和PU的運動信息。切片可為I切片、P切片或B切片。幀間預測單元121可取決于是否在I切片、P切片或B切片中而執(zhí)行針對⑶的PU的不同操作。在I切片中,所有I3U經幀內預測。因此,如果I3U在I切片中,那么幀間預測單元121不對執(zhí)行幀間預測。
      [0114]如果I3U在P切片中,那么運動估計單元122可搜索參考圖片列表(例如,“列表O”)中的參考圖片是否有PU的參考塊。PU的參考塊可為對應于參考圖片的同一區(qū)域且最接近地對應于I3U的樣本塊的樣本塊集合。運動估計單元122可產生指示列表O中含有PU的參考塊的參考圖片的參考圖片索引,以及指示PU的亮度樣本塊與亮度參考樣本塊之間的空間位移的運動向量。運動估計單元122可輸出參考圖片索引和運動向量作為PU的運動信息。運動補償單元124可基于由的運動信息指示的參考塊來產生的預測樣本塊。
      [0115]如果PU在B切片中,那么運動估計單元122可執(zhí)行針對I3U的單向幀間預測或雙向幀間預測。為了執(zhí)行PU的單向幀間預測,運動估計單元122可搜索第一參考圖片列表(“列表O”)或第二參考圖片列表(“列表I”)的參考圖片是否有PU的參考塊。運動估計單元122可輸出指示參考圖片的列表O或列表I中含有參考塊的位置的參考圖片索引、指示PU的樣本塊與參考塊之間的空間位移的運動向量以及指示參考圖片是在列表O還是列表I中的預測方向指示符,作為I3U的運動信息。
      [0116]為了執(zhí)行的雙向幀間預測,運動估計單元122可搜索列表O中的參考圖片是否有PU的參考塊,且還可搜索列表I中的參考圖片是否有PU的另一參考塊。運動估計單元122可產生指示參考圖片的列表O和列表I中含有參考塊的位置的參考圖片索引。另外,運動估計單元122可產生指示參考塊與的樣本塊之間的空間位移的運動向量。的運動信息可包含PU的參考圖片索引和運動向量。運動補償單元124可基于由PU的運動信息指示的參考塊來產生PU的預測樣本塊。
      [0117]幀內預測處理單元126可通過對PU執(zhí)行幀內預測來產生PU的預測數據。的預測數據可包含PU的預測樣本塊和各種語法元素。幀內預測處理單元126可對I切片、P切片和B切片中的PU執(zhí)行幀內預測。
      [0118]為了對PU執(zhí)行幀內預測,幀內預測處理單元126可使用多個幀內預測模式來產生PU的多個預測數據集合。為了使用幀內預測模式來產生的預測數據集合,幀內預測處理單元126可在與幀內預測模式相關聯的方向上從相鄰I3U的樣本塊延伸樣本越過I3U的樣本塊。相鄰PU可位于PU的上方、右上方、左上方或左邊,假定TO、⑶和CTB的從左到右、從上到下編碼次序。幀內預測處理單元126可使用各種數目的幀內預測模式,例如33個方向性幀內預測模式。在一些實例中,幀內預測模式的數目可取決于I3U的樣本塊的大小。
      [0119]預測處理單元100可從由幀間預測處理單元121針對產生的預測數據或由幀內預測處理單元126針對PU產生的預測數據當中選擇CU的PU的預測數據。在一些實例中,預測處理單元100基于預測數據集合的速率/失真度量來選擇CU的PU的預測數據。選定預測數據的預測樣本塊本文可稱為選定預測樣本塊。
      [0120]殘余產生單元102可基于⑶的樣本塊和⑶的I3U的選定預測樣本塊而產生⑶的殘余樣本塊。舉例來說,殘余產生單元102可產生CU的殘余樣本塊以使得殘余樣本塊中的每一樣本具有等于CU的原始樣本塊中的樣本與CU的PU的選定預測樣本塊中的對應樣本之間的差的值。
      [0121]變換處理單元104可產生⑶的一或多個TU的集合。⑶的TU中的每一者可與一亮度殘余樣本塊和兩個色度樣本塊相關聯。TU的亮度殘余樣本塊可為CU的亮度殘余樣本塊的子塊,且TU的色度殘余樣本塊可為CU的色度殘余樣本塊的子塊。TU的色度殘余樣本塊對應于圖片的與TU亮度殘余樣本塊相同的區(qū)域。變換處理單元104可執(zhí)行四叉樹分割以將CU的殘余樣本塊分割為與CU的TU相關聯的殘余樣本塊。與CU的TU相關聯的殘余樣本塊的大小和位置可基于或可不基于CU的PU的樣本塊的大小和位置。
      [0122]變換處理單元104可通過將一或多個變換應用于與TU相關聯的殘余樣本塊來產生CU的每一 TU的系數塊。變換處理單元104可將各種變換應用于與TU相關聯的殘余樣本塊。舉例來說,變換處理單元104可將離散余弦變換(DCT)、方向性變換或概念上類似的變換應用于殘余樣本塊。變換可將殘余樣本塊從像素域轉換到頻域。因此,系數塊中的系數可稱為處于特定頻率。
      [0123]量化單元106可量化系數塊中的系數。量化過程可產生與系數中的一些或全部相關聯的位深度。舉例來說,在量化期間可將η位系數下舍入到m位系數,其中η大于m。量化單元106可基于與CU相關聯的量化參數(QP)值來量化與CU的TU相關聯的系數塊。視頻編碼器20可通過調整與CU相關聯的QP值來調整應用于與CU相關聯的系數塊的量化程度。
      [0124]逆量化單元108和逆變換處理單元110可分別將逆量化和逆變換應用于系數塊以從系數塊重構殘余樣本塊。重構單元112可將經重構殘余樣本塊的樣本添加到來自由預測處理單元100產生的一或多個預測樣本塊的對應樣本以產生與TU相關聯的經重構樣本塊。通過以此方式針對⑶的每一 TU重構樣本塊,視頻編碼器20可重構⑶的樣本塊。
      [0125]濾波器單元113可執(zhí)行解塊操作以減少CU的樣本塊中的成塊假像。經解碼圖片緩沖器114可存儲經重構樣本塊。幀間預測單元121可使用含有經重構樣本塊的參考圖片來對其它圖片的PU執(zhí)行幀間預測。另外,幀內預測處理單元126可使用經解碼圖片緩沖器114中的經重構樣本塊來對在與CU相同的圖片中的其它I3U執(zhí)行幀內預測。
      [0126]熵編碼單元116可從視頻編碼器20的其它功能組件接收數據。舉例來說,熵編碼單元116可從量化單元106接收系數塊,且可從預測處理單元100接收語法元素。熵編碼單元116可對數據執(zhí)行一或多個熵編碼操作以產生經熵編碼數據。舉例來說,熵編碼單元116可對數據執(zhí)行上下文自適應可變長度譯碼(CAVLC)操作、CABAC操作、可變到可變(V2V)長度譯碼操作、基于語法的上下文自適應二進制算術譯碼(SBAC)操作、概率區(qū)間分割熵(PIPE)譯碼操作、指數哥倫布編碼操作或另一類型的熵編碼操作。視頻編碼器20可輸出包含由熵編碼單元116產生的熵編碼數據的位流。
      [0127]熵編碼單元116可將與RQT的葉節(jié)點相關聯的系數塊(即,與TU相關聯的系數塊)劃分為多個子塊。熵編碼單元116可循序地處理子塊,使得熵編碼單元116在處理子塊中的下一者之前完全處理子塊中的一者。熵編碼單元116可以反向次序在右下方子塊開始處理子塊。熵編碼單元116可以此方式處理亮度系數塊(即,從亮度殘余樣本塊推導的塊)和色度系數塊(即,從色度殘余樣本塊推導的系數塊)。
      [0128]整個內容以引用方式并入本文的阮(Nguyen)等人“Non_CEll:用于變換系數譯碼的建議清除”(文獻號,JCTVC-H0228,2011年I月20日)提出用于變換系數譯碼的不同方法。在JCTVC-H0228的提議中,使用上述相同五個語法元素。然而,當前系數的上下文鄰域用以推導sigMapFlag、grlFlag和gr2Flag的上下文以及IevelRem的哥倫布-萊斯參數。圖3中用四邊形72展示用于系數74的上下文推導的實例上下文鄰域(在對角線左下掃描的情況下)。上下文鄰域與用于sigMapFlag的譯碼的HEVC委員會草案使用的上下文鄰域相同。也可使用其它上下文鄰域。在JCTVC-H0228的提議中,用于不同語法元素的上下文推導是基于上下文鄰域中的系數的絕對等級而變。此外,在JCTVC-H0228中,替代于在五個遍次(上文提到的每一系數語法元素一個遍次)中對每一組塊進行譯碼,在繼續(xù)到下一系數之前對一個系數的所有必要系數語法元素進行譯碼。此外,JCTVC-H0228的提議提供了在一些掃描(例如4x4子塊掃描)中,兩個連續(xù)系數可屬于不同對角線。在此情況下,一個系數的上下文可取決于前一系數的實際經解碼(絕對)值。
      [0129]在JCTVC-H0228的提議中,使用上下文鄰域界定以下量。求和是對上下文鄰域中的所有系數。



      ΓI X Φ O
      [0130]num—significant—coeff = Σ (Xi),其中 4(?) - \^ ?
      ——L0 ^=0
      [0131]sum—absolute—level = Σ IxiI


      P [IjcJ-1 IjcJ > O
      [0132]sum absolute IevelMinusl = Σ δ (X1),其中 =, , _
      __[ 0 FiI = O
      [0133]在JCTVC-H0228 的提議中,sum_absolute_level 值用以推導 sigMapFlag 的上下文索引,且sum_absolute_levelMinusl值用以推導grlFlag和gr2Flag的上下文索引。上下文索引可識別譯碼上下文。
      [0134]在JCTVC-H0228 的提議中,在計算 num_significant_coeff、sum_absolute_level和 sum_absolute_levelMinusl 之后,sigMapFlag、grlFlag 和 gr2Flag 的上下文模型索引(即,分別為C。、Cl和C2)推導為:
      [0135]c0 = min(sum_absolute_level,5)
      [0136]C1 = min(sum_absolute_levelMinusl, 4)+1
      [0137]c2 = min(sum_absolute_levelMinusl, 4)+1
      [0138]JCTVC-H0228的提議可具有若干缺點。舉例來說,每一系數的需要譯碼的語法元素的數目可從一變到五。這可在譯碼過程中產生瓶頸,且可使得難以使用先行策略以便在一個循環(huán)中并行化或譯碼多個二進位。此外,在例如4x4子塊譯碼次序等一些譯碼次序中,兩個連續(xù)系數可屬于不同對角線。在此情況下,一個系數的譯碼上下文可取決于前一系數的實際經解碼值。另一缺點是對于上下文推導,鄰域中的系數的重要性以及等級信息是需要的。存儲上下文鄰域中的系數的重要性和等級信息可增加所需的存儲量。在另一實例中,經上下文譯碼的語法元素和經旁路譯碼的語法元素是交錯的,其可能不利于經旁路譯碼語法元素的并行化剖析能力。
      [0139]本發(fā)明的一或多種技術可解決JCTVC-H0228的提議的缺點。如上所述,視頻譯碼器(例如,視頻編碼器20或視頻解碼器30)通過劃分包含一或多個子集(例如,子塊或組塊)的TU來促進一個循環(huán)中(或并行地)多個二進位的處理。視頻譯碼器可隨后使用HEVC工作草案5中描述的五個譯碼遍次。然而,根據本發(fā)明的一或多種技術,sigMapFlag、grlFlag和gr2Flag的上下文推導以及語法元素IevelRem的哥倫布-萊斯參數選擇是如JCTVC-H0228中描述使用上下文鄰域來執(zhí)行。然而,不同于JCTVC-H0228的提議,上下文鄰域可包含非因果系數。
      [0140]根據本發(fā)明的一或多種技術,當熵編碼單元116處理子塊時,熵編碼單元116可執(zhí)行上述五個譯碼遍次。也就是說,熵編碼單元116可執(zhí)行第一譯碼遍次以編碼子塊的系數的sigMapFlag,執(zhí)行第二譯碼遍次以編碼子塊的系數的grlFlag,執(zhí)行第三譯碼遍次以編碼子塊的系數的gr2Flag,執(zhí)行第四譯碼遍次以編碼子塊的系數的signFlag,以及執(zhí)行第五譯碼遍次以編碼子塊的系數的levelRem。
      [0141]當熵編碼單元116執(zhí)行譯碼遍次中的任一者時,熵編碼單元116根據譯碼次序處理子塊中的系數中的每一者。譯碼次序可為反向左下對角線譯碼次序、水平譯碼次序、垂直譯碼次序或另一譯碼次序。在譯碼次序中在連續(xù)位置處發(fā)生的系數可稱為連續(xù)系數。
      [0142]在每一相應譯碼遍次期間,熵編碼單元116對在相應譯碼遍次期間產生的語法元素進行熵編碼。舉例來說,熵編碼單元116可在第一譯碼遍次期間CABAC編碼sigMapFlag,在第二譯碼遍次期間CABAC編碼grlFlag,且在第三譯碼遍次期間CABAC編碼gr2Flag。為了使用規(guī)則CABAC譯碼對系數語法元素進行編碼,熵編碼單元116可選擇系數語法元素的譯碼上下文。熵編碼單元116可通過確定上下文索引且隨后使用上下文索引查找譯碼上下文來選擇特定系數的系數語法元素的譯碼上下文。
      [0143]在一些實例中,熵編碼單元116基于當前系數的上下文鄰域中的系數的實際或估計絕對值來確定上下文索引。如果熵編碼單元116已經編碼系數的每一系數語法元素,那么熵編碼單元116可確定系數的實際絕對值。舉例來說,熵編碼單元116不需要確定在當前子塊之外的因果相鄰系數的估計絕對值,因為熵編碼單元116能夠使用這些系數的sigMapFlag、grlFlag、gr2Flag和levelRem來確定這些系數的實際絕對值。舉例來說,系數塊可包括多個子塊,且當前譯碼遍次的譯碼次序可基于子塊。在此實例中,因果系數可在子塊中與當前系數不同的一者中。
      [0144]然而,如果熵編碼單元116尚未編碼系數的每一系數語法元素,那么熵編碼單元116可不能基于系數的系數語法元素來確定系數的實際絕對值。因此,如果熵編碼單元116尚未編碼系數的每一系數語法元素,那么熵編碼單元116可確定系數的估計或實際絕對值。舉例來說,熵編碼單元116可使用特定系數的因果相鄰系數的當前優(yōu)先級系數語法元素和較低優(yōu)先級系數語法元素來確定因果相鄰系數的估計或實際絕對值。作為實例,在第3譯碼遍次中(即,當系數的gr2Flag正譯碼時),從sigMapFlag和grlFlag可推斷的最小絕對等級值用于當前系數的上下文鄰域中的系數。如果系數的sigMapFlag為0,那么系數的估計絕對值為O。如果系數的sigMapFlag為O且系數的grlFlag為O,那么估計絕對水平推斷為I。如果系數的sigMapFlag為I且系數的grlFlag為I,那么絕對水平推斷為2。因此,推斷值是基于將值O指派于至此尚未經譯碼的語法元素。對于鄰域中的因果系數,gr2Flag具有值1,因果系數的實際絕對值未知,但可估計為3。
      [0145]舉例來說,圖2的實例展示因果鄰域。因此,上下文鄰域僅包含當前語法元素(即,與當前譯碼遍次相關聯的系數語法元素)已經編碼(或解碼)的系數。然而,根據本發(fā)明的技術,視頻譯碼器(例如,視頻編碼器20或視頻解碼器30)可使用非因果鄰域(以掃描次序),如圖4的實例中所示。特定來說,對于非因果的上下文鄰域系數(即,圖4中的系數94、96和98),在上下文推導中可僅使用直到前一語法元素(即,譯碼遍次)的信息。對于因果的且屬于與當前系數的相同子塊的上下文鄰域系數,此些系數的絕對等級可從此些系數的所有系數語法元素直到當前譯碼遍次的語法元素來推斷。對于因果的且在當前系數的子塊之外的上下文鄰域系數,可使用上下文鄰域系數的實際絕對等級值。
      [0146]大體上,熵編碼單元116可針對含有系數X的子塊中的所有因果系數基于因果系數的估計(或實際)絕對值基于具有大于或等于系數語法元素Y的優(yōu)先級的優(yōu)先級的語法元素來確定系數X的系數語法元素Y的譯碼上下文。舉例來說,為了在熵編碼單元116正編碼當前系數的sigMap Flag時確定與當前系數在同一子塊中的因果相鄰系數的估計(或實際)絕對值,熵編碼單元116可確定因果相鄰系數的sigMapFlag是否等于O或I。如果因果相鄰系數的sigMapFlag等于0,那么熵編碼單元116可確定因果相鄰系數的絕對值等于O。如果因果相鄰系數的sigMapFlag等于1,那么熵編碼單元116可確定因果相鄰系數的估計絕對值等于I。
      [0147]為了在熵編碼單元116正編碼當前系數的grlFlag時確定與當前系數在同一子塊中的因果相鄰系數的估計(或實際)絕對值,熵編碼單元116可確定因果相鄰系數的sigMapFlag是否等于O或I。如果因果相鄰系數的sigMapFlag等于O,那么熵編碼單元116可確定因果相鄰系數的絕對值等于O。如果因果相鄰系數的sigMapFlag等于1,那么熵編碼單元116可確定因果相鄰系數的grlFlag是否等于O或I。如果因果相鄰系數的grlFlag等于O,那么熵編碼單元116可確定因果相鄰系數的絕對值等于I。如果因果相鄰系數的grlFlag等于1,那么熵編碼單元116可確定因果相鄰系數的估計絕對值等于2。
      [0148]為了在熵編碼單元116正編碼當前系數的gr2Flag時確定與當前系數在同一子塊中的因果相鄰系數的估計(或實際)絕對值,熵編碼單元116可確定因果相鄰系數的sigMapFlag是否等于O或I。如果因果相鄰系數的sigMapFlag等于O,那么熵編碼單元116可確定因果相鄰系數的絕對值等于O。如果因果相鄰系數的sigMapFlag等于1,那么熵編碼單元116可確定因果相鄰系數的grlFlag是否等于O或I。如果因果相鄰系數的grlFlag等于0,那么熵編碼單元116可確定因果相鄰系數的絕對值等于I。如果因果相鄰系數的grlFlag等于I,那么熵編碼單元116可確定因果相鄰系數的gr2Flag是否等于O或I。如果因果相鄰系數的gr2Flag等于0,那么熵編碼單元116可確定因果相鄰系數的絕對值等于
      2。如果因果相鄰系數的gr2Flag等于1,那么熵編碼單元116可確定因果相鄰系數的估計絕對值等于3。
      [0149]另外,熵編碼單元116可使用非因果相鄰系數的較低優(yōu)先級語法元素來確定非因果系數的估計(或實際)絕對值。也就是說,系數X的系數語法元素Y的譯碼上下文確定可針對子塊中的所有非因果系數基于估計(或實際)絕對值,其基于具有比系數語法元素Y的優(yōu)先級高的優(yōu)先級。舉例來說,熵編碼單元116可至少部分地基于在前一遍次中編碼的語法元素來確定非因果系數的估計(或實際)絕對值,至少部分地基于在當前譯碼遍次中編碼的語法元素來確定因果系數的估計(或實際)絕對值,且至少部分地基于非因果系數的估計(或實際)絕對值和因果系數的估計(或實際)絕對值來選擇語法元素的譯碼上下文。
      [0150]舉例來說,如果熵編碼單元116當前在譯碼sigMapFlag,那么熵編碼單元116可確定非因果相鄰系數的估計絕對值等于O。如果熵編碼單元116當前在譯碼grlFlag且非因果相鄰系數的sigMapFlag等于0,那么熵編碼單元116可確定非因果相鄰系數的絕對值等于O。如果熵編碼單元116當前在譯碼grlFlag且非因果相鄰系數的sigMapFlag等于I,那么熵編碼單元116可確定非因果相鄰系數的估計絕對值等于I。
      [0151]如果熵編碼單元116在編碼gr2Flag且非因果相鄰系數的sigMapFlag等于0,那么熵編碼單元116可確定非因果相鄰系數的絕對值等于O。如果熵編碼單元116在編碼gr2Flag且非因果相鄰系數的sigMapFlag等于I,且非因果相鄰系數的grlFlag等于O,那么熵編碼單元116可確定非因果相鄰系數的絕對值等于I。如果熵編碼單元116在編碼gr2Flag、非因果相鄰系數的sigMapFlag等于I,且非因果相鄰系數的grlFlag等于I,那么熵編碼單元116可確定非因果相鄰系數的估計絕對值等于2。
      [0152]在熵編碼單元116執(zhí)行第四和/或第五譯碼遍次時,熵編碼單元116可識別與系數的levelRem相關聯的哥倫布-萊斯碼。為了識別系數的系數語法元素的哥倫布-萊斯碼,熵編碼單元116可基于系數的上下文鄰域中的系數的估計或實際絕對值來選擇系數語法元素的譯碼上下文。熵編碼單元116可隨后使用選定上下文來識別系數語法元素的哥倫布-萊斯參數和哥倫布-萊斯碼。熵編碼單元116可輸出哥倫布-萊斯碼。
      [0153]如果熵編碼單元116正在對IevelRem執(zhí)行哥倫布-萊斯譯碼操作,那么熵編碼單元116不需要確定在當前子塊內的因果相鄰系數的估計絕對值,因為熵編碼單元116能夠使用這些系數的sigMapFlag、grlFlag、gr2Flag和levelRem來確定這些系數的實際絕對值。
      [0154]在一些實例中,視頻譯碼器(例如,視頻編碼器20或視頻解碼器30)基于上下文索引確定譯碼上下文。視頻譯碼器可通過計算上下文索引Ctl來計算系數的sigMapFlag的上下文索引,其中 C。= min (sum_absolute_level, 5),其中 sum_absolute_level 是系數的上下文鄰域中的系數的實際或估計絕對值的總和。換句話說,
      [0155]sum_absolute_level =Σ δ i (Xi)
      [0156]在JCTVC-H0228的提議中,系數的上下文鄰域限于因果相鄰者,如圖2和3的實例中所示。此外,在JCTVC-H0228的提議中,視頻譯碼器執(zhí)行通過每一子塊的單個遍次。在單個遍次期間,視頻譯碼器產生且編碼子塊的系數的sigMapFlag、grlFlag、gr2Flag、signFlag和LevelRem,之后處理子塊的下一系數。
      [0157]此外,在JCTVC-H0228的提議中,視頻譯碼器可計算grlFlag的上下文索引C1,其中 C1 = min(sum_absolute_levelMinusl,4)+l。為了計算 gr2Flag 的上下文索引,視頻譯碼器可計算上下文索引C2,其中c2 = min(sum_absolute_levelMinusl,4)+l。通過從sum_absolute_level 減去值 num_significant_coeff 可石角定值 sum_absolute_levelMinusl,其中num_significant_coeff等于上下文鄰域中的非零系數的數目。
      [0158]sum_absolute_levcl M i nusl = ^3|(χ;)
      [0159]在以上等式中,求和是對上下文鄰域中的所有系數。在以上等式中,在Ixi> O的情況下等于IXi 1-1且在Xi等于O的情況下等于0,其中Xi是系數i的實際或估計絕對值。視頻譯碼器可通過從sum_absolute_level減去值num_significant_coeff來確定sum_absolute_levelMinusl ο 值 num_significant_coeff 等于:
      [0160]num _significant_coeff = (Xi)
      [0161]其中
      、[I Xi 共 O
      [0162]Si(Xi) = ^
      11 [O Xi =0
      [0163]此外,如果JCTVC-H0228的提議延伸到譯碼遍次和非因果相鄰系數,那么可能對非因果相鄰系數的估計(或實際)絕對值賦予過多重要性,這可能使譯碼效率降級。舉例來說,系數的絕對值通常平均針對系數以較高頻率減小。因此,如果因果系數是重要的且具有高絕對量值,那么可能當前系數是重要的且具有高絕對量值。高絕對量值的一個實例可為3或更高。然而,此關系不適用于非因果系數。舉例來說,當前系數通常處于比非因果系數高的頻率。因此,如果非因果系數是重要的,那么當前系數重要的推斷比對于因果系數的情況弱。為此原因,熵編碼單元116可根據本發(fā)明的技術在確定譯碼上下文時不同地處理因果和非因果系數。
      [0164]舉例來說,熵編碼單元116可根據本發(fā)明的技術將不同權重應用于非因果系數的估計或實際絕對值,與在確定譯碼上下文時因果系數的實際或估計絕對值相反。換句話說,可對因果和非因果系數給出不同權重。在此實例中,應用于非因果系數(或因果系數)的權重可取決于非因果系數與當前系數之間的以在譯碼次序上的系數數目計的距離。而且,大體上,在給定系數的譯碼上下文內可對非因果系數指派比因果系數低的權重。
      [0165]根據本發(fā)明的一或多種技術,熵編碼單元116可將非因果相鄰系數的總重要性減小I。舉例來說,熵編碼單元116可維持因果和非因果系數的單獨總和。在此實例中,熵編碼單元116可通過將總數減少一來減小上下文鄰域中的總重要非因果系數的重要性。因此,如果重要的非因果系數的數目為四,那么為了計算num_SignifiCant_COeff,將重要的非因果系數的數目處理為三。也就是說,熵編碼單元116可將num_significant_coeff計算為:
      r\
      [0166]num_significant_coeff = 工 (Ii(Xi) -1 + ^ Cli(Xi)
      \ non-causalJ causal
      [0167]熵編碼單元116可通過如下計算來確定sum_absolute_levelMinusl:
      [0168]sum_absolute_level-num_significant_coeff
      [0169]熵編碼單元116可將grlFlag或gr2Flag的上下文索引確定為sum_absolute_IevelMinusl 和 4 中的較小者。對例如 sum_absolute_level 和 sum_absolute_levelMinusl等其它值的計算可做出相似修改。替代于減小一,熵編碼單元116可將其它調整應用于上下文鄰域中的非因果系數的上下文推導計算。舉例來說,在其它實例中,熵編碼單元116可將重要的非因果相鄰系數的數目減少除了 I之外的值,例如2、3、4等等。應用于重要的非因果上下文鄰域系數的數目的調整越高,非因果系數的有效權重越低。以此方式,熵編碼單元116可應用公式以基于一或多個非因果系數的估計或實際絕對值以及一或多個因果系數的估計絕對值來確定索引,其中所述公式將加權值應用于所述一或多個非因果系數的估計或實際絕對值或所述一或多個因果系數的估計或實際絕對值。熵編碼單元116可至少部分地基于所述索弓I來選擇語法元素的譯碼上下文。
      [0170]在其它實例中,熵編碼單元116可以除了上述方式之外的方式確定sigMapFlag、grlFlag和gr2Flag的上下文索引。舉例來說,熵編碼單元116可基于具有大于I的絕對值的上下文鄰域系數的數目來確定grlFlag的上下文索引。在另一實例中,熵編碼單元116可使用grlFlag的譯碼上下文的兩個集合。在此實例中,熵編碼單元116可在不存在具有大于I的絕對值的上下文鄰域系數的情況下使用grlFlag的上下文索引的第一集合。此外,在此實例中,熵編碼單元116可在存在具有大于I的絕對值的一或多個上下文鄰域系數的情況下使用grlFlag的上下文索引的第二集合。在此實例中,熵編碼單元116可將進入譯碼上下文的第一或第二集合的上下文索引確定為等于sum_absolute_levelMinusl或4中的較小者。以此方式,熵編碼單元116可基于當前系數的上下文鄰域中有多少系數具有大于
      I的絕對值來選擇grlFlag的上下文索引。在其它實例中,熵編碼單元116可使用grlFlag的譯碼上下文的兩個以上集合。相似地,熵編碼單元116可使用sigMapFlag和gr2Flag的譯碼上下文的多個集合。在另一實例中,熵編碼單元116可基于具有大于I和大于2的絕對值的相鄰系數的數目來確定sigMapFlag的上下文索引。
      [0171]熵編碼單元116可存儲系數的絕對值以便計算如上文界定的上下文索引C(l、C1和C2O根據CrC1和C2的定義,如果sum_absolute_level大于4,那么Ctl的值封頂于5。相似地,如果sum_absolute_levelMinusl大于3,那么C1和C2的值封頂于4。因此,替代于存儲每一系數的絕對等級值,將絕對等級值截斷為三個位同時針對C(l、C1和C2產生相同值是足夠的。因此,根據本發(fā)明的技術,替代于存儲每一系數的絕對值,熵編碼單元116可將系數的絕對值修剪(例如,截斷)到7(3個位)同時針對(^、(^和C2產生相同值。此外,在一些實例中,熵編碼單元116可將系數的絕對值修剪到3(2個位)。以此方式,熵編碼單元116可將非因果系數的估計(或實際)絕對值修剪到3 (兩個位)或7(三個位),將因果系數的估計絕對值截斷到3 (兩個位)或7 (三個位),且至少部分地基于非因果和因果系數的經修剪估計(或實際)絕對值來選擇語法元素的譯碼上下文。然而,在熵編碼單元116將系數的絕對值修剪到3 (2個位)的實例中,C0, C1和C2的值可能受影響。
      [0172]在一些實例中,熵編碼單元116可在單個譯碼遍次期間對子塊的多個系數的系數語法元素進行編碼。熵編碼單元116可以各種方式實現此情形。根據第一實例方法,熵編碼單元116可在每一譯碼遍次內并行地處理多達η個連續(xù)系數,其中η是大于零的數。舉例來說,熵編碼單元116可并行地處理多達四個連續(xù)系數。如果熵編碼單元116當前正在處理當前系數,那么熵編碼單元116不可存取與另一系數相關聯的語法元素(如果所述語法元素與當前譯碼遍次相關聯,另一系數是η個連續(xù)系數的群組的成員,且另一系數和當前系數在同一子塊內)。換句話說,強加的約束是當前系數的上下文推導不可取決于來自需要并行上下文推導的其它系數的信息。在此些條件下阻止熵編碼單元116存取語法元素可促進并行性。根據本發(fā)明的一或多種技術,使用“孔”和“部分孔”的概念來實現多個二進位的并行上下文推導。
      [0173]當熵編碼單元116不能使用系數的當前優(yōu)先級語法元素來選擇用于對當前系數的當前優(yōu)先級語法元素進行譯碼的上下文時,因果系數可稱為“孔”。當前優(yōu)先級語法元素是在熵編碼單元116當前正在執(zhí)行的譯碼遍次期間處理的語法元素。在一些實例中,孔的位置從不會在含有當前系數的4x4子塊之外。
      [0174]因為熵編碼單元116不存取孔的當前優(yōu)先級語法元素,所以熵編碼單元116可能不能使用孔的當前優(yōu)先級語法元素來確定孔的實際或估計絕對值。因為熵編碼單元116可能不能確定孔的實際絕對值,所以熵編碼單元116可能不能使用孔的實際絕對值來選擇用于對當前系數的語法元素進行CABAC或哥倫布-萊斯譯碼的上下文。下文詳細論述的圖1OA到1G圖解說明當例如熵編碼單元116等熵譯碼單元在譯碼遍次期間并行地處理四個系數時4x4子塊中的系數的上下文鄰域中的孔的實例位置。
      [0175]因此,熵編碼單元116可確定孔的估計(或實際)絕對值。在一些實例中,熵編碼單元116可總是確定孔的絕對值等于零或另一預定義值。換句話說,熵編碼單元116可將因果系數的絕對值確定為等于預定義值。舉例來說,熵編碼單元116可對于孔位置使用固定絕對等級值。此外,在此實例中,如果熵編碼單元116將四個二進位并行性用于4x4子塊掃描,那么引入孔以使得如果來自同一子塊的掃描次序中的先前三個系數中的任一者屬于當前系數的上下文鄰域,那么將先前三個系數假定為具有絕對值O以用于上下文推導目的。
      [0176]在另一實例中,替代于假定孔處的系數不重要(即,等于O),熵編碼單元116可使用用于另一系數的絕對等級值。也就是說,當熵編碼單元116正在選擇特定系數的系數語法元素的譯碼上下文時,熵編碼單元116可使用另一系數的實際或估計絕對值作為特定系數的上下文鄰域中的孔的絕對值。此另一系數可在特定系數的上下文鄰域內。在其它實例中,熵編碼單元116可修改特定系數的上下文鄰域以排除孔且包含處于原始上下文鄰域之外的另一系數。在一些實例中,所述另一系數可為孔的右邊的系數。因此,對于上下文推導,右邊的系數被計數兩次。
      [0177]在其它實例中,熵編碼單元116可至少部分地基于孔的較高優(yōu)先級語法元素來確定孔的絕對值。在此些實例中,孔可稱為“部分孔”。此外,在此些實例中,熵編碼單元116可確定孔的絕對值,如同所述孔的當前和較低優(yōu)先級系數語法元素等于O。舉例來說,如果熵編碼單元116正在選擇特定系數的gr2Flag的譯碼上下文,那么熵編碼單元116可基于孔的sigMapFlag和(如果存在)grlFlag來確定特定系數的上下文鄰域中的孔的絕對值。此外,在此實例中,如果熵編碼單元116正在編碼特定系數的gr2Flag,那么熵編碼單元116可確定孔的絕對值,如同所述孔的gr2Flag和IevelRem等于O。
      [0178]在熵編碼單元116基于孔的較高優(yōu)先級系數語法元素確定孔的絕對值的另一實例中,熵編碼單元116可部分地基于鄰近于孔(例如,在右邊)的系數的當前優(yōu)先級系數語法元素來確定孔的絕對值。換句話說,熵編碼單元116可將因果系數的絕對值確定為等于鄰近于因果系數的系數的絕對值。舉例來說,如果熵編碼單元116正在編碼特定系數的gr2Flag,那么熵編碼單元116可基于孔的sigMapFlag、孔的grlFlag和鄰近于孔的系數的gr2Flag來確定特定系數的上下文鄰域中的孔的絕對值。鄰近于孔的系數可在特定系數的上下文鄰域之外。在一些實例中,鄰近于孔的系數可在含有特定系數的子塊之外。
      [0179]熵編碼單元116可使用當前系數的上下文鄰域中的系數的絕對值來選擇當前系數的語法元素的CABAC或哥倫布-萊斯譯碼的上下文。因此,熵編碼單元116可響應于確定相鄰系數根據譯碼次序屬于η個連續(xù)位置的群組而確定相鄰系數的絕對值。
      [0180]在熵編碼單元116在譯碼遍次期間并行地確定η個系數語法元素的譯碼上下文的其它實例中,熵編碼單元116可將子塊的系數劃分為η個系數的群組。舉例來說,如果熵編碼單元116并行地確定四個系數語法元素的譯碼上下文,那么熵編碼單元116可將子塊劃分為四個系數的群組。在一些實例中,群組可包含少于η個系數。通常,包含少于η個系數的群組是子塊中的系數的最后群組。系數的上下文鄰域經界定以使得對于子塊中的每一系數,系數的上下文鄰域不包含與所述系數在同一群組中的系數。下文詳細描述的圖1lA到IlF是圖解說明系數塊的4x4子塊中的系數的實例群組的概念圖。
      [0181]在如先前段落中編碼單元116將子塊的系數劃分為η個系數的群組的實例中,系數的上下文鄰域可包含孔。熵譯碼單元116可根據上述技術中的任一者確定孔的絕對值。舉例來說,當熵譯碼單元116正在選擇特定系數的系數語法元素的譯碼上下文時,熵譯碼單元116可基于可在或可不在所述特定系數的上下文鄰域中的另一系數的實際或估計絕對值來確定孔的絕對值。也就是說,可修改上下文鄰域以包含原始曾處于特定系數的上下文鄰域中的系數。在另一實例中,當熵編碼單元116正在選擇特定系數的系數語法元素的譯碼上下文時,熵譯碼單元116可基于孔的較高優(yōu)先級系數語法元素和假定為等于O的孔的當前和較低優(yōu)先級系數語法元素來確定孔的絕對值。
      [0182]此外,在熵編碼單元116將子塊的系數劃分為η個系數的群組的一些實例中,系數的上下文鄰域可包含少于五個系數。在此些實例中,熵編碼單元116可使用sum_absolute_level、sum_absolute_level_Minusl 和 num_significant_coeff 的經調整值來確定上下文索引。舉例來說,熵編碼單兀 116 可將 sum_absolute_level、sum_absolute_level_Minusl和num_significant_coeff按比例縮放特定縮放因數。在此實例中,如果特定系數的上下文鄰域具有一個孔,那么熵編碼單兀116可將sum_absolute_level、sum_absolute_level_Minusl和num_significant_coeff按比例縮放因數5/4。在一些實例中,熵編碼單兀 116 可使用查找表來實施 sum_absolute_level、sum_absolute_level_Minusl 和 num_significant_coeff的按比例縮放。
      [0183]在其它實例中,熵編碼單元116將系數塊的每一子塊劃分為系數群組。在一些實例中,系數群組中的每一者可包含η個系數,可能除了系數的最后群組。下文詳細描述的圖12是圖解說明系數塊的4x4子塊內的系數的另一實例分組的概念圖。在此些實例中,熵編碼單元116處理群組內的系數的所有系數語法元素,之后處理下一群組中的系數的任一系數語法元素。也就是說,替代于執(zhí)行整個子塊的一個譯碼遍次之后執(zhí)行整個子塊的下一譯碼遍次,熵編碼單元116可執(zhí)行子塊中的系數群組的全部五個譯碼遍次,之后執(zhí)行子塊中的下一系數群組的五個譯碼遍次。因此,在群組內,熵編碼單元116執(zhí)行全部五個譯碼遍次。
      [0184]在先前段落的實例中,熵編碼單元116可以與上文實例中描述的方式相同的方式確定系數的上下文鄰域中的孔的絕對值。然而,在先前段落的實例中,熵編碼單元116可能夠確定較多系數的實際絕對值,與系數的估計絕對值相反。
      [0185]在一些實例中,可用于對系數語法元素進行熵譯碼的譯碼上下文可劃分為上下文集合。上下文集合中的每一者可包含多個譯碼上下文。為了選擇特定語法元素的譯碼上下文,熵編碼單元116可確定特定系數語法元素的上下文集合索引且確定特定系數語法元素的上下文索引。所確定上下文索引指示由所確定上下文集合索引指示的上下文集合中的譯碼上下文。
      [0186]在一個實例中,熵編碼單元116使用基于位置的上下文建模用于4x4和8x8TU中的系數的sigMapFlag。在基于位置的上下文建模中,熵編碼單元116至少部分地基于系數塊內特定系數的位置來選擇特定系數的譯碼上下文。在此實例中,在表集合中界定sigMapFlag的上下文索引。表可對應于不同的上下文集合??纱嬖谌齻€表,一個用于4x4亮度系數塊,一個用于4x4色度系數塊,且一個用于8x8亮度或色度系數塊。亮度系數塊是從亮度樣本塊推導的系數塊。色度系數塊是從色度樣本塊推導的系數塊。此外,熵編碼單元116可使用基于位置的上下文建模和基于模板的上下文建模的混合用于較大系數塊,例如16x16和32x32系數塊。對于此些較大系數塊中的系數,熵編碼單元116可使用單個譯碼上下文用于處于較高頻率的系數(即,較靠近系數塊的右下角的系數)的sigMapFlag。對于此些較大系數塊中的其它系數,熵編碼單元116可基于系數的上下文鄰域中的系數是否等于O來選擇譯碼上下文。換句話說,熵編碼單元116可使用特定低頻系數的上下文鄰域中的系數的重要性來確定特定系數的sigMapFlag的譯碼上下文。
      [0187]在一個實例中,熵編碼單元116使用四個上下文集合用于對亮度系數塊中的系數的grlFlag進行熵編碼,且使用兩個上下文集合用于對色度系數塊中的系數的grlFlag進行熵編碼。在此實例中,熵編碼單元116可基于系數塊內特定系數的位置且還基于系數的先前經譯碼群組中等于I的grlFlag的數目(numGreaterl)來確定特定系數的grlFlag的上下文集合索引。在此實例中,熵編碼單元116可基于特定系數的上下文鄰域中的拖尾一(即,grlFlag等于O)的數目(最大值為三)來確定上下文集合內的上下文索引(ctxldx_level_greaterl) 0舉例來說,熵編碼單元116可將上下文索引確定為:
      [0188]ctxldx_level_greaterl = (ctxSet*4)+min(3,拖尾一的數目)
      [0189]在一些實例中,熵編碼單元116使用四個上下文集合用于對亮度系數塊中的系數的gr2Flag進行熵編碼,且使用兩個上下文集合用于對色度系數塊中的系數的grlFlag進行熵編碼。熵編碼單元116可基于系數塊內特定系數的位置以及系數的先前經譯碼群組中等于I的grlFlag的數目(numGreaterl)來確定特定系數的gr2Flag的上下文集合索引。gr2Flag的上下文索引可等于gr2Flag的上下文集合索引。
      [0190]在另一實例中,存在用于對亮度系數塊的系數語法元素進行熵譯碼的三個上下文集合以及用于對色度系數塊的系數語法元素進行熵譯碼的兩個上下文集合。在此實例中,在用于對sigMapFlag進行熵編碼的上下文集合中的每一者中存在六個譯碼上下文。換句話說,對于亮度系數塊的系數的sigMapFlag,可存在三個上下文集合,各自包含六個譯碼上下文。對于色度系數塊的系數的sigMapFlag,可存在兩個上下文集合,各自包含六個譯碼上下文。此外,在此實例中,在用于對grlFlag和gr2Flag進行熵編碼的上下文集合中的每一者中存在五個譯碼上下文。
      [0191]在先前段落的實例中,熵編碼單元116可基于特定系數的系數塊內的位置確定上下文集合索引(ctX_set_idX),其指示包含用于對特定系數的系數語法元素進行熵編碼的選定譯碼上下文的上下文集合。在此實例中,熵編碼單元116可將上下文集合索引確定為:
      [0192]ctx_set_idx = (posX < 2&&posY < 2) ? O: (LUMA ? ((posX < 4&&posY < 4) ?
      I:2):1
      [0193]在以上等式中,posX和posY分別指示特定系數的系數塊內的列和行。在以上等式中,如果posX小于2且posY小于2,那么ctx_set_idx等于O。此外,在以上等式中,如果posX不小于2或posY不小于2,且系數塊不是亮度系數塊,那么ctx_set_idx等于I。在以上等式中,如果PosX或posY任一者不小于2,系數塊是亮度系數塊,且posX和posY均小于
      4,那么ctx_set_idx等于I。在以上等式中,如果系數塊是亮度系數塊,且posX或posY任一者不小于4,那么ctx_set_idx等于2。在此實例中,熵編碼單元116可根據本發(fā)明中別處描述的實例中的一或多者來確定上下文索引。
      [0194]在熵編碼單元116可使用上下文集合的另一實例中,可存在對亮度系數塊的系數語法元素進行熵譯碼的三個上下文集合。此外,在此實例中,可存在用于對色度系數塊中的系數的sigMapFlag進行編碼的兩個上下文集合,且可存在用于對色度系數塊中的系數的grlFlag和gr2Flag進行編碼的一個上下文集合。用于對亮度和色度系數塊中的系數的sigMapFlag進行編碼的上下文集合中的每一者可包含六個譯碼上下文。用于對亮度和色度系數塊中的系數的grlFlag和gr2Flag進行編碼的上下文集合中的每一者可包含五個譯碼上下文。在此實例中,熵編碼單元116可使用以下等式確定亮度系數塊的系數語法元素的上下文集合索引(ctx_set_idx):
      [0195]ctx_set_idx = (posX < 4&&posY < 4) ? ((posX < 2&&posY < 2) ? 2:1):0
      [0196]在以上等式中,posX和posY分別指示特定系數的系數塊內的列和行。此外,在以上等式中,如果posX或posY任一者不小于4,那么ctx_set_idx等于O。在以上等式中,如果posX和posY均小于4且posX或posX任一者不小于2,那么ctx_set_idx等于I。在以上等式中,如果PosX和posY均小于2,那么ctx_set_idx等于2。
      [0197]在先前段落的實例中,熵編碼單元116可使用以下等式確定色度系數塊的系數的sigMapFlag的上下文集合索引(ctx_set_idx):
      [0198]ctx_set_idx = (posX < 2&&posY < 2) ? 1:0
      [0199]在以上等式中,posX和posY分別指示特定系數的系數塊內的列和行。此外,在以上等式中,如果posX和posY均小于2,那么ctx_set_idx等于I。如果posX或posY任一者大于或等于2,那么CtX_set_idX等于O。在此實例中,熵編碼單元116可根據本發(fā)明中別處描述的實例中的一或多者來確定上下文索引。
      [0200]圖6是圖解說明經配置以實施本發(fā)明的技術的實例性視頻解碼器30的框圖。圖6是為了闡釋目的而提供,且不限制如本發(fā)明中廣義地例示和描述的技術。為了闡釋的目的,本發(fā)明在HEVC譯碼的上下文中描述視頻解碼器30。然而,本發(fā)明的技術可適用于其它譯碼標準或方法。
      [0201]在圖6的實例中,視頻解碼器30包含熵解碼單元150、預測處理單元152、逆量化單元154、逆變換處理單元156、重構單元158、濾波器單元159,以及經解碼圖片緩沖器160。預測處理單元152包含運動補償單元162和幀內預測處理單元164。在其它實例中,視頻解碼器30可包含較多、較少或不同功能組件。
      [0202]視頻解碼器30接收位流。熵解碼單元150可剖析位流以從位流提取語法元素。預測處理單元152、逆量化單元154、逆變換處理單元156、重構單元158以及濾波器單元159可基于從位流提取的語法元素來產生經解碼視頻數據。
      [0203]作為剖析位流的部分,熵解碼單元150可對位流中的經熵編碼語法元素進行熵解碼。舉例來說,熵解碼單元150可對例如系數塊中的系數的sigMapFlag、grlFlag和gr2Flag等一些語法元素執(zhí)行規(guī)則CABAC解碼。而且,熵解碼單元150可對例如系數塊中的系數的signFlag和IevelRem等其它語法元素執(zhí)行旁路熵解碼。
      [0204]當熵解碼單元150對例如sigMapFlag、grlFlag或gr2Flag等系數語法元素執(zhí)行規(guī)則CABAC解碼時,熵解碼單元150可選擇系數語法元素的譯碼上下文。熵解碼單元150可根據上文關于熵編碼單元116選擇系數語法元素描述的實例中的任一者和其它實例來選擇系數語法元素的譯碼上下文。
      [0205]另外,視頻解碼器30可對未經分割⑶執(zhí)行重構操作。為了對未經分割⑶執(zhí)行重構操作,視頻解碼器30可對⑶的每一 TU執(zhí)行重構操作。通過對⑶的每一 TU執(zhí)行重構操作,視頻解碼器30可重構與CU相關聯的殘余樣本塊。
      [0206]作為對CU的TU執(zhí)行重構操作的部分,逆量化單元154可對與TU相關聯的系數塊進行逆量化,即解量化。逆量化單元154可使用與TU的CU相關聯的QP值來確定量化程度,且同樣確定逆量化單元154將應用的逆量化程度。
      [0207]在逆量化單元154逆量化系數塊之后,逆變換處理單元156可將一或多個逆變換應用于系數塊以便產生與TU相關聯的殘余樣本塊。舉例來說,逆變換處理單元156可將逆DCT、逆整數變換、逆卡忽南-拉維(Karhunen-Loeve)變換(KLT)、逆旋轉變換、逆方向性變換或另一逆變換應用于系數塊。
      [0208]如果是使用幀內預測編碼的,那么幀內預測處理單元164可執(zhí)行幀內預測以產生PU的預測樣本塊。幀內預測處理單元164可使用幀內預測模式來基于空間相鄰的樣本塊而產生PU的預測樣本塊。幀內預測處理單元164可基于從位流剖析的一或多個語法元素來確定I3U的幀內預測模式。
      [0209]運動補償單元162可基于從位流提取的語法元素構造第一參考圖片列表(列表0)和第二參考圖片列表(列表I)。此外,如果使用幀間預測對PU進行編碼,那么熵解碼單元150可提取PU的運動信息。運動補償單元162可基于PU的運動信息來確定的一或多個參考塊。運動補償單元162可基于PU的一或多個參考塊來產生的預測樣本塊。
      [0210]重構單元158可在適用時使用與⑶的TU相關聯的殘余樣本塊和⑶的I3U的預測樣本塊(即,幀內預測數據或幀間預測數據)來重構⑶的樣本塊。特定來說,重構單元158可將殘余樣本塊的樣本添加到預測樣本塊的對應樣本以重構CU的樣本塊。
      [0211 ] 濾波器單元159可執(zhí)行解塊操作以減少與CTB的CU的樣本塊相關聯的成塊假像。視頻解碼器30可將CU的樣本塊存儲在經解碼圖片緩沖器160中。經解碼圖片緩沖器160可提供參考圖片以用于后續(xù)運動補償、幀內預測以及在例如圖1的顯示裝置32等顯示裝置上的呈現。舉例來說,視頻解碼器30可基于經解碼圖片緩沖器160中的樣本塊來對其它CU的PU執(zhí)行幀內預測或幀間預測操作。
      [0212]圖7是圖解說明根據本發(fā)明的一或多種技術的用于對視頻數據進行編碼的視頻編碼器20的實例操作200的流程圖。提供圖7作為實例。在其它實例中,可使用比圖7的實例中所示的步驟多、少或不同的步驟來實施本發(fā)明的技術。
      [0213]在圖7的實例中,變換處理單元104可基于殘余樣本塊產生系數塊(202)。如上所述,變換處理單元104可通過將例如離散余弦變換等一或多個變換應用于殘余樣本塊來產生系數塊。在某些情況下,變換處理單元104不將變換應用于殘余樣本塊,而是可跳過變換的應用。雖然圖7的實例中未圖示,但量化單元106可量化系數塊中的系數。
      [0214]熵編碼單元116可在系數塊的系數的第一譯碼遍次期間編碼對應于系數塊的系數的語法元素的第一集合(204)。舉例來說,熵編碼單元116可執(zhí)行系數塊的子塊中的系數的譯碼遍次以編碼子塊中的系數的sigMapFlag、grlFlag、gr2Flag、signFlag和levelRem。當熵編碼單元116對語法元素的第一集合進行編碼時,熵編碼單元116可對于子塊中的每一系數產生系數語法元素。如果系數語法元素經上下文譯碼,那么熵編碼單元116可選擇系數語法元素的譯碼上下文,且使用選定熵譯碼上下文來對系數語法元素進行熵編碼。否貝IJ,熵編碼單元116可對系數語法元素進行旁路編碼。
      [0215]此外,熵編碼單元116可在系數塊的系數的第二譯碼遍次期間編碼對應于系數塊的系數的語法元素的第二集合(206)。舉例來說,熵編碼單元116可在第一譯碼遍次期間編碼sigMapFlag,在第二譯碼遍次期間編碼grlFlag。
      [0216]當熵編碼單元116在第二譯碼遍次期間編碼語法元素時,熵編碼單元116可產生語法元素(208)。所述語法元素可在語法元素的第二集合中且可對應于系數塊的當前系數。此外,熵編碼單元116選擇語法元素的譯碼上下文(210)。根據本發(fā)明的技術,熵編碼單元116可至少部分地基于第二語法元素和第三語法元素來選擇語法元素的譯碼上下文。第二語法元素可在語法元素的第一集合中且可對應于非因果系數。舉例來說,第二語法元素可為非因果系數的較高優(yōu)先級語法元素。第三語法元素在語法元素的第二集合中且對應于因果系數。舉例來說,如果第一語法元素是gr2Flag,那么第二語法元素可為grlFlag或sigMapFlag,且第三語法元素可為gr2Flag。非因果系數在當前(例如,第二)譯碼遍次的譯碼次序中在當前系數之后發(fā)生。因果系數在譯碼次序中在當前系數之前發(fā)生。
      [0217]在選擇語法元素的譯碼上下文之后,熵編碼單元116可至少部分地基于為第一語法元素選擇的譯碼上下文來對語法元素進行熵編碼(212)。舉例來說,熵編碼單元116可使用規(guī)則CABAC編碼來對語法元素進行編碼。
      [0218]圖8是圖解說明根據本發(fā)明的一或多種技術的用于對視頻數據進行解碼的視頻解碼器30的實例操作250的流程圖。如圖8的實例中說明,熵解碼單元150在系數塊的系數的第一譯碼遍次期間解碼對應于系數塊的系數的語法元素的第一集合(252)。另外,熵解碼單元150在系數塊的系數的第二譯碼遍次期間解碼對應于系數塊的系數的語法元素的第二集合(254)。
      [0219]當熵解碼單元150在第二譯碼遍次期間解碼當前語法元素時,熵解碼單元150可至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文(256)。第二語法元素在語法元素的第一集合中且對應于非因果系數。第三語法元素在語法元素的第二集合中且對應于因果系數。非因果系數在當前(第二)譯碼遍次的譯碼次序中在當前系數之后發(fā)生。因果系數在譯碼次序中在當前系數之前發(fā)生。在選擇當前語法元素的譯碼上下文之后,熵解碼單元150可至少部分地基于為當前語法元素選擇的譯碼上下文來對當前語法元素進行熵解碼(258)。舉例來說,熵解碼單元150可使用規(guī)則CABAC解碼來對當前語法元素進行解碼。
      [0220]熵解碼單元150可至少部分地基于系數的語法元素的第一和第二集合來確定系數塊中的系數的值(260)。逆量化單元154和逆變換處理單元156可基于系數塊的系數來產生殘余樣本塊(262)。隨后,重構單元158可將殘余樣本塊中的樣本添加到預測樣本塊中的對應樣本以重構I3U的樣本塊。
      [0221]圖9A是圖解說明實例4x4子塊300的概念圖。圖9B到9G是圖解說明圖9A的子塊300中的系數的上下文鄰域中的實例孔的概念圖。圖9A到9G中的圓對應于子塊中的系數。圖9A中的圓具有各種類型的交叉影線。圖9A中的圓的交叉影線的類型指示圖9B到9G中的哪一上下文鄰域適用于對應于圓的系數。舉例來說,圖9A中具有水平交叉影線的圓具有圖9B中所示類型的上下文鄰域。圖9A中具有垂直交叉影線的圓具有圖9C中所示類型的上下文鄰域。圖9A中具有右下對角線交叉影線的圓具有圖9D中所示類型的上下文鄰域。圖9A中具有右上對角線交叉影線的圓具有圖9E中所示類型的上下文鄰域。圖9A中具有柵格交叉影線的圓具有圖9F中所示類型的上下文鄰域。圖9A中具有對角線交叉交叉影線的圓具有圖9G中所示類型的上下文鄰域。
      [0222]在圖9B到9G中,白色填充的圓對應于孔,且黑色填充的圓對應于并非孔的系數。在一些實例中,熵譯碼單元(例如熵編碼單元116或熵解碼單元150)可不能存取“孔”的當前優(yōu)先級系數語法元素,因為熵譯碼單元可與當前系數并行地處理孔。如圖9G中所示,對于圖9A中具有對角線交叉交叉影線的圓,不使用孔??椎奈恢每刹辉诋斍?x4子塊之外,因為在當前4x4子塊之外的系數可屬于先前組塊且所述組塊的所有系數語法元素可用。在圖9A到9G的實例中,假定熵譯碼單元在譯碼遍次期間并行地編碼四個系數。雖然圖9A到9G的實例假定4 二進位并行性,但可使用相似技術來實現η 二進位并行性,其中η > I。
      [0223]雖然圖9Α到9Ε已描述了相對于4x4子塊譯碼次序使用孔,但熵譯碼單元可將孔應用于其它譯碼次序,例如水平、垂直等等。因此,大體上,為了實現針對η個二進位的并行上下文推導,如果系數的上下文鄰域含有譯碼次序中屬于與當前系數相同的子塊的先前(η-1)個系數中的任一者,那么用孔或如上所述的其它系數代替先前(η-1)個系數。使用孔的一個優(yōu)點是如果熵譯碼單元是針對η 二進位并行性設計,那么只要m ( n,熵譯碼單元便可用于m二進位并行性。為了考慮并行性的設計程度與所實施程度之間的差異,上下文鄰域的再設計可能不是必要的。
      [0224]下文詳細描述的圖1OA到1F是圖解說明系數塊的4x4子塊350中的系數的實例群組的概念圖。圖1OA到1F中的圓對應于子塊中的系數。在圖1OA中,系數周圍的形狀352A到352D指示系數的實例群組。在圖1OA到1F的實例中,假定熵譯碼單元(例如,熵編碼單元116或熵解碼單元150)并行地處理子塊350的四個系數。雖然圖1OA到1F的實例假定4 二進位并行性,但可修改圖1OA到1F的實例以用于并行地處理其它數目的系數,即η 二進位并行性,其中η大于I。此外,在圖1OA到1F的實例中,假定熵譯碼單元根據4x4子塊左下譯碼次序處理系數。圖1OA到1F的實例可針對其它譯碼次序修改,例如水平譯碼次序、垂直譯碼次序等等。
      [0225]圖1OB到1F圖解說明系數的示范性上下文鄰域。圖1OA中的圓具有各種類型的交叉影線。圖1OA中的圓的交叉影線的類型指示圖1OB到1F中的哪一類型的上下文鄰域適用于對應于圓的系數。舉例來說,圖1OA中具有垂直交叉影線的圓具有圖1OB中所示類型的上下文鄰域。圖1OA中具有水平交叉影線的圓具有圖1OC中所示類型的上下文鄰域。圖1OA中具有對角線交叉影線的圓具有圖1OD中所示類型的上下文鄰域。圖1OA中具有柵格交叉影線的圓具有圖1OE中所示類型的上下文鄰域。圖1OA中具有對角線交叉交叉影線的圓具有圖1OF中所示類型的上下文鄰域。
      [0226]在圖1OB到1F中,白色填充的圓對應于孔,且黑色填充的圓對應于并非孔的系數。然而,如果圖1OB到1F指示上下文鄰域中的系數是孔且系數在子塊350之外,那么系數的每一系數語法元素可用,且熵譯碼單元可基于系數的系數語法元素確定系數的實際絕對值。
      [0227]在一些實例中,熵譯碼單元可針對四個系數的群組完成所有譯碼遍次,之后繼續(xù)到下一系數群組。因此,當熵譯碼單元對下一系數群組進行譯碼時,初始系數群組中的系數的實際絕對值可用。舉例來說,熵譯碼單元可在對群組352C中的任何系數語法元素進行譯碼之前對群組 352D 中的每一系數的 sigMapFlag、grlFlag、gr2Flag、signFlag 和 IevelRem進行譯碼。因此,當對群組352C中的系數的系數語法元素進行譯碼時,群組352D中的系數的實際絕對值可用。
      [0228]比較圖9A到9G與圖1OA到10F,顯然在圖1OA到1F中存在較多系數具有不帶孔的上下文鄰域。然而,在圖1OA到1F的實例中,如果群組包含η個系數,那么僅在m小于或等于η且m可被η整除的情況下m 二進位并行性(即,并行地處理m個系數語法元素的能力)是可能的。舉例來說,如果群組各自包含四個系數,那么熵譯碼單元可僅并行地處理四個或兩個系數語法元素。
      [0229]圖11是圖解說明系數塊的4x4子塊400內的系數的另一實例分組的概念圖。在圖11的實例中,每一圓對應于子塊400中的系數。橢圓形402A到402G指示子塊400內的系數的群組。不同于上文描述的圖1OA到1G的實例,在圖11的實例中,例如熵編碼單元116或熵解碼單元150等熵譯碼單元可對系數群組執(zhí)行全部五個譯碼遍次,之后對下一系數群組的系數執(zhí)行任何譯碼遍次。為此原因,當熵譯碼單元選擇群組中的系數語法元素的譯碼上下文時,熵譯碼單元可確定先前經處理群組中的系數的實際絕對值。
      [0230]除了上述JCTVC-H0228的提議的缺點之外,JCTVC-H0228的提議可能需要視頻譯碼器交錯CABAC譯碼語法元素和旁路譯碼語法元素的譯碼。這是因為JCTVC-H0228的提議要求對系數的sigMapFlag、grlFlag、gr2Flag、signFlag和levelRem進行譯碼,之后對下一系數進行譯碼。通常,sigMapFlag>grlFlag和gr2Flag經CABAC譯碼,而signFlag和levelRem經旁路譯碼。交錯CABAC譯碼語法元素和旁路譯碼語法元素的譯碼可降低譯碼效率。另外,JCTVC-H0228的提議可需要視頻譯碼器存儲特定系數的系數鄰域中的系數的整個絕對值以便選擇特定系數的譯碼上下文。存儲系數的整個絕對值可顯著增加視頻譯碼器所需的存儲。
      [0231]根據本發(fā)明的一或多種技術,為了促進旁路譯碼語法元素的并行化剖析能力,可將每一 TU劃分為一或多個子集。在一些實例中,每一子集主要使用兩個遍次來譯碼:一個遍次用于上下文譯碼語法元素,且另一遍次用于旁路譯碼語法元素。上下文譯碼語法元素可為sigMapFlag、grlFlag和gr2Flag,且旁路譯碼語法兀素可為signFlag和levelRem。在上下文譯碼語法元素遍次中,對一個系數的grlFlag和gr2Flag (如果可用)進行編碼/解碼,之后繼續(xù)到接下來的系數。也可以分離的遍次來處理SignFlag和levelRem。在此實例中,在每一組塊中應用三個譯碼遍次。上述兩個或三個譯碼遍次實例也可應用于整個TU中的系數譯碼。
      [0232]如先前提到,通過使用JCTVC-H0228的提議對sigMapFlag、grlFlag和gr2Flag語法元素的上下文模型選擇可能需要絕對等級值的存儲。在本發(fā)明的單獨譯碼遍次技術中,已經編碼(或解碼)的語法元素可用于上下文模型選擇。通過此邏輯,當推導系數語法元素的上下文模型時,屬于同一組塊的相鄰系數可具有最大等級3 (用已經譯碼上下文二進位重構)且屬于先前組塊的相鄰系數可具有整個等級信息。為了兩個部分之間的平衡以及減少存儲每一系數的整個等級值的緩沖器大小,可在使用所存儲系數上下文模型推導之前將所存儲系數截斷到某一閾值。在一個實例中,視頻譯碼器可將所存儲系數截斷(例如,修剪)到3,這可導致用于上下文推導的所有所存儲系數以兩個位表示且具有一致的數據范圍。
      [0233]圖12是圖解說明根據本發(fā)明的一或多種技術的視頻解碼器在三個譯碼遍次中對子塊的系數語法元素進行譯碼的實例操作450的流程圖。操作450可解決上述JCTVC-H0228的提議的缺點。
      [0234]在圖12的實例中,熵譯碼單元(例如,熵編碼單元116或熵解碼單元150)可執(zhí)行第一譯碼遍次以對系數塊的子塊中的系數的sigMapFlag、grlFlag和gr2Flag進行譯碼(452)。當熵譯碼單元執(zhí)行第一譯碼遍次時,熵譯碼單元可產生且CABAC譯碼系數的sigMapFlag>grlFlag 和 gr2Flag,之后產生且 CABAC 譯碼下一系數的 sigMapFlag、grlFlag和 gr2Flag。
      [0235]在完成第一譯碼遍次之后,熵譯碼單元可執(zhí)行第二譯碼遍次以對子塊中的系數的signFlag進行譯碼(454)。當熵譯碼單元執(zhí)行第二譯碼遍次時,熵譯碼單元可產生且旁路譯碼系數的signFlag,之后譯碼下一系數的signFlag。此外,在完成第二譯碼遍次之后,熵譯碼單元可執(zhí)行第三譯碼遍次以對子塊中的系數的levelRem進行譯碼(456)。當熵譯碼單元執(zhí)行第三譯碼遍次時,熵譯碼單元可產生且旁路譯碼系數的levelRem,之后譯碼下一系數的 levelRem。
      [0236]在替代實例中,熵譯碼單元可在單個遍次中對子塊中的系數的signFlag和IevelRem兩者進行譯碼。也就是說,熵譯碼單元可對系數的signFlag和IevelRem進行旁路譯碼,之后對子塊中的下一系數的signFlag和levelRem進行旁路譯碼。以此方式,熵譯碼單元可執(zhí)行兩個遍次:一個譯碼遍次用于CABAC譯碼語法元素,且一個譯碼遍次用于旁路譯碼語法元素。此外,在其它實例中,熵譯碼單元可對TU的整個系數塊執(zhí)行上述三個或兩個譯碼遍次,與系數塊的子塊相反。兩個或三個譯碼遍次的使用可比五個譯碼遍次的使用有利,因為在譯碼次序上較早的系數的較多等級信息(即,sigMapFlag、grlFlag和gr2Flag)可用于譯碼上下文的選擇。也就是說,與五個單獨譯碼遍次相比,兩個或三個譯碼遍次的優(yōu)點是上下文鄰域中的較多等級信息(直到3的等級)可用于上下文推導。
      [0237]圖13A和13B是圖解說明當根據對角線譯碼次序執(zhí)行譯碼遍次時用于選擇sigMapFlag的譯碼上下文的上下文鄰域的實例模板的概念圖。圖14A和14B是圖解說明當根據水平譯碼次序執(zhí)行譯碼遍次時用于選擇sigMapFlag的譯碼上下文的上下文鄰域的實例模板的概念圖。圖15A和15B是圖解說明當根據垂直譯碼次序執(zhí)行譯碼遍次時用于選擇sigMapFlag的譯碼上下文的上下文鄰域的實例模板的概念圖。圖13A、13B、14A、14B、15A和15B的模板可應用于任意大小的TU。在圖13A、13B、14A、14B、15A和15B的實例中,每一塊對應于系數塊中的系數。圖13A和13B中的箭頭500指示對角線譯碼次序的方向。圖14A和14B中的箭頭510指不水平譯碼次序的方向。圖15A和15B中的箭頭520指不垂直譯碼次序的方向。
      [0238]分別在圖13A、13B、14A、14B、15A和15B中具有點劃交叉影線的塊502、504、512、514、522和524指示系數塊中的當前系數。在圖13A、13B、14A、14B、15A和15B的實例中,熵譯碼單元(例如,熵編碼單元116或熵解碼單元150)可并行地處理兩個語法元素(例如,二進位)。因此,系數的上下文鄰域的模板避免使用譯碼次序中的前一系數的當前優(yōu)先級語法元素。實際上,一些系數的上下文鄰域的模板可包含除了譯碼次序中的前一系數之外的額外系數。在圖13B中,塊506和508對應于額外系數。在另一實例中,塊506上方的塊可對應于額外系數。在圖14A中,塊516對應于額外系數。在圖14B中,塊518和519對應于額外系數。在圖15A中,塊526對應于額外系數。在圖15B中,塊528和530對應于額外系數。
      [0239]如果熵譯碼單元使用4x4子塊對系數塊進行譯碼且如果系數塊內的當前系數的(列,行)坐標(相對于系數塊的左上角)不是(0,0)或(3,2),那么熵譯碼單元可取決于譯碼次序,基于與圖13A、14A或15A中所示當前系數具有空間關系的系數的sigMapFlag來選擇當前系數的sigMapFlag的譯碼上下文。如果系數塊內的當前系數的(列,行)坐標是(0,0)或(3,2),那么熵譯碼單元可取決于譯碼次序,基于與圖138、148或158中所示當前系數具有空間關系的系數的sigMapFlag來選擇當前系數的sigMapFlag的譯碼上下文。此實例可延伸到具有不同大小的子塊,且可用右下方系數正上方的系數的坐標代替(3,2)。
      [0240]在熵譯碼單元使用圖13A、13B、14A、14B、15A或15B的上下文鄰域的一些實例中,熵譯碼單元可至少部分地基于當前系數的上下文鄰域中非零系數的總數目來確定當前系數的sigMapFlag的上下文索引。當前系數的上下文鄰域中的非零系數的總數目可表示為sumOnes。在此些實例中,熵譯碼單元可使用以下等式確定用于選擇當前系數的sigMapFlag的譯碼上下文的上下文索引(Ctx_idx):
      [0241]ctx_idx = ctx_set_idxX 6+min (sumOnes, 5)
      [0242]在以上等式中,ctx_set_idx表示上下文集合索引。熵譯碼單元可以各種方式確定上下文集合索引,包含本發(fā)明中在別處描述的方式。
      [0243]在一些實例中,熵譯碼單元可能夠通過基于所有可用信息選擇譯碼上下文來更準確地選擇譯碼上下文。舉例來說,如果熵譯碼單元正在選擇grlFlag的譯碼上下文,那么熵譯碼單元可基于模板中的sigMapFlag和grlFlag來選擇譯碼上下文。在此實例中,熵譯碼單元還可基于系數的實際絕對值(如果可用)來選擇grlFlag的譯碼上下文。然而在一些實例中,以此方式選擇譯碼上下文可大體上增加熵譯碼單元的計算復雜性。這是因為熵譯碼單元可能需要更新sigMapFlag、grlFlag和gr2Flag的系數的(實際或估計)絕對值。為了減少熵譯碼單元的計算復雜性,熵譯碼單元可再使用從經譯碼語法元素的模板獲得的信息用于后續(xù)語法元素。
      [0244]舉例來說,熵譯碼單元可為系數的grlFlag和gr2Flag選擇相同的譯碼上下文。換句話說,coeff_abs_level_greaterl_flag 和 coeff_abs_level_greater2_flag 可使用系數的相同上下文。此外,熵譯碼單元可再使用系數的sumOnes的值來確定grlFlag和gr2Flag的譯碼上下文的上下文索引。在一些此類實例中,熵譯碼單元可使用以下公式來確定上下文索引:
      [0245]ctx_idx = ctx_set_idx X 5+min (sumOnes, 4)
      [0246]在另一實例中,熵譯碼單元可在不修改的情況下使用曾用以選擇sigMapFlag的譯碼上下文的相同上下文索引來選擇grlFlag和gr2Flag的譯碼上下文。因此,在這些實例中,grlFlag的上下文建??稍偈褂胹igMapFlag的計算的結果,因此不需要額外鄰域存取。gr2Flag的上下文建模可再使用用于對應grlFlag的上下文而無任何額外計算。
      [0247]以下表展示使用涉及圖13A、13B、14A、14B、15A和15B的與本發(fā)明的技術一致的技術的測試結果。提出的方法是在HM6.0上實施且在共同測試條件下模擬。在Bj0mCgaiu-dDelta(BD)位速率方面將性能與HM6.0錨點進行比較。表3.1和3.2分別概括了針對QP ={22,27,32,37}和 QP = {12,17,22,27}的實驗結果。
      [0248]表3.1 針對 QP = {22,27,32,37}的模擬結果
      [0249]
      全部幀內主要全部幀內HElO__Y__U_V__Y__U_V
      A 炎-0.1 % -0.1 % -0.2% -0.2% -0.2% -0.1 %
      B 炎0.0% 0.1 % -0.1 % -0.1 % 0.1 % -0.1 %
      C 炎-0.2% 0.1 % 0.1 % -0.2% 0.2% 0.2%
      D 炎-0.2% 0.2% 0.0% -0.2% 0,2% 0.1%
      E 炎__-0.2% 0.0% 0.0% -0.2% 0.0% 0.0%
      總體-0.1% 0.1 % 0.0% -0.2% 0.0% 0.0%
      __-0.1 % 0.1% 0.0% -0.2% 0.0% 0.0%
      F 炎__0.2% 0.5% 0.3% 0.2% 0.2% 0.2%
      編碼時間[%]103%102%
      解碼時間[%j__100%___100%_
      i機存取主要函機存取HElO__Y__U_V__Y__U_V
      A 炎0.1 % 0.4% 0.5% 0.0% 0.0% -0.2%
      B 炎0.0% 0.0% 0.0% 0.0% 0.2% 0.1%
      C J1-0.27c 0.2% 0.0% -0.丨 % 0.丨 % 0.0%
      D 炎-0.2% 0.1% 0.2% -0.1 % 0.2% 0.3%
      E類_____
      總體-0.1% 0.2% 0.2% 0.0% 0.1% 0.0%
      __0.0% 0.2% 0.2% 0.0% 0.2% 0.0%
      0.2% 0.3% 0.3% 0.1% 0.2% 0.1%
      編碼時間[%]103%101%
      解碼時間[%i__100%___100%_
      g延遲B主要涵延遲B HElO
      __Y__U_V__Y__U_V
      Am
      B 炎 0.2%0.6%0.2%0.2%0.3%0.2%
      C 炎 0.0%0.6%0.2%0.0%0.9%0.6%
      D -? 0.0%0.3%0.6%0.0%0.0%0.6%
      E Ti__0.0%-0.2%0.6%0.1 %1.6%0.1 %
      0.1%0.4%0.4%0.1 %0.6%0.4%~
      __0.1 %0.4%0.3%0.1%0.7%0.3%
      F 類 --0.1 %1.1%0.5%_ 0.1%0.2%2.7%
      編碼時間[%]101%101%
      解碼時間[%] _100%__100%_
      [0250]表3.1 針對 QP = {12,17,22,27}的模擬結果
      [0251]
      全部幀內主要全部幀內HElO__Y__U_V__Y__U__V
      -0,3% -0.1 %-0.1 %-0.3% -0.2% -0.2%~
      B -? 0.3% 0.5%0.3%0.2% 0.4% 0.2%
      C Y1-0.1 % 0.1 %0.1 %-0.1 % 0.2% 0.1 %
      D 炎 -0.3% 0.0%0.0%-0.3% 0.1% 0.0%
      [0252]
      E f1-0.2%' 0.0%0.0%-03% 0.0% 0.0%
      -0.1 % oTi oT1-0.1% ai% ο?%~
      __-0.1 % 0.2% 0.1 % -0.1 % 0.1 % 0.0%
      F yA__0.3% 0.4% 0.3% 0.3% 0.2% 0.4%
      編碼時間[%]111%108%
      解碼時間[%] _#NUM!___#NUM!__
      ii機存取主要i機存取HEii
      __Y__U_V__Y__U__V
      A -?-0.1% 0.1 % 0.2% -0.1% -0.1% -0.2%
      B 炎0.2% 0.4% 0.2% 0.2% 0.3% 0.0%
      C 炎-0.丨 %' 0.3% 0.1 %' -0.丨 % 0.3% 0.丨 %
      D 芡-0.1 % 0.2% 0.2% -0.1% 0.3% 0.1 %
      E炎______
      總體0.0% 0.2% 0.2% 0.0% 0.2% 0.0%
      __0.0% 0.2% 0.2% 0.0% 0.2% 0.0%
      F 炎__0.0% 0.2% 0.2% 0.0% 0.1 % 0.1 %
      編碼時間[%]106%106%
      解碼時間[%j__#NUM!___#NUM!__
      遠延遲B主要I延遲B HE1
      __Y_U_V__Y__U__V
      AM
      B 炎0.2% 0.4%0.2%0.2% 0.4%0.2%
      C ^0.0% 0.6%0.2%0.0% 0.6%0.4%
      D Ti0.0% 0.3%0.2%0.0% 0.4%0.4%
      E 炎__0.1 % 0.5%0.1 %0.0% -0.1 %-0.1 %
      (ΓΓ% 05%02%ai% 03%02%~
      __0.1 % 0.4%0.2%0.0% 0.3%0.3%
      F 炎__-0.1 % 0.1%0.1%0.1 % 0.5%0.0%
      編碼時間[%]106%107%
      解碼時間[%]__#NUM!__#NUM!_
      [0253]雖然本發(fā)明是相對于上述變換系數中使用的語法元素來寫出,但本發(fā)明的技術可在使用其它語法元素的情況下適用,只要譯碼是在至少兩個遍次中完成以使得可應用優(yōu)先級遍次的概念即可。
      [0254]在一或多個實例中,所描述的功能可以硬件、軟件、固件或其任一組合來實施。如果以軟件實施,那么功能可作為一個或多個指令或代碼存儲在計算機可讀媒體上或經由計算機可讀媒體傳輸,且由基于硬件的處理單元執(zhí)行。計算機可讀媒體可包含對應于例如數據存儲媒體等有形媒體的計算機可讀存儲媒體,或包含促進計算機程序例如根據通信協議從一處傳送到另一處的任何媒體的通信媒體。以此方式,計算機可讀媒體通常可對應于(I)非暫時性的有形計算機可讀存儲媒體,或(2)例如信號或載波等通信媒體。數據存儲媒體可為可由一或多個計算機或者一或多個處理器存取以檢索用于實施本發(fā)明中描述的技術的指令、代碼和/或數據結構的任何可用媒體。計算機程序產品可包含計算機可讀媒體。
      [0255]舉例來說且并非限制,此類計算機可讀存儲媒體可包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲裝置、磁盤存儲裝置或其它磁性存儲裝置、快閃存儲器或可用來以指令或數據結構的形式存儲所要程序代碼且可由計算機存取的任何其它媒體。而且,恰當地將任何連接稱作計算機可讀媒體。舉例來說,如果使用同軸電纜、光纖電纜、雙絞線、數字訂戶線(DSL)或例如紅外線、無線電及微波等無線技術從網站、服務器或其它遠程源傳輸指令,則同軸電纜、光纖電纜、雙絞線、DSL或例如紅外線、無線電及微波等無線技術包含于媒體的定義中。然而應了解,計算機可讀存儲媒體和數據存儲媒體不包含連接、載波、信號或其它瞬時媒體,而是針對非瞬時有形存儲媒體。如本文中所使用,磁盤及光盤包含壓縮光盤(⑶)、激光光盤、光學光盤、數字多功能光盤(DVD)、軟磁盤及藍光光盤,其中磁盤通常以磁性方式再生數據,而光盤使用激光以光學方式再生數據。上文的組合也應包含在計算機可讀媒體的范圍內。
      [0256]可由例如一或多個數字信號處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現場可編程邏輯陣列(FPGA)或其它等效集成或離散邏輯電路等一或多個處理器來執(zhí)行指令。因此,如本文中所使用的術語“處理器”可指上述結構或適合于實施本文中所描述的技術的任一其它結構中的任一者。另外,在一些方面中,本文描述的功能性可提供于經配置以用于編碼和解碼的專用硬件和/或軟件模塊內,或并入在組合式編解碼器中。并且,可將所述技術完全實施于一個或多個電路或邏輯元件中。
      [0257]本發(fā)明的技術可在廣泛多種裝置或設備中實施,包含無線手持機、集成電路(IC)或一組IC(例如,芯片組)。本發(fā)明中描述各種組件、模塊或單元以強調經配置以執(zhí)行所揭示技術的裝置的功能方面,但不一定需要通過不同硬件單元來實現。而是,如上所述,各種單元可在編解碼器硬件單元中組合或由互操作硬件單元(包含如上所述的一個或多個處理器)的集合結合合適軟件和/或固件來提供。
      [0258]已描述了各種實例。這些和其它實例屬于所附權利要求書的范圍內。
      【權利要求】
      1.一種用于對視頻數據進行編碼的方法,所述方法包括: 基于殘余樣本塊產生系數塊; 在所述系數塊的系數的第一譯碼遍次期間對對應于所述系數塊的系數的語法元素的第一集合進行編碼;以及 在所述系數塊的所述系數的第二譯碼遍次期間對對應于所述系數塊的系數的語法元素的第二集合進行編碼,其中對語法元素的所述第二集合進行編碼包括: 產生第一語法元素,所述第一語法元素在語法元素的所述第二集合中且對應于所述系數塊的當前系數; 至少部分地基于第二語法元素和第三語法元素來選擇所述第一語法元素的譯碼上下文,其中所述第二語法元素在語法元素的所述第一集合中且對應于非因果系數,其中所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生;以及 至少部分地基于為所述第一語法元素選擇的所述譯碼上下文來對所述第一語法元素進行熵編碼。
      2.根據權利要求1所述的方法,其中對語法元素的所述第二集合進行編碼包括: 并行地產生所述第一語法元素和第四語法元素; 并行地選擇所述第一語法元素的所述譯碼上下文和所述第四語法元素的譯碼上下文,其中所述第一語法元素的所述譯碼上下文不是基于所述第四語法元素來選擇且所述第四語法元素的所述譯碼上下文不是基于所述第一語法元素來選擇;以及 基于所述第一和第四語法元素的所述譯碼上下文并行地對所述第一和第四語法元素進行熵編碼。
      3.根據權利要求1所述的方法,其中所述系數塊包括多個子塊,所述第二譯碼遍次的所述譯碼次序是基于所述子塊,且所述因果系數是在所述子塊中與所述當前系數不同的一個子塊中。
      4.根據權利要求1所述的方法,其中語法元素的所述第二集合中的每一語法元素指示以下各項中的一者:與所述語法元素相關聯的系數是否大于一,或與所述語法元素相關聯的所述系數是否大于二。
      5.根據權利要求1所述的方法,其中選擇所述第一語法元素的所述譯碼上下文包括: 至少部分地基于所述第二語法元素確定所述非因果系數的估計絕對值; 至少部分地基于所述第三語法元素確定所述因果系數的實際絕對值;以及至少部分地基于所述非因果系數的所述估計絕對值和所述因果系數的所述實際絕對值來選擇所述第一語法元素的所述譯碼上下文。
      6.根據權利要求1所述的方法,其中選擇所述第一語法元素的所述譯碼上下文包括: 至少部分地基于所述第二語法元素確定所述非因果系數的估計絕對值; 至少部分地基于所述第三語法元素確定所述因果系數的估計絕對值;以及至少部分地基于所述非因果系數的所述估計絕對值和所述因果系數的所述估計絕對值來選擇所述第一語法元素的所述譯碼上下文。
      7.根據權利要求6所述的方法,其中所述因果系數根據所述第二譯碼遍次的所述譯碼次序在所述當前系數的特定數目的系數內,且確定所述因果系數的所述估計絕對值包括將所述因果系數的所述估計絕對值確定為等于鄰近于所述因果系數的系數的估計絕對值。
      8.根據權利要求6所述的方法,其中所述因果系數根據所述第二譯碼遍次的所述譯碼次序在所述當前系數的特定數目的系數內,且確定所述因果系數的所述估計絕對值包括將所述因果系數的所述估計絕對值確定為等于預定義值。
      9.根據權利要求6所述的方法,其中選擇所述第一語法元素的所述譯碼上下文包括: 應用公式以基于所述非因果系數的所述估計絕對值和所述因果系數的所述估計絕對值來確定索引,其中所述公式將加權值應用于所述非因果系數的所述估計絕對值或所述因果系數的所述估計絕對值;以及 至少部分地基于所述索引來選擇所述第一語法元素的所述譯碼上下文。
      10.根據權利要求6所述的方法,其中選擇所述第一語法元素的所述譯碼上下文包括: 將所述非因果系數的所述估計絕對值修剪為兩個或三個位; 將所述因果系數的所述估計絕對值修剪為兩個或三個位;以及至少部分地基于所述非因果系數和因果系數的所述經修剪估計絕對值來選擇所述第一語法元素的所述譯碼上下文。
      11.一種視頻編碼裝置,其包括一或多個處理器,所述一或多個處理器經配置以: 基于殘余樣本塊產生系數塊; 在所述系數塊的系數的第一譯碼遍次期間對對應于所述系數塊的系數的語法元素的第一集合進行編碼;以及 在所述系數塊的所述系數的第二譯碼遍次期間對對應于所述系數塊的系數的語法元素的第二集合進行編碼,其中所述一或多個處理器經配置以使得在所述第二譯碼遍次期間所述一或多個處理器: 產生第一語法元素,所述第一語法元素在語法元素的所述第二集合中且對應于所述系數塊的當前系數; 至少部分地基于第二語法元素和第三語法元素來選擇所述第一語法元素的譯碼上下文,其中所述第二語法元素在語法元素的所述第一集合中且對應于非因果系數,其中所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生;以及 至少部分地基于為所述第一語法元素選擇的所述譯碼上下文來對所述第一語法元素進行熵編碼。
      12.根據權利要求11所述的視頻編碼裝置,其中所述一或多個處理器經配置以: 并行地產生所述第一語法元素和第四語法元素; 并行地選擇所述第一語法元素的所述譯碼上下文和所述第四語法元素的譯碼上下文,其中所述第一語法元素的所述譯碼上下文不是基于所述第四語法元素來選擇且所述第四語法元素的所述譯碼上下文不是基于所述第一語法元素來選擇;以及 基于所述第一和第四語法元素的所述譯碼上下文并行地對所述第一和第四語法元素進行熵編碼。
      13.根據權利要求11所述的視頻編碼裝置,其中所述系數塊包括多個子塊,所述第二譯碼遍次的所述譯碼次序是基于所述子塊,且所述因果系數是在所述子塊中與所述當前系數不同的一個子塊中。
      14.根據權利要求11所述的視頻編碼裝置,其中語法元素的所述第二集合中的每一語法元素指示以下各項中的一者:與所述語法元素相關聯的系數是否大于一,或與所述語法元素相關聯的所述系數是否大于二。
      15.根據權利要求11所述的視頻編碼裝置,其中所述一或多個處理器經配置以: 至少部分地基于所述第二語法元素確定所述非因果系數的估計絕對值; 至少部分地基于所述第三語法元素確定所述因果系數的實際絕對值;以及至少部分地基于所述非因果系數的所述估計絕對值和所述因果系數的所述實際絕對值來選擇所述第一語法元素的所述譯碼上下文。
      16.根據權利要求11所述的視頻編碼裝置,其中所述一或多個處理器經配置以: 至少部分地基于所述第二語法元素確定所述非因果系數的估計絕對值; 至少部分地基于所述第三語法元素確定所述因果系數的估計絕對值;以及至少部分地基于所述非因果系數的所述估計絕對值和所述因果系數的所述估計絕對值來選擇所述第一語法元素的所述譯碼上下文。
      17.根據權利要求16所述的視頻編碼裝置,其中所述因果系數根據所述第二譯碼遍次的所述譯碼次序在所述當前系數的特定數目的系數內,且所述一或多個處理器經配置以將所述因果系數的所述估計絕對值確定為等于鄰近于所述因果系數的系數的估計絕對值。
      18.根據權利要求16所述的視頻編碼裝置,其中所述因果系數根據所述第二譯碼遍次的所述譯碼次序在所述當前系數的特定數目的系數內,且所述一或多個處理器經配置以將所述因果系數的所述估計絕對值確定為等于預定義值。
      19.根據權利要求16所述的視頻編碼裝置,其中所述一或多個處理器經配置以: 應用公式以基于所述非因果系數的所述估計絕對值和所述因果系數的所述估計絕對值來確定索引,其中所述公式將加權值應用于所述非因果系數的所述估計絕對值或所述因果系數的所述估計絕對值;以及 至少部分地基于所述索引來選擇所述第一語法元素的所述譯碼上下文。
      20.根據權利要求16所述的視頻編碼裝置,其中所述一或多個處理器經配置以選擇所述第一語法元素的所述譯碼上下文包括: 將所述非因果系數的所述估計絕對值修剪為兩個或三個位; 將所述因果系數的所述估計絕對值修剪為兩個或三個位;以及至少部分地基于所述非因果系數和因果系數的所述經修剪估計絕對值來選擇所述第一語法元素的所述譯碼上下文。
      21.一種視頻編碼裝置,其包括: 用于基于殘余樣本塊產生系數塊的裝置; 用于在所述系數塊的系數的第一譯碼遍次期間對對應于所述系數塊的系數的語法元素的第一集合進行編碼的裝置;以及 用于在所述系數塊的所述系數的第二譯碼遍次期間對對應于所述系數塊的系數的語法元素的第二集合進行編碼的裝置,其中所述用于對語法元素的所述第二集合進行編碼的裝置包括: 用于產生第一語法元素的裝置,所述第一語法元素在語法元素的所述第二集合中且對應于所述系數塊的當前系數; 用于至少部分地基于第二語法元素和第三語法元素來選擇所述第一語法元素的譯碼上下文的裝置,其中所述第二語法元素在語法元素的所述第一集合中且對應于非因果系數,其中所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生;以及 用于至少部分地基于為所述第一語法元素選擇的所述譯碼上下文來對所述第一語法元素進行熵編碼的裝置。
      22.—種存儲指令的計算機可讀存儲媒體,所述指令在由視頻編碼裝置的一或多個處理器執(zhí)行時配置所述視頻編碼裝置以: 基于殘余樣本塊產生系數塊; 在所述系數塊的系數的第一譯碼遍次期間對對應于所述系數塊的系數的語法元素的第一集合進行編碼;以及 在所述系數塊的所述系數的第二譯碼遍次期間對對應于所述系數塊的系數的語法元素的第二集合進行編碼,其中所述指令配置所述視頻編碼裝置以使得在所述第二譯碼遍次期間所述視頻編碼裝置: 產生第一語法元素,所述第一語法元素在語法元素的所述第二集合中且對應于所述系數塊的當前系數; 至少部分地基于第二語法元素和第三語法元素來選擇所述第一語法元素的譯碼上下文,其中所述第二語法元素在語法元素的所述第一集合中且對應于非因果系數,其中所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生;以及 至少部分地基于為所述第一語法元素選擇的所述譯碼上下文來對所述第一語法元素進行熵編碼。
      23.一種用于對視頻數據進行解碼的方法,所述方法包括: 在系數塊的系數的第一譯碼遍次期間對對應于所述系數塊的系數的語法元素的第一集合進行解碼; 在所述系數塊的所述系數的第二譯碼遍次期間對對應于所述系數塊的系數的語法元素的第二集合進行解碼,其中執(zhí)行所述第二譯碼遍次包括: 至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文,所述第一語法元素在語法元素的所述第二集合中且對應于所述系數塊的當前系數,其中所述第二語法元素在語法元素的所述第一集合中且對應于非因果系數,其中所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生;以及 至少部分地基于為所述第一語法元素選擇的所述譯碼上下文來對所述第一語法元素進行熵解碼;以及 基于所述系數塊的所述系數產生殘余樣本塊。
      24.根據權利要求23所述的方法,其中對語法元素的所述第二集合進行解碼包括: 并行地選擇所述第一語法元素的所述譯碼上下文和第四語法元素的譯碼上下文,其中所述第一語法元素的所述譯碼上下文不是基于所述第四語法元素來選擇且所述第四語法元素的所述譯碼上下文不是基于所述第一語法元素來選擇;以及 基于所述第一和第四語法元素的所述譯碼上下文并行地對所述第一和第四語法元素進行熵解碼。
      25.根據權利要求23所述的方法,其中所述系數塊包括多個子塊,所述第二譯碼遍次的所述譯碼次序是基于所述子塊,且所述因果系數是在所述子塊中與所述當前系數不同的一個子塊中。
      26.根據權利要求23所述的方法,其中語法元素的所述第二集合中的每一語法元素指示以下各項中的一者:與所述語法元素相關聯的系數是否大于一,或與所述語法元素相關聯的所述系數是否大于二。
      27.根據權利要求26所述的方法,其中選擇所述第一語法元素的所述譯碼上下文包括: 至少部分地基于所述第二語法元素確定所述非因果系數的估計絕對值; 至少部分地基于所述第三語法元素確定所述因果系數的實際絕對值;以及至少部分地基于所述非因果系數的所述估計絕對值和所述因果系數的所述實際絕對值來選擇所述第一語法元素的所述譯碼上下文。
      28.根據權利要求26所述的方法,其中選擇所述第一語法元素的所述譯碼上下文包括: 至少部分地基于所述第二語法元素確定所述非因果系數的估計絕對值; 至少部分地基于所述第三語法元素確定所述因果系數的估計絕對值;以及至少部分地基于所述非因果系數的所述估計絕對值和所述因果系數的所述估計絕對值來選擇所述第一語法元素的所述譯碼上下文。
      29.根據權利要求28所述的方法,其中所述因果系數根據所述第二譯碼遍次的所述譯碼次序在所述當前系數的特定數目的系數內,且確定所述因果系數的所述估計絕對值包括將所述因果系數的所述估計絕對值確定為等于鄰近于所述因果系數的系數的估計絕對值。
      30.根據權利要求28所述的方法,其中所述因果系數根據所述第二譯碼遍次的所述譯碼次序在所述當前系數的特定數目的系數內,且確定所述因果系數的所述估計絕對值包括將所述因果系數的所述估計絕對值確定為等于預定義值。
      31.根據權利要求28所述的方法,其中選擇所述第一語法元素的所述譯碼上下文包括: 應用公式以基于所述非因果系數的所述估計絕對值和所述因果系數的所述估計絕對值來確定索引,其中所述公式將加權值應用于所述非因果系數的所述估計絕對值或所述因果系數的所述估計絕對值;以及 至少部分地基于所述索引來選擇所述第一語法元素的所述譯碼上下文。
      32.根據權利要求28所述的方法,其中選擇所述第一語法元素的所述譯碼上下文包括: 將所述非因果系數的所述估計絕對值修剪為兩個或三個位; 將所述因果系數的所述估計絕對值修剪為兩個或三個位;以及至少部分地基于所述非因果系數和因果系數的所述經修剪估計絕對值來選擇所述第一語法元素的所述譯碼上下文。
      33.一種視頻解碼裝置,其包括一或多個處理器,所述一或多個處理器經配置以: 在系數塊的系數的第一譯碼遍次期間對對應于所述系數塊的系數的語法元素的第一集合進行解碼; 在所述系數塊的所述系數的第二譯碼遍次期間對對應于所述系數塊的系數的語法元素的第二集合進行解碼,其中所述一或多個處理器經配置以使得在所述第二譯碼遍次期間所述一或多個處理器: 至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文,所述第一語法元素在語法元素的所述第二集合中且對應于所述系數塊的當前系數,其中所述第二語法元素在語法元素的所述第一集合中且對應于非因果系數,其中所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生;以及 至少部分地基于為所述第一語法元素選擇的所述譯碼上下文來對所述第一語法元素進行熵解碼;以及 基于所述系數塊的所述系數產生殘余樣本塊。
      34.根據權利要求33所述的視頻解碼裝置,其中所述一或多個處理器經配置以: 并行地選擇所述第一語法元素的所述譯碼上下文和第四語法元素的譯碼上下文,其中所述第一語法元素的所述譯碼上下文不是基于所述第四語法元素來選擇且所述第四語法元素的所述譯碼上下文不是基于所述第一語法元素來選擇;以及 基于所述第一和第四語法元素的所述譯碼上下文并行地對所述第一和第四語法元素進行熵解碼。
      35.根據權利要求33所述的視頻解碼裝置,其中所述系數塊包括多個子塊,所述第二譯碼遍次的所述譯碼次序是基于所述子塊,所述因果系數是在所述子塊中與所述當前系數不同的一個子塊中。
      36.根據權利要求33所述的視頻解碼裝置,其中語法元素的所述第二集合中的每一語法元素指示以下各項中的一者:與所述語法元素相關聯的系數是否大于一,或與所述語法元素相關聯的所述系數是否大于二。
      37.根據權利要求33所述的視頻解碼裝置,其中所述一或多個處理器經配置以: 至少部分地基于所述第二語法元素確定所述非因果系數的估計絕對值; 至少部分地基于所述第三語法元素確定所述因果系數的實際絕對值;以及至少部分地基于所述非因果系數的所述估計絕對值和所述因果系數的所述實際絕對值來選擇所述第一語法元素的所述譯碼上下文。
      38.根據權利要求33所述的視頻解碼裝置,其中所述一或多個處理器經配置以: 至少部分地基于所述第二語法元素確定所述非因果系數的估計絕對值; 至少部分地基于所述第三語法元素確定所述因果系數的估計絕對值;以及 至少部分地基于所述非因果系數的所述估計絕對值和所述因果系數的所述估計絕對值來選擇所述第一語法元素的所述譯碼上下文。
      39.根據權利要求38所述的視頻解碼裝置,其中所述因果系數根據所述第二譯碼遍次的所述譯碼次序在所述當前系數的特定數目的系數內,且所述一或多個處理器經配置以將所述因果系數的所述估計絕對值確定為等于鄰近于所述因果系數的系數的估計絕對值。
      40.根據權利要求38所述的視頻解碼裝置,其中所述因果系數根據所述第二譯碼遍次的所述譯碼次序在所述當前系數的特定數目的系數內,且所述一或多個處理器經配置以將所述因果系數的所述估計絕對值確定為等于預定義值。
      41.根據權利要求38所述的視頻解碼裝置,其中所述一或多個處理器經配置以: 應用公式以基于所述非因果系數的所述估計絕對值和所述因果系數的所述估計絕對值來確定索引,其中所述公式將加權值應用于所述非因果系數的所述估計絕對值或所述因果系數的所述估計絕對值;以及 至少部分地基于所述索引來選擇所述第一語法元素的所述譯碼上下文。
      42.根據權利要求38所述的視頻解碼裝置,其中所述一或多個處理器經配置以: 將所述非因果系數的所述估計絕對值修剪為兩個或三個位; 將所述因果系數的所述估計絕對值修剪為兩個或三個位;以及至少部分地基于所述非因果系數和因果系數的所述經修剪估計絕對值來選擇所述第一語法元素的所述譯碼上下文。
      43.一種視頻解碼裝置,其包括: 用于在系數塊的系數的第一譯碼遍次期間對對應于所述系數塊的系數的語法元素的第一集合進行解碼的裝置; 用于在所述系數塊的所述系數的第二譯碼遍次期間對對應于所述系數塊的系數的語法元素的第二集合進行解碼的裝置,其中所述用于執(zhí)行所述第二譯碼遍次的裝置包括:用于至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文的裝置,所述第一語法元素在語法元素的所述第二集合中且對應于所述系數塊的當前系數,其中所述第二語法元素在語法元素的所述第一集合中且對應于非因果系數,其中所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生;以及 用于至少部分地基于為所述第一語法元素選擇的所述譯碼上下文來對所述第一語法元素進行熵解碼的裝置;以及 用于基于所述系數塊的所述系數產生殘余樣本塊的裝置。
      44.一種存儲指令的計算機可讀存儲媒體,所述指令在由視頻解碼裝置的一或多個處理器執(zhí)行時配置所述視頻解碼裝置以: 在系數塊的系數的第一譯碼遍次期間對對應于所述系數塊的系數的語法元素的第一集合進行解碼; 在所述系數塊的所述系數的第二譯碼遍次期間對對應于所述系數塊的系數的語法元素的第二集合進行解碼,其中所述指令配置所述視頻編碼裝置以使得在所述第二譯碼遍次期間所述視頻解碼裝置: 至少部分地基于第二語法元素和第三語法元素來選擇第一語法元素的譯碼上下文,所述第一語法元素在語法元素的所述第二集合中且對應于所述系數塊的當前系數,其中所述第二語法元素在語法元素的所述第一集合中且對應于非因果系數,其中所述第三語法元素在語法元素的所述第二集合中且對應于因果系數,所述非因果系數在所述第二譯碼遍次的譯碼次序中的所述當前系數之后發(fā)生,所述因果系數在所述第二譯碼遍次的所述譯碼次序中的所述當前系數之前發(fā)生;以及 至少部分地基于為所述第一語法元素選擇的所述譯碼上下文來對所述第一語法元素進行熵解碼;以及 基于所述系數塊的所述系數產生殘余樣本塊。
      【文檔編號】H04N19/176GK104185990SQ201380006166
      【公開日】2014年12月3日 申請日期:2013年1月18日 優(yōu)先權日:2012年1月22日
      【發(fā)明者】拉詹·拉克斯曼·喬希, 陳建樂, 錢威俊, 瓦迪姆·謝廖金, 霍埃爾·索賴羅哈斯, 馬爾塔·卡切維奇 申請人:高通股份有限公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1