【実施例】
【0021】
本願の原理は、International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) Moving Picture Experts Group−4 (MPEG−4) Part 10 Advanced Video Coding (AVC) standard/International Telecommunication Union, Telecommunication Sector (ITU−T) H.264 recommendation (以下、「MPEG−4 AVC標準」と呼ぶ)におけるHIGH 4:4:4 Intraプロファイル及びHIGH 4:4:4 Predictiveプロファイルのcoded_block_flag構文要素に、先行して使用されていない構文要素を使用する方法及び装置に関する。
【0022】
更に、本願の原理は、coded_block_pattern構文要素のマッピング処理のモノクローム・クロマ・タイプを使用することにより、何れのブロック・サイズについてもMPEG−4 AVC標準におけるCAVLC 4:4:4 IntraプロファイルのCAVLC処理の効率を向上させる方法及び装置に関する。
【0023】
本明細書及び特許請求の範囲は、本願の原理を示す。よって、本明細書及び特許請求の範囲に明示的に説明し、又は示している訳でないが、本願の原理を実施し、その趣旨及び範囲内に含まれる種々の配置を当業者が考え出すことができるであろう。
【0024】
本明細書及び特許請求の範囲記載の例及び条件付文言は全て、本願の原理、及び当該技術分野を発展させるために本願の発明者が貢献する概念の、読者の理解を支援するための教示の目的を意図しており、前述の、特記した例及び条件への限定なしであると解釈するものとする。
【0025】
更に、本願の原理、局面、及び実施例、並びにそれらの特定例を記載した、本明細書及び特許請求の範囲の記載は全て、その構造的均等物及び機能的均等物を包含することを意図している。更に、前述の均等物は、現在知られている均等物、及び将来に開発される均等物(すなわち、構造にかかわらず、同じ機能を行う、開発された何れかの構成要素)をともに含むことが意図されている。
【0026】
よって、例えば、本明細書及び特許請求の範囲に提示されたブロック図が、本願の原理を実施する例証的な回路の概念図を表すことは当業者によって認識されるであろう。同様に、フローチャート、フロー図、状態遷移図、擬似コード等は何れも、コンピュータ読み取り可能な媒体において実質的に表し、コンピュータ又はプロセッサにより、前述のコンピュータ又はプロセッサが明記されているかにかかわらず、実行し得る種々の処理を表す。
【0027】
図に示す種々の構成要素の機能は、専用ハードウェア、及び適切なソフトウェアに関連してソフトウェアを実行することができるハードウェアの使用によって備えることができる。プロセッサによって提供される場合、機能は、単一の専用プロセッサによって提供されるか、単一の共有プロセッサによって提供されるか、又は、複数の個々のプロセッサ(この一部は共有であり得る)によって提供され得る。更に、「プロセッサ」又は「コントローラ」の語を明示的に使用していることは、ソフトウェアを実行することができるハードウェアを専ら表すものと解するべきでなく、暗黙的には、無制限に、ディジタル信号プロセッサ(「DSP」)ハードウェア、ソフトウェアを記憶するための読み取り専用メモリ(「ROM」)、ランダム・アクセス・メモリ(「RAM」)及び不揮発性記憶装置を含み得る。
【0028】
他のハードウェア(汎用及び/又はカスタム)も含まれ得る。同様に、図に示すスイッチは何れも概念のみである。その機能は、プログラム・ロジックの動作により、専用ロジックにより、プログラム制御及び専用ロジックの相互作用により、又は手作業によって行うことができ、特定の手法は、コンテキストから更に具体的に分かるように実現者によって選択可能である。
【0029】
本願の特許請求の範囲では、特定の機能を行う手段として表される構成要素は何れも、その機能を行う何れの手段(例えば、a)その機能を行う回路構成要素の組合せや、b)機能を行うためにそのソフトウェアを実行する適切な回路と組み合わせた、ファームウェア、マイクロコード等を含む、何れかの形態のソフトウェア)も包含することが意図される。前述の特許請求の範囲で規定された本願の原理は、記載された種々の手段によって提供される機能が、請求項が要求するやり方で組合せられ、集約されるということに存在する。よって、前述の機能を提供することが可能な手段は何れも、本願の明細書及び特許請求の範囲記載のものと均等であるとみなされる。
【0030】
本願明細書における、本願の原理の「one embodiment」又は「an embodiment」への言及は、本願の実施例に関して説明した特定の構成、構造又は特性等が本願の原理の少なくとも一実施例に含まれていることを意味している。よって、本明細書全体の種々の箇所に記載された「in one embodiment」又は「in an embodiment」の句は、必ずしも、同じ実施例を全て表している訳でない。
【0031】
本明細書及び特許請求の範囲記載の「画像データ」という句は、静止画像及び動画像(すなわち、動きを含む画像の系列)の何れかに対応するデータを表すことを意図している。
【0032】
更に、本明細書及び特許請求の範囲では、「高位構文」は、階層的にマクロブロック層の上の、ビットストリーム内に存在している構文を表す。例えば、本明細書及び特許請求の範囲記載の高位構文は、スライス・ヘッダ・レベル、付加拡張情報(SEI)レベル、ピクチャ・パラメータ組レベル、シーケンス・パラメータ組レベル、及びNAL装置ヘッダ・レベルを表し得るが、それらに限定されない。
【0033】
更に、ビットストリームにおける1つ又は複数の8×8ブロックの存在を示す構文要素に関する、本明細書及び特許請求の範囲記載のユーザとして、「先行して使用されていない」という句は、何れの現行又は先行のビデオ符号化標準及び/若しくは勧告にも使用されていない構文要素を表す。
【0034】
「及び/又は」の語を使用していること、例えば、「A及び/又はB」の場合は、最初に挙げられた選択肢(A)の選択、第2に挙げられた選択肢(B)の選択、又は両方の選択肢(A及びB)の選択を包含することが意図されている。更なる例として、「A、B、及び/又はC」の場合、前述の句は、第1に挙げられた選択肢(A)の選択、第2に挙げられた選択肢(B)の選択、第3に挙げられた選択肢(C)の選択、第1に挙げられた選択肢及び第2に挙げられた選択肢(A及びB)の選択、第1に挙げられた選択肢及び第3に挙げられた選択肢(A及びC)の選択、第2に挙げられた選択肢及び第3に挙げられた選択肢(B及びC)の選択、又は、3つの選択肢(A、B及びC)全ての選択を包含することを意図している。当該技術分野及び関連技術分野において通常の知識を有する者が容易に分かるように、このことは、挙げられたいくつもの項目について拡張することができる。
【0035】
更に、本明細書及び特許請求の範囲において参照している表、章、節、サブ節等はMPEG−4AVC標準に関する。
【0036】
更に、本願の原理の1つ又は複数の実施例は本明細書及び特許請求の範囲においてMPEG−4 AVC標準に関して説明しているが、本願の原理は単にこの標準に限定されず、よって、本願の原理の趣旨を維持しながら、他のビデオ符号化の標準、勧告、及びその拡張(MPEG−4AVC標準の拡張を含む)に関して利用することができる。
【0037】
図1に移れば、本願の原理を適用することができるビデオ符号化器は全体を参照符号100で示す。ビデオ符号化器100への入力は、加算ジャンクション110の非反転入力と信号通信で接続される。加算ジャンクション110の出力は、変換器/量子化器120と信号通信で接続される。変換器/量子化器120の出力はエントロピ符号化器140と信号通信で接続される。エントロピ符号化器140の出力は符号化器100の出力として利用可能である。
【0038】
変換器/量子化器120の出力は逆変換器/量子化器150と信号通信で更に接続される。逆変換器/量子化器150の出力は、デブロック・フィルタ160の入力と信号通信で接続される。デブロック・フィルタ160の出力は、参照ピクチャ記憶機構170と信号通信で接続される。参照ピクチャ記憶機構170の第1の出力は動き推定器180の第1の入力と信号通信で接続される。符号化器100への入力は動き推定器180の第2の入力と信号通信で更に接続される。動き推定器180の出力は動き推定器190の第1の入力と信号通信で接続される。参照ピクチャ記憶機構170の第2の出力は、動き補償器190の第2の入力と信号通信で接続される。動き補償器190の出力は、加算ジャンクション110の反転入力と信号通信で接続される。
【0039】
図2に移れば、本願の原理を適用することができるビデオ復号化器は全体を参照番号200で示す。ビデオ復号化器200は、ビデオ系列を受信するためにエントロピ復号化器210を含む。エントロピ復号化器210の第1の出力は、逆量子化器/変換器220の入力と信号通信で接続される。逆量子化器/変換器220の出力は、加算ジャンクション240の第1の非反転入力と信号通信で接続される。
【0040】
加算ジャンクション240の出力はデブロック・フィルタ290と信号通信で接続される。デブロック・フィルタ290の出力は、基準ピクチャ記憶装置250の入力と信号通信で接続される。基準ピクチャ記憶装置250は、動き補償器260の第1の入力と信号通信で接続される。動き補償器260の出力は、加算ジャンクション240の第2の入力と信号通信で接続される。エントロピ復号化器210の第2の出力は、動き補償器260の第2の入力と信号通信で接続される。デブロック・フィルタ290の出力は、ビデオ復号化器200の出力として利用可能である。
【0041】
本願の原理は、International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) Moving Picture Experts Group−4 (MPEG−4) Part 10 Advanced Video Coding (AVC) standard/International Telecommunication Union, Telecommunication Sector (ITU−T) H.264 recommendation (以下、「MPEG−4 AVC標準」と呼ぶ)におけるHIGH 4:4:4 Intraプロファイル及びHIGH 4:4:4 Predictiveプロファイルのcoded_block_flag構文要素に、先行して使用されていない構文要素を使用する方法及び装置に関する。効果的には、本願の原理は、MPEG−4AVC標準及びその修正に記載されたHigh 4:4:4 Intraプロファイル及びHigh 4:4:4 Predictiveプロファイルの現在の実現形態の少なくとも前述の課題を解決する。
【0042】
4:4:4プロファイルにおけるcoded_block_pattern構文要素の符号割り当てに関し、特に、4:4:4プロファイルにおけるcoded_block_pattern構文要素の現在の意味論では、coded_block_pattern構文要素の4つの下位ビットのみが使用される。よって、4:4:4プロファイルの場合、表9−4のパート(b)(chrom_format_idcが0に等しい)、マクロブロック予測モードのcoded_block_pattern構文要素の値へのcodeNum構文要素の割り当てを使用する。
【0043】
よって、一実施例では、以下のように、coded_block_pattern構文要素について、新たなマッピング処理が提供される。
【0044】
既存の表9−4a及び表9−4bは以下のように修正される。提案された変更はCAVLCエントロピ符号化に関するが、完全性のために、CAVLCモードにおけるcoded_block_pattern構文要素の章全体の大半を以下に記載する。
【0045】
coded_block_pattern構文要素のマッピング処理に関し、サブ節9.1において規定されたように、codeNumの場合、マッピング処理に入力する。マッピング処理の出力は、me(v)として符号化された構文要素coded_block_patternの値である。表9−4a及び表9−4bは、マクロブロック予測モードがIntra_4x4に等しいか、 Intra_8x8に等しいか、又はInterに等しいかに応じてcodeNumに coded_block_patternを割り当てることを示す。特に、表9−4aは1又は2に等しいChromaArrayTypeに関し、表9−4bは0又は3に等しいChromaArrayTypeに関する。
【0046】
【表1】
【0047】
【表2】
表9−4a
表9−4b
ChromaArrayTypeは、モノクローム・ビデオ信号の場合、0に等しい。ChromaArrayTypeは、4:2:0ビデオの場合、1に等しい。ChromaArrayTypeは、4:2:2ビデオの場合、2に等しい。ChromaArrayTypeは、4:4:4ビデオの場合、3に等しい。
【0048】
マクロブロック層の意味論に関し、以下の定義を使用するものとする。
【0049】
transform_size_8x8_flagが1に等しいことは、現在のマクロブロックについて、残差8×8ブロックのデブロッキング・フィルタ処理前のピクチャ構成処理及び変換係数復号化処理を、lumaサンプル、Cbサンプル及びCrサンプルについて呼び出すものとする(chroma_format_idc=3であり、separate_colour_plane_flag=0の場合)。transform_size_8x8_flagが0に等しいことは、現在のマクロブロックについて、残差4×4ブロックのデブロッキング・フィルタ処理前のピクチャ構成処理及び変換係数復号化処理は、lumaサンプル、Cbサンプル及びCrサンプルについて呼び出すものとする(chroma_format_idc=3であり、separate_colour_plane_flag=0の場合)。transform_size_8x8_flagがビットストリームに存在していない場合、0に等しいのではないかと推論するものとする。
【0050】
マクロブロック予測の意味論に関し、以下の定義を使用するものとする。
【0051】
intra_chroma_pred_modeは、表7−16に示すように、Intra_4x4又はIntra_16x16予測を使用して、マクロブロックにおけるクロマに使用される空間予測のタイプを規定する。intra_chroma_pred_modeの値は0以上3以下の範囲内である。chroma_format_idc=3の場合、intra_chroma_pred_modeは、ビットストリームにおいて存在しない。
【0052】
符号化ブロック・パターンの2値化処理に関し、以下があてはまる。
【0053】
coded_block_patternの2値化は、プレフィックス部分及び(存在する場合)サフィックス部分を含む。2値化のプレフィックス部分は、CodedBlockPatternLumaのFL2値化によって表され、cMax=15である。chroma_format_idcが0に等しくない(モノクロ)か、又は3に等しくない(4:4:4)場合、サフィックス部分が存在しており、CodedBlockPatternChromaのTU2値化処理を含み、cMax=2である。coded_block_pattern構文要素の値と、CodedBlockPatternLuma及びCodedBlockPatternChromaの値との間の関係はサブ節7.4.5に規定するように表す。
【0054】
表1は、以下のように、残差ブロックCABAC構文を示す。
【0055】
【表3】
コンテキスト変数の初期化処理を次に説明する。
【0056】
表2は、初期化処理におけるスライス・タイプ毎のctxldx及び構文要素の関連付けを示す。
【0057】
【表4】
表3は、以下のように、1012乃至1023のctsldxの変数m及びnの値を示す。
【0058】
【表5】
2値化処理に関し、以下があてはまる。コンテキスト・インデクスctxldxの考えられる値は0以上1023以下の範囲内である。ctxldxOffsetに割り当てられた値は、構文要素の2値化又は2値化部分に割り当てられたctxldxの範囲のより低い値を規定する。
【0059】
表4は、2値化の関連タイプ(maxBinldxCtx及びctxldxOffset)を構文要素とともに示す。
【0060】
【表6】
次に、ctxldxの導出処理に関して説明する。
【0061】
【表7】
表5は、以下のように、構文要素coded_block_flag、 significant_coeff_flag、 last_significant_coeff_flag、及びcoeff_abs_level_minus1のctxBlockCatへのctxldxBlockCatOffsetの割り当てを示す。
【0062】
次に、構文要素coded_block_flagのctxldxlncの導出処理に関して説明する。この処理への入力はctxBlockCatであり、更なる入力は以下のように規定される。
【0063】
ctxBlockCatが0、6又は10に等しい場合、更なる入力はされない。
【0064】
さもなければ、ctxBlockCatが1又は2に等しい場合、luma4x4Blkldxである。
【0065】
さもなければ、ctxBlockCatが3に等しい場合、chroma成分係数iCbCrである。
【0066】
さもなければ、ctxBlockCatが4に等しい場合、chroma4x4Blkldx及びchroma成分係数iCbCrである。
【0067】
さもなければ、ctxBlockCatが5に等しい場合、luma8x8Blkldxである。
【0068】
さもなければ、ctxBlockCatが7又は8に等しい場合、cb4x4Blkldxである。
【0069】
さもなければ、ctxBlockCatが9に等しい場合、cb8x8Blkldxである。
【0070】
さもなければ、ctxBlockCatが11又は12に等しい場合、cr4x4Blkldxである。
【0071】
さもなければ(ctxBlockCatが13に等しい場合)、cr8x8Blkldxである。
【0072】
この処理の出力は、ctxldxlnc(ctxBlockCat)である。
【0073】
変数transBlockN(NはA又はBである)は以下のように導き出す。
【0074】
ctxBlockCatが0、6又は10に等しい場合、以下があてはまる。
【0075】
サブ節6.4.10.1に規定された近傍マクロブロックの導出処理が呼び出され、出力がmbAddrNに割り当てられる(NはA又はBである)。
【0076】
変数transBlockNは以下のように導き出される。
【0077】
mbAddrNが利用可能であり、マクロブロックmbAddrNがIntra_16x16予測モードで符号化された場合、以下があてはまる。
【0078】
ctxBlockCatが0に等しい場合、マクロブロックmbAddrNのluma DCブロックがtransBlockNに割り当てられる。
【0079】
さもなければ、ctxBlockCatが6に等しい場合、マクロブロックmbAddrNのCb DCブロックがtransBlockNに割り当てられる。
【0080】
さもなければ(ctxBlockCatが10に等しい場合)、マクロブロックmbAddrNのCr DCブロックがtransBlockNに割り当てられる。
【0081】
さもなければ、transBlockNは、利用可能でないものとしてマーキングされる。
【0082】
さもなければ、ctxBlockCatが1又は2に等しい場合、以下があてはまる。
【0083】
サブ節6.4.10.4に規定された近傍4x4lumaブロックの導出処理が、入力をluma4x4Blkldxとして呼び出され、出力がmbAddrNに割り当てられ、luma4x4BlkldxN(NはA又はB)である。
【0084】
変数transBlockNは以下のように導き出される。
【0085】
mbAddrNが利用可能であり、マクロブロックmbAddrNは、mb_typeが、 P_Skip、 B_Skip、又はI_PCMに等しくなく、((CodedBlockPatternLuma>>(luma4x4BlkldxN>>2))及び1)は、マクロブロックmbAddrNについて0に等しくなく、transform_size_8x8_flagは、マクロブロックmbAddrNについて0に等しい場合,マクロブロックmbAddrNのインデクスluma4x4BlkldxNの4x4 lumaブロックが、transBlockNに割り当てられる。
【0086】
さもなければ、mbAddrNが利用可能であり、マクロブロックmbAddrNは、mb_typeがP_Skip又はB_Skipに等しくなく、((CodedBlockPattemLuma>>(luma4x4BlkldxN>>2))及び1)が、マクロブロックmbAddrNについて0に等しくなく、transform_size_8x8_flagが、マクロブロックmbAddrNについて1に等しい場合、マクロブロックmbAddrNのインデクス(luma4x4BlkldxN>>2)の8x8lumaブロックはtransBlockNに割り当てられる。
【0087】
さもなければ、transBlockNは、利用可能でないものとしてマーキングされる。
【0088】
さもなければ、ctxBlockCatが3に等しい場合、以下があてはまる。
【0089】
サブ節6.4.10.1に規定された近傍マクロブロックの導出処理が呼び出され、出力がmbAddrNに割り当てられる(NはA又はBである)
変数transBlockNは以下のように導き出される。
【0090】
mbAddrNが利用可能であり、マクロブロックmbAddrNは、mb_typeがP_Skip、B_Skip、又はI_PCMに等しくなく、CodedBlockPatternChromaが、マクロブロックmbAddrNについて0に等しくなく、マクロブロックmbAddrNのクロマ成分iCbCrのクロマDCブロックは、transBlockNに割り当てられる。
【0091】
さもなければ、transBlockNは、利用可能でないものとしてマーキングされる。
【0092】
さもなければ、ctxBlockCatが4に等しい場合、以下があてはまる。
サブ節6.4.10.5に規定された近傍4x4クロマ・ブロックの導出処理が、入力をchroma4x4Blkldxとして呼び出され、出力がmbAddrNに割り当てられ、chroma4x4BlkldxN(NはA又はB)である。
【0093】
変数transBlockNは以下のように導き出される。
【0094】
mbAddrNが利用可能な場合、マクロブロックmbAddrNは、mb_typeがP_Skip、B_Skip、又はI_PCMに等しくなく、CodedBlockPatternChromaが、マクロブロックmbAddrNについて2に等しい場合、マクロブロックmbAddrNのクロマ成分iCbCrのchroma4x4BlkldxNの4×4クロマ・ブロックは、transBlockNに割り当てられる。
【0095】
さもなければ、transBlockNは、利用可能でないものとしてマーキングされる。
【0096】
さもなければ、ctxBlockCatが5に等しい場合、以下があてはまる。
【0097】
サブ節6.4.8.2に規定された近傍4x4ルマ・ブロックの導出処理が、入力をluma8x8Blkldxとして、呼び出され、出力がmbAddrNに割り当てられ、luma8x8BlkldxNである(NはA又はB)。
【0098】
変数transBlockNは以下のように導き出される。
【0099】
mbAddrNが利用可能であり、マクロブロックmbAddrNは、mb_typeが、P_Skip、B_Skip、又はI_PCMに等しくなく、((CodedBlockPattemLuma>>(luma8x8BlkldxN))及び1)は、マクロブロックmbAddrNについて、0に等しくなく、transform_size_8x8_flagは、マクロブロックmbAddrNについて、1に等しい場合、マクロブロックのmbAddrNのインデクスluma8x8BlkldxNの8x8lumaブロックが、transBlockNに割り当てられる。
【0100】
さもなければ、transBlockNは、利用可能でないものとしてマーキングされる。
【0101】
さもなければ、ctxBlockCatが7又は8に等しい場合、以下があてはまる。
【0102】
サブ節6.4.8.4.1に規定された近傍4x4Cbブロックの導出処理が、cb4x4Blkldxを入力として呼び出され、出力はmbAddrNに割り当てられ、cb4x4BlkldxNである(NはA又はB)。
【0103】
変数transBlockNは以下のように導き出される。
【0104】
mbAddrNが利用可能な場合、マクロブロックmbAddrNは、mb_typeがP_Skip、B_Skip又はI_PCMに等しくなく、((CodedBlockPattemLuma>>(cb4x4BlkldxN>>2))及び1)が、マクロブロックmbAddrNについて0に等しくなく、transform_size_8x8_flagが、マクロブロックmbAddrNについて0に等しい場合、マクロブロックmbAddrNのインデクスcb4x4BlkldxNの4x4CbブロックはtransBlockNに割り当てられる。
【0105】
さもなければ、mbAddrNが利用可能であり、マクロブロックmbAddrNは、mb_typeが、P_Skip又はB_Skipに等しくなく、((CodedBlockPattemLuma>>(cb4x4BlkldxN>>2))及び1)は、マクロブロックmbAddrNについて0に等しくなく、transform_size_8x8_flagは、マクロブロックmbAddrNについて、1に等しい場合、マクロブロックmbAddrNのインデクスcb4x4BlkldxN>>2の8x8Cbブロックが、transBlockNに割り当てられる。
【0106】
さもなければ、transBlockNは、利用可能でないものとしてマーキングされる。
【0107】
さもなければ、ctxBlockCatが9に等しい場合、以下があてはまる。
【0108】
サブ節6.4.8.2.1に規定された近傍4x4Cbブロックの導出処理が、入力をcb8x8Blkldxとして、呼び出され、出力がmbAddrNに割り当てられ、cb8x8BlkldxNである(NはA又はB)。
【0109】
変数transBlockNは以下のように導き出される。
【0110】
mbAddrNが利用可能であり、マクロブロックmbAddrNは、mb_typeが、P_Skip、B_Skip、又はI_PCMに等しくなく、((CodedBlockPattemLuma>>cb8x8BlkldxN)及び1)は、マクロブロックmbAddrNの場合、0に等しくなく、transform_size_8x8_flagは、マクロブロックmbAddrNについて、1に等しい場合、マクロブロックmbAddrNのインデクスcb8x8BlkldxNの8x8cbブロックが、transBlockNに割り当てられる。
【0111】
さもなければ、transBlockNは、利用可能でないものとしてマーキングされる。
【0112】
さもなければ、ctxBlockCatが11又は12に等しい場合、以下があてはまる。
【0113】
サブ節6.4.8.4.1に規定された近傍4x4Crブロックの導出処理が、入力をcr4x4Blkldxとして、呼び出され、出力がmbAddrNに割り当てられ、cr4x4BlkldxNである(NはA又はB)。
【0114】
変数transBlockNは以下のように導き出される。
【0115】
mbAddrNが利用可能であり、マクロブロックmbAddrNは、mb_typeが、P_Skip、B_Skip、又はI_PCMに等しくなく、((CodedBlockPattemLuma>>(cr4x4BlkldxN>>2))及び1)は、マクロブロックmbAddrNについて、0に等しくなく、transform_size_8x8_flagは、マクロブロックmbAddrNについて、0に等しい場合、マクロブロックmbAddrNのインデクスcr4x4BlkldxNの4x4 Crブロックが、transBlockNに割り当てられる。
【0116】
さもなければ、mbAddrNが利用可能であり、マクロブロックmbAddrNは、mb_typeがP_Skip又はB_Skipに等しくなく、((CodedBlockPatternLuma>>(cr4x4BlkldxN>>2))及び1)が、マクロブロックmbAddrNについて0に等しくなく、transform_size_8x8_flagが、macroblock mbAddrNについて1に等しい場合、マクロブロックmbAddrNのインデクス(cr4x4BlkldxN>>2)の8x8 CrブロックがtransBlockNに割り当てられる。
【0117】
さもなければ、transBlockNは、利用可能でないものとしてマーキングされる。
【0118】
さもなければ(ctxBlockCatが13に等しい場合)、以下があてはまる。
【0119】
サブ節6.4.8.2.1に規定された近傍8x8Crブロックの導出処理が、入力をcr8x8Blkldxとして、呼び出され、出力がmbAddrNに割り当てられ、cb8x8BlkldxNである(NはA又はB)。
【0120】
変数transBlockNは以下のように導き出される。
【0121】
mbAddrNが利用可能であり、マクロブロックmbAddrNは、mb_typeが、P_Skip、B_Skip、又はI_PCMに等しくなく、((CodedBlockPattemLuma>>cr8x8Blkldx)及び1)は、マクロブロックmbAddrNについて、0に等しくなく、transform_size_8x8_flagは、マクロブロックmbAddrNについて、1に等しい場合、マクロブロックmbAddrNのインデクスcr8x8BlkldxNの8x8Crブロックが、transBlockNに割り当てられる。
【0122】
さもなければ、transBlockNは、利用可能でないものとしてマーキングされる。
【0123】
変数condTermFlagN(NはA又はBである)は以下のように導き出す。
【0124】
以下の条件のうちの何れかが真の場合、condTermFlagNは0に等しくセットされる。
【0125】
mbAddrNが利用可能でなく、現在のマクロブロックがインター予測モードで符号化され、
mbAddrNが利用可能であり、transBlockNが利用可能でなく、マクロブロックmbAddrNのmb_typeがI_PCMに等しくなく、
現在のマクロブロックがIntra予測モードで符号化され、constrained_intra_pred_flagが1に等しく、マクロブロックmbAddrNが利用可能であり、Inter予測モードで符号化され、スライス・データ・パーティション化が使用される(nal_unit_typeは2乃至4である)。
【0126】
さもなければ、以下の条件の何れかが真の場合、condTermFlagNは1に等しくセットされる。
【0127】
mbAddrNが利用可能でなく、現在のマクロブロックがイントラ予測モードで符号化される。
【0128】
マクロブロックmbAddrNのmb_typeがI_PCMに等しい。
【0129】
さもなければ、condTermFlagNは、マクロブロックmbAddrNについて復号化された変換ブロックtransBlockNのcoded_block_flagの値に等しくセットされる。
【0130】
変数ctxldxlnc(ctxBlockCat)は、
ctxldxlnc(ctxBlockCat)=
condTermFlagA+2
*condTermFlagB (9)
で導き出される。
【0131】
図3に移れば、例示的なビデオ符号化処理の全体を参照番号300で示す。
【0132】
符号化処理300は、ループ限度ブロック312に制御を渡す開始ブロック305を含む。ループ限度ブロック312は、画像内のブロック毎のループを開始し、制御を機能ブロック315に渡す。機能ブロック315は、現在の画像ブロックの動き補償予測又は空間予測を形成し、制御を機能ブロック320に渡す。機能ブロック320は、動き補償予測又は空間予測を現在の画像ブロックから減算して予測残差を形成し、制御を機能ブロック330に渡す。機能ブロック330は予測残差を変換し、量子化し、制御を機能ブロック335に渡す。機能ブロック335は予測残差を逆変換/量子化して、符号化予測残差を形成し、制御を機能ブロック345に渡す。機能ブロック345は符号化残差を予測に加算して符号化ピクチャ・ブロックを形成し、終了ループ・ブロック350に制御を渡す。終了ループ・ブロック350はループを終了させ、制御を機能ブロック355に渡す。機能ブロック355は、少なくとも上記画像について符号化された、結果として生じるビットストリームに対して帯域内又は帯域外で構文要素を送出して、8×8ブロックの存在を示し(該当する場合(すなわち、前述のブロックが実際にビットストリーム内に存在している場合))、制御を終了ブロック399に渡す。構文要素は、例えば、復号化器による、示されたブロックへのCABAC及び/又はCAVLCの適用の選択的なディセーブルを可能にするために送出することができる。
【0133】
図4を参照すれば、例示的なビデオ復号化処理は全体を参照番号400で示す。
【0134】
復号化処理400は、制御を機能ブロック407に渡す開始ブロック405を含む。機能ブロック407は、8×8ブロックの存在を示す構文要素を、ビットストリームに対して帯域内又は帯域外で受信し(該当する場合、すなわち、前述のブロックが実際に存在している場合)、制御をループ限度ブロック410に渡す。構文要素は例えば、復号化中の、示されたブロックへのCABAC及び/又はCAVLCの適用の選択的なディセーブルを可能にするために受信することができる。ループ限度ブロック410は、ビットストリームからの画像における現在のブロックのループを始め、制御を機能ブロック415に渡す。機能ブロック415は、符号化残差をエントロピ復号化し、制御を機能ブロック420に渡す。機能ブロック420は、復号化残差を逆変換/量子化して符号化残差を形成し、制御を機能ブロック430に渡す。機能ブロック430は符号化残差を予測に加えて、符号化ピクチャ・ブロックを形成し、制御をループ限度ブロック435に渡す。ループ限度ブロック435は、ループを終了させ、制御を終了ブロック499に渡す。
【0135】
図5に移れば、例示的なビデオ符号化処理の全体を参照番号500で示す。
【0136】
符号化処理500は、機能ブロック510に制御を渡す開始ブロック505を含む。機能ブロックは、coded_block_pattern構文要素のマッピング処理において使用するモノクローム・クロマ・アレイ・タイプの表の選択を含む初期化を行い、制御をループ限度ブロック512に渡す。ループ限度ブロック512は、画像内のブロック毎のループを始め、制御を機能ブロック515に渡す。機能ブロック515は、現在の画像ブロックの動き補償予測又は空間予測を形成し、制御を機能ブロック520に渡す。機能ブロック520は、動き補償予測又は空間予測を現在の画像ブロックから減算して予測残差を形成し、制御を機能ブロック530に渡す。機能ブロック530は予測残差を変換し、量子化し、制御を機能ブロック535に渡す。機能ブロック535は予測残差を逆変換/量子化して、符号化予測残差を形成し、制御を機能ブロック545に渡す。機能ブロック545は符号化残差を予測に加えて符号化ピクチャ・ブロックを形成し、制御を終了ループ・ブロック550に渡す。終了ル―プ・ブロック550はループを終了し、制御を機能ブロック555に渡す。機能ブロック555は、coded_block_pattern構文要素を、少なくとも上記画像について符号化された結果として生じるビットストリームに対して帯域内又は帯域外で送出し、制御を終了ブロック599に渡す。
【0137】
図6に移れば、例示的なビデオ復号化処理の全体を参照番号600で示す。
【0138】
復号化処理600は、機能ブロック607に制御を渡す開始ブロック605を含む。機能ブロック607は、ビットストリームに対して帯域内又は帯域外でcoded_block_pattern構文要素(モノクローム・クロマ・アレイ・タイプを使用して先行してマッピングされた)を受信し、制御をループ限度ブロック610に渡す。ループ限度ブロック610は、ビットストリームからの画像内の現在のブロックのループを始め、制御を機能ブロック615に渡す。機能ブロック615は符号化残差をエントロピ復号化し、制御を機能ブロック620に渡す。機能ブロック620は、復号化残差を逆変換/量子化して符号化残差を形成し、制御を機能ブロック630に渡す。機能ブロック630は、符号化残差を予測に加えて符号化ピクチャ・ブロックを形成し、制御をループ限度ブロック635に渡す。ループ限度ブロック635はループを終了し、終了ブロック699に制御を渡す。
【0139】
簡潔性及び明瞭性の点で、
図3乃至
図6は、画像ブロックの符号化及び復号化それぞれに関係する工程全てを示している訳でないことがあり得る。
【0140】
次に、本発明の多くの効果/構成の一部について説明する。この一部は上述している。例えば、一効果/構成は、サンプルが2つのクロミナンス・アレイ及び輝度アレイを含むように画像データのサンプルを符号化する符号化プロファイルにより、画像データを、結果として生じるビットストリームに符号化する符号化器を含む装置である。2つのクロミナンス・アレイはそれぞれ、輝度アレイと同じ高さ及び同じ幅を有する。符号化器は、構文要素を使用して、結果として生じるビットストリームにおける少なくとも1つの8×8ブロックの存在を示す。
【0141】
別の効果/構成は、上記符号化器を有する装置であり、構文要素は、文脈適応型2進数算術符号化(CABAC)に関する少なくとも1つの8×8ブロックの存在を示す。
【0142】
更に別の利点/構成は上記符号化器を有する装置であって、構文要素は、少なくとも1つの8×8ブロックの存在を示して、復号化器による、少なくとも1つの8×8ブロックへの文脈適応型2進数算術符号化(CABAC)の適用を選択的にディセーブルすることを可能にする。
【0143】
更に、別の効果/構成は、上記符号化器を有する装置であり、符号化プロファイルは、of the International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) Moving Picture Experts Group−4 (MPEG−4) Part 10 Advanced Video Coding (AVC) standard/International Telecommunication Union, Telecommunication Sector (ITU−T) H.264勧告のHigh 4:4:4プロファイルである。
【0144】
更に、別の利点/構成は、上記符号化器を有する装置であり、符号化プロファイルは、High 4:4:4 Intraプロファイル、CAVLC 4:4:4 Intraプロファイル、及びHigh 4:4:4 Predictiveプロファイルの何れかであり得る。
【0145】
更に、別の効果/構成は、上述の符号化器を有する装置であり、構文要素は先行して使用されていない。
【0146】
更に、別の効果/構成は、上述の符号化器を有する装置であり、構文要素は高位構文要素である。
【0147】
更に、別の効果/構成は、上述の符号化器を有する装置であり、前記高位構文要素は、スライス・ヘッダ・レベル、補助拡張情報(SEI)レベル、ピクチャ・パラメータ組レベル、系列パラメータ組レベル、及びネットワーク抽象化層ユニット・ヘッダ・レベルのうちの少なくとも1つにおいて配置される。
【0148】
更に、別の効果/構成は、上述の符号化器を有する装置であり、構文要素は、結果として生成されるビットストリームに対して帯域内及び帯域外の一方で供給される。
【0149】
更に、別の効果/構成は、サンプルが2つのクロミナンス・アレイ及び輝度アレイを含むように画像データのサンプルを符号化する符号化プロファイルにより、画像データを、結果として生じるビットストリームに符号化するための符号化器を有する装置である。2つのクロミナンス・アレイそれぞれは、輝度アレイと同じ高さ及び同じ幅を有する。符号化器は、文脈適応型可変長符号化(CAVLC)を使用して画像データを符号化し、モノクローム・クロマ・アレイ・タイプを使用して、符号化ブロック・パターン構文要素のマッピング処理を行う。
【0150】
本願の原理の前述並びに他の特徴及び利点は、本明細書及び特許請求の範囲記載の教示に基づいて、当業者が容易に確かめることができる。本願の原理の教示は、種々の形態のハードウェア、ソフトウェア、ファームウェア、特殊用途向プロセッサ、又はそれらの組み合わせで実現することができる。
【0151】
最も好ましくは、本願の原理の教示は、ハードウェア及びソフトウェアの組合せとして実現される。更に、ソフトウェアは、プログラム記憶装置上に有形に実施されたアプリケーション・プログラムとして実現することができる。アプリケーション・プログラムは、何れかの適切なアーキテクチャを有するマシンにアップロードし、前述のマシンによって実行することができる。好ましくは、マシンは、1つ又は複数の中央処理装置(「CPU」)、ランダム・アクセス・メモリ(「RAM」)や、入出力(「I/O」)インタフェースなどのハードウェアを有するコンピュータ・プラットフォーム上に実現される。コンピュータ・プラットフォームは、オペレーティング・システム及びマイクロ命令コードも含み得る。本明細書及び特許請求の範囲記載の種々の処理及び機能は、CPUによって実行することができるアプリケーション・プログラムの一部若しくはマイクロ命令コードの一部(又はそれらの組み合わせ)であり得る。更に、種々の他の周辺装置を、更なるデータ記憶装置や、印刷装置などのコンピュータ・プラットフォームに接続することができる。
【0152】
添付図面に表す構成システム部分及び方法の一部は好ましくはソフトウェアで実現されるので、システム部分(又は処理機能ブロック)間の実際の接続は、本願の原理がプログラムされるやり方によって変わり得る。本明細書及び特許請求の範囲記載の教示があれば、当業者は、本願の原理の前述及び同様な実現形態又は構成に想到することができるであろう。
【0153】
例証する実施例は本明細書及び特許請求の範囲に添付図面を参照して説明しているが、本願の原理は前述の厳密な実施例に限定されず、本願の原理の範囲又は趣旨から逸脱しない限り、当業者により、種々の変更及び修正を行うことができる。前述の変更及び修正は全て、特許請求の範囲記載の本願の原理の範囲内に含まれることが意図されている。