(57)【要約】  本開示は、ビデオコーディングのための動き探索における複雑さの低いクォーターペル生成のためのシステムおよび方法を提供する。この方法は、参照フレームのビデオ情報の複数の行に関連するフルピクセル位置情報をメモリに記憶することを含むことができる。この方法は、第1のサブペル位置情報を決定するために、参照フレームに関連するビデオ情報のフルピクセル位置情報に垂直補間フィルタを適用することを含むこともできる。この方法は、ビデオデータの1行おきについて第2のサブペル位置情報を決定するために、第1のサブペル位置情報に水平補間フィルタを適用するステップを含むこともできる。この方法は、第1のサブペル位置情報に基づいて現在のフレームのピクセルの動きを示すシンタックス要素を生成することを含むこともできる。この方法は、生成されたシンタックス要素に基づいてブロックを符号化することを含むこともできる。
2018511230.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを符号化する方法であって、
参照フレームのビデオ情報の複数の行に関連するフルピクセル位置情報をメモリに記憶するステップと、
探索された位置が前記参照フレーム内のフルピクセル行に位置していないとき、第1のサブペル位置情報を決定するために、前記参照フレームに関連するビデオ情報の前記フルピクセル位置情報に垂直補間フィルタを適用するステップと、
前記探索された位置が前記参照フレーム内のフルピクセル列に位置していないとき、ビデオ情報の前記1列おきについて第2のサブペル位置情報を決定するために、前記フルピクセル位置情報の1行おき、および前記第1のサブペル位置情報に水平補間フィルタを適用するステップと、
前記フルピクセル位置情報の前記1行おき、前記第1のサブペル位置情報、および前記第2のサブペル位置情報に基づいて、現在のフレームのピクセルの動きを示すシンタックス要素を生成するステップと、
前記生成されたシンタックス要素に基づいてブロックを符号化するステップと
を含む方法。
【請求項２】
前記水平補間フィルタを適用する前に、前記第1のサブペル位置情報を前記メモリに記憶するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記垂直補間フィルタを、前記参照フレームに関連するビデオ情報の1行おきに適用するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記メモリに記憶された前記フルピクセル位置情報に基づいて、前記参照フレームに関連する複数のハーフペル位置を事前計算するステップと、
前記ハーフペル位置に関連するハーフペル位置情報を前記メモリに記憶するステップと
をさらに含む、請求項2に記載の方法。
【請求項５】
ビデオデータを符号化する方法であって、
参照フレームに関連するフルピクセル位置情報をメモリに記憶するステップと、
探索された位置が前記参照フレーム内のフルピクセル行に位置していないとき、
第1のサブペル位置情報を決定するために、前記参照フレームに関連するビデオ情報の前記フルピクセル位置情報の1行おきに垂直補間フィルタを適用するステップと、
前記第1のサブペル位置情報を前記メモリに記憶するステップと、
探索された位置が前記参照フレーム内のフルピクセル列に位置していないとき、
ビデオ情報の前記1列おきについて第2のサブペル位置情報を決定するために、前記フルピクセル位置情報および前記第1のサブペル位置情報に水平補間フィルタを適用するステップと、
前記フルピクセル位置情報の前記1行おき、前記第1のサブペル位置情報、および前記第2のサブペル位置情報に基づいて、現在のフレームのピクセルの動きを示すシンタックス要素を生成するステップと、
前記生成されたシンタックス要素に基づいてブロックを符号化するステップと
を含む方法。
【請求項６】
前記メモリに記憶された前記フルピクセル位置情報に基づいて、前記参照フレームに関連する複数のハーフペル位置を事前計算するステップと、
前記ハーフペル位置に関連するハーフペル位置情報を前記メモリに記憶するステップと
をさらに含む、請求項5に記載の方法。
【請求項７】
前記ハーフペル位置情報を記憶するステップが、前記垂直補間フィルタを適用する前に行われる、請求項6に記載の方法。
【請求項８】
前記第1および第2のサブペル位置情報が、ハーフペル位置情報を含み、前記ハーフペル位置情報が、2つの隣接するフルピクセル位置の中間に位置するハーフペル位置を示す、請求項5に記載の方法。
【請求項９】
前記第1および第2のサブペル位置情報が、クォーターペル位置情報を含み、前記クォーターペル位置情報が、ハーフペル位置と隣接するフルピクセル位置との中間に位置するクォーターペル位置を示す、請求項5に記載の方法。
【請求項１０】
前記第1および第2のサブペル位置情報が、フルピクセル位置情報と同じ精度で前記メモリに記憶される、請求項5に記載の方法。
【請求項１１】
前記参照フレームと前記現在のフレームとの間のピクセルの動きが、ベクトルによって示され、前記ベクトルが、前記第1のサブペル位置情報および前記第2のサブペル位置情報のうちの少なくとも1つを参照する、請求項5に記載の方法。
【請求項１２】
前記探索された位置が前記参照フレーム内のフルピクセル行に位置するとき、前記フルピクセル位置情報に基づいて前記現在のフレームのピクセルの動きを示す前記シンタックス要素を生成するステップをさらに含む、請求項5に記載の方法。
【請求項１３】
前記探索された位置が前記参照フレーム内のフルピクセル列に位置するとき、前記フルピクセル位置情報に基づいて前記現在のフレームのピクセルの動きを示す前記シンタックス要素を生成するステップをさらに含む、請求項5に記載の方法。
【請求項１４】
ビデオを符号化するためのデバイスであって、
一連のフレームに関連するフルピクセル位置情報を動き探索のためにメモリに記憶するように構成されたメモリと、
前記メモリに動作可能に結合されたプロセッサとを備え、前記プロセッサが、
探索された位置が参照フレームのフルピクセル行に位置していないとき、前記ビデオ情報の第1のサブペル位置情報を決定するために、前記一連のフレームに関連するビデオ情報の前記フルピクセル位置情報に垂直補間フィルタを適用し、
フルピクセル位置情報と同じ精度で前記第1のサブペル位置情報を前記メモリに記憶し、
探索された位置が前記参照フレームのフルピクセル列に位置していないとき、前記ビデオ情報の前記1列おきについて第2のサブペル位置情報を決定するために、前記フルピクセル位置情報の1行おき、および前記第1のサブペル位置情報に水平補間フィルタを適用し、
前記フルピクセル位置情報、前記第1のサブペル位置情報、および第2のサブペル位置情報に基づいて、前記一連のフレームのピクセルの動きを示すシンタックス要素を生成し、
前記生成されたシンタックス要素に基づいてブロックを符号化する
ように構成される、
デバイス。
【請求項１５】
前記プロセッサが、前記ビデオ情報の前記第1のサブペル位置情報を決定するために、前記参照フレームに関連するビデオ情報の1行おきに前記垂直補間フィルタを適用するようにさらに構成される、請求項14に記載のデバイス。
【請求項１６】
前記プロセッサが、
前記メモリに記憶された前記フルピクセル位置情報に基づいて、前記参照フレームに関連するハーフペル位置情報を事前計算し、
前記ハーフペル位置情報を前記メモリに記憶し、前記ハーフペル位置情報が複数のハーフペル位置に関連する、
ようにさらに構成される、請求項14に記載のデバイス。
【請求項１７】
前記プロセッサが、前記垂直補間フィルタを適用する前に前記ハーフペル位置情報を記憶するように構成される、請求項16に記載のデバイス。
【請求項１８】
前記第1および第2のサブペル位置情報が、ハーフペル位置情報を含み、前記ハーフペル位置情報が、2つの隣接するフルピクセル位置の中間に位置するハーフペル位置を示す、請求項14に記載のデバイス。
【請求項１９】
前記第1および第2のサブペル位置情報が、クォーターペル位置情報を含み、前記クォーターペル位置情報が、ハーフペル位置と隣接するフルピクセル位置との中間に位置するクォーターペル位置を示す、請求項14に記載のデバイス。
【請求項２０】
前記第1および第2のサブペル位置情報が、フルピクセル位置情報と同じ精度で前記メモリに記憶される、請求項14に記載のデバイス。
【請求項２１】
前記参照フレームと前記現在のフレームとの間のピクセルの動きが、ベクトルによって示され、前記ベクトルが、前記第1のサブペル位置情報および前記第2のサブペル位置情報のうちの少なくとも1つを参照する、請求項14に記載のデバイス。
【請求項２２】
ビデオデータを符号化するための装置であって、
一連のフレームに関連するフルピクセル位置情報を動き探索のためにメモリに記憶するように構成された記憶手段と、
前記記憶手段に動作可能に結合された処理手段であり、
探索された位置が参照フレームのフルピクセル行に位置していないとき、前記一連のフレームに関連する第1のサブピクセル位置情報を決定するために、前記フルピクセル位置情報に垂直補間フィルタを適用し、
フルピクセル位置情報と同じ精度で前記第1のサブペル位置情報を前記メモリに記憶し、
探索された位置が前記参照フレームのフルピクセル列に位置していないとき、ビデオ情報の前記1列おきについて第2のサブペル位置情報を決定するために、前記フルピクセル位置情報の1行おき、および前記第1のサブペル位置情報に水平補間フィルタを適用する
ように構成された処理手段と、
前記フルピクセル位置情報、第1および第2の1/2ピクセル位置情報、または第1および第2の1/4ピクセル位置情報に基づいて前記一連のフレームのピクセルの動きを示すシンタックス要素を生成するための生成手段と、
前記生成されたシンタックス要素に基づいてブロックを符号化するように構成された符号化手段と
を含む装置。
【請求項２３】
前記記憶手段がメモリを含み、前記処理手段が1つまたは複数のプロセッサを含む、請求項22に記載の装置。
【請求項２４】
前記処理手段が、前記メモリに記憶された前記フルピクセル位置情報に基づいて、前記参照フレームに関連する複数のハーフペル位置を事前計算するようにさらに構成される、請求項22に記載の装置。
【請求項２５】
前記記憶手段が、前記ハーフペル位置に関連する前記ハーフペル位置情報を記憶するようにさらに構成される、請求項23に記載の装置。
【請求項２６】
前記第1および第2のサブペル位置情報が、ハーフペル位置情報を含み、前記ハーフペル位置が、2つの隣接するフルピクセル位置の中間に位置する、請求項22に記載の装置。
【請求項２７】
前記第1および第2のサブペル位置情報が、クォーターペル位置情報を含み、前記クォーターペル位置情報が、ハーフペル位置と隣接するフルピクセル位置との中間に位置するクォーターペル位置を示す、請求項22に記載の装置。
【請求項２８】
前記第1および第2のサブペル位置情報が、フルピクセル位置情報と同じ精度で前記メモリに記憶される、請求項22に記載の装置。
【請求項２９】
前記参照フレームと前記現在のフレームとの間のピクセルの動きが、ベクトルによって示され、前記ベクトルが、前記第1のサブペル位置情報および前記第2のサブペル位置情報のうちの少なくとも1つを参照する、請求項22に記載の装置。
【請求項３０】
前記処理手段が、探索された位置が参照フレームのフルピクセル行に位置していないとき、前記一連のフレームに関連するビデオ情報の前記1列おきについて第1のサブピクセル位置情報を決定するために、前記フルピクセル位置情報の1行おきに前記垂直補間フィルタを適用するようにさらに構成される、請求項22に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオコーディングおよび圧縮の分野に関する。特に、高性能ビデオコーディング(HEVC)の動き推定および動き補償に関する。
【背景技術】
【０００２】
デジタルビデオ能力は、デジタルテレビジョン、デジタル直接放送システム(digital direct broadcast system)、ワイヤレス放送システム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラー無線電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ会議デバイス、ビデオストリーミングデバイス、などを含む広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part 10、アドバンストビデオコーディング(AVC:Advanced Video Coding)、現在開発中の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格、およびそのような規格の拡張によって定義された規格に記載されるものなどのビデオコーディングプロセスを実装する。ビデオデバイスは、そのようなタイプのビデオコーディングを実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
【０００３】
ビデオコーディング方法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を含む。ブロックベースのビデオコーディングのために、ビデオスライス(たとえば、ビデオフレーム、またはビデオフレームの一部)は、ビデオブロックに区分されてもよく、ビデオブロックはまた、ツリーブロック、符号化ユニット(CU:coding unit)、および/またはコーディングノードと呼ばれることがある。ピクチャのイントラコーディングされた(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用することができる。ピクチャは、フレームと呼ばれることがあり、参照ピクチャは、参照フレームと呼ばれることがある。
【０００４】
空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データがピクセル領域から変換領域に変換されて残差変換係数が得られてよく、次いで、残差変換係数が量子化され得る。最初に2次元アレイに配置される量子化変換係数は、変換係数の1次元ベクトルを生成するために走査されてよく、エントロピーコーディングが、さらなる圧縮を実現するために適用され得る。
【発明の概要】
【課題を解決するための手段】
【０００５】
概して、本開示は、ビデオコーディングに関連したシステムおよび方法について記載する。本開示のシステム、方法、およびデバイスは、いくつかの革新的態様をそれぞれ有し、それらの態様のいずれの1つも、本明細書において開示される望ましい属性を単独では担わない。
【０００６】
本開示の一態様は、ビデオを符号化するための方法を提供する。この方法は、参照フレームのビデオ情報の複数の行に関連するフルピクセル位置情報をメモリに記憶することを含むことができる。この方法は、探索された位置が参照フレーム内のフルピクセル行に位置していないとき、第1のサブペル位置情報を決定するために、参照フレームに関連するビデオ情報のフルピクセル位置情報に垂直補間フィルタを適用することを含むこともできる。この方法は、第1のサブペル位置情報をメモリに記憶することを含むこともできる。この方法は、第1のサブペル位置情報に基づいて現在のフレームのピクセルの動きを示すシンタックス要素を生成することを含むこともできる。この方法は、生成されたシンタックス要素に基づいてブロックを符号化することを含むこともできる。
【０００７】
本開示の別の態様は、ビデオを符号化するための別の方法を提供する。この方法は、参照フレームに関連するフルピクセル位置情報をメモリに記憶することを含むことができる。探索された位置が参照フレーム内のフルピクセル行に位置していないとき、この方法は、第1のサブペル位置情報を決定するために、参照フレームに関連するビデオ情報の1行おきについてフルピクセル位置情報に垂直補間フィルタを適用することを含むこともできる。この方法は、第1のサブペル位置情報をメモリに記憶することを含むこともできる。探索された位置が参照フレーム内のフルピクセル列に位置していないとき、この方法は、ビデオ情報の1列おきについて第2のサブペル位置情報を決定するために、フルピクセル位置情報および第1のサブペル位置情報に水平補間フィルタを適用することを含むこともできる。この方法は、フルピクセル位置情報、第1のサブペル位置情報、および第2のサブペル位置情報に基づいて、現在のフレームのピクセルの動きを示すシンタックス要素を生成することを含むこともできる。この方法は、生成されたシンタックス要素に基づいてブロックを符号化することを含むこともできる。
【０００８】
本開示の別の態様は、ビデオを符号化するためのデバイスを提供する。このデバイスは、一連のフレームに関連するフルピクセル位置情報を動き探索のためにメモリに記憶するように構成されたメモリを有することができる。デバイスは、メモリに動作可能に結合されたプロセッサを有することもできる。探索された位置が参照フレームのフルピクセル行に位置していないとき、プロセッサは、ビデオ情報の1行おきについて第1のサブペル位置情報を決定するために、一連のフレームに関連するビデオ情報のフルピクセル位置情報に垂直補間フィルタを適用することができる。プロセッサは、フルピクセル位置情報と同じ精度で第1のサブペル位置情報をメモリに記憶することもできる。探索された位置が参照フレームのフルピクセル列に位置していないとき、プロセッサは、ビデオ情報の1列おきについて第2のサブペル位置情報を決定するために、フルピクセル位置情報および第1のサブペル位置情報に水平補間フィルタを適用することができる。プロセッサは、フルピクセル位置情報、第1のサブペル位置情報、および第2のサブペル位置情報に基づいて、一連のフレームのピクセルの動きを示すシンタックス要素を生成することもできる。プロセッサは、生成されたシンタックス要素に基づいてブロックを符号化することもできる。
【０００９】
本開示の別の態様は、ビデオデータを符号化するための装置を提供する。このデバイスは、一連のフレームに関連するフルピクセル位置情報を動き探索のためにメモリに記憶するように構成された記憶手段を有することができる。装置は、記憶手段に動作可能に結合された処理手段を有することもできる。処理手段は、探索された位置が参照フレームのフルピクセル行に位置していないとき、一連のフレームに関連するビデオ情報の1列おきについて第1のサブピクセル位置情報を決定するために、フルピクセル位置情報に垂直補間フィルタを適用することができる。処理手段は、フルピクセル位置情報と同じ精度で第1のサブペル位置情報をメモリに記憶することもできる。処理手段は、探索された位置が参照フレームのフルピクセル列に位置していないとき、ビデオ情報の1列おきについて第2のサブペル位置情報を決定するために、フルピクセル位置情報および第1のサブペル位置情報に水平補間フィルタを適用することもできる。装置は、フルピクセル位置情報、第1および第2の1/2ピクセル位置情報、または第1および第2の1/4ピクセル位置情報に基づいて一連のフレームのピクセルの動きを示すシンタックス要素を生成するための生成手段を有することもできる。装置は、生成されたシンタックス要素に基づいてブロックを符号化するように構成された符号化手段を有することもできる。
【００１０】
本開示の他の特徴および利点は、本開示の態様を例として説明する以下の記載から明らかとなるであろう。
【００１１】
本開示の実施形態の詳細は、その構造と動作の両方に関して、同様の参照番号が同様の部分を指す添付図面の検討によって、部分的に集められ得る。
【図面の簡単な説明】
【００１２】
【図１】ビデオコーディングシステムの機能ブロック図である。
【図２】図1のビデオエンコーダの機能ブロック図である。
【図３】図1のビデオデコーダの機能ブロック図である。
【図４Ａ】動き探索のための参照フレームのグラフィカル表現である。
【図４Ｂ】動き探索中のコード化されたビデオデータフレームおよび参照フレームのグラフィカル表現である。
【図５】動き探索の方法を示すフローチャートである。
【発明を実施するための形態】
【００１３】
添付の図面に関連させて以下に記載される詳細な説明は、様々な実施形態の説明を目的としたものであり、本開示を実践できる唯一の実施形態を表すことを意図したものではない。詳細な説明は、実施形態を完全に理解してもらうために、具体的な詳細を含んでいる。しかしながら、これらの具体的な詳細を用いることなく本開示を実践できることは、当業者には明らかであろう。いくつかの事例では、よく知られている構造および構成要素が、説明の簡潔のために、簡略化した形で示される。
【００１４】
ビデオコーディング
ビデオコーディング規格には、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、および、そのスケーラブルビデオコーディング(SVC)拡張とマルチビュービデオコーディング(MVC)拡張とを含むITU-T H.264(ISO/IEC MPEG-4 AVCとしても知られる)が含まれる。これらの規格のうちの1つまたは複数を、本明細書に記載の実施形態とともに使用することができる。
【００１５】
加えて、高効率ビデオコーディング(HEVC)は、ITU-Tビデオコーディングエキスパートグループ(VCEG)およびISO/IECモーションピクチャエキスパートグループ(MPEG)のビデオコーディング共同研究部会(JCT-VC)によって開発された。以下では「HEVC WD」と呼ばれる、最新のHEVCドラフト仕様は、http://phenix.int-evry.fr/jct/doc_end_user/documents/15_Geneva/wg11/JCTVC-O1003-v1.zipから入手可能である。HEVCに対するマルチビュー拡張、すなわちMV-HEVC、およびより高度な3Dビデオコーディングのための別のHEVC拡張(3D-HEVC)がJCT-3Vによって開発されている一方で、HEVCに対するスケーラブルビデオコーディング拡張、すなわちSHVCがJCT-VCによって開発されている。以下でMV-HEVC WD5と呼ばれるMV-HEVCの最近のワーキングドラフト(WD)は、http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/6_Geneva/wg11/JCT3V-F1004-v6.zipから入手可能である。以下で3D-HEVC WD1と呼ばれる3D-HEVCの最新のWDは、http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/6_Geneva /wg11/JCT3V-F1001-v3.zipから入手可能である。以下でSHVC WD3と呼ばれるSHVCの最近のワーキングドラフト(WD)は、http://phenix.it-sudparis.eu/jct/doc_end_user/documents/15_Geneva/wg11/JCTVC-O1008-v3.zipから入手可能である。
【００１６】
HEVCは、一般に、計算複雑さの増加という犠牲を払って、相当する画像品質でビットレート要件を半分に低減することができる。いくつかの実施形態では、HEVCエンコーダは、計算複雑さ、圧縮率、エラーに対する頑強さ、および符号化遅延時間をトレードオフすることができる。したがって、HEVCは、一般に、より高解像度のビデオおよび向上した並列処理方法をサポートすることができる。
【００１７】
HEVCビデオ符号化レイヤは、インターピクチャおよびイントラピクチャ予測ならびに2次元(2D)変換コーディングを実施する「ハイブリッド」手法を使用する。HEVCエンコーダは、最初に、ピクチャを、第1のピクチャ、すなわちイントラピクチャ予測を使用する、ランダムアクセスポイントの第1のピクチャのブロック形状の領域に分割することができる。本明細書で使用されるイントラピクチャ予測は、一般に、そのピクチャ内の情報のみに基づくピクチャ内のブロックの予測を指すことができる。他のすべてのピクチャについて、インターピクチャ予測が使用される。インターピクチャ予測は、一般に、現在のピクチャを生成するために、予測情報が他のピクチャから使用されるときを指すことができる。予測方法が終了し、ピクチャがループフィルタを通過した後、最後のピクチャ表現が復号ピクチャバッファに記憶される。復号ピクチャバッファに記憶されたピクチャを、他のピクチャの予測に使用することができる。
【００１８】
HEVC規格は、パラメータセットの概念を採用している。HEVCでのシーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、およびビデオパラメータセット(VPS)機構は、コード化されたビデオブロックデータの送信からまれに変化する情報の送信を分離し得る。
【００１９】
HEVCでは、SPSピクチャ、PPS、VPSの識別子は、「ue(v)」という名前の可変長符号化コーディング方法を使用してコード化される。HEVCワーキングドラフトは、「ue(v)」コード化シンタックス要素を、左ビットが先頭の符号なし整数指数ゴロムコード化シンタックス要素として定義する。各SPSはSPS識別子(ID)を含み、各PPSはPPS IDおよびSPS IDを含み、各スライスヘッダは、PPS IDを含む。各バッファリング期間補足エンハンスメント情報(SEI)メッセージもSPS IDを含む。一般に、ビデオコーディングデバイスまたはビデオ処理デバイスは、ネットワークアブストラクションレイヤ(NAL)ユニット内のビットストリームのデータをカプセル化し得る。NALユニットは、ビデオ符号化レイヤ(VCL)NALユニットおよび非VCL NALユニットを含む。VCL NALユニットは、一般に、コード化されたビデオデータおよびパラメータセット、たとえば、SPS、PPS、およびVPSなど、ビデオエンコーダによって使用される情報を含む。非VCL NALユニットは、VCL NALユニットからコード化ピクチャサンプルを復号するために必要ではない情報を包含し得るが、復号、表示、エラーの復元、および他の目的に関係するプロセスを支援し得る、SEIメッセージを定義する情報を含む。
【００２０】
ビデオコーディングシステム
図1は、ビデオコーディングシステムの機能ブロック図である。ビデオコーディングシステム(「システム」)10は、本開示に記載される態様による方法を使用することができる。本明細書で使用され説明される場合、「ビデオコーダ」という用語は、総称的にビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指し得る。
【００２１】
図1に示すように、システム10は、宛先デバイス14によって後の時間に復号されるべき符号化ビデオデータを生成することができるソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備されてもよい。
【００２２】
宛先デバイス14は、リンク16を介して、復号されるべき符号化ビデオデータを受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備えてもよい。一例では、リンク16は、ソースデバイス12が符号化ビデオデータをリアルタイムで宛先デバイス14に直接送信することを可能にする通信媒体を備えてもよい。ソースデバイス12は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調してよく、データは宛先デバイス14へ送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは、1つもしくは複数の物理的伝送線などの任意のワイヤレス通信媒体またはワイヤード通信媒体を備えてもよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースのネットワークの一部を形成してもよい。通信媒体は、ルータ、スイッチ、基地局、または、ソースデバイス12から宛先デバイス14への通信を容易にするために有用であってもよい任意の他の機器を含んでもよい。
【００２３】
符号化データは、出力インターフェース22から記憶デバイス34に出力されてもよい。同様に、符号化データは、入力インターフェースによって記憶デバイス34からアクセスされ得る。記憶デバイス34は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含んでもよい。さらなる例では、記憶デバイス34は、ソースデバイス12によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して記憶デバイス34から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化ビデオデータにアクセスし得る。このことは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。記憶デバイス34からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
【００２４】
本開示の方法は、必ずしもワイヤレスの適用例または設定に限定されない。方法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介するストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の用途など、様々なマルチメディア用途のうちのいずれかをサポートするビデオコーディングに適用されてもよい。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオ放送、および/またはビデオ電話などの用途をサポートするために、一方向または双方向ビデオ送信をサポートするように構成されてもよい。
【００２５】
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。いくつかの場合には、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含んでもよい。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せ、などのソースを含んでもよい。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き電話またはビデオ付き電話を形成し得る。しかしながら、本開示で説明する方法は、一般にビデオコーディングに適用可能であってもよく、ワイヤレス用途および/またはワイヤード用途に適用されてもよい。
【００２６】
ビデオエンコーダ20は、キャプチャされた、あらかじめキャプチャされた、またはコンピュータ生成ビデオを符号化することができる。さらに、いくつかの実施形態では、ビデオデコーダ30は、第1のビットストリームのパラメータセットIDと、一意のパラメータセットIDとに基づいて、第1のビットストリームと第2のビットストリームを区別することができる。他の例では、ソースデバイス12の出力インターフェース22は、符号化ビデオデータを直接、宛先デバイス14に送信することができる。符号化ビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのために記憶デバイス34上に記憶され得る。
【００２７】
宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。いくつかの場合には、入力インターフェース28は、受信機および/またはモデムを含んでもよい。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信され、または記憶デバイス34上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30などのビデオデコーダが使用するための、ビデオエンコーダ20によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバ上に記憶された符号化ビデオデータとともに含まれてもよい。
【００２８】
ディスプレイデバイス32は、宛先デバイス14と一体化されてよく、またはその外部にあってよい。いくつかの例では、宛先デバイス14は、一体化されたディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを含み得る。
【００２９】
ビデオエンコーダ20およびビデオデコーダ30は各々、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な適切なエンコーダ回路のいずれかとして実装され得る。本方法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の方法を実施するために1つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダ内に含まれてもよく、そのいずれかは、それぞれのデバイス内に、組み合わされたエンコーダ/デコーダ(コーデック)の一部として組み込まれてもよい。
【００３０】
HEVCの規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU-T H.264/AVCによる既存のデバイスと比較して、ビデオコーディングデバイスのいくつかの追加の能力を想定する。たとえば、H.264は、9個のイントラ予測符号化モードを提供する一方で、HMは、33個ものイントラ予測符号化モードを提供し得る。
【００３１】
一般に、HMのワーキングモデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含むツリーブロックまたは最大符号化ユニット(LCU)のシーケンスに分割され得ることを記載している。ツリーブロックは、H.264規格のマクロブロックと同様の目的を有する。スライスは、コーディング順にいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分されてもよい。各ツリーブロックは、4分木に従って符号化ユニット(CU)に分割されてもよい。たとえば、ツリーブロックは、4分木のルートノードとして、4つの子ノードに分割されてもよく、各子ノードは、次に、親ノードになり、別の4つの子ノードに分割されてもよい。最後の、分割されていない子ノードは、4分木のリーフノードとして、コーディングノード、すなわちコード化ビデオブロックを備える。コード化ビットストリームに関連付けられたシンタックスデータは、ツリーブロックが分割され得る最大回数を定義してもよく、また、コーディングノードの最小サイズを定義してもよい。
【００３２】
CUは、コーディングノードと、コーディングノードに関連付けられた予測ユニット(PU:prediction unit)および変換ユニット(TU:transform unit)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。CUのサイズは、8×8ピクセルから、最大64×64ピクセルまたはそれ以上のツリーブロックのサイズまでの範囲であってもよい。各CUは、1つまたは複数のPUと1つまたは複数のTUとを含んでもよい。CUに関連付けられたシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を記述してもよい。区分モードは、CUがスキップもしくは直接モードで符号化されているか、イントラ予測モードで符号化されているか、またはインター予測モードで符号化されているかに応じて異なり得る。PUは、形状が非正方形であるように区分され得る。CUに関連付けられたシンタックスデータはまた、たとえば、4分木に従った1つまたは複数のTUへのCUの区分を記述してもよい。TUは、形状において正方形または非正方形であることができる。
【００３３】
HEVC規格は、CUによって異なり得る、TUに従う変換を可能にする。TUは、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定され得るが、これが必ずしも当てはまるとは限らない場合がある。TUは、同じサイズであるか、またはPUよりも小さくてよい。いくつかの例では、CUに対応する残差サンプルは「残差4分木」(RQT)として知られる4分木構造を使用して、より小さいユニットに細分され得る。RQTのリーフノードは、変換ユニット(TU)と呼ばれることがある。TUに関連付けられたピクセル差分値は、変換係数を生成するために変換され得、変換係数は、量子化され得る。
【００３４】
一般に、PUは、予測プロセスに関連するデータを含む。たとえば、PUがイントラモード符号化されたとき、PUは、PUのためのイントラ予測モードを記述するデータを含んでもよい。別の例として、PUがインターモード符号化されたとき、PUは、PUのための動きベクトルを定義するデータを含んでもよい。PUのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、4分の1ピクセル精度もしくは8分の1ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルのための参照ピクチャリスト(たとえば、リスト0、リスト1、もしくはリストC)を記述してもよい。
【００３５】
一般に、TUは変換プロセスおよび量子化プロセスに使用される。1つまたは複数のPUを有する所与のCUは、1つまたは複数の変換ユニット(TU)も含み得る。予測に続いて、ビデオエンコーダ20は、PUに対応する残差値を計算してもよい。残差値は、エントロピーコーディングのためのシリアル化された変換係数を生成するために、TUを使用して変換係数に変換され、量子化され、走査され得るピクセル差分値を備える。本明細書で使用するように、「ビデオブロック」という用語は通常、CUのコーディングノードを指し得る。いくつかの特定の場合には、本開示はまた、ツリーブロック、すなわち、LCU、またはコーディングノードとPUとTUとを含むCUを指すために、「ビデオブロック」という用語を使用し得る。
【００３６】
ビデオシーケンスは、一連のビデオフレームまたはピクチャを含むことができる。ピクチャグループ(GOP)は一般に、一連の1つまたは複数のビデオピクチャを備える。GOPは、GOP中に含まれるピクチャの数を記述するシンタックスデータを、GOPのヘッダ、ピクチャのうちの1つまたは複数のヘッダ、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロック上で動作することができる。ビデオブロックは、CU内のコーディングノードに対応する場合がある。ビデオブロックは固定サイズまたは可変サイズを有してもよく、指定されたコーディング規格に従ってサイズが異なってもよい。
【００３７】
一例として、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の1つの方向は、区分されず、他の方向は、25%および75%に区分される。25%区分に対応するCUの部分は、「n」とその後に続く「上」、「下」、「左」、または「右」の表示によって示される。したがって、たとえば、「2N×nU」は、上に2N×0.5NのPUおよび下に2N×1.5NのPUで水平に区分された2N×2NのCUを指す。
【００３８】
本開示では、「N×N」および「N掛けるN」は、垂直方向および水平方向の寸法に関するビデオブロックのピクセルの寸法、たとえば、16×16ピクセル、または16掛ける16ピクセルを指すために、互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセル(y=16)と水平方向に16ピクセル(x=16)とを有する。同様に、N×Nブロックは、一般に、垂直方向にNピクセルと水平方向にNピクセルとを有し、ここでNは、負ではない整数値を表す。ブロック中のピクセルは、行および列に配列され得る。さらに、ブロックは、必ずしも水平方向において垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックは、N×Mピクセルを備えてもよく、ここでMは、Nと必ずしも等しくない。
【００３９】
ビデオエンコーダ20は、CUのPUを使用するイントラ予測またはインター予測コーディングに続いて、CUのTUに関する残差データを計算してもよい。PUは、空間領域(ピクセル領域とも呼ばれる)におけるピクセルデータを備えることがあり、TUは、残差ビデオデータへの変換、たとえば、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後の、変換領域における係数を備えることがある。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差に対応し得る。ビデオエンコーダ20は、CUに関する残差データを含むTUを形成し、次いで、CUに関する変換係数を生成するためにTUを変換してもよい。
【００４０】
ビデオエンコーダ20は、変換係数を生成するための任意の変換に続いて、変換係数の量子化を実行してもよい。量子化は、一般に、係数を表すために使用されるデータの量をできる限り低減するために変換係数が量子化され、さらなる圧縮が行われるプロセスを指す。量子化プロセスは、係数の一部またはすべてに関連するビット深度を低減してもよい。たとえば、nビット値は、量子化の間にmビット値に切り捨てられてもよく、ここでnは、mよりも大きい。
【００４１】
いくつかの例では、ビデオエンコーダ20は、エントロピー符号化することが可能なシリアル化ベクトルを生成するために、量子化された変換係数を走査するために事前定義された走査順を利用してもよい。他の例では、ビデオエンコーダ20は、適応走査を実行してもよい。ビデオエンコーダ20は、1次元ベクトルを形成するために、量子化された変換係数を走査した後、たとえば、コンテキスト適応型可変長コーディング(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によって使用される符号化されたビデオデータに関連付けられたシンタックス要素をエントロピー符号化してもよい。
【００４２】
CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルにコンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が0ではないかどうかに関連することがある。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLCにおけるコードワードは、比較的より短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構築され得る。このように、VLCの使用は、たとえば、送信されるべき各シンボルに等長コードワードを使用して、ビットの節約を達成し得る。確率の決定は、シンボルに割り当てられたコンテキストに基づき得る。
【００４３】
図2は、図1のビデオエンコーダの機能ブロック図である。ビデオエンコーダ20は、キャプチャされたビデオデータを受信し、ビデオデータをビデオブロックに区分するように構成された区分モジュール35を含み得る。区分モジュール35は、ビデオデータを、スライス、タイル、または他のより大きいユニットに区分し得る。区分モジュール35は、ビデオブロックを、たとえば、LCUおよびCUの4分木構造に従って区分することもできる。ビデオエンコーダ20は、スライスを、複数のビデオブロックに(および場合によっては、タイルと呼ばれるビデオブロックのセットに)分割し得る。
【００４４】
ビデオエンコーダ20は、区分モジュール35に動作可能に結合されるとともに区分化ビデオデータを受信するように構成された予測モジュール41も有し得る。予測モジュール41は、エラー結果(たとえば、コーディングレートおよび歪みのレベル)に基づいて、現在のビデオブロックに対して、複数のイントラコーディングモードのうちの1つ、または複数のインターコーディングモードのうちの1つのような、複数の可能なコーディングモードのうちの1つを選択し得る。予測モジュール41により、ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラおよびインターコーディングを実施することができる。イントラコーディングは、空間的予測を利用して、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために、時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのうちのいずれかを指してもよい。片方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのうちのいずれかを指し得る。
【００４５】
予測モジュール41は、動き推定モジュール42、1つまたは複数の補間フィルタ43、動き補償モジュール44、およびイントラ予測モジュール46を含み得る。これらの構成要素の各々は、ビデオエンコーダ20内の1つまたは複数のプロセッサ中で動作可能に接続または統合されてよい。概念的目的のために別個に論じるが、動き推定モジュール42、補間フィルタ43、動き補償モジュール44、およびイントラ予測モジュール46は高度に統合されてよい。
【００４６】
動き推定モジュール42は、ビデオシーケンスのための所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成されてもよい。1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対する、現在のビデオブロックのそのようなインター予測またはインター予測コーディングは、時間的圧縮をもたらし得る。所定のパターンは、Pスライス、Bスライス、またはGPBスライスとしてシーケンス内のビデオスライスを指定してもよい。本明細書で使用する動き推定は概して、ビデオブロックについて動きを推定する動きベクトルを生成するプロセスを指し得る。動きベクトルは、たとえば、参照フレームまたは参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示してもよい。参照フレームは、予測モジュール41に動作可能に結合された参照ピクチャメモリ64中に記憶されてよい。
【００４７】
いくつかの実施形態では、動きベクトルは、サブ整数ピクセル(「サブペル」)精度を有することができる。たとえば、動きベクトルの水平成分と垂直成分の両方は、それぞれ全整数またはフルペルの成分、およびサブペル成分を有し得る。そのようなサブペル精度は、参照フレーム内のフルペル位置から補間することができる。したがって、分数ピクセル、分数ペル、サブ整数、およびサブピクセルの動き推定という用語は、互換的に使用され得る。補間フィルタ43は、補間された位置を提供することができる。補間フィルタ43は、動き推定および/または動き補償の一部として補間を実行するために、動き推定モジュール42および動き補償モジュール44の一方または両方によって呼び出すことができる。これについては、以下で図4Aおよび図4Bを参照してより詳細に説明する。
【００４８】
予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分のメトリックによって決定され得るピクセル差分の観点で、コーディングされるべきビデオブロックのPUと密接に一致することが見出されたブロックである。いくつかの例では、動き予測モジュール(「予測モジュール」)41は、参照ピクチャメモリ64内に記憶された参照ピクチャのサブ整数ピクセル位置に関する値を計算してもよい。たとえば、予測モジュール41は、参照ピクチャの4分の1ピクセル位置の値、8分の1ピクセル位置の値、または他の分数ピクセル位置の値を補間してもよい。したがって、動き推定モジュール42は、フルピクセル位置および分数ピクセル位置に対する動き探索を実施し、分数ピクセル精度で動きベクトルを出力してもよい。
【００４９】
動き推定モジュール42は、参照ピクチャの予測ブロックの位置とPUの位置とを比較することによって、インターコーディングされたスライス内のビデオブロックのPUに関する動きベクトルを計算することができる。参照ピクチャは、その各々が参照ピクチャメモリ64内に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得る。動き推定モジュール42は、計算された動きベクトルを、動き補償モジュール44およびエントロピー符号化モジュール56に送ればよい。
【００５０】
動き補償は、動き推定によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴い得る。これは、サブピクセル精度に対する補間(たとえば、補間フィルタ43)を含むことができる。動き補償モジュール44は、現在のビデオブロックのPUに関する動きベクトルを受信すると、参照ピクチャリストのうちの1つにおいて動きベクトルが指し示す予測ブロックの位置を特定してもよい。動き補償モジュール44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用されるビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成してもよい。
【００５１】
予測モジュール41内のイントラ予測モジュール46は、空間圧縮を行うために、同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する現在のビデオブロックのイントラ予測コーディングを実施し得る。イントラ予測モジュール46は、上記で説明したように、動き推定モジュール42と動き補償モジュール44とによって実施されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測モジュール46は、現在のブロックを符号化するために使用すべきイントラ予測モードを判断し得る。いくつかの例では、イントラ予測モジュール46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使って、現在のブロックを符号化することができる。たとえば、イントラ予測モジュール46は、様々なテストされたイントラ予測モードのためのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択することができる。レート歪み分析は、符号化ブロックと、符号化ブロックを生成するために符号化された元の非符号化ブロックとの間の歪み量(または誤差)、ならびに、符号化ブロックを生成するために使用されたビットレート(すなわち、ビット数)を決定し得る。イントラ予測モジュール46は、どのイントラ予測モードがブロックに関する最良のレート歪み値を示すのかを判定するために、様々な符号化ブロックに関する歪みおよびレートから比を計算してもよい。
【００５２】
イントラ予測モジュール46は、ブロックに関する選択されたイントラ予測モードを示す情報をエントロピー符号化モジュール56に提供してもよい。エントロピー符号化モジュール56は、選択されたイントラ予測モードを示す情報を符号化してもよい。ビデオエンコーダ20は、送信ビットストリーム内に構成データを含めてよく、構成データは、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックに関する符号化コンテキストの定義、ならびにコンテキストの各々のために使用する、最もあり得るイントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示を含み得る。
【００５３】
予測モジュール41が、インター予測またはイントラ予測のいずれかを介して、現在のビデオブロック用の予測ブロックを生成した後、ビデオエンコーダ20は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。このプロセスは、ピクセル差分値を生じ得る。ピクセル差分値は、ブロックについての残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。予測モジュール41および区分モジュール35に動作可能に結合された加算器50は、この減算演算を実施するように構成され得る1つの構成要素または複数の構成要素を表す。
【００５４】
残差ブロック内の残差ビデオデータは、1つまたは複数のTUに含められ、加算器50に動作可能に結合された変換モジュール52に適用され得る。変換モジュール52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換することができる。変換モジュール52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。予測モジュール41は、得られたイントラまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に与えればよい。得られたイントラまたはインターコード化ブロックは、参照ピクチャとして使用するための符号化ブロックを再構築するために、加算器62にさらに与えられてよい。
【００５５】
ビデオエンコーダ20は、加算器62に動作可能に結合されたフィルタモジュール63も含み得る。フィルタモジュール63は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表し得る。フィルタモジュール63は、インループフィルタであるとして図2に示されているが、他の構成では、フィルタモジュール63は、ポストループフィルタとして実装されてよい。フィルタモジュール63は、参照ピクチャメモリ64に参照ピクチャを与え得る。
【００５６】
変換モジュール52は、得られた変換係数を量子化モジュール54に送り得る。量子化モジュール54は、ビットレートをさらに低減するために、変換係数を量子化し得る。量子化プロセスでは、係数の一部またはすべてに関連するビット深度を小さくしてもよい。量子化の程度は、量子化パラメータを調整することによって修正されてもよい。いくつかの例では、量子化モジュール54は、次いで、量子化された変換係数を含む行列の走査を実施してもよい。いくつかの実施形態では、エントロピー符号化モジュール56が走査を実施してもよい。
【００５７】
エントロピー符号化モジュール56は、量子化に続いて、量子化された変換係数をエントロピー符号化してもよい。たとえば、エントロピー符号化モジュール56は、CAVLC、CABAC、SBAC、および/またはPIPE、コーディングまたは別のエントロピー符号化方法もしくはメソッドを実行し得る。エントロピー符号化モジュール56によるエントロピー符号化に続いて、符号化ビットストリームは、ビデオデコーダ30に送信されてよい。ビットストリームは、ビデオデコーダ30によって後で送信し、または取り出すために、アーカイブされてもよい。エントロピー符号化モジュール56は、コーディングされている現在のビデオスライスに関する動きベクトルおよび他のシンタックス要素をエントロピー符号化してもよい。
【００５８】
ビデオエンコーダ20は、エントロピー符号化モジュール56に動作可能に結合された逆量子化モジュール58も含み得る。逆変換モジュール60も、逆量子化モジュール58および加算器62に動作可能に結合されてよい。逆量子化モジュール58および逆変換モジュール60は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構築することができる。動き補償モジュール44は、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算してもよい。動き補償モジュール44はまた、動き推定において使用されるサブ整数ピクセル値を算出するために、再構築された残差ブロックに補間フィルタ43のうちの1つまたは複数を適用することができる。加算器62は、参照ピクチャメモリ64内に記憶される参照ブロックを生成するために、動き補償モジュール44によって生成された動き補償予測ブロックに再構築残差ブロックを加算してもよい。参照ブロックは、後続のビデオフレームまたはピクチャ内のブロックをインター予測するために、参照ブロックとして動き推定モジュール42および動き補償モジュール44によって使用されてもよい。
【００５９】
図3は、図1のビデオデコーダの機能ブロック図である。ビデオデコーダ30は、エントロピー復号モジュール80、予測モジュール81、逆量子化モジュール86、逆変換モジュール88、加算器90、フィルタモジュール91、および参照ピクチャメモリ92を含み得る。予測モジュール81は、動き補償モジュール82およびイントラ予測モジュール84を含む。ビデオデコーダ30は、いくつかの例では、図2のビデオエンコーダ20に関連して説明した符号化とは概して逆の復号パスを実行し得る。
【００６０】
復号プロセスの間、ビデオデコーダ30は、ビデオエンコーダ20から、符号化されたビデオスライスのビデオブロックと関連するシンタックス要素とを表す符号化されたビデオビットストリームを受信する。ビデオデコーダ30は、ネットワークエンティティ29から符号化ビデオビットストリームを受信してもよい。たとえば、ネットワークエンティティ29は、上記で説明した方法のうちの1つまたは複数を実装するように構成されたサーバ、ビデオエディタ/スライサ、または他のそのようなデバイスであってよい。上記で説明したように、本開示で説明する方法のうちのいくつかは、ネットワークエンティティ29が符号化ビデオビットストリームをビデオデコーダ30に送信する前に、ネットワークエンティティ29によって実装されてもよい。いくつかのビデオ復号システムでは、ネットワークエンティティ29およびビデオデコーダ30は、別々のデバイスの部分であってよいが、他の例では、ネットワークエンティティ29に関して説明される機能は、ビデオデコーダ30を備える同じデバイスによって実行されてもよい。
【００６１】
ビデオデコーダ30のエントロピー復号モジュール80は、ビットストリームをエントロピー復号して、量子化係数、動きベクトル、および他のシンタックス要素を生成する。エントロピー復号モジュール80は、予測モジュール81に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルにおけるシンタックス要素を受信してもよい。
【００６２】
ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、予測モジュール81のイントラ予測モジュール84は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの以前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックの予測データを生成し得る。ビデオフレームがインターコード化(すなわち、B、P、またはGPB)スライスとしてコーディングされたとき、予測モジュール81の動き補償モジュール82は、エントロピー復号モジュール80から受信した動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストの1つの中の参照ピクチャの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ92内に記憶された参照ピクチャに基づいて、デフォルトの構成方法を使用して、参照フレームリスト、リスト0およびリスト1を構成してもよい。
【００６３】
動き補償モジュール82は、動きベクトルおよび他のシンタックス要素を構文解析することによって、現在のビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在のビデオブロックの予測ブロックを生成するために予測情報を使用する。たとえば、動き補償モジュール82は、ビデオスライスのビデオブロックをコーディングするために使用された予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスのための参照ピクチャリストのうちの1つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測状態と、現在のビデオスライス内のビデオブロックを復号するための他の情報とを決定するために、受信したシンタックス要素の一部を使用する。
【００６４】
動き補償モジュール82はまた、補間フィルタ(この図では図示せず)に基づいて補間を実施してもよい。いくつかの実施形態では、ビデオデコーダ30内の補間フィルタは、補間フィルタ43(図2)と同様とすることができる。動き補償モジュール82は、補間フィルタを使用して、いくつかの参照ブロック内のサブ整数ピクセルまたはサブペル位置の補間値を計算し得る。いくつかの実施形態では、動き補償モジュール82は、受信したシンタックス要素を介してビデオエンコーダ20によって使用された補間フィルタを判定し、同じまたは類似の補間フィルタ43を使用して予測ブロックを生成することができる。
【００６５】
逆量子化モジュール86は、ビットストリームの中で提供されエントロピー復号モジュール80によって復号された量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライス中の各ビデオブロックのための、ビデオエンコーダ20によって計算された量子化パラメータの使用を含み得る。逆変換モジュール88は、ピクセル領域における残差ブロックを生成するために、変換係数に逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを適用する。
【００６６】
動き補償モジュール82が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックに関する予測ブロックを生成した後、ビデオデコーダ30は、逆変換モジュール88からの残差ブロックを、動き補償モジュール82によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成することができる。加算器90は、この加算演算を実施する1つまたは複数の構成要素を表すことができる。必要に応じて、(コーディングループ内またはコーディングループ後のいずれかの)ループフィルタもまた、ピクセル遷移を平滑化するため、またはさもなければビデオ品質を改善するために使用されてよい。フィルタモジュール91は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表すことを意図している。フィルタモジュール91は、インループフィルタであるとして示されているが、いくつかの実施形態では、フィルタモジュール91は、ポストループフィルタとして実装されてよい。次いで、所与のフレームまたはピクチャ中の復号ビデオブロックは、参照ピクチャメモリ92内に記憶され、参照ピクチャメモリ92は、後続の動き補償のために使用される参照ピクチャを記憶する。参照ピクチャメモリ92はまた、図3のディスプレイデバイス32などのディスプレイデバイス上で後に提示するための復号ビデオを記憶する。
【００６７】
図4Aは、動き探索のための参照フレームのグラフィカル表現である。参照フレーム400は、ビデオデータの8×8ピクセルブロックとして示されている。いくつかの実施形態では、参照フレーム400の寸法は、8×8より大きくてもよい。したがって、寸法は説明のためのものであり、限定的なものと見なされるべきではない。したがって、参照フレーム400は、64ピクセル(8×8)を有することができる。示されているように、個々のピクセルの各々は、さらに、4×4のサブピクセルに分割することができる。参照フレーム400内の四角の各々は、フルペルまたはサブペルの位置を示す。参照フレーム400は、グレー色の大文字「A〜H」および「A1〜H1」でフルペル位置を示す。サブペル位置は、小文字「a〜o」で示されている。ライトグレー色のサブペル位置b、h、jは、ハーフペル位置を表す。すべて白色のサブペル位置a、c、d、e、f、g、i、k、l、m、n、およびoは、クォーターペル(Qペル)位置を表す。参照フレーム400内の位置の一部のみがラベル付けされているが、ラベリング規則およびフルペル位置からサブペル位置への関係は、参照フレーム400全体にわたって繰り返すことができることを理解されたい。
【００６８】
以下の説明は、ビデオエンコーダ20における予測モジュール41および動き推定モジュール42(図2)に関して提供される。しかしながら、いくつかの実施形態では、以下の説明は、ビデオデコーダ30(図3)における予測モジュール81および動き補償モジュール82にも適用することができる。
【００６９】
動き推定モジュール42は、参照フレーム400のフルペルおよびサブペル位置に対して現在のフレームについての動き探索を行うことができる(図4Bに関連して後述する)。動き探索モジュール42は、動き探索の解像度および精度に応じて、フルペル(たとえば、ブロックA〜HおよびA1〜H1)およびサブペル位置(a〜o)を参照として使用して分数ピクセル精度で動きベクトルを出力することができる。分数ピクセル動き推定では、動き推定モジュール42は、フルペル位置以外の位置への移動を示す動きベクトルを計算することができる。したがって、動きベクトルは、たとえば、1/2ピクセル精度、1/4ピクセル精度、1/8ピクセル精度、または他の分数ピクセル精度などの分数ピクセル精度を有し得る。したがって、分数ピクセル動き推定は、予測モジュール41が整数ピクセル(またはフルピクセル)位置よりも高い精度で動きを推定することを可能にし、したがって、予測モジュール41は、より正確な予測ブロックを生成することができる。
【００７０】
サブペル動き探索は、動き推定の解像度の向上および望ましい圧縮比を達成するために重要であり得る。しかしながら、動き推定モジュール42は、サブピクセル(たとえば、ハーフペル、クォーターペル)予測のために、たとえば補間フィルタ43によって補間フィルタリングのための重要なリソースを要求する可能性があるので、計算複雑さは比較的高くなり得る。計算複雑さを低減するために、絞り込み検索(refinement search)を適用することができる。絞り込み検索の間、ビデオエンコーダ20は、フルペル動きを精緻化するためにサブペル動き探索を適用することができる。フルペル動きは、サブピクセル位置を補間することなく、(たとえば、参照ピクチャメモリ64に記憶される)参照フレーム400上の動き探索アルゴリズムを介して取得することができる。ひとたびフルペル位置が取得されると、隣接するサブペル位置を分解して信号および動き予測を精緻化することができる。いくつかの実施形態では、補間フィルタ43は、少なくとも2つの精緻化の段階を適用するように構成することができる。第1の段階は、フルペル位置を中心とするハーフペル補間であり、第2の段階は、ハーフペル位置を中心とするQペル補間とすることができる。
【００７１】
HEVCでは、たとえば、Qペル補間プロセスは、2つの1D補間プロセス(たとえば、水平および垂直)で実施することができる。これにより、たとえば、フレーム400のQペル位置a、c、d、e、f、g、i、k、l、m、n、およびoが生成されることになる。入力がフルペル位置の8ビット表現である場合、第1の1D補間の出力(および第2の1D補間の入力)は、8ビットよりも大きい(たとえば、16ビット)可能性がある。したがって、いくつかの実施形態では、メモリは16ビット入力のストレージを収容することができる。いくつかの他の実施形態では、ストレージはより大きくてよい。精度は2倍になり得るので、第1の補間はプロセスのためにより多くのサンプルを必要とする可能性があるが、第2の補間は、第1の補間の2倍の複雑さ(たとえば、8ビットから16ビットの入力ビット精度)であり得る。たとえば、第1の補間は8より多い行または列を有し得る。いくつかの実施形態では、補間フィルタは、16ビット未満の精度を出力することができ、この場合、ストレージも16ビット未満である。いくつかの他の実施形態では、精度は、16ビット未満に人工的に切り捨てられ、次いで、データをパックすることができる。
【００７２】
いくつかの実施形態では、サブペル位置補間によって、ビデオエンコーダ20は、計算要件を低減するために、参照フレーム400全体を事前計算し、メモリ(たとえば、メモリ34または参照ピクチャメモリ64)内に記憶することができる。これは、現在のフレーム内の各ブロックのモード決定および動き探索の間に、各サブペル位置が数回アクセスされ得るので、有益であり得る。しかしながら、ビデオエンコーダ20の速度は、補間された位置を記憶することによってメモリ使用量が増加するという問題があり得る。したがって、いくつかの実施形態では、ビデオエンコーダ20は、ハーフペル(Hペル)位置のみをメモリ34に記憶し得る。これは、より高いメモリ使用量とより低い計算要件との間のトレードオフを提供することができる。次いで、記憶されたハーフペル位置から、必要に応じて、Qペル位置を計算(たとえば補間)することができる。
【００７３】
いくつかの実施形態では、動き推定モジュール42は、8ビット入力による動きソリューションのための補間を実行することができる。処理は、16ビットまたは32ビットのソリューションの使用を含むことができるが、たとえば、HEVCの場合のように、出力を8ビットに切り捨てることができる。
【００７４】
いくつかの実施形態では、Qペル位置a、c、dおよびlを取得するための最も直接的な、または最も複雑でない方法は、フルペル位置Dにおいて水平または垂直補間フィルタ43を適用することであり得る(8フルペルピクセルA〜Hのフィルタサポートにより)。これは、参照フレーム400内のハーフペル位置bを導出することができる。動き推定モジュール42が水平補間フィルタ43による補間処理を開始する場合、垂直補間フィルタ43は、続いて、残りのハーフペル位置hおよびj、ならびにQペル位置を(たとえば、ハーフペル位置から)導出することができる。たとえば、位置e、i、およびmは、Qペル位置aを使用して垂直補間フィルタから導出することができる。さらに、位置bを使用して垂直補間フィルタ43から位置fおよびnを導出することができ、位置cを使用して垂直補間フィルタ43から位置g、kおよびoを導出することができる。位置aおよび位置cで導出された一時データは、垂直フィルタリングを適用する前に、記憶デバイス34内に記憶することができる。いくつかの実施形態では、一時データは、補間フィルタ43の設計に応じて、8ビットまたは16ビットで記憶することができる。いくつかの場合には、上述のように、精度がストレージによって許容されるよりも大きい。
【００７５】
しかしながら、補間処理が垂直補間フィルタ43で開始され、水平補間フィルタ43が後続する場合、位置e、f、およびgを位置dから導出することができ、位置iおよびkを位置hから導出することができ、位置m、n、oを位置lから導出することができる。位置dおよび位置lの一時データは、水平フィルタリングを適用する前に、8ビットまたは16ビットで記憶することができる。
【００７６】
いくつかの実施形態では、サブサンプリングされた誤差測定と結合されたこの第2の手法(たとえば、垂直補間および次いで水平補間)は、動き探索の複雑さおよび生じた計算をさらに低減することができる。サブサンプルされた誤差測定では、予測誤差を測定するために、参照フレーム400内のデータの1行おきのみが使用される。したがって、ビデオエンコーダ20はさらに、エラー測定に関する計算を低減し、サブペル位置情報を取り出すためにメモリ64に繰り返しアクセスするための必要を低減することができる。
【００７７】
図4Bは、サブサンプル誤差測定を使用する動き推定のグラフィカル表現である。現在のフレーム450は、動き推定のために参照フレーム400(図4A)を使用して、ビデオエンコーダ20によって符号化することができる。参照フレーム400は、上述したものと同様であるが、サブペル位置情報は図示されていない。現在のフレーム450の符号化が進むにつれて、動き推定モジュール42は、動き推定のために参照フレーム400からのフルピクセルまたはサブペル位置を使用することができる。
【００７８】
現在のフレーム450は、参照フレーム400と同様に、ビデオデータの8×8ピクセルブロックとして示されている。現在のフレーム450は、ビデオのより大きいフレームの一部である可能性があるので、8×8ピクセルの図は限定的であると見なされるべきではない。現在のフレーム450のサイズは、たとえば、HEVCにおける現在のフレーム450を符号化するために、必要に応じて、たとえば16×16、32×32、64×64ピクセルまたはそれ以上など、より大きいフレームとすることもできる。現在のフレーム450は、必要に応じて非対称とすることもできる。いくつかの実施形態では、現在のフレーム450内の各ブロックは、フルペル位置またはサブペル位置を表すことができる。
【００７９】
いくつかの実施形態では、ビデオエンコーダ20は、サブサンプルされた誤差測定を使用して計算複雑さを低減することができる。サブサンプリングされた誤差測定は、参照フレーム400および現在のフレーム450内のビデオデータの1行おきを使用して、予測誤差を測定する、またはさもなければ決定することができる。そのような実施形態では、動き推定モジュール42は、最初に、ビデオデータに垂直補間フィルタ43を適用することができる。水平補間フィルタ43は、続いて、1つおきの垂直方向に補間された行(たとえば、行0、行2、行4、行6)においてサブサンプリングされた誤差測定を使用することができる。サブサンプリングされた誤差測定の実施により、水平補間の間の動き探索のために参照フレーム400内のビデオデータの1行おきのみが必要とされ、計算複雑さが低減される。同様に、現在のフレーム450の1行おきのみが動き推定に使用され得る。
【００８０】
いくつかの他の実施形態では、動き推定モジュール42は、垂直補間の間に1行おきのみを考慮するように(ビデオエンコーダ20において)追加の命令を実施することができる。水平補間が続き得る。したがって、垂直方向補間フィルタ43は、データの1行おきに適用され、垂直補間から導出された位置に水平補間フィルタ43が続き得る。したがって、最初に垂直補間フィルタリングが適用される場合、水平補間フィルタリングの間に計算を半分に低減することができる。
【００８１】
一例では、ビデオエンコーダ20は、本明細書ではピクセル452とも呼ばれる、現在のフレーム450の左上のピクセル「k」で始まるピクセルごとに現在のフレーム450を符号化することができる。動き推定モジュール42は、ピクセル452に最もぴったり一致する参照フレーム400内にコロケートされたピクセルを使用してピクセル452の動きベクトルを生成するために、参照フレーム400を使用することができる。図示のように、コロケートされたピクセル454が行2、列1に見つけられる。次いで、動き推定モジュール42は、最も一致するブロック454とブロック452の位置の間の差に基づいて動きベクトルを決定することができる。図示の例では、動きベクトルは(-2, -1)とすることができる。いくつかの実施形態では、コロケートされたピクセル454は、フルペルまたはサブペルの位置とすることができる。
【００８２】
いくつかの実施形態では、動き推定モジュール42が動き探索を行うとき、ビデオエンコーダ20は、サブサンプリングされた誤差測定のために、参照フレーム400の1行おきを補間するだけでよい。補間されたピクセル位置は、白い四角で示される。グレーの四角は、補間されていない位置を示し、そうでなければ動き探索の目的で無視される可能性がある。少し図4Aに戻ると、いくつかの実施形態では、これは、行(および対応するサブペル位置)1、3、5、および7の補間を省略することに対応することができる。したがって、ビデオエンコーダ20は、図4Bに示すように、動き推定に行0、2、4、および6を使用することができる。
【００８３】
いくつかの実施形態では、動き推定モジュール42は、動き探索のために現在のフレーム450内の1行おきのみを考慮し得る。エンコーダが動き探索のために考慮する行は、参照フレーム400と同様に白いブロックで示されている。参照フレーム400内のビデオデータの1行おきの使用により、補間の数および関連する計算が低減される。これは、計算複雑さの低減とコーディング効率との間のいくつかのトレードオフをもたらす可能性がある。
【００８４】
以下のTable 1(表1)は、サイズX×Yを有するPUを取得するためにいくつの8ビット補間が必要であるかを示している。簡略化されていない場合、ビデオデコーダ30は、符号化されたデータに直接働くことができる。複雑さは、16ビット補間または2つの8ビット補間によって決定づけられる可能性がある。たとえば、エンコーダまたはデコーダの行(1)および(2)において、最小のPU(たとえば、X=8およびY=4)について、位置e、g、m、およびoを分解するための計算は、(8+7)*4+8*4*2=124である。行(3)に示すように、たとえば、水平補間フィルタの前に垂直補間フィルタが適用され、水平補間の間にサブサンプリングを行うと、計算を(8+7)*4+8*4/2=76に低減することができる。行(3)は、予測モジュール41への垂直サブサンプリング命令のない計算複雑さを示すことに留意されたい。たとえば、垂直補間の間、各行についてのサブペル位置を計算することができるが、1行おきに水平補間を行うとき、計算された位置の半分(たとえば、1行おき)は無視され得る。
【００８５】
【表１】
2018511230.tif 000003
【００８６】
さらに、予測モジュール41は、8個のQペルネイバーについての予測をより良く解決するために、フルペルまたはハーフペルの位置のうちの1つを中心とする絞り込み検索を適用することができる。したがって、予測モジュール41は、第1の1D補間を記憶デバイス34に記憶することができ、3つまでの追加のQペル位置について記憶デバイス34を参照することができる。たとえば、位置e、f、およびgはすべて位置dから導出することができる。したがって、Qペル動き探索は、位置jで開始することができ、計算は(X+7)*Y*3+(X*Y*2*8)から(X+7)*Y*2+(X*Y/2)*8に低減される。
【００８７】
サブサンプルの場合の複雑さをさらに低減するために、位置bおよびjで検索が開始される場合、Qペル位置m、o、e、およびgは、異なるように計算することができる。いくつかの実施形態では、位置lからQペル位置mおよびoを導出し、位置dからQペル位置eおよびgを導出する代わりに、位置mおよびoを位置nから導出し、位置eおよびgを位置fから導出することができる。その結果、行(3)に示すように(X+7)*Y*2だけ計算を低減することができる。
【００８８】
いくつかの実施形態では、追加の垂直サブサンプル命令を含めることができる。そのような垂直サブサンプル命令では、予測モジュール41は、(行(3)のようにすべての行とは反対に)1行おきに垂直補間を実行し、行(4)に示すように計算をさらに低減することができる。これは、たとえば位置a、c、d、l、f、n(X*Y/2)について示されている。したがって、1行おきにサブペル位置が補間(垂直補間)され、次いで、水平補間の間に、1行おきに計算された位置を使用することができる。
【００８９】
図5は、動き探索の方法の一実施形態を示すフローチャートである。方法500は、符号化される参照フレーム400のハーフペルおよびQペル位置情報を導出するために、サブピクセル動き探索のために動き推定モジュール42において使用することができる。予測モジュール41が一連のビデオフレームに関連するフルピクセル位置情報を記憶デバイス34に記憶できるとき、方法500は、ステップ505から開始することができる。フルピクセル位置情報は、ビデオエンコーダ20によって受信されたビデオデータに関連し、参照フレーム400(図4Aおよび図4B)をさらに含むことができる。
【００９０】
決定ステップ510において、動き推定モジュール42は、探索された位置(ハーフペル、Qペル)が、ステップ505で保存されたフルピクセル位置を有する参照フレーム400の行(「フルペル行」)に位置するかどうかを決定することができる。たとえば、図4Aの参照フレーム400を参照すると、ハーフペル位置bは、特にフルペル位置DおよびEを有するフルペル行に位置する。たとえば、動き推定モジュール42が位置h、i、j、およびkを探索している場合、これらのハーフペルおよびQペル位置は、フルペル行にはない。ビデオエンコーダ20が、探索された位置がフルピクセル行にないと判定した場合、方法500は、ステップ515に進む。ステップ515において、動き推定モジュール42は、第1のサブペル位置情報を決定するために、フルピクセル位置情報(たとえば、位置D、E、E1、およびF1)に垂直補間フィルタ43を適用することができる。いくつかの実施形態では、動き推定モジュール42は、フルピクセル位置情報の1行おきに垂直補間フィルタ43をさらに適用することができる(たとえば、サブサンプル誤差測定)。これは、Table 1(表1)で上述したように計算複雑さを低減することができるが、追加の命令(たとえば、Table 1(表1)の行(4))を必要とする可能性がある。サブペル位置情報は、参照フレーム400または一連のフレームに関連するビデオ情報の1列または1行おきについての第1の1/4ピクセル位置情報または第1の1/2ピクセル位置情報とすることができる。
【００９１】
ステップ520において、動き推定モジュール42は、ステップ505において、フルピクセル位置情報と同じ精度で第1のサブペル位置情報をメモリ(たとえば、記憶デバイス34)に記憶することができる。
【００９２】
ステップ510に戻ると、フルピクセル行において探索が行われる場合、またはステップ520に続いて、方法500は、決定ステップ525に移動することができる。
【００９３】
決定ステップ525において、動き推定モジュール42は、探索された位置がフルピクセル列にあるかどうかを決定することができる。たとえば、ステップ515において上記と同様に、サブペル位置a、e、i、およびmは、サブペル位置d、h、およびlと同様に、フルピクセル列にない。したがって、ステップ530において、探索された位置がフルピクセル列にない場合、動き推定モジュール42は、第2のサブペル位置情報を決定するために、水平補間フィルタをフルピクセル位置情報、第1のサブピクセル位置情報に適用することができる。第2のサブペル位置情報は、ビデオ情報の1列おきについての第2の1/4ピクセル位置情報または第2の1/2ピクセル位置情報とすることができる。したがって、動き推定モジュール42は、水平補間がビデオデータの1行おきにおいて行われるので、サブサンプル誤差測定を実施することによって計算を1/2に低減することができる。水平補間の間に考慮されない行は無視することができる。上述のように、垂直補間フィルタ43がステップ515においてフルピクセル位置情報の1行おきに適用される場合、計算はTable 1(表1)の行(4)に示されるようにさらに低減される。
【００９４】
決定ステップ525で、探索された位置がフルピクセル列にある場合、またはステップ530の後に、方法500は、ステップ535に移動する。
【００９５】
ステップ535で、予測モジュールは、フルピクセル位置情報ならびに/または第1および第2のサブペル位置情報に基づいて、一連のフレームのブロック/ピクセルの動きを示すシンタックス要素を生成することができる。上述したように、サブペル位置情報は、少なくともハーフペルまたはQペル位置情報とすることができる。
【００９６】
ステップ540において、ビデオエンコーダ20は、ステップ535で生成されたシンタックス要素に基づいて、ビデオデータのブロックを符号化することができる。
【００９７】
本明細書で開示した情報および信号は、種々の異なる技術および方法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって言及されることがあるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表されてもよい。
【００９８】
本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装される場合がある。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、一般にそれらの機能性に関して上述した。そのような機能性がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約によって決まる。当業者は、説明した機能を特定の適用例ごとに様々な方式によって実装してもよいが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００９９】
本明細書で説明された実施形態は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような実施形態は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。モジュールまたは構成要素として記載された任意の特徴は、集積論理デバイス内で一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアに実装された場合、本方法は、実行されると、上記で説明された方法のうちの1つまたは複数を実施する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、FLASHメモリ、磁気または光学データ記憶媒体などのような、メモリまたはデータ記憶媒体を含み得る。方法は、追加または代替として、伝搬される信号または波などの、命令またはデータ構造の形態でプログラムコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、かつ/または実行され得る、コンピュータ可読通信媒体によって少なくとも部分的に実現され得る。
【０１００】
プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価の集積論理回路もしくはディスクリート論理回路などの、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示に記載された方法およびプロセスのいずれかを実施するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、プロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実現される場合もある。したがって、本明細書で使用する「プロセッサ」という用語は、本明細書で説明した方法の実装に適した、前述の構造、前述の構造または任意の他の構造もしくは装置の任意の組合せのうちの任意のものを指し得る。加えて、いくつかの態様では、本明細書で説明する機能は、符号化および復号のために構成された専用のソフトウェアモジュールもしくはハードウェアモジュール内に設けられてよく、または組み合わされたビデオエンコーダ/デコーダ(コーデック)に組み込まれてもよい。
【０１０１】
本開示の実施形態は、特定の実施形態について上記で説明されているが、本開示の多くの変形が可能である。たとえば、様々な構成要素の数は増大または減少されてよく、電源電圧を決定するモジュールおよびステップは、周波数、別のシステムパラメータ、またはパラメータの組合せを決定するように修正されてよい。加えて、様々な実施形態の特徴は、上に記載されたものと異なる組合せで組み合わせることができる。
【０１０２】
当業者は、本明細書に開示された実施形態に関連して記載される様々な例示的なブロックおよびモジュールが、様々な形式で実装できることを理解するであろう。いくつかのブロックおよびモジュールは、上で、それらの機能性の点から一般的に記載されてきた。どのようにしてそのような機能性が実装されるのかは、全体システムに課された設計制約に依存する。当業者は、記載された機能性を、各具体的な応用のために様々なやり方で実装できるが、そのような実装の判断は、本開示の範囲からの逸脱をもたらすと解釈されるべきでない。加えて、モジュール、ブロック、またはステップ内での機能のグループ分けは、記載を容易にするためである。特定の機能またはステップは、本開示から逸脱することなく、1つのモジュールもしくはブロックから移動され、または複数のモジュールもしくはブロックに分散されてよい。
【０１０３】
開示された実施形態の上記の説明は、当業者が本開示を作製または使用することを可能にするように提供される。これらの実施形態への様々な修正は、当業者には容易に明らかとなるであろう。また、本明細書に記載された一般原理は、本開示の精神および範囲から逸脱することなく他の実施形態に適用することができる。こうして、本明細書に提示された記載および図面は、本開示の現在の好ましい実装形態を表しており、したがって本開示により幅広く企図される主題を代表することを理解されたい。本開示の範囲は、当業者には明らかとなり得る他の実施形態を完全に包含し、本開示の範囲は、したがって、添付の特許請求の範囲以外には制限されないことをさらに理解されよう。
【符号の説明】
【０１０４】
10  ビデオコーディングシステム
12  ソースデバイス
14  宛先デバイス
16  リンク
18  ビデオソース
20  ビデオエンコーダ
22  出力インターフェース
28  入力インターフェース
29  ネットワークエンティティ
30  ビデオデコーダ
32  ディスプレイデバイス
34  記憶デバイス
35  区分モジュール
41  予測モジュール
42  動き推定モジュール
43  補間フィルタ
44  動き補償モジュール
46  イントラ予測モジュール
50  加算器
52  変換モジュール
54  量子化モジュール
56  エントロピー符号化モジュール
58  逆量子化モジュール
60  逆変換モジュール
62  加算器
63  フィルタモジュール
64  参照ピクチャメモリ
80  エントロピー復号モジュール
81  予測モジュール
82  動き補償モジュール
84  イントラ予測モジュール
86  逆量子化モジュール
88  逆変換モジュール
90  加算器
91  フィルタモジュール
92  参照ピクチャメモリ
400  参照フレーム
450  現在のフレーム
452  ピクセル
【図１】
2018511230.tif 000004
【図２】
2018511230.tif 000005
【図３】
2018511230.tif 000006
【図４Ａ】
2018511230.tif 000007
【図４Ｂ】
2018511230.tif 000008
【図５】
2018511230.tif 000009
【手続補正書】
【提出日】平成29年9月7日(2017.9.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サブペル精度でビデオデータを符号化するために、符号化される現在のフレーム内のピクセル位置と参照フレーム内の対応する探索された位置との間のピクセルの動きを決定する方法であって、
前記参照フレームのビデオ情報の複数の行に関連するフルピクセル位置情報をメモリに記憶するステップと、
前記探索された位置が前記参照フレーム内のフルピクセル行に位置していないとき、前記参照フレームのビデオ情報の前記複数の行に関連する前記フルピクセル位置情報に垂直補間フィルタを適用することによって、前記参照フレームのビデオ情報の前記複数の行におけるピクセルの第1のサブペル位置情報を決定するステップと、
前記探索された位置が前記参照フレーム内のフルピクセル列に位置していないとき、前記フルピクセル位置情報の1行おき、および前記第1のサブペル位置情報に水平補間フィルタを適用することによって、ビデオ情報の前記複数の行に関連する前記フルピクセル位置情報の前記1行おきについて第2のサブペル位置情報を決定するステップと、
前記フルピクセル位置情報、前記第1のサブペル位置情報、および前記第2のサブペル位置情報に基づいて、前記現在のフレームのピクセルの動きを示すシンタックス要素を生成するステップと、
前記生成されたシンタックス要素に基づいてブロックを符号化するステップと
を含む方法。
【請求項２】
前記第1のサブペル位置情報を8ビットのサブペル位置情報に切り捨てるステップと、
前記水平補間フィルタを適用する前に、前記8ビットのサブペル位置情報を前記メモリに記憶するステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
前記垂直補間フィルタを、前記参照フレームに関連する前記フルピクセル位置情報の1行おきに適用するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記メモリに記憶された前記フルピクセル位置情報に基づいて、前記参照フレームに関連する複数のハーフペル位置を決定するステップと、
前記ハーフペル位置に関連するハーフペル位置情報を前記メモリに記憶するステップと
をさらに含む、請求項2に記載の方法。
【請求項５】
ビデオデータを符号化するために、サブピクセル精度を使用して、符号化される現在のフレーム内のピクセル位置と参照フレーム内の対応する探索された位置との間のピクセルの動きを決定する方法であって、
前記参照フレームのビデオ情報に関連するフルピクセル位置情報をメモリに記憶するステップと、
前記参照フレーム内の前記探索された位置が前記参照フレーム内のフルピクセル行に位置していないとき、
第1のサブペル位置情報を決定するために、前記参照フレームの前記ビデオ情報に関連する前記フルピクセル位置情報の1行おきに垂直補間フィルタを適用するステップと、
前記第1のサブペル位置情報を前記メモリに記憶するステップと、
探索された位置が前記参照フレーム内のフルピクセル列に位置していないとき、
ビデオ情報の前記1行おきについて第2のサブペル位置情報を決定するために、前記フルピクセル位置情報および前記第1のサブペル位置情報に水平補間フィルタを適用するステップと、
前記フルピクセル位置情報、前記第1のサブペル位置情報、および前記第2のサブペル位置情報に基づいて、前記現在のフレーム内の前記ピクセルのピクセルの動きを示すシンタックス要素を生成するステップと、
前記生成されたシンタックス要素に基づいてブロックを符号化するステップと
を含む方法。
【請求項６】
前記メモリに記憶された前記フルピクセル位置情報に基づいて、前記参照フレームに関連する複数のハーフペル位置を決定するステップと、
前記ハーフペル位置に関連するハーフペル位置情報を前記メモリに記憶するステップと
をさらに含む、請求項5に記載の方法。
【請求項７】
前記ハーフペル位置情報を記憶するステップが、前記垂直補間フィルタを適用する前に行われる、請求項6に記載の方法。
【請求項８】
前記第1および第2のサブペル位置情報が、ハーフペル位置情報を含み、前記ハーフペル位置情報が、2つの隣接するフルピクセル位置の中間に位置するハーフペル位置を示す、請求項5に記載の方法。
【請求項９】
前記第1および第2のサブペル位置情報が、クォーターペル位置情報を含み、前記クォーターペル位置情報が、ハーフペル位置と隣接するフルピクセル位置との中間に位置するクォーターペル位置を示す、請求項5に記載の方法。
【請求項１０】
前記第1および第2のサブペル位置情報が、フルピクセル位置情報と同じ精度で前記メモリに記憶される、請求項5に記載の方法。
【請求項１１】
前記参照フレームと前記現在のフレームとの間のピクセルの動きが、ベクトルによって示され、前記ベクトルが、前記第1のサブペル位置情報および前記第2のサブペル位置情報のうちの少なくとも1つを参照する、請求項5に記載の方法。
【請求項１２】
前記探索された位置が前記参照フレーム内のフルピクセル行に位置するとき、前記フルピクセル位置情報に基づいて前記現在のフレームのピクセルの動きを示す前記シンタックス要素を生成するステップをさらに含む、請求項5に記載の方法。
【請求項１３】
前記探索された位置が前記参照フレーム内のフルピクセル列に位置するとき、前記フルピクセル位置情報に基づいて前記現在のフレームのピクセルの動きを示す前記シンタックス要素を生成するステップをさらに含む、請求項5に記載の方法。
【請求項１４】
ビデオを符号化するために、サブピクセル精度を使用して、符号化される現在のフレーム内のピクセル位置と参照フレーム内の対応する探索された位置との間のピクセルの動きを決定するためのデバイスであって、
ビデオ情報の複数の行に関連するフルピクセル位置情報を動き探索のためにメモリに記憶するように構成されたメモリと、
前記メモリに動作可能に結合されたプロセッサとを備え、前記プロセッサが、
前記探索された位置が参照フレームのフルピクセル行に位置していないとき、ビデオの一連のフレームに関連する前記フルピクセル位置情報に垂直補間フィルタを適用することによって、前記参照フレームのビデオ情報の前記複数の行におけるピクセルの第1のサブペル位置情報を決定し、
フルピクセル位置情報と同じ精度で前記第1のサブペル位置情報を前記メモリに記憶し、
探索された位置が前記参照フレームのフルピクセル列に位置していないとき、前記フルピクセル位置情報の1行おき、および前記第1のサブペル位置情報に水平補間フィルタを適用することによって、ビデオ情報の前記複数の行に関連する前記フルピクセル位置情報の1行おきについて第2のサブペル位置情報を決定し、
前記フルピクセル位置情報、前記第1のサブペル位置情報、および第2のサブペル位置情報に基づいて、前記一連のフレームのピクセルの動きを示すシンタックス要素を生成し、
前記生成されたシンタックス要素に基づいてブロックを符号化する
ように構成される、
デバイス。
【請求項１５】
前記プロセッサが、前記ビデオ情報の前記第1のサブペル位置情報を決定するために、前記参照フレームに関連するビデオ情報の1行おきに前記垂直補間フィルタを適用するようにさらに構成される、請求項14に記載のデバイス。
【請求項１６】
前記プロセッサが、
前記メモリに記憶された前記フルピクセル位置情報に基づいて、前記参照フレームに関連するハーフペル位置情報を決定し、
前記ハーフペル位置情報を前記メモリに記憶し、前記ハーフペル位置情報が複数のハーフペル位置に関連する、
ようにさらに構成される、請求項14に記載のデバイス。
【請求項１７】
前記プロセッサが、前記垂直補間フィルタを適用する前に前記ハーフペル位置情報を記憶するように構成される、請求項16に記載のデバイス。
【請求項１８】
前記第1および第2のサブペル位置情報が、ハーフペル位置情報を含み、前記ハーフペル位置情報が、2つの隣接するフルピクセル位置の中間に位置するハーフペル位置を示す、請求項14に記載のデバイス。
【請求項１９】
前記第1および第2のサブペル位置情報が、クォーターペル位置情報を含み、前記クォーターペル位置情報が、ハーフペル位置と隣接するフルピクセル位置との中間に位置するクォーターペル位置を示す、請求項14に記載のデバイス。
【請求項２０】
前記第1および第2のサブペル位置情報が、フルピクセル位置情報と同じ精度で前記メモリに記憶される、請求項14に記載のデバイス。
【請求項２１】
前記参照フレームと前記現在のフレームとの間のピクセルの動きが、ベクトルによって示され、前記ベクトルが、前記第1のサブペル位置情報および前記第2のサブペル位置情報のうちの少なくとも1つを参照する、請求項14に記載のデバイス。
【請求項２２】
ビデオデータを符号化するために、サブピクセル精度を使用して、符号化される現在のフレーム内のピクセル位置と参照フレーム内の対応する探索された位置との間のピクセルの動きを決定するための装置であって、
前記参照フレームのビデオ情報の複数の行に関連するフルピクセル位置情報を動き探索のためにメモリに記憶するように構成された記憶手段と、
前記記憶手段に動作可能に結合された処理手段であり、
探索された位置が参照フレームのフルピクセル行に位置していないとき、前記フルピクセル位置情報に垂直補間フィルタを適用することによって、前記参照フレームのビデオ情報の前記複数の行におけるピクセルの第1のサブペル位置情報を決定し、
フルピクセル位置情報と同じ精度で前記第1のサブペル位置情報を前記メモリに記憶し、
探索された位置が前記参照フレームのフルピクセル列に位置していないとき、前記フルピクセル位置情報の1行おき、および前記第1のサブペル位置情報に水平補間フィルタを適用することによって、ビデオ情報の前記複数の行に関連する前記フルピクセル位置情報の1行おきについて第2のサブペル位置情報を決定する
ように構成された処理手段と、
前記フルピクセル位置情報、第1および第2の1/2ピクセル位置情報、または第1および第2の1/4ピクセル位置情報に基づいて一連のフレームのピクセルの動きを示すシンタックス要素を生成するための生成手段と、
前記生成されたシンタックス要素に基づいてブロックを符号化するように構成された符号化手段と
を含む装置。
【請求項２３】
前記記憶手段がメモリを含み、前記処理手段が1つまたは複数のプロセッサを含む、請求項22に記載の装置。
【請求項２４】
前記処理手段が、前記メモリに記憶された前記フルピクセル位置情報に基づいて、前記参照フレームに関連する複数のハーフペル位置を決定するようにさらに構成される、請求項22に記載の装置。
【請求項２５】
前記記憶手段が、ハーフペル位置に関連するハーフペル位置情報を記憶するようにさらに構成される、請求項23に記載の装置。
【請求項２６】
前記第1および第2のサブペル位置情報が、ハーフペル位置情報を含み、ハーフペル位置が、2つの隣接するフルピクセル位置の中間に位置する、請求項22に記載の装置。
【請求項２７】
前記第1および第2のサブペル位置情報が、クォーターペル位置情報を含み、前記クォーターペル位置情報が、ハーフペル位置と隣接するフルピクセル位置との中間に位置するクォーターペル位置を示す、請求項22に記載の装置。
【請求項２８】
前記第1および第2のサブペル位置情報が、フルピクセル位置情報と同じ精度で前記メモリに記憶される、請求項22に記載の装置。
【請求項２９】
前記参照フレームと前記現在のフレームとの間のピクセルの動きが、ベクトルによって示され、前記ベクトルが、前記第1のサブペル位置情報および前記第2のサブペル位置情報のうちの少なくとも1つを参照する、請求項22に記載の装置。
【請求項３０】
前記処理手段が、探索された位置が参照フレームのフルピクセル行に位置していないとき、前記一連のフレームに関連するビデオ情報の前記1行おきについて第1のサブピクセル位置情報を決定するために、前記フルピクセル位置情報の1行おきに前記垂直補間フィルタを適用するようにさらに構成される、請求項22に記載の装置。
【国際調査報告】
2018511230.tif 000010
2018511230.tif 000011
2018511230.tif 000012
2018511230.tif 000013