(57)【特許請求の範囲】
【請求項１】
デコーダの電子デバイスを備え、
前記電子デバイスは、
ビットストリームを取得することと、
取得された前記ビットストリームからバイナリシンボルを復元することと
を行うように構成され、
前記バイナリシンボルは、ビデオデータを復元するために逆量子化され逆変換され、
より高いビット深度コーディングのために逆変換が変換ブロックに適用されない場合、TS_Shiftに基づいて、逆量子化された係数値にスケーリング演算が実施され、
ここで、残余＝（逆量子化された係数値）＜＜TS_Shiftであり、
残余は、bdShiftに基づいて計算され、
残余＝（残余＋（1＜＜（bdShift−1）））＞＞bdShiftであり、
TS_Shiftは、スケーリング演算のための左ビットシフトであり、
bdShiftは、スケーリング演算のための右ビットシフトであり、
TS_Shiftは、bdShiftよりも小さいかまたはbdShiftに等しく、
TS_Shiftの値は、MAX［（MAX_TDR−Bit_Depth−Log2TrSize），0］またはMAX_TDR−Bit_Depth−Log2TrSize＋Aに従って決定され、
MAX_TDRは、変換の最大ダイナミックレンジであり、
Bit_Depthは、サンプル値のビット深度であり、
Log2TrSizeは、変換サイズのLog2であり、
Aは、ビットストリームから復号した変数である、システム。
【請求項２】
前記ブロックが4×4ブロックである、請求項1に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2013年7月15日に出願された「MODIFIED CODING FOR A TRANSFORM SKIPPED BLOCK FOR CABAC IN HEVC」と題する米国特許出願第13／942，616号に基づく優先権を主張するものであり、この出願は、2013年4月5日に出願された「HIGH THROUGHPUT RESIDUAL CODING FOR A TRANSFORM SKIPPED BLOCK FOR CABAC IN HEVC」と題する米国特許出願第13／857，366号の一部継続出願であり、この出願は、2012年4月26日に出願された「HIGH THROUGHPUT CODING FOR CABAC IN HEVC」と題する米国特許出願第13／457，272号の一部継続出願であり、この出願は、2012年4月11日に出願された「LOSSLESS CODING WITH DIFFERENT PARAMETER SELECTION TECHNIQUE FOR CABAC IN HEVC」と題する米国特許出願第13／444，710号の一部継続出願であり、この出願は、2012年2月2日に出願された「HIGH THROUGHPUT SIGNIFICANCE MAP PROCESSING FOR CABAC IN HEVC」と題する米国特許出願第13／365，215号の一部継続出願であり、この出願は、2012年1月27日に出願された「LOSSLESS CODING TECHNIQUE FOR CABAC IN HEVC」と題する米国特許出願第13／360，615号の一部継続出願であり、かつこの出願は、2012年1月19日に出願された「HIGH THROUGHPUT BINARIZATION（HTB）METHOD FOR CABAC IN HEVC」と題する米国特許出願第13／354，272号の一部継続出願である。これらの特許出願の全体は、参照により本明細書に組み込まれる。
【０００２】
また、本出願は、2013年7月24日に出願された「MODIFIED CODING FOR A TRANSFORM SKIPPED BLOCK FOR CABAC IN HEVC」と題する米国仮出願第61／858，010号に基づく優先権を主張する。この仮出願の全体は、参照により本明細書に組み込まれる。
【０００３】
本開示は、一般に電子デバイスに関する。より詳細には、本開示は、符号化および／または復号のために拡張されたコンテキスト適応型バイナリ算術コーディング（CABAC）を利用する電子デバイスに関する。
【背景技術】
【０００４】
多くのデコーダ（およびエンコーダ）は、画像のブロックについての符号化されたデータを受信する（およびエンコーダはそのデータを提供する）。典型的に、画像はブロックに分割され、ブロックの各々は、離散コサイン変換（DCT）を使用するなど、何らかの方法で符号化され、デコーダに提供される。ブロックは、画像中の矩形領域を示し、ピクセルから構成され得、例えば16×16のブロックは、幅が領域16×ピクセルであり、高さが16×ピクセルである。デコーダは、符号化されたブロックを受信し、逆離散コサイン変換を使用するなど、何らかの方法でブロックの各々を復号する。
【０００５】
MPEG-4パート10（H.264）などのビデオコーディング規格は、限られた周波数帯域幅および／または限られた記憶容量をもつチャネル上での送信のためにビデオデータを圧縮する。これらのビデオコーディング規格は、フレームをより効果的に符号化および復号するために、イントラ予測、空間領域から周波数領域への変換、量子化、エントロピーコーディング、動き推定、および動き補償など、複数のコーディング段を含む。
【０００６】
国際電気通信連合電気通信標準化部門（ITU-T）スタディグループ16（SG16）ワーキングパーティー3（WP3）と、国際標準化機構／国際電気標準会議（ISO／IEC）合同技術委員会1／小委員会29／ワーキンググループ11（JTC1／SC29／WG11）とのジョイント・コラボレーティブ・チーム・オン・ビデオ・コーディング（JCT-VC）は、高効率ビデオコーディング規格（HEVC）と呼ばれるビデオコーディング規格のための規格化作業に着手している。いくつかの従来のビデオコーディング規格と同様に、HEVCはブロックベースのコーディングである。既知のHEVCエンコーダの一例が図1に示されている。HEVCデコーダもまた既知である。
【０００７】
HEVCでは、変換され量子化された係数（TQC）を損失なしに圧縮するためにコンテキスト適応型バイナリ算術コーディング（CABAC）が使用される。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）に示されているように構成され得る。
【０００９】
【表１】
0006526099.tif 000002
【００１０】
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）のシーケンスによって表される。TQCの例示的な1DアレイのためのSEのシーケンスの一例が図2に示されている。SEは、以下のパラメータ、すなわち、最後の位置X／Yと、有意性マップと、1よりも大きい、2よりも大きい、符号情報、および絶対−3（Absolute -3）という属性とを表す。最後の位置X／Yは、対応するブロック中の最後の非0係数の位置（X／Y）を表す。有意性マップは各係数の有意性を表す。1よりも大きいは、非0の（すなわち、有意フラグを1としてもつ）係数ごとに係数振幅が1よりも大きいかどうかを示す。2よりも大きいは、1よりも大きい振幅をもつ（すなわち、1よりも大きいフラグを1としてもつ）係数ごとに係数振幅が2よりも大きいかどうかを示す。
【００１２】
HEVCにおけるCABACでは、代表的なSEがコーディングされる。図3は、SEをコーディングするために使用されるCABACフレームワークを示す。CABACコーディング技法は、段を使用してシンボルをコーディングすることを含む。第1の段では、CABACは、入力シンボルをバイナリシンボルのストリングまたは「ビン（bin）」にマッピングするために「バイナライザ」を使用する。入力シンボルは、ビットにコーディングされることに先立って、バイナリ（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は、ビン値のための送信されたシンボル値を復元するために、非2値化を実施する。復元されたシンボルは本質的に非バイナリであり得る。復元されたシンボル値は、デコーダの残りの態様において使用される。
【００１７】
前に説明したように、CABACの符号化および／または復号プロセスは、少なくとも2つの異なる演算モードを含む。第1のモードでは、確率モデルが、実際のコーディングされたビン値に基づいて更新され、概して「レギュラーコーディングモード」と呼ばれる。レギュラーコーディングモードは、関連する計算が複雑であり、完了までにかなり時間を必要とするとともに、いくつかの逐次的な直列操作を必要とする。第2のモードでは、確率モデルは、実際のコーディングされたビン値に基づいて更新されず、概して「バイパスコーディングモード」と呼ばれる。第2のモードでは、ビンを復号するための確率モデルは（おそらく固定の確率以外には）存在せず、したがって、確率モデルを更新する必要はない。
【発明の概要】
【課題を解決するための手段】
【００１８】
HEVCにおいてCABACコーディングを利用するとき、スループット性能は、これらに限定はしないが、ビン／ピクセルの総数、バイパスビン／ピクセルの数、およびレギュラー（またはコンテキスト）コーディングされるビン／ピクセルの数など、様々な要因に応じて異なり得る。概して、高ビットレート符号化（低量子化パラメータ（QP）値）の場合のスループットは、他の場合におけるスループットよりも著しく小さい。したがって、高ビットレートの場合におけるスループットは、かなりの量の処理リソースを消費し得、および／または符号化／復号するためにかなりの時間量を要し得る。以下の開示は、このおよび他の問題を解決する。
【００１９】
CABACは、残差サンプルを圧縮するためにロスレスコーディングモードで使用され得ることも知られている。一例では、残差サンプルは、画像中の特定のロケーションに対応する値である。典型的に、残差サンプルは、画像中の特定のロケーションに対応する値と、画像中の同じ特定のロケーションに対応する予測値との差分に対応する。代替的に、残差サンプルは、変換動作で処理されなかった画像中の特定のロケーション、またはTQCを作成するために通常は使用されない変換動作に対応する値である。残差サンプルは、それのサンプルサイズ（4×4、8×8、16×16、32×32、16×32など）に従って異なるブロックサイズからのものであり得る。2D残差サンプルブロックは、TQC符号化と同様に、エントロピーコーディングの前に最初に1Dアレイに変換される。一例では、4×4ブロック中の2Dアレイ化された残差サンプルは、表（2）に示されているように構成され得る。
【００２０】
【表２】
0006526099.tif 000003
【００２１】
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は、以下のパラメータ、すなわち、最後の位置X／Yと、有意性マップと、1よりも大きい、2よりも大きい、符号情報、および絶対−3という属性とを表す。
【００２３】
HEVCにおけるCABACのロスレスコーディングモードでは、代表的なSEがコーディングされる。SEをコーディングするために図3のCABACフレームワークが使用され得る。CABACコーディング技法は、段を使用してシンボルをコーディングすることを含む。第1の段では、CABACは、入力シンボルをバイナリシンボルのストリングまたは「ビン」にマッピングするために「バイナライザ」を使用する。入力シンボルは、ビットにコーディングされることに先立って、バイナリ（1または0）シンボルのストリングに2値化されるかまたは他の方法で変換される非バイナリシンボルであり得る。ビンは、前に説明した「レギュラー符号化エンジン」を使用してビットにコーディングされ得る。
【００２４】
CABACのロスレスコーディングモードにおけるレギュラー符号化エンジンでは、第2の段において、（CABACのロスレス符号化モードにおける「コンテキストモデル」としても知られる）確率モデルが選択される。モデルは、2値化された入力シンボルのうちの1つまたは複数のビンを算術符号化するために使用される。このモデルは、最近符号化されたシンボルの関数であるコンテキストに依存して、利用可能なモデルのリストから選択され得る。モデルは、ビンが「1」または「0」である確率を記憶する。第3の段において、算術エンコーダは、選択されたモデルに従って各ビンを符号化する。「0」と「1」とに対応する、各ビンのための2つのサブレンジが存在する。第4の段は、モデルを更新することを伴う。選択されたモデルは、実際の符号化されたビン値に基づいて更新される（例えば、ビン値が「1」であった場合、「1」の頻度カウントが増加される）。CABAC復号のための復号技法は、プロセスを反転させる。
【００２５】
前の段落において説明したように使用されるモデルの数は184であり得る。具体的には、最後の位置X／Yのために36個のモデルが使用され（Last_position_Xのために18個のモデル、Last_position_Yのために18個のモデル）、有意性マップのために48個のモデルが使用され（4×4ブロック：9ルーマ（luma）、6クロマ（chroma）、8×8ブロック：11ルーマ、11クロマ、16×16または32×32ブロック：7ルーマ、4クロマ）、1よりも大きい、2よりも大きい、符号情報、および絶対−3という属性のために100個のモデルが使用される（ルーマのGreater_than_1フラグ：30、クロマのGreater_than_1フラグ20、ルーマのGreater_than_2フラグ：30、およびクロマのGreater_than_2フラグ20）。
【００２６】
HEVCにおいてCABAC符号化をロスレスコーディングモードで利用するとき、符号化／復号は計算的に複雑である。計算複雑さの1つの理由は、上記で説明したように、184個のモデルの使用である。この計算複雑さのために、符号化／復号は、かなりの量の処理リソースを消費し得、および／または完了するためにかなりの時間量を要し得る。以下の開示は、このおよび他の問題を解決する。
【００２７】
本発明の一実施形態は、デコーダの電子デバイスを備える、システムを開示し、電子デバイスは、ビットストリームを取得することと、取得されたビットストリームからバイナリシンボルを復元することとを行うように構成され、バイナリシンボルは、ビデオデータを復元するために逆量子化され逆変換され、より高いビット深度コーディングのために逆変換が変換ブロックに適用されない場合、TS_Shiftに基づいて、逆量子化された係数値にスケーリング演算が実施される。ここで、残余＝（逆量子化された係数値）＜＜TS_Shiftであり、残余は、bdShiftに基づいて計算される。
【００２８】
ここで、残余＝（残余＋（1＜＜（bdShift−1）））＞＞bdShiftであり、TS_Shiftは、スケーリング演算のための左ビットシフトであり、bdShiftは、スケーリング演算のための右ビットシフトであり、TS_Shiftは、bdShiftよりも小さいかまたはそれに等しい。
【図面の簡単な説明】
【００２９】
【図１】HEVCエンコーダのブロック図である。
【図２】CABACによるシンタックス要素のシーケンスを示す表である。
【図３】シンタックス要素のシーケンスのためのCABACフレームワークのブロック図である。
【図４】エンコーダとデコーダとの一例を示すブロック図である。
【図５】電子デバイス上での高スループット2値化モードのための方法の一構成を示す流れ図である。
【図６】高スループット2値化モードを使用するエンコーダ処理の一構成を示す流れ図である。
【図７】復号側の電子デバイス上での高スループット2値化モードのための方法の一構成を示す流れ図である。
【図８】高スループット2値化モードを使用するデコーダ処理の一構成を示す流れ図である。
【図９】高スループット2値化モードにおいて入力値を決定するために使用され得るマッピング表を示す。
【図１０】高スループット2値化モードにおいて適応型2値化のために使用され得る複数の2値化表を示す。
【図１１】CABACにおけるロスレスコーディングモードによるシンタックス要素のシーケンスを示す表である。
【図１２】ロスレスコーディング技法のためのエンコーダとデコーダとの一例を示すブロック図である。
【図１３】電子デバイス上でのロスレスコーディングのための方法の一構成を示す流れ図である。
【図１４】図13に示された構成によるシンタックス要素のシーケンスを示す表である。
【図１５】復号側の電子デバイス上でのロスレス復号のための方法の一構成を示す流れ図である。
【図１６】電子デバイス上でのロスレスコーディングのための方法の別の構成を示す流れ図である。
【図１７】復号側の電子デバイス上でのロスレスコーディングのための方法の別の構成を示す流れ図である。
【図１８】電子デバイス上でのロスレスコーディングのための方法のさらに別の構成を示す流れ図である。
【図１９】復号側の電子デバイス上でのロスレスコーディングのための方法のさらに別の構成を示す流れ図である。
【図２０Ａ】高スループット2値化モード条件が満たされるかどうかを判定するためのエンコーダまたはデコーダの例示的な構成を示す流れ図である。
【図２０Ｂ】高スループット2値化モード条件が満たされるかどうかを判定するためのエンコーダまたはデコーダの例示的な構成を示す流れ図である。
【図２０Ｃ】高スループット2値化モード条件が満たされるかどうかを判定するためのエンコーダまたはデコーダの例示的な構成を示す流れ図である。
【図２０Ｄ】高スループット2値化モード条件が満たされるかどうかを判定するためのエンコーダまたはデコーダの例示的な構成を示す流れ図である。
【図２０Ｅ】高スループット2値化モード条件が満たされるかどうかを判定するためのエンコーダまたはデコーダの例示的な構成を示す流れ図である。
【図２１】復号側の電子デバイス上で高スループットモード条件が満たされるかどうかを判定するための方法の一構成を示す流れ図である。
【図２２】復号側の電子デバイス上で高スループットモード条件が満たされるかどうかを判定するための方法の別の構成を示す流れ図である。
【図２３】エンコーダとデコーダとの一例を示すブロック図である。
【図２４】復号側の電子デバイス上での高スループット有意性マップ復号のための方法の構成を示す流れ図である。
【図２５】復号側の電子デバイス上での高スループット有意性マップ復号のための方法の別の構成を示す流れ図である。
【図２６】復号側の電子デバイス上での復号バイパス機能を用いた高スループット有意性マップ復号のための方法の構成を示す流れ図である。
【図２７】復号側の電子デバイス上での復号方法スイッチング機能を用いた高スループット有意性マップ復号のための方法の構成を示す流れ図である。
【図２８】CABACにおけるロスレスコーディングモードに従ってライスパラメータを更新するために使用される表である。
【図２９】エンコーダとデコーダとの一例を示すブロック図である。
【図３０】電子デバイス上での異なるパラメータ選択を用いたロスレスコーディングのための方法の一構成を示す流れ図である。
【図３１】復号側の電子デバイス上での異なるパラメータ選択を用いたロスレスコーディングのための方法の一構成を示す流れ図である。
【図３２】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モードは、レベル値をコーディングするためにバイパスコーディングモードを使用する。レギュラー符号化モードとは対照的に、バイパスコーディングモードは、入力ビンについて固定の確率分布を仮定するので、バイパスコーディングモードは、計算コストが高いコンテキスト推定および確率更新段を省略する。
【００３８】
コーディングのためにバイパスコーディングモードを使用することに加えて、従来のCABACとは対照的に、HTBモードは、コーディングのために簡略化された符号付け構造を使用する。例えば、従来のCABACは、Greater_than_1、Greater_than_2、符号情報、および絶対−3を含む、コーディングのための4つのサブパートを必要とする。
【００３９】
図6は、高スループット2値化モードを使用するエンコーダ処理の一構成を示す流れ図である。
【００４０】
ブロック612〜615は、ブロック514において実施される動作をさらに詳細に示す。ブロック612において、電子デバイス421は、絶対値−1関数を各非0値に適用し各非0値の符号を検査することによって、TQCのブロックからの任意の非0値について符号とレベル情報とを生成する。説明を簡単にするために、本出願の背景技術セクションからの1Dアレイ化されたTQCの値［4，0，3，−3，2，1，0，−1，0，...］について考える。絶対値−1関数を各非0値に適用し、各非0値の符号を検査すると、以下のように符号とレベル情報との6つの組合せ、すなわち、＋3、＋2、−2、＋1、＋0、および−0が生成される。
【００４１】
ブロック613において、電子デバイス421は、マッピング表を使用して、入力値を、符号とレベル情報との各生成された組合せにマッピングする。例示的なマッピング表が図9に示されている。図9は、ブロック612およびブロック613に従って入力値を決定するための数式をも示す。
【００４２】
ブロック614において、電子デバイス421は、複数の2値化表、例えば、コンテキスト適応型可変長コーディング（CAVLC）の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値化モード条件は、0よりも大きい大きさをもつ、画像データの対応するブロックのレベル値の数が、プリセットされたしきい値、例えば、8よりも大きいときに満たされ得る。別の例では、高スループット2値化モード条件は、第1のプリセットされたしきい値よりも大きい大きさをもつ、画像データの対応するブロックのレベル値の数が、第2のプリセットされたしきい値よりも大きいときに満たされる。さらなる例では、高スループット2値化モード条件は、画像データの対応するブロックのレベル値が、プリセットされた値よりも大きいときに満たされる。
【００５０】
図20A〜図20Eは、直前の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は、「1」のHTBモードフラグ値を観測したことに応答して、スライスヘッダに対応するブロックに対して図5のフローチャートに示されたプロセスを実施する。HTBモードフラグを「0」に設定すると、電子デバイス421は、「0」のHTBモードフラグ値を観測したことに応答して、従来のCABAC技法に従ってスライスヘッダに対応するブロックを符号化する。
【００５５】
HTBモードフラグ値は、復号のために電子デバイス422によっても観測される。一例では、電子デバイス422は、「1」のHTBモードフラグ値を観測したことに応答して、スライスヘッダに対応するブロックに対して図7のフローチャートに示されたプロセスに従って、「1」のHTBモードフラグ値を有するスライスヘッダに対応するブロックを復号する。電子デバイス422は、「0」のHTBモードフラグ値を観測したことに応答して、従来のCABAC技法に従って、「0」のHTBモードフラグ値を有するスライスヘッダに対応するブロックを復号する。
【００５６】
図7は、復号側の電子デバイス上での高スループット2値化モードのための方法の一構成を示す流れ図である。
【００５７】
ブロック710において、電子デバイス422はビットストリームを取得する。ブロック711において、電子デバイス422は、取得されたビットストリームからバイナリシンボルを復元する。
【００５８】
菱形712において、電子デバイス422は、高スループット2値化モード条件が満たされるかどうかを判定する。一例では、判定は、受信されたビットストリームに対応する、スライスヘッダなどのヘッダを検査することを含み得る。ヘッダを検査することは、高スループット2値化モードインジケータの値について、取得されたビットストリームに対応するスライスヘッダを検査することをさらに含み得る。菱形712において条件が満たされない場合、ブロック713において、電子デバイス422は、レギュラー復号モードとバイパスコーディングモードとを選択的に使用することによってバイナリシンボルを復号する。
【００５９】
菱形712において条件が満たされる場合、ブロック714において、電子デバイス421は、バイナリシンボルを復号するために高スループット2値化モードとバイパス復号モードとを使用する。電子デバイス422は、ブロック715において、TQCの取得されたブロックをメモリデバイスに記憶し、および／またはビデオデータを復元し得る。
【００６０】
図8は、高スループット2値化モードを使用するデコーダ処理の一構成を示す流れ図である。
【００６１】
ブロック812〜815は、ブロック714において実施される動作をさらに詳細に示す。ブロック812において、電子デバイス422は、符号化されたバイナリシンボルをバイパス復号する。ブロック813において、電子デバイス422は、バイパス復号の結果を逆2値化する。ブロック814において、電子デバイス422は、マッピング表を使用して、逆2値化からの復元された入力値を、符号とレベル情報とにマッピングする。ブロック815において、電子デバイス422は、符号とレベル情報とを使用して、変換され量子化された係数（TQC）のブロックを復号する。
【００６２】
一例では、プロセッサおよび該プロセッサと電子通信しているメモリを含む電子デバイスが提供される。メモリに記憶されるのは、動作を実施するためにプロセッサによって実行可能な命令である。
【００６３】
一例では、動作は、変換され量子化された係数（TQC）のブロックを取得することを含み得る。別の動作は、高スループット2値化モード条件が満たされるかどうかを判定することを含み得る。別の動作は、高スループット2値化モード条件が満たされると判定したことに応答して、高スループット2値化モードを使用して第1のビットストリームを生成することを含み得る。別の動作は、高スループット2値化モード条件が満たされないと判定したことに応答して、第2のビットストリームを生成することを含み得る。別の動作は、生成された第1または第2のビットストリームをデコーダに送信することを含み得る。
【００６４】
一例では、高スループット2値化モードを使用する第1のビットストリームの生成は、追加の動作を含み得る。1つの動作は、絶対値−1関数を各非0値に適用し各非0値の符号を検査することによって、ブロックからの任意の非0値について符号とレベル情報とを生成することを含み得る。別の動作は、マッピング表を使用して、入力値を、符号とレベル情報との各生成された組合せにマッピングすることを含み得る。別の動作は、複数の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に示された構成によるシンタックス要素のシーケンスを示す表である。
【００８１】
図11に示されたシンタックス要素のシーケンスと比較して、図14に示されているシンタックス要素のシーケンスを対比することによって、いくつかの相違が観察され得る。図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）を使用して、シンタックス要素のシーケンスの絶対−3部分の値に対して適応型2値化を実施し、シンタックス要素のシーケンスの絶対−3部分の値は、複数の2値化表のための入力値として使用される。前の入力情報に基づいて2値化表を更新するための式が以下に示されている。
if（‘abs［coefficient（i）］−3’＞（Table［vlc］））vlc＋＋；
where  Table［vlc］＝｛3，5，13，27｝；
「i」は走査位置を表し、「vlc」は現在のvlc表番号を表す。
*利用可能な前の「絶対−3」がないので、vlcは最初に0（またはイントラスライスでは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は、ビットストリームからバイナリシンボルを復元する。ブロック1212において、電子デバイス1422は、バイナリシンボルをバイパス復号する。ブロック1213において、電子デバイス1422は、バイパス復号の結果を適応的に逆2値化する。ブロック1214において、電子デバイス1422は、適応型逆2値化の結果を使用して、残差情報を表すブロックを復元する。
【００９１】
図18は、電子デバイス上でのロスレスコーディングのための方法のさらに別の構成を示す流れ図である。
【００９２】
ブロック1311において、電子デバイス1421は、CABACのコンテキストモデルのサブセットのみにアクセスする。CABACのコンテキストモデルの数は184であり得る。サブセットを生成するために、これらのコンテキストモデルは、コンテキストモデルの関連する特性に基づいて、例えば、どのコンテキストモデルが周波数成分に関連付けられるかに基づいて、どのコンテキストモデルが走査位置に関連付けられるかに基づいて、どのコンテキストモデルがCABACの最後の位置のコーディングステップに関連付けられるかに基づいてなど、またはそれらの任意の組合せに基づいてフィルタ処理され得る。フィルタ処理は、一例では電子デバイス1421によって実施され得るが、別の例では、電子デバイス1421がロスレスコーディングモードのために提供されるサブセットにアクセスし得るように、電子デバイス1421にサブセットが提供され得る。一例では、サブセットを生成するために、CABACのコンテキストモデルは、コンテキストモデルの関連する特性に基づいて、例えば、どのコンテキストモデルが周波数成分に関連付けられるかに基づいて、どのコンテキストモデルが走査位置に関連付けられるかに基づいて、どのコンテキストモデルがCABACの最後の位置のコーディングステップに関連付けられるかに基づいてなど、またはそれらの任意の組合せに基づいて分類され得る。一例では、周波数成分と走査位置とは等しく、交換可能である
【００９３】
一例では、サブセットは、第1の周波数成分に等しくない周波数成分をもつCABACコンテキストモデルを含んでいないことがある。一例では、得られるサブセットは、26個のコンテキストモデル、すなわち、有意性マップをコーディングするための2つのコンテキストモデル（一方は第1のルーマ周波数成分に関し、他方は第1のクロマ周波数成分に関する）、ならびにGreater_than_1フラグの第1のルーマ周波数成分をコーディングするため、Greater_than_1フラグの第1のクロマ周波数成分をコーディングするため、ルーマのGreater_than_2フラグの第1のルーマ周波数成分をコーディングするため、およびGreater_than_2フラグの第1のクロマ周波数成分をコーディングするためのそれぞれ6つのコンテキストモデルを含むことになろう。したがって、Greater_than_1とGreather_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が最初にコーディングされるサブブロックを示す。一例では、最初にコーディングされるサブブロックは、ブロックの右下に位置するサブブロックである。別の例では、最初にコーディングされるサブブロックは、ブロックの中央に位置するサブブロックである。
【００９５】
【表３】
0006526099.tif 000004
【００９６】
ブロック1312において、電子デバイス1421は、有意性マップをコーディングするためにコンテキストモデルのサブセットを使用する。
【００９７】
段落0123において説明するように、第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は、コンテキストモデルのサブセットを使用してビットストリームからバイナリシンボルを復元する。ブロック1513において、電子デバイス1422は、復号の結果を使用してビデオデータを復元する。
【０１０２】
上記において、電子デバイス1421によって実装され得る構成は、図13、図16、および図18に示されている。これらの構成のすべてを用いてエンコーダを構成すると、コーディング性能が、既知のCABACロスレスコーディングモードと比較して向上する。とはいえ、これらの構成のすべてよりも少ないものを任意の組合せで用いて、例えば、これらの構成のうちの1つまたはこれらの構成のうちのいずれか2つを用いてエンコーダを構成することも可能で実際的であり、また、既知のCABACロスレスコーディングモードと比較してコーディング性能を向上させる。
【０１０３】
上記において、電子デバイス1422によって実装され得る構成は、図14、図17、および図19に示されている。これらの構成のすべてを用いてデコーダを構成すると、コーディング性能が、既知のCABACロスレスコーディングモードと比較して向上する。とはいえ、これらの構成のすべてよりも少ないものを任意の組合せで用いて、例えば、これらの構成のうちの1つまたはこれらの構成のうちのいずれか2つを用いてデコーダを構成することも可能で実際的であり、また、既知のCABACロスレスコーディングモードと比較してコーディング性能を向上させる。
【０１０４】
一例では、プロセッサおよび該プロセッサと電子通信しているメモリを含む電子デバイスが提供される。メモリに記憶されるのは、動作を実施するためにプロセッサによって実行可能な命令である。
【０１０５】
一例では、動作は、ロスレス符号化のために残差サンプルを表すブロックを取得することを含み得る。別の動作は、有意性マップを生成することを含み得、この生成は、ブロックの最後の走査位置に対応する有意性マップフィールドに、ブロックの最後の走査位置のレベルに対応する値を入力することを含む。別の動作は、この値を有する有意性マップを含むシンタックス要素のシーケンスを生成することを含み得る。別の動作は、シンタックス要素の生成されたシーケンスを表すビットストリームをデコーダに送信することを含み得る。
【０１０６】
一例では、シンタックス要素のシーケンスは、コンテキスト適応型バイナリ算術コーディング（CABAC）の最後の位置をコーディングするステップを実施せずに生成される。
【０１０７】
一例では、別の動作は、複数の2値化表を使用して適応型2値化を実施することを含み得、シンタックス要素のシーケンスの絶対−3部分の値は、複数の2値化表のための入力値として使用される。別の動作は、適応型2値化の結果を符号化することを含み得る。複数の2値化表はCAVLCのVLC表であり得る。
【０１０８】
一例では、適応型2値化の結果を符号化することは、追加の動作を含み得る。追加の動作は、CABACバイパスコーディングモードを利用することを含み得る。
【０１０９】
一例では、複数の2値化表を使用する入力値の適応型2値化は、追加の動作を含み得る。追加の動作は、入力値のうちの1つが、プリセットされたしきい値よりも大きいかどうかを判定することを含み得る。追加の動作は、前記入力値が、プリセットされたしきい値よりも大きいと判定したことに応答して、表の更新を実施することを含み得る。
【０１１０】
一例では、別の動作は、CABACのコンテキストモデルのサブセットのみにアクセスすることを含み得る。別の動作は、有意性マップをコーディングするためにコンテキストモデルのサブセットを使用することを含み得る。サブセットは、第1の周波数に等しくない周波数成分をもつCABACのコンテキストモデルを含み得る。
【０１１１】
一例では、プロセッサおよび該プロセッサと電子通信しているメモリを含む電子デバイスが提供される。メモリに記憶されるのは、動作を実施するためにプロセッサによって実行可能な命令である。
【０１１２】
一例では、動作は、ロスレス符号化のために残差サンプルを表すブロックを取得することを含み得る。別の動作は、ブロックを表すためにシンタックス要素のシーケンスを生成することを含み得る。別の動作は、複数の2値化表を使用して適応型2値化を実施することを含み得、シンタックス要素のシーケンスの絶対−3部分の値は、複数の2値化表のための入力値として使用される。別の動作は、適応型2値化の結果を符号化することを含み得る。別の動作は、符号化をデコーダに送信することを含み得る。
【０１１３】
一例では、複数の2値化表はCAVLCのVLC表である。
【０１１４】
一例では、適応型2値化の結果を符号化することは、追加の動作を含み得る。追加の動作は、コンテキスト適応型バイナリ算術コーディング（CABAC）バイパスコーディングモードを利用することを含み得る。
【０１１５】
一例では、複数の2値化表を使用する入力値の適応型2値化は、追加の動作を含み得る。追加の動作は、入力値のうちの1つが、プリセットされたしきい値よりも大きいかどうかを判定することを含み得る。追加の動作は、前記入力値が、プリセットされたしきい値よりも大きいと判定したことに応答して、表の更新を実施することを含み得る。
【０１１６】
一例では、別の動作は、有意性マップを生成することを含み得、この生成は、ブロックの最後の走査位置に対応する有意性マップフィールドに、ブロックの最後の走査位置のレベルに対応する値を入力することを含む。別の動作は、生成された有意性マップを使用してシンタックス要素のシーケンスを生成することを含み得る。
【０１１７】
一例では、シンタックス要素のシーケンスは、CABACの最後の位置をコーディングするステップを実施せずに生成される。
【０１１８】
一例では、方法が提供される。本方法は、デコーダを使用して実施され得る。本方法の1つの動作は、どのコンテキストモデルが周波数成分に関連付けられるかに基づいて、コンテキスト適応型バイナリ算術コーディング（CABAC）のコンテキストモデルをフィルタ処理することを含み得る。本方法の別の動作は、ビットストリームを取得することを含み得る。本方法の別の動作は、ビットストリームからバイナリシンボルを復元することを含み得る。本方法の別の動作は、フィルタ処理されたコンテキストモデルを使用してバイナリシンボルを復号することを含み得る。本方法の別の動作は、復号の結果を使用してビデオデータを復元することを含み得る。
【０１１９】
一例では、別の動作は、ビットストリームから、残差サンプルを表すブロックの最後の走査位置に対応する値が入力された有意性マップを有する、シンタックス要素のシーケンスを復元することを含み得る。別の動作は、有意性マップを使用して、および有意性マップの前記値を使用して、ブロックのレベルを復号することを含み得る。
【０１２０】
一例では、ブロックのレベルの復号は、CABACの最後の位置を復号するステップを実施せずに実施され得る。
【０１２１】
一例では、別の動作は、復元されたバイナリシンボルをバイパス復号することを含み得る。別の動作は、バイパス復号の結果を適応的に逆2値化することを含み得る。別の動作は、逆2値化の結果を使用して、残差情報を表すブロックを復元することを含み得る。
【０１２２】
一例では、別の動作は、適応型逆2値化のためにCAVLCの複数のVLC表を使用することを含み得る。
【０１２３】
一例では、バイパス復号は、CABACバイパス復号モードを利用することを含み得る。
【０１２４】
図21は、復号側の電子デバイス上で高スループットモード条件が満たされるかどうかを判定するための方法の一構成を示す流れ図である。
【０１２５】
ブロック2611において、電子デバイス422はビットストリームを取得する。ブロック2612において、電子デバイス422は、レベル値のブロックを取得する。一例では、ブロックはTQCのブロックを含む。
【０１２６】
ブロック2613において、電子デバイス422は、0に等しくないレベル値の数を判定する。菱形2614において、電子デバイス422は、この数が、プリセットされたしきい値よりも大きいかどうかを判定する。一例では、プリセットされたしきい値は8であり得、これは4×4ブロックの値の数の半分である。N個のレベル値を有するブロックサイズを用いた例では、しきい値は、Nの50%に相当し得る。一例では、電子デバイス422は、電子デバイス421からシグナリングを受信する。電子デバイス421によって送信されるシグナリングは、プリセットされたしきい値を指定するか、またはプリセットされたしきい値を決定するために電子デバイス421によって使用され得る情報を含み得る。
【０１２７】
菱形2614において、数が、プリセットされたしきい値よりも大きくない場合、ブロック2615において、電子デバイス422は、第1の2値化方法で0に等しくないレベル値を復号する。菱形2614において、数が、プリセットされたしきい値よりも大きい場合、ブロック2616において、電子デバイス422は、第1の2値化方法とは異なる第2の2値化方法で0に等しくないレベル値を復号する。一例では、第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値化方法で0に等しくないレベル値を復号する。菱形2714において、数が、プリセットされたしきい値よりも大きい場合、ブロック2716において、電子デバイス422は、第1の2値化方法とは異なる第2の2値化方法で0に等しくないレベル値を復号する。一例では、第2の2値化方法は、前に説明したHTBモードなど、高スループット2値化モードを含み得る。一例では、第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の復号方法を使用して、取得されたレベル値が0でないかどうかを判定する。菱形2814において、取得されたレベル値が0でない場合、電子デバイス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の復号方法を使用して、取得されたレベル値が0でないかどうかを判定する。一例では、第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値化方法（例えば0値を送ることができる2値化方法）を使用して処理され、一方、残りの要素は、異なる2値化方法（例えば0値を送ることができない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値化方法（例えば0値を送ることができる2値化方法）を使用して処理され、一方、残りの要素は、異なる2値化方法（例えば0値を送ることができない2値化方法）を使用して処理される。したがって、復号性能は、従来のCABAC有意性マップ復号よりも向上し得る。
【０１６３】
（HEVCにおけるCABACの異なるパラメータ選択技法を用いたロスレスコーディング）
【０１６４】
HEVCにおいてCABAC符号化をロスレスコーディングモードで利用するとき、符号化／復号は計算的に複雑である。計算複雑さの1つの理由は、シンタックス要素「絶対−3」の符号化である。既知のCABACコーディングでは、シンタックス要素を符号化するために指数ゴロム（Golomb）ライス（Rice）コーディング方法が使用される。
【０１６５】
背景として、指数ゴロムライス（G−R）コーディング方法は、図28に示されるライスパラメータ更新表を利用する。G−Rコーディング方法は、次の段落においてさらに詳細に説明するように、CABACの既知のロスレスコーディングモードにおいてシンタックス要素「絶対−3」（すなわち図2の表の最終行）をコーディングするために適用される。
【０１６６】
ライスパラメータは、ビンへのシンボルの変換を制御する。例によって説明するために、図28の表とG−Rコーディングとを使用してシンボル0、11、4...を変換することを考え、ここで、「0」（1番目のシンボル）はサブブロック中の初期シンボルである。1番目のシンボルはサブブロック中の初期シンボルであるので、ライスパラメータは1番目のシンボルについて0に初期化される。1番目のシンボル「0」は、0の現在のライスパラメータを使用してコーディングされる。一例では、RPのライスパラメータを用いてシンボルをコーディングするプロセスは、商＝floor（（シンボル−1）／RP）の値を計算することと、1に等しいビンに続く0に等しいビンの商ストリングを含んでいる出力を生成することとからなる。ここで、商は整数であり、floor（）は、整数と分数成分とを含んでいる値を整数成分にマッピングする演算である。説明のために、ライスパラメータ3を用いて「5」のシンボルをコーディングすると、1の商値と、「01」の出力ビンとを生じるであろう。同様に、ライスパラメータ33を用いて「100」のシンボルをコーディングすると、3の商値と、「0001」の出力ビンとを生じるであろう。代替例では、RPのライスパラメータを用いてシンボルをコーディングするプロセスは、商＝floor（（シンボル−1）／RP）の値を計算することと、0に等しいビンに続く1に等しいビンの商ストリングを含んでいる出力を生成することとからなる。さらに別の例では、RPのライスパラメータを用いてシンボルをコーディングするプロセスは、ルックアップ表のセットからシンボルとビンのシーケンスとの間のマッピングを定義するRP番目のルックアップ表を選択することからなる。図28の表によるルックアップ結果が0であるとすれば、ライスパラメータは、次のシンボルについて更新しない。2番目のシンボル「11」は、したがって、0の現在のライスパラメータを使用してコーディングされる。2番目のシンボル「11」とライスパラメータ「0」とについてのルックアップ結果（「2」）が現在のライスパラメータ値（すなわち0）とは異なるとすれば、ライスパラメータは0から2に更新される。3番目のシンボル「4」は、次いで、2の現在のライスパラメータを用いてコーディングされる。ルックアップ結果が現在のライスパラメータとは異なる値でないとすれば、次のシンボルには2のライスパラメータが使用される。
【０１６７】
既知のCABACに従って「絶対−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の絶対−3コーディング技法を使用する。
【０１７４】
ロスレス符号化を使用してブロックが符号化されるべきである場合、ブロック3014において、電子デバイス2921は、データのブロックを符号化するために第2の異なる絶対−3コーディング技法を使用する。ブロック3015において、電子デバイス2921は、生成されたビットストリームをネットワークを介して送信し、および／または、生成されたビットストリームをメモリデバイスに記憶する。
【０１７５】
一例では、第1の絶対−3コーディング技法は、CABACコーディングのR−Gコーディング技法を含み、すなわち、ライスパラメータは、各サブブロックコーディング段において0で初期化し、図28に示される表の5つのライスパラメータが考慮される。一例では、第2の異なる絶対−3コーディング技法は、各サブブロックコーディング段において0で初期化せず、すなわち、別様に初期化され、および／または異なるライスパラメータ更新表、例えば簡約されたライスパラメータ更新表を使用する。
【０１７６】
一例では、異なる初期化は、各サブブロックではなく各ブロックにおいてライスパラメータを0に初期化することを含み得る。一例では、異なる初期化は、現在のサブブロックの初期ライスパラメータとして、前のサブブロックにおいて使用された最後のライスパラメータを使用することを含み得る。
【０１７７】
一例では、異なる初期化は、残差サンプルの統計に基づいて初期化することを含み得る。一例では、異なる初期化は、ブロックタイプ、ブロックサイズ、または色情報（ルーマ／クロマ）など、あるいはそれらの任意の組合せに基づいて、あらかじめ定義されたライスパラメータ値で初期化することを含み得る。ブロックタイプは、ブロックのブロックサイズ、ブロックの予測情報（イントラ／インター）、およびブロックの色情報（ルーマ／クロマ）に基づいてブロックを表すための値である。一例では、異なる初期化は、現在のブロックタイプが、あるあらかじめ定義された値、例えば「2」および／または「5」に等しいとき、ライスパラメータをあらかじめ定義された値「1」で初期化することを含み得る。
【０１７８】
一例では、異なるライスパラメータ更新表は、第1の絶対−3コーディング技法のために使用されるライスパラメータ更新表よりも少ないライスパラメータを含む。一例では、異なるライスパラメータ更新表は、（ライスパラメータが「0」および「1」に等しい）最初の2つの場合のみを含む。そのようなライスパラメータ更新表の例は図37に含まれる。
【０１７９】
一例では、第2の異なる絶対−3コーディング技法が使用される場合、電子デバイス2921は、対応するインジケータ、例えば第2の異なる絶対−3コーディング技法に関連するフラグを1の値に設定し得る（これは、もちろん、設計の選好に応じて、前記フラグのデフォルト値を変更するか、または前記フラグをデフォルト値のままにすることを含み得る）。
【０１８０】
図31は、復号側の電子デバイス上での異なるパラメータ選択を用いたロスレスコーディングのための方法の一構成を示す流れ図である。
【０１８１】
ブロック3110において、電子デバイス2922はビットストリームを取得する。ブロック3111において、電子デバイス2922は、取得されたビットストリームからバイナリシンボルを復元する。
【０１８２】
菱形3112において、電子デバイス2922は、ロスレス復号を使用してバイナリシンボルが復号されるべきかどうかを判定する。一例では、判定は、受信されたビットストリームに対応する、スライスヘッダなどのヘッダを検査することを含み得る。ヘッダを検査することは、第2の異なる絶対−3コーディング技法に関連するフラグの値について、取得されたビットストリームに対応するスライスヘッダを検査することをさらに含み得る。別の例では、判定は、ブロックタイプ、またはTQCへの係数レベルの変換を制御する量子化パラメータなど、ブロックに関連する、以前に復号されたシンボルを検査することを含み得る。菱形3112において条件が満たされない場合、ブロック3113において、電子デバイス2922は、TQCのブロックを取得するために第1の絶対−3コーディング技法を使用する。
【０１８３】
菱形3112において条件が満たされる場合、ブロック3114において、電子デバイス2921は、残差サンプルを取得するために第2の異なる絶対−3コーディング技法を使用する。電子デバイス2922は、ブロック3115において、TQCの取得されたブロックまたは取得された残差サンプルをメモリデバイスに記憶し得、および／またはビデオデータを復元し得る。
【０１８４】
（HEVCにおけるCABACの高スループットコーディング）
【０１８５】
HEVCにおいてCABACコーディングを利用するとき、スループット性能は、これらに限定はしないが、ビン／ピクセルの総数、バイパスビン／ピクセルの数、およびレギュラー（またはコンテキスト）コーディングされるビン／ピクセルの数など、様々な要因に応じて異なり得る。したがって、これらの要因に応じて、コーディングは、かなりの量の処理リソースを消費し得、および／またはかなりの時間量を要し得る。以下の開示は、このおよび他の問題を解決する。
【０１８６】
背景として、既知のCABACによれば、シンタックス要素の最高25個のレベルコードフラグがコンテキストコーディングされる。残りのレベルコードフラグはバイパスコーディングされる。あらかじめ定義された（固定）数のGreater_than_1フラグ、すなわち8つのGreater_than_1フラグがコンテキストコーディングされる。あらかじめ定義された（固定）数のGreater_than_2フラグ、すなわち1つがコンテキストコーディングされる。有意性マップフラグのすべて、すなわち最高16個がコンテキストコーディングされる（シンタックス要素は、ブロックの最後の位置情報に応じて16個未満の有意性マップフラグを有し得る。したがって、所与のサブセットブロックについて最大25個のコンテキストコーディングされたビンが必要とされる（25ビン／16ピクセル＝1.56ビン／ピクセル）。上記の例は、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は、取得されたビットストリームからバイナリシンボルを復元する。
【０１９４】
ブロック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は、カウンタをリセットする、例えばカウンタを0に設定する。菱形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つの「1よりも大きい」フラグと、1つの「2よりも大きい」フラグとを含む。一例では、第2の量のコンテキストコーディングされたレベルコードフラグに対応するレベルコードフラグは、「1よりも大きい」フラグのみを含む。一例では、第2の量のコンテキストコーディングされたレベルコードフラグに対応するレベルコードフラグは、「2よりも大きい」フラグのみを含む。一例では、第2の量のコンテキストコーディングされたフラグに対応するレベルコードフラグは、第3のあらかじめ定義された数の「2よりも大きい」フラグと、動的な数の「1よりも大きい」フラグとを含み、動的な数は、第2の量と第3のあらかじめ定義された数との差分を含む。
【０２１２】
一例では、システムが提供される。本システムは、エンコーダの第1の電子デバイスを備え得、第1の電子デバイスは、算術ベースのエンコーダを使用して符号化されるべきデータのブロックを取得することと、ロスレス符号化を使用してデータのブロックが符号化されるべきかどうかを判定することと、ロスレス符号化を使用してデータのブロックが符号化されるべきでないと判定したことに応答して、データのブロックを符号化するために第1の絶対−3コーディング技法を使用することと、ロスレス符号化を使用してデータのブロックを符号化されるべきであると判定したことに応答して、データのブロックを符号化するために第2の絶対−3コーディング技法を使用することと、第2の絶対−3コーディング技法が、第1の絶対−3コーディング技法とは異なることと、符号化をメモリデバイスに記憶させることとを行うように構成される。
【０２１３】
本システムは、デコーダの第2の電子デバイスをさらに備え得、第2の電子デバイスは、ロスレス復号を使用して、受信されたバイナリシンボルが復号されるべきかどうかを判定することと、ロスレス復号を使用してバイナリシンボルが復号されるべきでないと判定したことに応答して、TQCのブロックを取得するために第1の絶対−3コーディング技法を使用することと、ロスレス復号を使用してバイナリシンボルが復号されるべきであると判定したことに応答して、残差サンプルを取得するために第2の絶対−3コーディング技法を使用することとを行うように構成される。
【０２１４】
第1の電子デバイスは、ロスレス符号化を使用してデータのブロックが符号化されるべきでないと判定したことに応答して、サブブロックの初期値についてライスパラメータを0で初期化することと、ロスレス符号化を使用してデータのブロックが符号化されるべきであると判定したことに応答して、サブブロックの初期値について前のサブブロックの最後の値からのライスパラメータを使用することとを行うように構成され得る。
【０２１５】
第1の電子デバイスは、ロスレス符号化を使用してデータのブロックが符号化されるべきでないと判定したことに応答して、サブブロックの初期値についてライスパラメータを0で初期化することと、ロスレス符号化を使用してデータのブロックが符号化されるべきであると判定したことに応答して、サブブロックの初期値について0でのライスパラメータの初期化をバイパスすることとを行うように構成され得る。
【０２１６】
第1の電子デバイスは、ロスレス符号化を使用してデータのブロックが符号化されるべきであると判定したことに応答して、ブロックタイプと、ブロックサイズと、色情報（ルーマ／クロマ）とを含むグループから選択される少なくとも1つに基づいて、ライスパラメータをあらかじめ定義された値で初期化するように構成され得る。
【０２１７】
第1の電子デバイスは、ロスレス符号化を使用してデータのブロックが符号化されるべきであると判定したことに応答して、現在のブロックタイプが2または5に等しいときにライスパラメータを1で初期化するように構成され得る。
【０２１８】
第1の電子デバイスは、ロスレス符号化を使用してデータのブロックが符号化されるべきでないと判定したことに応答して、サブブロックの初期値についてライスパラメータを0で初期化することと、ロスレス符号化を使用してデータのブロックが符号化されるべきであると判定したことに応答して、サブブロックの初期値について0でのライスパラメータの初期化をバイパスすることとを行うように構成され得る。
【０２１９】
第1の電子デバイスは、ロスレス復号を使用してバイナリシンボルが復号されるべきでないと判定したことに応答して、第1のライスパラメータ更新表を採用することと、ロスレス復号を使用してバイナリシンボルが復号されるべきであると判定したことに応答して、第1のライスパラメータ更新表とは異なる第2のライスパラメータ更新表を採用することとを行うように構成され得る。
【０２２０】
第2のライスパラメータ更新表は、第1のライスパラメータ更新表の短縮バージョンを備え得る。一例では、第2のライスパラメータ更新表のみは、現在のライスパラメータが2、3、または4に更新または初期化された後の更新を防止するように構成される。
【０２２１】
一例では、システムが提供される。本システムは、エンコーダの第1の電子デバイスを備え得、第1の電子デバイスは、算術ベースのエンコーダを使用して符号化されるべきデータのブロックを取得することと、シンタックス要素の第1の量のレベルコードフラグをコンテキストコーディングすることと、第1の量が、第1のあらかじめ定義された数に等しいことと、シンタックス要素の有意性マップにおいて実際にコーディングされたビンの数を識別することと、第2のあらかじめ定義された数と識別された数との差分を決定することと、シンタックス要素の第2の量のレベルコードフラグをコンテキストコーディングすることと、第2の量が、決定された差分を含むことと、コンテキストコーディングによって生成されたビットストリームをメモリデバイスに記憶させることとを行うように構成される。
【０２２２】
算術ベースのエンコーダはCABACエンコーダを備え得る。第1のあらかじめ定義された数は9を含み得る。第2のあらかじめ定義された数は16を含み得る。第1の量のコンテキストコーディングされたレベルコードフラグに対応するレベルコードフラグは、8つの「1よりも大きい」フラグと、1つの「2よりも大きい」フラグとを含み得る。第2の量のコンテキストコーディングされたレベルコードフラグに対応するレベルコードフラグは、「1よりも大きい」フラグのみを含み得る。第2の量のコンテキストコーディングされたレベルコードフラグに対応するレベルコードフラグは、「2よりも大きい」フラグのみを含み得る。一例では、第2の量のコンテキストコーディングされたフラグに対応するレベルコードフラグは、第3のあらかじめ定義された数の「2よりも大きい」フラグと、動的な数の「1よりも大きい」フラグとを含み得、動的な数は、第2の量と第3のあらかじめ定義された数との差分を含む。
【０２２３】
（HEVCにおけるCABACの変換スキップされたブロックのための高スループット残差コーディング）
【０２２４】
図41は、エンコーダとデコーダとの一例を示すブロック図である。
【０２２５】
システム4100は、デコーダ4112によって復号されるべき、符号化されたブロックを生成するために、エンコーダ4111を含む。エンコーダ4111とデコーダ4112とはネットワークを介して通信し得る。
【０２２６】
エンコーダ4111は、高スループット残差コーディングモードを使用して符号化するように構成された電子デバイス4121を含む。電子デバイス4121は、プロセッサおよび該プロセッサと電子通信しているメモリを備え得、メモリは、図42に示される動作を実施するためにプロセッサによって実行可能な命令を記憶する。
【０２２７】
デコーダ4112は、高スループット残差コーディングモードを使用して復号するように構成された電子デバイス4122を含む。電子デバイス4122は、プロセッサおよび該プロセッサと電子通信しているメモリを備え得、メモリは、図43に示される動作を実施するように実行可能な命令を記憶する。
【０２２８】
図42は、高スループット残差コーディングのための方法の一構成を示す流れ図である。
【０２２９】
ブロック4211において、電子デバイス4121は、算術ベースのエンコーダ、例えばCABACベースのエンコーダを使用して符号化されるべきデータのブロックを取得する。菱形4212において、電子デバイス4121は、高スループット残差コーディングを使用してブロックが符号化されるべきかどうかを判定する。高スループット残差コーディングを使用してブロックが符号化されるべきでない場合、ブロック4213において、電子デバイス4121は、データのブロックを符号化するために第1のコーディング技法を使用する。一例では、第1のコーディング技法は、絶対−3コーディング技法、例えば図30のブロック3013に関して説明したコーディング技法を含み得る。
【０２３０】
高スループット残差コーディングを使用してブロックが符号化されるべきである場合、ブロック4214において、電子デバイス4121は、データのブロックを符号化するために第1のコーディング技法とは異なる第2のコーディング技法を使用する。ブロック4215において、電子デバイス4121は、生成されたビットストリームをネットワークを介して送信し、および／または、生成されたビットストリームをメモリデバイスに記憶する。
【０２３１】
一例では、第2のコーディング技法は、第1のコーディング技法のコーディング段のサブセットのみを含む。一例では、第1のコーディング技法は、Greater_than_1コーディング段とGreater_than_2コーディング段とを含み、第2のコーディング技法は、Greater_than_1コーディング段とGreater_than_2コーディング段とのうちの少なくとも1つを含まない。
【０２３２】
一例では、第1のコーディング技法は、有意性マップコーディングの後に絶対−3コーディングを含むが、第2のコーディング技法は、有意性マップコーディングの後に絶対−3コーディングを含まない。第2のコーディング技法の一例では、有意性マップコーディングの後に、絶対−1値または絶対−2値がコーディングされる。一例では、Greater_than_1コーディング段とGreater_than_2コーディング段の両方がスキップされる場合、絶対−1値がコーディングされるが、Greater_than_2コーディング段がスキップされGreater_than_1コーディング段がスキップされない場合、絶対−2値がコーディングされる。一例では、符号コーディングが絶対−1または絶対−2コーディングの後に実施され得るが、別の例では、符号コーディングは絶対−1または絶対−2コーディングの前に実施され得る。
【０２３３】
一例では、絶対−1または絶対−2値コーディングは、本明細書で説明するいずれかのゴロムライス（G−R）コードを使用する。例えば、絶対−1または絶対−2値コーディングは、図30に関して説明したG−Rコーディング技法を使用し得る。一例では、絶対−1または絶対−2コーディングは、第1のコーディング技法のために使用されるのと同じG−Rコーディングを使用する。
【０２３４】
一例では、絶対−1または絶対−2値コーディングのために使用されるG−Rコーディング技法は、ブロックタイプ、ブロックサイズ、または色情報（ルーマ／クロマ）など、あるいはそれらの任意の組合せに基づいて、あらかじめ定義されたライスパラメータ値で初期化することを使用し、含み得る。一例では、あらかじめ定義されたライスパラメータはテクスチャ（ルーマ／クロマ）に依存し得る。例えば、あらかじめ定義されたライスパラメータ値は、ルーマブロックでは2であり得、クロマブロックでは1であり得る。一例では、絶対−1または絶対−2コーディングと絶対−3コーディングとのために同じG−Rコーディングが使用される。
【０２３５】
一例では、電子デバイス4121は、復号側に初期化情報を明示的にシグナリングし得る。初期化情報は、ビットストリームについてまたは現在のブロックについて、すなわちブロックごとにライスパラメータ初期化値を含み得る。初期化情報がブロックについて2つ以上のライスパラメータ初期化値を含む場合、初期化情報はまた、第1の値または第2の値を使用するための基準を示し得、すなわち、値は2および1であり得、条件は、ルーマブロックでは2および／またはクロマブロックでは1であり得る。一例では、追加の情報は、追加のシンタックス要素を含み得る。
【０２３６】
一例では、菱形4212は、データのブロックのTransform_skip_flagまたはTrans_quant_Bypass_flagが設定されるかどうかを判定することを含み得る。一例では、Transform_skip_flagまたはTrans_quant_Bypass_flagが1に等しい場合、データのそのブロックのために高スループット残差コーディングが使用される（逆に、Transform_skip_flagとTrans_quant_Bypass_flagとのいずれも設定されない場合、データのそのブロックのために高スループット残差コーディングは使用されない）。
【０２３７】
背景として、Transform_skip_flagは、対応するブロックが変換されるか否かを示す。既知の方式では、対応するブロックが変換されるとき、Transform_skip_flagは0に等しい。Transform_skip_flagが1に等しいとき、対応するブロックは変換されない、すなわち、残差データは残差サンプルを表す。
【０２３８】
背景として、Trans_quant_Bypass_flagは、対応するブロックが変換され量子化されるか否かを示す。Trans_quant_Bypass_flagが1に等しいとき、対応するブロックは変換され量子化されない、すなわち、残差データは残差サンプルを表す。また、変換はロスレスコーディングモードでなくレギュレアーコーディングモードにおいて使用されるので、符号化がロスレスコーディングモードによるとき、Trans_quant_Bypass_flagは1に等しい。
【０２３９】
一例では、符号化されるべきデータのブロックについて、少なくとも1つのレベルコード段、例えばGreater_than_1および／またはGreater_than_2が、選択的にスキップされ得ることを諒解されたい。一例では、少なくとも1つのレベルコード段がスキップされるか否かを判定するために、データのブロックのTransform_skip_flagを検査することが使用される。一例では、少なくとも1つのレベルコーディング段は、ロスレスコーディングモードを使用してデータのブロックが符号化されるべきである場合にスキップされ得る。少なくとも1つのレベルコード段がスキップされるとき、スループット利得が実現され得ることを諒解されたい。
【０２４０】
一例では、第2の異なるコーディング技法が使用される場合、電子デバイス4121は、対応するインジケータ、例えば第2の異なるコーディング技法に関連するフラグを1の値に設定し得る（これは、もちろん、設計の選好に応じて、前記フラグのデフォルト値を変更するか、または前記フラグをデフォルト値のままにすることを含み得る）。しかしながら、いくつかの例では、復号側は、ブロックについてTransform_skip_flagおよび／またはTrans_quant_Bypass_flagを検査し、Transform_skip_flagとTrans_quant_Bypass_flagとのいずれか一方が1に等しい場合、符号化側がブロックのために第2のコーディング技法を使用したことを推測し得るので、そのような明示的シグナリングは不要である。
【０２４１】
図43は、復号側の高スループット残差コーディングのための方法の一構成を示す流れ図である。
【０２４２】
ブロック4310において、電子デバイス4122はビットストリームを取得する。ブロック4311において、電子デバイス4122は、取得されたビットストリームからバイナリシンボルを復元する。
【０２４３】
菱形4312において、電子デバイス4122は、高スループット残差コーディングを使用してバイナリシンボルが復号されるべきかどうかを判定する。一例では、菱形4312は、復元されたバイナリシンボルが、変換された係数を表すかどうかを判定すること、例えば、復元されたバイナリシンボルに関連するTransform_skip_flagが設定されるかどうかを判定すること、Trans_quant_bypass_flagが設定されるかどうかを判定すること、および／またはロスレスコーディングモードを使用してビットストリームがコーディングされたかどうかを判定することを含む。菱形4312において条件が満たされない場合、ブロック4313において、電子デバイス4122は、TQCのブロックを取得するために第1のコーディング技法を使用する。
【０２４４】
菱形4312において条件が満たされる場合、ブロック4314において、電子デバイス4122は、残差サンプルを取得するために第2の異なるコーディング技法を使用する。電子デバイス4122は、ブロック4315において、TQCの取得されたブロックまたは取得された残差サンプルをメモリデバイスに記憶し得、および／またはビデオデータを復元し得る。
【０２４５】
一例では、第1のコーディング技法と第2のコーディング技法とのうちの第1のコーディング技法のみが絶対−3コーディング技法を含む。一例では、第2のコーディング技法は絶対−1または絶対−2コーディング技法を含む。
【０２４６】
一例では、第1のコーディング技法は、Greater_than_1フラグおよびGreater_than_2フラグをコーディングすること、すなわち、GR1コーディング段およびGR2コーディング段を含み、第2のコーディング技法は、いかなるGreater_than_1フラグおよび／またはGreater_than_2フラグもコーディングしない、すなわち、GR1コーディング段を含まずおよび／またはGR2コーディング段を含まない。
【０２４７】
一例では、第1のコーディング技法は、絶対−3値をコーディングするためにゴロムライス（G−R）コーディング方法を含み、第2のコーディング技法は、絶対−1または絶対−2値をコーディングするためにG−Rコーディング方法を含む。一例では、G−Rコーディング方法は、ブロックタイプと、ブロックサイズと、色情報（ルーマ／クロマ）とを含むグループから選択される少なくとも1つに基づいて、ライスパラメータをあらかじめ定義された値で初期化することを含む。一例では、あらかじめ定義されたライスパラメータはテクスチャ（ルーマ／クロマ）に依存し得る。例えば、あらかじめ定義されたライスパラメータ値は、ルーマブロックでは2であり、クロマブロックでは1である。一例では、絶対−1または絶対−2コーディングと絶対−3コーディングとのために同じG−Rコーディングが使用される。
【０２４８】
一例では、システムは、デコーダの第1の電子デバイスを備え、第1の電子デバイスは、ビットストリームを取得することと、取得されたビットストリームからバイナリシンボルを復元することと、高スループット残差コーディングモードを使用してバイナリシンボルが復号されるべきかどうかを判定することと、高スループット残差コーディングモードを使用してバイナリシンボルが復号されるべきでないと判定したことに応答して、変換され量子化された係数（TQC）のブロックを取得するために第1のコーディング技法を使用することと、高スループット残差コーディングモードを使用してバイナリシンボルが復号されるべきであると判定したことに応答して、残差サンプルを取得するために第2の異なるコーディング技法を使用することと、TQCの取得されたブロックまたは取得された残差サンプル、あるいはTQCの取得されたブロックまたは取得された残差サンプルを表すビデオデータをメモリデバイスに記憶することとを行うように構成される。
【０２４９】
一例では、第1のコーディング技法と第2のコーディング技法とのうちの第1のコーディング技法のみが絶対−3コーディングを含む。一例では、第2のコーディング技法は絶対−1または絶対−2コーディングを含む。
【０２５０】
一例では、第1の電子デバイスは、復元されたバイナリシンボルが、変換された係数を表すかどうかを判定することと、復元されたバイナリシンボルが、変換された係数を表さないと判定したことに応答して、第2の異なるコーディング技法を使用することとを行うように構成される。一例では、第1の電子デバイスは、復元されたバイナリシンボルに関連する変換スキップフラグまたは変換量子化バイパスフラグが設定されるかどうかを判定することと、変換スキップフラグまたは変換量子化バイパスフラグが設定されると判定したことに応答して、第2の異なるコーディング技法を使用することとを行うように構成される。一例では、第1の電子デバイスは、復元されたバイナリシンボルに関連する変換スキップフラグまたは変換量子化バイパスフラグが設定されるかどうかを判定することと、変換スキップフラグまたは変換量子化バイパスフラグが設定されると判定したことに応答して、第2の異なるコーディング技法を使用することとを行うように構成される。一例では、ロスレスコーディングモードを使用してビットストリームがコーディングされたかどうかを判定することと、ロスレスコーディングモードを使用してビットストリームがコーディングされたと判定したことに応答して、第2の異なるコーディング技法を使用することとを含む。
【０２５１】
一例では、第1のコーディング技法は、Greater_than_1フラグとGreater_than_2フラグとをコーディングすることを含み、第2のコーディング技法は、いかなるGreater_than_1フラグおよび／またはGreater_than_2フラグもコーディングしない。
【０２５２】
一例では、ビットストリームは、コンテキスト適応型バイナリ算術コーディング（CABAC）ベースのエンコーダから発生する。
【０２５３】
一例では、第1のコーディング技法は、絶対−3値をコーディングするためにゴロムライス（G−R）コーディング方法を含み、第2のコーディング技法は、絶対−1または絶対−2値をコーディングするためにG−Rコーディング方法を含む。
【０２５４】
一例では、C−Rコーディング方法は、ブロックタイプと、ブロックサイズと、色情報（ルーマ／クロマ）とを含むグループから選択される少なくとも1つに基づいて、ライスパラメータをあらかじめ定義された値で初期化することを含む。一例では、電子デバイス4121は、ビットストリームの初期化情報に基づいて、ビットストリームについてまたはブロックについてあらかじめ定義された値を決定し得る。初期化情報は、ビットストリームについてまたは現在のブロックについて、すなわちブロックごとにライスパラメータ初期化値を含み得る。初期化情報がブロックについて2つ以上のライスパラメータ初期化値を含む場合、初期化情報はまた、第1の値または第2の値を使用するための基準を示し得、すなわち、値は2および1であり得、条件は、ルーマブロックでは2および／またはクロマブロックでは1であり得る。一例では、追加の情報は、追加のシンタックス要素を含み得る。
【０２５５】
一例では、電子デバイス4121は、現在のブロックの非0係数の数を決定したことに応答して、あらかじめ定義された値を決定し得る。例えば、電子デバイス4121は、非0係数の数がしきい値よりも大きい場合、第1のあらかじめ定義された値を使用し、非0係数の数がしきい値以下である場合、第1のあらかじめ定義された値とは異なる第2のあらかじめ定義された値を使用し得る。
【０２５６】
図44は、復号側の高スループット残差コーディングのための方法の一構成を示す流れ図である。
【０２５７】
ブロック4410において、電子デバイス4122はビットストリームを取得する。ブロック4411において、電子デバイス4122は、取得されたビットストリームからバイナリシンボルを復元する。
【０２５８】
菱形4412において、電子デバイス4122は、高スループット残差コーディングを使用してバイナリシンボルが復号されるべきかどうかを判定する。一例では、菱形4412は、復元されたバイナリシンボルが、変換された係数を表すかどうかを判定すること、例えば、復元されたバイナリシンボルに関連するTransform_skip_flagが設定されるかどうかを判定することを含む。
【０２５９】
菱形4412において条件が満たされない場合、ブロック4413において、電子デバイス4122は、TQCのブロックを取得するためにライスパラメータ更新機能を適用する。例えば、ブロック4413において、電子デバイス4122は、初期ライスパラメータ値を使用して初期レベル値を復号し、次のレベル値を復号することなどより前に初期ライスパラメータ値を増分すべきかどうかを判定するために、図28によって説明されたライスパラメータ更新機能などのライスパラメータ更新機能を適用し得る。
【０２６０】
菱形4412において条件が満たされる場合、電子デバイス4122は、レベル値を別様に復号する。例えば、電子デバイス4122は、取得されたビットストリームからライスパラメータ値を復号し得る。また、電子デバイス4122は、ブロックについてすべてのレベル値を復号するために、復号されたライスパラメータ値を使用し得る。
【０２６１】
一例では、ブロック4414において、電子デバイス4122は、ビットストリームが、ライスパラメータ更新機能の最大値よりも大きいライスパラメータ値をシグナリングするかどうかを判定する。ビットストリームが、最大値よりも大きいライスパラメータ値をシグナリングする場合、ブロック4417において、電子デバイス4122は、ライスパラメータ更新機能の最大値よりも大きいライスパラメータ値を使用する。例えば、ブロック4413において適用されるライスパラメータ更新機能は、（図28によって説明されたライスパラメータ更新機能が使用される場合は）0から最大4にわたり得る。しかしながら、ビットストリームは、ライスパラメータ更新機能の最大値よりも大きいライスパラメータ値、例えば5をシグナリングし得る。
【０２６２】
ビットストリームが、最大値よりも大きいライスパラメータ値をシグナリングしない場合、ブロック4416において、電子デバイス4122は、ブロック4413において適用されるライスパラメータ更新機能の最大値よりも大きくないライスパラメータ値、例えば0〜4を使用し得る。ブロック4416において使用されるライスパラメータ値は、取得されたビットストリームによってシグナリングされ得る。電子デバイス4122は、ブロックについてすべてのレベル値を復号するために、復号されたライスパラメータ値を使用し得る。
【０２６３】
電子デバイス4122は、ブロック4418において、TQCの取得されたブロックまたは取得された残差サンプルをメモリデバイスに記憶し得、および／またはビデオデータを復元し得る。
【０２６４】
ブロック4414が電子デバイス4122によって実施されるべきであるかどうかを制御するためにフラグまたは他のインジケータが使用され得る。エンコーダ側の電子デバイス4121は、ブロック4414が電子デバイス4122によって実施されるようにするために、フラグまたは他のインジケータを1の値に設定し得る（これは、もちろん、設計の選好に応じて、前記フラグのデフォルト値を変更するか、または前記フラグをデフォルト値のままにすることを含み得る）。フラグはビットストリーム中のいかなるレベルでも配置され得、例えばシーケンスレベル、スライスレベル、コーディングユニット（CU）レベル、予測ユニット（PU）レベル、または変換ユニット（TU）レベルなどで配置される。一例では、電子デバイス4122は、コンテンツのビット深度がしきい値よりも大きく、フラグが1に設定される場合のみ、ブロック4414を実施し得る。
【０２６５】
菱形4414が実施されるべきでない（例えば、ブロックが変換スキップブロックでないか、フラグが0に設定されるか、またはビット深度がプリセットしきい値以下である）場合、ライスパラメータ値はビットストリーム中でシグナリングされないことがあるか、またはライスパラメータ値はライスパラメータ更新機能の範囲内であり得る。変換スキップブロックは受信されたが、フラグが0に等しいか、または、ビット深度が、プリセットされたしきい値以下である場合、電子デバイス4122は、残差サンプルを取得するためにライスパラメータ更新機能を適用し得る。一例では、ライスパラメータ更新機能は、図28によって説明されたライスパラメータ更新機能とは異なり得、例えば、最大ライスパラメータ値は4よりも大きくなり、例えば6以上になり得る。
【０２６６】
図45Aは、ライスパラメータ更新機能を適用する一構成を示す流れ図である。
【０２６７】
ブロック4510において、電子デバイス4122はライスパラメータを初期化する。ブロック4511において、電子デバイス4122は、初期化されたライスパラメータを使用してレベル値を復号する。
【０２６８】
菱形4512において、電子デバイス4122は、第1のライスパラメータ更新機能を適用すべきかどうかを判定する。一例では、第1のライスパラメータ更新機能は、図28で説明したライスパラメータ更新機能と同じである。菱形4512において条件が満たされる場合、ブロック4514において、電子デバイス4122は、第1のライスパラメータ更新機能を適用する。
【０２６９】
一例では、菱形4512は、復元されたバイナリシンボルが、変換された係数を表すかどうかを判定すること、例えば、復元されたバイナリシンボルに関連するTransform_skip_flagが設定されるかどうかを判定することを含む。そのような例では、第1のライスパラメータ更新機能は、復元されたバイナリシンボルに関連するTransform_skip_flagが設定される、例えば、1の値に等しいと判定したことに応答して適用される。
【０２７０】
第1のライスパラメータ更新機能が電子デバイス4122によって適用されるべきであるかどうかを制御するためにフラグまたは他のインジケータが使用され得る。エンコーダ側の電子デバイス4121は、電子デバイス4122に第2の異なるライスパラメータ更新機能を使用させるために、フラグまたは他のインジケータを1の値に設定し得る（これは、もちろん、設計の選好に応じて、前記フラグのデフォルト値を変更するか、または前記フラグをデフォルト値のままにすることを含み得る）。フラグはビットストリーム中のいかなるレベルでも配置され得、例えばシーケンスレベル、スライスレベル、CUレベル、PUレベル、またはTUレベルなどで配置される。一例では、電子デバイス4121は、コンテンツのビット深度がしきい値よりも大きく、フラグが1に設定される場合のみ、第2のライスパラメータ更新機能を適用することを決定し得る。
【０２７１】
菱形4512において条件が満たされない場合、ブロック4513において、電子デバイス4122は、第1のライスパラメータ更新機能とは異なる第2のライスパラメータ更新機能を適用する。第2のライスパラメータ更新機能は、第1のライスパラメータ更新機能とは異なる最大値、例えばより高い最大値を有し得る。一例では、第2のライスパラメータ更新機能は6以上の最大値を有する。
【０２７２】
例えば、図45Bは、8の最大値を有する例示的な第2の異なるライスパラメータ更新機能のための表4900を示している。表4900において、シンボルは、絶対−1、絶対−2、または絶対−3に対応し得る。Nの最大ライスパラメータ値をもつ別の表では、しきい値は4、7、13、25、49、97、193、385、...（3*2N＋1）であり得る。
【０２７３】
図44および図45に関して説明した構成とは異なる電子デバイス4121および電子デバイス4122の別の例示的な構成では、電子デバイス4122は、4の最大ライスパラメータ値を有するライスパラメータ更新機能をHEVCが適用するのと同様の様式で、6以上の最大ライスパラメータ値を有するライスパラメータ更新機能を適用する。電子デバイス4121および電子デバイス4122のさらに別の例示的な構成では、電子デバイス4121は、電子デバイス4122が、6以上の最大ライスパラメータ値を有するライスパラメータ更新機能を適用するのか、4の最大ライスパラメータ値を有するライスパラメータ更新機能を適用するかのかを制御するために、フラグまたは他のインジケータを設定する。フラグまたは他のインジケータが1に設定された場合、電子デバイス4122は、6以上の最大ライスパラメータ値を有するライスパラメータ更新機能を適用する。フラグまたは他のインジケータが0に設定された場合、電子デバイス4122は、4の最大ライスパラメータ値を有するライスパラメータ更新機能を適用する。電子デバイス4121および電子デバイス4122のさらに別の例示的な構成では、電子デバイス4122は、コンテンツのビット深度がしきい値よりも大きく、フラグが1に設定される場合のみ、6以上の最大ライスパラメータ値を有するライスパラメータ更新機能を適用する。
【０２７４】
（より高いビット深度コーディングのための修正変換スキップモード）
【０２７５】
背景として、HEVCによる復号では、エントロピー復号の後に逆量子化が続き、逆量子化の後に逆変換スキップが続き得る。既知のエントロピー復号または本明細書で説明するエントロピー復号方法のいずれかを使用するシステムでは、変換スキップブロックについて逆変換は実施されない。代わりに、逆量子化の結果にスケーリングが適用され得る。スケーリング演算は、導出された変数TS_Shiftに基づいて決定される。HEVCでは、逆変換スキップ演算は以下の擬似コードに対応する。
If（TS_Shift＞0）｛
残余＝（逆量子化された係数値＋（1＜＜（TS_Shift−1）））＞＞TS_Shift
｝else｛
残余＝（逆量子化された係数値）＜＜TS_Shift
｝
ここで、
x＞＞yは、2進数字yによる2の補数整数表現xの算術的右シフトに対応する。この関数は、yの非負整数値についてのみ定義される。右シフトの結果として最上位ビット（MSB）にシフトされるビットは、シフト演算より前にxのMSBに等しい値を有する。
x＜＜yは、2進数字yによる2の補数整数表現xの算術的左シフトに対応する。この関数は、yの非負整数値についてのみ定義される。左シフトの結果として最下位ビット（LSB）にシフトされるビットは、0に等しい値を有する。
【０２７６】
既知のスケーリング演算は、TS_ShiftをMAX_TDR−Bit_Depth−Log2TrSizeとして決定することを伴う。Max_TDRは、変換の最大ダイナミックレンジであり、これは、既知のシステムでは15であり得る。Bit_Depthは、サンプル値のビット深度であり、これは、既知のシステムでは0〜16にわたり得る。Log2TrSizeは、変換サイズのLog2であり、これは、既知のシステムでは2であり得、ここで、変換スキップは4×4ブロックに適用される（TrSizeはブロックのサイズを意味する）。より高いビット深度コーディングでは、スケーリング演算を適用した後に精度減損が観測されており、ここで、TS_Shift＝MAX_TDR−Bit_Depth−Log2TrSizeである。
【０２７７】
当技術分野で知られている精度減損が観測されないでより高いビット深度コーディングをサポートするために、TS_Shiftは、MAX［（MAX_TDR−Bit_Depth−Log2TrSize），0］として決定され得る。MAX演算は、括弧の間の値、例えばMAX_TDR−Bit_Depth−Log2TrSizeおよび0のうちの最大値を返す。したがって、TS_Shiftは非負整数であり、例えば0以上の整数である。
【０２７８】
別の例では、当技術分野で知られている精度減損が観測されないでより高いビット深度コーディングをサポートするために、TS_Shiftは、MAX_TDR−Bit_Depth−Log2TrSize＋Aとして決定され得る。エンコーダは、TS_Shiftが0よりも小さくなり得るか否かを制御するために変数Aを選択し得る。デコーダは、MAX_TDR−Bit_Depth−Log2TrSize＋Aを使用してTS_Shiftを決定するために、ビットストリームから値Aを復号し得る。
【０２７９】
一例では、エンコーダは、入力ビデオデータのビット深度が14ビット以上である場合、Aを1に設定し得、他のビット深度ではAは0に設定される。また、エンコーダは、入力ビデオデータのビット深度が14ビット以上であるが16ビット以下である場合、Aを3に設定し得、他のビット深度ではAは0に設定される。
【０２８０】
図46は、エンコーダとデコーダとの一例を示すブロック図である。
【０２８１】
システム4600は、デコーダ4612によって復号されるべき、符号化されたブロックを生成するために、エンコーダ4611を含む。エンコーダ4611とデコーダ4612とはネットワークを介して通信し得る。
【０２８２】
エンコーダ4611は、修正変換スキップモードを使用して符号化するように構成された電子デバイス4621を含む。電子デバイス4621は、プロセッサおよび該プロセッサと電子通信しているメモリを備え得、メモリは、図47に示される動作を実施するためにプロセッサによって実行可能な命令を記憶する。
【０２８３】
デコーダ4612は、修正変換スキップモードを使用して復号するように構成された電子デバイス4622を含む。電子デバイス4622は、プロセッサおよび該プロセッサと電子通信しているメモリを備え得、メモリは、図48に示される動作を実施するように実行可能な命令を記憶する。
【０２８４】
図47は、修正変換スキップモードを使用するための方法の一構成を示す流れ図である。
【０２８５】
ブロック4701において、電子デバイス4621は、算術ベースで符号化される、例えばCABACベースのエンコーダを使用して符号化されるべきデータのブロックを取得する。菱形4702において、電子デバイス4621は、修正変換スキップモードを使用してブロックの符号化が復号されるべきかどうかを判定する。
【０２８６】
修正変換スキップモードを使用してブロックの符号化が復号されるべきである場合、ブロック4703において、電子デバイス4621は、TS_Shiftを決定するために修正変換スキップモードを採用するようにデコーダ4612にシグナリングする。一例では、信号は、生成されたビットストリーム中のフラグであり得る。フラグはビットストリーム中のいかなるレベルでも配置され得、例えばシーケンスレベル、スライスレベル、CUレベル、PUレベル、またはTUレベルなどで配置される。TS_Shiftが修正変換スキップモードにおいてMAX_TDR−Bit_Depth−Log2TrSize＋Aとして計算されるべきである場合、電子デバイス4621は、フラグを設定することに加えてAの値をもシグナリングし得る。
【０２８７】
修正変換スキップモードを使用してブロックの符号化が復号されるべきでない場合、ブロック4704において、電子デバイス4621は、TS_Shiftを決定するために修正変換スキップモードを採用するようにデコーダ4612にシグナリングしない。
【０２８８】
ブロック4705において、電子デバイス4621は、データのブロックを符号化し、生成されたビットストリームをネットワークを介して送信し、および／または、生成されたビットストリームをメモリデバイスに記憶する。
【０２８９】
図48は、復号側で修正変換スキップモードを使用するための方法の一構成を示す流れ図である。
【０２９０】
ブロック4801において、電子デバイス4622はビットストリームを取得する。ブロック4802において、電子デバイス4622はバイナリシンボルを復元する。
【０２９１】
菱形4803において、電子デバイス4622は、修正変換スキップモードを使用してバイナリシンボルが復号されるべきかどうかを判定する。一例では、電子デバイス4622は、取得されたビットストリーム中のフラグが設定されるかどうかを判定する。
【０２９２】
修正変換スキップモードを使用してバイナリシンボルが復号されるべきである場合、ブロック4804において、電子デバイス4622は、第1のアルゴリズムを使用してTS_Shiftを決定し、ビデオデータを復元する。一例では、第1のアルゴリズムは、MAX［（MAX_TDR−Bit_Depth−Log2TrSize），0］である。別の例では、第1のアルゴリズムは、MAX_TDR−Bit_Depth−Log2TrSize＋Aである。後者の場合、電子デバイス4622は、エンコーダ4611からの信号に基づいて値Aをも決定し得る。代替的に、後者の場合、電子デバイス4622は、取得されたビットストリームの特性に基づいてAの値を推測し得る。例えば、電子デバイス4622、ビットストリームのビット深度が14ビット以上であるかどうか、およびそうである場合、Aのために値1が使用される。しかしながら、検査が、ビットストリームが14ビットよりも小さいことを示す場合、Aのために値0が使用される。別の例では、電子デバイス4622は、ビットストリームのビット深度が14ビット以上であるが16ビット以下であるかどうかを判定し、そうである場合、Aのために値3が使用される。しかしながら、検査が、ビットストリームのビット深度が14ビットよりも小さいかまたは16ビットよりも大きいことを示す場合、Aのために値0が使用される。
【０２９３】
修正変換スキップモードを使用してバイナリシンボルが復号されるべきでない場合、ブロック4805において、電子デバイス4622は、第2の異なるアルゴリズムを使用してTS_Shiftを決定し、ビデオデータを復元する。例えば、TS_Shiftは、MAX_TDR−Bit_Depth−Log2TrSizeとして決定される。ブロック4806において、電子デバイス4622は、復元されたビデオデータをメモリデバイスに記憶する。
【０２９４】
HEVC仕様内で、逆量子化された入力d［x］［y］のセットのための逆変換スキッププロセスの出力r［x］［y］は、以下のように指定されている。
r［x］［y］＝d［x］［y］＜＜7
bdShift＝（cldx＝＝0）？20−BitDepthY：20−BitDepthC
r［x］［y］＝（r［x］［y］＋（1＜＜（bdShift−1）））＞＞bdShift
ただし、cldxは色成分インデックスを表す。したがって、BitDepthYおよびBitDepthCは、それぞれルーマソースビット深度およびクロマソースビット深度を示す。bdShiftは、ビット深度に依存するシフトファクタである。＝＝は、関係演算子「に等しい」に対応する。
【０２９５】
TS_ShiftをMAX［（MAX_TDR−Bit_Depth−Log2TrSize），0］として決定することは、以下の修正逆変換スキッププロセスに関連し得る。
r［x］［y］＝d［x］［y］＜＜7
bdShift＝（cldx＝＝0）？20−BitDepthY：20−BitDepthC
bdShift＝MAX（7，bdShift）
r［x］［y］＝（r［x］［y］＋（1＜＜（bdShift−1）））＞＞bdShift
ただし、xおよびyは、垂直次元および水平次元のためのアレイインデックスを表し、
式x？y：zは以下に対応する。xが真であるか、または0に等しくない場合、式はyの値になり、そうでない場合、式はzの値になる。
【０２９６】
入力として逆量子化された係数d［x］［y］を取り、残差サンプル値r［x］［y］を出力する、逆変換スキップシフトプロセスのための全体的なスケーリング演算は、初期の左ビットシフト演算と、後の右ビットシフト演算とを含んでいることがある。いくつかのシステムでは、左ビットシフト演算によってシフトされるビット数は、右ビットシフト演算によってシフトされるビット数に等しいかまたはそれよりも小さくなければならないことが望ましいことがある。左ビットシフト演算によってシフトされるビット数が、右ビットシフト演算によってシフトされるビット数よりも大きい場合、得られる出力は、0に設定された最下位ビットのサブセットを含んでいることがある。これは、逆変換スキッププロセスにおける忠実度の減損に対応する。例示的な実装形態では、左ビットシフト演算によってシフトされるビット数が、右ビットシフト演算によってシフトされるビット数以下でなければならないという制限は、右ビットシフト演算によってシフトされるビットの最小数を限定することによって達成され、例えば、右ビットシフトの量は、MAX（右ビットシフトの量の下限、右ビットシフトの量の導出値）として計算され得る。別の例示的な実装形態では、左ビットシフト演算によってシフトされるビット数が、右ビットシフト演算によってシフトされるビット数以下でなければならないという制限は、左ビットシフト演算によってシフトされるビットの最大数を限定することによって達成され、例えば、左ビットシフトの量は、MIN（左ビットシフトの量の上限、左ビットシフトの量の導出値）として計算され得る。MIN演算は、括弧の間の値の最小値を返し、例えば、MIN（x，y）は、x＜＝yの場合はxになり、そうでない場合はyになる。別の例示的な実装形態では、左ビットシフト演算によってシフトされるビット数が、右ビットシフト演算によってシフトされるビット数以下でなければならないという制限は、右ビットシフト演算によってシフトされる最小ビット数と、左ビットシフト演算によってシフトされる最大ビット数の両方を限定することによって達成される。別の例示的な実装形態では、左ビットシフト演算によってシフトされるビット数が、右ビットシフト演算によってシフトされるビット数以下でなければならないという制限は、任意の他の適切な機構によって達成される。
【０２９７】
左ビットシフト演算によってシフトされる最大ビット数を限定するとき、逆量子化された入力d［x］［y］のセットのための逆変換スキッププロセスの出力r［x］［y］（なお、d［x］［y］は、スケーリングされた変換係数と呼ばれることもあることに留意されたい）は、以下のように指定され得る。
a．変数bdShiftは以下のように導出される。
bdShift＝（cIdx＝＝0）？20−BitDepthY：20−BitDepthC
b．残差サンプルrの（nTbS）×（nTbS）アレイは以下のように導出される。
transform_skip_flag_sh［xTbY］［yTbY］［cIdx］が1に等しい場合、x＝0..nTbS−1、y＝0..nTbS−1であれば、残差サンプルアレイ値r［x］［y］は以下のように導出される。
r［x］［y］＝（d［x］［y］＜＜MIN（7，bdShift））
そうでない場合（transform_skip_flag_sh［xTbY］［yTbY］［cIdx］が0に等しい）、入力として、変換ブロックロケーション（xTbY，yTbY）、変換ブロックのサイズnTbS、色成分変数cIdx、およびスケーリングされた変換係数dの（nTbS）×（nTbS）アレイを用いて、スケーリングされた変換係数のための変換プロセスが呼び出され、出力は、残差サンプルrの（nTbS）×（nTbS）アレイである。
c.x＝0..nTbS−1、y＝0..nTbS−1であれば、残差サンプル値r［x］［y］は以下のように修正される。
r［x］［y］＝（r［x］［y］＋（1＜＜（bdShift−1）））＞＞bdShift
ここで、
（xTbY，yTbY）は、現在のピクチャの左上ルーマサンプルに対して現在のルーマ変換ブロックの左上サンプルを指定するルーマロケーションに対応し、
cIdxは、現在のブロックの色成分を指定し、
nTbSは、現在の変換ブロックのサイズを指定し、
BitDepthYおよびBitDepthCは、それぞれルーマソースビット深度およびクロマソースビット深度を示す。
transform_skip_flag_sh［x0］［y0］［cIdx］は、関連する変換ブロックに変換が適用されるか否かを指定する。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対して考慮されている変換ブロックの左上ルーマサンプルのロケーション（x0，y0）を指定する。アレイインデックスcIdxは、色成分のインジケータを指定する。cIdxは、ルーマでは0に等しく、Cbでは1に等しく、Crでは2に等しい。1に等しいtransform_skip_flag_sh［x0］［y0］［cIdx］は、現在の変換ブロックに変換が適用されないことを指定する。0に等しいtransform_skip_flag_sh［x0］［y0］［cIdx］は、現在の変換ブロックに変換が適用されるか否かの決定が他のシンタックス要素に依存することを指定する。transform_skip_flag_sh［x0］［y0］［cIdx］が存在しないとき、それは0に等しいことが推測される。
【０２９８】
例示的な実施形態では、左ビットシフト演算によってシフトされる最大ビット数を限定するとき、左ビットシフトの量の導出値は、例えば現在の変換ブロックのサイズについて、ビットストリーム中でシグナリングされた過去のデータに基づいて決定される。左ビットシフトの量の導出値をderivedTSLeftShiftと表す場合、（スケーリングされた変換係数とも呼ばれる）逆量子化された入力d［x］［y］のセットのための逆変換スキッププロセスの出力r［x］［y］は、以下のように指定され得る。
a．変数bdShiftは以下のように導出される。
bdShift＝（cIdx＝＝0）？20−BitDepthY：20−BitDepthC
b．残差サンプルrの（nTbS）×（nTbS）アレイは以下のように導出される。
transform_skip_flag_sh［xTbY］［yTbY］［cIdx］が1に等しい場合、x＝0..nTbS−1、y＝0..nTbS−1であれば、残差サンプルアレイ値r［x］［y］は以下のように導出される。
r［x］［y］＝（d［x］［y］＜＜MIN（derivedTSLeftShift，bdShift））
そうでない場合（transform_skip_flag_sh［xTbY］［yTbY］［cIdx］が0に等しい）、入力として、変換ブロックロケーション（xTbY，yTbY）、変換ブロックのサイズnTbS、色成分変数cIdx、およびスケーリングされた変換係数dの（nTbS）×（nTbS）アレイを用いて、スケーリングされた変換係数のための変換プロセスが呼び出され、出力は、残差サンプルrの（nTbS）×（nTbS）アレイである。
c.x＝0..nTbS−1、y＝0..nTbS−1であれば、残差サンプル値r［x］［y］は以下のように修正される。
r［x］［y］＝（r［x］［y］＋（1＜＜（bdShift−1）））＞＞bdShift
【０２９９】
一例では、transform_skip_flag_sh［xTbY］［yTbY］［cIdx］は、Transform_skip_flagに対応する。
【０３００】
上記で説明したシステムおよび装置は、本明細書で説明した動作の一部または全部を実施するために、専用プロセッサシステム、マイクロコントローラ、プログラマブルロジックデバイス、マイクロプロセッサ、またはそれらの任意の組合せを使用し得る。上記で説明した動作のいくつかはソフトウェアで実装され得、他の動作はハードウェアで実装され得る。本明細書で説明した動作、プロセス、および／または方法のうちの1つまたは複数は、図示された図に関して本明細書で説明したものと実質的に同様の装置、デバイス、および／またはシステムによって実施され得る。
【０３０１】
処理デバイスは、メモリに記憶された命令または「コード」を実行し得る。メモリはデータも記憶し得る。処理デバイスは、これらに限定するわけではないが、アナログプロセッサ、デジタルプロセッサ、マイクロプロセッサ、マルチコアプロセッサ、プロセッサアレイ、ネットワークプロセッサなどを含み得る。処理デバイスは、統合制御システムまたはシステムマネージャの一部であり得るか、あるいはワイヤレス送信を介してネットワーク化システムとローカルにまたはリモートでインターフェースするように構成されたポータブル電子デバイスとして提供され得る。
【０３０２】
プロセッサメモリは、処理デバイスとともに集積化され得、例えば、RAMまたはFLASHメモリが集積回路マイクロプロセッサ内などに配置される。別の例では、メモリは、外部ディスクドライブ、ストレージアレイ、ポータブルFLASHキーフォブなど、独立したデバイスを備え得る。メモリおよび処理デバイスは、例えば、I／Oポート、ネットワーク接続などによって、動作可能に接続されるか、または互いに通信していることがあり、処理デバイスは、メモリ上に記憶されたファイルを読み取り得る。関連するメモリは、設計（ROM）によりパーミッション設定によって、「読み取り専用」であっても、そうでなくてもよい。メモリの他の例としては、これらに限定するわけではないが、固体半導体デバイス中に実装され得る、WORM、EPROM、EEPROM、FLASHなどを含み得る。他のメモリは、従来の回転ディスクドライブなど、可動部を備え得る。すべてのそのようなメモリは「機械読み取り可能」であり得、処理デバイスによって読み取り可能であり得る。
【０３０３】
動作命令またはコマンドは、（「コンピュータプログラム」または「コード」としても知られる）記憶されたコンピュータソフトウェアの有形形態で実装または具現され得る。プログラム、またはコードは、デジタルメモリに記憶され得、処理デバイスによって読み取られ得る。「コンピュータ読み取り可能な記憶媒体」（または代替的に、「機械読み取り可能な記憶媒体」）は、メモリが、コンピュータプログラムまたは他のデータの特質をもつデジタル情報を、少なくとも一時的に、記憶することが可能であり得る限り、および記憶された情報が適切な処理デバイスによって「読み取られ」得る限り、上記のタイプのメモリのすべて、ならびに将来の新しい技法を含み得る。「コンピュータ読み取り可能」という用語は、完全なメインフレーム、ミニコンピュータ、デスクトップ、またはラップトップコンピュータさえも示唆する「コンピュータ」の歴史的用法に限定されるわけではない。そうではなく、「コンピュータ読み取り可能」は、プロセッサ、処理デバイス、または任意のコンピューティングシステムによって読み取り可能であり得る記憶媒体を含み得る。そのような媒体は、コンピュータまたはプロセッサによってローカルにおよび／またはリモートでアクセス可能であり得る任意の利用可能な媒体であり得、揮発性および不揮発性媒体、ならびにリムーバブルおよび非リムーバブル媒体、あるいはそれらの任意の組合せを含み得る。
【０３０４】
コンピュータ読み取り可能な記憶媒体に記憶されたプログラムはコンピュータプログラム製品を含み得る。例えば、記憶媒体は、コンピュータプログラムを記憶または輸送するための便利な手段として使用され得る。便宜上、動作は、様々な相互接続または結合された機能ブロックまたは図として説明されることがある。しかしながら、これらの機能ブロックまたは図は、境界が不明確な単一の論理デバイス、プログラム、または動作に等価的に統合され得る場合があり得る。
【０３０５】
本明細書で教示された概念が多くの別の方法で特定の適用例に適合され得ることが当業者には認識されよう。特に、示された例は、本開示を読んだときに明らかになるであろう多くの代替実装形態のうちの1つにすぎないことが当業者には理解されよう。
【０３０６】
本明細書は、いくつかの箇所で「an（1つの）」、「one（1つの）」、「another（別の）」、または「some（いくつかの）」例を参照することがあるが、これは、それぞれのそのような参照が同じ例を対象とすること、あるいは特徴が単一の例にのみ当て嵌まることを必ずしも意味しない。
【符号の説明】
【０３０７】
400  システム
411  エンコーダ
412  デコーダ
421  電子デバイス
422  電子デバイス
1400  システム
1411  エンコーダ
1412  デコーダ
1421  電子デバイス
1422  電子デバイス
2400  システム
2411  エンコーダ
2412  デコーダ
2421  電子デバイス
2422  電子デバイス
2900  システム
2911  エンコーダ
2912  デコーダ
2921  電子デバイス
2922  電子デバイス
4100  システム
4111  エンコーダ
4112  デコーダ
4121  電子デバイス
4122  電子デバイス
4600  システム
4611  エンコーダ
4612  デコーダ
4621  電子デバイス
4622  電子デバイス
【図１】
0006526099.tif 000005
【図２】
0006526099.tif 000006
【図３】
0006526099.tif 000007
【図４】
0006526099.tif 000008
【図５】
0006526099.tif 000009
【図６】
0006526099.tif 000010
【図７】
0006526099.tif 000011
【図８】
0006526099.tif 000012
【図９】
0006526099.tif 000013
【図１０】
0006526099.tif 000014
【図１１】
0006526099.tif 000015
【図１２】
0006526099.tif 000016
【図１３】
0006526099.tif 000017
【図１４】
0006526099.tif 000018
【図１５】
0006526099.tif 000019
【図１６】
0006526099.tif 000020
【図１７】
0006526099.tif 000021
【図１８】
0006526099.tif 000022
【図１９】
0006526099.tif 000023
【図２０Ａ】
0006526099.tif 000024
【図２０Ｂ】
0006526099.tif 000025
【図２０Ｃ】
0006526099.tif 000026
【図２０Ｄ】
0006526099.tif 000027
【図２０Ｅ】
0006526099.tif 000028
【図２１】
0006526099.tif 000029
【図２２】
0006526099.tif 000030
【図２３】
0006526099.tif 000031
【図２４】
0006526099.tif 000032
【図２５】
0006526099.tif 000033
【図２６】
0006526099.tif 000034
【図２７】
0006526099.tif 000035
【図２８】
0006526099.tif 000036
【図２９】
0006526099.tif 000037
【図３０】
0006526099.tif 000038
【図３１】
0006526099.tif 000039
【図３２】
0006526099.tif 000040
【図３３】
0006526099.tif 000041
【図３４】
0006526099.tif 000042
【図３５】
0006526099.tif 000043
【図３６】
0006526099.tif 000044
【図３７】
0006526099.tif 000045
【図３８】
0006526099.tif 000046
【図３９】
0006526099.tif 000047
【図４０】
0006526099.tif 000048
【図４１】
0006526099.tif 000049
【図４２】
0006526099.tif 000050
【図４３】
0006526099.tif 000051
【図４４】
0006526099.tif 000052
【図４５Ａ】
0006526099.tif 000053
【図４５Ｂ】
0006526099.tif 000054
【図４６】
0006526099.tif 000055
【図４７】
0006526099.tif 000056
【図４８】
0006526099.tif 000057