本願は概して、媒体が提示する情報の符号化および復号に関する。
背景
本セクションは、請求項に記載の発明に背景や文脈を添えることを意図したものである。本明細書の説明は、特許化可能であって、既に必ずしも概念化、特許化されていないものを含みうる。したがって、本明細書で別途記載しない限り、本セクションの内容は、本願の明細書および請求項に対する先行技術ではなく、本セクションに含めることで先行技術として認められるものではない。
ビデオの符号化システムは、格納/送信に適した圧縮表現に入力ビデオを変換するエンコーダと、圧縮ビデオ表現を視聴可能な形態に解凍可能なデコーダとを含む。エンコーダは、元のビデオシーケンスにおける一部の情報を破棄し、ビデオをよりコンパクトな形態としてもよい。これにより、例えば、破棄しなかった場合と比較して、より低ビットレートで当該ビデオ情報を格納/送信を実現できる。
摘要
いくつかの実施形態は、ビデオ情報を符号化、復号する方法を提供する。いくつかの実施形態において、当該方法を実現する装置、コンピュータプログラムプロダクト、コンピュータ可読媒体が提供される。
本発明の例の各種態様は、詳細な説明にて記載される。
第1の態様によると、方法が提供される。前記方法は、
動き予測用のサンプルブロックを取得することと、
前記サンプルブロックの少なくとも1つの並進基本動きベクトル成分の予測を定義することにより、前記並進基本動きベクトル成分を計算することと、
第1の精度を用いて第1の差分動きベクトル成分を定義することと、
前記第1の差分動きベクトル成分を前記並進基本動きベクトル成分の前記予測に加えることと、
前記高次動きベクトル成分の予測を定義することによって、少なくとも1つの高次動きベクトル成分を計算することと、
前記第1の精度とは異なる第2の精度を用いて、第2の差分動きベクトル成分を定義することと、
前記高次動きベクトル成分の前記予測に前記第2の差分動きベクトル成分に加えることと、
前記少なくとも1つの並進基本動きベクトル成分および少なくとも1つの差分動きベクトル成分を用いて、前記サンプルブロックに動き補償を実行することと、
を含む。
第2の態様によると、装置が提供される。前記装置は、少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリと、を備え、前記少なくとも1つのメモリおよび前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に少なくとも、
動き予測用のサンプルブロックを取得することと、
前記サンプルブロックの少なくとも1つの並進基本動きベクトル成分の予測を定義することにより、前記並進基本動きベクトル成分を計算することと、
第1の精度を用いて第1の差分動きベクトル成分を定義することと、
前記第1の差分動きベクトル成分を前記並進基本動きベクトル成分の前記予測に加えることと、
前記高次動きベクトル成分の予測を定義することによって、少なくとも1つの高次動きベクトル成分を計算することと、
前記第1の精度とは異なる第2の精度を用いて、第2の差分動きベクトル成分を定義することと、
前記高次動きベクトル成分の前記予測に前記第2の差分動きベクトル成分に加えることと、
前記少なくとも1つの並進基本動きベクトル成分および少なくとも1つの差分動きベクトル成分を用いて、前記サンプルブロックに動き補償を実行することと、
を実行させるように構成される。
第3の態様によると、装置による使用のためのコードを格納するコンピュータ可読記憶媒体が提供され、前記コードは、プロセッサによって実行されると、前記装置に、
動き予測用のサンプルブロックを取得することと、
前記サンプルブロックの少なくとも1つの並進基本動きベクトル成分の予測を定義することにより、前記並進基本動きベクトル成分を計算することと、
第1の精度を用いて第1の差分動きベクトル成分を定義することと、
前記第1の差分動きベクトル成分を前記並進基本動きベクトル成分の前記予測に加えることと、
前記高次動きベクトル成分の予測を定義することによって、少なくとも1つの高次動きベクトル成分を計算することと、
前記第1の精度とは異なる第2の精度を用いて、第2の差分動きベクトル成分を定義することと、
前記高次動きベクトル成分の前記予測に前記第2の差分動きベクトル成分に加えることと、
前記少なくとも1つの並進基本動きベクトル成分および少なくとも1つの差分動きベクトル成分を用いて、前記サンプルブロックに動き補償を実行することと、
を実行させる。
第4の態様によると、装置が提供される。前記装置は、画像シーケンスを含むビットストリームを符号化するために構成されたビデオエンコーダを備え、前記ビデオエンコーダは、
動き予測用のサンプルブロックを取得する手段と、
前記サンプルブロックの少なくとも1つの並進基本動きベクトル成分の予測を定義することにより、前記並進基本動きベクトル成分を計算する手段と、
第1の精度を用いて第1の差分動きベクトル成分を定義する手段と、
前記第1の差分動きベクトル成分を前記並進基本動きベクトル成分の前記予測に加える手段と、
前記高次動きベクトル成分の予測を定義することによって、少なくとも1つの高次動きベクトル成分を計算する手段と、
前記第1の精度とは異なる第2の精度を用いて、第2の差分動きベクトル成分を定義する手段と、
前記高次動きベクトル成分の前記予測に前記第2の差分動きベクトル成分に加える手段と、
前記少なくとも1つの並進基本動きベクトル成分および少なくとも1つの差分動きベクトル成分を用いて、前記サンプルブロックに動き補償を実行する手段と、
を備える。
本発明の例示的実施形態をよりよく理解できるように、以下の添付図面を参照して以下に説明する。
図1は、ある実施形態に係るビデオ符号化システムのブロック図である。
図2は、ある実施形態に係る装置の構成を示す。
図3は、ある実施形態に係る、複数の装置、ネットワーク、ネットワーク要素を備えるビデオの符号化用構成を示す。
図4は、ある実施形態に係るビデオエンコーダのブロック図である。
図5は、ある実施形態に係るビデオデコーダのブロック図である。
図6は、2つのタイルからなるピクチャの例を示す。
図7は、ある実施形態に係る動きベクトル判定要素の概略ブロック図である。
図8aは、符号化単位内の基本動きベクトルb0およびb1を示す。
図8bは、符号化単位外の基本動きベクトルb0およびb1を示す。
図8cは、第1次パラメータa0が正の値のアフィンモデルの使用を示す。
図9は、ある実施形態に係る符号化方法を示すフローチャートである。
図10は、ある実施形態に係る復号方法を示すフローチャートである。
図11は、各種実施形態を実施可能な、マルチメディア通信システムの例を示す概略図である。
いくつかの実施形態の詳細説明
図1は、ある実施形態に係る装置または電子デバイス50の概略的ブロック図としてのビデオ符号化システムを示す。電子デバイス50は、実施形態に係るコーデックを内蔵してもよい。図2は、ある実施形態に係る装置の構成を示す。次に、図1および図2の要素を説明する。
電子デバイス50は、例えば、無線通信システムにおける携帯端末またはユーザ端末であってもよい。ただし、本発明の各実施形態は、ビデオ映像の符号化および/または復号を実行する可能性のある任意の電子デバイスや装置内に実装してもよいことが理解されよう。
デバイス50は、これを内蔵、保護する筐体30を備えてもよい。デバイス50はさらに、液晶ディスプレイであるディスプレイ32を備えてもよい。別の実施形態では、ディスプレイは画像またはビデオ表示に適した任意の表示技術を採用してもよい。デバイス50は、さらにキーパッド34を備えてもよい。ある実施形態では、任意の好適なデータまたはユーザインタフェース機構を利用してもよい。例えば、このユーザインタフェースは、タッチ感知ディスプレイの一部としてのバーチャルキーボードまたはデータ入力システムとして実現されてもよい。デバイス50は、マイク36または任意の好適な音声入力(デジタル信号入力であってもアナログ信号入力であってもよい)を備えてもよい。デバイス50は、音声出力装置をさらに備えてもよい。ある実施形態では、該音声出力装置は、受話口38、スピーカー、アナログ音声出力接続部またはデジタル音声出力接続部のいずれかであってもよい。デバイス50は、バッテリ40をさらに備えてもよい(または一実施形態では、デバイスが、太陽電池、燃料電池、またはゼンマイ式発電機等の任意の好適な可搬性エネルギー装置によって電源供給されてもよい)。またデバイス50は、画像や動画の記録や撮像が可能なカメラ42を備えてもよい。ある実施形態では、デバイス50はさらに、別のデバイスとの短直線距離通信用の赤外線ポートを備えてもよい。ある実施形態では、デバイス50はさらに、例えばBluetooth(登録商標)無線接続またはUSB/FireWire有線接続等の、任意の好適な近距離通信手段を備えてもよい。
デバイス50は、これを制御するコントローラ56またはプロセッサを備えてもよい。コントローラ56は、メモリ58に接続されてもよい。ある実施形態では、メモリ58は、画像および音声のいずれの形式のデータ、および/またはコントローラ56において実行される命令を格納してもよい。コントローラ56はさらに、音声および/またはビデオデータの符号化および/または復号の実行や、コントローラ56が実行する符号化および/または復号の補助に適したコーデック回路54に接続されてもよい。
デバイス56は、ユーザ情報を提供し、ネットワークにおけるユーザを認証、承認するための認証情報の提供に適した、例えばUICC(Universal Integrated Circuit Card)およびUICCリーダー等のカードリーダー48およびスマートカード46をさらに備えてもよい。
デバイス50は、コントローラに接続され、例えば携帯通信ネットワーク、無線通信システム、または無線ローカルエリアネットワークと通信するための無線通信信号の生成に適した無線インタフェース回路52をさらに備えてもよい。デバイス50は、無線インタフェース回路52に接続され、無線インタフェース回路52で生成された無線周波数信号を1つ以上の別の装置に送信し、1つ以上の別の装置から無線周波数信号を受信するためのアンテナ44をさらに備えてもよい。
ある実施形態では、デバイス50は、個別のフレームを記録、検出可能なカメラを備える。該フレームはその後、コーデック54またはコントローラに送られて処理される。ある実施形態では、デバイス50は、伝送や格納の前に、別のデバイスから処理用のビデオ映像データを受信してもよい。ある実施形態では、デバイス50は、符号化/復号用の画像を無線または有線接続を介して受信してもよい。
図3は、ある実施形態に係る、複数の装置、ネットワーク、ネットワーク要素を備えるビデオの符号化用構成を示す。図3は、本発明の各実施形態を利用可能なシステムの例を示している。システム10は、1つ以上のネットワークを介して通信可能な複数の通信デバイスを含む。システム10は、有線ネットワークや無線ネットワークの任意の組合せを含んでもよい。これらのネットワークとしては、GSM(登録商標)、UMTS(Universal Mobile Telecommunications System)、符号分割多元接続(Code Division Multiple Access:CDMA)ネットワーク等)、IEEE802.x規格のいずれかの規格で規定されるもの等の無線ローカルエリアネットワーク(Wireless Local Area Network:WLAN)、Bluetooth(登録商標)パーソナルエリアネットワーク、イーサネット(登録商標)ローカルエリアネットワーク、トークンリングローカルエリアネットワーク、広域ネットワーク、インターネット等が挙げられるが、これらに限定されない。
システム10は、各実施形態の実現に適した有線および無線通信のデバイスまたは装置50を備えてもよい。例えば、図3に示すシステムは、携帯電話ネットワーク11と、インターネット28を表現したものとを示している。インターネット28への接続は、長距離無線接続、近距離無線接続、および各種有線接続を含んでもよいが、これらに限定されない。有線接続には、電話回線、ケーブル回線、電力線、その他同様の通信経路等が含まれるが、これらに限定されない。
システム10内に示される通信デバイスの例は、電子デバイスまたは装置50、携帯情報端末(Personal Digital Assistant:PDA)と携帯電話14との組合せ、PDA16、統合通信デバイス(Integrated Messaging Device:IMD)18、デスクトップコンピュータ20、ノート型コンピュータ22を備えてもよいが、これらに限定されない。デバイス50は固定型でもよく、移動する人が持ち運べる携帯型でもよい。また、デバイス50は移動手段に設けられてもよい。こうした移動手段には、自動車、トラック、タクシー、バス、列車、船、飛行機、自転車、バイク、その他同様の好適な移動手段を備えてもよいが、これらに限定されない。
実施形態はさらに、ディスプレイや無線通信に対応する性能を有しても有していなくてもよい、セットトップボックス、すなわちデジタルテレビ、ハードウェア、ソフトウェア、またはエンコーダ/デコーダ実装の組合せを含むタブレットまたは(ノート型)パーソナルコンピュータ(PC)、各種オペレーティングシステム、チップセット、プロセッサ、DSPおよび/または組み込みシステム(ハードウェア/ソフトウェアによる符号化を実現)で実施されてもよい。
いくつかのまたはさらなる装置は、呼び出しやメッセージを送受信して、基地局24への無線接続25を介してサービスプロバイダと通信してもよい。基地局24は、携帯電話ネットワーク11とインターネット28との間の通信を可能にするネットワークサーバ26に接続されてもよい。システムは、さらなる通信デバイスや、各種通信デバイスを備えてもよい。
これらの通信デバイスは各種伝送技術を用いて通信してもよく、こうした技術には、CDMA、GSM(登録商標)、UMTS、時分割多元接続(Time Divisional Multiple Access:TDMA)、周波数分割多元接続(Frequency Division Multiple Access:FDMA)、TCP‐IP(Transmission Control Protocol‐Internet Protocol)、ショートメッセージサービス(SMS)、マルチメディアメッセージサービス(MMS)、電子メール、インスタントメッセージングサービス(IMS)、Bluetooth(登録商標)、IEEE 802.11、その他同様の無線通信技術を含むが、これらに限定されない。本発明の様々な実施形態の実施に関わる通信デバイスは、様々な媒体を介して通信できる。こうした媒体には、無線、赤外線、レーザー、ケーブル接続、その他好適な接続が含まれるが、これらに限定されない。
ビデオエンコーダは、格納/送信に適した圧縮表現に入力ビデオを変換するエンコーダと、圧縮ビデオ表現を視聴可能な形態に解凍可能なデコーダを備えてもよい。ビデオエンコーダおよび/またはビデオデコーダは、それぞれ別に設けられてもよい。すなわち、コーデックを形成しなくてもよい。エンコーダは、元のビデオシーケンスにおける一部の情報を破棄し、ビデオをよりコンパクトな形態(すなわち、より低ビットレート)としてもよい。
例えばITU−T H.263やH.264等のハイブリッドビデオコーデックは、ビデオ情報を2段階で符号化してもよい。第1段階で、例えば動き補償手段(符号化されるブロックと密接に対応する、先に符号化済みのビデオフレームの1つにあるエリアを探して示す手段)や空間手段(特定の方法で符号化されるブロックの周辺の画素値を用いる手段)によって、特定のピクチャエリア(または「ブロック」)の画素値が予測される。第2段階で、予測誤差、すなわち画素の予測ブロックとその画素の元のブロックとの間の差分が符号化される。これは、特定の変換(例えば、離散コサイン変換(Discrete Cosine Transform:DCT)やその変形)を用いて画素値の差分を変換し、係数を量子化し、量子化済み係数をエントロピー符号化することによって行われてもよい。量子化処理の忠実度を変えることによって、エンコーダは画素表現の正確さ(ピクチャ品質)と結果として得られる符号化ビデオ表現のサイズ(伝送ビットレートのファイルサイズ)との間のバランスを調整することができる。
インター予測は、時間予測、動き補償、または動き補償予測とも呼ばれ、時間冗長性を小さくする。インター予測では、予測は先に復号済みのピクチャに基づく。一方、イントラ予測は、同一のピクチャ内の隣接画素同士に相関がある可能性が高いという事実に基づく。イントラ予測は、空間ドメインまたは変換ドメインで行うことができる。すなわち、サンプル値または変換係数のいずれかを予測することができる。イントラ符号化では通常イントラ予測が利用され、インター予測は適用されない。
符号化処理の結果の1つとして、動きベクトルと量子化変換係数のような符号化パラメータセットが得られる。多くのパラメータは、最初に空間的または時間的に隣接するパラメータから予測することにより、より効率的にエントロピー符号化することができる。例えば、動きベクトルは空間的に隣接する動きベクトルから予測されてもよく、動きベクトル予測部に対する相対差のみが符号化されてもよい。符号化パラメータの予測およびイントラ予測は、まとめてピクチャ内予測とも呼ばれる。
高度ビデオ符号化(Advanced Video Coding:H.264/AVCまたはAVC)規格は、ITU−T(国際電気通信連合の電気通信標準化部門)のビデオの符号化専門家グループ(VCEG)およびISO(国際標準化機構)/IEC(国際電気標準会議)の動画専門家グループ(MPEG)による統合ビデオチーム(JVT)によって開発された。H.264/AVC規格は、その元となる両標準化機構によって公開されており、ITU−T勧告H.264およびISO/IEC国際規格14496−10と呼ばれ、MPEG−4パート10高度ビデオ符号化方式(Advanced Video Coding:AVC)としても知られている。H.264/AVC規格には複数のバージョンがあり、それぞれが仕様に新たな拡張や特徴を統合している。これらの拡張には、スケーラブルビデオ符号化(Scalable Video Coding:SVC)やマルチビュービデオ符号化(Multiview Video Coding:MVC)が挙げられる。
高効率ビデオ符号化(High Efficiency Video Coding:H.265/HEVCまたはHEVC)規格のバージョン1は、VCEGとMPEGのビデオの符号化共同研究開発チーム(JCT−VC)によって開発された。この規格は、その元となる両標準化機構によって公開されており、ITU−T勧告H.265およびISO/IEC国際規格23008−2と呼ばれ、MPEG−Hパート2高効率ビデオ符号化(HEVC)として知られている。H.265/HEVCのバージョン2は、スケーラブル拡張、マルチビュー拡張、および忠実度範囲拡張を含み、それぞれSHVC、MV−HEVC、およびREXTと略称される。H.265/HEVCのバージョン2は、ITU−T勧告H.265(2014年10月)として先に刊行されており、2015年にISO/IEC23008−2の第2版として刊行される見込みである。H.265/HEVCのさらなる拡張版を開発する標準化プロジェクトも現在進められている。当該拡張版には、3次元およびスクリーンコンテンツ符号化拡張(それぞれ、3D−HEVC、SCCと略称される)が含まれている。
SHVC、MV−HEVC、および3D−HEVCは、HEVC規格のバージョン2の添付資料(Annex)Fに規定されている共通基準仕様を用いている。この共通基準は、例えば高レベルのシンタックスおよび意味を含む。これによって例えばインターレイヤ依存性等のビットストリームのレイヤの一部の特性や、インターレイヤ参照ピクチャを含む参照ピクチャリスト構造やマルチレイヤビットストリームに対するピクチャ順カウント導出等の復号処理が規定される。添付資料Fは、さらにHEVCの後続のマルチレイヤ拡張にも使用できる。以下において、ビデオエンコーダ、ビデオデコーダ、符号化方法、復号方法、ビットストリーム構造、および/または実施形態は、SHVCおよび/またはMV−HEVCといった特定の拡張に言及しているが、これらはHEVCの任意のマルチレイヤ拡張にも広く適用可能であり、さらには任意のマルチレイヤビデオの符号化方式にも適用可能であることは理解されよう。
ここでは、H.264/AVCおよびHEVCの重要な定義やビットストリーム、符号化の構造、概念の一部が、実施形態を実施可能なビデオエンコーダやデコーダ、符号化方法、復号方法、ビットストリーム構造の例として説明される。H.264/AVCの重要な定義やビットストリーム、符号化の構造、概念の中にはHEVCにおける規格と同一のものもある。したがって、以下ではこれらも一緒に説明される。本発明の態様は、H.264/AVCやHEVCに限定されるものではなく、本明細書は本発明が部分的にまたは全体として実現される上で可能な原理を説明するためのものである。
先行する多くのビデオの符号化規格と同様に、H.264/AVCおよびHEVCは、エラーのないビットストリームのための復号処理に加えてビットストリームのシンタックスと意味についても規定している。符号化処理については規定されていないが、エンコーダは適合するビットストリームを生成する必要がある。ビットストリームとデコーダの適合性は、仮想参照デコーダ(Hypothetical Reference Decoder:HRD)を用いて検証できる。これらの規格は、伝送エラーや伝送損失対策を助ける符号化ツールを含むが、こうしたツールを符号化で用いることは任意に選択可能であって、ビットストリームのエラーに対する復号処理は規定されていない。
現存の規格に関する記述においても例示的実施形態の記述と同様に、シンタックス要素はビットストリームで表されるデータの要素として定義されてもよい。シンタックス構造は、特定の順序でビットストリームにおいて共存する0以上のシンタックス要素として定義されてもよい。現存の規格に関する記述においても例示的実施形態の記述と同様に、「外部手段によって」や「外部手段を介して」という表現が使用できる。例えば、シンタックス構造や復号処理において用いられる変数の値といったエンティティは、「外部手段によって」該復号処理に提供されてもよい。「外部手段によって」という表現は、このエンティティがエンコーダによって作成されたビットストリームに含まれるものではなく、ビットストリームの外部から、例えば制御プロトコルを用いて持ち込まれたことを示しうる。これに代えて、または加えて、「外部手段によって」という表現は、該エンティティがエンコーダによって作成されたものではなく、例えばデコーダを用いるプレーヤまたは復号制御論理回路等によって作成されたことを示しうる。このデコーダは、変数値等の外部手段を入力するインタフェースを有してもよい。
プロファイルは、符号化/復号規格または仕様に応じて特定される、ビットストリームシンタックス全体のサブセットとして定義されてもよい。所与のプロファイルのシンタックスによる制限の範囲内で、復号ピクチャの特定のサイズのような、ビットストリームにおけるシンタックス要素がとる値に応じて、極めて多様なエンコーダおよびデコーダの性能を求めることができる。多くの用途において、特定のプロファイル内で、シンタックスの考えうるすべての用途に対応可能なデコーダを実現することは、現実的でも経済的でもないであろう。このような事態に対応するために、レベルが使用されうる。レベルとは、ビットストリームにおけるシンタックス要素の値と、復号/復号規格または仕様で特定される変数に対する、特定の制限組として定義されてもよい。このような制限は、値に対する単純な制限であってもよい。さらに/あるいは、値の数学的組合せ(例えば、ピクチャ幅×ピクチャ高さ×毎秒の復号ピクチャ数)に対する制限であってもよい。レベルの制限の特定はこれに限られない。例えば、レベルで特定される制限としては、毎秒等の、ある期間ごとの、マクロブロック等の符号化単位についての、最大ピクチャサイズ、最大ビットレート、最大データレートに関するものであってもよい。すべてのプロファイルに対して同じレベル組が定義されてもよい。例えば、各レベルの定義の態様がほぼすべてまたはすべて共通している異なる複数のプロファイルを実現する端子間の相互動作性を上げることが好ましい場合もある。階層は、ビットストリームにおけるシンタックス要素の値に対するレベル制限の特定の種類として定義されてもよい。ここで、レベル制限は階層内にネスト化されて、所与の階層およびレベルに対応するデコーダは、当該レベル以下の同じ階層以下に対応するすべてのビットストリームを復号可能となるものである。
場合によっては、互換点は、特定のプロファイルと、特定のレベルとの組合せ、または特定のプロファイルと、特定の階層と、特定のレベルとの組合せと定義されてもよい。なお、互換点の別の定義も考えられることが理解されよう。ただし、それでもビットストリームの特徴と制限の特定、および/またはデコーダの特徴および(最大)資源の特定というその目的は不変でありうる。
H.264/AVCまたはHEVCエンコーダへの入力およびH.264/AVCまたはHEVCデコーダからの出力の基本単位は、それぞれピクチャである。エンコーダへの入力として与えられたピクチャはソースピクチャとも呼ばれ、デコーダによって復号されたピクチャは復号ピクチャとも呼ばれる。
ソースピクチャおよび復号ピクチャは、それぞれ以下のサンプル配列のセットのいずれかのような、1つ以上のサンプル配列からなっている。
輝度(Luma)(Y)のみ(モノクロ)
輝度および2つのクロマ(YCbCrまたはYCgCo)
緑、青、赤(GBRまたはRGB)
その他の非特定モノクロまたは三刺激色サンプリングを示す配列(例えば、YZX、またはXYZ)
以下では、これらの配列は、実際に使用されている色表現方法にかかわらず、輝度(LまたはY)およびクロマと呼ばれ、2つのクロマ配列はCbおよびCrとも呼ばれてもよい。実際に使用されている色表現方法は、例えばH.264/AVCおよび/またはHEVCのビデオユーザビリティ情報(VUI)シンタックスを使用して、符号化されたビットストリームにおいて示すことができる。ある成分が、3つのサンプル配列(輝度および2つのクロマ)の内の1つから配列または単一のサンプルとして定義されるか、モノクロフォーマットのピクチャを構成する配列または配列の単一のサンプルとして定義されてもよい。
H.264/AVCおよびHEVCでは、ピクチャはフレームまたはフィールドのいずれかであってもよい。フレームは、輝度サンプルと場合により対応するクロマサンプルの行列を含む。フィールドは、フレームの1つおきのサンプル行の組であり、ソース信号がインターレースされている場合、エンコーダ入力として用いられてもよい。クロマサンプル配列はなくてもよく(よって、モノクロサンプリングが使用される)、または輝度サンプル配列と比較されるときにサブサンプリングされてもよい。クロマフォーマットは、以下のようにまとめられる。
モノクロサンプリングでは、サンプル配列が1つのみ存在し、名目上輝度配列とみなされる。
4:2:0サンプリングでは、2つのクロマ配列のそれぞれが輝度配列の半分の高さと半分の幅を有する。
4:2:2サンプリングでは、2つのクロマ配列のそれぞれが輝度配列と同じ高さと半分の幅を有する。
4:4:4サンプリングでは、別個の色平面が使用されない場合、2つのクロマ配列のそれぞれが輝度配列と同じ高さと幅を有する。
H.264/AVCおよびHEVCでは、サンプル配列を別個の色平面としてビットストリームに符号化し、そのビットストリームから別個に符号化された色平面をそれぞれ復号することができる。別個の色平面が使用される場合、そのそれぞれはモノクロサンプリングのピクチャとして、(エンコーダおよび/またはデコーダによって)別々に処理される。
クロマサンプリングを用いる場合(例えば、4:2:0または4:2:2クロマサンプリング)、エンコーダ側において、輝度サンプルに対するクロマサンプルの場所が決定されうる(例えば、前処理として、または符号化の一部として)。輝度サンプル位置に対するクロマサンプル位置は、H.264/AVCまたはHEVC等の符号化規格で事前定義されてもよいし、例えばH.264/AVCまたはHEVCのVUIの一部としてビットストリーム内で示されてもよい。
パーティショニングとは、1つのセットの各要素が正確にサブセットの1つであるように、そのセットを複数のサブセットに分割することと定義されてもよい。
H.264/AVCでは、マクロブロックとは、16×16ブロックの輝度サンプルと対応するクロマサンプルのブロックである。例えば、4:2:0サンプリングパターンでは、1つのマクロブロックには各クロマ成分について、1つの8×8ブロックのクロマサンプルを含む。H.264/AVCでは、ピクチャが1つ以上のスライスグループに分割(パーティショニング)され、1つのスライスグループには1つ以上のスライスを含む。H.264/AVCでは、スライスは整数のマクロブロックからなり、特定のスライスグループ内でラスタースキャンの順に連続している。
HEVC符号化および/または復号の動作の記述に関して、以下の用語が用いられる場合がある。符号化ブロックは、符号化ツリーブロックが符号化ブロックへパーティショニングにより分割されるように、何らかの値NについてのサンプルのN×Nブロックとして定義されてもよい。符号化ツリーブロック(Coding Tree Block:CTB)は、ある成分の符号化ツリーブロックへパーティショニングにより分割されるように、何らかの値NについてのサンプルのN×Nブロックとして定義されてもよい。符号化ツリー単位(Coding Tree Unit:CTU)は、輝度サンプルの符号化ツリーブロックとして定義されてもよく、これは3つのサンプル配列を有するピクチャのクロマサンプルの2つの対応する符号化ツリーブロックや、モノクロピクチャのサンプルまたは3つの別個の色平面やサンプルを符号化するために使用されるシンタックス構造を用いて符号化されるピクチャのサンプルの符号化ツリーブロックである。符号化単位(Coding Unit:CU)は、輝度サンプルの符号化ブロックとして定義されてもよく、これは3つのサンプル配列を有するピクチャのクロマサンプルの2つの対応する符号化ブロックや、モノクロピクチャのサンプルまたは3つの別個の色平面やサンプルを符号化するために使用されるシンタックス構造を用いて符号化されるピクチャのサンプルの符号化ブロックである。
高効率ビデオ符号化(HEVC)コーデック等の一部のビデオコーデックでは、ビデオピクチャは、ピクチャのエリアを網羅する複数の符号化単位(CU)に分割される。CUは、CU内のサンプルに対する予測処理を定義する1つ以上の予測単位(Prediction Unit:PU)と、該CU内のサンプルに対する予測誤差符号化処理を定義する1つ以上の変換単位(Transform Unit:TU)からなる。通常CUは、正方形のサンプルブロックからなり、規定されている可能なCUサイズの組から選択可能なサイズを有する。最大許容サイズのCUは、最大符号化単位(Largest Coding Unit:LCU)または符号化ツリー単位(CTU)と呼ばれることもあり、ビデオピクチャは重なり合わないLCUに分割される。LCUは、例えば該LCUと分割の結果得られるCUを再帰的に分割することによってさらに小さいCUの組合せに分割されることもある。分割の結果得られる各CUは通常、少なくとも1つのPUとそれに関連する少なくとも1つのTUを有する。PUとTUはそれぞれ、予測処理と予測誤差符号化処理の粒度を上げるために、さらに小さい複数のPUとTUに分割されることもある。各PUは、そのPU内の画素に適用される予測の種類を定義する、該PUに関連した予測情報(例えば、インター予測されたPUに対しては動きベクトルの情報、イントラ予測されたPUに対してはイントラ予測の方向情報)を有する。
各TUは、当該TU内のサンプルに対する予測誤差復号処理を表す情報(例えばDCT係数情報を含む)に対応付けられてもよい。各CUは通常、予測誤差符号化が適用されるか否かが、CUレベルにてシグナリングされる。CUに対応付けられた予測誤差残差がない場合、当該CUに対してはTUが存在しないとみなせる。画像のCUへの分割、CUのPUおよびTUへの分割は、ビットストリームにおいてシグナリングされてもよい。これにより、デコーダはこれらの単位の意図された構造を再生可能となる。
HEVCにおいては、ピクチャは、タイルに分割できる。タイルは四角形状で、整数個のLCUを含む。HEVCにおいては、タイルへの分割により、矩形格子が形成される。タイル間の高さおよび幅の差分は、1LCUを越えない。HEVCにおいて、スライスは、1つの独立スライスセグメントと、同じアクセス単位内の(存在する場合)次の独立スライスセグメントより前の、(存在する場合)すべての後続の従属スライスセグメントに含まれる整数個の符号化ツリー単位と定義されている。HEVCにおいて、スライスセグメントは、タイルスキャンの順で連続し、1つのNAL単位に含まれる整数個の符号化ツリー単位と定義されている。各ピクチャをスライスセグメントに分割することを、パーティショニングという。HEVCにおいて、独立スライスセグメントは、スライスセグメントヘッダのシンタックス要素の値が、それ以前のスライスセグメントの値から推測されないスライスセグメントと定義される。従属スライスセグメントは、スライスセグメントヘッダのいくつかのシンタックス要素の値が、復号順で1つ前の独立スライスセグメントの値から推定されるスライスセグメントと定義される。HEVCにおいて、スライスヘッダは、現スライスセグメントである独立スライスセグメント、または現従属スライスセグメントの1つ前の独立スライスセグメントのスライスセグメントヘッダと定義される。スライスセグメントヘッダは、スライスセグメントで表される最初のまたはすべての符号化ツリー単位に関するデータ要素を含む、符号化されたスライスセグメントの一部と定義される。CUは、タイル内、あるいはタイルが使用されない場合はピクチャ内のLCUのラスタースキャンの順で走査される。LCU内で、CUは特定の順序で走査される。図6は、正方形符号化単位(実線)に分割された2つのタイルからなるピクチャの例を示す。当該符号化単位は、さらに矩形予測部(点線)に分割されている。
デコーダは、予測された画素ブロックの表現を形成して(エンコーダが作成し、圧縮表現に格納された、動き情報または空間情報を使用)、予測誤差を復号するために(空間画素ドメインで量子化された予測誤差信号を回復する、予測誤差符号化の逆操作を使用)、エンコーダと同様の予測手段を適用することによって出力ビデオを再構成してもよい。予測および予測誤差復号手段の適用後、デコーダは、出力ビデオフレームを形成するために予測信号と予測誤差信号(画素値)を足し合わせてもよい。デコーダ(およびエンコーダ)は、出力ビデオをディスプレイに送る、および/または後続フレーム用予測の参照としてビデオシーケンスに格納する前に、出力ビデオの品質を向上するために追加フィルタリング手段を適用してもよい。
フィルタリングは、例えば、デブロッキング、適応サンプルオフセット(Sample Adaptive Offset:SAO)、および/または適応ループフィルタリング(Adaptive Loop Filtering:ALF)の内の1つ以上を含んでもよい。H.264/AVCはデブロッキングを含み、一方、HEVCはデブロッキングとSAOの両方を含む。
サンプル値予測と、符号化サンプル値を示す変換符号化を利用した手法に加えて、またはこれに代えて、カラーパレットに基づく符号化を利用してもよい。パレットに基づく変換とは、パレット(すなわち、色と対応するインデックスの組)が定義され、符号化単位内の各サンプルの値が、パレット内の対応するインデックスを示すことで表されるような各種手法である。パレットに基づく変換は、比較的少数の色の符号化単位(テキストまたは単純なグラフィックのような、コンピュータスクリーン上のコンテンツを示す画像領域)で、良好な符号化効率を実現できる。パレット符号化の符号化効率を向上するため、別の種類のパレットインデックス予測のアプローチを活用することもでき、または、パレットインデックスをランレングス符号化してより長い均一な画像領域を効率的に表現することもできる。さらに、その中で反復しないサンプル値を有するCUの場合、エスケープ符号化を活用できる。エスケープ符号化サンプルは、いずれのパレットインデックスも参照することなく送信される。代わりに、各エスケープ符号化サンプルに対して、これらの値が個々に示される。
復号ピクチャバッファ(Decoded Picture Buffer:DPB)が、エンコーダおよび/またはデコーダにおいて使用されてもよい。復号ピクチャをバッファするのは、インター予測における参照のためと、復号ピクチャを出力順に並べ替えるためという2つの理由がある。H.264/AVCおよびHEVCは参照ピクチャのマーキングおよび出力順並べ替えの両方に対して柔軟に対応することから、参照ピクチャのバッファリング用と出力ピクチャのバッファリング用に個別のバッファを用意するとメモリ資源の無駄遣いになる。したがって、DPBでは、参照ピクチャおよび出力順並べ替え用に統一した復号ピクチャバッファリングのプロセスを備えていてもよい。復号ピクチャは、参照用に使用されず、出力用にも必要なくなった際には、DPBから除かれてもよい。
H.264/AVCおよびHEVCの多様な符号化モードでは、インター予測用の参照ピクチャが参照ピクチャリストに対するインデックスによって示される。このインデックスは可変長符号化によって符号化されてもよく、この場合通常、インデックスが小さいほど対応するシンタックス要素に対する値が短くなる。H.264/AVCおよびHEVCでは、各双予測(bi-predictive)(B)スライスに対して2つの参照ピクチャリスト(参照ピクチャリスト0および参照ピクチャリスト1)、各インターコード化(P)スライスに対して1つの参照ピクチャリスト(参照ピクチャリスト0)が形成される。
参照ピクチャリスト0および参照ピクチャリスト1等の参照ピクチャリストは、典型的には以下の2つのステップで構築される。第1ステップとして、開始参照ピクチャリストが生成される。この開始参照ピクチャリストは、例えばframe_num、POC、temporal_id(またはTemporalId等)、GOP構造等の予測階層に関する情報、またはこれらの任意の組合せに基づいて生成されてもよい。第2ステップとして、最初の参照ピクチャリストを参照ピクチャリスト並べ替え(RPLR)コマンドによって並べ替えてもよい。このコマンドは、参照ピクチャリスト変更シンタックス構造とも呼ばれ、スライスヘッダに含まれていてもよい。H.264/AVCでは、RPLRコマンドが、各参照ピクチャリストの冒頭に置かれるピクチャを示す。この第2ステップは、参照ピクチャリスト変更プロセスと呼ばれてもよく、RPLRコマンドが参照ピクチャリスト変更シンタックス構造に含まれていてもよい。参照ピクチャセットが使用される場合、参照ピクチャリスト0は、最初にRefPicSetStCurr0、次にRefPicSetStCurr1、さらにRefPicSetLtCurrを含むように初期化されてもよい。参照ピクチャリスト1は、最初にRefPicSetStCurr1、次にRefPicSetStCurr0を含むように初期化されてもよい。HEVCでは、開始参照ピクチャリストは参照ピクチャリスト変更シンタックス構造によって変更されてもよく、ここで、開始参照ピクチャリストにおけるピクチャは、リストに対するエントリインデックスによって識別されてもよい。言い換えると、HEVCでは、参照ピクチャリスト変更が、最終的な参照ピクチャリストにおける各エントリに対するループを含むシンタックス構造へと符号化され、ここで、各ループエントリは開始参照ピクチャリストに対する固定長の符号化インデックスであり、最終的な参照ピクチャリストにおける昇順のピクチャを示す。
H.264/AVCおよびHEVCを含む多くの符号化規格では、参照ピクチャリストに対する参照ピクチャインデックスを導出するための復号プロセスを備えてもよく、これにより、複数の参照ピクチャのうちのいずれが特定のブロックに対するインター予測に用いられるかを示してもよい。参照ピクチャインデックスは、一部のインター符号化モードではエンコーダによってビットストリームに符号化されてもよく、別のインター符号化モードでは例えば隣接ブロックを用いて(エンコーダおよびデコーダによって)導出されてもよい。
ビデオコーデックにおいて、動き情報は、動き補償された画像ブロックのそれぞれに関連する動きベクトルで示されてもよい。こうした動きベクトルはそれぞれ、(エンコーダ側で)符号化されるピクチャまたは(デコーダ側で)復号されるピクチャの画像ブロックと、先に符号化または復号されたピクチャの1つにおける予測元ブロックとの間の移動量を表してもよい。動きベクトルを効率よく表現するために、動きベクトルは通常、ブロック固有の予測動きベクトルに関して差動符号化されてもよい。ビデオコーデックにおいて、予測動きベクトルは所定の方法、例えば、隣接ブロックの符号化/復号動きベクトルの中央値を計算することによって、生成されてもよい。動きベクトル予測を行う別の方法は、時間参照ピクチャにおける隣接ブロックおよび/または並置されたブロックから予測候補のリストを作成し、選択された候補を動きベクトルの予測としてシグナリングするものである。動きベクトルの値の予測に加え、先に符号化/復号されたピクチャの参照インデックスが予測されてもよい。この参照インデックスは、例えば、時間参照ピクチャにおける隣接ブロックおよび/または並置されたブロックから予測されてもよい。また、高効率ビデオコーデックでは追加的な動き情報符号化/復号機構を用いてもよく、「マージング/マージモード」と呼ばれる。ここで、すべての動きフィールド情報は、利用可能な参照ピクチャリストの各々について動きベクトルと対応する参照ピクチャインデックスを含んでもよく、これが予測され、その他の変更/修正を行わずに使用される。同様に、動きフィールド情報の予測は、時間参照ピクチャにおける隣接ブロックおよび/または並置されたブロックの動きフィールド情報を用いて行われてもよく、使用された動きフィールド情報は、利用可能な隣接/並置されたブロックの動きフィールド情報が含まれる動きフィールド候補のリストにシグナリングされる。
一部のビデオコーデックは、単予測と双予測の使用が可能である。単予測では単一の予測ブロックを符号化/復号対象ブロックに使用し、双予測では2つの予測ブロックを組み合わせて、符号化/復号対象ブロックに対する予測を実現する。一部のビデオコーデックでは、残差情報を加える前に予測ブロックのサンプル値が重み付けされる重み付け予測が可能である。例えば、乗法重み付け係数および加法補正値を適用してもよい。一部のビデオコーデックによって実現される直接的な重み付け予測では、重み付け係数および補正値は、例えば許容される参照ピクチャインデックスごとにスライスヘッダにおいて符号化されてもよい。一部のビデオコーデックによって実現される間接的な重み付け予測では、重み付け係数および/または補正値は符号化されず、例えば参照ピクチャの相対ピクチャ順数(Picture Order Count:POC)の距離に基づいて導出される。
動き補償をインターピクチャ予測に対して適用することに加え、同様の手法をイントラピクチャ予測にも適用できる。その場合、変位ベクトルが、符号化または復号されるブロックの予測を形成するため、同じピクチャ内で、サンプルブロックがどこからコピーできるかを示す。この種のイントラブロックコピー方法は、フレーム内にテキストまたはその他グラフィックのような構造の繰り返しが存在すると、符号化効率を大幅に向上できうる。
ビデオコーデックにおいて、動き補償後の予測残差は最初に(例えばDCT)変換カーネルで変換され、次に符号化されてもよい。これは、残差間にも相関がある場合があり、こうした変換が多くの場合でこのような相関を小さくするのに役立ち、より高い効率での符号化を可能にできるためである。
ビデオエンコーダは、例えば所望のマクロブロックモードおよび関連する動きベクトルといった最適な符号化モードを探索するために、ラグランジュコスト関数を利用してもよい。この種のコスト関数は、非可逆符号化方法による(正確な、または推定された)画像歪みと、画像エリアの画素値を表現するのに必要である(正確な、または推定された)情報量を一緒に固定するために、重み付け係数λ(ラムダ)を使用する。
C=D+λR (式1)
ここで、Cは最小化すべきラグランジュコスト、Dはそのモードおよび考慮される動きベクトルによる画像歪み(例えば平均二乗誤差)、Rはデコーダで画像ブロックを再構成するために必要なデータ(候補の動きベクトルを表すためのデータ量を含む)を表すのに必要なビット数である。
ビデオ符号化規格および標準は、エンコーダが符号化ピクチャを符号化スライス等に分割可能にするものであってもよい。通常、スライス境界をまたぐピクチャ内予測は無効である。したがって、スライスは符号化ピクチャを独立に復号可能な部分に分割する方法だと考えられる。H.264/AVCおよびHEVCでは、スライス境界をまたぐピクチャ内予測が無効でもよい。したがって、スライスは符号化ピクチャを独立に復号可能な部分に分割する方法だと考えられることもあり、このため、伝送の基本単位とみなされることが多い。多くの場合、エンコーダは、ピクチャ内予測のどの種類がスライス境界をまたぐ際に止められているかをビットストリームで示してもよい。この情報は、デコーダの動作によって、どの予測ソースが利用可能であるかを決定する際等に考慮される。例えば、隣接するマクロブロックやCUが別のスライスに存在する場合、その隣接するマクロブロックやCUからのサンプルはイントラ予測には利用できないとみなされてもよい。
H.264/AVCまたはHEVCのエンコーダからの出力およびH.264/AVCまたはHEVCのデコーダへの入力のための基本単位はそれぞれ、ネットワーク抽象化層(Network Abstraction Layer:NAL)単位である。パケット指向ネットワークでの伝送や構造化ファイルへの格納に対して、NAL単位はパケットや同様の構造にカプセル化されてもよい。H.264/AVCおよびHEVCでは、フレーム構造を提供しない伝送や格納の環境に対してバイトストリームフォーマットが特定されている。バイトストリームフォーマットは、各NAL単位の先頭に開始コードを付与することによってNAL単位同士を分離する。NAL単位境界の誤検出を防止するために、エンコーダはバイト指向開始コードエミュレーション防止アルゴリズムを実行する。このアルゴリズムでは、開始コードが別の形で生じた場合にNAL単位ペイロードにエミュレーション防止バイトを追加する。パケット指向システムとストリーム指向システムとの間の直接的なゲートウェイ動作を可能とするために、バイトストリームフォーマットが使用されているか否かに関係なく常に開始コードエミュレーション防止が行われてもよい。NAL単位は、後続データの種類の標示を含むシンタックス構造と、未加工バイトシーケンスペイロード(RBSP)の形態で必要に応じてエミュレーション防止バイトを散在させたデータを含む複数のバイトとして定義されてもよい。RBSPは、NAL単位にカプセル化される整数のバイトを含むシンタックス構造として定義されてもよい。RBSPは空であるか、RBSPストップビットおよび0に等しい後続のビットが0個以上続くシンタックス要素を含むデータビット列の形態を持つかのいずれかである。
NAL単位はヘッダとペイロードからなる。H.264/AVCおよびHEVCでは、NAL単位ヘッダはNAL単位の種類を示す。
H.264/AVCのNAL単位ヘッダは2ビットのシンタックス要素であるnal_ref_idcを含み、これが0のときはNAL単位に含まれる符号化スライスが非参照ピクチャの一部であることを示し、0を超えるときはNAL単位に含まれる符号化スライスが参照ピクチャの一部であることを示す。SVCおよびMVCのNAL単位のヘッダは、スケーラビリティおよびマルチビュー階層に関する各種標示を追加で含んでもよい。
HEVCでは、規定されるNAL単位のすべての種類に対して2バイトのNAL単位ヘッダが使用される。NAL単位ヘッダには、1ビットの予約ビットと6ビットのNAL単位種類の標示、時間レベルに対する3ビットのnuh_temporal_id_plus1標示(1以上であることが必要な場合がある)、6ビットのnuh_layer_idシンタックス要素が含まれる。temporal_id_plus1シンタックス要素はNAL単位の時間識別子とみなされ、ゼロベースのTemporalId変数は次のように算出することができる。
TemporalId=temporal_id_plus1−1
TemporalIdが0のときは、最下位時間レベルに対応する。2つのNAL単位ヘッダバイトを含む開始コードエミュレーションを避けるために、temporal_id_plus1の値は0でない値が求められる。選択された値以上のTemporalIdを持つすべてのVCL−NAL単位を除外し、それ以外のすべてのVCL−NAL単位を含めることによって生成されたビットストリームが適合するものである。その結果、TIDと等しいTemporalIdを持つピクチャは、TIDより大きいTemporalIdを持つどのピクチャもインター予測の参照として使用しない。サブレイヤまたは時間サブレイヤは、TemporalId変数の特定の値を持つVCL−NAL単位および関連する非VCL−NAL単位からなる時間スケーラブルビットストリームの時間スケーラブルレイヤとして定義されてもよい。HEVCのシンタックス要素nuh_layer_idは、スケーラビリティ階層についての情報を有してもよい。
NAL単位は、ビデオ符号化層(Video Coding Layer:VCL)のNAL単位と、非VCL−NAL単位とに分類できる。VCL−NAL単位は通常、符号化スライスNAL単位である。H.264/AVCでは、符号化スライスNAL単位は1つ以上の符号化マクロブロックを表すシンタックス要素を含み、そのそれぞれが非圧縮ピクチャにおけるサンプルの1ブロックに対応する。HEVCでは、VCL−NAL単位は1つ以上のCUを表すシンタックス要素を含む。
H.264/AVCでは、符号化スライスNAL単位は、即時復号リフレッシュ(Instantaneous Decoding Refresh:IDR)ピクチャ、または非IDRピクチャ内の符号化スライスであると示されうる。
HEVCにおいては、符号化されたスライスNAL単位は以下の内のいずれか1種類であると示すことができる。
HEVCでは、ピクチャ種類の略語は、末尾(TRAIL)ピクチャ、時間サブレイヤアクセス(Temporal Sub-layer Access:TSA)、段階的時間サブレイヤアクセス(Step-wise Temporal Sub-layer Access:STSA)、ランダムアクセス復号可能先頭(Random Access Decodable Leading:RADL)ピクチャ、ランダムアクセススキップ先頭(Random Access Skipped Leading:RASL)ピクチャ、リンク切れアクセス(Broken Link Access:BLA)ピクチャ、瞬時復号リフレッシュ(IDR)ピクチャ、クリーンランダムアクセス(CRA)ピクチャと定義されてもよい。
ランダムアクセスポイント(RAP)ピクチャは、イントラランダムアクセスポイント(IRAP)ピクチャとも称するが、スライスまたはスライスセグメントが、16以上23以下のnal_unit_typeを有するピクチャである。独立レイヤにおけるIRAPピクチャはイントラ符号化されたスライスのみを含む。nuh_layer_id値がcurrLayerIdである予測レイヤに属するIRAPピクチャは、P、B、Iスライスを含んでもよく、nuh_layer_idがcurrLayerIdに等しいその他のピクチャによるインター予測を使用できず、その直接参照レイヤからのインターレイヤ予測を利用してもよい。最新版のHEVCにおいて、IRAPピクチャはBLAピクチャ、CRAピクチャ、またはIDRピクチャであってもよい。基本レイヤを含むビットストリームの最初のピクチャは、IRAPピクチャである。必要なパラメータセットが、アクティブ化される必要がある際に利用可能であれば、独立レイヤにおけるIRAPピクチャと、独立レイヤにおいて復号順でそれに続くすべての非RASLピクチャは、復号順でIRAPピクチャよりも前のあらゆるピクチャに対する復号処理を行わずに、正しく復号できる。ビットストリームにおいて、RAPピクチャではないイントラ符号化されたスライスのみを含むピクチャも存在しうる。また、すべての必要なパラメータが、アクティブ化される必要があるときに利用可能で、nuh_layer_idがcurrLayerIdに等しいレイヤの各直接参照レイヤの復号が開始していれば(すなわち、nuh_layer_idがcurrLayerIdに等しいレイヤの直接参照レイヤのすべてのnuh_layer_id値に等しいrefLayerIdに対して、LayerInitializedフラグ[ refLayerId ]が1に等しい場合)、nuh_layer_id値がcurrLayerIdの予測レイヤに属するIRAPピクチャと、nuh_layer_idがcurrLayerIdに等しい、復号順でそれに続くすべての非RASLピクチャは、復号順でIRAPピクチャよりも前の、nuh_layer_idがcurrLayerIdに等しいあらゆるピクチャに対する復号処理を行わずに、正しく復号できる。
HEVCでは、CRAピクチャが復号順でビットストリームの最初のピクチャであってもよく、ビットストリームの後の方で現れてもよい。HEVCではCRAピクチャによって、いわゆる先頭ピクチャが復号順でCRAピクチャの後であるが出力順ではそれより前になる。先頭ピクチャの中のいわゆるRASLピクチャは、参照としてCRAピクチャより前に復号されるピクチャを用いてもよい。復号順および出力順で共にCRAピクチャより後のピクチャは、CRAピクチャでランダムアクセスが行われる場合に復号可能となり、そのため、クリーンランダムアクセスは、IDRピクチャのクリーンランダムアクセス機能と同様にして実現されてもよい。
CRAピクチャは、関連するRADLまたはRASLピクチャを有することもある。CRAピクチャが復号順でビットストリームの最初のピクチャである場合、CRAピクチャは、復号順で符号化ビデオシーケンスの最初のピクチャであり、いずれの関連するRASLピクチャもデコーダから出力されず、復号できない可能性がある。その理由は、これらのピクチャにはビットストリームに現れないピクチャに対する参照が含まれる可能性があるためである。
先頭ピクチャは、出力順で関連するRAPピクチャよりも先のピクチャである。関連するRAPピクチャは、(存在する場合は)復号順で前のRAPピクチャである。先頭ピクチャはRADLピクチャまたはRASLピクチャのいずれかであってもよい。
すべてのRASLピクチャは、関連するBLAまたはCRAピクチャの先頭ピクチャである。関連するRAPピクチャがBLAピクチャまたはビットストリームにおける最初の符号化ピクチャである場合、RASLピクチャは出力されず、正しく復号されない可能性がある。その理由は、RASLピクチャにはビットストリームに現れないピクチャに対する参照が含まれうるためである。しかし、RASLピクチャの関連するRAPピクチャより前のRAPピクチャから復号が始まっていた場合、RASLピクチャを正しく復号することができる。RASLピクチャは、非RASLピクチャの復号処理のための参照ピクチャとして使用されない。すべてのRASLピクチャは、存在する場合、復号順で同一の関連するRAPピクチャのすべての末尾ピクチャよりも前にある。HEVC規格のドラフトの中には、RASLピクチャを破棄用タグ付き(Tagged for Discard:TFD)ピクチャと呼ぶものもあった。
すべてのRADLピクチャは先頭ピクチャである。RADLピクチャは、同一の関連するRAPピクチャにおける末尾ピクチャの復号処理のための参照ピクチャとして使用されない。すべてのRADLピクチャは、存在する場合、復号順で同一の関連するRAPピクチャのすべての末尾ピクチャよりも前にある。RADLピクチャは、復号順で関連するRAPピクチャより前のいずれのピクチャも参照しない。したがって、復号が関連するRAPピクチャから始まる場合、該RADLピクチャを正しく復号することができる。HEVC規格のドラフトの中には、RADLピクチャを復号可能先頭ピクチャ(Decodable Leading ピクチャ:DLP)と呼ぶものもあった。
CRAピクチャから始まるビットストリームの一部が別のビットストリームに含まれる場合、このCRAピクチャに関連するRASLピクチャは、その参照ピクチャの一部が合成ビットストリームにも存在しない可能性があるため、正しく復号されない可能性がある。こうした接合動作を直接的に行うために、CRAピクチャのNAL単位種類は、それがBLAピクチャであることを示すように変更することができる。BLAピクチャに関連するRASLピクチャは正しく復号できない可能性があり、よって、出力/表示もされない。また、BLAピクチャに関連するRASLピクチャでは復号処理を省略することもある。
BLAピクチャが復号順でビットストリームの最初のピクチャであってもよく、ビットストリームの後の方で現れてもよい。各BLAピクチャは新たな符号化ビデオシーケンスを開始し、復号処理に対してIDRピクチャと同様の影響を及ぼす。しかし、BLAピクチャは、空でない参照ピクチャセットを特定するシンタックス要素を含んでもよい。BLAピクチャは、BLA_W_LPに等しいnal_unit_typeを有する場合、関連するRASLピクチャを備えてもよく、これらのRASLピクチャはデコーダから出力されず、復号できない可能性がある。これは、これらのピクチャにはビットストリームに現れないピクチャに対する参照が含まれうるためである。BLAピクチャは、BLA_W_LPに等しいnal_unit_typeを有する場合、関連するRADLピクチャを備えてもよく、これらのRADLピクチャは復号されるものとして特定される。BLAピクチャは、BLA_W_DLPに等しいnal_unit_typeを有する場合、関連するRASLピクチャを有さず、関連するRADLピクチャを備えてもよく、これらのRADLピクチャは復号されるものとして特定される。BLAピクチャは、BLA_N_LPに等しいnal_unit_typeを有する場合、関連する先頭ピクチャを有さない。
IDR_N_LPに等しいnal_unit_typeを有するIDRピクチャは、ビットストリームにおいて関連する先頭ピクチャを有さない。IDR_W_LPに等しいnal_unit_typeを有するIDRピクチャは、ビットストリームにおいて関連するRASLピクチャを有さず、ビットストリームにおいて関連するRADLピクチャを備えてもよい。
nal_unit_typeの値が、TRAIL_N、TSA_N、STSA_N、RADL_N、RASL_N、RSV_VCL_N10、RSV_VCL_N12、またはRSV_VCL_N14に等しい場合、復号ピクチャは同一時間サブレイヤの他のピクチャに対する参照として使用されない。すなわち、HEVCでは、nal_unit_typeの値が、TRAIL_N、TSA_N、STSA_N、RADL_N、RASL_N、RSV_VCL_N10、RSV_VCL_N12、またはRSV_VCL_N14に等しい場合、復号ピクチャは、TemporalIdが同じ値のピクチャのRefPicSetStCurrBefore、RefPicSetStCurrAfter、RefPicSetLtCurrのいずれにも含まれない。nal_unit_typeがTRAIL_N、TSA_N、STSA_N、RADL_N、RASL_N、RSV_VCL_N10、RSV_VCL_N12、またはRSV_VCL_N14に等しい符号化ピクチャは、TemporalIdが同じ値の他のピクチャの復号可能性に影響を与えることなく破棄されてもよい。
末尾ピクチャは、出力順で関連するRAPピクチャより後のピクチャとして定義されてもよい。末尾ピクチャであるいずれのピクチャも、RADL_N、RADL_R、RASL_N、またはRASL_Rに等しいnal_unit_typeを有さない。先頭ピクチャであるピクチャはいずれも、復号順で、同一のRAPピクチャに関連するすべての末尾ピクチャより前であるように制限されてもよい。nal_unit_typeがBLA_W_DLPまたはBLA_N_LPであるBLAピクチャに関連するRASLピクチャは、ビットストリームには存在しない。BLA_N_LPに等しいnal_unit_typeを有するBLAピクチャまたはIDR_N_LPに等しいnal_unit_typeを有するIDRピクチャに関連するRADLピクチャは、ビットストリームには存在しない。CRAまたはBLAピクチャに関連するRASLピクチャはいずれも、出力順で、CRAまたはBLAピクチャに関連するいずれのRADLピクチャよりも前にあるように制限されてもよい。CRAピクチャに関連するRASLピクチャはいずれも、復号順でCRAピクチャよりも前にある他のいずれのRAPピクチャよりも、出力順で後になるように制限されてもよい。
HEVCでは、TSAとSTSAという2つのピクチャ種類があり、時間サブレイヤの切替えポイントを示すために使用することができる。TSAまたはSTSAピクチャの手前まで、およびTSAまたはSTSAピクチャのTemporalIdがN+1に等しくなるまで、TemporalIdがNまでの時間サブレイヤが復号されてきた場合、TSAまたはSTSAピクチャは、TemporalIdがN+1である(復号順で)すべての後続のピクチャの復号を可能にする。TSAピクチャ種類は、TSAピクチャ自体に加え、同一のサブレイヤにおいて復号順でそのTSAピクチャより後のすべてのピクチャに対して制限を加えてもよい。こうしたピクチャはいずれも、同一のサブレイヤにおいて復号順でTSAピクチャより前のピクチャからのインター予測の使用が許容されない。TSAの規定は、上位サブレイヤにおいて復号順でTSAピクチャに続くピクチャに対して制限をさらに加えてもよい。これらのピクチャはいずれも、TSAピクチャと同一または上位のサブレイヤに属する場合、復号順でTSAピクチャより前のピクチャに対する参照が許容されない。TSAピクチャは0より大きいTemporalIdを有する。STSAはTSAピクチャと同様であるが、上位サブレイヤにおいて復号順でSTSAピクチャより後のピクチャに対して制限を加えない。したがって、STSAピクチャが存在するサブレイヤに対してのみアップスイッチングが可能となる。
非VCL−NAL単位は、例えば、シーケンスパラメータセット、ピクチャパラメータセット、補助拡張情報(Supplemental Enhancement Information:SEI)NAL単位、アクセス単位区切り、シーケンス終端のNAL単位、ビットストリーム終端のNAL単位、または補充データNAL単位のいずれかの種類であってもよい。パラメータセットは復号ピクチャの再構成に必要であってもよいが、他の非VCL−NAL単位の多くは、復号サンプル値の再構成には必要ない。
符号化ビデオシーケンスで不変のパラメータがシーケンスパラメータセットに含まれてもよい。復号処理に必要なパラメータに加え、シーケンスパラメータセットがビデオユーザビリティ情報(Video Usability Information:VUI)を任意で含んでもよい。これは、バッファリングやピクチャ出力タイミング、レンダリング、およびリソース予約に重要なパラメータを含む。H.264/AVCでは、シーケンスパラメータセットを運ぶため、H.264/AVCのVCL−NAL単位用データすべてをシーケンスに含むシーケンスパラメータセットNAL単位、補助符号化ピクチャ用データを含むシーケンスパラメータセット拡張NAL単位、MVCおよびSVC VCL−NAL単位用のサブセット・シーケンスパラメータセットの3つのNAL単位が規定されている。HEVCでは、シーケンスパラメータセットRBSPには、1つ以上のピクチャパラメータセットRBSP、またはバッファリング期間SEIメッセージを含む1つ以上のSEI−NAL単位によって参照可能なパラメータが含まれる。ピクチャパラメータセットは、複数の符号化ピクチャで不変であるようなパラメータを含む。ピクチャパラメータセットRBSPは、1つ以上の符号化ピクチャの符号化スライスNAL単位によって参照可能なパラメータを含んでもよい。
HEVCでは、ビデオパラメータセット(VPS)は、0以上の符号化ビデオシーケンス全体に対して適用するシンタックス要素を含むシンタックス構造として定義されてもよい。該ビデオシーケンスは、各スライスセグメントヘッダにおいて探索されるシンタックス要素によって参照されるPPSにおいて探索されるシンタックス要素によって参照されるSPSにおいて探索されるシンタックス要素のコンテンツによって決定される。
ビデオパラメータセットRBSPは、1つ以上のシーケンスパラメータセットRBSPによって参照可能なパラメータを含んでもよい。
ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)の間の関係および階層は次のように記述できる。VPSは、スケーラビリティおよび/または3Dビデオの文脈において、パラメータセット階層でSPSの1段上に位置する。VPSは、すべての(スケーラビリティまたはビュー)レイヤにわたって全スライスに共通なパラメータを符号化ビデオシーケンス全体に含んでもよい。SPSは、特定の(スケーラビリティまたはビュー)レイヤにおける全スライスに共通なパラメータを符号化ビデオシーケンスの全体に含み、複数の(スケーラビリティまたはビュー)レイヤで共有されてもよい。PPSは、特定のレイヤ表現(1つのアクセス単位における1つのスケーラビリティまたはビューレイヤの表現)における全スライスに共通なパラメータを含み、これらのパラメータは複数のレイヤ表現における全スライスで共有される傾向にある。
VPSは、符号化ビデオシーケンス全体においてすべての(スケーラビリティまたはビュー)レイヤにわたって全スライスに適用可能なその他多くの情報を提供しうるが、さらにビットストリーム内のレイヤの依存関係に関する情報を提供してもよい。VPSは、基本VPS、VPS拡張、およびVPS VUIの3つの部分を含むとみなされてもよく、この内、VPS拡張およびVPS VUIが含まれるかは任意に選択可能であってもよい。HEVCでは、基本VPSは、vps_extension( )シンタックス構造を含まず、video_parameter_set_rbsp( )シンタックス構造を含むとみなされてもよい。video_parameter_set_rbsp( )シンタックス構造は、HEVCのバージョン1で既に規定されており、基本レイヤの復号に使用できるシンタックス要素を含む。HEVCでは、VPS拡張は、vps_extension( )シンタックス構造を含むとみなされてもよい。vps_extension( )シンタックス構造は、HEVCのバージョン2で特にマルチレイヤ拡張について規定されており、レイヤ依存関係を示すシンタックス要素等の1つ以上の非基本レイヤの復号に使用できるシンタックス要素を含む。VPS VUIは、復号等の目的に有用でありうるがHEVC復号プロセスでは使用する必要のないシンタックス要素を備える。
H.264/AVCおよびHEVCのシンタックスでは様々なパラメータセットの事例が許容され、各事例は固有の識別子で識別される。パラメータセットに必要なメモリ使用量を制限するために、パラメータセット識別値域は制限されている。H.264/AVCおよびHEVCでは、各スライスヘッダは、そのスライスを含むピクチャの復号に対してアクティブなピクチャパラメータセットの識別子を含む。各ピクチャパラメータセットは、アクティブなシーケンスパラメータセットの識別子を含む。その結果、ピクチャとシーケンスパラメータセットの伝送がスライスの伝送と正確に同期されている必要がない。その代わり、アクティブシーケンスとピクチャパラメータセットはそれらが参照される前までに受け取られていれば十分であり、スライスデータ用のプロトコルよりも信頼性の高い伝送機構を使って「帯域外」でパラメータセットを伝送することが可能になる。例えば、パラメータセットはリアルタイム転送プロトコル(Realtime Transport Protocol:RTP)セッション用のセッション記述でのパラメータとして含まれてもよい。パラメータセットは、帯域内で伝送される場合、エラー耐性を高めるために繰り返されることもある。
さらに/あるいは、帯域外伝送、シグナリング、または格納を、伝送エラーに対する耐性以外の目的、例えばアクセスまたはセッションネゴシエーションを行いやすくするために利用できる。例えば、ISOベースメディアファイルフォーマットに対応するファイルにおけるトラックのサンプルエントリは、パラメータセットを含み、ビットストリーム内の符号化データは、ファイルの別の箇所またはその他のファイルに格納されてもよい。帯域外データがビットストリームに関連付けられるように帯域外転送、シグナリング、格納を行うことを指すために、「ビットストリームに沿った」という表現(例えば、「ビットストリームに沿っている」ことを示す用語)を請求項で使用し、実施形態で記載する場合がある。また、「ビットストリームに沿って復号」等の表現は、ビットストリームに関連した参照された帯域外データ(帯域外転送、シグナリング、または格納により得られうる)を復号することを指す場合がある。
パラメータセットは、スライスや別のアクティブパラメータセットからの参照によってアクティブ化されてもよく、場合によっては、バッファリング期間SEIメッセージのような別のシンタックス構造からの参照によることもある。
SEI−NAL単位は1つ以上のSEIメッセージを含んでもよい。これらは出力ピクチャの復号には必要ないが、ピクチャ出力タイミング、レンダリング、エラー検出、エラー隠蔽、リソース予約等の関連処理を補助してもよい。複数のSEIメッセージがH.264/AVCおよびHEVCで規定され、ユーザデータのSEIメッセージによって組織や企業が独自に使用するSEIメッセージを規定できる。H.264/AVCおよびHEVCは、規定されたSEIメッセージのシンタックスと意味を含むが、受信側でメッセージを取り扱う処理については何も定義されない。その結果、エンコーダはSEIメッセージを作成する際、H.264/AVC規格やHEVC規格に従い、デコーダもそれぞれH.264/AVC規格やHEVC規格に準拠する必要があるが、SEIメッセージを出力順規定に準じて処理する必要はない。H.264/AVCおよびHEVCでSEIメッセージのシンタックスと意味を含める理由の1つは、異なるシステム仕様でも補助情報を同じ様に解釈し相互運用を可能にすることである。システム仕様は符号化側と復号側の両方で特定のSEIメッセージを使用できるように要求するものであり、受信側で特定のSEIメッセージを取り扱う処理も規定されてもよい。
ネスト化SEIメッセージというものも、AVCおよびHEVC規格において規定されており、その他の提案もされている。ネスト化SEIメッセージとは、1つ以上のSEIメッセージが含まれたものであり、ビットストリームのサブセットおよび/または復号データのサブセットと、含まれたSEIメッセージとを対応付ける機構を実現するものである。ネスト化SEIメッセージは、当該ネスト化SEIメッセージそのものではない、1つ以上のSEIメッセージを含む必要のあるものとされうる。ネスト化SEIメッセージ内に含まれたSEIメッセージを、ネスト化されたSEIメッセージと呼んでもよい。ネスト化SEIメッセージ内に含まれないSEIメッセージを、ネスト化されていないSEIメッセージとも称しうる。HEVCのスケーラブルネスト化SEIメッセージは、ネスト化されたSEIメッセージが適用されるビットストリームサブセット(サブビットストリーム抽出処理による)またはレイヤの組の識別を可能とするものである。ビットストリームサブセットは、サブビットストリームと呼んでもよい。
符号化ピクチャは、あるピクチャの符号化された表現である。H.264/AVCにおける符号化ピクチャは、ピクチャの復号に必要なVCL−NAL単位を含む。H.264/AVCでは、符号化ピクチャは、プライマリ符号化ピクチャであっても、冗長符号化ピクチャであってもよい。プライマリ符号化ピクチャは、有効ビットストリームの復号処理に用いられる。一方、冗長符号化ピクチャは、プライマリ符号化ピクチャが正しく復号できない場合にのみ復号されるべき冗長表現である。HEVCでは、冗長符号化ピクチャは規定されていない。
H.264/AVCでは、アクセス単位(Access Unit:AU)が、プライマリ符号化ピクチャとそれに関連付けられるNAL単位を含む。H.264/AVCでは、アクセス単位内でのNAL単位の出現順が次のように制限されている。任意選択のアクセス単位区切りのNAL単位が、アクセス単位の起点を示してもよい。この後に、0以上のSEI−NAL単位が続く。プライマリ符号化ピクチャの符号化スライスが次に現れる。H.264/AVCでは、プライマリ符号化ピクチャの符号化スライスの後に、0以上の冗長符号化ピクチャの符号化スライスが続いてもよい。冗長符号化ピクチャは、ピクチャまたはピクチャの一部の符号化された表現である。冗長符号化ピクチャは、例えば伝送損失や物理記憶媒体でのデータ破損等によってデコーダがプライマリ符号化ピクチャを受け取ることができない場合に復号されてもよい。
H.264/AVCでは、アクセス単位はさらに、補助符号化ピクチャを含みうる。これは、プライマリ符号化ピクチャを補うもので、例えば表示処理で利用されるものである。補助符号化ピクチャは、例えば復号ピクチャ内のサンプルの透明レベルを規定するαチャネルまたはα面として使用されてもよい。αチャネルまたはα面は、積層構造またはレンダリングシステムで使用されてもよい。ここで、出力ピクチャは、少なくとも部分的に透明なピクチャを互いに重ねることで形成されるものである。補助復号ピクチャは、モノクロ冗長符号化ピクチャと同じシンタックスと意味についての制限を有する。H.264/AVCでは、補助符号ピクチャは、プライマリ符号化ピクチャと同じ数のマクロブロック数を含んでもよい。
HEVCでは、符号化ピクチャは、ピクチャのすべての符号化ツリー単位を含むピクチャの符号化された表現として定義されてもよい。HEVCでは、アクセス単位(AU)は、特定の分類ルールに基づき互いに関連付けられ、復号順で連続し、nuh_layer_idが任意の特定の値である最大で1つのピクチャを含む、NAL単位の組と定義されてもよい。アクセス単位は、符号化ピクチャのVCL−NAL単位を含むことに加えて、非VCL−NAL単位を含んでもよい。
ビットストリームは、NAL単位ストリームまたはバイトストリームの形式で、符号化ピクチャおよび1つ以上の符号化ビデオシーケンスを形成する関連するデータの表現を形成する、ビットのシーケンスとして定義されてもよい。同一のファイルや、通信プロトコルの同一の接続のように、同一の論理経路において、第1のビットストリームの後に第2のビットストリームが続いてもよい。(ビデオの符号化において)基本ストリームは、1つ以上のビットストリームのシーケンスと定義されてもよい。第1のビットストリームの終端は特定のNAL単位によって示されてもよく、これはビットストリーム終端(End of Bitstream:EOB)のNAL単位と呼ばれ、該ビットストリームの最後のNAL単位である。HEVCおよび現在検討中のその拡張版では、EOBのNAL単位は0に等しいnuh_layer_idを有する必要がある。
H.264/AVCでは、符号化ビデオシーケンスは、IDRアクセス単位から、次のIDRアクセス単位の手前までとビットストリームの終端との内のより早い方まで、復号順で連続したアクセス単位のシーケンスと定義される。
HEVCでは、符号化ビデオシーケンス(Coded Video Sequence:CVS)が、例えば、復号順で、NoRaslOutputFlagが1に等しいIRAPアクセス単位と、その後のNoRaslOutputFlagが1に等しいIRAPアクセス単位である任意のアクセス単位の手前までの、後続のすべてのアクセス単位を含む、NoRaslOutputFlagが1に等しいIRAPアクセス単位ではない0以上のアクセス単位とからなる、アクセス単位のシーケンスとして定義されてもよい。IRAPアクセス単位は、基本レイヤピクチャがIRAPピクチャであるアクセス単位として定義されてもよい。ビットストリームにおいて復号順で特定のレイヤの最初のピクチャである各IDRピクチャ、各BLAピクチャ、および各IRAPピクチャに対して、NoRaslOutputFlagの値が1に等しいのは、復号順で、同一の値のnuh_layer_idを有するシーケンス終端のNAL単位に続く最初のIRAPピクチャである。マルチレイヤHEVCでは、nuh_layer_idが、LayerInitializedFlag[ nuh_layer_id ]が0に等しく、IdDirectRefLayer[ nuh_layer_id ][ j ]に等しいすべてのrefLayerIdの値に対してLayerInitializedFlag[ refLayerId ]が1に等しくなる(ここで、jは0からNumDirectRefLayers[ nuh_layer_id ]−1までの範囲にある)場合に、各IRAPピクチャに対してNoRaslOutputFlagの値が1に等しくなる。この条件が満たされなければ、NoRaslOutputFlagの値がHandleCraAsBlaFlagに等しくなる。1に等しいNoRaslOutputFlagの影響として、NoRaslOutputFlagが設定されたIRAPピクチャに関連付けられているRASLピクチャがデコーダから出力されないことが挙げられる。デコーダを制御しうるプレーヤまたは受信機等の外部エンティティからデコーダに対してHandleCraAsBlaFlagの値を提供するための手段が設けられてもよい。例えばビットストリームにおける新たな位置を探索し、ブロードキャストを受け、復号を開始し、その後CRAピクチャから復号を開始するプレーヤによって、HandleCraAsBlaFlagは1に設定されてもよい。CRAピクチャに対してHandleCraAsBlaFlagが1に等しい場合、CRAピクチャはBLAピクチャと同様に取り扱われ、復号される。
HEVCでは、上記の仕様に加えて、またはこれに代えて、シーケンス終端(End of Sequence:EOS)のNAL単位とも呼ばれる特定のNAL単位がビットストリームに現れ、そのnuh_layer_idが0に等しい場合、符号化ビデオシーケンスが終了するように規定されてもよい。
HEVCでは、符号化ビデオシーケンスグループ(Coded Video Sequence Group:CVSG)が、例えば、既にアクティブではなかったVPS RBSPの最初のVpsRbspをアクティブ化するIRAPアクセス単位から、ビットストリームの終端と、最初のVpsRbspとは異なるVPS RBSPをアクティブ化するアクセス単位の手前までとの内の復号順でより早い方までの、最初のVpsRbspがアクティブVPS RBSPである復号順で後続のすべてのアクセス単位からなる、復号順で連続する1つ以上のCVSと定義されてもよい。
グループ・オブ・ピクチャ(GOP)とその特徴は以下のように定義される。GOPは、前のピクチャのいずれかが復号されたか否かにかかわらず、復号可能である。オープンGOPは、オープンGOPの開始イントラピクチャから復号が始まる場合、出力順が開始イントラピクチャよりも早いピクチャが正しく復号できない可能性のあるようなピクチャ群である。すなわち、オープンGOPにおけるピクチャは、(インター予測において)前のGOPに属するピクチャを参照しうる。H.264/AVCデコーダは、H.264/AVCビットストリームにおけるリカバリーポイントSEIメッセージから、オープンGOPを開始するイントラピクチャを認識できる。HEVCデコーダは、オープンGOPを開始するイントラピクチャを認識できる。これは、特定のNAL単位種類、CRA NAL単位種類を、その符号化されたスライスに使用可能なためである。クローズドGOPは、クローズドGOPの開始イントラピクチャから復号が始まる場合、すべてのピクチャが正しく復号できるようなピクチャ群である。すなわち、クローズドGOPにおけるピクチャは、前のGOPの内のいずれのピクチャも参照しない。H.264/AVCおよびHEVCにおいて、クローズドGOPはIDRピクチャから開始してもよい。HEVCにおいて、クローズドGOPは、BLA_W_RADLまたはBLA_N_LPピクチャから開始してもよい。オープンGOP符号化構造は、参照ピクチャがより柔軟に選択できるため、クローズドGOP符号化構造よりも圧縮構造が高効率となりうる。
ストラクチャ・オブ・ピクチャ(SOP)は、復号順で連続した少なくとも1つの符号化ピクチャとして定義できる。ここで、復号順で最初の符号化ピクチャが、最下時間サブレイヤの参照ピクチャとなり、復号順で最初の符号化ピクチャはRAPピクチャとなりうるが、それ以外の符号化ピクチャはRAPピクチャとならない。前のSOPのすべてのピクチャは、現SOPのすべてのピクチャよりも復号順で前にあり、次のSOPのすべてのピクチャは、現SOPのすべてのピクチャよりも復号順で後にある。SOPは、階層的かつ反復的なインター予測構造を表しうる。場合によっては、グループ・オブ・ピクチャ(GOP)という用語は、SOPと置き換えてもよく、SOPと同じ意味でありうる。
H.264/AVCおよびHEVCのビットストリームシンタックスは、特定のピクチャが別のピクチャのインター予測のための参照ピクチャであるか否かを示す。符号化の任意の種類(I、P、B)のピクチャは、H.264/AVCおよびHEVCの参照ピクチャまたは非参照ピクチャでありうる。
H.264/AVCは、デコーダのメモリ消費を制御するために、復号参照ピクチャマーキングのための処理を規定する。インター予測に使用される参照ピクチャの最大数(Mとする)は、シーケンスパラメータセットにおいて決定される。参照ピクチャは復号されるとき、「参照に使用」とマーキングされる。参照ピクチャの復号により、Mを越える数のピクチャが「参照に使用」とマーキングされると、少なくとも1つのピクチャが「参照に不使用」とマーキングされる。復号参照ピクチャマーキングのために、適応的メモリ制御と、スライディングウィンドウの2種類の動作が存在する。復号参照ピクチャ用の動作モードは、ピクチャ単位で選択される。適応的メモリ制御は、どのピクチャが「参照に不使用」とマーキングされるかを明示するシグナリングを可能とし、さらに短期参照ピクチャに長期標示を割り当ててもよい。適応的メモリ制御には、メモリ管理制御動作(MMCO)パラメータがビットストリーム内に存在することが求められてもよい。MMCOパラメータは、復号参照ピクチャマーキングシンタックス構造内に含まれてもよい。スライディングウィンドウ動作モードが利用され、M個のピクチャが「参照用に使用」とマーキングされていれば、「参照に使用」とマーキングされた短期参照ピクチャの内、最初に復号された短期参照ピクチャが、「参照に不使用」とマーキングされる。言い換えると、スライディングウィンドウ動作モードの場合、短期参照ピクチャに対してFIFOバッファ動作が実現される。
H.264/AVCにおける1つのメモリ管理制御動作では、現在のピクチャ以外のすべての参照ピクチャが、「参照に不使用」とマーキングされる。即時復号リフレッシュ(IDR)ピクチャは、イントラ復号スライスのみを含むものであって、同様の参照ピクチャの「リセット」が行われる。
HEVCでは、参照ピクチャマーキングシンタックス構造と、関連する復号処理が利用されない。その代わりに、参照ピクチャセット(Reference Picture Set:RPS)のシンタックス構造と復号処理が同様の処理に使用される。あるピクチャに有効またはアクティブな参照ピクチャセットには、そのピクチャに対する参照として使われるすべての参照ピクチャと、復号順で後続の任意のピクチャに対して「参照に使用」とマークされたままであるすべての参照ピクチャとが挙げられる。参照ピクチャセットには6つのサブセットがあり、それぞれRefPicSetStCurr0(またはRefPicSetStCurrBefore)、RefPicSetStCurr1(またはRefPicSetStCurrAfter)、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr、RefPicSetLtFollと呼ばれる。また、RefPicSetStFoll0およびRefPicSetStFoll1は、まとめて1つのサブセットRefPicSetStFollを形成するものとされてもよい。この6つのサブセットの表記法は次のとおりである。「Curr」は現ピクチャの参照ピクチャリストに含まれる参照ピクチャを表し、このため、現ピクチャに対するインター予測参照として使用されてもよい。「Foll」は現ピクチャの参照ピクチャリストに含まれない参照ピクチャを表すが、復号順で後続のピクチャでは参照ピクチャとして使用されてもよい。「St」は短期参照ピクチャを表し、通常、POC値の特定数の最下位ビットで識別されてもよい。「Lt」は長期参照ピクチャを表し、特定の方法で識別され、通常、現ピクチャに対するPOC値の差分は、前述した特定数の最下位ビットによって表されるものよりも大きい。「0」は現ピクチャのPOC値よりも小さいPOC値を持つ参照ピクチャを表す。「1」は現ピクチャのPOC値よりも大きいPOC値を持つ参照ピクチャを表す。RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1はまとめて、参照ピクチャセットの短期サブセットと呼ばれる。RefPicSetLtCurrおよびRefPicSetLtFollはまとめて、参照ピクチャセットの長期サブセットと呼ばれる。
HEVCでは、参照ピクチャセットは、シーケンスパラメータセットで特定され、参照ピクチャセットへのインデックスを介してスライスヘッダ用に取り込まれてもよい。参照ピクチャセットはスライスヘッダで特定されてもよい。参照ピクチャセットは独立に符号化されてもよく、別の参照ピクチャセットから予測されてもよい(インターRPS予測と呼ばれる)。参照ピクチャセット符号化の両方の種類で、各参照ピクチャに対してフラグ(used_by_curr_pic_X_flag)が追加で送信される。このフラグは、その参照ピクチャが参照として現ピクチャに用いられる(*Currリストに含まれる)か否か(*Follリストに含まれる)を示す。現スライスが使う参照ピクチャセットに含まれるピクチャは「参照に使用」とマークされ、現スライスが使う参照ピクチャセットに含まれないピクチャは「参照に不使用」とマークされる。現ピクチャがIDRピクチャである場合、RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr、およびRefPicSetLtFollはすべて空に設定される。
スケーラブルビデオ符号化とは、コンテンツに関して、ビットレート、解像度、またはフレームレートが異なる複数の表現を1つのビットストリームが包含できるような符号化構造を指してもよい。このような場合、受信機は、その特性(例えば、ディスプレイ装置に最適な解像度)に応じて望ましい表現を抽出することができる。あるいは、サーバまたはネットワーク要素が、例えばネットワーク特性や受信機の処理能力に応じて受信機に送信されるように、ビットストリームの一部を抽出することもできる。スケーラブルビットストリームは、利用可能な最低品質動画を提供する1層の「基本レイヤ」と、下位レイヤと共に受信、復号されるとビデオ品質を高める1層以上の「拡張レイヤ」から構成されてもよい。拡張レイヤに対する符号化効率を高めるために、レイヤの符号化された表現は、下位レイヤに依存してもよい。例えば、拡張レイヤの動き情報およびモード情報が下位レイヤから予測されてもよい。同様に、拡張レイヤ予測を作成するために、下位レイヤの画素データを用いてもよい。
品質スケーラビリティ(信号雑音比、SNRとしても知られる)および/または空間スケーラビリティに対するスケーラブルビデオコーデックは以下のように実現できる。基本レイヤに対しては、従来の非スケーラブルビデオエンコーダおよびデコーダが利用される。拡張レイヤの参照ピクチャバッファに、基本レイヤの再構築/復号ピクチャが含まれる。H.264/AVC、HEVC、およびインター予測に参照ピクチャリスト(複数可)を利用する同様のコーデックでは、基本レイヤ復号ピクチャが、参照ピクチャリスト(複数可)に挿入されうる。これにより、拡張レイヤの復号参照ピクチャと同様にして、拡張レイヤピクチャが符号化/復号される。したがって、エンコーダはインター予測参照として基本レイヤ参照ピクチャを選択し、その使用を符号化ビットストリーム内の参照ピクチャインデックスにより示してもよい。デコーダは、ビットストリームから(例えば参照ピクチャインデックスから)、拡張レイヤのインター予測参照に、基本レイヤピクチャが利用されることを復号する。拡張レイヤの予測参照に使用される復号基本レイヤピクチャは、インターレイヤ参照ピクチャと呼ばれる。
品質スケーラビリティに加えて、他のスケーラビリティモードまたはスケーラビリティの次元として以下が含まれうるが、これらに限定されない。
・ 品質スケーラビリティ:基本レイヤピクチャは、拡張レイヤピクチャよりも低い品質で符号化され、これは例えば基本レイヤにおいて、拡張レイヤにおけるものより大きな量子化パラメータ値(すなわち変換係数量子化に対してより大きなサイズの量子化ステップ)によって実現可能である。品質スケーラビリティはさらに、後述のように細粒子スケーラビリティ(FGS)、中粒子スケーラビリティ(MGS)、および/または粗粒子スケーラビリティ(CGS)に分類できる。
・ 空間スケーラビリティ:基本レイヤピクチャは、拡張レイヤピクチャよりも低い解像度(すなわち、より少ないサンプル)で符号化される。空間スケーラビリティおよび品質スケーラビリティは、特にその粗粒子スケーラビリティ種類について、同種のスケーラビリティとみなされる場合がある。
・ ビット深度スケーラビリティ:基本レイヤピクチャは、拡張レイヤピクチャ(例えば10または12ビット)よりも低いビット深度(例えば8ビット)で符号化される。
・ クロマフォーマットスケーラビリティ:基本レイヤピクチャは、拡張レイヤピクチャ(例えば4:4:4フォーマット)よりも、クロマサンプル配列(例えば4:2:0クロマフォーマットで符号化される)においてより低い空間解像度となる。
・色域スケーラビリティ:拡張レイヤピクチャは、基本レイヤピクチャよりも豊富な、または幅広い色表現範囲を有する。例えば、拡張レイヤは超高精細テレビ(UHDTV、ITU−R BT.2020規格)の色域を有し、一方、基本レイヤはITU−R BT.709規格の色域を有してもよい。
・ ビュースケーラビリティは、マルチビュー符号化とも呼ばれる。基本レイヤは第1のビューを表し、拡張レイヤは第2のビューを表す。
・ 深度スケーラビリティは、深度が拡張された符号化とも呼ばれる。ビットストリームの複数のレイヤの内、1層または一部のレイヤはテクスチャビューを表し、他のレイヤは深度ビューを表してもよい。
・ 関心領域スケーラビリティ(後述)。
・インターレース化−進行性スケーラビリティ(フィールド−フレームスケーラビリティとしても知られる):基本レイヤの符号化されたインターレース化ソースコンテンツ材料は、拡張レイヤによって拡張され、進行性ソースコンテンツを表す。基本レイヤにおける符号化インターレース化シースコンテンツは、符号化フィールド、フィールド対を示す符号化フレーム、またはそれらの組合せを含んでもよい。インターレース化−進行性スケーラビリティでは、基本レイヤピクチャをリサンプリングして、1つ以上の拡張レイヤピクチャの適切な参照ピクチャにしてもよい。
・ ハイブリッドコーデックスケーラビリティ(符号化規格スケーラビリティとしても知られる):ハイブリッドコーデックスケーラビリティでは、ビットストリームシンタックスや意味、ならびに基本レイヤおよび拡張レイヤの復号処理が、異なるビデオ符号化規格で規定されている。このため、基本レイヤピクチャは拡張レイヤピクチャとは異なる符号化規格またはフォーマットで符号化される。例えば、基本レイヤはH.264/AVCで符号化され、拡張レイヤはHEVCマルチレイヤ拡張で符号化されてもよい。より一般的には、ハイブリッドコーデックスケーラビリティにおいては、1層以上のレイヤが1つの符号化規格または仕様に応じて符号化され、1層以上のその他レイヤが別の符号化規格または仕様に応じて符号化されてもよい。例えば、H.264/AVCのMVC拡張に応じて2つのレイヤが符号化され(その内の1つはH.264/AVCに応じて符号化された基本レイヤとなる)、1つ以上のさらなるレイヤがMV−HEVCに応じて符号化されてもよい。さらに、ハイブリッドコーデックスケーラビリティにおいて、同じビットストリームの異なるレイヤが符号化される符号化規格または仕様の数は、2つに限られなくてもよい。
スケーラビリティ種類の内の多くが組み合わされて、まとめて適用されうることも理解されよう。例えば、色域スケーラビリティとビット深度スケーラビリティを組み合わせてもよい。
上述のスケーラビリティの場合、基本レイヤ情報を使用して拡張レイヤを符号化することにより、追加的ビットレートオーバーヘッドを最小限にとどめてもよい。
スケーラビリティは、2つの方法で利用可能となる。その1つは、スケーラブル表現の下位レイヤからの画素値またはシンタックスを予測するために新たな符号化モードを導入することであり、もう1つは、より高位のレイヤの参照ピクチャバッファ(復号ピクチャバッファ、DPB)に下位レイヤピクチャを配置することである。1つ目の方法は、より柔軟性が高く、したがって多くの場合、符号化効率に優れる。ただし、参照フレームに基づくスケーラビリティという2つ目の方法は、可能な符号化効率上昇をほぼ完全に維持したまま、単一のレイヤコーデックに対する変化を最小に抑えて効率的に実行できる。基本的に、参照フレームに基づくスケーラビリティコーデックは、すべてのレイヤに対して同一のハードウェアまたはソフトウェアを実行して実現でき、DPB管理は外部手段に任せてもよい。
並列処理を利用するため、画像を個別に符号化/復号可能な画像セグメント(スライスまたはタイル)に分割してもよい。スライスは、初期設定の符号化順または復号順で処理される、所与の数の基本符号化単位で構成される画像セグメントを指すものであってもよい。一方、タイルは少なくともある程度個別フレームとして処理される、矩形画像領域として定義される画像セグメントを指すものであってもよい。
図7のブロック図、図8aから8c、図9のフローチャートを参照に、以下にある実施形態に係る方法をより詳細に説明する。図7は、ある実施形態に係る動きベクトル判定要素700を示す概略ブロック図である。動きベクトル判定要素700の機能は、インター予測部306、406(図4)に含まれてもよいし、エンコーダ500の別要素であってもよい。現在符号化900されるべき符号化単位を、現在の符号化単位と呼んでもよい。基本動きベクトル選択部702は、現在の符号化単位820に対して、並進基本動きベクトルb0を選択902してもよい。1つ以上の既に符号化した符号化単位の動きベクトルから並進基本動きベクトルb0が選択されてもよい。言い換えると、基本動きベクトル選択部702は、並進基本動きベクトルb0が選択されうる候補位置組の情報に対してアクセス可能であってもよい。選択された並進基本動きベクトルは、ソース動きベクトルと呼んでもよい。予測用のソース動きベクトルの位置がビットストリーム内で示され、基本動きベクトル選択部702により候補位置組から選択されてもよい。一例として、候補位置組は、現在の符号化単位(または予測単位)の真上や、符号化単位の左の位置を含みうる。
候補位置組の情報、さらにおそらくは対応する動きベクトルも、1つ以上のその他の符号化単位を先に符号化した際に、メモリ内に格納されていてもよい。
動きフィールド生成ブロック704は、例えば以下のように、現在の符号化単位を網羅する平滑に連続した動きベクトルフィールド830を生成してもよい。少なくとも第1の並進基本動きベクトル成分bx、byに対する予測を定義904するため、動きフィールド生成ブロック704は成分bx、byを有する選択された基本動きベクトルb0を利用してもよい。動きフィールド生成ブロック704はさらに、第1の精度を用いて、第1の並進動きベクトル成分bx、byに対する改良rbx、rbyをさらに定義906してもよい。動きフィールド生成ブロック704はさらに、現在の符号化単位(例えば、サンプルブロック)の1つ以上のその他の画素(サンプル)に対して、動きベクトル予測を実行してもよい。ある実施形態によれば、動きフィールド生成ブロック704は、現在の符号化単位の各画素に対して動きベクトル予測を実行して、各画素に対して動きベクトル予測を取得する。選択された基本動きベクトルb0に対する動きベクトル予測と、1つ以上のその他画素に対する動きベクトル予測とが定義されると、動きフィールド生成ブロック704はさらに、これら動きベクトルに基づいて少なくとも1つの高次動きベクトル成分a0、a1に対する予測をさらに定義908してもよい。動きフィールド生成ブロック704はさらに、第1の精度とは異なる第2の精度を用いて、高次動きベクトル成分(複数可)a0、a1に対する改良ra0、ra1を定義910してもよい。動きフィールド生成ブロック704は、第1の並進基本動きベクトル成分bx、by、第1の並進動きベクトル成分bx、byに対する改良rbx、rby、少なくとも1つの高次動きベクトル成分a0、a1の予測ra0、ra1、高次動きベクトル成分a0、a1の改良ra0、ra1を使用912して、第1の動きベクトルを計算してもよい。ただし、第1の動きベクトルの計算に、第1の並進動きベクトル成分bx、byに対する改良rbx、rby、および/または高次動きベクトル成分a0、a1に対する改良ra0、ra1を必ずしも定義、使用しなくてもよい。
例えば、上述のように定義されたデータを適用して、現在の符号化単位内のサンプル、またはサンプルブロック位置の関数としての、動きベクトルフィールド(セット)を生成することにより、滑らかに連続する動きベクトルフィールドを生成してもよい。一例として、基本並進動きベクトル成分(bx,by)は、スケーリングされた改良(rbx,rby)を、乗数sbを使用して予測された動きベクトル成分(pbx,pby)に加えることで計算されてもよい。
bx=pbx+sb×rbx
by=pby+sb×rby (2)
ただし、基本動きベクトルおよび改良情報の所望の精度が同じ場合(例えば、両方の基本ベクトルと予測ベクトルが4分の1サンプル正確性で評価され、改良情報も4分の1サンプル正確性でシグナリングされる場合)、スケーリングパラメータsbを1に設定して、スケーリング動作は省略可能である。
高次動き係数(a0,a1)は、その各予測値(pa0,pa1)から予測されてもよい。この場合、動き係数a0およびa1は、高次精度乗数saと、シグナリングされた改良値(ra0,ra1)に基づいて以下のように計算されてもよい。
a0=pa0+sa×ra0
a1=pa1+sa×ra1 (3)
高次動き係数の精度が改良の精度に等しい場合にも、スケーリング動作は省略可能である。
ある実施形態によると、並進動きに加え、回転やズームに対応可能な、制約付きアフィンモデルが使用されてもよい。この場合、所与のサンプルまたはサンプル群の動きベクトルは以下のように計算されうる。
vx=bx+a0(x−x0)+a1(y−y0)
vy=by−a1(x−x0)+a0(y−y0) (4)
式中、(vx,vy)は、位置(x0,y0)において基本動きベクトル(bx,by)が与えられる位置(x,y)で得られる動きベクトルであり、2つの動きパラメータa0およびa1は、サンプルの位置の関数としての動きベクトルフィールド適合を定義する。
図8aおよび8bに、符号化単位の動きベクトルフィールドを定義する基本動きベクトルの可能な選択肢をいくつか示す。図8aの場合、左上822および右上824のサブブロック(またはサンプル)の動きベクトル(b0)および(b1)が計算される。さらに、これら動きベクトル間の水平差分を使用し、動きベクトルフィールド830の水平方向の適合(上述の式のパラメータa0に関する)を示すステップ値dxが得られる。図8bは、現在の符号化単位外の基本動きベクトルの場合を示す。この例では、左上822および右上824のサブブロック(またはサンプル)の動きベクトル(b0)および(b1)が、左上サブブロック822の左上の既に符号化されたブロック826と、右上サブブロック824の上部に既に符号化されたブロック828とを使用して計算される。これら動きベクトル間の水平差分を使用し、動きベクトルフィールド830の水平方向の適合(上述の式のパラメータa0に関する)を示すステップ値dxが得られる。このような手法は、図8aの場合と比較して、2つの利点がありうる。第1に、画素内のブロックの幅が2のべき乗であれば、基本ベクトルb0に関連付けられたサブブロックと、基本ベクトルb1に関連付けられたサブブロックとの間の水平差分も2のべき乗となり、差分dxがビット単位のシフト動作で計算できる。第2に、基本動きベクトルb0および/またはb1を、前のブロックの、符号化/復号された実際の動きベクトルとすることができるので、符号化単位(または予測単位)の境界における連続的に変化する動きベクトルフィールドの実現のために改良される必要がなくなる。
動きベクトルフィールドが定義されると、サンプルまたはサンプル群の動きベクトルを使用し、例えば動き予測ブロック706により動き補償予測を実行914してもよい。言い換えると、サンプルごとに動きベクトルが定義される場合、現在の符号化単位の1つのサンプルが予測に選択され、この符号化単位で定義された動きベクトルが予測に使用される。次に、例えば現在のサンプルの次のサンプルが選択され、動きベクトルフィールドでこのサンプルについて定義された動きベクトルが動き予測に使用される。この手順は、現在の符号化単位におけるすべてのサンプルに対して動き予測が実行されるまで繰り返されてもよい。
ブロックごとに動きベクトルが定義される場合、同じ動きベクトルを、現在のブロックの各サンプルに使用して動き予測を実行してもよい。この手順は、現在の符号化単位におけるすべてのブロックの動き予測が実行されるまで繰り返されてもよい。次に、別の符号化単位が存在すれば、それを現在の符号化単位として選択し、この符号化単位に動き予測が利用される場合には、上述の手順を繰り返してもよい。
ある実施形態によると、並進基本動きベクトル(bx,by)は別の符号化単位の既に復号された動きベクトルに基づいて定義されてもよい。予測用のこのソース動きベクトルの位置は、ビットストリーム内で示され、候補位置組からエンコーダにより選択されてもよい。高次動きベクトル成分(複数可)は、異なる方法で残りの動きパラメータ(a0,a1)をシグナリングすることで示すこともできる。これらは、符号化単位内または外の所与の位置に対する追加動きベクトルとして示されてもよいし、個別動き係数として示されてもよい。
動きパラメータまたは動きパラメータの改良は、異なる方法でシグナリングされてもよい。例えば、異なる複数の位置の動きベクトルを計算し、これら動きベクトルからパラメータを取得することができる。
別の実施例として、bx、byおよびa0からa3の6つのパラメータによる完全アフィンモデルを使用してもよい。
vx=bx+a0(x−x0)+a1(y−y0)
vy=by+a2(x−x0)+a3(y−y0) (5)
より一般的には、空間依存性を持つ任意の動きモデルを適用してもよい。例えば、N+M高次基本関数の線形モデルである。
vx=bx+a1f1(x,y)+a2f2(x,y)+…+aNfN(x,y)
vy=by+b1g1(x,y)+b2g2(x,y)+…+bMgM(x,y) (6)
一実施形態において、符号化単位の角の動きベクトルを使用して、動きベクトルフィールドがシグナリングされてもよい。この場合、符号化単位の左上動きベクトルを計算するために使用するデルタ動きベクトルは、第1の精度で符号化される(例えば、1/4サンプル正確性)。符号化単位の別のサンプル(例えば右上動きベクトル)を計算するために使用するデルタ動きベクトルは、第2の精度で符号化される(例えば、1/16サンプル正確性)。
一実施形態において、符号化単位の動きベクトルフィールドに対する基本動きベクトルは、現在の符号化単位の外側で、その符号化単位の左上に対して左上方向で最も近い4×4サンプルブロックに対する動きベクトルと定義される。
一実施形態では、符号化単位に対する基本動きベクトルは、現在の符号化単位の基本動きベクトルの予測のソースに使用した位置からの高次動きベクトル成分を加えることで調整される。
一実施形態では、動きベクトル予測の参照ピクチャ(複数可)は、現在の符号化単位の基本動きベクトルの予測のソースに使用した位置に使用した参照ピクチャ(複数可)に基づいて選択される。
一実施形態では、高次動き係数の改良の精度は、選択された動きパラメータが適用される符号化単位のサイズに応じたものとなる。
一実施形態では、並進基本動きベクトルの改良についてはシグナリングを行わないが、隣接する符号化単位または予測単位の既に復号された動きベクトルが、現在の単位についての基本動きベクトルとして使用されてもよい。
一実施形態では、基本動きベクトル改良および高次動き係数改良のいずれか、または両方のスケーリング因数を、パラメータセットまたはピクチャ/スライス/タイルヘッダ、あるいはビットストリーム内の別の場所でシグナリングしてもよい。
一実施形態では、基本動きベクトルおよび高次動き係数のいずれか、または両方のスケーリング因数を、パラメータセットまたはピクチャ/スライス/タイルヘッダ、あるいはビットストリーム内の別の場所でシグナリングしてもよい。
図8aでは、符号化単位内の基本動きベクトルb0およびb1が示されている。動きベクトル間の水平差分は、基本動きベクトルの水平成分間の差分として計算され、基本動きベクトルの距離で割ってもよい。
図8bでは、符号化単位外の基本動きベクトルb0およびb1が示されている。動きベクトル間の水平差分は、基本動きベクトルの水平成分間の差分として計算され、基本動きベクトルの距離で割ってもよい。ここで、基本動きベクトルは以前のブロックの動き補償に使用された実際の動きベクトルとなりうる。
図8cは、第1次パラメータa0が正の値のアフィンモデルの使用を示す。図8cに示すように、このパラメータは、符号化単位を水平方向に進む際の水平動きベクトル成分の変化量に影響しうる。
図8a、8b、8cは、動きベクトルを水平に適用した場合のみを示すが、同様の手法を垂直方向に利用してもよい。
以下に、いくつかの実施例について短く触れる。エンコーダおよびデコーダ側の両方における処理ステップは、異なる順序で実行されてもよく、または交互に実施されてもよい。さらに、異なるステップを互いに平行に実行してもよい。
最終的な動きベクトルおよび動きベクトル成分を示すのに、異なる精度を用いてもよい。例えば、1/4サンプル正確性を動きベクトル成分に利用し、1/16サンプル正確性を符号化単位における別の位置の最終的な動きベクトルの評価に利用してもよい。
動きベクトルは、符号化単位の各画素またはサンプル組に対して評価されてもよい。例えば、動きベクトルは各4×4サンプル組に対して計算できる。
動きベクトルフィールドは様々な方法で提示されてもよい。例えば、画素座標の多項式関数で表されてもよいし、符号化単位の角の動きベクトルで表されてもよいし、符号化単位内、外、または境界上の他のいくつかの位置の動きベクトルで表されてもよい。
異なる複数のパラメータがビットストリーム内でシグナリングされてもよいし、ビットストリーム外で定義されてもよい。例えば、並進基本動きベクトルの改良をビットストリーム内でシグナリングすることができ、その他の手法で所与の値(例えば0)に設定することができる。
方法は、単一の参照を使用した一方向予測、2つの参照による双方向予測、動き補償予測に対する3つ以上の参照ブロックによる多仮定予測を利用してもよい。
デコーダにおいて、同様の処理を行って、ブロックのサンプルを再構築してもよい。ただし、デコーダは並進基本動きベクトルの選択、パラメータの計算を行わなくてもよい。これは、デコーダは当該情報をエンコーダからのビットストリーム内で受信可能なためである。デコーダは、動き予測に関する現在の符号化単位およびパラメータについての情報を受信1000し、受信した情報を調べる1002ことにより、エンコーダが符号化で使用した並進基本動きベクトルb0の情報を確認できる。デコーダはさらに、第1の並進動きベクトル成分bx、byの改良rbx、rbyと、高次動きベクトル成分a0、a1と、高次動きベクトル成分a0、a1の改良ra0、ra1のいずれの種類がエンコーダによって定義されているかを調べる1004ことができる。デコーダはさらに受信した情報を利用して、エンコーダが符号化で使用した第1の精度および第2の精度の値を確認できる。デコーダはこの情報を利用して、第1の基本動きベクトルを計算1006してもよい。同様に、デコーダは現在の符号化単位の動きベクトルフィールドを定義するために、別の動きベクトルを計算1008してもよい。一実施形態によると、動きベクトルフィールドは現在の符号化単位の各サンプルの動きベクトルを含む。さらにデコーダは、動きベクトルフィールドを利用して動き予測を実行1010し、現在の符号化単位のサンプルを再構築してもよい。
図4は、ある実施形態に係るビデオエンコーダのブロック図である。図4は、2レイヤ用エンコーダを示す。ただし、図示のエンコーダは、3レイヤ以上を符号化するように拡張されてもよいし、単一のレイヤであってもよいことが理解されよう。図4は、基本レイヤ用の第1のエンコーダ部500と、拡張レイヤ用の第2のエンコーダ部502とを備えるビデオエンコーダの実施形態を示す。第1のエンコーダ部500と第2のエンコーダ部502とはそれぞれ、入力されるピクチャを符号化するために同様に要素を備えてもよい。エンコーダ部500、502は、画素予測部302、402と、予測誤差エンコーダ303、403と、予測誤差デコーダ304、404とを備えてもよい。図4はさらに、インター予測部306、406と、イントラ予測部308、408と、モード選択部310、410と、フィルタ316、416と、参照フレームメモリ318、418とを備える画素予測部302、402の実施形態を示す。第1のエンコーダ部500の画素予測部302は、インター予測部306(画像と、動き補償参照フレーム318との差分を判定)と、イントラ予測部308(現フレームまたはピクチャの、処理済み部分のみに基づいて、画像ブロックに対する予測を判定)とで、符号化されるビデオストリームの基本レイヤ画像300を受信する。インター予測部とイントラ予測部との両方の出力は、モード選択部310に送られる。イントラ予測部308は、複数のイントラ予測モードを有してもよい。したがって、各モードでイントラ予測を実施し、予測信号がモード選択部310に提供されてもよい。モード選択部310はまた、基本レイヤピクチャ300のコピーも受信する。同様に、第2のエンコーダ部502の画素予測部402は、インター予測部406(画像と、動き補償参照フレーム418との差分を判定)と、イントラ予測部408(現フレームまたはピクチャの、処理済み部分のみに基づいて、画像ブロックに対する予測を判定)とで、符号化されるビデオストリームの拡張レイヤ画像400を受信する。インター予測部とイントラ予測部との両方の出力は、モード選択部410に送られる。イントラ予測部408は、複数のイントラ予測モードを有してもよい。したがって、各モードでイントラ予測を実施し、予測信号がモード選択部410に提供されてもよい。モード選択部410はまた、拡張レイヤピクチャ400のコピーも受信する。
現符号化単位の符号化にどの符号化モードが選択されたかに応じて、インター予測部306、406の出力、または任意のイントラ予測部モードの一つからの出力、またはモード選択部内のサーフェスエンコーダの出力が、モード選択部310、410の出力に送られる。モード選択部の出力は、第1の加算器321、421に送られる。第1の加算器は、基本レイヤピクチャ300/拡張レイヤピクチャ400から画素予測部302、402の出力を差し引いて、予測誤差エンコーダ303、403に入力される第1の予測誤差信号320、420を生成してもよい。
画素予測部302、402は、予備再構成部339、439から、画像ブロック312、412の予測表示と、予測誤差デコーダ304、404の出力338、438との組合せをさらに受信する。予備再構成画像314、414は、イントラ予測部308、408と、フィルタ316、416とに送られてもよい。この予備表現を受信したフィルタ316、416は、該予備表現をフィルタリングして、最終再構成画像340、440を出力してもよい。この出力は参照フレームメモリ318、418に保存されてもよい。参照フレームメモリ318は、インター予測部306に接続され、インター予測動作において、以降の基本レイヤピクチャ300と比較される参照画像として使用されてもよい。いくつかの実施形態に係る拡張レイヤのインターレイヤサンプル予測および/またはインターレイヤ動き情報予測のソースとして選択され、示された基本レイヤに応じて、参照フレームメモリ318はさらにインター予測部406に接続され、インター予測動作において、以降の拡張レイヤピクチャ400と比較される参照画像として使用されてもよい。さらに、参照フレームメモリ418はインター予測部406に接続され、インター予測動作において、以降の拡張レイヤピクチャ400と比較される参照画像として使用されてもよい。
第1のエンコーダ部500のフィルタ316からのフィルタリングパラメータは、いくつかの実施形態において、拡張レイヤのフィルタリングパラメータを予測するためのソースとして選択され、示された基本レイヤに対応する第2のエンコーダ部502に提供されてもよい。
予測誤差エンコーダ303、403は、変換部342、442と、量子化部344、444とを備える。変換部342、442は、第1の予測誤差信号320、420を変換領域に変換する。変換とは、例えばDCTである。量子化部344、444は、例えばDCT係数のような変換領域信号を量子化し、量子化係数を形成する。
予測誤差デコーダ304、404は予測誤差エンコーダ303、403からの出力を受信し、予測誤差エンコーダ303、403と逆の処理を行って、復号予測誤差信号338、438を生成する。復号予測誤差信号338、438は、第2の加算器339、439において画像ブロック312、412の予測表示と組み合わされて、予備再構成画像314、414が生成される。予測誤差デコーダは、例えばDCT係数のような量子化係数値を逆量子化して、変換信号を再構成する逆量子化部361、461と、再構成変換信号に対して逆変換を実行する逆変換部363、463とを備えると考えられる。逆変換部363、463の出力は再構成ブロック(複数可)を含む。予測誤差デコーダは、さらなる復号情報とフィルタパラメータとに応じて再構成ブロック(複数可)をフィルタリングするブロックフィルタを備えてもよい。
エントロピーエンコーダ330、430は、予測誤差エンコーダ303、403の出力を受信し、適切なエントロピー符号化/可変長符号化を信号に実行して誤差検出および修正能力を実現してもよい。エントロピーエンコーダ330、430の出力は、マルチプレクサ508によりビットストリームに挿入されてもよい。
図5は、ある実施形態に係るビデオデコーダのブロック図を示す。図5は、2レイヤデコーダの構造を示すが、単一レイヤデコーダにもその復号動作が同様に適用できることが理解されよう。
ビデオデコーダ550は、ベースビュー成分用の第1のデコーダ部552と、非ベースビュー成分用の第2のデコーダ部554とを備える。ブロック556は、ベースビュー成分の情報を第1のデコーダ部552に提供し、非ベースビュー成分の情報を第2のデコーダ部554に提供するデマルチプレクサを示す。参照符号P'nは、画像ブロックの予測表示を示す。参照符号D'nは再構成予測誤差信号を示す。ブロック704、804は予備再構成画像(I'n)を示す。参照符号R'nは最終再構成画像を示す。ブロック703、803は逆変換(T−1)を示す。ブロック702、802は逆量子化(Q−1)を示す。ブロック701、801は、エントロピー復号(E−1)を示す。ブロック706、806は参照フレームメモリ(RFM)を示す。ブロック707、807は予測(P)(インター予測、イントラ予測のいずれか)を示す。ブロック708、808はフィルタリング(F)を示す。ブロック709、809は、復号予測誤差情報を予測ベースビュー/非ベースビュー成分に組み合わせて、予備再構成画像705、805(I'n)を取得するために使用されてもよい。第1のデコーダ部552は、予備再構成され、フィルタリングされたベースビュー画像を出力710し、第1のデコーダ部554は、予備再構成され、フィルタリングされたベースビュー画像を出力810してもよい。
H.265/HEVCスクリーンコンテンツのテストモデルは、直接的なイントラブロックコピー手法を示す。イントラブロックコピー方法では、予測領域に対して、同じ画像の所与の領域をコピーすることにより、サンプルブロックの予測が生成される。コピー動作のソース領域の位置はブロックベクトルによって示されてもよく、このブロックベクトルに対しては、以前に符号化されたいくつかのブロックのブロックベクトルにより形成されたブロックベクトル候補群から選択された予測ブロックベクトルとは異なる符号化が施されてもよい。
図11は、各種実施形態が実現可能な例示的マルチメディア通信システムを示す図である。データソース1110は、ソース信号を提供する。当該信号は、アナログフォーマット、非圧縮デジタルフォーマット、圧縮デジタルフォーマット、あるいはこれらの組合せであってもよい。エンコーダ1120は、データフォーマット変換やソース信号フィルタリングのような前処理を含んでもよく、または当該処理に接続されていてもよい。エンコーダ1120は、ソース信号を符号化して符号化メディアビットストリームを得る。復号されるビットストリームは、実質的にあらゆる種類のネットワークに存在しうるリモート装置から直接的または間接的に受信されてもよい。ビットストリームは、ローカルハードウェアまたはソフトウェアから受信されてもよい。エンコーダ1120は、1種類以上の媒体(音声、動画等)を符号化可能であってもよい。あるいは、2つ以上のエンコーダ1120に、異なる種類の媒体のソース信号を符号化することが求められてもよい。エンコーダ1120はさらに、グラフィックやテキスト等、合成して生成された入力を取得してもよく、あるいは合成媒体の符号化ビットストリームを生成可能であってもよい。以下では、簡潔に説明するため、1種類のみの媒体の1つの符号化メディアビットストリームに対する処理を検討する。ただし、通常ではリアルタイムブロードキャストサービスは複数のストリームを含む(通常、少なくとも1つの音声、動画、テキスト字幕付きストリーム)。さらに、システムが多数のエンコーダを備えてもよいが、普遍性を損なわない範囲で簡潔に説明するために、1つのエンコーダ1120のみが図示されていることが理解されよう。また本明細書での記載や例示は符号化処理を具体的に表しているが、同じ概念、原理を対応する復号処理に適用したり、その逆の運用をしたりすることがあってもよいことが当業者には理解されよう。
符号化メディアビットストリームは、ストレージ1130に送信されてもよい。ストレージ1130は、符号化メディアビットストリームを格納する任意の種類の大型記憶装置を備えてもよい。ストレージ1130における符号化メディアビットストリームのフォーマットは、基本自立型ビットストリームフォーマット(elementary self-contained bitstream format)であってもよく、1つ以上の符号化メディアビットストリームが1つのコンテナファイルにカプセル化されてもよい。1つ以上のメディアビットストリームが1つのコンテナファイルにカプセル化される場合、ファイル生成器(図示せず)を使用して1つ以上のメディアビットストリームをファイルに格納し、ファイルフォーマットメタデータを生成してもよい。このデータもファイルに格納してもよい。エンコーダ1120またはストレージ1130がファイル生成器を備えてもよく、あるいはファイル生成器がエンコーダ1120またはストレージ1130に対して動作可能に取り付けられてもよい。システムによっては「ライブ」で動作するものもある。すなわち、ストレージを省き、エンコーダ1120からの符号化メディアビットストリームが、送信機1140に直接送られる。符号化メディアビットストリームはその後、必要に応じて、サーバとも呼ばれる送信機1140に送られてもよい。伝送に利用されるフォーマットは、基本自立型ビットストリームフォーマット、パケットストリームフォーマット、または1つ以上の符号化メディアビットストリームをコンテナファイルにカプセル化したものであってもよい。エンコーダ1120、ストレージ1130、サーバ1140は、同一の物理的デバイスに設けられても、別々のデバイスに設けられてもよい。エンコーダ1120およびサーバ1140は、ライブのリアルタイムコンテンツを扱ってもよい。その場合、符号化メディアビットストリームは通常、永久に格納されることはなく、コンテンツエンコーダ1120および/またはサーバ1140に短期間保存され、処理遅延、送信遅延、符号化媒体ビットレートの平滑化が図られる。
サーバ1140は、通信プロトコルスタックを用いて符号化メディアビットストリームを送信してもよい。このスタックにはリアルタイムトランスポートプロトコル(RTP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキストトランスファープロトコル(HTTP)、トランスミッションコントロールプロトコル(TCP)、およびインターネットプロトコル(IP)の1つまたは複数を含んでもよいが、これらに限定されるものではない。通信プロトコルスタックがパケット指向の場合、サーバ1140は、符号化メディアビットストリームをパケットにカプセル化する。例えば、RTPが用いられる場合、サーバ1140は、RTPペイロードフォーマットに従って符号化メディアビットストリームをRTPパケットへとカプセル化する。各媒体の種類は、通常、専用のRTPペイロードフォーマットを有する。システムには2つ以上のサーバ1140が含まれうるが、簡潔に説明するために、以下では1つのサーバ1140のみを示す。
ストレージ1130または送信機1140へのデータ入力のためにメディアコンテンツがコンテナファイルにカプセル化される場合、送信機1140は、「送信ファイルパーサ」(図示せず)を備えてもよく、または動作可能であるように当該装置に取り付けられてもよい。特に、コンテナファイルがそのように伝送されず、含められた符号化メディアビットストリームの少なくとも1つが通信プロトコルを介して伝送用にカプセル化される場合、送信ファイルパーサは、符号化メディアビットストリームの通信プロトコルを介して運ばれるのに適した部分を配置する。送信ファイルパーサは、パケットヘッダやペイロード等、通信プロトコル用の正しいフォーマットの作成を支援してもよい。マルチメディアコンテナファイルには、通信プロトコルで含められたメディアビットストリームの少なくとも1つをカプセル化するために、ISOベースメディアファイルフォーマットのヒントトラックのようなカプセル化指示が含まれてもよい。
サーバ1140は、通信ネットワークを通じてゲートウェイ1150に接続されてもよく、そうでなくてもよい。これに加えて、またはこれに代えて、ゲートウェイはミドルボックスと呼ばれてもよい。システムは一般的に任意の数のゲートウェイや同様の装置を備えてもよいが、簡潔に説明するために、以下では1つのゲートウェイ1150のみを示す。ゲートウェイ1150は、様々な種類の機能を実行してもよい。こうした機能には、パケット、ストリーム、またはリソースをキャッシングすること、自発的にメディアデータを事前に取得すること、ある通信プロトコルスタックに従うパケットストリームを別の通信プロトコルスタックに従うものに変換すること、データストリームのマージおよびフォーク、ダウンリンクおよび/または受信機の容量に応じたデータストリームの操作等が挙げられる。データストリームの操作とは、例えば現行のダウンリンクネットワーク条件に応じた転送ストリームのビットレートの制御等である。ゲートウェイ1150の例としては、多地点制御装置(Multipoint conference Control Unit:MCU)、回路切替およびパケット切替ビデオ電話間のゲートウェイ、PoC(Push-to-talk over Cellular)サーバ、DVB−H(digital video broadcasting-handheld)システムのIPカプセル化ツール、セットトップボックス、またはホーム無線ネットワークにローカルにブロードキャスト送信を行うその他の装置が挙げられる。RTPを使用する場合、ゲートウェイ1150は、RTPミキサまたはRTPトランスレータと呼ばれてもよい。RTP接続の終点となりうるものである。ゲートウェイ1150に代えて、または加えて、システムには、ビデオシーケンスまたはビットストリームを集約するスプライサを含んでもよい。
システムには、1つ以上の受信機1160を備える。受信機1160は通常、送信信号を受信して復調し、符号化メディアビットストリームにデカプセル化(de-capsulating)することができる。符号化メディアビットストリームは、記憶ストレージ1170に送られてもよい。記憶ストレージ1170は、符号化メディアビットストリームを格納する任意の種類の大容量メモリを備えてもよい。これに代えて、またはこれに加えて、記憶ストレージ1170は、ランダムアクセスメモリ等の演算メモリを備えてもよい。記憶ストレージ1170における符号化メディアビットストリームのフォーマットは、基本自立型ビットストリームフォーマットであってもよく、1つ以上の符号化メディアビットストリームが1つのコンテナファイルにカプセル化されてもよい。音声ストリームと動画ストリームといった複数の符号化メディアビットストリームが互いに関連し合って存在する場合、通常コンテナファイルが使用され、受信機1160は、入力ストリームからコンテナファイルを生成するコンテナファイル生成器を備えるか、それに取り付けられる。システムによっては「ライブ」で動作するものもある。すなわち、記憶ストレージ1170を省き、受信機1160からの符号化メディアビットストリームを直接デコーダ1180に伝送する。システムによっては、記録済みストリームからの直近10分間の抜粋のような記録済みストリームの最新部分が記憶ストレージ1170に保持され、それ以前に記録されたデータは記憶ストレージ1170から削除される。
符号化メディアビットストリームは、記憶ストレージ1170からデコーダ1180に送られてもよい。音声ストリームと動画ストリームといった多数の符号化メディアビットストリームが関連し合って存在し、コンテナファイルにカプセル化される場合、または1つのメディアビットストリームがコンテナファイルにカプセル化される場合(例えばアクセスを容易にするため)、このコンテナファイルから各符号化メディアビットストリームをデカプセル化するためにファイルパーサ(図示せず)が使用される。記憶ストレージ1170またはデコーダ1180がこのファイルパーサを備えてもよく、または記憶ストレージ1170かデコーダ1180のいずれかにファイルパーサが取り付けられていてもよい。システムは多数のデコーダを備えてもよいが、普遍性を損なわない範囲で簡潔に説明するために、本明細書では1つのデコーダ1180のみが図示されていることが理解されよう。
符号化メディアビットストリームはデコーダ1180によってさらに処理され、このデコーダの出力が1つ以上の非圧縮メディアストリームとなってもよい。最後に、レンダラ1190が、非圧縮メディアストリームを例えばラウドスピーカやディスプレイに再生してもよい。受信機1160、記憶ストレージ1170、デコーダ1180、およびレンダラ1190は、同一の物理的デバイスに設けられても、別々のデバイスに設けられてもよい。
上述のいくつかの実施形態では、表現および/またはビットストリームという用語に関連して説明してきたが、同様のその他の用語にも同様に実施形態が適用されることが理解されるべきである。例えば、ビットストリームを表現に、表現をビットストリームに、あるいはビットストリームまたは表現を基本ストリームに置き換えてもよい。
上述の例示的実施形態がエンコーダに言及している点に関し、結果として得られるビットストリームとデコーダも対応する要素を備えうることも理解されるべきである。同様に、例示的実施形態がデコーダに言及している点に関し、デコーダによって復号されるビットストリームを生成する構造および/またはコンピュータプログラムをエンコーダが備えうることも理解されるべきである。
前述された本発明の実施形態では、装置が関与する処理に対する理解を促すため、別々のエンコーダ装置とデコーダ装置によるコーデックを説明しているが、こうした装置やその構造、動作が単一のエンコーダ・デコーダ装置/構造/動作として実装されうることも理解されよう。さらに、コーダとデコーダが共通要素の一部または全部を共有してもよい。
前述の例では、電子デバイス内のコーデックにおいて動作する本発明の実施形態について説明しているが、請求項に定義している発明は、任意のビデオコーデックの一部として実装されうることが理解されよう。したがって、例えば、本発明の実施形態は、固定または有線通信経路を介してビデオの符号化を実施しうるビデオコーデックに実装されてもよい。
ユーザ端末が本発明の上述の各実施形態に記載されたようなビデオコーデックを備えてもよい。「ユーザ端末」という用語には、携帯電話、携帯型データ処理装置、または携帯型Webブラウザ等の任意の好適な種類の無線ユーザ端末を含むことが意図されている。
地上波公共移動通信ネットワーク(Public Land Mobile Network:PLMN)が、追加の要素として上述のビデオコーデックを備えてもよい。
本発明の種々の実施形態は、概して、ハードウェア、特定用途向け回路、ソフトウェア、論理回路、またはそれらの任意の組合せで実装されてもよい。例えば、一部の態様がハードウェアで実装され、他の態様がコントローラ、マイクロプロセッサ、またはその他のコンピュータデバイスによって実行されうるファームウェアやソフトウェアで実装されてもよいが、本発明はこれに限定されない。本発明の種々の態様はブロック図、フローチャート、または他の図によって図示および説明されるが、本明細書に記載するこれらのブロック、装置、システム、技術、または方法は、非限定的な例として、ハードウェア、ソフトウェア、ファームウェア、特定用途向け回路や論理回路、汎用のハードウェア、コントローラ、その他のコンピュータデバイス、またはそれらの組合せとして実装されてもよいと理解されるべきである。
本発明の実施形態は、プロセッサエンティティ内等に設けられる携帯装置のデータプロセッサによって実行可能な、あるいはハードウェア、またはソフトウェアおよびハードウェアの組合せによって実行可能な、コンピュータソフトウェアによって実装されてもよい。このコンピュータソフトウェアは、エンコーダまたはデコーダのような該当する装置に本発明を実行させてもよい。例えばデバイスが、メモリ内のデータ、コンピュータプログラムコードを扱い、送受信する回路または電子部品を備えてもよい。さらに、コンピュータプログラムコードを実行することにより、デバイスに実施形態の特徴を実行させるプロセッサを備えてもよい。さらに、サーバのようなネットワークデバイスが、メモリ内のデータ、コンピュータプログラムコードを扱い、送受信する回路または電子部品を備えてもよい。さらに、コンピュータプログラムコードを実行することにより、ネットワークデバイスに実施形態の特徴を実行させるプロセッサを備えてもよい。
各種実施形態は、コンピュータによって実行されると、それらの実施形態を実施する命令によって符号化された非一時的コンピュータ可読媒体を用いて実施可能である。
本明細書で述べた異なる機能は、適宜、異なる順番で実施してもよいし、同時に実施してもよい。さらに、上述の機能のうちの1つ以上は適宜、任意であってもよく、組み合わされてもよい。さらに、実施形態は復号方法およびデコーダに関して開示されているが、本開示の教示は、符号化単位の符号化を行うように構成されたエンコーダや、符号化単位内でエスケープ符号化の存在の標示を符号化することにも適用可能である。
この点について、図中の論理フローのいずれのブロックも、プログラムのステップ、または相互接続された論理回路、ブロック、機能、またはプログラムステップ、論理回路、ブロック、および機能の組合せを表していてもよいことが理解されよう。上記ソフトウェアは、メモリチップ、プロセッサ内に実装されたメモリブロック、ハードディスクやフロッピーディスク等の磁気媒体、例えばDVDやそのデータ変種、CD等の光学媒体等の物理的媒体に格納されてもよい。
前記メモリはローカルの技術環境に適した任意の種類のものであってもよく、半導体ベースのメモリデバイス、磁気メモリデバイスおよびシステム、光学メモリデバイスおよびシステム、固定メモリおよび着脱式メモリ等の任意の好適なデータ格納技術を用いて実装されてもよい。前記データプロセッサはローカルの技術環境に適した任意の種類のものであってもよく、この例として1つ以上の汎用コンピュータ、専用コンピュータ、マイクロプロセッサ、デジタル信号プロセッサ(Digital Signal Processor:DSP)、およびマルチコアプロセッサアーキテクチャによるプロセッサが挙げられるが、これらに限定されるものではない。
本発明の実施形態は、集積回路モジュールのような、様々な要素で実施することもできる。集積回路の設計は、概して高度に自動化されたプロセスである。論理レベルの設計を、半導体基板上にエッチングおよび形成するための半導体回路設計に変換する複雑で強力なソフトウェアツールが利用可能である。
カリフォルニア州マウンテンビューのSynopsys,Inc.や、カリフォルニア州サンノゼのCadence Designのような業者が提供するプログラムは、定評のある設計ルールと実績のある設計モジュールのライブラリに基づいて、半導体チップ上に導電経路や要素を自動的に配する。半導体回路の設計が完了すると、その設計は、OpusやGDSII等の標準的な電子フォーマットで半導体製造設備、いわゆるfabに送られて製造されてもよい。
前述の説明は、非限定的な例によって、本発明の例示的な実施形態を十分かつ詳細に記述している。しかし、こうした前述の説明を、添付する図面および特許請求の範囲と併せて考慮すれば、種々の変更および適応が可能であることは、本願に関連する技術分野の当業者には明らかであろう。さらに、本発明が教示するこうした事項のすべておよび同様の変形は、そのすべてが本発明の範囲内にある。
実施形態はいくつかの利点を実現しうる。例えば、動き補償予測の正確さは、高次動きベクトルフィールドのモデリングに必要な追加情報を、高いビットレート効率でシグナリングすることにより向上できる。
第1の例では方法が提供され、前記方法は、
動き予測用のサンプルブロックを取得することと、
前記サンプルブロックの並進基本動きベクトルを選択することと、
少なくとも並進基本動きベクトル成分の予測を定義することと、
第1の精度を用いて前記並進基本動きベクトル成分に対する第1の改良を定義することと、
少なくとも1つの高次動きベクトル成分の予測を定義することと、
前記第1の精度とは異なる第2の精度を用いて前記高次動きベクトル成分に対する第2の改良を定義することと、
前記並進基本動きベクトル成分、前記第1の改良、および前記第2の改良に関する情報を1つ以上のビットストリームに符号化することと、
を含む。
第2の例では方法が提供され、前記方法は、
動き予測用のサンプルブロックを取得することと、
前記サンプルブロックに対する第1の精度を有する並進基本動きベクトルを選択することと、
少なくとも1つの高次動きベクトル成分の予測を定義することと、
前記第1の精度とは異なる第2の精度を用いて前記高次動きベクトル成分に対する改良を定義することと、
前記並進基本動きベクトル成分および前記改良に関する情報を1つ以上のビットストリームに符号化することと、
を含む。
いくつかの実施形態において、第1および/または第2の例の前記方法は、
前記基本動きベクトル成分、基本動きベクトル成分に対する前記改良、前記高次動きベクトル成分、および高次動きベクトル成分に対する前記改良に基づいて動きベクトルを計算することを含む。
いくつかの実施形態において、第1および/または第2の例の前記方法は、
前記並進基本動きベクトルと前記第1の改良とで精度が異なる場合、前記第1の改良に第1の乗数をかけて、スケーリングされた第1の改良を取得することと、
前記スケーリングされた第1の改良を、前記並進動きベクトル成分の計算に使用することと、
を含む。
いくつかの実施形態において、第1および/または第2の例の前記方法は、
前記高次動きベクトル成分と前記第2の改良とで精度が異なる場合、前記第2の改良に第2の乗数をかけて、スケーリングされた第2の改良を取得することと、
前記スケーリングされた第2の改良を、前記高次動きベクトル成の計算に使用することと、
を含む。
いくつかの実施形態において、第1および/または第2の例の前記方法は、
回転とズームに対応可能な制約付きアフィン動きモデルを使用して、前記高次動きベクトル成分の前記予測を定義することを含む。
いくつかの実施形態において、第1および/または第2の例の前記方法は、
回転とズームに対応可能な完全アフィン動きモデルを使用して、前記高次動きベクトル成分の前記予測を定義することを含む。
いくつかの実施形態において、第1および/または第2の例の前記方法は、
符号化単位の角の動きベクトルを用いて、動きベクトルフィールドをシグナリングすることを含む。
いくつかの実施形態において、第1および/または第2の例の前記方法における前記符号化は、
前記情報の少なくとも一部を、パラメータセットまたはピクチャヘッダ、スライスヘッダまたはタイルヘッダ内でシグナリングすることを含む。
いくつかの実施形態において、第1および/または第2の例の前記方法における前記第1の精度は第2の精度より低い。
いくつかの実施形態において、前記方法における前記第1の精度は前記第2の精度よりも高い。
いくつかの実施形態において、第1および/または第2の例の前記方法は、前記第1の精度および前記第2の精度の少なくとも一方に関する情報を1つ以上のビットストリームに符号化することをさらに含む。
第3の例では装置が提供され、前記装置は、少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリと、を備え、前記少なくとも1つのメモリおよび前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に少なくとも、
動き予測用のサンプルブロックを取得することと、
前記サンプルブロックの並進基本動きベクトルを選択することと、
少なくとも並進基本動きベクトル成分の予測を定義することと、
第1の精度を用いて前記並進基本動きベクトル成分に対する第1の改良を定義することと、
少なくとも1つの高次動きベクトル成分の予測を定義することと、
前記第1の精度とは異なる第2の精度を用いて前記高次動きベクトル成分に対する第2の改良を定義することと、
前記並進基本動きベクトル成分、前記第1の改良、および前記第2の改良に関する情報を1つ以上のビットストリームに符号化することと、
を実行させるように構成されている。
第4の例では装置が提供され、前記装置は、少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリと、を備え、前記少なくとも1つのメモリおよび前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に少なくとも、
動き予測用のサンプルブロックを取得することと、
前記サンプルブロックに対する第1の精度を有する並進基本動きベクトルを選択することと、
少なくとも1つの高次動きベクトル成分の予測を定義することと、
前記第1の精度とは異なる第2の精度を用いて前記高次動きベクトル成分に対する改良を定義することと、
前記並進基本動きベクトル成分および前記改良に関する情報を1つ以上のビットストリームに符号化することと、
を実行させるように構成されている。
いくつかの実施形態において、第3および/または第4の例の前記装置に、
前記基本動きベクトル成分、基本動きベクトル成分に対する前記改良、前記高次動きベクトル成分、および高次動きベクトル成分に対する前記改良に基づいて動きベクトルを計算することをさらに実行させる。
いくつかの実施形態において、第3および/または第4の例の前記装置に、
前記並進基本動きベクトルと前記第1の改良とで精度が異なる場合、前記第1の改良に第1の乗数をかけて、スケーリングされた第1の改良を取得することと、
前記スケーリングされた第1の改良を、前記並進動きベクトル成分の計算に使用することと、
をさらに実行させる。
いくつかの実施形態において、第3および/または第4の例の前記装置に、
前記高次動きベクトル成分と前記第2の改良とで精度が異なる場合、前記第2の改良に第2の乗数をかけて、スケーリングされた第2の改良を取得することと、
前記スケーリングされた第2の改良を、前記高次動きベクトル成分の計算に使用することと、
をさらに実行させる。
いくつかの実施形態において、第3および/または第4の例の前記装置に、
回転とズームに対応可能な制約付きアフィン動きモデルおよび完全アフィン動きモデルの一方を使用して、前記高次動きベクトル成分の前記予測を定義することをさらに実行させる。
いくつかの実施形態において、第3および/または第4の例の前記装置に、
符号化単位の角の動きベクトルを用いて、動きベクトルフィールドをシグナリングすることをさらに実行させる。
いくつかの実施形態において、第3および/または第4の例の前記装置に、
前記情報の少なくとも一部を、パラメータセットまたはピクチャヘッダ、スライスヘッダまたはタイルヘッダ内でシグナリングすることをさらに実行させる。
第5の例ではコンピュータ可読記憶媒体が提供され、前記コンピュータ可読記憶媒体は、装置による使用のためのコードを格納し、前記コードは、プロセッサによって実行されると、前記装置に、
動き予測用のサンプルブロックを取得することと、
前記サンプルブロックの並進基本動きベクトルを選択することと、
少なくとも並進基本動きベクトル成分の予測を定義することと、
第1の精度を用いて前記並進基本動きベクトル成分に対する第1の改良を定義することと、
少なくとも1つの高次動きベクトル成分の予測を定義することと、
前記第1の精度とは異なる第2の精度を用いて前記高次動きベクトル成分に対する第2の改良を定義することと、
前記並進基本動きベクトル成分、前記第1の改良、および前記第2の改良に関する情報を1つ以上のビットストリームに符号化することと、
を実行させる。
第6の例ではコンピュータ可読記憶媒体が提供され、前記コンピュータ可読記憶媒体は、装置による使用のためのコードを格納し、前記コードは、プロセッサによって実行されると、前記装置に、
動き予測用のサンプルブロックを取得することと、
前記サンプルブロックに対する第1の精度を有する並進基本動きベクトルを選択することと、
少なくとも1つの高次動きベクトル成分の予測を定義することと、
前記第1の精度とは異なる第2の精度を用いて前記高次動きベクトル成分に対する改良を定義することと、
前記並進基本動きベクトル成分および前記改良に関する情報を1つ以上のビットストリームに符号化することと、
を実行させる。
第7の例では装置が提供され、前記装置は、画像シーケンスを含むビットストリームを符号化するために構成されたビデオエンコーダを備え、前記ビデオエンコーダは、
動き予測用のサンプルブロックを取得する手段と、
前記サンプルブロックの並進基本動きベクトルを選択する手段と、
少なくとも並進基本動きベクトル成分の予測を定義する手段と、
第1の精度を用いて前記並進基本動きベクトル成分に対する第1の改良を定義する手段と、
少なくとも1つの高次動きベクトル成分の予測を定義する手段と、
前記第1の精度とは異なる第2の精度を用いて前記高次動きベクトル成分に対する第2の改良を定義する手段と、
前記並進基本動きベクトル成分、前記第1の改良、および前記第2の改良に関する情報を1つ以上のビットストリームに符号化する手段と、
を備える。
第8の例では装置が提供され、前記装置は、画像シーケンスを含むビットストリームを符号化するために構成されたビデオエンコーダを備え、前記ビデオエンコーダは、
動き予測用のサンプルブロックを取得する手段と、
前記サンプルブロックに対する第1の精度を有する並進基本動きベクトルを選択する手段と、
少なくとも1つの高次動きベクトル成分の予測を定義する手段と、
前記第1の精度とは異なる第2の精度を用いて前記高次動きベクトル成分に対する改良を定義する手段と、
前記並進基本動きベクトル成分および前記改良に関する情報を1つ以上のビットストリームに符号化する手段と、
を備える。
第9の例では方法が提供され、前記方法は、
動き予測用のサンプルブロックを受信することと
前記サンプルブロックのために選択された第1の精度を有する並進基本動きベクトルの情報を受信することと
少なくとも1つの高次動きベクトル成分の予測情報を受信することと、
前記第1の精度とは異なる第2の精度を有する前記高次動きベクトル成分に対する改良の情報を受信することと、
前記受信した情報を用いて動きベクトルを計算することと、
を含む。
いくつかの実施形態において、前記方法は、
前記第1の精度を有する前記並進基本動きベクトル成分に対する改良の情報を受信することを含む。
いくつかの実施形態において、前記方法は、
前記基本動きベクトル成分、基本動きベクトル成分に対する前記改良、前記高次動きベクトル成分、および高次動きベクトル成分に対する前記改良に基づいて動きベクトルを計算することを含む。
いくつかの実施形態において、前記方法は、
回転とズームに対応可能な制約付きアフィン動きモデルおよび完全アフィン動きモデルの一方を使用して、前記高次動きベクトル成分の前記予測を定義することを含む。
いくつかの実施形態において、前記方法は、
符号化単位の角の動きベクトルとして、動きベクトルフィールドを受信することを含む。
いくつかの実施形態において、前記方法は、
前記情報の少なくとも一部を、パラメータセットまたはピクチャヘッダ、スライスヘッダまたはタイルヘッダ内で受信することを含む。
第10の例では装置が提供され、前記装置は、少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリと、を備え、前記少なくとも1つのメモリおよび前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に少なくとも、
動き予測用のサンプルブロックを受信することと、
前記サンプルブロックのために選択された第1の精度を有する並進基本動きベクトルの情報を受信することと、
少なくとも1つの高次動きベクトル成分の予測情報を受信することと、
前記第1の精度とは異なる第2の精度を有する前記高次動きベクトル成分に対する改良の情報を受信することと、
前記受信した情報を用いて動きベクトルを計算することと、
を実行させる。
いくつかの実施形態において、前記装置に、
前記第1の精度を有する前記並進基本動きベクトル成分に対する改良の情報を受信することをさらに実行させる。
いくつかの実施形態において、前記装置に、
前記基本動きベクトル成分、基本動きベクトル成分に対する前記改良、前記高次動きベクトル成分、および高次動きベクトル成分に対する前記改良に基づいて動きベクトルを計算することをさらに実行させる。
いくつかの実施形態において、前記装置に、
回転とズームに対応可能な制約付きアフィン動きモデルおよび完全アフィン動きモデルの一方を使用して、前記高次動きベクトル成分の前記予測を定義することをさらに実行させる。
いくつかの実施形態において、前記装置に、
符号化単位の角の動きベクトルとして、動きベクトルフィールドを受信することをさらに実行させる。
いくつかの実施形態において、前記装置に、
前記情報の少なくとも一部を、パラメータセットまたはピクチャヘッダ、スライスヘッダまたはタイルヘッダ内で受信することをさらに実行させる。
第11の例ではコンピュータ可読記憶媒体が提供され、前記コンピュータ可読記憶媒体は、装置による使用のためのコードを格納し、前記コードは、プロセッサによって実行されると、前記装置に、
動き予測用のサンプルブロックを受信することと、
前記サンプルブロックのために選択された第1の精度を有する並進基本動きベクトルの情報を受信することと、
少なくとも1つの高次動きベクトル成分の予測情報を受信することと、
前記第1の精度とは異なる第2の精度を有する前記高次動きベクトル成分に対する改良の情報を受信することと、
前記受信した情報を用いて動きベクトルを計算することと、
を実行させる。
第12の例では装置が提供され、前記装置は、画像シーケンスを含むビットストリームを復号するために構成されたビデオデコーダを備え、前記ビデオデコーダは、
動き予測用のサンプルブロックを受信する手段と、
前記サンプルブロックのために選択された第1の精度を有する並進基本動きベクトルの情報を受信する手段と、
少なくとも1つの高次動きベクトル成分の予測情報を受信する手段と、
前記第1の精度とは異なる第2の精度を有する前記高次動きベクトル成分に対する改良の情報を受信する手段と、
前記受信した情報を用いて動きベクトルを計算する手段と、
を含む。