JP2015504256A - Hevcにおけるcabacの高スループット符号化 - Google Patents

Hevcにおけるcabacの高スループット符号化 Download PDF

Info

Publication number
JP2015504256A
JP2015504256A JP2014534694A JP2014534694A JP2015504256A JP 2015504256 A JP2015504256 A JP 2015504256A JP 2014534694 A JP2014534694 A JP 2014534694A JP 2014534694 A JP2014534694 A JP 2014534694A JP 2015504256 A JP2015504256 A JP 2015504256A
Authority
JP
Japan
Prior art keywords
block
electronic device
decoding
value
cabac
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2014534694A
Other languages
English (en)
Inventor
スンファン キム
スンファン キム
キラン ミスラ
キラン ミスラ
ルイス ジョセフ ケロフスキー
ルイス ジョセフ ケロフスキー
クリストファー エー. セガール
クリストファー エー. セガール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
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
Priority claimed from US13/354,272 external-priority patent/US9654139B2/en
Priority claimed from US13/360,615 external-priority patent/US8581753B2/en
Priority claimed from US13/365,215 external-priority patent/US20130188736A1/en
Priority claimed from US13/444,710 external-priority patent/US8552890B2/en
Application filed by Sharp Corp filed Critical Sharp Corp
Publication of JP2015504256A publication Critical patent/JP2015504256A/ja
Pending legal-status Critical Current

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/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
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component

Landscapes

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

Abstract

高スループット2値化モードのために構成された電子デバイスが記載される。電子デバイスは、プロセッサおよびプロセッサと電子通信を行うメモリに記憶された命令を含む。電子デバイスは、変換および量子化された係数(TCQ)のブロックを取得する。電子デバイスは、高スループット2値化モード条件が満たされるかどうかを判定する。条件が満たされる場合には、電子デバイスは、ブロックを処理するために高スループット2値化モードを用いる。条件が満たされない場合には、電子デバイスは、ブロックを処理するために高スループット2値化モードを用いない。電子デバイスは、生成された第1または第2のビットストリームをデコーダへ送信する。

Description

本開示は、一般に、電子デバイスに関する。より具体的には、本開示は、符号化および/または復号のために拡張されたコンテキスト適応型2値算術符号化(CABAC:Context Adaptive Binary Arithmetic Coding)を利用する電子デバイスに関する。
本出願は、2012年4月11日出願の「LOSSLESS CODING WITH DIFFERENT PARAMETER SELECTION TECHNIQUE FOR CABAC IN HEVC(HEVCにおけるCABACの異なるパラメータ選択技術を用いたロスレス符号化)」と題する米国特許出願第13/444,710号の一部継続出願であり、米国特許出願第13/444,710号は、2012年2月2日出願の「HIGH THROUGHPUT SIGNIFICANCE MAP PROCESSING FOR CABAC IN HEVC(HEVCにおけるCABACの高スループット有意性マップ処理)」と題する米国特許出願第13/365,215号の一部継続出願であり、米国特許出願第13/365,215号は、2012年1月27日出願の「LOSSLESS CODING TECHNIQUE FOR CABAC IN HEVC(HEVCにおけるCABACのロスレス符号化技術)」と題する米国特許出願第13/360,615号の一部継続出願であり、米国特許出願第13/365,615号は、2012年1月19日出願の「HIGH THROUGHPUT BINARIZATION(HTB) METHOD FOR CABAC IN HEVC(HEVCにおけるCABACの高スループット2値化(HTB)法)」と題する米国特許出願第13/354,272号の一部継続出願であり、これらの出願のそれぞれは、参照によりその全体が本明細書に組み込まれる。
画像のブロックに関する符号化されたデータを多くのデコーダ(およびエンコーダ)が受信する(およびエンコーダが供給する)。典型的に、画像はブロックに分割され、ブロックのそれぞれが何らかの方法で、例えば、離散コサイン変換(DCT:discrete cosine transform)を用いて符号化されて、デコーダへ供給される。ブロックは、画像における矩形領域を示し、画素からなり、例えば、16×16のブロックは、幅が16画素および高さが16画素の領域である。デコーダは、符号化されたブロックを受信して、ブロックのそれぞれを何らかの方法で、例えば、逆離散コサイン変換を用いて復号する。
ビデオ符号化規格、例えば、MPEG−4 part10(H.264)は、限られた周波数帯域幅および/または限られた記憶容量をもつチャネルを通じた送信のためにビデオデータを圧縮する。これらのビデオ符号化規格は、フレームをより効果的に符号化および復号するために、イントラ予測、空間領域から周波数領域への変換、量子化、エントロピー符号化、動き推定、および動き補償のような複数の符号化段階を含む。
国際電気通信連合電気通信標準化部門(ITU−T:International Telecommunication Union Telecommunication Standardization Sector)研究グループ16(SG16:Study group 16)作業班3(WP3:Working Party 3)、および国際標準化機構/国際電気標準会議(ISO/IEC:International Organization for Standardization/International Electrotechnical Commission)合同専門委員会1/小委員会29/作業グループ11(JTC1/SC29/WG11:Joint Technical Committee 1/Subcommittee 29/Working Group 11)のビデオ符号化に関する共同作業チーム(JCT−VC:Joint Collaborative Team on Video Coding)は、高効率ビデオ符号化規格(HEVC:High Efficiency Video Coding Standard)と呼ばれるビデオ符号化規格に関する規格化の取り組みを開始した。いくつかの前のビデオ符号化規格と同様に、HEVCは、ブロックに基づく符号化法である。既知のHEVCエンコーダの例が図1に示される。HEVCデコーダも知られている。
HEVCでは、変換および量子化された係数(TQC:Transformed and Quantized Coefficient)を損失なしに圧縮するために、コンテキスト適応型2値算術符号化(CABAC:Context−Adaptive Binary Arithmetic Coding)が用いられる。TQCは、エンコーダにおいて、画像ブロックを順変換により処理して、変換係数を生成し、次に、複数の変換係数値をTQC値へマッピングする操作を用いて、この変換係数を量子化することによって決定される。TQC値は、次に、係数レベル値、またはレベル値、としてデコーダへ通信され、次に、係数ごとのレベル値が、エンコーダにおいて計算された変換係数値に似てはいるが必ずしも同じではない、変換係数値へマッピングされる。CABACに基づく符号化および/または復号技術は、一般にコンテキスト適応型であり、これは、(i)過去に符号化および/または復号された前のシンボルの値に基づいてシンボルを適応的に符号化することと、(ii)適応に用いる過去に符号化および/または復号されたシンボルのセットを特定するコンテキストとを指す。過去のシンボルは、空間的および/または時間的に隣接したブロックに位置する。多くの場合、コンテキストは、隣接したブロックのシンボル値に基づく。
上述のように、TQCを損失なしに圧縮するためにCABACが用いられる。背景として、TQCは、変換サイズ(例えば、4×4、8×8、16×16、32×32、16×32)によって異なるブロック・サイズに由来してもよい。2次元の(2D)TQCは、エントロピー符号化の前に1次元(1D)アレイに変換される。一例において、4×4のブロックにおける2DアレイのTQCは、表(1)に示されるように配置される。
2D TQCを1Dアレイに変換するときに、ブロックは、斜めにジグザグ状にスキャンされる。例を続けると、表(1)に示される2DアレイのTQCは、第1行および第1列、第1行および第2列、第2行および第1列、第3行および第1列、第2行および第2列、第1行および第3列、第1行および第4列、第2行および第3列、第3行および第2列、第4行および第1列などをスキャンすることによって1DアレイのTQC[4,0,3,−3,2,1,0,−1,0,・・・]に変換される。
TQCの1Dアレイは、CABACではシンタックス要素(SE:Syntax Element)の列によって表される。TQCの1Dアレイの例に関するSEの列の例が図2に示される。SEは、次のパラメータ、すなわち、Last_position_X/Y、有意性マップ(Significance Map)、および属性Greater_than_1、Greater_than_2、正負情報(Sign Information)、ならびにAbsolute−3を表す。Last_position_X/Yは、対応するブロックにおける最後の非ゼロ係数の位置(X/Y)を表す。有意性マップは、各係数の有意性を表す。Greater_than_1は、非ゼロの(すなわち、有意フラグが1の)係数ごとに係数振幅が1より大きいかどうかを示す。Greater_than_2は、1より大きい振幅をもつ(すなわち、greater_than_1フラグが1の)係数ごとに係数振幅が2より大きいかどうかを示す。
HEVCにおけるCABACでは、代表的なSEが符号化される。図3は、SEを符号化するために用いるCABACフレームワークを示す。CABAC符号化技術は、段階を用いたシンボルの符号化を含む。第1段階において、CABACは、入力シンボルを2値シンボルの列または「ビン」へマッピングするために「バイナライザ(binarizer)」を用いる。入力シンボルは、ビットに符号化される前に2値化(binarize)されるか、別の状況では2値(1または0)シンボルの列に変換される、非2値シンボルである。ビンは、「バイパス符号化エンジン」または「レギュラー符号化エンジン」のいずれかを用いてビットに符号化することができる。
CABACにおけるレギュラー符号化エンジンでは、第2段階において、確率モデルが選択される。確率モデルは、2値化された入力シンボルの1つ以上のビンを算術符号化するために用いられる。このモデルは、最近符号化されたシンボルの関数であるコンテキストに依存して、利用可能な確率モデルのリストから選択される。確率モデルは、ビンが「1」または「0」である確率を記憶する。第3段階において、算術エンコーダは、選択された確率モデルに従って各ビンを符号化する。「0」および「1」に対応する2つの部分範囲がビンごとに存在する。第4段階は、確率モデルのアップデートを含む。選択された確率モデルは、実際に符号化されたビン値に基づいてアップデートされる(例えば、ビン値が「1」であった場合には、「1」の頻度数が増やされる)。CABAC復号のための復号技術は、処理を逆に行う。
CABACにおけるバイパス符号化エンジンに関しては、第2段階は、計算コストが高いコンテキスト推定および確率アップデートの段階を省略した、ビンからビットへの変換を含む。バイパス符号化エンジンは、入力ビンに関して一定の確率分布を仮定する。CABAC復号のための復号技術は、処理を逆に行う。
CABACは、2つのステップを概念的に用いてシンボルを符号化する。第1のステップにおいて、CABACは、入力シンボルからビンへの2値化を行う。第2のステップにおいて、CABACは、バイパス符号化エンジンまたはレギュラー符号化エンジンのいずれかを用いて、ビンからビットへの変換を行う。結果として生じる符号化されたビット値は、ビットストリームでデコーダへ供給される。
CABACは、2つのステップを概念的に用いてシンボルを復号する。第1のステップにおいて、CABACは、入力ビットをビン値に変換するために、バイパス復号エンジンまたはレギュラー復号エンジンのいずれかを用いる。第2のステップにおいて、CABACは、ビン値に対する送信されたシンボル値を復元するために、デバイナリゼーション(de−binarization)を行う。復元されたシンボルは、本質的に非2値である。復元されたシンボル値は、デコーダの残りの様態に用いられる。
前述のように、CABACの符号化および/または復号処理は、少なくとも2つの異なる演算モードを含む。第1のモードでは、確率モデルが、実際に符号化されたビン値に基づいてアップデートされ、一般に「レギュラー符号化モード」と呼ばれる。レギュラー符号化モードは、関連する計算が複雑であり、終了までにかなり時間がかかるのに加えて、いくつかの逐次的な直列操作を必要とする。第2のモードでは、確率モデルが、実際に符号化されたビン値に基づいてアップデートされず、一般に「バイパス符号化モード」と呼ばれる。第2のモードでは、ビンを復号するための確率モデルは、(おそらく一定の確率より他には)存在せず、従って、確率モデルをアップデートする必要はない。
好ましい実施形態は、変換係数と関連するビットストリームを復号するための方法であって、本方法は、ビットストリームを取得するステップ;所定の条件に基づいて復号モードを決定するステップであって;前記所定の条件が満たされる場合には、バイパス復号モードを利用することが決定され;前記所定の条件が満たされない場合には、レギュラー復号モードおよびバイパス復号モードを選択的に利用することが決定される、決定するステップ;決定されたモードに従ってビットストリームを復号するステップを備える。
技術的な問題
HEVCにおいてCABAC符号化を利用するときに、スループット性能は、以下には限定されないが、ビン/画素の総数、バイパス・ビン/画素数、およびレギュラー(またはコンテキスト)符号化されるビン/画素数のような、様々な因子に依存して異なりうる。一般的に言って、高ビットレート符号化(低量子化パラメータ(QP:Quantization Parameter)値)の場合に関するスループットは、他の場合のスループットに比べて著しく低い。それゆえに、高ビットレートの場合には、スループットがかなりの処理リソース量を消費する、および/または、符号化/復号にかなり時間がかかる。以下の開示は、この問題および他の問題を解決する。
CABACは、残差サンプルを圧縮するために、ロスレス符号化モードで用いてよいことも知られている。一例において、残差サンプルは、画像における特定の位置に対応する値である。典型的に、残差サンプルは、画像における特定の位置に対応する値と、画像における同じ特定の位置に対応する予測値との差に対応する。代わりに、残差サンプルは、変換操作によって処理されなかった、つまりTQCを生成するために通常は用いない変換操作を用いた画像における特定の位置に対応する値である。残差サンプルは、そのサンプルサイズ(例えば、4×4,8×8,16×16,32×32,16×32など)によって異なるブロック・サイズに由来しうる。TQCの符号化と同様に、2D残差サンプル・ブロックは、エントロピー符号化の前に最初に1Dアレイに変換される。一例において、4×4のブロックにおける2Dアレイの残差サンプルは、表(2)に示されるように配置される。
2D残差サンプルを1Dアレイに変換するときに、ブロックは、斜めにジグザグ状にスキャンされる。例を続けると、表(2)に示される2Dアレイの残差サンプルは、第1行および第1列、第1行および第2列、第2行および第1列、第3行および第1列、第2行および第2列、第1行および第3列、第1行および第4列、第2行および第3列、第3行および第2列、第4行および第1列などをスキャンすることによって1Dアレイの残差サンプル[4,0,3,−3,2,1,0,−1,0,・・・]に変換される。
残差サンプルの1Dアレイは、CABACではシンタックス要素(SE)の列によって表される。残差サンプルの1Dアレイの例に関するSEの列の例が図11に示される。SEは、次のパラメータ、すなわち、Last_position_X/Y、有意性マップ、および属性Greater_than_1、Greater_than_2、正負情報、ならびにAbsolute−3を表す。
HEVCにおけるCABACのロスレス符号化モードでは、代表的なSEが符号化される。図3のCABACフレームワークは、SEを符号化するために用いられる。CABAC符号化技術は、段階を用いたシンボルの符号化を含む。第1段階において、CABACは、入力シンボルを2値シンボルの列または「ビン」へマッピングするために「バイナライザ」を用いる。入力シンボルは、ビットに符号化される前に2値化されるか、別の状況では2値(1または0)シンボルの列に変換される、非2値シンボルである。ビンは、前述の「レギュラー符号化エンジン」を用いてビットに符号化することができる。
CABACのロスレス符号化モードにおけるレギュラー符号化エンジンでは、第2段階において、(CABACのロスレス符号化モードにおける「コンテキストモデル」としても知られる)確率モデルが選択される。モデルは、2値化された入力シンボルの1つ以上のビンを算術符号化するために用いられる。このモデルは、最近符号化されたシンボルの関数であるコンテキストに依存して、利用可能なモデルのリストから選択される。モデルは、ビンが「1」または「0」である確率を記憶する。第3段階において、算術エンコーダは、選択されたモデルに従って各ビンを符号化する。「0」および「1」に対応する2つの部分範囲がビン毎に存在する。第4段階は、モデルのアップデートを含む。選択されたモデルは、実際に符号化されたビン値に基づいてアップデートされる(例えば、ビンが「1」であった場合には、「1」の頻度数が増やされる)。CABAC復号のための復号技術は、処理を逆に行う。
前段落に記載されるように用いるモデルの数は、184である。具体的には、Last_position_X/Yに36モデル(Last_position_Xに18モデル、Last_position_Yに18モデル)を用い、有意性マップに48モデル(4×4のブロック:輝度9、色差6;8×8のブロック:輝度11、色差11;16×16または32×32のブロック:輝度7、色差4)を用い、属性Greater_than_1、Greater_than_2,正負情報、およびAbsolute−3に100モデル(輝度のGreater_than_1フラグ:30;色差のGreater_than_1フラグ20、輝度のGreater_than_2フラグ:30;色差のGreater_than_2フラグ20)を用いる。
HEVCにおけるCABAC符号化をロスレス符号化モードで利用するときに、符号化/復号は、計算が複雑である。計算複雑度の1つの理由は、先に説明したように、184モデルを用いることにある。この計算複雑度のために、符号化/復号は、かなりの処理リソース量を消費する、および/または、終了までにかなり時間がかかる。以下の開示は、これらの問題を解決する。
HEVCエンコーダのブロック・ダイアグラムである。 CABACによるシンタックス要素のシーケンスを示す表である。 シンタックス要素のシーケンスに関するCABACフレームワークのブロック・ダイアグラムである。 エンコーダおよびデコーダの例を示すブロック・ダイアグラムである。 電子デバイス上での高スループット2値化モードのための方法の一構成を示すフロー・ダイアグラムである。 高スループット2値化モードを用いて処理するエンコーダの一構成を示すフロー・ダイアグラムである。 復号側の電子デバイス上での高スループット2値化モードのための方法の一構成を示すフロー・ダイアグラムである。 高スループット2値化モードを用いて処理するデコーダの一構成を示すフロー・ダイアグラムである。 高スループット2値化モードにおいて入力値を決定するために用いるマッピング表を示す。 高スループット2値化モードにおいて適応的2値化に用いる複数の2値化表を示す。 CABACにおけるロスレス符号化モードによるシンタックス要素のシーケンスを示す表である。 ロスレス符号化技術のためのエンコーダおよびデコーダの例を示すブロック・ダイアグラムである。 電子デバイス上でのロスレス符号化のための方法の一構成を示すフロー・ダイアグラムである。 図13に示される構成によるシンタックス要素のシーケンスを示す表である。 復号側の電子デバイス上でのロスレス復号のための方法の一構成を示すフロー・ダイアグラムである。 電子デバイス上でのロスレス符号化のための方法の別の構成を示すフロー・ダイアグラムである。 復号側の電子デバイス上でのロスレス符号化のための方法の別の構成を示すフロー・ダイアグラムである。 電子デバイス上でのロスレス符号化のための方法のさらに別の構成を示すフロー・ダイアグラムである。 復号側の電子デバイス上でのロスレス符号化のための方法のさらに別の構成を示すフロー・ダイアグラムである。 高スループット2値化モード条件が満たされるかどうかを判定するためのエンコーダまたはデコーダの構成の例を示すフロー・ダイアグラムである。 高スループット2値化モード条件が満たされるかどうかを判定するためのエンコーダまたはデコーダの構成の例を示すフロー・ダイアグラムである。 高スループット2値化モード条件が満たされるかどうかを判定するためのエンコーダまたはデコーダの構成の例を示すフロー・ダイアグラムである。 高スループット2値化モード条件が満たされるかどうかを判定するためのエンコーダまたはデコーダの構成の例を示すフロー・ダイアグラムである。 高スループット2値化モード条件が満たされるかどうかを判定するためのエンコーダまたはデコーダの構成の例を示すフロー・ダイアグラムである。 復号側の電子デバイス上で高スループット・モード条件が満たされるかどうかを判定するための方法の一構成を示すフロー・ダイアグラムである。 復号側の電子デバイス上で高スループット・モード条件が満たされるかどうかを判定するための方法の別の構成を示すフロー・ダイアグラムである。 エンコーダおよびデコーダの例を示すブロック・ダイアグラムである。 復号側の電子デバイス上での高スループット有意性マップ復号のための方法の構成を示すフロー・ダイアグラムである。 復号側の電子デバイス上での高スループット有意性マップ復号のための方法の別の構成を示すフロー・ダイアグラムである。 復号側の電子デバイス上での復号バイパス機能による高スループット有意性マップ復号のための方法の構成を示すフロー・ダイアグラムである。 復号側の電子デバイス上での復号法切り替え機能による高スループット有意性マップ復号のための方法の構成を示すフロー・ダイアグラムである。 CABACにおけるロスレス符号化モードに従ってライスパラメータ(Rice parameter)をアップデートするために用いる表である。 エンコーダおよびデコーダの例を示すブロック・ダイアグラムである。 電子デバイス上での異なるパラメータ選択によるロスレス符号化のための方法の一構成を示すフロー・ダイアグラムである。 復号側の電子デバイス上での異なるパラメータ選択によるロスレス符号化のための方法の一構成を示すフロー・ダイアグラムである。 CABACに従って生成されるシンタックス要素の例である。 エンコーダおよびデコーダの例を示すブロック・ダイアグラムである。 電子デバイス上でのHEVCにおけるCABACの高スループット符号化のための方法の一構成を示すフロー・ダイアグラムである。 復号側の電子デバイス上でのHEVCにおけるCABACの高スループット符号化のための方法の一構成を示すフロー・ダイアグラムである。 図34の構成に従って生成されたシンタックス要素の例である。 削減されたライスパラメータ・アップデート表を例示する。 復号側の電子デバイス上でのHEVCにおけるCABACの高スループット符号化のための方法の一構成を示すフロー・ダイアグラムである。 復号側の電子デバイス上でのHEVCにおけるCABACの高スループット符号化のための方法の一構成を示すフロー・ダイアグラムである。 復号側の電子デバイス上でのHEVCにおけるCABACの高スループット符号化のための方法の一構成を示すフロー・ダイアグラムである。
図4は、エンコーダおよびデコーダの例を示すブロック・ダイアグラムである。
システム400は、デコーダ412によって復号されることになる符号化されたブロックを生成するためのエンコーダ411を含む。エンコーダ411およびデコーダ412は、ネットワークを通じて通信する。
エンコーダ411は、高スループット2値化モードを用いて符号化するように構成された電子デバイス421を含む。電子デバイス421は、プロセッサおよびプロセッサと電子通信を行うメモリを備え、メモリは、図5および6に示される操作を行うためにプロセッサによって実行可能な命令を記憶する。
デコーダ412は、高スループット2値化モードを用いて復号するように構成された電子デバイス422を含む。電子デバイス422は、プロセッサおよびプロセッサと電子通信を行うメモリを備え、メモリは、図7および8に示される操作を行うために実行可能な命令を記憶する。
図5は、電子デバイス上での高スループット2値化モードのための方法の一構成を示すフロー・ダイアグラムである。
ブロック511において、電子デバイス421は、変換および量子化された係数(TQC)のブロックを取得する。菱形部512において、電子デバイス421は、高スループット2値化モード条件が満たされるかどうかを判定する。菱形部512で条件が満たされない場合には、ブロック513において、電子デバイス421は、(従来のCABAC選択方式に従って)レギュラー符号化モードおよびバイパス符号化モードを選択的に用いることによってブロックを符号化する。
菱形部512で条件が満たされる場合には、ブロック514において、電子デバイス421は、ブロックを符号化するために高スループット2値化モードおよびバイパス符号化モードを用いる。電子デバイス421は、ブロック515において、生成されたビットストリームをネットワークを通じて送信する、および/または、生成されたビットストリームをメモリデバイスに記憶する。
HTBモードは、レベル値を符号化するためにバイパス符号化モードを用いる。レギュラー符号化モードとは対照的に、バイパス符号化モードは、入力ビンに関して一定の確率分布を仮定するので、計算コストが高いコンテキスト推定および確率アップデート段階は、バイパス符号化では省略される。
符号化のためにバイパス符号化モードを用いるのに加えて、HTBモードは、従来のCABACと比較して、簡略化した正負符号付け構造を符号化に用いる。例えば、従来のCABACは、Greater_than_1、Greater_than_2、正負情報、およびAbsolute−3を含む、符号化のための4つの副部分を必要とする。
図6は、高スループット2値化モードを用いて処理するエンコーダの一構成を示すフロー・ダイアグラムである。
ブロック612〜615は、ブロック514で行う操作をさらに詳細に示す。ブロック612において、電子デバイス421は、絶対値マイナス1関数を各非ゼロ値に適用し、かつ各非ゼロ値の正負をチェックすることによって、TQCのブロックからの任意の非ゼロ値に関して正負およびレベル情報を生成する。説明を容易にするために、本出願明細書の背景技術の部分からの1DアレイのTQCの値[4,0,3,−3,2,1,0,−1,0,・・・]について考察する。絶対値マイナス1関数を各非ゼロ値に適用し、かつ各非ゼロ値の正負をチェックすると、次のように正負およびレベル情報の6つの組み合わせ、すなわち、+3,+2,−2,+1,+0および−0が生成される。
ブロック613において、電子デバイス421は、マッピング表を用いて、入力値を各生成された正負およびレベル情報の組み合わせへマッピングする。マッピング表の例は、図9に示される。図9は、ブロック612および613に従って入力値を決定するための数式も示す。
ブロック614において、電子デバイス421は、複数の2値化表、例えば、コンテキスト適応型可変長符号化(CAVLC:Context Adaptive Variable Length Coding)のVLC表を用いて、入力値の適応的2値化を行う。CAVLCのVLC表の例は、図10に示される。図10は、前の入力情報に基づいて2値化表をアップデートするための数式も示す。
一例において、ブロック614は、少なくとも第1の入力値を2値化するために列VLC−Table−0(図10)からの値を初めに用いることを含みうる。VLC表番号は、前の値が所与の閾値、例えば3、5、13、27より大きいときに単調に増加してもよい。従って、第1の単調増加後に続く適応的2値化は、列VLC−Table−1からの値を用い、第2の単調増加後に続く適応的2値化は、列VLC−Table−2からの値を用いうるなどである。
ブロック615において、電子デバイス421は、CABACバイパス符号化モードを用いて、適応的2値化の結果として生じた値を符号化する。
≪高スループット2値化モード条件≫
一例において、画像データ・ブロックに対応する特性がプリセットされた閾値より大きい場合には、高スループット2値化モード条件が満たされ、例えば、電子デバイス421は、高スループット2値化モード・インジケータ、例えば、HTBモード・フラグを1の値に設定する(これは、もちろん、設計の志向に依存して、HTBモード・フラグのデフォルト値を変更するか、またはHTBモード・フラグをデフォルト値のままにすることを含む)。
一例において、電子デバイス421は、符号化のビットレートがプリセットされた閾値より大きいかどうかを判定する。ビットレートがプリセットされた閾値より大きい場合には、高スループット2値化モード条件が満たされる。一例において、プリセットされたビットレート閾値は、QP16に対応する。しかしながら、異なるQP値に対応するプリセットされた閾値を用いてもよい。
一例において、高スループット2値化モード条件が満たされるかどうかの(電子デバイス421または電子デバイス422による)判定は、対応する画像データ・ブロックの(例えば、変換ユニットによって生成されるレベル値には限定されない)変換ユニットのレベルが、プリセットされた閾値より大きいかどうかに基づく。
一例において、高スループット2値化モード条件は、対応する画像データ・ブロックのゼロより大きいレベル値の数が、プリセットされた閾値、例えば、8より大きいときに満たすことができる。別の例において、高スループット2値化モード条件は、対応する画像データ・ブロックの第1のプリセットされた閾値より大きいレベル値の数が、第2のプリセットされた閾値より大きいときに満たされる。さらなる例において、高スループット2値化モード条件は、対応する画像データ・ブロックのレベル値が、プリセットされた値より大きいときに満たされる。
図20A〜Eは、すぐ前の2つの段落に記載される原理の少なくともいくつかに従って動作するシステムの例において、エンコーダまたはデコーダに用いる構成のいくつかの例を示す。図20Aは、示されるように、処理1611〜1616を示す。図20Bは、示されるように、処理1711〜1716を示す。図20Cは、処理1801〜1805および1814〜1820を示す。図20Dは、処理1901〜1905および1914〜1920を示す。図20Eでは、示されるように、図20Cの処理が処理1816まで行われる。処理1816においてカウンタが閾値より大きい場合には、図20Eに示されるように構成が続く。
一例において、高スループット2値化モード条件が満たされるかどうかの(電子デバイス421または電子デバイス422による)判定は、対応する画像データ・ブロックのスライス・レベルが、プリセットされた閾値より大きいかどうかに基づく。
≪高スループット2値化モード・インジケータ≫
一例において、電子デバイス421は、高スループット2値化インジケータを設定するように構成される。このインジケータの例は、ヘッダ、例えばスライスヘッダにおける、HTBモード・フラグである。高スループット2値化インジケータは、スライスヘッダに対応するブロック(単数または複数)に対して、図5に示される処理が実行されるか否かを判定するために用いられる。
一例において、HTBモード・フラグを「1」に設定すると、電子デバイス421は、HTBモード・フラグ値「1」の観測に応じて、スライスヘッダに対応するブロック(単数または複数)に対して図5のフローチャートに示される処理を行う。HTBモード・フラグを「0」に設定すると、電子デバイス421は、HTBモード・フラグ値「0」の観測に応じて、従来のCABAC技術に従ってスライスヘッダに対応するブロック(単数または複数)を符号化する。
HTBモード・フラグ値は、復号のための電子デバイス422によっても観測される。一例において、電子デバイス422は、HTBモード・フラグ値「1」の観測に応じて、スライスヘッダに対応するブロック(単数または複数)に関して図7のフローチャートに示される処理に従って、HTBモード・フラグ値「1」を有するスライスヘッダに対応するブロック(単数または複数)を復号する。電子デバイス422は、HTBモード・フラグ値「0」の観測に応じて、従来のCABAC技術に従って、HTBモード・フラグ値「0」を有するスライスヘッダに対応するブロック(単数または複数)を復号する。
図7は、復号側の電子デバイス上での高スループット2値化モードのための方法の一構成を示すフロー・ダイアグラムである。
ブロック710において、電子デバイス422は、ビットストリームを取得する。ブロック711において、電子デバイス422は、取得したビットストリームから2値シンボルを復元する。
菱形部712において、電子デバイス422は、高スループット2値化モード条件が満たされるかどうかを判定する。一例において、判定は、受信したビットストリームに対応する、スライスヘッダのような、ヘッダをチェックすることを含む。ヘッダのチェックは、取得したビットストリームに対応するスライスヘッダを高スループット2値化モード・インジケータの値に関してチェックすることをさらに備える。菱形部712で条件が満たされない場合には、ブロック713において、電子デバイス422は、レギュラー復号モードおよびバイパス符号化モードを選択的に用いることによって2値シンボルを復号する。
菱形部712で条件が満たされた場合には、ブロック714において、電子デバイス421は、2値シンボルを復号するために高スループット2値化モードおよびバイパス復号モードを用いる。電子デバイス422は、ブロック715において、取得したTQCのブロックをメモリデバイスに記憶する、および/または、ビデオデータを復元する。
図8は、高スループット2値化モードを用いて処理するデコーダの一構成を示すフロー・ダイアグラムである。
ブロック812〜815は、ブロック714で行われる操作をさらに詳細に示す。ブロック812において、電子デバイス422は、符号化された2値シンボルをバイパス復号する。ブロック813において、電子デバイス422は、バイパス復号の結果をデバイナライズ(de−binarize)する。ブロック814において、電子デバイス422は、マッピング表を用いて、デバイナリゼーション(de−binarization)によって復元された入力値を正負およびレベル情報へマッピングする。ブロック815において、電子デバイス422は、正負およびレベル情報を用いて、変換および量子化された係数(TQC)のブロックを復号する。
一例において、プロセッサおよびプロセッサと電子通信を行うメモリを含んだ電子デバイスが提供される。メモリに記憶されるのは、操作を行うためにプロセッサによって実行可能な命令である。
一例において、操作は、変換および量子化された係数(TQC)のブロックを取得することを含む。別の操作は、高スループット2値化モード条件が満たされるかどうかを判定することを含む。別の操作は、高スループット2値化モード条件が満たされるという判定に応じて、高スループット2値化モードを用いて第1のビットストリームを生成することを含む。別の操作は、高スループット2値化モード条件が満たされないという判定に応じて、第2のビットストリームを生成することを含む。また別の操作は、生成された第1または第2のビットストリームをデコーダへ送信することを含む。
一例において、高スループット2値化モードを用いた第1のビットストリームの生成は、追加の操作を含む。1つの操作は、絶対値マイナス1関数を各非ゼロ値に適用し、かつ各非ゼロ値の正負をチェックすることによって、ブロックからの任意の非ゼロ値に関して正負およびレベル情報を生成することを含む。別の操作は、マッピング表を用いて、入力値を各生成された正負およびレベル情報の組み合わせへマッピングすることを含む。別の操作は、複数の2値化表を用いて、マッピングした入力値の適応的2値化を行うことを含む。また別の操作は、適応的2値化の結果を符号化することを含む。
一例において、複数の2値化表は、CAVLCのVLC表を含む。適応的2値化の結果の符号化は、CABACバイパス符号化モードを利用する操作をさらに含む。
一例において、複数の2値化表を用いたマッピングした入力値の適応的2値化は、追加の操作を含む。1つの操作は、マッピングした入力値の1つがプリセットされた閾値より大きいかどうかを判定することを含む。別の操作は、前記マッピングした入力値がプリセットされた閾値より大きいという判定に応じて、表のアップデートを行うことを含む。一例において、表のアップデート選択は、一組の表からある表を選択することを備える。
一例において、第1のビットストリームの生成は、追加の操作を含む。1つの操作は、CABACによるレギュラー符号化モードおよびバイパス符号化モードを選択的に利用することによってブロックを符号化することを含む。別の操作は、バイパス符号化モードのみを利用して第1のビットストリームを生成することを含む。
一例において、高スループット2値化モード条件が満たされるかどうかの判定は、画像データ・ブロックに対応する特性がプリセットされた閾値より大きいかどうかに基づく。
一例において、高スループット2値化モード条件が満たされるかどうかの判定は、対応する画像データ・ブロックのスライス・レベルがプリセットされた閾値より大きいかどうかに基づく。
一例において、高スループット2値化モード条件が満たされるかどうかの判定は、対応する画像データ・ブロックの変換ユニットのレベルがプリセットされた閾値より大きいかどうかに基づく。
≪HEVCにおけるCABACのロスレス符号化技術≫
図12は、ロスレス符号化技術のためのエンコーダおよびデコーダの例を示すブロック・ダイアグラムである。
システム1400は、デコーダ1412によって復号されることになる符号化されたブロックを生成するためのエンコーダ1411を含む。エンコーダ1411およびデコーダ1412は、ネットワークを通じて通信する。
エンコーダ1411は、HEVCにおけるCABACのロスレス符号化技術を用いて符号化するように構成された電子デバイス1421を含む。電子デバイス1421は、プロセッサおよびプロセッサと電子通信を行うメモリを備え、メモリは、図13、16および18に示される操作を行うためにプロセッサによって実行可能な命令を記憶する。
デコーダ1412は、HEVCにおけるCABACのロスレス符号化技術を用いて復号するように構成された電子デバイス1422を含む。電子デバイス1422は、プロセッサおよびプロセッサと電子通信を行うメモリを備え、メモリは、図15、17、および19に示される操作を行うために実行可能な命令を記憶する。
図13は、電子デバイス上でのロスレス符号化のための方法の一構成を示すフロー・ダイアグラムである。
ブロック911において、電子デバイス1421は、残差サンプルを表すブロックを取得する。一例において、ジグザグ・スキャン方向は、隣接画素間の空間的冗長性を除去するために用いるイントラ予測の方向に合うように再定義される。ロスレス・イントラ符号化モードには利用可能ないくつかのイントラ予測モードがある。一例において、垂直イントラ予測モードでは、上側の画素が現在の画素値の予測値になり、現在の値と予測値(垂直モードにおける上側の画素値)との間の差が残差サンプル値になる。コンテキストモデル選択は、イントラ予測の方向および対応するブロック・サイズにも依存する。
ブロック912において、電子デバイス1421は、シンタックス要素のシーケンスに用いるべき有意性マップを生成する。ブロック913において、電子デバイス1421は、ブロックの最後のスキャン位置に対応する有意性マップ・フィールドに、ブロックの最後の位置のレベルに対応する値を入力する。
ブロック914において、電子デバイス1421は、前記値を有する有意性マップを含んだシンタックス要素のシーケンスを生成する。シンタックス要素のシーケンスの生成は、従来のCABACロスレス符号化モードの最後の位置を符号化するステップは除外する。
図14は、図13に示される構成によるシンタックス要素のシーケンスを示す表である。
図14に示されるシンタックス要素のシーケンスを図11に示されるシンタックス要素のシーケンスと対比することによって、いくつかの相違に気付くことができる。図11に示されるシンタックス要素のシーケンスは、従来のCABACロスレス符号化モードが最後の位置の符号化ステップを含むので、Last_position_XフィールドおよびLast_position_Yフィールドを含む。対照的に、図14に示されるシンタックス要素のシーケンスは、図14の構成が最後の位置の符号化ステップを省略するので、Last_position_XフィールドおよびLast_position_Yフィールドを含まない。
シンタックス要素の両方のシーケンスが有意性マップを含むが、有意性マップの間には相違がある。図11のシンタックス要素のシーケンスの有意性マップでは、入力されたLast_position_X/Last_position_Yフィールドに対応すべき有意性マップ・フィールドは、入力されていない。対照的に、図14では、ブロックの最後のスキャン位置に対応する有意性マップ・フィールドは、ブロックの最後の位置のレベルに対応する値、すなわちこのブロックの例では「0」が入力されている。
図15は、復号側の電子デバイス上でのロスレス復号のための方法の一構成を示すフロー・ダイアグラムである。
ブロック1011において、電子デバイス1422は、ビットストリームから、ブロックの最後のスキャン位置に対応する値の数を含んだ有意性マップ・フィールドを有するシンタックス要素のシーケンスを復元する。ブロック1012において、電子デバイス1422は、有意性マップを用い、かつ有意性マップの前記値を用いて、ブロックのレベルを復号する。ブロック1013において、電子デバイス1422は、残差値に対応する取得したブロックをメモリデバイスに記憶する、および/または、ビデオデータを復元する。
図16は、電子デバイス上でのロスレス符号化のための方法の別の構成を示すフロー・ダイアグラムである。
ブロック1111において、電子デバイス1421は、残差サンプルのブロックに関するレベル情報を表すシンタックス要素の列を取得する。ブロック1112において、電子デバイス1421は、複数の2値化表、例えば、CAVLCのVLC表(図10)を用いて、シンタックス要素のシーケンスのAbsolute−3部分の値の適応的2値化を行い、シンタックス要素のシーケンスのAbsolute−3部分の値は、複数の2値化表のための入力値として用いる。前の入力情報に基づいて2値化表をアップデートするための式が以下に示される。
if(‘abs[coefficient(i)]−3’>(Table[vlc]))vlc++;
ここで、Table[vlc]={3,5,13,27};
「i」はスキャン位置を表し、「vlc」は現在のvlc表番号を表す。
*利用可能な前の「Absolute−3」が何もないので、vlcは最初にゼロ(またはイントラスライスでは1)に設定され、vlcが4に等しいときにvlc表のアップデートは停止される。
一例において、ブロック1111は、少なくとも第1の入力値を2値化するために、インタースライスでは列VLC−Table−0(図10)およびイントラスライスでは列VLC−Table−1からの値を初めに用いることを含みうる。VLC表番号は、前の値が所与の閾値、例えば3、5、13、27より大きいときに単調に増加してもよい。従って、第1の単調増加後に続く適応的2値化は、列VLC−Table−1からの値を用い、第2の単調増加後に続く適応的2値化は、列VLC−Table−2からの値を用いうるなどである。
ブロック1113において、電子デバイス1421は、CABACバイパス符号化モードを用いて、適応的2値化の結果として生じた値を符号化する。
図17は、復号側の電子デバイス上でのロスレス符号化のための方法の別の構成を示すフロー・ダイアグラムである。
ブロック1211において、電子デバイス1422は、ビットストリームから2値シンボルを復元する。ブロック1212において、電子デバイス1422は、2値シンボルをバイパス復号する。ブロック1213において、電子デバイス1422は、バイパス復号の結果を適応的にデバイナライズする。ブロック1214において、電子デバイス1422は、適応的デバイナリゼーションの結果を用いて、残差情報を表すブロックを復元する。
図18は、電子デバイス上でのロスレス符号化のための方法のさらに別の構成を示すフロー・ダイアグラムである。
ブロック1311において、電子デバイス1421は、CABACのコンテキストモデルのサブセットのみにアクセスする。CABACのコンテキストモデルの数は、184である。サブセットを生成するために、これらのコンテキストモデルは、コンテキストモデルの関連する特性に基づいて、例えば、どのコンテキストモデルが周波数成分と関連するかに基づいて、どのコンテキストモデルがスキャン位置と関連するかに基づいて、どのコンテキストモデルがCABACの最後の位置の符号化ステップと関連するかに基づいてなど、またはそれらの任意の組み合わせに基づいてフィルタされる。フィルタリングは、一例において、電子デバイス1421によって行われるが、他の例では、電子デバイス1421がロスレス符号化モードのために供給されるサブセットにアクセスできるように、電子デバイス1421に対してサブセットが供給されてもよい。一例において、サブセットを生成するために、CABACのコンテキストモデルは、コンテキストモデルの関連する特性に基づいて、例えば、どのコンテキストモデルが周波数成分と関連するかに基づいて、どのコンテキストモデルがスキャン位置と関連するかに基づいて、どのコンテキストモデルがCABACの最後の位置の符号化ステップと関連するかに基づいてなど、またはそれらの任意の組み合わせに基づいて分類される。一例において、周波数成分とスキャン位置とは等しく、交換可能である。
一例において、サブセットは、第1の周波数成分に等しくない周波数成分をもつCABACコンテキストモデルは含まない。一例において、結果として生じるサブセットは、26のコンテキストモデル、すなわち、有意性マップを符号化するための(一方は第1の輝度周波数成分に関し、他方は第1の色差周波数成分に関する)2つのコンテキストモデル、および、Greater_than_1フラグの第1の輝度周波数成分を符号化するため、Greater_than_1フラグの第1の色差周波数成分を符号化するため、輝度のGreater_than_2フラグの第1の輝度周波数成分を符号化するため、およびGreater_than_2フラグの第1の色差周波数成分を符号化するためのそれぞれ6つのコンテキストモデルを含むことになろう。延いては、Greater_than_1およびGreater_than_2のために合計24のコンテキストモデルを用いる。一例において、前記第1の周波数成分は、ブロック1312において有意性マップを符号化するときにのみアクセスされる。
表(3)に示されるように、フラグの第1の輝度周波数を符号化するための6つのコンテキストモデルは、サブブロック・タイプおよびLargerT1値に依存し、ここで、LargerT1値は、前のサブブロックにおける1より大きい係数レベル値の数である。一例において、用語「サブブロック」は、残差サンプル(またはブロックのTQCへの)細分化を指す。例えば、4×4のサブブロック・サイズでは、8×8のサイズをもつ残差サンプルが4つの4×4のサブブロックに分割される。同様に、8×4のサブブロック・サイズでは、32×8のサイズをもつ残差サンプルが8つの8×4のサブブロックに分割される。サブブロックは、符号化順によって特定され、サブブロック0が最初に符号化されるサブブロックを示す。一例において、最初に符号化されるサブブロックは、ブロックの右下に位置するサブブロックである。別の例では、最初に符号化されるサブブロックは、ブロックの中央に位置するサブブロックである。
ブロック1312において、電子デバイス1421は、有意性マップを符号化するためにコンテキストモデルのサブセットを用いる。
段落0122に記載されるように、第1の周波数成分(またはスキャン位置)に等しくない周波数成分(またはスキャン位置)をもつコンテキストモデルは、ロスレス符号化モードには用いない。これは、ロスレス符号化に関して計算複雑度およびメモリを削減する利益を有する。コンテキストモデルの第1のサブセットは、有意性マップの処理に用いる。コンテキストモデルの第2のサブセットは、レベルの符号化、例えば、Greater_than_1の符号化および/またはGreater_than_2の符号化に用いる。第1のサブセットは、第2のサブセットと異なってもよい。
上記の原理の少なくともいくつかを適用する例において、有意性マップの処理に用いるコンテキストモデルの第1のサブセットは、1つのみのコンテキストモデルを備える。上記の原理の少なくともいくつかを適用する別の例では、有意性マップの処理に用いるコンテキストモデルの第1のサブセットは、色情報(輝度/色差)に基づく1つより多いコンテキストモデル、例えば、2つまたは3つのコンテキストモデルを備える。上記の原理の少なくともいくつかを適用するさらに別の例では、有意性マップの処理に用いるコンテキストモデルの第1のサブセットは、予測タイプ、例えば、ブロック内のフレーム内またはフレーム間予測の使用に基づく1つより多いコンテキストモデル、例えば、いくつかのコンテキストモデルを備える。上記の原理の少なくともいくつかを適用する別の例では、有意性マップの処理に用いるコンテキストモデルの第1のサブセットは、ブロック・サイズに基づく1つより多いコンテキストモデル、例えば、2つまたは3つのコンテキストモデルを備える。上記の原理の少なくともいくつかを適用する別の例では、有意性マップの処理に用いるコンテキストモデルの第1のサブセットは、サブブロック・タイプに基づく1つより多いコンテキストモデル、例えば、2つまたは3つのコンテキストモデルを備える。
上記の原理の少なくともいくつかを適用する例において、レベル符号化に用いるコンテキストモデルの第2のサブセットは、1つのみのコンテキストモデルを備える。上記の原理の少なくともいくつかを適用する別の例では、レベル符号化に用いるコンテキストモデルの第2のサブセットは、色情報(輝度/色差)に基づく1つより多いコンテキストモデル、例えば、2つまたは3つのコンテキストモデルを備える。上記の原理の少なくともいくつかを適用するさらに別の例では、レベル符号化に用いるコンテキストモデルの第2のサブセットは、ブロック予測タイプ、例えば、ブロック内のフレーム内またはフレーム間予測の使用に基づく1つより多いコンテキストモデル、例えば、いくつかのコンテキストモデルを備える。上記の原理の少なくともいくつかを適用する別の例では、レベル符号化に用いるコンテキストモデルの第1のサブセットは、ブロック・サイズに基づく1つより多いコンテキストモデル、例えば、2つまたは3つのコンテキストモデルを備える。上記の原理の少なくともいくつかを適用する別の例では、レベル符号化の処理に用いるコンテキストモデルの第1のサブセットは、サブブロック・タイプに基づく1つより多いコンテキストモデル、例えば、2つまたは3つのコンテキストモデルを備える。
図19は、復号側の電子デバイス上でのロスレス符号化のための方法のさらに別の構成を示すフロー・ダイアグラムである。
ブロック1511において、電子デバイス1422は、CABACのコンテキストモデルのサブセットのみにアクセスする。ブロック1512において、電子デバイス1422は、コンテキストモデルのサブセットを用いてビットストリームから2値シンボルを復元する。ブロック1513において、電子デバイス1422は、復号の結果を用いてビデオデータを復元する。
以上では、電子デバイス1421によって実装される構成は、図13、16、および18に示される。これらの構成のすべてを用いてエンコーダを構成すると、符号化性能は、既知のCABACロスレス符号化モードに比べて向上する。しかしながら、これらの構成の一部を任意に組み合わせて、例えば、これらの構成の1つまたはこれらの構成の任意の2つを用いてエンコーダを構成しても、符号化性能は、可能かつ実用的であり、既知のCABACロスレス符号化モードに比べて向上する。
以上では、電子デバイス1422によって実装される構成は、図14、17、および19に示される。これらの構成のすべてを用いてデコーダを構成すると、符号化性能は、既知のCABACロスレス符号化モードに比べて向上する。しかしながら、これらの構成の一部を任意に組み合わせて、例えば、これらの構成の1つまたはこれらの構成の任意の2つを用いてデコーダを構成しても、符号化性能は、可能かつ実用的であり、既知のCABACロスレス符号化モードに比べて向上する。
一例において、プロセッサおよびプロセッサと電子通信を行うメモリを含んだ電子デバイスが提供される。メモリに記憶されるのは、操作を行うためにプロセッサによって実行可能な命令である。
一例において、操作は、ロスレス符号化のために残差サンプルを表すブロックを取得することを含む。別の操作は、有意性マップを生成することを含み、この生成は、ブロックの最後のスキャン位置に対応する有意性マップ・フィールドに、ブロックの最後位置のレベルに対応する値を入力することを含む。別の操作は、この値を有する有意性マップを含んだシンタックス要素のシーケンスを生成することを含む。また別の操作は、生成されたシンタックス要素のシーケンスを表すビットストリームをデコーダへ送信することを含む。
一例において、シンタックス要素のシーケンスは、コンテキスト適応型2値算術符号化(CABAC)の最後の位置を符号化するステップを行わずに生成される。
一例において、別の操作は、複数の2値化表を用いて適応的2値化を行うことを含み、シンタックス要素のシーケンスのAbsolute−3部分の値は、複数の2値化表のための入力値として用いる。また別の操作は、適応的2値化の結果を符号化することを含む。複数の2値化表は、CAVACのVLC表であってもよい。
一例において、適応的2値化の結果の符号化は、追加の操作をさらに含む。追加の操作は、CABACバイパス符号化モードを利用することを含む。
一例において、複数の2値化表を用いた入力値の適応的2値化は、追加の操作を含む。追加の操作は、入力値の1つがプリセットされた閾値より大きいかどうかを判定することを含む。追加の操作は、前記入力値がプリセットされた閾値より大きいという判定に応じて、表のアップデートを行うことを含む。
一例において、別の操作は、CABACのコンテキストモデルのサブセットのみにアクセスすることを含む。別の操作は、有意性マップを符号化するためにコンテキストモデルのサブセットを用いることを含む。サブセットは、第1の周波数に等しくない周波数成分をもつCABACのコンテキストモデルを備えてもよい。
一例において、プロセッサおよびプロセッサと電子通信を行うメモリを含んだ電子デバイスが提供される。メモリに記憶されるのは、操作を行うためにプロセッサによって実行可能な命令である。
一例において、操作は、ロスレス符号化のために残差サンプルを表すブロックを取得することを含む。別の操作は、ブロックを表すためにシンタックス要素のシーケンスを生成することを含む。別の操作は、複数の2値化表を用いて適応的2値化を行うことを含み、シンタックス要素のシーケンスのAbsolute−3部分の値は、複数の2値化表のための入力値として用いる。別の操作は、適応的2値化の結果を符号化することを含む。また別の操作は、符号化をデコーダへ送信することを含む。
一例において、複数の2値化表は、CAVLCのVLC表である。
一例において、適応的2値化の結果の符号化は、追加の操作を含む。追加の操作は、コンテキスト適応型2値算術符号化(CABAC)バイパス符号化モードを利用することを含む。
一例において、複数の2値化表を用いた入力値の適応的2値化は、追加の操作を含む。追加の操作は、入力値の1つがプリセットされた閾値より大きいかどうかを判定することを含む。追加の操作は、前記入力値がプリセットされた閾値より大きいという判定に応じて、表のアップデートを行うことを含む。
一例において、別の操作は、有意性マップを生成することを含み、この生成は、ブロックの最後のスキャン位置に対応する有意性マップ・フィールドに、ブロックの最後のスキャン位置のレベルに対応する値を入力することを含む。別の操作は、生成された有意性マップを用いてシンタックス要素のシーケンスを生成することを含む。
一例において、シンタックス要素のシーケンスは、CABACの最後の位置を符号化するステップを行なわずに生成される。
一例において、方法が提供される。方法は、デコーダを用いて行われる。方法の1つの操作は、どのコンテキストモデルが周波数成分に関連するかに基づいて、コンテキスト適応型2値算術符号化(CABAC)のコンテキストモデルをフィルタすることを含む。方法の別の操作は、ビットストリームを取得することを含む。方法の別の操作は、ビットストリームから2値シンボルを復元することを含む。方法の別の操作は、フィルタされたコンテキストモデルを用いて2値シンボルを復号することを含む。方法のまた別の操作は、復号の結果を用いてビデオデータを復元することを含む。
一例において、別の操作は、ビットストリームから、残差サンプルを表すブロックの最後のスキャン位置に対応する値が入力された有意性マップを有する、シンタックス要素のシーケンスを復元することを含む。別の操作は、有意性マップを用い、かつ有意性マップの前記値を用いて、ブロックのレベルを復号することを含む。
一例において、ブロックのレベルの復号は、CABACの最後の位置を復号するステップを行わずに行われる。
一例において、別の操作は、復元された2値シンボルをバイパス復号することを含む。別の操作は、バイパス復号の結果を適応的にデバイナライズすることを含む。別の操作は、デバイナリゼーションの結果を用いて残差情報を表すブロックを復元することを含む。
一例において、別の操作は、適応的デバイナリゼーションのためにCAVLCの複数のVLC表を用いることを含む。
一例において、バイパス復号は、CABACバイパス復号モードを利用することを含む。
図21は、復号側の電子デバイス上で高スループット・モード条件が満たされるかどうかを判定するための方法の一構成を示すフロー・ダイアグラムである。
ブロック2611において、電子デバイス422は、ビットストリームを取得する。ブロック2612において、電子デバイス422は、レベル値のブロックを取得する。一例において、ブロックは、TQCのブロックを備える。
ブロック2613において、電子デバイス422は、ゼロに等しくないレベル値の数を決定する。菱形部2614において、電子デバイス422は、この数がプリセットされた閾値より大きいかどうかを判定する。一例において、プリセットされた閾値は8であり、これは4×4のブロックの値の数の半分である。N個のレベル値を有するブロック・サイズを用いた例では、閾値は、Nの50%に相当する。一例において、電子デバイス422は、電子デバイス421からシグナリングを受信する。電子デバイス421によって送信されるシグナリングは、プリセットされた閾値を指定するか、またはプリセットされた閾値を決定するために電子デバイス421によって用いられる情報を含む。
菱形部2614でこの数がプリセットされた閾値より大きくない場合には、ブロック2615において、電子デバイス422は、第1の2値化法を用いてゼロに等しくないレベル値を復号する。菱形部2614でこの数がプリセットされた閾値より大きい場合には、ブロック2616において、電子デバイス422は、第1の2値化法とは異なる第2の2値化法を用いてゼロに等しくないレベル値を復号する。一例において、第2の2値化法は、前述のHTBモードのような、高スループット2値化モードを備える。一例において、第1の2値化法は、従来のCABACの2値化を備える。
図22は、復号側の電子デバイス上で高スループット・モード条件が満たされるかどうかを判定するための方法の別の構成を示すフロー・ダイアグラムである。
ブロック2711において、電子デバイス422は、ビットストリームを取得する。ブロック2712において、電子デバイス422は、レベル値のブロックを取得する。一例において、ブロックは、TQCのブロックを備える。
ブロック2713において、電子デバイス422は、第1のプリセットされた閾値より大きい絶対値をもつレベル値の数を決定する。一例において、第1のプリセットされた閾値は、1または2のいずれかであるが、他の例では他の第1のプリセットされた閾値を用いてもよい。菱形部2714において、電子デバイス422は、この数が第2のプリセットされた閾値より大きいかどうかを判定する。一例において、第2のプリセットされた閾値は8であり、これは4×4のブロックの値の数の半分である。N個のレベル値を有するブロック・サイズを用いた例では、第2のプリセットされた閾値は、Nの50%に相当する。
一例において、電子デバイス422は、電子デバイス421からシグナリングを受信する。電子デバイス421によって送信されるシグナリングは、第1のプリセットされた閾値および/または第2のプリセットされた閾値を指定するか、または、第1のプリセットされた閾値および/または第2のプリセットされた閾値を決定するために電子デバイス421によって用いられる情報を含む。
菱形部2714でこの数が第2のプリセットされた閾値より大きくない場合には、ブロック2715において、電子デバイス422は、第1の2値化法を用いてゼロに等しくないレベル値を復号する。菱形部2714でこの数がプリセットされた閾値より大きい場合には、ブロック2716において、電子デバイス422は、第1の2値化法とは異なる第2の2値化法を用いてゼロに等しくないレベル値を復号する。一例において、第2の2値化法は、高スループット・デバイナリゼーション・モード、かかる前述のHTBモードを備える。一例において、第1の2値化法は、既知のCABAC復号の2値化を備える。
図23は、エンコーダおよびデコーダの例を示すブロック・ダイアグラムである。
システム2400は、デコーダ2412によって復号されるべく符号化されたブロックを生成するためのエンコーダ2411を含む。エンコーダ2411およびデコーダ2412は、ネットワークを通じて通信する。
デコーダ2412は、高スループット有意性マップ処理を用いて復号するように構成された電子デバイス2422を含む。電子デバイス2422は、プロセッサおよびプロセッサと電子通信を行うメモリを備え、メモリは、図24〜27に示される操作を行うために実行可能な命令を記憶する。
エンコーダ2411は、プロセッサおよびプロセッサと電子通信を行うメモリを備える電子デバイス2421を含み、メモリは、図24〜27に示される構成の記載およびそれらに対応する記載から当業者によって理解されるであろう操作を行うためにプロセッサによって実行可能な命令を記憶する。
図24は、復号側の電子デバイス上での高スループット有意性マップ復号のための方法の構成を示すフロー・ダイアグラムである。
ブロック2801において、電子デバイス2422は、ビットストリームを取得する。ブロック2802において、電子デバイス2422は、レベル値のブロックを取得する。一例において、ブロックは、TQCのブロックを備える。ブロック2803において、電子デバイス2422は、ブロックのレベル値、例えば、ブロックの第1のレベル値またはブロックの次のレベル値を取得する。
菱形部2804において、電子デバイス2422は、取得したレベル値がブロックの最後のレベル値であるかどうかを判定する。菱形部2804で、取得したレベル値がブロックの最後のレベル値ではない場合には、電子デバイス2422は、菱形部2814へ進む。菱形部2804で、取得したレベル値が最後のレベル値である場合には、ブロック2805において、電子デバイス2422は、レベル値の大きさを復号する(これは、レベル値ごとに正負情報および絶対的な大きさの両方を決定することを含む)。
再び菱形部2814を参照すると、電子デバイス2422は、第1の復号法を用いて、取得したレベル値がゼロでないかどうかを判定する。菱形部2814で、取得したレベル値がゼロでない場合には、電子デバイス2422は、ブロック2815へ進み、他の場合には、電子デバイス2422は、ブロック2803へ戻る。ブロック2815において、電子デバイス2422は、カウンタをインクリメントする。
菱形部2816において、電子デバイス2422は、カウンタの現在のカウントがプリセットされた閾値より大きいかどうかを判定する。一例において、プリセットされた閾値は、図21を参照して記載したプリセットされた閾値を含む。菱形部2816でカウンタの現在のカウントがプリセットされた閾値より大きい場合には、電子デバイス2422は、ブロック2817へ進む。他の場合には、電子デバイス2422は、ブロック2803へ戻る。
ブロック2817において、電子デバイス2422は、ブロックの次のレベル値を取得する。菱形部2818において、電子デバイス2422は、取得したレベル値がブロックの最後のレベル値であるかどうかを判定する。菱形部2818で、取得したレベル値が最後のレベル値ではない場合には、電子デバイス2422は、ブロック2819へ進む。他の場合には、ブロック2820において、電子デバイス2422は、レベル値の大きさを復号する。
ブロック2819において、電子デバイス2422は、第1の復号法とは異なる第2の復号法を用いて、取得したレベル値がゼロでないかどうかを判定する。一例において、第2の復号法は、高スループット復号法、バイパス復号法などを備える。一例において、第1の復号法は、CABACのレギュラー復号モードを備える。
以上により、有意性マップは、要素ごとに、例えば、有意性マップ・フィールドごとに復号される。プリセットされた閾値に達したときに、電子デバイス2422は、残りの有意性マップ部分の復号を変更できる。残りの有意性マップ部分には高スループットまたはバイパス有意性マップ復号モードが用いられる。それゆえに、復号性能は、従来のCABAC有意性マップ復号より向上する。
図25は、復号側の電子デバイス上での高スループット有意性マップ復号のための方法の別の構成を示すフロー・ダイアグラムである。
図25に示される方法では、示されるように、処理2801〜2805(図24)と同様の処理2901〜2905が行われる。菱形部2914において、電子デバイス2422は、第1の復号法を用いて、取得したレベル値の絶対値が第1の閾値より大きいかどうかを判定する。一例において、第1の閾値は、1または2のいずれかであるが、他の例では他の第1の閾値を用いてもよい。菱形部2914で、取得したレベル値の絶対値が第1の閾値より大きい場合には、電子デバイス2422は、ブロック2915へ進む。他の場合には、電子デバイス2422は、ブロック2903へ戻る。ブロック2915において、電子デバイス2422は、カウンタをインクリメントする。
菱形部2916において、電子デバイス2422は、カウンタの現在のカウントが第2のプリセットされた閾値より大きいかどうかを判定する。一例において、第2のプリセットされた閾値は8であり、これは4×4のブロックの値の数の半分である。N個のレベル値を有するブロック・サイズを用いた例では、第2のプリセットされた閾値は、Nの50%に相当する。菱形部2916でカウンタの現在のカウントが第2の閾値より大きい場合には、電子デバイス2422は、ブロック2917へ進む。他の場合には、電子デバイス2422は、ブロック2903へ戻る。
ブロック2917において、電子デバイス2422は、ブロックの次のレベル値を取得する。菱形部2918において、電子デバイス2422は、取得したレベル値がブロックの最後のレベル値であるかどうかを判定する。菱形部2918で、取得したレベル値がブロックの最後のレベル値ではない場合には、電子デバイス2422は、ブロック2919へ進む。他の場合には、ブロック2920において、電子デバイス2422は、レベル値の大きさを復号する。
ブロック2919において、電子デバイス2422は、第1の復号法とは異なる第2の復号法を用いて、取得したレベル値の絶対値が第1の閾値より大きいかどうかを判定する。一例において、第2の復号法は、高スループット復号法、バイパス復号法などを備える。一例において、第1の復号法は、CABACのレギュラー復号モードを備える。
以上により、有意性マップは、要素ごとに、例えば、有意性マップ・フィールドごとに復号される。プリセットされた閾値に達したときに、電子デバイス2422は、残りの有意性マップ部分の復号を変更できる。残りの有意性マップ部分には高スループットまたはバイパス有意性マップ復号モードが用いられる。それゆえに、復号性能は、従来のCABAC有意性マップ復号より向上する。
図26は、復号側の電子デバイス上での復号バイパス機能による高スループット有意性マップ復号のための方法の構成を示すフロー・ダイアグラムである。
図26に示される方法では、示されるように、処理2801〜2804および2814〜2816(図24)と同様の処理3001〜3004および3014〜3016が行われる。ブロック3005において、電子デバイス2422は、第3の復号法、例えば、2値化法を用いて、レベル値の大きさを復元する。ブロック3020において、電子デバイス2422は、第3の復号法を用いて、レベル値の第1の部分の大きさを復元し、第4の復号法、例えば、異なる2値化法を用いて、レベル値の第2の部分の大きさを復元する。
一例において、レベル値の第1の部分は、第1の復号法を用いて処理されるレベル値を含む。レベル値の第2の部分は、第1の復号法を用いて処理されないレベル値を含む。
復号側の電子デバイス上での復号バイパス機能による高スループット有意性マップ復号のための方法の他の構成が、図26に示される構成と同様に可能かつ実用的であることは明らかであろう。例えば、別の構成において、電子デバイス2422は、菱形部2914(図25)に同様に、第1の復号法を用いて、取得したレベル値の絶対値が第1のプリセットされた閾値より大きいかどうかを判定する。さらに、電子デバイス2422は、菱形部2916(図25)と同様に、カウンタが第2のプリセットされた閾値より大きいかどうかを判定する。
以上により、有意性マップは、要素ごとに、例えば、有意性マップ・フィールドごとに復号される。プリセットされた閾値に達したときに、電子デバイス2422は、有意性マップの復号を停止する(有意性マップの残りの要素は復号されない)。その後、復号された要素に対応するレベル値は、2値化法(例えば、ゼロの値を送ることができる2値化法)を用いて処理され、一方で、残りの要素は、異なる2値化法(例えば、ゼロの値を送ることができない2値化法)を用いて処理される。それゆえに、復号性能は、従来のCABAC有意性マップ復号より向上する。
図27は、復号側の電子デバイス上での復号法切り替え機能による高スループットモード有意性マップ復号のための方法の構成を示すフロー・ダイアグラムである。
図27に示される方法では、示されるように、処理2801〜2804および2814〜2819(図24)と同様の処理3801〜3804および3814〜3819が行われる。ブロック3805において、電子デバイス2422は、第3の復号法(図26の第3の復号法)を用いてレベル値の大きさを復元する。ブロック3820において、電子デバイス2422は、第3の復号法を用いてレベル値の第1の部分の大きさを復元し、第4の復号法(図26の第4の復号法)を用いてレベル値の第2の部分の大きさを復元する。一例において、レベル値の第1の部分は、ブロック3803において取得したレベル値を含み、一方で、レベル値の第2の部分は、ブロック3817において取得したレベル値を含む。
復号側の電子デバイス上での復号バイパス機能による高スループット有意性マップ復号のための方法の他の構成が、図27に示される構成と同様に可能かつ実用的であることは明らかであろう。例えば、別の構成において、電子デバイス2422は、菱形部2914(図25)と同様に、第1の復号法を用いて、取得したレベル値の絶対値が第1のプリセットされた閾値より大きいかどうかを判定する。さらに、電子デバイス2422は、菱形部2916(図25)と同様に、カウンタが第2のプリセットされた閾値より大きいかどうかを判定する。
一例において、プロセッサおよびプロセッサと電子通信を行うメモリを含んだ第1の電子デバイスが提供される。メモリに記憶されるのは、操作を行うためにプロセッサによって実行可能な命令である。
一例において、操作は、ビットストリームを受信することを含む。別の操作は、受信したビットストリームに基づいてレベル値のブロックを取得することを含む。別の操作は、閾値に従ってレベル値の一部分を特定することを含む。別の操作は、その一部分を特定した後に、高スループット有意性マップ処理モードを用いてレベル値のすべての残りの値を処理することを含む。別の操作は、この処理に基づいてビデオデータを復元することを含む。
一例において、プロセッサおよびプロセッサと電子通信を行うメモリを含んだ第2の電子デバイスが提供される。メモリに記憶されるのは、操作を行うためにプロセッサによって実行可能な命令である。操作は、第1の電子デバイスへシグナリングを送信することを含み、シグナリングは、閾値を特定する。
以上により、有意性マップは、要素ごとに、例えば、有意性マップ・フィールドごとに復号される。プリセットされた閾値に達したときに、電子デバイス2422は、有意性マップの復号を停止する(有意性マップの残りの要素は復号されない)。その後、復号された要素に対応するレベル値は、2値化法(例えば、ゼロの値を送ることができる2値化法)を用いて処理され、一方で、残りの要素は、異なる2値化法(例えば、ゼロの値を送ることができない2値化法)を用いて処理される。それゆえに、復号性能は、従来のCABAC有意性マップ復号より向上する。
≪HEVCにおけるCABACの異なるパラメータ選択技術によるロスレス符号化≫
HEVCにおけるCABAC符号化をロスレス符号化モードで利用するときに、符号化/復号は、計算が複雑である。計算複雑度の1つの理由は、シンタックス要素「Absolute−3」を符号化することにある。既知のCABAC符号化では、シンタックス要素を符号化するために指数ゴロムライス(Exponential−Golomb−Rice)符号化法を用いる。
背景として、指数ゴロムライス(G−R)符号化法は、図28に示されるライスパラメータ・アップデート表を利用する。G−R符号化法は、次の段落でさらに詳細に説明されるように、CABACの既知のロスレス符号化モードにおいてシンタックス要素「Absolute−3」(すなわち、図2の表の最終行)を符号化するために適用される。
ライスパラメータは、シンボルのビンへの変換を制御する。例によって説明するために、図28の表およびG−R符号化を用いてシンボル0,11,4...を変換することを考える。ここで「0」(第1のシンボル)は、サブブロックにおける最初のシンボルである。第1のシンボルがサブブロックにおける最初のシンボルなので、最初のシンボルに関してライスパラメータはゼロに初期化される。最初のシンボル「0」は、現在のライスパラメータのゼロを用いて符号化される。一例において、ライスパラメータRPを用いたシンボルの符号化処理は、Quotient=floor((symbol−1)/RP)の値を算出して、1に等しいビンに続く0に等しいビンのQuotient列を含んだ出力を生成することからなる。ここで、Quotient(商)は、整数であり、floor()は、整数および分数成分を含んだ値を整数成分へマッピングする演算である。説明のために、ライスパラメータ3を用いてシンボル「5」を符号化すると、Quotient値1および出力ビン「01」を生じるであろう。同様に、ライスパラメータ33を用いてシンボル「100」を符号化すると、Quotient値3および出力ビン「0001」を生じるであろう。代わりの例では、ライスパラメータRPを用いたシンボルの符号化処理は、Quotient=floor((symbol−1)/RP)の値を算出して、0に等しいビンに続く1に等しいビンのQuotient列を含んだ出力を生成することからなる。さらに別の例では、ライスパラメータRPを用いたシンボル符号化処理は、一組のルックアップ表からシンボルとビンのシーケンスとの間のマッピングを定義するRP番目のルックアップ表を選択することから成る。図28の表によるルックアップ結果がゼロであれば、ライスパラメータは、次のシンボルに関してアップデートしない。従って、第2のシンボル「11」は、現在のライスパラメータのゼロを用いて符号化される。第2のシンボル「11」に関するルックアップ結果(「2」)およびライスパラメータ「0」が現在のライスパラメータ値(すなわち、ゼロ)と異なれば、ライスパラメータは、ゼロから2へアップデートされる。従って、第3のシンボル「4」は、現在のライスパラメータ2を用いて符号化される。ルックアップ結果が現在のライスパラメータと異なる値でなければ、次のシンボルにはライスパラメータ2を用いる。
既知のCABACに従って「Absolute−3」値をG−R符号化する計算は複雑なので、符号化/復号は、かなりの処理リソース量を消費するか、および/または、終了までにかなり時間がかかる。以下の開示は、この問題および他の問題を解決する。
図29は、エンコーダおよびデコーダの例を示すブロック・ダイアグラムである。
システム2900は、デコーダ2912によって復号されることになる符号化されたブロックを生成するためのエンコーダ2911を含む。エンコーダ2911およびデコーダ2912は、ネットワークを通じて通信する。
エンコーダ2911は、HEVCにおけるCABACの異なるパラメータ選択によるロスレス符号化を用いて符号化するように構成された電子デバイス2921を含む。電子デバイス2921は、プロセッサおよびプロセッサと電子通信を行うメモリを備え、メモリは、図30に示される操作を行うためにプロセッサによって実行可能な命令を記憶する。
デコーダ2912は、HEVCにおけるCABACの異なるパラメータ選択によるロスレス符号化を用いて復号するように構成された電子デバイス2922を含む。電子デバイス2922は、プロセッサおよびプロセッサと電子通信を行うメモリを備え、メモリは、図31に示される操作を行うために実行可能な命令を記憶する。
図30は、電子デバイス上での異なるパラメータ選択によるロスレス符号化のための方法の一構成を示すフロー・ダイアグラムである。
ブロック3011において、電子デバイス2921は、算術に基づくエンコーダ、例えば、CABACに基づくエンコーダを用いて符号化すべきデータのブロックを取得する。菱形部3012において、電子デバイス2921は、ブロックをロスレス符号化を用いて符号化すべきかどうかを判定する。ブロックをロスレス符号化を用いて符号化すべきでない場合には、ブロック3013において、電子デバイス2921は、データのブロックを符号化するために第1のAbsolute−3符号化技術を用いる。
ブロックをロスレス符号化を用いて符号化すべきである場合には、ブロック3014において、電子デバイス2921は、データのブロックを符号化するために第2の異なるAbsolute−3符号化技術を用いる。ブロック3015において、電子デバイス2921は、生成されたビットストリームをネットワークを通じて送信するか、および/または、生成されたビットストリームをメモリデバイスに記憶する。
一例において、第1のAbsolute−3符号化技術は、CABAC符号化のR−G符号化技術を備える、すなわち、ライスパラメータは、各サブブロック符号化段階においてゼロに初期化し、図28に示される表の5つのライスパラメータが考慮される。一例において、第2の異なるAbsolute−3符号化技術は、各サブブロック符号化段階においてゼロで初期化しない、すなわち、別様に初期化するか、および/または、異なるライスパラメータ・アップデート表、例えば、縮小されたライスパラメータ・アップデート表を用いる。
一例において、異なる初期化は、ライスパラメータを各サブブロックではなく各ブロックにおいてゼロに初期化することを備える。一例において、異なる初期化は、現在のサブブロックの最初のライスパラメータとして、前のサブブロックに用いた最後のライスパラメータを用いることを備える。
一例において、異なる初期化は、残差サンプルの統計データに基づいて初期化することを備える。一例において、異なる初期化は、ブロック・タイプ、ブロック・サイズ、または色情報(輝度/色差)など、あるいはそれらの任意の組み合わせに基づいて、予め定義されたライスパラメータ値に初期化することを備える。ブロック・タイプは、ブロックのブロック・サイズ、ブロックの予測情報(イントラ/インター)、およびブロックの色情報(輝度/色差)に基づいてブロックを表すための値である。一例において、異なる初期化は、現在のブロック・タイプが、ある予め定義された値(単数または複数)、例えば「2」および/または「5」に等しいときに、ライスパラメータを予め定義された値「1」に初期化することを備える。
一例において、異なるライスパラメータ・アップデート表は、第1のAbsolute−3符号化技術に用いるライスパラメータ・アップデート表より少ないライスパラメータを含む。一例において、異なるライスパラメータ・アップデート表は、(ライスパラメータが「0」および「1」に等しい)最初の2つの場合のみを含む。かかるライスパラメータ・アップデート表の実例は、図37に含まれる。
一例において、第2の異なるAbsolute−3符号化技術を用いる場合には、電子デバイス2921は、対応するインジケータ、例えば、第2の異なるAbsolute−3符号化技術に関連するフラグを1の値に設定する(これは、もちろん、設計の志向に依存して、前記フラグのデフォルト値を変更するか、または前記フラグをデフォルト値のままにすることを含む)。
図31は、復号側の電子デバイス上での異なるパラメータ選択によるロスレス符号化のための方法の一構成を示すフロー・ダイアグラムである。
ブロック3110において、電子デバイス2922は、ビットストリームを取得する。ブロック3111において、電子デバイス2922は、取得したビットストリームから2値シンボルを復元する。
菱形部3112において、電子デバイス2922は、2値シンボルをロスレス復号を用いて復号すべきかどうかを判定する。一例において、判定は、受信したビットストリームに対応する、スライスヘッダのような、ヘッダをチェックすることを含む。ヘッダのチェックは、取得したビットストリームに対応するスライスヘッダを、第2の異なるAbsolute−3符号化技術に関連するフラグの値に関してチェックすることをさらに備える。別の例では、判定は、ブロック・タイプまたは係数レベルのTQCへの変換を制御する量子化パラメータのような、ブロックに関連する既に復号されたシンボルをチェックすることを含む。菱形部3112で条件が満たされない場合には、ブロック3113において、電子デバイス2922は、TQCのブロックを取得するために第1のAbsolute−3符号化技術を用いる。
菱形部3112で条件が満たされた場合には、ブロック3114において、電子デバイス2921は、残差サンプルを取得するために第2の異なるAbsolute−3符号化技術を用いる。電子デバイス2922は、ブロック3115において、取得したTQCのブロックまたは取得した残差サンプルをメモリデバイスに記憶するか、および/または、ビデオデータを復元する。
≪HEVCにおけるCABACの高スループット符号化≫
HEVCにおけるCABAC符号化を利用するときに、スループット性能は、以下には限定されないが、ビン/画素の総数、バイパス・ビン/画素数、およびレギュラー(またはコンテキスト)符号化されるビン/画素数のような、様々な因子に依存して異なりうる。このため、これらの因子に依存して、符号化は、かなりの処理リソース量を消費するか、および/または、かなり時間がかかる。以下の開示は、この問題および他の問題を解決する。
背景として、既知のCABACによれば、シンタックス要素の25個までのレベル符号フラグ(level code flag)がコンテキスト符号化される。残りのレベル符号フラグは、バイパス符号化される。予め定義された(一定)数のGreater_than_1フラグ、すなわち8つのGreater_than_1フラグがコンテキスト符号化される。予め定義された(一定)数のGreater_than_2フラグ、すなわち1つがコンテキスト符号化される。有意性マップ・フラグのすべて、すなわち16個までがコンテキスト符号化される(シンタックス要素は、ブロックの最後の位置情報に依存して16個未満の有意性マップ・フラグを有することもある)。それゆえに、所与のサブセット・ブロック(25ビン/16画素=1.56ビン/画素)に対して最大25個のコンテキスト符号化されたビンが必要とされる。上記の例は、4×4のサブブロックを用いるときである。
図34は、電子デバイス上でのHEVCにおけるCABACの高スループット符号化のための方法の一構成を示すフロー・ダイアグラムである。
ブロック3411において、電子デバイス3321は、算術に基づくエンコーダ、例えば、CABACに基づくエンコーダを用いて符号化すべきデータのブロックを取得する。ブロック3412において、電子デバイス3321は、シンタックス要素の第1の量のレベル符号フラグ、例えば、CABACシンタックス要素のGreater_than_1およびGreater_than_2フラグをコンテキスト符号化する。第1の量は、第1の予め定義された数を含み、例えば9、すなわち、8つのGreater_than_1フラグおよび1つのGreater_than_2フラグを備える。
ブロック3413において、電子デバイス3321は、シンタックス要素の有意性マップにおいて実際に符号化されたビンの数を特定する。ブロック3414において、電子デバイス3321は、第2の予め定義された数、例えば、CABACでは16と、特定された数との差を決定する。ブロック3415において、電子デバイス3321は、第2の量のレベル符号フラグをコンテキスト符号化し、第2の量は、決定された差を含む。ブロック3416において、電子デバイス3321は、生成されたビットストリームをネットワークを通じて送信するか、および/または、生成されたビットストリームをメモリデバイスに記憶する。
一例において、図34に示される構成を用いる場合には、電子デバイス3321は、対応するインジケータ、例えばフラグを1の値に設定する(これは、もちろん、設計の志向に依存して、フラグのデフォルト値を変更するか、または、フラグをデフォルト値のままにすることを含む)。一例において、インジケータは、コンテキスト符号化される追加のGreater_than_1および/またはGreater_than_2フラグの数を特定する。
上記の構成に従って生成されたシンタックス要素の例は、図36に示される。この例において、例示のシンタックス要素の有意性マップにおいて実際に符号化されるビンの数は12である。16と12との間で決定される差は4である。コンテキスト符号化されるレベル符号フラグの第1の量は、9(8つのGreater_than_1フラグおよび1つのGreater_than_2フラグ)である。コンテキスト符号化されるレベル符号フラグの第2の量は、4である。この特定の例において、これらの4つは、すべてGreater_than_1フラグであるが、他の例では、これらの4つは、1つ以上のGreater_than_1フラグおよび1つ以上のGreater_than_2フラグ、または4つのGreater_than_2フラグを含んでもよい。残りのレベル符号フラグは、バイパス符号化される。
図35は、復号側の電子デバイス上でのHEVCにおけるCABACの高スループット符号化のための方法の一構成を示すフロー・ダイアグラムである。
ブロック3510において、電子デバイス3322は、ビットストリームを取得する。ブロック3511において、電子デバイス3322は、取得したビットストリームから2値シンボルを復元する。
ブロック3512において、電子デバイス3322は、シンタックス要素の第1の量のレベル符号フラグ、例えば、CABACシンタックス要素のGreater_than_1およびGreater_than_2フラグをコンテキスト復号し、第1の量は、第1の予め定義された数に等しく、例えば9、すなわち、8つのGreater_than_1フラグおよび1つのGreater_than_2フラグに等しい。菱形部3513において、電子デバイス3322は、シンタックス要素の追加のレベル符号フラグがコンテキスト符号化されているかどうかを判定する。一例において、判定は、受信したビットストリームに対応する、スライスヘッダのような、ヘッダをチェックすることを含む。ヘッダのチェックは、取得したビットストリームに対応するスライスヘッダをインジケータ、例えばフラグ、の値に関してチェックすることをさらに備える。菱形部3513で電子デバイス3322が追加のレベル符号フラグはコンテキスト符号化されていないと判定した場合には、ブロック3514において、電子デバイス3322は、シンタックス要素の残りのレベル符号フラグをバイパス復号する。
菱形部3513で電子デバイス3322が追加のレベル符号フラグがコンテキスト符号化されていると判定した場合には、ブロック3515において、電子デバイス3322は、シンタックス要素の第2の量のレベル符号フラグをコンテキスト復号する。一例において、電子デバイス3322は、スライスヘッダからの情報に基づいて、コンテキスト符号化された追加のGreater_than_1および/またはGreater_than_2フラグの数を特定する。ブロック3514において、電子デバイス3322は、残っているどのレベル符号フラグもバイパス復号する。ブロック3516において、電子デバイス3322は、取得したTQCのブロックまたは取得した残差サンプルをメモリデバイスに記憶するか、および/または、ビデオデータを復元する。
図38は、復号側の電子デバイス上でのHEVCにおけるCABACの高スループット符号化のための方法の一構成を示すフロー・ダイアグラムである。
ブロック3850において、電子デバイス3322は、ビットストリームを取得する。ブロック3851において、電子デバイス3322は、取得したビットストリームからレベル値のブロックを取得する。
ブロック3853において、電子デバイス3322は、ブロックの最後の有意係数の位置を決定する。ブロック3854において、電子デバイス3322は、取得したブロックから有意係数をコンテキスト復号し、決定した位置に応じて、コンテキスト復号すべきシンボルの最大数を決定する。
ブロック3855において、電子デバイス3322は、カウンタをリセットし、例えば、カウンタをゼロに設定する。菱形部3856において、電子デバイス3322は、復号すべきレベル符号フラグが残っているかどうかを判定する。菱形部3856でレベル符号フラグが何も残っていない場合には、ブロック3857において、電子デバイス3322は、取得したTQCのブロックまたは取得した残差サンプルをメモリデバイスに記憶するか、および/または、ビデオデータを復元する。
レベル符号フラグが残っている場合には(菱形部3856)、菱形部3858において、電子デバイス3322は、カウンタが閾値より大きいかどうかを判定する。一例において、閾値は、決定した最大値と関連付けられる。一例において、閾値は、決定した最大値とブロックの有意性マップ・フラグの数との差に対応する。菱形部3858でカウンタが閾値より大きい場合には、ブロック3859において、電子デバイス3322は、レベル符号フラグをバイパス復号する。菱形部3858でカウンタが閾値より大きくない場合には、ブロック3860において、電子デバイス3322は、レベル符号フラグをコンテキスト復号する。電子デバイス3322は、ブロック3861において、カウンタをインクリメントする。
図39は、復号側の電子デバイス上でのHEVCにおけるCABACの高スループット符号化のための方法の一構成を示すフロー・ダイアグラムである。
ブロック3950において、電子デバイス3322は、ビットストリームを取得する。ブロック3951において、電子デバイス3322は、取得したビットストリームからレベル値のブロックを取得する。
ブロック3953において、電子デバイス3322は、最後の有意係数の位置を決定する。ブロック3954において、電子デバイス3322は、取得したブロックから有意係数をコンテキスト復号し、決定した位置およびサブブロックの位置に応じて、コンテキスト復号すべきシンボルの最大数を決定する。処理3955〜3961は、処理3855〜3861に対応する。
図40は、復号側の電子デバイス上でのHEVCにおけるCABACの高スループット符号化のための方法の一構成を示すフロー・ダイアグラムである。
ブロック4050において、電子デバイス3322は、ビットストリームを取得する。ブロック4051において、電子デバイス3322は、取得したビットストリームからレベル値のブロックを取得する。
ブロック4053において、電子デバイス3322は、最後の有意係数の位置を決定する。ブロック4054において、電子デバイス3322は、取得したブロックから有意係数をコンテキスト復号し、ブロックの特性、例えば、ブロックの有意係数の数に応じて、コンテキスト復号すべきシンボルの最大数を決定する。処理4055〜4061は、処理3855〜3861に対応する。
一例において、システムが提供される。システムは、電子デバイスを備え、電子デバイスは、ビットストリームからレベル値のブロックを取得し;ブロックのレベル符号フラグをコンテキスト復号し;ブロックの次のレベル符号フラグがあるかどうかをチェックし;次のレベル符号フラグがある場合には、コンテキスト符号化されたレベル符号フラグのカウントが閾値より大きいかどうかを判定し;カウントが閾値より大きくないという判定に応じて、次のレベル符号フラグをバイパス復号し;カウントが閾値より大きいという判定に応じて、次のレベル符号フラグをコンテキスト復号し;復号されたレベル符号フラグを用いてTQCのブロックまたは残差サンプルを復元し;復元されたブロックをメモリデバイスに記憶するように、および/または、ビデオデータを復元するように構成される。
電子デバイスは、次のレベル符号フラグのコンテキスト符号化に応じてカウントをインクリメントするように構成される。電子デバイスは、ブロックのすべてのレベル符号フラグが復号されるまで、チェック、判定、復号、およびインクリメントを繰り返すように構成される。電子デバイスは、第1のレベル符号フラグのコンテキスト符号化に応じてカウントをインクリメントするように構成される。
電子デバイスは、ブロックの最後の有意係数の位置を決定し;ブロックの特性に少なくとも部分的に基づいて、コンテキスト復号すべきシンボルの最大数を決定するように構成される。電子デバイスは、最大数決定の結果に従って閾値を設定するように構成される。
電子デバイスは、ブロックの最後の有意係数の位置を決定し;決定した位置に少なくとも部分的に基づいて、コンテキスト復号すべきシンボルの最大数を決定するように構成される。電子デバイスは、決定した位置に少なくとも部分的に基づき、サブブロックの位置に少なくとも部分的に基づいて、コンテキスト復号すべきシンボルの最大数を決定するように構成される。
電子デバイスは、ブロックと関連するシンタックス要素の第1の量のレベル符号フラグをコンテキスト復号し、但し、第1の量は、第1の予め定義された数に等しいこととし; シンタックス要素の有意性マップにおいて実際に符号化されたビンの数を特定し;第2の予め定義された数と特定された数との差を決定し;シンタックス要素の第2の量のレベル符号フラグをコンテキスト復号し、但し、第2の量は、決定された差を含むこととするように構成される。一例において、第1の予め定義された数は9を含む。一例において、第2の予め定義された数は16を含む。一例において、コンテキスト符号化された第1量のレベル符号フラグに対応するレベル符号フラグは、8つの「greater_than_1」フラグおよび1つの「greater_than_2」フラグを備える。一例において、コンテキスト符号化された第2の量のレベル符号フラグに対応するレベル符号フラグは、「greater_than_1」フラグのみを備える。一例において、コンテキスト符号化された第2の量のレベル符号フラグに対応するレベル符号フラグは、「greater_than_2」フラグのみを備える。一例において、コンテキスト符号化された第2の量のフラグに対応するレベル符号フラグは、第3の予め定義された数の「greater_than_2」フラグおよび動的な数の「greater_than_1」フラグを備え、動的な数は、第2の量と第3の予め定義された数との差を含む。
一例において、システムが提供される。システムは、エンコーダの第1の電子デバイスを備え、第1の電子デバイスは、算術に基づくエンコーダを用いて符号化すべきデータのブロックを取得し;データのブロックをロスレス符号化を用いて符号化すべきかどうかを判定し;データのブロックをロスレス符号化を用いて符号化すべきでないという判定に応じて、データのブロックを符号化するために第1のAbsolute−3符号化技術を用い;データのブロックをロスレス符号化を用いて符号化すべきであるという判定に応じて、データのブロックを符号化するために第2のAbsolute−3符号化技術を用い;第2のAbsolute−3符号化技術は、第1のAbsolute−3符号化技術とは異なるものとし;符号化をメモリデバイスに記憶するように構成される。
システムは、デコーダの第2の電子デバイスをさらに備え、第2の電子デバイスは、受信した2値シンボルをロスレス復号を用いて復号すべきかどうかを判定し;2値シンボルをロスレス復号を用いて復号すべきでないという判定に応じて、TQCのブロックを取得するために第1のAbsolute−3符号化技術を用い;2値シンボルをロスレス復号を用いて復号すべきであるという判定に応じて、残差サンプルを取得するために第2のAbsolute−3符号化技術を用いるように構成される。
第1の電子デバイスは、データのブロックをロスレス符号化を用いて符号化すべきでないという判定に応じて、サブブロックの初期値に関してライスパラメータをゼロに初期化し;データのブロックをロスレス符号化を用いて符号化すべきであるという判定に応じて、サブブロックの初期値に関して前のサブブロックの最後の値からのライスパラメータを用いるように構成されてもよい。
第1の電子デバイスは、データのブロックをロスレス符号化を用いて符号化すべきでないという判定に応じて、サブブロックの初期値に関してライスパラメータをゼロに初期化し;データのブロックをロスレス符号化を用いて符号化すべきであるという判定に応じて、サブブロックの初期値に関してライスパラメータのゼロへの初期化をバイパスするように構成されてもよい。
第1の電子デバイスは、データのブロックをロスレス符号化を用いて符号化すべきであるという判定に応じて、ブロック・タイプ、ブロック・サイズ、および色情報(輝度/色差)を含む群から選択される少なくとも1つに基づいて、ライスパラメータを予め定義された値に初期化するように構成されてもよい。
第1の電子デバイスは、データのブロックをロスレス符号化を用いて符号化すべきであるという判定に応じて、現在のブロック・タイプが2または5に等しいときにライスパラメータを1に初期化するように構成されてもよい。
第1の電子デバイスは、データのブロックをロスレス符号化を用いて符号化すべきでないという判定に応じて、サブブロックの初期値に関してライスパラメータをゼロに初期化し;データのブロックをロスレス符号化を用いて符号化すべきであるという判定に応じて、サブブロックの初期値に関して、ライスパラメータのゼロへの初期化をバイパスするように構成されてもよい。
第1の電子デバイスは、2値シンボルをロスレス復号を用いて復号すべきでないという判定に応じて、第1のライスパラメータ・アップデート表を利用し;2値シンボルをロスレス復号を用いて復号すべきであるという判定に応じて、第1のライスパラメータ・アップデート表と異なる第2のライスパラメータ・アップデート表を利用するように構成されてもよい。
第2のライスパラメータ・アップデート表は、第1のライスパラメータ・アップデート表の短縮版を備えてもよい。一例において、第2のライスパラメータ・アップデート表のみが、現在のライスパラメータを2、3、または4にアップデートまたは初期化した後のアップデートを防止するように構成される。
一例において、システムが提供される。システムは、エンコーダの第1の電子デバイスを備え、第1の電子デバイスは、算術に基づくエンコーダを用いて符号化すべきデータのブロックを取得し;シンタックス要素の第1の量のレベル符号フラグをコンテキスト符号化し、但し、第1の量は、第1の予め定義された数に等しいこととし;シンタックス要素の有意性マップにおいて実際に符号化されたビンの数を特定し;第2の予め定義された数と特定された数との差を決定し;シンタックス要素の第2の量のレベル符号フラグをコンテキスト符号化し、但し、第2の量は、決定された差を含むこととし;コンテキスト符号化によって生成されたビットストリームをメモリデバイスに記憶するように構成される。
算術に基づくエンコーダは、CABACエンコーダを備える。第1の予め定義された数は9を含む。第2の予め定義された数は16を含む。コンテキスト符号化された第1の量のレベル符号フラグに対応するレベル符号フラグは、8つの「greate_than_1」フラグおよび1つの「greater_than_2」フラグを備える。コンテキスト符号化された第2の量のレベル符号フラグに対応するレベル符号フラグは、「greater_than_1」フラグのみを備えてもよい。コンテキスト符号化された第2の量のレベル符号フラグに対応するレベル符号フラグは、「greater_than_2」フラグのみを備えてもよい。コンテキスト符号化された第2の量のフラグに対応するレベル符号フラグは、第3の予め定義された数の「greater_than_2」フラグおよび動的な数の「greater_than_1」フラグを備えてもよく、動的な数は、第2の量と第3の予め定義された数との差を含む。
上記のシステムおよび装置は、本明細書に記載される操作のいくつかまたはすべてを行うために、専用のプロセッサシステム、マイクロコントローラ、プログラマブル論理デバイス、マイクロプロセッサ、またはそれらの任意の組み合わせを用いることができる。上記の操作のいくつかは、ソフトウェアで実装され、他の操作は、ハードウェアで実装される。本明細書に記載される操作、処理、および/または方法の1つ以上は、示される図面を参照して、本明細書に記載されるのと実質的に同様の装置、デバイス、および/またはシステムにより行われてもよい。
処理デバイスは、メモリに記憶された命令または「コード」を実行する。メモリは、データも記憶する。処理デバイスは、以下には限定されないが、アナログプロセッサ、デジタルプロセッサ、マイクロプロセッサ、マルチコアプロセッサ、プロセッサアレイ、ネットワークプロセッサなどを含む。処理デバイスは、集積化制御システムまたはシステムマネージャの一部であってもよく、あるいはネットワーク化されたシステムと、局所的または遠隔的に無線送信によりインターフェース接続するように構成されたポータブル電子デバイスとして提供されてもよい。
プロセッサメモリは、処理デバイスとともに集積化され、例えば、RAMまたはFLASHメモリが集積回路マイクロプロセッサ内などに配置される。他の例では、メモリは、外部ディスクドライブ、記憶アレイ、ポータブルFLASHキーフォブなどのような独立したデバイスを備える。メモリおよび処理デバイスは、例えば、I/Oポート、ネットワーク接続などにより動作可能なように連結されるか、または互いに通信を行い、処理デバイスは、メモリ上に記憶されたファイルを読み取る。関連するメモリは、設計(ROM)によりアクセス許可の設定に基づいて「リードオンリ」であってもなくてもよい。メモリの他の例は、以下に限定されなくてもよいが、固体半導体デバイスに実装できるWORM、EPROM、EEPROM(登録商標)、FLASHなどを含む。他のメモリは、従来型回転ディスクドライブのような可動部を含む。すべてのかかるメモリは、「機械読み取り可能」であり、処理デバイスによって読み取り可能である。
操作命令またはコマンドは、(「コンピュータ・プログラム」または「コード」としても知られる)記憶されたコンピュータ・ソフトウェアの具体的な形で実装または具現される。プログラム、またはコードは、ディジタルメモリに記憶され、処理デバイスによって読み取られる。「コンピュータ読み取り可能な記憶媒体」(または代わりに、「機械読み取り可能な記憶媒体」)は、メモリが、コンピュータ・プログラムまたは他のデータの特質をもつデジタル情報を、少なくとも一時的に、記憶することが可能である限り、そして記憶された情報を適切な処理デバイスが「読み取る」ことができる限り、前述のタイプのメモリのすべてに加えて将来の新技術を含む。用語「コンピュータ読み取り可能な」は、完全なメインフレーム、ミニコンピュータ、デスクトップまたはラップトップコンピュータさえも示唆する「コンピュータ」の歴史的な使用法には限定されない。むしろ、「コンピュータ読み取り可能な」は、プロセッサ、処理デバイス、または任意の計算システムによって読み取り可能な記憶媒体を備える。かかる媒体は、コンピュータもしくはプロセッサによって局所的および/または遠隔的にアクセスされる任意の利用可能な媒体であり、揮発性および不揮発性媒体、ならびにリムーバブルおよびノンリムーバブル媒体、あるいはそれらの任意の組み合わせを含んでもよい。
コンピュータ読み取り可能な記憶媒体に記憶されたプログラムは、コンピュータ・プログラム製品を備えてもよい。例えば、記憶媒体は、コンピュータ・プログラムを記憶または輸送する便利な手段として用いられる。便宜上、操作は、相互接続または結合された様々な機能ブロックもしくはダイアグラムとして記載される。しかしながら、これらの機能ブロックもしくはダイアグラムを同等な状態で単一の論理デバイス、境界が不明確なプログラムまたは操作に統合できる場合もある。
本明細書に教示される概念は、多くの他の方法で個別の用途に適合できることを当業者は理解するであろう。特に、示された例は、本開示を読んだときに明らかになるであろう多くの代わりの実装の1つに過ぎないことを当業者は理解するであろう。
本明細書は、数箇所で「an(1つの)」、「one(1つの)」「another(別の)」または「some(いくつかの)」例(単数または複数)を参照するが、これは、それぞれのかかる参照が同じ例(単数または複数)を対象とすること、あるいは特徴が単一の例にのみ当て嵌まることを必ずしも意味しない。

Claims (4)

  1. 変換係数と関連するビットストリームを復号するための方法であって、前記方法は、
    ビットストリームを取得するステップ;
    所定の条件に基づいて復号モードを決定するステップであって;
    前記所定の条件が満たされる場合には、バイパス復号モードが利用されることが決定され;
    前記所定の条件が満たされない場合には、レギュラー復号モードおよび前記バイパス復号モードが選択的に利用されることが決定される、前記ステップ;
    決定された前記モードに従って前記ビットストリームを復号するステップ、
    を備える方法。
  2. 前記所定の条件が満たされる場合には、その振幅が1以上である任意の非ゼロ係数の少なくとも前記正負およびレベル情報が、前記バイパス復号によってそれぞれ復号され;
    前記所定の条件が満たされない場合には、前記非ゼロ係数の前記振幅が1より大きいか否かを示す、前記第1のフラグ、および、1より大きい前記振幅をもつ前記非ゼロ係数の前記振幅が2より大きいか否かを示す、前記第2のフラグが、前記レギュラー復号によってそれぞれ復号され、その振幅が3以上である任意の非ゼロ係数の前記正負およびレベル情報が、前記バイパス復号によってそれぞれ復号される
    ことをさらに備える、請求項1に記載の方法。
  3. 前記所定の条件は、ゼロに等しくない振幅をもつ係数の前記数が、プリセットされた閾値より大きいかどうかを示す、請求項2に記載の方法。
  4. 前記プリセットされた閾値は8に等しい、請求項3に記載の方法。
JP2014534694A 2012-01-19 2013-01-18 Hevcにおけるcabacの高スループット符号化 Pending JP2015504256A (ja)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US13/354,272 2012-01-19
US13/354,272 US9654139B2 (en) 2012-01-19 2012-01-19 High throughput binarization (HTB) method for CABAC in HEVC
US13/360,615 US8581753B2 (en) 2012-01-19 2012-01-27 Lossless coding technique for CABAC in HEVC
US13/360,615 2012-01-27
US13/365,215 US20130188736A1 (en) 2012-01-19 2012-02-02 High throughput significance map processing for cabac in hevc
US13/365,215 2012-02-02
US13/444,710 2012-04-11
US13/444,710 US8552890B2 (en) 2012-01-19 2012-04-11 Lossless coding with different parameter selection technique for CABAC in HEVC
US13/457,272 2012-04-26
US13/457,272 US9743116B2 (en) 2012-01-19 2012-04-26 High throughput coding for CABAC in HEVC
PCT/JP2013/000242 WO2013108639A1 (en) 2012-01-19 2013-01-18 High throughput coding for cabac in hevc

Publications (1)

Publication Number Publication Date
JP2015504256A true JP2015504256A (ja) 2015-02-05

Family

ID=48797172

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014534694A Pending JP2015504256A (ja) 2012-01-19 2013-01-18 Hevcにおけるcabacの高スループット符号化

Country Status (7)

Country Link
US (1) US9743116B2 (ja)
EP (3) EP2805505A4 (ja)
JP (1) JP2015504256A (ja)
CN (1) CN104054342B (ja)
ES (1) ES2765807T3 (ja)
HK (1) HK1201662A1 (ja)
WO (1) WO2013108639A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018030293A1 (ja) * 2016-08-10 2018-02-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
WO2018030291A1 (ja) * 2016-08-10 2018-02-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
WO2018030292A1 (ja) * 2016-08-10 2018-02-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US10021419B2 (en) 2013-07-12 2018-07-10 Qualcomm Incorported Rice parameter initialization for coefficient level coding in video coding process
KR20190008224A (ko) * 2016-05-20 2019-01-23 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9654139B2 (en) 2012-01-19 2017-05-16 Huawei Technologies Co., Ltd. High throughput binarization (HTB) method for CABAC in HEVC
US20130188736A1 (en) 2012-01-19 2013-07-25 Sharp Laboratories Of America, Inc. High throughput significance map processing for cabac in hevc
US10616581B2 (en) 2012-01-19 2020-04-07 Huawei Technologies Co., Ltd. Modified coding for a transform skipped block for CABAC in HEVC
US9743116B2 (en) 2012-01-19 2017-08-22 Huawei Technologies Co., Ltd. High throughput coding for CABAC in HEVC
US9860527B2 (en) 2012-01-19 2018-01-02 Huawei Technologies Co., Ltd. High throughput residual coding for a transform skipped block for CABAC in HEVC
EP3550840A1 (en) * 2012-01-20 2019-10-09 Sony Corporation Complexity reduction of significance map coding
WO2013110000A1 (en) * 2012-01-21 2013-07-25 General Instrument Corporation Method of determining binary codewords for transform coefficients
EP2805497A1 (en) * 2012-01-21 2014-11-26 Motorola Mobility LLC Method of determining binary codewords for transform coefficients
US9635358B2 (en) 2012-01-21 2017-04-25 Google Technology Holdings LLC Method of determining binary codewords for transform coefficients
US9866829B2 (en) * 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
US10873761B2 (en) * 2012-04-13 2020-12-22 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a subset of transform units of encoded video data
JP6130515B2 (ja) * 2013-04-05 2017-05-17 華為技術有限公司Huawei Technologies Co.,Ltd. Hevcにおけるcabacに対する変換スキップブロックに対する高スループット残差符号化
GB2513111A (en) 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
US9936200B2 (en) * 2013-04-12 2018-04-03 Qualcomm Incorporated Rice parameter update for coefficient level coding in video coding process
CN103826120B (zh) * 2014-03-18 2017-04-05 山东大学 一种适用于hevc的码流解析器
US9781424B2 (en) 2015-01-19 2017-10-03 Google Inc. Efficient context handling in arithmetic coding
WO2017126333A1 (ja) * 2016-01-21 2017-07-27 ソニー株式会社 画像処理装置および方法
US11381822B2 (en) * 2018-09-21 2022-07-05 Interdigital Vc Holdings, Inc. Scalar quantizer decision scheme for dependent scalar quantization
WO2020253874A1 (en) * 2019-06-21 2020-12-24 Beijing Bytedance Network Technology Co., Ltd. Restriction on number of context coded bins
CN113875243A (zh) * 2019-06-25 2021-12-31 英特尔公司 一般性旁路仓格和在熵编码中的应用
GB2585041A (en) * 2019-06-25 2020-12-30 Sony Corp Image data encoding and decoding
WO2021050193A1 (en) * 2019-09-12 2021-03-18 Alibaba Group Holding Limited Method and apparatus for coding video data
US11468601B2 (en) 2020-01-13 2022-10-11 Samsung Display Co., Ltd. Systems and methods for scalable throughput entropy coder
KR20220083385A (ko) * 2020-12-11 2022-06-20 삼성전자주식회사 부호 및 복호를 수행하는 디스플레이 구동 회로 및 이의 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05347710A (ja) * 1992-06-15 1993-12-27 Nippon Telegr & Teleph Corp <Ntt> 適応的可変長符号化方法

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982437A (en) 1992-10-26 1999-11-09 Sony Corporation Coding method and system, and decoding method and system
KR0155784B1 (ko) 1993-12-16 1998-12-15 김광호 영상데이타의 적응형 가변장 부호화/복호화방법
JP2000032393A (ja) 1998-07-09 2000-01-28 Sony Corp 画像情報処理装置および方法、並びに提供媒体
US6658167B1 (en) 1999-01-31 2003-12-02 Hewlett-Packard Development Company, L.P. On the fly server for modifying data characteristics for client-server network applications
WO2003045065A2 (en) 2001-11-22 2003-05-30 Matsushita Electric Industrial Co., Ltd. Variable length coding method and variable length decoding method
JP2003319391A (ja) 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
US7016547B1 (en) 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
JP2004040246A (ja) 2002-06-28 2004-02-05 Canon Inc 情報処理装置、情報処理方法
KR20040031949A (ko) 2002-10-08 2004-04-14 엘지전자 주식회사 동영상 인코딩 및 디코딩 방법
JP4240283B2 (ja) 2002-10-10 2009-03-18 ソニー株式会社 復号装置及び復号方法
US6646578B1 (en) 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US6900748B2 (en) 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US7286710B2 (en) 2003-10-01 2007-10-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Coding of a syntax element contained in a pre-coded video signal
KR100532612B1 (ko) 2004-06-18 2005-12-01 삼성전자주식회사 광디스크 판별 오류시 재생모드 변경방법 및 장치
KR100612015B1 (ko) 2004-07-22 2006-08-11 삼성전자주식회사 컨텍스트 적응형 이진 산술 부호화 방법 및 그 장치
US7991610B2 (en) 2005-04-13 2011-08-02 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Adaptive grouping of parameters for enhanced coding efficiency
WO2006124885A2 (en) 2005-05-12 2006-11-23 Kylintv, Inc. Codec for iptv
KR20070006445A (ko) 2005-07-08 2007-01-11 삼성전자주식회사 하이브리드 엔트로피 부호화, 복호화 방법 및 장치
CN100466739C (zh) 2005-10-12 2009-03-04 华为技术有限公司 Cabac解码系统及方法
WO2007116551A1 (ja) 2006-03-30 2007-10-18 Kabushiki Kaisha Toshiba 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
US7508328B2 (en) 2006-09-15 2009-03-24 Nemochips, Inc. Entropy processor for decoding
US7369066B1 (en) 2006-12-21 2008-05-06 Lsi Logic Corporation Efficient 8×8 CABAC residual block transcode system
US8467449B2 (en) 2007-01-08 2013-06-18 Qualcomm Incorporated CAVLC enhancements for SVC CGS enhancement layer coding
KR101356733B1 (ko) 2007-03-07 2014-02-05 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
MX2009009489A (es) 2007-03-13 2009-11-05 Nokia Corp Sistema y método para codificación y decodificación de video.
US8046214B2 (en) 2007-06-22 2011-10-25 Microsoft Corporation Low complexity decoder for complex transform coding of multi-channel sound
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US7777654B2 (en) 2007-10-16 2010-08-17 Industrial Technology Research Institute System and method for context-based adaptive binary arithematic encoding and decoding
US8249883B2 (en) 2007-10-26 2012-08-21 Microsoft Corporation Channel extension coding for multi-channel source
JP4962476B2 (ja) 2008-11-28 2012-06-27 ソニー株式会社 算術復号装置
GB2476271B (en) 2009-12-17 2015-09-02 Skype Coding data streams
WO2011126272A2 (en) 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using dynamic-range transformation, and method and apparatus for decoding video by using dynamic-range transformation
US10349070B2 (en) 2010-09-30 2019-07-09 Texas Instruments Incorporated Simplified binary arithmetic coding engine
US20120082230A1 (en) 2010-10-01 2012-04-05 Qualcomm Incorporated Variable length coding of video block coefficients
US9641846B2 (en) 2010-10-22 2017-05-02 Qualcomm Incorporated Adaptive scanning of transform coefficients for video coding
US9497472B2 (en) * 2010-11-16 2016-11-15 Qualcomm Incorporated Parallel context calculation in video coding
US9042440B2 (en) 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
US8891617B2 (en) 2011-01-18 2014-11-18 Google Inc. Method and system for processing video data
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
GB2492333B (en) 2011-06-27 2018-12-12 British Broadcasting Corp Video encoding and decoding using transforms
US20130003858A1 (en) * 2011-06-30 2013-01-03 Vivienne Sze Simplified Context Selection For Entropy Coding of Transform Coefficient Syntax Elements
US9756360B2 (en) 2011-07-19 2017-09-05 Qualcomm Incorporated Coefficient scanning in video coding
IN2014CN03598A (ja) 2011-11-04 2015-07-31 Sharp Kk
US20130114687A1 (en) 2011-11-07 2013-05-09 Sharp Laboratories Of America, Inc. Fixed intra run-level mode for cavlc in hevc
US20130114684A1 (en) 2011-11-07 2013-05-09 Sharp Laboratories Of America, Inc. Electronic devices for selective run-level coding and decoding
US9357185B2 (en) * 2011-11-08 2016-05-31 Qualcomm Incorporated Context optimization for last significant coefficient position coding
US8923388B2 (en) 2011-11-21 2014-12-30 Texas Instruments Incorporated Early stage slice cap decision in video coding
US9503717B2 (en) * 2012-01-09 2016-11-22 Texas Instruments Incorporated Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
US9743116B2 (en) 2012-01-19 2017-08-22 Huawei Technologies Co., Ltd. High throughput coding for CABAC in HEVC
US8581753B2 (en) 2012-01-19 2013-11-12 Sharp Laboratories Of America, Inc. Lossless coding technique for CABAC in HEVC
US9654139B2 (en) 2012-01-19 2017-05-16 Huawei Technologies Co., Ltd. High throughput binarization (HTB) method for CABAC in HEVC
US9860527B2 (en) 2012-01-19 2018-01-02 Huawei Technologies Co., Ltd. High throughput residual coding for a transform skipped block for CABAC in HEVC
US8552890B2 (en) 2012-01-19 2013-10-08 Sharp Laboratories Of America, Inc. Lossless coding with different parameter selection technique for CABAC in HEVC
US20130188736A1 (en) 2012-01-19 2013-07-25 Sharp Laboratories Of America, Inc. High throughput significance map processing for cabac in hevc
US10616581B2 (en) 2012-01-19 2020-04-07 Huawei Technologies Co., Ltd. Modified coding for a transform skipped block for CABAC in HEVC
US20130294524A1 (en) 2012-05-04 2013-11-07 Qualcomm Incorporated Transform skipping and lossless coding unification
WO2013181821A1 (en) 2012-06-07 2013-12-12 Mediatek Singapore Pte. Ltd. Improved intra transform skip mode
US10257520B2 (en) 2012-06-26 2019-04-09 Velos Media, Llc Modified coding for transform skipping
AU2012232992A1 (en) 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
US20140146894A1 (en) 2012-11-28 2014-05-29 General Instrument Corporation Devices and methods for modifications of syntax related to transform skip for high efficiency video coding (hevc)
AU2013206815A1 (en) 2013-07-11 2015-03-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05347710A (ja) * 1992-06-15 1993-12-27 Nippon Telegr & Teleph Corp <Ntt> 適応的可変長符号化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JANI LAINEMA, KEMAL UGUR, ANTTI HALLAPURO, SINGLE ENTROPY CODER FOR HEVC WITH A HIGH THROUGHPUT BINARIZATION MODE, JPN6016043659, 21 November 2011 (2011-11-21), pages <JCTVC-G569_r1.doc> whole document, <JCT *
SEUNG-HWAN KIM ET AL., NON-CE1: HIGH THROUGHPUT BINARIZATION (HTB) METHOD WITH MODIFIED LEVEL CODING, JPN6017011534, 21 January 2012 (2012-01-21) *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10021419B2 (en) 2013-07-12 2018-07-10 Qualcomm Incorported Rice parameter initialization for coefficient level coding in video coding process
KR20190008224A (ko) * 2016-05-20 2019-01-23 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
JPWO2017199800A1 (ja) * 2016-05-20 2019-03-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 符号化装置、復号装置、符号化方法及び復号方法
US11166026B2 (en) 2016-05-20 2021-11-02 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
KR102442406B1 (ko) 2016-05-20 2022-09-13 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
JP7199221B2 (ja) 2016-05-20 2023-01-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
WO2018030293A1 (ja) * 2016-08-10 2018-02-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
WO2018030291A1 (ja) * 2016-08-10 2018-02-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
WO2018030292A1 (ja) * 2016-08-10 2018-02-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
JPWO2018030291A1 (ja) * 2016-08-10 2019-06-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 符号化装置、復号装置、符号化方法及び復号方法
JP6998874B2 (ja) 2016-08-10 2022-02-10 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法

Also Published As

Publication number Publication date
HK1201662A1 (en) 2015-09-04
EP2805505A4 (en) 2015-08-05
EP3270591B1 (en) 2019-10-30
ES2765807T3 (es) 2020-06-11
EP3270591A2 (en) 2018-01-17
CN104054342A (zh) 2014-09-17
US20130188683A1 (en) 2013-07-25
WO2013108639A1 (en) 2013-07-25
EP3598752A1 (en) 2020-01-22
EP3270591A3 (en) 2018-04-04
CN104054342B (zh) 2020-01-21
EP2805505A1 (en) 2014-11-26
US9743116B2 (en) 2017-08-22

Similar Documents

Publication Publication Date Title
CN104054342B (zh) 针对于hevc中的cabac的高吞吐量编码的方法和装置
US8581753B2 (en) Lossless coding technique for CABAC in HEVC
US10701362B2 (en) High throughput significance map processing for CABAC in HEVC
US11706451B2 (en) Golomb-Rice/EG coding technique for CABAC in HEVC
US10785483B2 (en) Modified coding for a transform skipped block for CABAC in HEVC
US9654139B2 (en) High throughput binarization (HTB) method for CABAC in HEVC
US8552890B2 (en) Lossless coding with different parameter selection technique for CABAC in HEVC
JP6526099B2 (ja) Hevcにおけるcabacのための変換スキップされたブロックのための修正コーディング
US9860527B2 (en) High throughput residual coding for a transform skipped block for CABAC in HEVC
JP6426227B2 (ja) Hevcにおけるcabacに対する変換スキップブロックに対する高スループット残差符号化

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20140717

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20160107

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170404

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170725