【文献】
Vivienne Sze,"BoG report on context reduction for CABAC",[online],Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,2011年 7月21日,Document: JCTVC-F746(version 4),[平成28年5月19日検索], インターネット,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/6_Torino/wg11/JCTVC-F746-v4.zip
【文献】
Wei-Jung Chien, et.al.,"Memory and Parsing Friendly CABAC Context",[online],Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,2011年 7月20日,Document: JCTVC-F606(version 3),[平成28年5月19日検索], インターネット,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/6_Torino/wg11/JCTVC-F606-v3.zip
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
本開示では、ビデオデータなどのデータをコード化するための技法について説明する。特に、本開示では、コンテキスト適応型エントロピーコード化プロセスを使用したビデオデータの効率的なコード化を促進し得る技法について説明する。より詳細には、本開示は、pred_type、merge_idx、inter_pred_flag、ref_idx_lx、cbf_cb、cbf_cr、coeff_abs_level_greater1_flag、及びcoeff_abs_level_greater2_flagなど、シンタックス要素をコード化するために使用されるCABACコンテキストの数の削減を提案する。その修正により、無視できるコード化効率の変化とともに、最高56個のコンテキストを削減する。本開示では、説明のためにビデオコード化について説明する。但し、本開示で説明する技法は、他のタイプのデータをコード化することにも適用可能であり得る。
【0016】
図1は、本開示の例による、コンテキスト適応型バイナリ算術コード化(CABAC)のための技法を利用するように構成され得る例示的なビデオ符号化及び復号システム10を示すブロック図である。
図1に示すように、システム10は、通信チャネル16を介して符号化ビデオを宛先機器14に送信する発信源機器12を含む。符号化ビデオデータはまた、記憶媒体34又はファイルサーバ36に記憶され得、必要に応じて宛先機器14によってアクセスされ得る。記憶媒体又はファイルサーバに記憶されたとき、ビデオエンコーダ20は、コード化ビデオデータを記憶媒体に記憶するための、ネットワークインターフェース、コンパクトディスク(CD)、Blu−ray(登録商標)又はデジタルビデオディスク(DVD)バーナー又はスタンピングファシリティ機器、若しくは他の機器など、別の機器にコード化ビデオデータを与え得る。同様に、ネットワークインターフェース、CD又はDVDリーダーなど、ビデオデコーダ30とは別個の機器が、記憶媒体からコード化ビデオデータを取り出し、取り出されたデータをビデオデコーダ30に与え得る。
【0017】
発信源機器12及び宛先機器14は、デスクトップコンピュータ、ノートブック(即ち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、所謂スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、多種多様な機器のいずれかを備え得る。多くの場合、そのような機器はワイヤレス通信が可能であり得る。従って、通信チャネル16は、符号化ビデオデータの送信に好適なワイヤレスチャネル、ワイヤードチャネル、又はワイヤレスチャネルとワイヤードチャネルとの組合せを備え得る。同様に、ファイルサーバ36は、インターネット接続を含む任意の標準データ接続を介して宛先機器14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(例えば、Wi−Fi(登録商標)接続)、ワイヤード接続(例えば、DSL、ケーブルモデムなど)、又は両方の組合せを含み得る。
【0018】
本開示の例による、CABACのための技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、又は他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコード化に適用され得る。幾つかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、及び/又はビデオテレフォニーなどの適用例をサポートするために、一方向又は双方向のビデオ送信をサポートするように構成され得る。
【0019】
図1の例では、発信源機器12は、ビデオ発信源18と、ビデオエンコーダ20と、変調器/復調器22と、送信機24とを含む。発信源機器12において、ビデオ発信源18は、ビデオカメラなどの撮像装置、以前に撮影されたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、及び/又は発信源ビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどの発信源、若しくはそのような発信源の組合せを含み得る。一例として、ビデオ発信源18がビデオカメラである場合、発信源機器12及び宛先機器14は、所謂カメラフォン又はビデオフォンを形成し得る。但し、本開示で説明する技法は、概してビデオコード化に適用可能であり得、ワイヤレス及び/又はワイヤード適用例、あるいは符号化ビデオデータがローカルディスクに記憶された適用例に適用され得る。
【0020】
撮影されたビデオ、以前に撮影されたビデオ、又はコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム22によって変調され、送信機24を介して宛先機器14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器又は他の構成要素を含み得る。送信機24は、増幅器、フィルタ、及び1つ又は複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【0021】
ビデオエンコーダ20によって符号化された、撮影されたビデオ、以前に撮影されたビデオ、又はコンピュータ生成されたビデオはまた、後で消費するために記憶媒体34又はファイルサーバ36に記憶され得る。記憶媒体34は、Blu−rayディスク、DVD、CD−ROM、フラッシュメモリ、又は符号化ビデオを記憶するための任意の他の好適なデジタル記憶媒体を含み得る。記憶媒体34に記憶された符号化ビデオは、次いで、復号及び再生のために宛先機器14によってアクセスされ得る。
図1には示されていないが、幾つかの例では、記憶媒体34及び/又はファイルサーバ36は送信機24の出力を記憶し得る。
【0022】
ファイルサーバ36は、符号化ビデオを記憶すること、及びその符号化ビデオを宛先機器14に送信することが可能な、任意のタイプのサーバであり得る。例示的なファイルサーバは、(例えば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)機器、ローカルディスクドライブ、又は、符号化されたビデオデータを記憶すること、及び符号化されたビデオデータを宛先機器に送信することが可能な任意の他のタイプの機器を含む。ファイルサーバ36からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はその両方の組合せであり得る。ファイルサーバ36は、インターネット接続を含む任意の標準的なデータ接続を通じて宛先機器14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(例えば、Wi−Fi接続)、ワイヤード接続(例えば、DSL、ケーブルモデム、イーサネット(登録商標)、USBなど)、又は両方の組合せを含み得る。
【0023】
宛先機器14は、
図1の例では、受信機26と、モデム28と、ビデオデコーダ30と、表示装置32とを含む。宛先機器14の受信機26は、チャネル16を介して情報を受信し、モデム28はその情報を復調して、ビデオデコーダ30のために復調されたビットストリームを生成する。チャネル16を介して通信される情報は、ビデオデータを復号する際にビデオデコーダ30が使用する、ビデオエンコーダ20によって生成された様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体34又はファイルサーバ36に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ20及びビデオデコーダ30の各々は、ビデオデータを符号化又は復号することが可能であるそれぞれのエンコーダデコーダ(コーデック)の一部を形成し得る。
【0024】
表示装置32は、宛先機器14と一体化されるか又はその外部にあり得る。幾つかの例では、宛先機器14は、一体型表示装置を含み得、また、外部表示装置とインターフェースするように構成され得る。他の例では、宛先機器14は表示装置であり得る。概して、表示装置32は、復号されたビデオデータをユーザに対して表示し、液晶表示器(LCD)、プラズマ表示器、有機発光ダイオード(OLED)表示器、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。
【0025】
図1の例では、通信チャネル16は、無線周波数(RF)スペクトルあるいは1つ又は複数の物理伝送線路など、任意のワイヤレス又はワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は、概して、ワイヤード媒体又はワイヤレス媒体の任意の好適な組合せを含む、ビデオデータを発信源機器12から宛先機器14に送信するのに好適な任意の通信媒体、又は様々な通信媒体の集合体を表す。通信チャネル16は、発信源機器12から宛先機器14への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、又は任意の他の機器を含み得る。
【0026】
ビデオエンコーダ20及びビデオデコーダ30は、ITU−T Video Coding Experts Group(VCEG)のJoint Collaborative Team on Video Coding(JCT−VC)によって現在開発中の高効率ビデオコード化(HEVC)規格及びISO/IEC Motion Picture Experts Group(MPEG)などのビデオ圧縮規格に従って動作し得る。「HEVC Working Draft6」又は「WD6」と呼ばれる、HEVC規格の最近のドラフトは、2012年6月1日現在、http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003-v22.zipからダウンロード可能である、ドキュメントJCTVC−H1003、Brossら、「High efficiency video coding (HEVC) text specification draft 6」、Joint Collaborative Team on Video Coding (JCT−VC) of ITU−T SG16 WP3 and ISO/IEC JTC1/SC29/WG11、8th Meeting: San Jose、California、USA、February、2012に記載されている。
【0027】
代替的に、ビデオエンコーダ20及びビデオデコーダ30は、代替的にMPEG−4,Part10,Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格又は業界規格、あるいはそのような規格の拡張に従って動作し得る。但し、本開示の技法は、いかなる特定のコード化規格にも限定されない。他の例としては、MPEG−2及びITU−T H.263がある。
【0028】
図1には示されていないが、幾つかの態様では、ビデオエンコーダ20及びビデオデコーダ30は、それぞれオーディオエンコーダ及びデコーダと統合され得、適切なMUX−DEMUXユニット、又は他のハードウェア及びソフトウェアを含んで、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、幾つかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0029】
ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、又はそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、機器は、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つ又は複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20及びビデオデコーダ30の各々は1つ又は複数のエンコーダ又はデコーダ中に含まれ得、そのいずれも、それぞれの機器において複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
【0030】
ビデオエンコーダ20は、ビデオコード化プロセスにおけるCABACのための本開示の技法のいずれか又はすべてを実装し得る。同様に、ビデオデコーダ30は、ビデオコード化プロセスにおけるCABACのためのこれらの技法のいずれか又はすべてを実装し得る。本開示で説明するビデオコーダは、ビデオエンコーダ又はビデオデコーダを指し得る。同様に、ビデオコード化ユニットは、ビデオエンコーダ又はビデオデコーダを指し得る。同様に、ビデオコード化はビデオ符号化又はビデオ復号を指し得る。
【0031】
本開示の一例では、ビデオエンコーダ20は、Pスライス中のビデオデータのブロックのための第1の予測タイプを決定することと、第1の予測タイプをPスライス予測タイプシンタックス要素として表すことと、Bスライス中のビデオデータのブロックのための第2の予測タイプを決定することと、第2の予測タイプをBスライス予測タイプシンタックス要素として表すことと、Pスライス予測タイプシンタックス要素のためのPスライス2値化を決定することと、Bスライス予測タイプシンタックス要素のためのBスライス2値化を決定することと、Pスライス予測タイプシンタックス要素とBスライス予測タイプシンタックス要素とが同じ2値化論理を使用して決定される、Pスライス予測タイプシンタックス要素の2値化とBスライス予測シンタックス要素の2値化とに基づいてビデオデータを符号化することとを行うように構成され得る。
【0032】
本開示の別の例では、ビデオデコーダ30は、Pスライス中のビデオデータのブロックのための2値化マッピングを使用して、2値化されたPスライス予測タイプシンタックス要素を予測タイプにマッピングすることと、Bスライス中のビデオデータのブロックのための同じ2値化マッピングを使用して、2値化されたBスライス予測タイプシンタックス要素を予測タイプにマッピングすることと、マッピングされた予測タイプに基づいてビデオデータを復号することとを行うように構成され得る。
【0033】
本開示の別の例では、ビデオエンコーダ20は、ビデオデータのブロックのための予測モードのための区分タイプを決定することと、単一のコンテキストとともにCABACを使用して、ビデオデータのブロックのための予測タイプシンタックス要素の区分タイプビンを符号化することと、単一のコンテキストがいずれの区分タイプについても同じである、バイパスモードでCABACを使用して、ビデオデータのブロックのための予測タイプシンタックス要素の区分サイズビンを符号化することとを行うように構成され得る。
【0034】
本開示の別の例では、ビデオデコーダ30は、CABACを使用してコード化されたビデオデータのブロックのための予測タイプシンタックス要素を受信することと、予測タイプシンタックス要素が、区分タイプを表す区分タイプビンと、区分サイズを表す区分サイズビンとを含む、単一のコンテキストとともにCABACを使用して、予測タイプシンタックス要素の区分タイプビンを復号することと、単一のコンテキストがいずれの区分タイプについても同じである、バイパスモードでCABACを使用して、予測タイプシンタックス要素の区分サイズビンを復号することとを行うように構成され得る。
【0035】
本開示の別の例では、ビデオエンコーダ20とビデオデコーダ30の両方は、CABACを使用してビデオデータのブロックのためのCbクロマコード化ブロックフラグをコード化することと、Cbクロマコード化ブロックフラグをコード化することが、CABACの一部として1つ又は複数のコンテキストを含むコンテキストセットを使用することを備える、CABACを使用してCrクロマコード化ブロックフラグをコード化することと、コード化することとを行うように構成され得、Crクロマコード化ブロックフラグをコード化することが、CABACの一部としてCbクロマコード化ブロックフラグと同じコンテキストセットを使用することを備える。
【0036】
JCT−VCは、HEVC規格の開発に取り組んでいる。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコード化機器の発展的モデルに基づく。HMは、例えば、ITU−T H.264/AVCに従う既存の機器に対してビデオコード化機器の幾つかの追加の能力を仮定する。例えば、H.264は9つのイントラ予測符号化モードを提供するが、HMは33個ものイントラ予測符号化モードを提供し得る。以下のセクションでは、HMの幾つかの態様についてより詳細に説明する。
【0037】
概して、HMの作業モデルは、ビデオフレーム又はピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロック又は最大コード化単位(LCU)に分割され得ることを記述する。ツリーブロックは、H.264規格のマクロブロックと同様の目的を有する。スライスは、コード化順序で幾つかの連続するツリーブロックを含む。ビデオフレーム又はピクチャは、1つ又は複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコード化単位(CU)に分割され得る。例えば、4分木のルートノードとしてのツリーブロックは、4つの子ノードに分割され得、各子ノードは、次に、親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードとしての、最終的な、分割されていない子ノードは、コード化ノード、即ち、コード化ビデオブロックを備える。コード化ビットストリームに関連するシンタックスデータは、ツリーブロックが分割され得る最大回数を定義し得、コード化ノードの最小サイズをも定義し得る。
【0038】
CUは、コード化ノードと、コード化ノードに関連する予測単位(PU:prediction unit)及び変換単位(TU:transform unit)とを含む。CUのサイズは、概して、コード化ノードのサイズに対応し、一般に、形状が方形でなければならない。CUのサイズは、8×8画素から最大64×64以上の画素をもつツリーブロックのサイズまでに及び得る。各CUは、1つ又は複数のPUと、1つ又は複数のTUとを含み得る。CUに関連するシンタックスデータは、例えば、CUを1つ又は複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモード符号化又はダイレクトモード符号化されるか、イントラ予測モード符号化されるか、又はインター予測モード符号化されるかの間で異なり得る。PUは、形状が非方形になるように区分され得る。CUに関連するシンタックスデータは、例えば、4分木に従って、CUを1つ又は複数のTUに区分することも記述し得る。TUは、形状が方形又は非方形であり得る。
【0039】
新生のHEVC規格は、CUごとに異なり得るTUに従う変換を可能にする。TUは、一般に、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。TUは、一般にPUと同じサイズであるか又はPUよりも小さい。幾つかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用してより小さい単位に再分割され得る。RQTのリーフノードは変換単位(TU)と呼ばれることがある。TUに関連する画素差分値は、変換されて変換係数が生成され得、その変換係数は量子化され得る。
【0040】
概して、PUは、予測プロセスに関係するデータを指す。例えば、PUがイントラモード符号化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUのための動きベクトルを定義するデータを含み得る。PUのための動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(例えば、1/4画素精度又は1/8画素精度)、動きベクトルが指す参照ピクチャ、及び/又は動きベクトルの参照ピクチャリスト(例えば、リスト0、リスト1、又はリストC)を記述し得る。
【0041】
概して、TUは、変換プロセスと量子化プロセスとのために使用される。1つ又は複数のPUを有する所与のCUは、1つ又は複数の変換単位(TU)をも含み得る。予測に続いて、ビデオエンコーダ20は、PUに従ってコード化ノードによって識別されたビデオブロックから残差値を計算し得る。コード化ノードは、次いで、元のビデオブロックではなく、残差値を参照するように更新される。残差値は画素差分値を備え、画素差分値は、エントロピーコード化のためのシリアル化変換係数(serialized transform coefficient)を生成するためにTU中で指定された変換及び他の変換情報を使用して変換係数に変換され、量子化され、走査され得る。コード化ノードは、これらのシリアル化変換係数を参照するように、もう一度更新され得る。本開示では、一般に、CUのコード化ノードを指すために「ビデオブロック」という用語を使用する。幾つかの特定の場合において、本開示では、コード化ノードならびにPU及びTUを含む、ツリーブロック、即ち、LCU又はCUを指す「ビデオブロック」という用語も使用し得る。
【0042】
ビデオシーケンスは、一般に、一連のビデオフレーム又はピクチャを含む。ピクチャグループ(GOP)は、概して、ビデオピクチャのうちの一連の1つ又は複数を備える。GOPは、GOP中に含まれる幾つかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つ又は複数のヘッダ中、又は他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックはCU内のコード化ノードに対応し得る。ビデオブロックは、固定サイズ又は可変サイズを有し得、指定のコード化規格に応じてサイズが異なり得る。
【0043】
一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2N又はN×NのPUサイズでのイントラ予測をサポートし、2N×2N、2N×N、N×2N、又はN×Nの対称的なPUサイズでのインター予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、及びnR×2NのPUサイズでのインター予測のための非対称区分をサポートする。非対称区分では、CUの一方向は区分されないが、他の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、又は「Right」という表示によって示される。従って、例えば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUとで水平方向に区分された2N×2N CUを指す。
【0044】
図4は、イントラ予測及びインター予測のための方形区分タイプと非方形区分タイプの両方を示す概念図である。区分102は、2N×2N区分であり、イントラ予測とインター予測の両方のために使用され得る。区分104は、N×N区分であり、イントラ予測とインター予測の両方のために使用され得る。区分106は、2N×N区分であり、インター予測のためのHEVCにおいて現在使用されている。区分108は、N×2N区分であり、インター予測のためのHEVCにおいて現在使用されている。
【0045】
図5は、非対称区分タイプを示す概念図である。区分110は、2N×nU区分であり、インター予測のためのHEVCにおいて現在使用されている。区分112は、2N×nD区分であり、インター予測のためのHEVCにおいて現在使用されている。区分114は、nL×2N区分であり、インター予測のためのHEVCにおいて現在使用されている。区分116は、nR×2N区分であり、インター予測のためのHEVCにおいて現在使用されている。
【0046】
本開示では、「N×N(NxN)」及び「N×N(N by N)」は、垂直寸法及び水平寸法に関するビデオブロックの画素寸法、例えば、16×16(16x16)画素又は16×16(16 by 16)画素を指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16画素を有し(y=16)、水平方向に16画素を有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にN画素を有し、水平方向にN画素を有し、但し、Nは非負整数値を表す。ブロック中の画素は行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数の画素を有する必要があるとは限らない。例えば、ブロックはN×M画素を備え得、但し、Mは必ずしもNに等しいとは限らない。
【0047】
CUのPUを使用したイントラ予測コード化又はインター予測コード化の後、ビデオエンコーダ20は、CUのTUによって指定された変換が適用される残差データを計算し得る。残差データは、符号化されていないピクチャの画素と、CUに対応する予測値との間の画素差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを形成し、次いで、残差データを変換して、変換係数を生成し得る。
【0048】
変換係数を生成するための任意の変換の後に、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、概して、更なる圧縮を行う、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。例えば、量子化中にnビット値がmビット値に切り捨てられ得、但し、nはmよりも大きい。
【0049】
幾つかの例では、ビデオエンコーダ20は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するために予め定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20は適応走査を実行し得る。量子化変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、例えば、コンテキスト適応型可変長コード化(CAVLC:context adaptive variable length coding)、コンテキスト適応型バイナリ算術コード化(CABAC:context adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型バイナリ算術コード化(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コード化、又は別のエントロピー符号化方法に従って1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
【0050】
CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、例えば、シンボルの隣接値が非0であるか否かに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLCにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、VLCの使用は、例えば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【0051】
本開示は、コンテキスト適応型バイナリ算術コード化(CABAC)エントロピーコーダ、又は確率間隔区分エントロピーコード化(PIPE)若しくは関係するコーダなど、他のエントロピーコーダのための関係する技法である。算術コード化は、シンボルを非整数長さコードワードにマッピングすることが可能であるので、高いコード化効率を有する多くの圧縮アルゴリズムにおいて使用されるエントロピーコード化の形態である。算術コード化アルゴリズムの一例は、H.264/AVCにおいて使用されるコンテキストベースバイナリ算術コード化(CABAC)である。
【0052】
概して、CABACを使用してデータシンボルをコード化することは、以下のステップのうちの1つ又は複数を伴う。
【0053】
(1)2値化。コード化されるべきシンボルが非2進値化された場合、そのシンボルは、所謂「ビン」のシーケンスにマッピングされる。各ビンは「0」又は「1」の値を有することができる。
【0054】
(2)コンテキスト割当て。(標準モードにおける)各ビンはコンテキストに割り当てられる。コンテキストモデルは、前に符号化されたシンボルの値又はビン数など、ビンについて利用可能な情報に基づいて所与のビンのコンテキストがどのように計算されるかを決定する。
【0055】
(3)ビン符号化。ビンは算術エンコーダを用いて符号化される。ビンを符号化するために、算術エンコーダは、入力として、ビンの値の確率、即ち、ビンの値が「0」に等しい確率と、ビンの値が「1」に等しい確率とを必要とする。各コンテキストの(推定された)確率は、「コンテキスト状態」と呼ばれる整数値によって表される。各コンテキストはある状態を有し、従って、その状態(即ち、推定された確率)は、1つのコンテキストに割り当てられたビンに対して同じであり、コンテキスト間で異なる。
【0056】
(4)状態更新。選択されたコンテキストの確率(状態)は、ビンの実際のコード化値に基づいて更新される(例えば、ビン値が「1」であった場合、「1」の確率が増加される)。
【0057】
確率間隔区分エントロピーコード化(PIPE)は、算術コード化の原理と同様の原理を使用し、従って、本開示の技法をも利用することができることに留意されたい。
【0058】
H.264/AVC及びHEVCにおけるCABACは状態を使用し、各状態は暗黙的に確率に関係する。シンボル(「0」又は「1」)の確率が直接使用される、即ち、確率(又はそれの整数バージョン)が状態である、CABACの変形態が存在する。例えば、CABACのそのような変形態は、以下において「JCTVC−A114」と呼ぶ、「Description of video coding technology proposal by France Telecom, NTT, NTT DOCOMO, Panasonic and Technicolor」、JCTVC−A114、1
st JCT−VC Meeting、Dresden、DE、April 2010、及び、以下において「JCTVC−F254」と呼ぶ、A. Alshin及びE. Alshina、「Multi-parameter probability update for CABAC」、JCTVC−F254、6
th JCT−VC Meeting、Torino、IT、July 2011に記載されている。
【0059】
本開示では、CABACにおいて使用される2値化及び/又はコンテキストの数の削減が提案される。特に、本開示は、CABACにおいて使用されるコンテキストの数を最高56個だけ減じ得る技法を提案する。56個少ないコンテキストの場合、実験結果は、それぞれ、高効率イントラ限定条件、ランダムアクセス条件及び低遅延テスト条件で、0.00%、0.01%及び−0.13%のビット歪み(BD:bit-distortion)レート変化を示す。従って、必要とされるコンテキストの数の削減により、コード化効率に実質的に影響を及ぼすことなしに、エンコーダとデコーダの両方における記憶部のニーズが低減する。
【0060】
本開示では、シンタックス要素、即ち、pred_type、merge_idx、inter_pred_flag、ref_idx_lx、cbf_cb、cbf_cr、coeff_abs_level_greater1_flag、及びcoeff_abs_level_greater2_flagのために使用されるCABACコンテキストの数の削減が提案される。その修正により、無視できるコード化効率の変化とともに、最高56個のコンテキストを削減する。上記のシンタックス要素のための提案するコンテキスト削減は、単独で、又は任意の組合せで使用され得る。
【0061】
シンタックス要素pred_typeは、各コード化単位のための予測モード(pred_mode_flag)と区分タイプ(part_mode)とを含む。0に等しいシンタックス要素pred_mode_flagは、現在コード化単位がインター予測モードでコード化されることを指定する。1に等しいシンタックス要素pred_mode_flagは、現在コード化ユニットがイントラ予測モードでコード化されることを指定する。シンタックス要素part_modeは、現在コード化単位の区分モードを指定する。
【0062】
シンタックス要素merge_idx[x0][y0]は、マージ候補リストのマージ候補インデックスを指定し、x0、y0は、ピクチャの左上ルーマサンプルに対する当該の予測ブロックの左上ルーマサンプルの位置(x0,y0)を指定する。merge_idx[x0][y0]が存在しないとき、0に等しいことが推論される。マージ候補リストは、動き情報がそこからコピーされ得る現在単位に隣接するコード化単位のリストである。
【0063】
シンタックス要素inter_pred_flag[x0][y0]は、現在予測単位に単予測が使用されるのか、双予測が使用されるのかを指定する。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対する当該予測ブロックの左上ルーマサンプルの位置(x0,y0)を指定する。
【0064】
シンタックス要素ref_idx_lxは、参照ピクチャリスト内の特定の参照ピクチャを指す。
【0065】
シンタックス要素cbf_cb、cbf_crは、クロマ(それぞれ、Cb及びCr)変換ブロックが非0変換係数を含んでいるか否かを示す。1に等しいシンタックス要素cbf_cb[x0][y0][trafoDepth]は、Cb変換ブロックが0に等しくない1つ又は複数の変換係数レベルを含んでいることを指定する。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対する当該変換ブロックの左上ルーマサンプルの位置(x0,y0)を指定する。アレイインデックスtrafoDepthは、変換コード化のために、ブロックへのコード化ユニットの現在細分レベルを指定する。アレイインデックスtrafoDepthは、コード化ユニットに対応するブロックについて0に等しい。cbf_cb[x0][y0][trafoDepth]が存在せず、予測モードがイントラ予測でないとき、cbf_cb[x0][y0][trafoDepth]の値は0に等しいことが推論される。
【0066】
1に等しいシンタックス要素cbf_cr[x0][y0][trafoDepth]は、Cr変換ブロックが0に等しくない1つ又は複数の変換係数レベルを含んでいることを指定する。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対する当該変換ブロックの左上ルーマサンプルの位置(x0,y0)を指定する。アレイインデックスtrafoDepthは、変換コード化のために、ブロックへのコード化単位の現在細分レベルを指定する。アレイインデックスtrafoDepthは、コード化単位に対応するブロックについて0に等しい。cbf_cr[x0][y0][trafoDepth]が存在せず、予測モードがイントラ予測でないとき、cbf_cr[x0][y0][trafoDepth]の値は0に等しいことが推論される。
【0067】
シンタックス要素coeff_abs_level_greater1_flag[n]は、走査位置nについて、1よりも大きい変換係数レベルがあるかどうかを指定する。coeff_abs_level_greater1_flag[n]が存在しないとき、0に等しいことが推論される。
【0068】
シンタックス要素coeff_abs_level_greater2_flag[n]は、走査位置nについて、2よりも大きい変換係数レベルがあるかどうかを指定する。coeff_abs_level_greater2_flag[n]が存在しないとき、0に等しいことが推論される。
【0069】
HEVCについての1つの提案では、表1に示すように、PスライスとBスライスとにおいて、シンタックス要素pred_typeに対する異なる2値化が使用される。本開示は、PスライスとBスライスとについて同じ2値化を使用することを提案する。例を表2〜表4に示す。表5に、共通テスト条件(例えば、F.Bossen、「Common test conditions and software reference configurations」、JCTVC―F900参照)の下での、Pスライスへのコード化性能の影響を示す。
【表1】
【0070】
表1でわかるように、Iスライス(例えば、イントラ予測されたブロックのみを含むスライス)は、2つの異なる予測タイプ(pred_type)を含む。1つのビンストリング(2値化)は、2N×2N区分タイプをもつイントラ予測されたブロックのために使用され、別のビンストリングは、N×N区分タイプをもつイントラ予測されたブロックのために使用される。表1に示すように、Iスライスのために使用されるビンストリングは、CUサイズに依存しない。
【0071】
Pスライス及びBスライスの場合、表1では、pred_typeの各値について異なるビンストリングが使用される。この場合も、pred_typeの値は、予測モード(インター予測又はイントラ予測)と、使用される区分タイプの両方に依存する。Pスライス及びBスライスの場合、使用される実際のビンストリングは更に、コード化されているCUのサイズと、インター予測が4×4ブロックサイズについて使用可能であるか否かとに依存する。
【0072】
コード化されているCUのCUサイズの対数関数が最小許容CUサイズの対数関数よりも大きい状況では、ビンストリングの下の1列目が適用される。HEVCにおける一例によれば、cLog2CUSize>Log2MinCUsizeの場合、ビンストリングの1列目が使用される。対数関数は、より小さい連続するインデックスが使用され得るように、より小さい数を作成するために使用される。
【0073】
コード化されているCUのCUサイズの対数関数が、最小許容CUサイズの対数関数に等しい場合(即ち、cLog2CUSize==Log2MinCUSize)、2値化を選択するために、表1のビンストリングの下の列2及び列3のうちの1つが使用される。コード化されているCUのCUサイズの対数関数が3に等しく、4×4CUについてインター予測が使用可能でないとき(即ち、cLog2CUSize==3&&!inter_4x4_enabled_flag)、列2が使用される。コード化されているCUのCUサイズの対数関数が3よりも大きいとき、又は4×4CUについてインター予測が使用可能であるとき(即ち、cLog2CUSize>3||inter_4x4_enabled_flag)、列3が使用される。
【0074】
以下の表2は、本開示で説明する1つ又は複数の例による、PスライスとBスライスとが同じビンストリングを使用する例示的な2値化を示す。表2に示すように、Pスライスは、表1中のBスライスのために使用されるものと同じ2値化を使用する。このようにして、PスライスとBスライスの両方についてコンテキストの別のセットを記憶し、使用する必要がない。従って、pred_typeシンタックス要素をコード化するために必要なコンテキストの総数が削減される。更に、ビンストリング論理(列(1)〜(3)に示す)と実際のビンストリングとの間の(2つではなく)1つのマッピングのみが記憶される必要がある。
【表2】
【0075】
以下の表3は、pred_typeについての2値化の別の例を示す。この例では、Bスライスは、表1によるPスライスと同じ2値化を使用する。以下の表4は、PスライスとBスライスとが同じ2値化を使用する追加の例を示す。表2〜表4は、PスライスとBスライスとの間の共有2値化の例を示すことのみを意図している。PスライスとBスライスの両方についてのpred_typeシンタックス要素が同じ2値化を共有するように、任意の2値化又は2値化ルールが使用され得る。
【0076】
ビデオエンコーダ20及びビデオデコーダ30は、PスライスとBスライスの両方で使用する同じマッピングルール及びマッピングテーブル(例えば、表2〜表4に示す)を記憶し得る。CABAC符号化及び復号は、これらのマッピングを使用するpred_typeシンタックス要素に適用され得る。
【0077】
このようにして、ビデオエンコーダ20は、Pスライス中のビデオデータのブロックのための第1の予測タイプを決定することと、第1の予測タイプをPスライス予測タイプシンタックス要素として表すことと、Bスライス中のビデオデータのブロックのための第2の予測タイプを決定することと、第2の予測タイプをBスライス予測タイプシンタックス要素として表すことと、Pスライス予測タイプシンタックス要素のためのPスライス2値化を決定することと、Bスライス予測タイプシンタックス要素のためのBスライス2値化を決定することと、Pスライス予測タイプシンタックス要素とBスライス予測タイプシンタックス要素とが同じ2値化論理を使用して決定される、Pスライス予測タイプシンタックス要素の2値化とBスライス予測シンタックス要素の2値化とに基づいてビデオデータを符号化することとを行うように構成され得る。
【0078】
ビデオエンコーダ20は、決定されたPスライス2値化を用いてPスライス予測タイプシンタックス要素を2値化することと、決定されたBスライス2値化を用いてBスライス予測タイプシンタックス要素を2値化することと、2値化されたPスライス予測タイプシンタックス要素にコンテキスト適応型バイナリ算術コード化(CABAC)を適用することと、2値化されたBスライス予測タイプシンタックス要素にコンテキスト適応型バイナリ算術コード化(CABAC)を適用することとを行うように更に構成され得る。
【0079】
同様に、ビデオデコーダ30は、Pスライス中のビデオデータのブロックのための2値化マッピングを使用して、2値化されたPスライス予測タイプシンタックス要素を予測タイプにマッピングすることと、Bスライス中のビデオデータのブロックのための同じ2値化マッピングを使用して、2値化されたBスライス予測タイプシンタックス要素を予測タイプにマッピングすることと、マッピングされた予測タイプに基づいてビデオデータを復号することとを行うように構成され得る。
【0080】
ビデオデコーダ30は、Pスライス中のビデオデータのブロックのための予測タイプを示すコンテキスト適応型バイナリ算術コード化Pスライス予測タイプシンタックス要素を受信することと、Bスライス中のビデオデータのブロックのための予測タイプを示すコンテキスト適応型バイナリ算術コード化Bスライス予測タイプシンタックス要素を受信することと、2値化されたPスライス予測タイプシンタックス要素を生成するためにPスライス予測タイプシンタックス要素を復号することと、2値化されたBスライス予測タイプシンタックス要素を生成するためにBスライス予測タイプシンタックス要素を復号することとを行うように更に構成され得る。
【表3】
【表4】
【0081】
以下の表5は、表2に示すPスライスとBスライスとについて共有2値化を使用するコード化性能を示す。表5でわかるように、共有2値化を使用してもコード化効率は殆んど失われない。低遅延P HE(高効率)が、単方向予測された(P)スライス2値化についての共通テスト条件である。クラスA〜Eは、異なるフレーム解像度を表す。クラスAは2k×4k解像度である。クラスBは1920×1080解像度である。クラスCはWVGA解像度である。クラスDはWQVGA解像度である。クラスEは720P解像度である。低遅延P HEテスト条件における0.1〜0.2パーセントの変化は、概して、有意でないと見なされる。
【表5】
【0082】
場合によっては、予測タイプ(予測サイズ及び/又は予測モードを含む)のための同じ2値化(表2〜表4に限定されない)が、2つ以上の異なるタイプのインター予測スライスにおいて共有され得る。インター予測スライスは、限定はしないが、以下を含み得る。
【0083】
a.Pスライス:スライスは単方向動き予測のみをサポートする
b.Bスライス:スライスは単方向動き予測と双方向動き予測とをサポートする
c.スケーラブルビデオコード化の場合:エンハンスメントレイヤがベースレイヤと同じ2値化を共有することができる。
【0084】
d.マルチビューコード化の場合:異なるビューが同じ2値化を共有し得る。
【0085】
非対称区分が使用可能であるとき、非対称区分(即ち、PART_2NxnU、PART_2NxnD、PART_nLx2N、PART_nRx2N)のためのpred_typeシンタックス要素を信号伝達するための最後の2つのビンに対するCABACのために、2つのコンテキストセットに等しく分割された4つのコンテキストが使用される。区分が水平方向に沿って分割されるのか、垂直方向に沿って分割されるのかに応じて、1つのコンテキストセットが適用される。最後から2つ目のビン(即ち、区分タイプビン、part_mode)は、現在CUが対称区分を有するのか、非対称区分を有するのかを指定する。最後のビン(即ち、区分サイズビン、part_mode)は、第1の区分のサイズがCUサイズの1/4であるのか、3/4であるのかを指定する。表6に、pred_typeシンタックス要素の最後から2つ目(区分タイプ)及び最後(区分サイズ)のためのコンテキストの一例を示す。
【表6】
【0086】
本開示は、最後から2つ目のビン(即ち、区分タイプビン)について1つのコンテキストを使用し、最後のビン(即ち、区分サイズビン)に対してバイパスモードを使用することを提案する。その結果、コンテキストの数は4から1に削減される。
図7に、本開示の本例に従って使用されるコンテキストの一例を示す。表8に、提案する変更に関連するコード化性能を示す。ランダムアクセス高効率(HE)は、ランダムアクセスフレームの場合のテスト条件である。低遅延B HEは、双方向予測を可能にするテスト条件である。
【表7】
【表8】
【0087】
このようにして、本例によれば、ビデオエンコーダ20は、ビデオデータのブロックのための予測モードのための区分タイプを決定することと、単一のコンテキストとともにコンテキスト適応型バイナリ算術コード化を使用して、ビデオデータのブロックのための予測タイプシンタックス要素の区分タイプビンを符号化することと、単一のコンテキストがいずれの区分タイプについても同じである、バイパスモードでコンテキスト適応型バイナリ算術コード化を使用して、ビデオデータのブロックのための予測タイプシンタックスの区分サイズビンを符号化することとを行うように構成され得る。
【0088】
同様に、本例によれば、ビデオデコーダ30は、コンテキスト適応型バイナリ算術コード化(CABAC)を使用してコード化されたビデオデータのブロックのための予測タイプシンタックス要素を受信することと、予測タイプシンタックス要素が、区分タイプを表す区分タイプビンと、区分サイズを表す区分サイズビンとを含む、単一のコンテキストとともにコンテキスト適応型バイナリ算術コード化を使用して、予測タイプシンタックス要素の区分タイプビンを復号することと、単一のコンテキストがいずれの区分タイプについても同じである、バイパスモードでコンテキスト適応型バイナリ算術コード化を使用して、ビデオデータのブロックのための予測タイプシンタックスの区分サイズビンを復号することとを行うように構成され得る。
【0089】
別の例では、矩形区分タイプをコード化するときに、バイパスモード又は単一のコンテキストは、区分モードがPART_nLx2NorPART_nRx2Nであるかどうか、又は、モードがPART_2NxnU,PART_2NxnDであるかどうかを示すビンのために使用され得る。いずれかの区分モードが使用される見込みが50%に近いので、バイパスモード又は単一のコンテキストを使用することは適用可能である。また場合によっては、バイパスモード又は単一のコンテキストは、モードが対称区分であるのか、非対称区分であるのかを示すビンのために使用され得る。
【0090】
本開示の次の例は、インター予測の「マージ」モードにおける信号伝達に関係する。マージモードでは、エンコーダは、コード化されるべきピクチャの現在部分のための選択された候補動きベクトルから、動きベクトルと、(所与の参照ピクチャリストにおいて動きベクトルがポイントする参照フレームを識別する)参照インデックスと、(即ち、参照フレームが時間的に現在フレームに先行するか又は後続するかに関して、参照ピクチャリスト(リスト0又はリスト1)を識別する)動き予測方向とをコピーするように、予測シンタックスのビットストリーム信号伝達を通してデコーダに命令する。これは、選択された候補動きベクトル(即ち、特定の空間動きベクトル予測子(MVP:motion vector predictor)候補又は時間MVP候補)を識別する候補動きベクトルリストへのインデックスをビットストリーム中で信号伝達(signaling)することによって達成される。
【0091】
従って、マージモードでは、予測シンタックスは、モード(この場合は「マージ」モード)を識別するフラグと、選択された候補動きベクトルを識別するインデックス(merge_idx)とを含み得る。幾つかの事例では、候補動きベクトルは、現在部分に関する因果的部分中にあることになる。即ち、候補動きベクトルは、デコーダによってすでに復号されていることになる。従って、デコーダは、因果的部分のための動きベクトルと参照インデックスと動き予測方向とをすでに受信及び/又は決定している。従って、デコーダは、単に、メモリから、因果的部分に関連する動きベクトルと参照インデックスと動き予測方向とを取り出し、これらの値を現在部分についての動き情報としてコピーし得る。マージモードでブロックを再構成するために、デコーダは、現在部分についての導出された動き情報を使用して予測ブロックを取得し、予測ブロックに残差データを加算してコード化ブロックを再構成する。
【0092】
HM4.0では、現在PUがマージモードにあるとき、5つのマージ候補のうちの1つが信号伝達される。シンタックス要素merge_idxを表すために、短縮単項コード(truncated unary code)が利用される。HEVCのための1つの提案では、CABACの場合、各ビンは1つコンテキストを使用する。表9に示すように、本開示は、すべての4つのビンにおいて1つのコンテキストを繰り返し使用することを提案する。
【表9】
【0093】
表10に、本例に関連するコード化性能を示す。
【表10】
【0094】
場合によっては、マージインデックスコード化では、2つ以上のコンテキストが使用され得、幾つかのビンが同じコンテキストを共有し、幾つかのビンが他のコンテキストを使用する。一例として、連続するビンのみが同じコンテキストを共有する。例えば、ビン2とビン3とが1つのコンテキストを共有することができ、ビン2とビン4とは、ビン3もコンテキストを共有していない限り、同じコンテキストを共有することができない。
【0095】
別の例として、マージインデックスのビンの総数がN個であると仮定する(第1のビンはビン0であり、最後のビンはビンN−1である)。Y個のしきい値thres
i、i=1,...,yは、マージインデックスコード化におけるコンテキスト共有を決定するために使用される。この例では、以下のルールは、コンテキストがどのようにビン間で共有されるかを示す。
【数1】
【0096】
これらのルールに基づいて、すべての4つのビンにおいて1つのコンテキストが繰り返し使用される前の方法が、N=4、Y=1、thres
1=4である1つの事例として考えられ得る。従って、ビン0〜ビン3は同じコンテキストを共有している。
【0097】
別の例は、設定N=4、Y=2、thres
1=2、thres
2=4を含む。この例では、ビン0とビン1とは同じコンテキストを共有し、ビン2とビン3とは同じコンテキストを共有する。
【0098】
インター予測フラグ(inter_pred_flag)は、現在PUのために単予測が使用されるのか、双予測が使用されるのかを指定する。幾つかの例では、インター予測フラグのためのコンテキストインデックスは現在CU深度に等しい。4つの可能なCU深度(0〜3)があるので、inter_pred_flagをコード化するための4つの可能なコンテキストがある。
【0099】
本開示は、inter_pred_flagをコード化するためのコンテキストを選択するために使用されるコンテキストインデックスは、現在CU深度(例えば、CUのためのレベル4分木分解)に等しいが、選定されたしきい値でキャッピングされる(即ち、現在CU深度又はしきい値のより小さい方である)ことを提案する。しきい値は、一例では、2であると選定され得る。代替として、コンテキストインデックスは、最大CU深度から現在CU深度を引いたものに等しく、選定されたしきい値でキャッピングされ得る。代替として、予め定義されたマッピングテーブルが、所与のCU深度によってコンテキストインデックスを選択するように設計され得る。マッピングテーブルは論理のセットとして実装され得る。その結果、シンタックス要素inter_pred_flagをコード化するために、3つのコンテキストが使用される。
【0100】
表11に、初期化テーブルは変更されたがコンテキストの数は変更されないときのコード化性能を示す。表12に、コンテキストの数を4から3に削減する提案する技法のコード化性能を示す。
【表11】
【表12】
【0101】
参照フレームインデックス(ref_idx_lx)は、関連するリスト(例えば、リスト0又はリスト1)中のアクティブ参照フレームに関して短縮単項コードを使用することによって信号伝達される。参照フレームインデックスをコード化するために、3つのコンテキストが使用される。1つのコンテキストがビン0のために、1つコンテキストがビン1のために、及び1つコンテキストが、残りのビンに対して使用される。表13に、ref_idx_lxのための単項コードのビンのためのコンテキスト割当ての一例を示す。
【表13】
【0102】
本開示は、ref_idx_lxのための単項コードをコード化するために2つのコンテキスト、即ち、1つのコンテキストをビン0に対して、もう1つのコンテキストを残りのビンに対して使用することを提案する。表14に、本開示の本例によるref_idx_lxのための単項コードのビンのためのコンテキスト割当ての一例を示す。表15に、提案する変更に関連するコード化性能を示す。
【表14】
【表15】
【0103】
クロマコード化ブロックフラグシンタックス要素(cbf_cb及びcbf_cr)の場合、CABACのために、2つの異なるコンテキストセット(各コンテキストセット中に5つのコンテキスト)が使用される。各セットにおいて使用される実際のコンテキストのインデックスは、コード化されているクロマコード化ブロックフラグに関連する現在変換深度に等しい。表16に、cbf_cb及びcbf_crクロマコード化ブロックフラグのためのコンテキストセットを示す。
【表16】
【0104】
本開示は、cbf_cb及びcbf_crが1つのコンテキストセットを共有することを提案する。各セットにおいて使用される実際のコンテキストのインデックスは、依然として、コード化されているクロマコード化ブロックフラグに関連する現在変換深度に等しくなり得る。表17に、本開示の例によるcbf_cb及びcbf_crクロマコード化ブロックフラグのためのコンテキストセットを示す。表18に、提案する変更に関連するコード化性能を示す。
【表17】
【表18】
【0105】
このようにして、本例によれば、ビデオエンコーダ20とビデオデコーダ30の両方は、コンテキスト適応型バイナリ算術コード化(CABAC)を使用してビデオデータのブロックのためのCbクロマコード化ブロックフラグをコード化することと、CABACが1つ又は複数のコンテキストを含むコンテキストセットを使用する、CABACを使用してCrクロマコード化ブロックフラグをコード化することとを行うように構成され得、CABACがCbクロマコード化ブロックフラグと同じコンテキストセットを使用する。ビデオエンコーダ20及びビデオデコーダ30は、ビデオデータのブロックに関連する変換ユニットの変換深度に基づいて1つ又は複数のコンテキストからコンテキストを選択するように更に構成され得る。
【0106】
HEVCのための1つの提案では、coeff_abs_level_greater1_flagとcoeff_abs_level_greater2_flagの両方のための12個のコンテキストセットがある。coeff_abs_level_greater1_flagは、変換係数が1よりも大きい絶対値を有するかどうかを示す。coeff_abs_level_greater2_flagは、変換係数が2よりも大きい絶対値を有するかどうかを示す。コンテキストセットは、ルーマ成分とクロマ成分とに対して等しく割り当てられ、即ち、ルーマのために6つのコンテキストセット及びクロマのために6つのコンテキストセットが割り当てられる。各コンテキストセットは5つのコンテキストからなる。コンテキストセットのインデックスctxSetは、前のcoeff_abs_level_greater1_flagに基づいて選択される。coeff_abs_level_greater1_flagの場合、コンテキストセット内のコンテキストのインデックスgreater1Ctxは、最大4までのトレーリング1(trailing ones)に基づいて決定される。コンテキストインデックスは次のように表され得る。
【数2】
【0107】
coeff_abs_level_greater2_flagの場合、コンテキストセット内のコンテキストのインデックスgreater2Ctxは、1から最大4までのcoeff_abs_level_greater1_flagの数に基づく。コンテキストインデックスは次のように表され得る。
【数3】
【0108】
greater1Ctxは、有意係数の数と1よりも大きい係数の数に基づく。一方、greater2Ctxは、1よりも大きい係数の数に基づく。
【0109】
幾つかの例では、異なる数のコンテキストが、例えば、以下を含む異なるコンテキストセット中で使用され得る。
【0110】
1.1よりも大きいレベル又は2よりも大きいレベルのためのコンテキストセットは、異なる数のコンテキストを有することができる。例えば、コンテキストセット0及び3は5つのコンテキストを有することができ、残りのコンテキストセットは2つのコンテキストを有することができる。
【0111】
2.ルーマ係数のためのコンテキストセットは、クロマ成分のためのコンテキストセットと比較して異なる数のコンテキストを有することができる。例えば、ルーマのためのコンテキストセット0は5つのコンテキストを有することができ、クロマのためのコンテキストセット0は4つのコンテキストを有することができる。
【0112】
3.1よりも大きいレベルのためのコンテキストセットは、2よりも大きいレベルのためのコンテキストセットとは異なるコンテキスト数を有することができる。例えば、1よりも大きいレベルのためのコンテキストセット0は、5つのコンテキストを有することができ、2よりも大きいレベルのためのコンテキストセット0は、3つのコンテキストのみを有することができる。
【0113】
他の例では、例えば、以下を含む、1よりも大きい又は2よりも大きいコード化のために、コンテキストセットについて異なる数が使用され得る。
【0114】
1.ルーマ係数のためのコンテキストセットは、クロマ成分のために使用されるコンテキストセットと異なる数のコンテキストを有することができる。例えば、ルーマは6つのコンテキストを使用することができ、クロマは4つのコンテキストを使用することができる。
【0115】
2.1よりも大きいコンテキストセットは、2よりも大きい使用されるコンテキストセットと異なる数のコンテキストセットを有することができる。例えば、1よりも大きいコンテキストセットは、6つのコンテキストを使用することができ、2よりも大きいコンテキストセットは、4つのコンテキストを使用することができる。
【0116】
場合によっては、コンテキストセット中のどのコンテキストが使用されているのかを決定するためにメトリックが使用され、メトリックの値の範囲はコンテキストセット中のコンテキストについての数よりも大きい。1つのそのような態様では、1つのコンテキストは、メトリックの1つ又は複数の値に関連することができる。コンテキスト共有は、好ましくは連続値に限定される。例えば、メトリックの値をyであるとする。y=2はコンテキスト3に関連し、y=1及びy=4もコンテキスト3に関連することができる。但し、y=3がコンテキスト4に関連する場合、y=4はコンテキスト3に関連することができない。
【0117】
例えば、coeff_abs_level_greater1_flagの場合、コンテキストセット0及び3は5つのコンテキストを有し、コンテキストセット1、2、4及び5は2つのコンテキストを有する。coeff_abs_level_greater2_flagの場合、コンテキストセット0、1、及び2は5つのコンテキストを有し、コンテキストセット3、4、及び5は2つのコンテキストを有する。以下のように表すことができる。
【数4】
【0118】
Thres_greater1とThres_greater2とは、以下の状況に基づいて別様に選定され得る。
【0119】
1.ルーマ成分又はクロマ成分
2.コンテキストセット
別の例として、coeff_abs_level_greater1_flagの場合、コンテキストセット0及び3は5つのコンテキストを有し、コンテキストセット1、2、4及び5は3つのコンテキストを有する。coeff_abs_level_greater2_flagの場合、コンテキストセット0、1、及び2は5つのコンテキストを有し、コンテキストセット3、4、及び5は2つのコンテキストを有する。以下のように表すことができる。
【数5】
【0120】
そのような例では、マッピングは、表19及び表20に示す通りであり得る。
【表19】
【表20】
【0121】
coeff_abs_level_greater1_flag及びcoeff_abs_level_greater2_flagのCABAC初期化テーブルはまた、1に等しいThres_greater1又はThres_greater2のためのコンテキストセットについて変更される。変更では、第2のコンテキストの初期化の前に第5のコンテキストの初期化を異動する。この提案する方法は、コンテキストの数を120から78に削減する。
【表21】
【0122】
表21は、前のセクションにおいて述べたすべてのシンタックス要素のためのコンテキストの数を記載する。コンテキストの総削減数は56個である。
【表22】
【0123】
図2は、本開示で説明する技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコード化及びインターコード化を実行し得る。イントラコード化は、所与のビデオフレーム又はピクチャ内のビデオの空間的冗長性を低減又は除去するために空間的予測に依拠する。インターコード化は、ビデオシーケンスの隣接フレーム又はピクチャ内のビデオの時間的冗長性を低減又は除去するために時間的予測に依拠する。イントラモード(Iモード)は、幾つかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測(Pモード)又は双方向予測(Bモード)などのインターモードは、幾つかの時間ベースの圧縮モードのいずれかを指し得る。
【0124】
図2の例では、ビデオエンコーダ20は、区分化ユニット35と、予測ユニット41と、参照ピクチャメモリ64と、加算器50と、変換ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測ユニット46とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(
図2に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。追加のループフィルタ(ループ内又はループ後)もデブロッキングフィルタに加えて使用され得る。
【0125】
図2に示すように、ビデオエンコーダ20はビデオデータを受信し、区分化ユニット35はデータをビデオブロックに区分する。この区分は、例えば、LCU及びCUの4分木構造に応じて、スライス、タイル、又は他のより大きいユニットへの区分、及びビデオブロック区分をも含み得る。ビデオエンコーダ20は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(及び、場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測ユニット41は、誤り結果(例えば、コード化レート及び歪みレベル)に基づいて、現在ビデオブロックのために、複数のイントラコード化モードのうちの1つ、又は複数のインターコード化モードのうちの1つなど、複数の可能なコード化モードのうちの1つを選択し得る。予測ユニット41は、得られたイントラコード化ブロック又はインターコード化ブロックを、残差ブロックデータを生成するために加算器50に与え、参照ピクチャとして使用するための符号化ブロックを再構成するために加算器62に与え得る。
【0126】
予測ユニット41内のイントラ予測ユニット46は、空間圧縮を行うために、コード化されるべき現在ブロックと同じフレーム又はスライス中の1つ又は複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コード化を実行し得る。予測ユニット41内の動き推定ユニット42及び動き補償ユニット44は、時間圧縮を行うために、1つ又は複数の参照ピクチャ中の1つ又は複数の予測ブロックに対する現在ビデオブロックのインター予測コード化を実行する。
【0127】
動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスをPスライス、Bスライス又はGPB(一般化P/B)スライスに指定し得る。動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、参照ピクチャ内の予測ブロックに対する現在ビデオフレーム又はピクチャ内のビデオブロックのPUの変位を示し得る。
【0128】
予測ブロックは、絶対値差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、又は他の差分メトリックによって決定され得る画素差分に関して、コード化されるべきビデオブロックのPUにぴったり一致することが分かるブロックで6ある。幾つかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数画素位置の値を計算し得る。例えば、ビデオエンコーダ20は、参照ピクチャの1/4画素位置、1/8画素位置、又は他の分数画素位置の値を補間し得る。従って、動き推定ユニット42は、フル画素位置と分数画素位置とに対する動き探索を実行し、分数画素精度で動きベクトルを出力し得る。
【0129】
動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスにおけるビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)又は第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、参照ピクチャメモリ64に記憶された1つ又は複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
【0130】
動き補償ユニット44によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチ又は生成すること、場合によってはサブ画素精度への補間を実行することを伴い得る。現在ビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいて指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コード化されている現在ビデオブロックの画素値から予測ブロックの画素値を減算し、画素差分値を形成することによって残差ビデオブロックを形成する。画素差分値は、ブロックの残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実行する1つ又は複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【0131】
イントラ予測ユニット46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。幾つかの例では、イントラ予測ユニット46は、例えば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測ユニット46(又は、幾つかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。例えば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードのためのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択し得る。レート歪み分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み(又は誤差)の量、及び符号化ブロックを生成するために使用されるビットレート(即ち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレート歪み値を呈するかを決定するために、様々な符号化ブロックの歪み及びレートから比を計算し得る。
【0132】
いずれの場合も、ブロックのイントラ予測モードを選択した後に、イントラ予測ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピーコード化ユニット56に提供し得る。エントロピーコード化ユニット56は、本開示の技法に従って選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信ビットストリーム中に、複数のイントラ予測モードインデックステーブル及び複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、及び変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを含み得る。
【0133】
予測ユニット41が、インター予測又はイントラ予測のいずれかを介して、現在ビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ20は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロックにおける残差ビデオデータは、1つ又は複数のTUに含まれ得、変換ユニット52に適用され得る。変換ユニット52は、変換、例えば離散コサイン変換(DCT)又は概念的に類似の変換を使用して、残差ビデオデータを残差変換係数に変換する。変換ユニット52は、画素領域からの残差ビデオデータを周波数領域などの変換領域に変換し得る。
【0134】
変換ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートを更に低減するために変換係数を量子化する。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。幾つかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。一例として、本開示で説明するコード化技法は、エントロピー符号化ユニット56によって十分に又は部分的に実行され得る。但し、本開示の態様はそのように限定されない。例えば、本開示で説明するコード化技法は、プロセッサ又は任意の他の構成要素など、
図2に示されていないビデオエンコーダ20の構成要素によって実行され得る。幾つかの例では、本開示のコード化技法は、
図2に示す他のユニット又はモジュールのうちの1つによって実行され得る。更に幾つかの他の例では、本開示のコード化技法は、ビデオエンコーダ20のユニット及びモジュールの組合せによって実行され得る。このようにして、ビデオエンコーダ20は、本開示で説明する例示的な技法を実行するように構成され得る。
【0135】
量子化の後に、エントロピー符号化ユニット56は量子化変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コード化(CAVLC)、コンテキスト適応型バイナリ算術コード化(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コード化(SBAC)、確率間隔区分エントロピー(PIPE)コード化又は別のエントロピー符号化方法又は技法を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化の後に、符号化ビットストリームは、ビデオデコーダ30に送信されるか、又はビデオデコーダ30が後で送信するか又は取り出すためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コード化されている現在ビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【0136】
本開示の一例では、エントロピー符号化ユニット56は、Pスライス中のビデオデータのブロックのための第1の予測タイプを決定することと、第1の予測タイプをPスライス予測タイプシンタックス要素として表すことと、Bスライス中のビデオデータのブロックのための第2の予測タイプを決定することと、第2の予測タイプをBスライス予測タイプシンタックス要素として表すことと、Pスライス予測タイプシンタックス要素のためのPスライス2値化を決定することと、Bスライス予測タイプシンタックス要素のためのBスライス2値化を決定することと、Pスライス予測タイプシンタックス要素とBスライス予測タイプシンタックス要素とが同じ2値化論理を使用して決定される、Pスライス予測タイプシンタックス要素の2値化とBスライス予測シンタックス要素の2値化とに基づいてビデオデータを符号化することとを行うように構成され得る。
【0137】
本開示の別の例では、エントロピー符号化ユニット56は、ビデオデータのブロックのための予測モードのための区分タイプを決定することと、単一のコンテキストとともにコンテキスト適応型バイナリ算術コード化を使用して、ビデオデータのブロックのための予測タイプシンタックス要素の区分タイプビンを符号化することと、単一のコンテキストがいずれの区分タイプについても同じである、バイパスモードでコンテキスト適応型バイナリ算術コード化を使用して、ビデオデータのブロックのための予測タイプシンタックスの区分サイズビンを符号化することとを行うように構成され得る。
【0138】
本開示の別の例では、エントロピー符号化ユニット56は、コンテキスト適応型バイナリ算術コード化(CABAC)を使用してビデオデータのブロックのためのCbクロマコード化ブロックフラグをコード化することと、CABACが1つ又は複数のコンテキストを含むコンテキストセットを使用する、CABACを使用してCrクロマコード化ブロックフラグをコード化することとを行うように構成され得、CABACがCbクロマコード化ブロックフラグと同じコンテキストセットを使用する。ビデオエンコーダ20及びビデオデコーダ30は、ビデオデータのブロックに関連する変換単位の変換深度に基づいて1つ又は複数のコンテキストからコンテキストを選択するように更に構成され得る。
【0139】
逆量子化ユニット58及び逆変換ユニット60は、それぞれ逆量子化及び逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するために、画素領域において残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つ又は複数の補間フィルタを適用して、動き推定において使用するサブ整数画素値を計算し得る。加算器62は、再構成された残差ブロックを動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ64に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレーム又はピクチャ中のブロックをインター予測するために、動き推定ユニット42と動き補償ユニット44とによって参照ブロックとして使用され得る。
【0140】
図3は、本開示で説明する技法を実装し得る例示的なビデオデコーダ30を示すブロック図である。
図3の例では、ビデオデコーダ30は、エントロピー復号ユニット80と、予測ユニット81と、逆量子化ユニット86と、逆変換ユニット88と、加算器90と、参照ピクチャメモリ92とを含む。予測ユニット81は、動き補償ユニット82と、イントラ予測ユニット84とを含む。ビデオデコーダ30は、幾つかの例では、
図2のビデオエンコーダ20に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
【0141】
復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット80は、量子化係数、動きベクトル、及び他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット80は、予測ユニット81に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ30は、ビデオスライスレベル及び/又はビデオブロックレベルでシンタックス要素を受信し得る。
【0142】
一例として、本開示で説明するコード化技法は、エントロピー復号ユニット80によって十分に又は部分的に実行され得る。但し、本開示の態様はそのように限定されない。例えば、本開示で説明するコード化技法は、プロセッサ又は任意の他の構成要素など、
図3に示されていないビデオデコーダ30の構成要素によって実行され得る。幾つかの例では、本開示のコード化技法は、
図3に示す他のユニット又はモジュールのうちの1つによって実行され得る。更に幾つかの他の例では、本開示のコード化技法は、ビデオデコーダ30のユニット及びモジュールの組合せによって実行され得る。このようにして、ビデオデコーダ30は、本開示で説明する例示的な技法を実行するように構成され得る。
【0143】
本開示の一例では、エントロピー復号ユニット80は、Pスライス中のビデオデータのブロックのための2値化マッピングを使用して、2値化されたPスライス予測タイプシンタックス要素を予測タイプにマッピングすることと、Bスライス中のビデオデータのブロックのための同じ2値化マッピングを使用して、2値化されたBスライス予測タイプシンタックス要素を予測タイプにマッピングすることと、マッピングされた予測タイプに基づいてビデオデータを復号することとを行うように構成され得る。
【0144】
本開示の一例では、エントロピー復号ユニット80は、コンテキスト適応型バイナリ算術コード化(CABAC)を使用してコード化されたビデオデータのブロックのための予測タイプシンタックス要素を受信することと、予測タイプシンタックス要素が、区分タイプを表す区分タイプビンと、ここで区分サイズを表す区分サイズビンとを含む、単一のコンテキストとともにコンテキスト適応型バイナリ算術コード化を使用して、予測タイプシンタックス要素の区分タイプビンを復号することと、ここで単一のコンテキストがいずれの区分タイプについても同じである、バイパスモードでコンテキスト適応型バイナリ算術コード化を使用して、ビデオデータのブロックのための予測タイプシンタックスの区分サイズビンを復号することとを行うように構成され得る。
【0145】
本開示の別の例では、エントロピー復号ユニット80は、コンテキスト適応型バイナリ算術コード化(CABAC)を使用してビデオデータのブロックのためのCbクロマコード化ブロックフラグをコード化することと、ここでCABACが1つ又は複数のコンテキストを含むコンテキストセットを使用する、CABACを使用してCrクロマコード化ブロックフラグをコード化することとを行うように構成され得、CABACがCbクロマコード化ブロックフラグと同じコンテキストセットを使用する。ビデオエンコーダ20及びビデオデコーダ30は、ビデオデータのブロックに関連する変換ユニットの変換深度に基づいて1つ又は複数のコンテキストからコンテキストを選択するように更に構成され得る。
【0146】
ビデオスライスがイントラコード化(I)スライスとしてコード化されたとき、予測ユニット81のイントラ予測ユニット84は、信号伝達されたイントラ予測モードと、現在フレーム又はピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(即ちB、P、又はGPB)スライスとしてコード化されたとき、予測ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトル及び他のシンタックス要素に基づいて現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ92に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、即ち、リスト0及びリスト1を構成し得る。
【0147】
動き補償ユニット82は、動きベクトルと他のシンタックス要素とを構文解析することによって現在ビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されている現在ビデオブロックのための予測ブロックを生成する。例えば、動き補償ユニット82は、ビデオスライスのビデオブロックをコード化するために使用される予測モード(例えば、イントラ又はインター予測)と、インター予測スライスタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)と、スライスの参照ピクチャリストのうちの1つ又は複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素の幾つかを使用する。
【0148】
動き補償ユニット82はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット82は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数画素の補間値を計算し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【0149】
逆量子化ユニット86は、ビットストリーム中で与えられ、エントロピー復号ユニット80によって復号された量子化変換係数を逆量子化(inverse quantize)、即ち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中の各ビデオブロックについてビデオエンコーダ20によって計算される量子化パラメータの使用を含み得る。逆変換ユニット88は、逆変換、例えば、逆DCT、逆整数変換、又は概念的に同様の逆変換プロセスを変換係数に適用して、画素領域において残差ブロックを生成する。
【0150】
動き補償ユニット82が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算演算を実行する1つ又は複数の構成要素を表す。所望される場合、ブロック歪み(blockiness artifacts)を除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。画素遷移を平滑化するか、又はさもなければビデオ品質を改善するために、(コード化ループ内又はコード化ループ後の)他のループフィルタも使用され得る。所与のフレーム又はピクチャ中の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ92に記憶される。参照ピクチャメモリ92はまた、
図1の表示装置32などの表示装置上での後の表示のための、復号されたビデオを記憶する。
【0151】
図6は、本開示の例示的なビデオ符号化方法を示すフローチャートである。
図6の方法は、ビデオエンコーダ20によって実装され得る。ビデオエンコーダ20は、Pスライス中のビデオデータのブロックのための第1の予測タイプを決定すること(602)と、第1の予測タイプをPスライス予測タイプシンタックス要素として表すこと(604)とを行うように構成され得る。ビデオエンコーダ20は、Bスライス中のビデオデータのブロックのための第2の予測タイプを決定すること(606)と、第2の予測タイプをBスライス予測タイプシンタックス要素として表すこと(608)とを行うように更に構成され得る。Pスライス予測タイプシンタックス要素及びBスライス予測タイプシンタックス要素は、予測モードと区分タイプとを指定する。予測モードは、インター予測及びイントラ予測のうちの1つを含み得る。区分タイプは、対称区分及び非対称区分のうちの1つを含み得る。
【0152】
ビデオエンコーダ20は、Pスライス予測タイプシンタックス要素のためのPスライス2値化を決定すること(610)と、Bスライス予測タイプシンタックス要素のためのBスライス2値化を決定することと(612)を行うように更に構成され得、Pスライス予測タイプシンタックス要素とBスライス予測タイプシンタックス要素とが同じ2値化論理を使用して決定される。ビデオエンコーダ20は、次いで、Pスライス予測タイプシンタックス要素の2値化とBスライス予測
タイプシンタックス要素の2値化とに基づいてビデオデータを符号化する(614)。
【0153】
ビデオデータを符号化することは、決定されたPスライス2値化を用いてPスライス予測タイプシンタックス要素を2値化することと、決定されたBスライス2値化を用いてBスライス予測タイプシンタックス要素を2値化することと、2値化されたPスライス予測タイプシンタックス要素にコンテキスト適応型バイナリ算術コード化(CABAC)を適用することと、2値化されたBスライス予測タイプシンタックス要素にコンテキスト適応型バイナリ算術コード化(CABAC)を適用することとを備え得る。
【0154】
図7は、本開示の例示的なビデオ復号方法を示すフローチャートである。
図7の方法は、ビデオデコーダ30によって実装され得る。ビデオデコーダ30は、Pスライス中のビデオデータのブロックのための予測タイプを示すコンテキスト適応型バイナリ算術コード化Pスライス予測タイプシンタックス要素を受信すること(702)と、Bスライス中のビデオデータのブロックのための予測タイプを示すコンテキスト適応型バイナリ算術コード化Bスライス予測タイプシンタックス要素を受信すること(704)とを行うように構成され得る。Pスライス予測タイプシンタックス要素及びBスライス予測タイプシンタックス要素は、予測モードと区分タイプとを指定する。予測モードは、インター予測及びイントラ予測のうちの1つを含み得る。区分タイプは、対称区分及び非対称区分のうちの1つを含み得る。
【0155】
ビデオデコーダ30は、2値化されたPスライス予測タイプシンタックス要素を生成するためにPスライス予測タイプシンタックス要素を復号すること(706)と、2値化されたBスライス予測タイプシンタックス要素を生成するためにBスライス予測タイプシタックス要素を復号すること(708)とを行うように更に構成され得る。ビデオデコーダ30は、Pスライス中のビデオデータのブロックのための2値化マッピングを使用して、2値化されたPスライス予測タイプシンタックス要素を予測タイプにマッピングすること(710)と、Bスライス中のビデオデータのブロックのための同じ2値化マッピングを使用して、2値化されたBスライス予測タイプシンタックス要素を予測タイプにマッピングすること(712)とを行うように更に構成され得る。ビデオデコーダ30は、次いで、マッピングされた予測タイプに基づいてビデオデータを復号する(714)。
【0156】
図8は、本開示の例示的なビデオ符号化方法を示すフローチャートである。
図8の方法は、ビデオエンコーダ20によって実装され得る。ビデオエンコーダ20は、ビデオデータのブロックのための予測モードのための区分タイプを決定すること(802)と、単一のコンテキストとともにコンテキスト適応型バイナリ算術コード化(CABAC)を使用して、ビデオデータのブロックのための予測タイプシンタックス要素の区分タイプビンを符号化すること(804)とを行うように構成され得る。単一のコンテキストはいずれの区分タイプについても同じである。一例では、区分タイプは非対称区分であり、区分タイプビンは、非対称区分が垂直方向に区分されるのか、水平方向に区分されるのかを示す。例えば、区分サイズビンは、第1の区分がビデオデータのブロックのサイズの1/4であるのか、又は第1の区分がビデオデータのブロックのサイズの3/4であるのかを示す。
【0157】
ビデオエンコーダ20は、バイパスモードでCABACを使用して、ビデオデータのブロックのための予測タイプシンタックス要素の区分サイズビンを符号化する(806)ように更に構成され得る。
【0158】
図9は、本開示の例示的なビデオ復号方法を示すフローチャートである。
図9の方法は、ビデオデコーダ30によって実装され得る。ビデオデコーダ30は、コンテキスト適応型バイナリ算術コード化(CABAC)を使用してコード化されたビデオデータのブロックのための予測タイプシンタックス要素を受信すること(902)を行うように構成され得、予測タイプシンタックス要素が、区分タイプを表す区分タイプビンと、区分サイズを表す区分サイズビンとを含む。一例では、区分タイプは非対称区分であり、区分タイプビンは、非対称区分が垂直方向に区分されるのか、水平方向に区分されるのかを示す。例えば、区分サイズビンは、第1の区分がビデオデータのブロックのサイズの1/4であるのか、又は第1の区分がビデオデータのブロックのサイズの3/4であるのかを示す。
【0159】
ビデオデコーダ30は、単一のコンテキストとともにCABACを使用して、予測タイプシンタックス要素の区分タイプビンを復号すること(904)と、ここで単一のコンテキストがいずれの区分タイプについても同じである、バイパスモードでCABACを使用して、予測タイプシンタックス要素の区分サイズビンを復号すること(906)とを行うように更に構成され得る。
【0160】
図10は、本開示の例示的なビデオコード化方法を示すフローチャートである。
図10の方法は、ビデオエンコーダ20又はビデオデコーダのいずれかによって実装され得る。
図10では、ビデオエンコーダ20とビデオデコーダ30とを集合的にビデオコーダと呼ぶ。
図10の技法によれば、ビデオコーダは、コンテキスト適応型バイナリ算術コード化(CABAC)を使用してビデオデータのブロックのためのCbクロマコード化ブロックフラグをコード化すること(1002)と、ここでCbクロマコード化ブロックフラグをコード化することが、CABACの一部として1つ又は複数のコンテキストを含むコンテキストセットを使用することを備える、CABACを使用してCrクロマコード化ブロックフラグをコード化すること(1004)とを行うように構成され得、Crクロマコード化ブロックフラグをコード化することが、CABACの一部としてCbクロマコード化ブロックフラグと同じコンテキストセットを使用することを備える。一例では、コンテキストセットは5つのコンテキストを含む。
【0161】
本開示の随意の一例では、ビデオコーダは、ビデオデータのブロックに関連する変換単位の変換深度に基づいて1つ又は複数のコンテキストからコンテキストを選択する(1006)ように更に構成され得る。
【0162】
ビデオエンコーダとして動作するときに、ビデオコーダは、符号化ビデオビットストリーム中のコード化Cbクロマコード化ブロックフラグを信号伝達することと、符号化ビデオビットストリーム中のコード化Crクロマコード化ブロックフラグを信号伝達することとを行うように更に構成され得る。ビデオデコーダとして動作するときに、ビデオコーダは、符号化ビデオビットストリーム中のコード化Cbクロマコード化ブロックフラグを受信することと、符号化ビデオビットストリーム中のコード化Crクロマコード化ブロックフラグを受信することとを行うように更に構成され得る。
【0163】
1つ又は複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つ又は複数の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、又はコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得、又は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、又は(2)信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コード及び/又はデータ構造を取り出すために1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0164】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROM又は他の光ディスク記憶装置、磁気ディスク記憶装置、又は他の磁気記憶装置、フラッシュメモリ、若しくは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモート発信源から送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)及びBlu−rayディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【0165】
命令は、1つ又は複数のデジタル信号プロセッサ(DSP)などの1つ又は複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、又は他の等価な集積回路若しくはディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つ又は複数の回路又は論理要素中に十分に実装され得る。
【0166】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置において実装され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上記で説明した1つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。
【0167】
様々な例について説明した。これら及び他の例は以下の特許請求の範囲内に入る。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[C1] ビデオデータをコード化する方法であって、
コンテキスト適応型バイナリ算術コード化(CABAC)を使用してビデオデータのブロックのためのCbクロマコード化ブロックフラグをコード化することと、前記Cbクロマコード化ブロックフラグをコード化することが、前記CABACの一部として1つ以上のコンテキストを含むコンテキストセットを使用することを備える、
CABACを使用してCrクロマコード化ブロックフラグをコード化することと、前記Crクロマコード化ブロックフラグをコード化することが、前記CABACの一部として前記Cbクロマコード化ブロックフラグと同じコンテキストセットを使用することを備える、を備える、方法。
[C2] 前記コンテキストセットが5つのコンテキストを含む、C1に記載の方法。
[C3] ビデオデータの前記ブロックに関連する変換単位の変換深度に基づいて前記1つ以上のコンテキストからコンテキストを選択することを更に備える、C1に記載の方法。
[C4] コード化する前記方法が符号化する方法であり、
符号化ビデオビットストリーム中の前記コード化Cbクロマコード化ブロックフラグを信号伝達することと、
前記符号化ビデオビットストリーム中の前記コード化Crクロマコード化ブロックフラグを信号伝達することとを更に備える、C1に記載の方法。
[C5] コード化する前記方法が復号する方法であり、
符号化ビデオビットストリーム中の前記コード化Cbクロマコード化ブロックフラグを受信することと、
前記符号化ビデオビットストリーム中の前記コード化Crクロマコード化ブロックフラグを受信することとを更に備える、C1に記載の方法。
[C6] ビデオデータをコード化するように構成された装置であって、
コンテキスト適応型バイナリ算術コード化(CABAC)を使用してビデオデータのブロックのためのCbクロマコード化ブロックフラグをコード化することと、前記Cbクロマコード化ブロックフラグをコード化することが、前記CABACの一部として1つ以上のコンテキストを含むコンテキストセットを使用することを備える、
CABACを使用してCrクロマコード化ブロックフラグをコード化することと、前記Crクロマコード化ブロックフラグをコード化することが、前記CABACの一部として前記Cbクロマコード化ブロックフラグと同じコンテキストセットを使用することを備える、
を行うように構成されたビデオコーダを備える、装置。
[C7] 前記コンテキストセットが5つのコンテキストを含む、C6に記載の装置。
[C8] 前記ビデオコーダが、
ビデオデータの前記ブロックに関連する変換単位の変換深度に基づいて前記1つ以上のコンテキストからコンテキストを選択することを行うように更に構成された、C6に記載の装置。
[C9] 前記ビデオコーダがビデオエンコーダであり、前記ビデオエンコーダが、
符号化ビデオビットストリーム中の前記コード化Cbクロマコード化ブロックフラグを信号伝達することと、
前記符号化ビデオビットストリーム中の前記コード化Crクロマコード化ブロックフラグを信号伝達することとを行うように更に構成された、C6に記載の装置。
[C10] 前記ビデオコーダがビデオデコーダであり、前記ビデオデコーダは、
符号化ビデオビットストリーム中の前記コード化Cbクロマコード化ブロックフラグを受信することと、
前記符号化ビデオビットストリーム中の前記コード化Crクロマコード化ブロックフラグを受信することとを行うように更に構成された、C6に記載の装置。
[C11] ビデオデータをコード化するように構成された装置であって、
コンテキスト適応型バイナリ算術コード化(CABAC)を使用してビデオデータのブロックのためのCbクロマコード化ブロックフラグをコード化するための手段と、前記Cbクロマコード化ブロックフラグをコード化することが、前記CABACの一部として1つ以上のコンテキストを含むコンテキストセットを使用することを備える、
CABACを使用してCrクロマコード化ブロックフラグをコード化するための手段と、前記Crクロマコード化ブロックフラグをコード化することが、前記CABACの一部として前記Cbクロマコード化ブロックフラグと同じコンテキストセットを使用することを備える、を備える、装置。
[C12] 前記コンテキストセットが5つのコンテキストを含む、C11に記載の装置。
[C13] ビデオデータの前記ブロックに関連する変換単位の変換深度に基づいて前記1つ以上のコンテキストからコンテキストを選択するための手段を更に備える、C11に記載の装置。
[C14] 前記装置が、ビデオデータを符号化するように構成され、
符号化ビデオビットストリーム中の前記コード化Cbクロマコード化ブロックフラグを信号伝達するための手段と、
前記符号化ビデオビットストリーム中の前記コード化Crクロマコード化ブロックフラグを信号伝達するための手段とを更に備える、C11に記載の装置。
[C15] 前記装置が、ビデオデータを復号するように構成され、
符号化ビデオビットストリーム中の前記コード化Cbクロマコード化ブロックフラグを受信するための手段と、
前記符号化ビデオビットストリーム中の前記コード化Crクロマコード化ブロックフラグを受信するための手段とを更に備える、C11に記載の装置。
[C16] 実行されたとき、ビデオデータをコード化するように構成された1つ以上のプロセッサに、
コンテキスト適応型バイナリ算術コード化(CABAC)を使用してビデオデータのブロックのためのCbクロマコード化ブロックフラグをコード化することと、前記Cbクロマコード化ブロックフラグをコード化することが、前記CABACの一部として1つ以上のコンテキストを含むコンテキストセットを使用することを備える、
CABACを使用してCrクロマコード化ブロックフラグをコード化することと、前記Crクロマコード化ブロックフラグをコード化することが、前記CABACの一部として前記Cbクロマコード化ブロックフラグと同じコンテキストセットを使用することを備える、を行わせる命令を記憶する、コンピュータ可読記憶媒体。
[C17] 前記コンテキストセットが5つのコンテキストを含む、C16に記載のコンピュータ可読記憶媒体。
[C18] 前記命令が、前記1つ以上のプロセッサに、
ビデオデータの前記ブロックに関連する変換ユニットの変換深度に基づいて前記1つ以上のコンテキストからコンテキストを選択することを更に行わせる、C16に記載のコンピュータ可読記憶媒体。
[C19] 前記1つ以上のプロセッサが、ビデオデータを符号化するように構成され、前記命令が、前記1つ以上のプロセッサに、
符号化ビデオビットストリーム中の前記コード化Cbクロマコード化ブロックフラグを信号伝達することと、
前記符号化ビデオビットストリーム中の前記コード化Crクロマコード化ブロックフラグを信号伝達することとを更に行わせる、C16に記載のコンピュータ可読記憶媒体。
[C20] 前記1つ以上のプロセッサが、ビデオデータを復号するように構成され、前記命令が、前記1つ以上のプロセッサに、
符号化ビデオビットストリーム中の前記コード化Cbクロマコード化ブロックフラグを受信することと、
前記符号化ビデオビットストリーム中の前記コード化Crクロマコード化ブロックフラグを受信することとを更に行わせる、C16に記載のコンピュータ可読記憶媒体。