(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024167446
(43)【公開日】2024-12-03
(54)【発明の名称】映像復号化装置、映像符号化装置および記録媒体
(51)【国際特許分類】
H04N 19/513 20140101AFI20241126BHJP
【FI】
H04N19/513
【審査請求】有
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2024159560
(22)【出願日】2024-09-13
(62)【分割の表示】P 2022186903の分割
【原出願日】2012-01-31
(31)【優先権主張番号】10-2011-0009636
(32)【優先日】2011-01-31
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2011-0019166
(32)【優先日】2011-03-03
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2011-0050853
(32)【優先日】2011-05-27
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2011-0065707
(32)【優先日】2011-07-01
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2012-0010096
(32)【優先日】2012-01-31
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】596099882
【氏名又は名称】エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート
【氏名又は名称原語表記】ELECTRONICS AND TELECOMMUNICATIONS RESEARCH INSTITUTE
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100152205
【弁理士】
【氏名又は名称】吉田 昌司
(72)【発明者】
【氏名】リム、ソン、チャン
(72)【発明者】
【氏名】キム、フィ、ヨン
(72)【発明者】
【氏名】ジョン、セ、ユン
(72)【発明者】
【氏名】チョ、スク、ヒー
(72)【発明者】
【氏名】ジョン、ドン、サン
(72)【発明者】
【氏名】キム、ジョン、ホ
(72)【発明者】
【氏名】リー、ハ、ヒュン
(72)【発明者】
【氏名】リー、ジン、ホ
(72)【発明者】
【氏名】チェ、ジン、スー
(72)【発明者】
【氏名】キム、ジン、ウン
(57)【要約】 (修正有)
【課題】クリップされた動きベクトルを利用して映像を符号化/復号化する方法及び装置を提供する。
【解決手段】映像復号化装置200は、参照ピクチャ及び参照ピクチャの動きベクトルを格納するための参照ピクチャバッファを含む。参照ピクチャの動きベクトルは、参照ピクチャの動きベクトルの解像度を減少させるために所定のビット幅で圧縮されており、圧縮された動きベクトルは、現在ピクチャの現在ブロックと同じ場所に位置する参照ピクチャの同等位置ブロックの同等位置動きベクトルとして用いられる。映像復号化装置はさらに、現在ブロックの動きベクトルを用いて、現在ブロックの予測ブロックを生成するための動き補償部を含む。現在ブロックの動きベクトルは、参照ピクチャバッファから導出される現在ブロックに対する同等位置動きベクトル又は現在ブロックに空間的に隣接する隣接ブロックの動きベクトルによって予測される。
【選択図】
図2
【特許請求の範囲】
【請求項1】
参照ピクチャおよび前記参照ピクチャの動きベクトルを格納するための参照ピクチャバッファであって、前記参照ピクチャの前記動きベクトルは、前記参照ピクチャの前記動きベクトルの解像度を減少させるために所定のビット幅で圧縮されており、前記圧縮された動きベクトルは、現在ピクチャの現在ブロックと同じ場所に位置する前記参照ピクチャの同等位置ブロック(collocated block)の同等位置動きベクトルとして用いられる、参照ピクチャバッファと、
前記現在ブロックの動きベクトルを用いて、前記現在ブロックの予測ブロックを生成するための動き補償部であって、前記現在ブロックの前記動きベクトルは、前記参照ピクチャバッファから導出される前記現在ブロックに対する前記同等位置動きベクトル、または前記現在ブロックに空間的に隣接する隣接ブロックの動きベクトルによって予測される、動き補償部と、
を含む、映像復号化装置。
【請求項2】
参照ピクチャおよび前記参照ピクチャの動きベクトルを格納するための参照ピクチャバッファであって、前記参照ピクチャの前記動きベクトルは、前記参照ピクチャの前記動きベクトルの解像度を減少させるために所定のビット幅で圧縮されており、前記圧縮された動きベクトルは、現在ピクチャの現在ブロックと同じ場所に位置する前記参照ピクチャの同等位置ブロック(collocated block)の同等位置動きベクトルとして用いられる、参照ピクチャバッファと、
前記現在ブロックの動きベクトルを用いて、前記現在ブロックの予測ブロックを生成するための動き補償部であって、前記現在ブロックの前記動きベクトルは、前記参照ピクチャバッファから導出される前記現在ブロックに対する前記同等位置動きベクトル、または前記現在ブロックに空間的に隣接する隣接ブロックの動きベクトルによって予測される、動き補償部と、
を含む、映像符号化装置。
【請求項3】
映像符号化装置により実行されるビットストリームの送信方法であって、
参照ピクチャおよび前記参照ピクチャの動きベクトルを格納するステップであって、前記参照ピクチャの前記動きベクトルは、前記参照ピクチャの前記動きベクトルの解像度を減少させるために所定のビット幅で圧縮されており、前記圧縮された動きベクトルは、現在ピクチャの現在ブロックと同じ場所に位置する前記参照ピクチャの同等位置ブロック(collocated block)の同等位置動きベクトルとして用いられる、ステップと、
前記現在ブロックの動きベクトルを用いて、前記現在ブロックの予測ブロックを生成するステップであって、前記現在ブロックの前記動きベクトルは、前記参照ピクチャバッファから導出される前記現在ブロックに対する前記同等位置動きベクトル、または前記現在ブロックに空間的に隣接する隣接ブロックの動きベクトルによって予測される、ステップと、
前記ビットストリームを映像復号化装置に送信するステップと、を備える、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像処理に関し、より詳しくは、動きベクトルを利用した符号化/復号化方法及び装置に関する。
【背景技術】
【0002】
最近、HD(High Definition)解像度をサポートする放送システムが韓国内だけでなく、世界的に拡大されるにつれて、多くのユーザが高解像度、高画質の映像に慣れており、これにより、多くの機関が次世代映像機器に対する開発に拍車を掛けている。また、HDTVとともにHDTVの4倍以上の解像度をサポートするUHD(Ultra High Definition)に対する関心が増大しながら、一層高い解像度、高画質の映像に対する圧縮技術が要求されている。
【0003】
映像の圧縮のために、前のピクチャ及び/又は後のピクチャから現在ピクチャに含まれているピクセル値を予測するインター(inter)予測技術、ピクチャ内のピクセル情報を利用してピクセル値を予測するイントラ(intra)予測技術及び/又は出現頻度が高いシンボル(symbol)に短い符号を割り当て、出現頻度が低いシンボルに長い符号を割り当てるエントロピー符号化技術などが使われることができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、クリップされた動きベクトルを利用して映像を符号化/復号化する方法及び装置を提供する。
【0005】
本発明は、参照ピクチャの動きベクトルをクリップする方法を提供する。
【0006】
本発明は、動きベクトルに対する情報を送信する方法を提供する。
【課題を解決するための手段】
【0007】
[1]本発明の一実施例によると、映像符号化方法が提供される。映像符号化方法は、参照ピクチャの動きベクトルを所定のダイナミックレンジでクリップすることで、クリップされた動きベクトルを生成するステップ、クリップされた動きベクトルをバッファに格納するステップ、及びバッファに格納された動きベクトルを利用して符号化対象ブロックの動きベクトルを符号化するステップを含む。
【0008】
[2][1]において、ダイナミックレンジは、映像コーデックのレベルにより定義される。
【0009】
[3][1]において、ダイナミックレンジは、所定のビット深度により決定され、ビット深度は、映像コーデックのレベルにより定義される。
【0010】
[4][1]において、参照ピクチャの動きベクトルのX成分とY成分は、互いに異なるダイナミックレンジでクリップされる。
【0011】
[5]本発明の一実施例によると、映像復号化方法が提供される。映像復号化方法は、参照ピクチャの動きベクトルを所定のダイナミックレンジでクリップすることで、クリップされた動きベクトルを生成するステップ、クリップされた動きベクトルをバッファに格納するステップ、バッファに格納された動きベクトルを利用して復号化対象ブロックの動きベクトルを導出するステップ、及び復号化対象ブロックの動きベクトルを利用してインター予測復号化を実行するステップを含む。
【0012】
[6][5]において、ダイナミックレンジは、映像コーデックのレベルにより定義される。
【0013】
[7][5]において、ダイナミックレンジは、所定のビット深度により決定され、ビット深度は、映像コーデックのレベルにより定義される。
【0014】
[8][5]において、ダイナミックレンジは、所定のビット深度により決定され、ビット深度は、映像符号化装置から送信されるシーケンスパラメータセットを介して取得される。
【0015】
[9][8]において、シーケンスパラメータセットは、参照ピクチャの動きベクトルがクリップされたかどうかを示すフラグ及びビット深度を取得するためのパラメータを含む。
【0016】
[10][9]において、映像復号化方法は、参照ピクチャの動きベクトルを圧縮するステップをさらに含み、シーケンスパラメータセットは、参照ピクチャの動きベクトルが圧縮されたかどうかを示すフラグ及び参照ピクチャの動きベクトルの圧縮比率を取得するためのパラメータをさらに含む。
【0017】
[11][5]において、映像復号化方法は、参照ピクチャの動きベクトルの表現解像度を制限するステップをさらに含む。
【0018】
[12][5]において、クリップされた動きベクトルは、優先順位によって格納される。
【0019】
[13][5]において、クリップされた動きベクトルは、インター予測モードに符号化されたブロックの動きベクトルである。
【0020】
[14][5]において、映像復号化方法は、参照ピクチャの動きベクトルに対するスケーリング(scaling)を実行するステップをさらに含む。
【0021】
[15][5]において、参照ピクチャの動きベクトルのX成分とY成分は、互いに異なるダイナミックレンジでクリップされる。
【0022】
[16][15]において、X成分のダイナミックレンジとY成分のダイナミックレンジは、映像コーデックのレベルにより定義される。
【0023】
[17]本発明の一実施例によると、参照ピクチャバッファ及び動き補償部を含む映像復号化装置が提供される。参照ピクチャバッファは、参照ピクチャを格納する。動き補償部は、参照ピクチャ及び参照ピクチャの動きベクトルを利用して予測ブロックを生成する。ここで、参照ピクチャの動きベクトルは、所定のダイナミックレンジでクリップされたものである。
【0024】
[18][17]において、ダイナミックレンジは、映像コーデックのレベルにより定義される。
【0025】
[19][17]において、ダイナミックレンジは、所定のビット深度により決定され、ビット深度は、映像コーデックのレベルにより定義される。
【0026】
[20][17]において、ダイナミックレンジは、所定のビット深度により決定され、ビット深度は、映像符号化装置から送信されるシーケンスパラメータセットを介して取得される。
【発明の効果】
【0027】
本発明によると、クリップされた動きベクトルを利用して映像を符号化/復号化することができる。
【0028】
本発明によると、動きベクトルの格納に必要なメモリ空間の大きさを減少させることができる。
【0029】
本発明によると、メモリからデータを読み取るときに要求されるメモリ接近帯域幅を減少させることができる。
【図面の簡単な説明】
【0030】
【
図1】映像符号化装置の構造の一例を示すブロック図である。
【
図2】映像復号化装置の構造の一例を示すブロック図である。
【
図3】符号化/復号化対象ピクチャと参照ピクチャの一例を示す。
【
図4】動きベクトルのダイナミックレンジを制限する一例である。
【
図5】参照ピクチャの動きベクトルを格納する方法を示す順序図である。
【
図6】参照ピクチャの動きベクトルを格納する方法を示す順序図である。
【
図7】参照ピクチャの動きベクトルを格納する方法を示す順序図である。
【
図8】参照ピクチャの動きベクトルを格納する方法を示す順序図である。
【
図10】参照ピクチャから動き情報を読み取る例を示す。
【
図11】参照ピクチャから動き情報を読み取る例を示す。
【
図12】参照ピクチャから動き情報を読み取る例を示す。
【
図13】参照ピクチャから動き情報を読み取る例を示す。
【
図14】本発明の一実施例に係る映像の符号化方法を示す順序図である。
【
図15】本発明の一実施例に係る映像の復号化方法を示す順序図である。
【発明を実施するための形態】
【0031】
以下、図面を参照して本発明の実施形態に対して具体的に説明する。ただ、本発明の実施例を説明するにあたって、公知の構成又は機能に対する具体的な説明が本発明の要旨を不明にすると判断される場合にはその詳細な説明は省略する。
【0032】
一構成要素が他の構成要素に“連結されている”又は“接続されている”と叙述されている場合、他の構成要素に直接連結されている、又は接続されていることもあるが、もう一つの構成要素が中間に存在することもあることを意味する。また、本発明において、特定構成要素を“含む”と叙述されている場合、該当構成要素以外の構成要素を排除するものではなく、追加的な構成要素が本発明の実施例又は技術的思想の範囲に含まれることができることを意味する。
【0033】
“第1”、“第2”などの用語は、多様な構成要素の説明に使われることができるが、前記構成要素は、前記用語により限定されるものではない。即ち、前記用語は、一つの構成要素を他の構成要素から区別する目的にのみ使われる。例えば、本発明の権利範囲を外れない限り、第1の構成要素は第2の構成要素と命名することができ、同様に、第2の構成要素も第1の構成要素と命名することができる。
【0034】
また、本発明の実施例に示す構成要素は、互いに異なる特徴的な機能を遂行することを示すために独立的に図示されるものであり、各構成要素が一つのハードウェア又はソフトウェアで具現されることができないことを意味するものではない。即ち、各構成要素は、説明の便宜上区分されたものであり、複数の構成要素が統合されて一つの構成要素として動作したり、一つの構成要素が複数の構成要素に分けられて動作したりすることができ、これは本発明の本質から外れない限り本発明の権利範囲に含まれる。
【0035】
また、一部構成要素は、本発明の本質的な機能を遂行する必須な構成要素ではなく、性能の向上のための選択的構成要素である。本発明は、選択的構成要素を除いて必須な構成要素のみを含む構造で具現されることもでき、必須な構成要素のみを含む構造も本発明の権利範囲に含まれる。
【0036】
図1は、映像符号化装置の構造の一例を示すブロック図である。
【0037】
図1を参照すると、映像符号化装置100は、動き予測部111、動き補償部112、イントラ予測部120、スイッチ115、減算器125、変換部130、量子化部140、エントロピー符号化部150、逆量子化部160、逆変換部170、加算器175、フィルタ部180、及び参照ピクチャバッファ190を含む。
【0038】
映像符号化装置100は、入力映像をイントラ予測モード(intra prediction mode)又はインター予測モード(inter prediction mode)に符号化してビットストリーム(bit stream)を出力する。イントラ予測は画面内予測を意味し、インター予測は画面間予測を意味する。映像符号化装置100は、スイッチ115の転換を介してイントラ予測モードとインター予測モードとの間を遷移する。
映像符号化装置100は、入力映像の入力ブロックに対する予測ブロックを生成した後、入力ブロックと予測ブロックとの残差(residual)を符号化する。
【0039】
イントラ予測モードの場合、イントラ予測部120は、現在ブロック周辺の既に符号化されたブロックのピクセル値を利用して空間的予測を実行することで、予測ブロックを生成する。
【0040】
インター予測モードの場合、動き予測部111は、動き予測過程で参照ピクチャバッファ190に格納されている参照ピクチャ内で入力ブロックと最もマッチングがよくなる参照ブロックを探して動きベクトルを求める。動き補償部112は、前記動きベクトルを利用して動き補償を実行することで、予測ブロックを生成する。ここで、動きベクトルは、インター予測に使われる2次元ベクトルであり、現在符号化/復号化の対象ブロックと参照ブロックとの間のオフセットを示す。
【0041】
減算器125は、入力ブロックと予測ブロックとの残差に基づいて残差ブロック(residual block)を生成し、変換部130は、前記残差ブロックを変換(transform)して変換係数(transform coefficient)を出力する。
量子化部140は、前記変換係数を量子化することで、量子化された係数(quantized coefficient)を出力する。
【0042】
エントロピー符号化部150は、符号化/量子化過程で取得した情報に基づいたエントロピー符号化を実行することで、ビットストリームを出力する。エントロピー符号化は、頻繁に発生されるシンボル(symbol)を少ない数のビットで表現することによって符号化の対象シンボルに対するビット列の大きさを減少させる。したがって、エントロピー符号化を介して映像の圧縮性能の向上を期待することができる。エントロピー符号化部150は、エントロピー符号化のために、指数ゴロム(exponential golomb)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-Adaptive Binary Arithmetic Coding)のような符号化方法を使用することができる。
【0043】
インター予測符号化を実行するための参照ピクチャとして使われるために符号化されたピクチャは、再び復号化されて格納される必要がある。したがって、逆量子化部160は、量子化された係数を逆量子化し、逆変換部170は、逆量子化された係数を逆変換(inverse transform)して復元された残差ブロックを出力する。加算器175は、予測ブロックに復元された残差ブロックを加えて復元ブロックを生成する。
【0044】
フィルタ部180は、適応的インループ(in-loop)フィルタとも呼ばれ、復元ブロックにデブロッキングフィルタリング(deblocking filtering)、SAO(Sample Adaptive Offset)補償、ALF(Adaptive Loop Filtering)のうち少なくとも一つ以上を適用する。デブロッキングフィルタリングは、ブロック間境界に発生したブロック歪曲を除去することを意味し、SAO補償は、コーディングエラーを補償するためにピクセル値に適正オフセット(offset)を加えることを意味する。また、ALFは、復元された映像と元来の映像を比較した値に基づいてフィルタリングを実行することを意味する。
【0045】
一方、参照ピクチャバッファ190は、フィルタ部180を経た復元ブロックを格納する。
【0046】
図2は、映像復号化装置の構造の一例を示すブロック図である。
【0047】
図2を参照すると、映像復号化装置200は、エントロピー復号化部210、逆量子化部220、逆変換部230、イントラ予測部240、動き補償部250、加算器255、フィルタ部260、及び参照ピクチャバッファ270を含む。
【0048】
映像復号化装置200は、ビットストリームをイントラ予測モード又はインター予測モードに復号化することで、復元映像を出力する。映像復号化装置200は、スイッチの転換を介してイントラ予測モードとインター予測モードとの間を遷移する。映像復号化装置200は、ビットストリームから残差ブロックを取得して予測ブロックを生成した後、残差ブロックと予測ブロックを加えて復元ブロックを生成する。
【0049】
エントロピー復号化部210は、確率分布に基づいたエントロピー復号化を実行する。
エントロピー復号化過程は、前述したエントロピー符号化過程の反対過程である。即ち、エントロピー復号化部210は、頻繁に発生されるシンボルを少ない数のビットで表現したビットストリームから量子化された係数を含むシンボルを生成する。
【0050】
逆量子化部220は、量子化された係数を逆量子化し、逆変換部230は、逆量子化された係数を逆変換して残差ブロックを生成する。
【0051】
イントラ予測モードの場合、イントラ予測部240は、現在ブロック周辺の既に復号化されたブロックのピクセル値を利用して空間的予測を実行することで、予測ブロックを生成する。
【0052】
インター予測モードの場合、動き補償部250は、動きベクトル及び参照ピクチャバッファ270に格納された参照ピクチャを利用した動き補償を実行することで、予測ブロックを生成する。
【0053】
加算器255は、残差ブロックに予測ブロックを加え、フィルタ部260は、加算器を経たブロックにデブロッキングフィルタリング、SAO補償、ALFのうち少なくとも一つ以上を適用して復元映像を出力する。
【0054】
一方、復元映像は、参照ピクチャバッファ270に格納されて動き補償に使われることができる。
【0055】
以下、ブロックは、符号化/復号化の単位を意味する。符号化/復号化過程で、映像は、所定の大きさで分割されて符号化/復号化される。したがって、ブロックは、符号化ユニット(CU:Coding Unit)、予測ユニット(PU:Prediction Unit)、変換ユニット(TU:Transform Unit)などで呼ばれることもあり、一つのブロックは、より小さい大きさの下位ブロックに分割されることもできる。
【0056】
ここで、予測ユニットは、予測及び/又は動き補償実行の基本単位を意味する。予測ユニットは、複数のパーティション(partition)に分割されることができ、各々のパーティションは、予測ユニットパーティション(prediction unit partition)と呼ばれる。予測ユニットが複数のパーティションに分割された場合、予測ユニットパーティションは、予測及び/又は動き補償実行の基本単位になることができる。以下、本発明の実施例において、予測ユニットは、予測ユニットパーティションを意味することもある。
【0057】
一方、HEVC(High Efficiency Video Coding)では、向上した動きベクトル予測(AMVP:Advanced Motion Vector Prediction)に基づいた動きベクトル予測(motion vector prediction)方法を使用する。
【0058】
向上した動きベクトル予測に基づいた動きベクトル予測方法では、符号化/復号化対象ブロックの周辺に位置する復元ブロックの動きベクトル(MV:Motion Vector)だけでなく、参照ピクチャ(reference picture)内で符号化/復号化対象ブロックと同じ位置又は対応される位置に存在するブロックの動きベクトルを利用することができる。そのとき、参照ピクチャ内で符号化/復号化対象ブロックと同じ位置又は空間的に対応される位置に存在するブロックを同等位置ブロック(collocated block)、同等位置ブロックの動きベクトルを同等位置動きベクトル(collocated motion vector)又は時間的動きベクトル(temporal motion vector)と呼ぶ。しかし、同等位置ブロック(collocated block)は、参照ピクチャの符号化/復号化対象ブロックと必ず同じ位置に存在するブロックだけでなく、符号化/復号化対象ブロックと位置が類似した、即ち、対応される位置に存在するブロックであってもよい。
【0059】
動き情報併合(motion information merge)方法では、動き情報を周辺に位置する復元ブロックだけでなく同等位置ブロックからも類推し、符号化/復号化対象ブロックの動き情報として利用する。そのとき、動き情報は、インター予測時に必要な参照ピクチャインデックス(reference picture index)、動きベクトル、単方向(uni-direction)又は両方向(bi-direction)などを示すインター予測モード情報、参照ピクチャリスト(reference picture list)、イントラ予測モードに符号化されたかインター予測モードに符号化されたかに対する予測モード(prediction mode)情報のうち少なくとも一つ以上を含む情報である。
【0060】
符号化/復号化対象ブロックで予測された動きベクトル(predictied motion vector)は、符号化/復号化対象ブロックと空間的に隣接した周辺ブロックの動きベクトルだけでなく、符号化/復号化対象ブロックと時間的に隣接したブロックである同等位置ブロックの動きベクトルであってもよい。
【0061】
図3は、符号化/復号化対象ピクチャと参照ピクチャの一例を示す。
【0062】
図3において、ブロックXは、符号化/復号化対象ピクチャ310内の符号化/復号化対象ブロックを示し、ブロックA、ブロックB、ブロックC、ブロックD、及びブロックEは、符号化/復号化対象ブロックの周辺に位置する復元ブロックを示す。そして、参照ピクチャ320内のブロックTは、符号化/復号化対象ブロックと対応される位置に存在する同等位置ブロックを示す。
【0063】
符号化/復号化対象ブロックで、予測された動きベクトルとして利用する動きベクトルに対しては動きベクトル予測器インデックス(motion vector predictor index)を介して知ることができる。
【0064】
【0065】
表1のように、各々の参照ピクチャリストに対する動きベクトル予測器インデックス(mvp_idx_l0,mvp_idx_l1)が復号化装置に送信され、復号化装置は、符号化装置が予測した動きベクトルと同じである動きベクトルを予測された動きベクトルとして利用する。
【0066】
符号化/復号化対象ブロックと空間的に隣接した周辺ブロックの動きベクトルを利用して符号化/復号化対象ブロックを符号化/復号化する場合、相対的に小さい大きさのメモリ(memory)のみで動きベクトルを格納することができる。しかし、時間的動きベクトルを利用する場合、参照ピクチャの全ての動きベクトルをメモリに格納しなければならないため、相対的に大きい大きさのメモリが必要であり、メモリからデータを読み取るときに要求されるメモリ接近帯域幅(memoryaccess bandwidth)の大きさも増加するようになる。したがって、携帯受信端末機など、メモリ空間が十分でない、又は電力の消耗を最小化しなければならない応用環境では時間的動きベクトルを一層効率的に格納する必要がある。
【0067】
一方、動きベクトルをメモリに格納する従来の技術として動きベクトルの空間解像度(spatial resolution)を低くする方法がある。前記方法では動きベクトルを任意の割合で圧縮してメモリに格納する。例えば、4×4ブロック単位で(に)格納される動きベクトルを4×4以上のブロック単位に格納し、格納される動きベクトルの個数を減らす。そのとき、格納される動きベクトルのブロック大きさを調整するために、圧縮比率に対する情報が送信される。前記情報は、表2のようにシーケンスパラメータセット(SPS:Sequence Parameter Set)を介して送信される。
【0068】
【0069】
表2を参照すると、motion_vector_buffer_comp_flagが1である場合、動きベクトルバッファ圧縮過程が実行される。
【0070】
motion_vector_buffer_comp_ratio_log2は、動きベクトルバッファ圧縮過程の圧縮比率を示す。motion_vector_buffer_comp_ratio_log2が存在しない場合、motion_vector_buffer_comp_ratio_log2は0に類推され、動きベクトルバッファ圧縮比率を数式1のように表現される。
【0071】
【0072】
例えば、1920×1080(1080p)ピクチャの全ての4×4ブロックが異なる動きベクトルを有し、2個の参照ピクチャリストを使用し、各々のリスト毎に2個の参照ピクチャを使用する場合、下記のように、総3.21Mbytesのメモリ空間が時間的動きベクトルを格納するために要求される。
【0073】
1.一つの動きベクトル毎に26bisのビット深度(bit depth)
【0074】
(1)動きベクトルのX成分のダイナミックレンジ(dynamic range):-252乃至+7676(ビット深度:13bits)
【0075】
(2)動きベクトルのY成分のダイナミックレンジ(dynamic range):-252乃至+4316(ビット深度:13bits)
【0076】
(3)(動きベクトルの各々の成分のダイナミックレンジは、該当ピクチャ内の一番目の予測ユニットを基準に計算された。)
【0077】
2.4×4ブロック単位の全てが異なる動きベクトルを有する場合:480×270=129600ブロック
【0078】
3.各々のブロック毎に2個の動きベクトルを使用
【0079】
4.参照ピクチャリストの数:2個
【0080】
5.参照ピクチャリスト毎に2個の参照ピクチャを使用
【0081】
⇒26bits×129600ブロック×2個の動きベクトル×2個の参照ピクチャリスト×2個の参照ピクチャ=26956800bits=3.21Mbytes
【0082】
前述した動きベクトルの空間解像度を低くする方法によると、動きベクトルの空間的な相関性を利用して要求されるメモリ空間の大きさ及びメモリ接近帯域幅を減らすことができる。しかし、動きベクトルの空間解像度を低くする前記方法は、動きベクトルのダイナミックレンジを制限しなかった。
【0083】
もし、メモリ空間の大きさを1/4に減らす場合、前述した例で要求されるメモリ空間の大きさは、約0.8Mbytesに減るようになる。そのとき、追加に動きベクトルのダイナミックレンジを制限し、動きベクトルの格納に必要なビット深度を動きベクトルの各々の成分毎に6bitsのみを使用するようにすると、要求されるメモリ空間の大きさは0.37Mbytesに一層減らすことができる。
【0084】
したがって、本発明では動きベクトルの格納に必要なメモリ空間の大きさとメモリからデータを読み取るときに要求されるメモリ接近帯域幅を減少させるために、動きベクトルのダイナミックレンジを制限する。ダイナミックレンジが制限された参照ピクチャの動きベクトルは、符号化/復号化対象ブロックで時間的動きベクトルとして利用されることができる。
【0085】
以下、ダイナミックレンジは、0を基準に動きベクトルの負の成分や正の成分が有することができる最小値と最大値との間の区間を意味し、ビット深度は、動きベクトルの格納に必要な空間の大きさを示すものであり、ビット幅(bit width)を意味することもある。また、特別な言及がない限り、動きベクトルは、参照ピクチャの動きベクトル、即ち、時間的動きベクトルを意味する。
【0086】
動きベクトルの各々の成分は、ダイナミックレンジを外れる場合、該当ダイナミックレンジの最小値又は最大値で表現される。例えば、動きベクトルのX成分が312であり、動きベクトルの各々の成分のダイナミックレンジの最大値が256の場合、動きベクトルのX成分は256に制限される。
【0087】
同様に、動きベクトルの各々の成分のビット深度が16bitsであり、動きベクトルが(-36,24)である場合、前記動きベクトルの各々の成分のビット深度を6bitsに制限すると、動きベクトルの各々の成分は-32乃至+31のダイナミックレンジを有するようになり、前記動きベクトルは、ダイナミックレンジ内である(-32,24)で表現される。
【0088】
また、動きベクトルの各々の成分のビット深度が16bitsであり、動きベクトルが(-49,142)である場合、前記動きベクトルの各々の成分のビット深度を9bitsに制限すると、動きベクトルの各々の成分は-256乃至+255のダイナミックレンジを有するようになり、前記動きベクトルは、変化なく(-49,142)で表現される。
【0089】
図4は、動きベクトルのダイナミックレンジを制限する一例である。
【0090】
図4を参照すると、-4096乃至+4095のダイナミックレンジを有する動きベクトルのダイナミックレンジを-128乃至+127に制限すると、ビット深度を13bitsから8bitsに減少させることができる。
【0091】
時間的動きベクトルの各々の成分は、Nbit(s)のビット深度に格納されるために、数式2及び数式3のようにクリップ(clip)される。ここで、Nは、正の整数である。
【0092】
【0093】
【0094】
ここで、MV_Xは動きベクトルのX成分であり、MV_Yは動きベクトルのY成分であり、min(a,b)はaとbのうち小さい値を出力する演算であり、max(a,b)はaとbのうち大きい値を出力する演算である。clippedMV_XとclippedMV_Yは、各々、クリップされた時間的動きベクトルのX成分とY成分であり、メモリに格納されて符号化/復号化対象ブロックの時間的動きベクトルとして利用される。
【0095】
例えば、表3のようにメモリ空間の大きさが48byteであり、動きベクトルの各々の成分毎に16bitsのビット深度を使用する場合、総12個の動きベクトルを格納することができる。
【0096】
【0097】
しかし、動きベクトルの各々の成分毎に8bitsのビット深度のみを使用すると、表4のように総24個の動きベクトルを格納することができる。
【0098】
【0099】
したがって、本発明によると、符号化装置及び/又は復号化装置で復元された映像がデブロッキングフィルタ(deblocking filter)、適応的ループフィルタ(adpative loop filter)などのインループフィルタリング(in-loop filtering)過程を経て復元された映像バッファ(DPB:decoded picture buffer)に格納される時、動きベクトルのダイナミックレンジを制限して参照ピクチャの動きベクトルを格納する。ここで、復元された映像バッファは、
図1又は
図2の参照ピクチャバッファを意味することもある。
【0100】
I.動きベクトルクリップ過程
【0101】
動きベクトルの各々の成分をクリップする過程は、スライスタイプ(slice_type)がIピクチャでない場合に実行される。動きベクトルクリップ過程は、フィルタリング過程を終えた後、ツリーブロック(tree block)又は最大大きさ符号化ユニット(LCU:Largest Coding Unit)単位に実行される。
【0102】
動きベクトルクリップ過程の入力は、現在ピクチャでの予測ユニットの左上端のピクセル位置である(xP,yP)と動きベクトル行列MvL0及びMvL1であり、出力は、クリップされた動きベクトル行列CMvL0及びCMvL1である。
【0103】
行列MvL0、MvL1、CMvL0、及びCMvL1に対して数式4乃至数式7の演算が実行される。
【0104】
【0105】
【0106】
【0107】
【0108】
ここで、TMVBitWidthは、動きベクトルのビット深度を示し、Clip3(a,b,c)は、cをaとbとの間の範囲内に存在するようにクリップする関数を意味する。
【0109】
II.動きベクトル格納過程
【0110】
図5乃至
図8は、参照ピクチャの動きベクトルを格納する方法を示す順序図である。
【0111】
図5を参照すると、復元された映像を格納する映像バッファと動きベクトルを格納する動きベクトルバッファを共に利用することで、参照ピクチャの動きベクトルを格納することができる。そのとき、復元された映像は、インループフィルタリング過程(S510)を経て、動きベクトルは、ダイナミックレンジが制限(S520)されて格納(S540)される。
【0112】
また、
図6を参照すると、映像バッファと動きベクトルバッファを共に利用し、動きベクトルは、ダイナミックレンジ制限過程(S620)及び空間解像度減少過程(S630)を経て格納(S640)される。
【0113】
また、
図7を参照すると、復元された映像は、インループフィルタリング過程(S710)を経て映像バッファに格納(S740)され、動きベクトルは、ダイナミックレンジが制限(S720)されて動きベクトルバッファに格納(S750)される。
【0114】
また、
図8を参照すると、復元された映像は、インループフィルタリング過程(S810)を経て映像バッファに格納(S840)され、動きベクトルは、ダイナミックレンジ制限過程(S820)及び空間解像度減少過程(S830)を経て格納(S850)される。
【0115】
一方、
図6及び
図8の実施例において、ダイナミックレンジ制限過程(S620、S820)と空間解像度減少過程(S630、S830)は、順序に限定されるものではなく、変更されることができる。
【0116】
また、メモリ接近帯域幅を一層減少させるために、動きベクトルの各々の成分に対するダイナミックレンジを互いに異なるように制限することができる。例えば、X成分のダイナミックレンジとY成分のダイナミックレンジのうち一つのみを制限したり、Y成分のダイナミックレンジをX成分のダイナミックレンジより制限したりすることができる。
【0117】
動きベクトルの制限されたダイナミックレンジは、シーケンスパラメータセット、ピクチャパラメータセット(PPS:Picture Parameter Set)又はスライスヘッダ(slice header)等を介して送信され、復号化装置は、シーケンス、ピクチャ又はスライス内で時間的動きベクトルのダイナミックレンジの制限を同様に実行する。そのとき、ダイナミックレンジ範囲内で表現される動きベクトルの格納に必要なメモリ空間の大きさであるビット深度が共に送信されることができる。また、固定された大きさのビット深度を利用して動きベクトルを格納せずに、シーケンスパラメータ、ピクチャパラメータセット又はスライスヘッダなどを介して送信されたダイナミックレンジを利用することで、時間的動きベクトルを映像の動き特性に合うように効率的に格納することもできる。
【0118】
一方、動きベクトルは、量子化されて格納されることができる。動きベクトルが量子化されて格納される場合、動きベクトルの精密度は減少するようになる。量子化方法には、ステップ大きさ(step size)が均等な均等量子化(uniform quantization)、ステップ大きさが均等でない非均等量子化(non-uniform quantization)などがある。量子化のステップ大きさは、符号化装置と復号化装置で予め約束された固定値に設定され、又はシーケンスパラメータセット、ピクチャパラメータセット、又はスライスヘッダなどを介して符号化装置から復号化装置に送信される。復号化装置では、量子化された動きベクトルをそのまま利用し、又は逆量子化して利用する。
図9は、動きベクトルを量子化する一例である。
図9を参照すると、動きベクトルが32乃至48の成分値を有する場合、動きベクトルは40に量子化される。
【0119】
また、動きベクトルは、表現解像度が制限されて格納されることができる。表現解像度は、整数画素単位(1画素単位)、分数画素単位(1/2画素単位、1/4画素単位等)を意味する。例えば、1/4画素単位に処理される動きベクトルの解像度を整数画素で格納することができる。動きベクトルの表現解像度は、符号化装置と復号化装置で予め約束された固定値に設定され、又はシーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダなどを介して符号化装置から復号化装置に送信される。
【0120】
また、メモリに格納される時間的動きベクトルのうち一部の動きベクトルに対してのみ動きベクトルのダイナミックレンジ制限過程、空間解像度減少過程、量子化過程を実行することができる。
【0121】
動きベクトルのダイナミックレンジを制限して格納する場合、動きベクトルのダイナミックレンジに対する情報を追加してメモリに格納することができる。例えば、動きベクトルのダイナミックレンジを-128乃至+127にする場合、1のフラグを追加に格納して、-32乃至+31にする場合、0のフラグを追加に格納することができる。そのとき、フラグ情報は、動きベクトルと共に格納され、又は動きベクトルが格納されるメモリでない他のメモリに格納されすることができる。フラグ情報と動きベクトルが異なるメモリに格納される場合、特定動きベクトルが格納されたダイナミックレンジに対して知る時、フラグ情報に任意接近するようにすることができる。また、一部動きベクトルが格納されたダイナミックレンジに対する情報を、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダなどを介して送信し、復号化器でも符号化器と同様に動作するようにすることができる。
【0122】
動きベクトルの空間解像度を減少させて格納する場合、動きベクトルのブロック大きさに対する情報を追加してメモリに格納することができる。例えば、動きベクトルのブロック大きさを、4×4にする場合に1のフラグを追加に格納し、16×16にする場合に0のフラグを追加に格納することができる。そのとき、フラグ情報は、動きベクトルと共に格納され、又は動きベクトルが格納されるメモリでない他のメモリに格納されることができる。フラグ情報と動きベクトルが異なるメモリに格納される場合、特定動きベクトルが格納されたブロック大きさに対して知る時、フラグ情報に任意接近するようにすることができる。また、一部動きベクトルが格納されたブロック大きさに対する情報を、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダなどを介して送信し、復号化器でも符号化器と同様に動作するようにすることができる。
【0123】
動きベクトルを量子化して格納する場合、動きベクトルの精密度に対する情報を追加してメモリに格納することができる。例えば、量子化のステップ大きさを4にする場合、1のフラグを追加に格納し、量子化のステップ大きさを1にする場合、0のフラグを追加に格納することができる。そのとき、フラグ情報は、動きベクトルと共に格納され、又は動きベクトルが格納されるメモリでない他のメモリに格納されることができる。フラグ情報と動きベクトルが異なるメモリに格納される場合、特定動きベクトルが量子化されて格納されたステップ大きさに対して知る時、フラグ情報に任意接近するようにすることができる。また、一部動きベクトルが量子化されて格納されたステップ大きさに対する情報を、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダなどを介して送信し、復号化器でも符号化器と同様に動作するようにすることができる。
【0124】
また、動き情報をメモリに格納する場合、動きベクトルの空間解像度を減少させて格納することができる。そのとき、動き情報は、インター予測時に必要な参照ピクチャインデックス(reference picture index)、動きベクトル、単方向(uni-direction)又は両方向(bi-direction)などを示すインター予測モード情報、参照ピクチャリスト(reference picture list)、イントラ予測モードに符号化されたかインター予測モードに符号化されたかに対する予測モード(prediction mode)情報のうち少なくとも一つ以上を含む情報である。
【0125】
例えば、特定領域の複数の動き情報のうちパーティションの大きさが最も大きい予測ユニットの動き情報を代表動き情報としてメモリに格納することができる。そのとき、特定領域は、符号化/復号化対象ブロック内の領域と周辺ブロックの領域を含むことができる。また、特定領域は、ピクチャ又はスライス全体が一定の大きさに分割される場合、動き情報が格納されるブロックを含む領域であってもよい。
【0126】
例えば、特定領域に含まれる複数の動き情報中に動き情報併合方法や、符号化情報省略(skip)方法などで符号化された動き情報を除いた後、代表動き情報をメモリに格納することができる。
【0127】
例えば、特定領域に含まれる複数の動き情報中に最も頻繁に発生する動き情報を代表動き情報としてメモリに格納することができる。そのとき、ブロックの大きさ別に動き情報の発生回数などを計算することができる。
【0128】
例えば、特定領域に含まれる複数の動き情報中に特定位置の動き情報を格納することができる。そのとき、特定位置は、特定領域に含まれる位置であり、特定領域の固定された位置であってもよい。また、特定位置は、複数個のうち一つの位置に選択されることができる。複数個の位置が使用される場合、位置別に優先順位が決定されることができ、優先順位によって動き情報がメモリに格納されることができる。
【0129】
例えば、特定領域に含まれる複数の動き情報をメモリに格納する時、イントラ予測モードに符号化されたブロック、PCM(Pulse Coded Modulation)モードに符号化されたブロック、スライス又はピクチャ境界の外部は、動き情報が存在しないため、該当位置の動き情報は、メモリに格納しない。
【0130】
もし、前述した例のうち、特定位置の動き情報を格納する時、該当位置の動き情報が存在しない場合、同等位置ブロックの動き情報、先に符号化されるブロックの動き情報又は周辺ブロックの動き情報が該当位置の動き情報として使われることができる。そのとき、特定位置は、符号化/復号化対象ブロック内の周辺に存在するブロック内の一つのサンプル位置又はブロックの位置である。例えば、特定位置の動き情報が存在しない場合、該当位置周辺のインター予測符号化されたブロックの動き情報のうち、中間値(median)又は平均値(average)をメモリに格納することができる。例えば、特定位置の動き情報が存在しない場合、該当位置の周辺ブロックの動き情報の平均値をメモリに格納することができる。中間値及び平均値を計算する時、周辺ブロックの動き情報が参照ピクチャインデックス、参照ピクチャリスト、インター予測モード情報のうち一つ以上が異なる場合、動きベクトルは、参照ピクチャインデックス、参照ピクチャリスト、インター予測モード情報、及びピクチャディスプレー順序(picture order count)などによって大きさ調整されることができる。
【0131】
III.動きベクトル導出過程
【0132】
前述した動き情報方法を利用して動き情報をメモリに格納し、動きベクトル予測方法、向上した動きベクトル予測方法又は動き情報併合方法で参照ピクチャの動き情報を利用する場合、格納された動き情報を読み取ることができる。
【0133】
例えば、参照ピクチャ内で符号化/復号化対象ブロックの位置と対応される位置の動き情報を読み取ることができる。そのとき、参照ピクチャ内で符号化/復号化対象ブロックの位置と対応される位置は、特定領域内の固定された位置や符号化/復号化対象ブロックの位置から相対的である位置である。
【0134】
図10乃至
図13は、参照ピクチャから動き情報を読み取る例を示す。
【0135】
図10乃至
図13において、ブロックXは符号化/復号化対象ピクチャ1010、1110、1210、1310内の符号化/復号化対象ブロックを示し、ブロックA、ブロックB、ブロックC、ブロックD、及びブロックEは、符号化/復号化対象ブロックの周辺に位置する復元ブロックを示す。そして、参照ピクチャ1020、1120、1220、1320内のブロックTは、符号化/復号化対象ブロックと対応される同等位置ブロックを示す。
図13の参照ピクチャ1320内のブロックYは、符号化/復号化対象ブロック外の位置と対応されるブロックを示す。
【0136】
図10を参照すると、参照ピクチャ内で符号化/復号化対象ブロックXの位置のうち左上端のピクセル位置と対応される位置に該当する動き情報を読み取ることができる。
【0137】
図11を参照すると、参照ピクチャ内で符号化/復号化対象ブロックXの位置のうち中央のピクセル位置と対応される位置に該当する動き情報を読み取ることができる。
【0138】
図12を参照すると、参照ピクチャ内で符号化/復号化対象ブロックXの位置のうち右下端のピクセル位置と対応される位置に該当する動き情報を読み取ることができる。
【0139】
図13を参照すると、参照ピクチャ内で符号化/復号化対象ブロックXの外部の位置と対応される位置に該当する動き情報を読み取ることができる。
【0140】
メモリに格納された動き情報、即ち、参照ピクチャの動き情報を使用し、動きベクトル予測、向上した動きベクトル予測、動き情報併合、動き情報併合省略(merge skip)などの符号化/復号化方法を実行することができる。
【0141】
動きベクトルのダイナミックレンジ制限方法、動きベクトルの空間解像度減少方法、動きベクトルの量子化方法、動きベクトルの表現解像度減少方法のうち、少なくとも一つ以上を使用して動きベクトルをメモリに格納し、格納された動きベクトルを符号化する/復号化対象ブロックの動きベクトル予測及び動き情報併合に利用することができる。
【0142】
参照ピクチャの動きベクトルをメモリから読み取る過程を時間的動きベクトルの導出過程という。時間的動きベクトル導出過程におけるTMVbitWidthは、メモリに格納された時間的動きベクトルのビット幅を示す。
【0143】
時間的動きベクトル導出過程の入力は、現在ピクチャでの予測ユニットの左上端のピクセル位置である(xP,yP)、輝度予測ユニットの横長と縦長であるnPSWとnPSH及び現在予測ユニットパーティションの参照ピクチャインデックスであるrefIdxLXであり、出力は、動きベクトル予測値mxLXClと存在可否フラグであるavailableFlagLXColである。
【0144】
RefPicOrderCnt(pic,refidx,LX)は、picの参照ピクチャRefPicListX[refidx]のPicOrderCntを出力する関数である。ここで、Xは0又は1になることができる。参照ピクチャのPicOrderCntは、ピクチャが“存在しない(non-exisiting)”に処理される時まで存在する。Clip3(a,b,c)は、cをaとbとの間の範囲内に存在するようにクリップする関数を意味する。
【0145】
同等位置パーティション(collocatedpartition)を有しているcolPicは、スライスタイプ(slice_type)がB-スライスであり、collocated_from_l0_flagが0である場合、RefPicList1[0]になる。そうでない場合、即ち、スライスタイプがP-スライスであり、collocated_from_l0_flagが1である場合、RefPicList0[0]になる。
【0146】
colPuとcolPuの位置である(xPCol,yPCol)は、下記のような順序に誘導される。
【0147】
1.現在予測ユニットの右下端の輝度成分位置(xPRb,yPRb)は、数式8及び数式9のように定義される。
【0148】
【0149】
【0150】
2.colPuがイントラ予測モードに符号化され、colPuが存在しない場合、
【0151】
(1)現在予測ユニットの中央の輝度成分位置(xPCtr,yPCtr)は、数式10及び数式11のように定義される。
【0152】
【0153】
【0154】
(2)colPuは、colPicで((xPCtr>>4)<<4,(yPCtr>>4)<<4)の位置を含む予測ユニットに設定される。
【0155】
3.(xPCol,yPCol)は、colPicの左上端の輝度成分位置からcolPuの左上端の輝度成分位置の値になる。
【0156】
mvLXColとavailableFlagLXColは、下記のように誘導される。
【0157】
1.colPuがイントラ予測モードに符号化され、colPuが存在しない場合、mvLXColの各々の成分は0になり、availableFlagLXColも0になる。
【0158】
2.そうでない場合、即ち、colPuがイントラ予測モードに符号化されず、colPuが存在すると、mvLXColとrefIdxColが下記のように誘導される。
【0159】
(1)PredFlagL0[xPCol][yPCol]が0である場合、動きベクトルmvColはMvL1[xPCol][yPCol]に決定され、参照ピクチャインデックスrefIdxColはRefIdxL1[xPCol][yPCol]に決定される。
【0160】
(2)そうでない場合、即ち、PredFlagL0[xPCol][yPCol]が1である場合、下記のような過程が実行される。
【0161】
1)PredFlagL1[xPCol][yPCol]が0である場合、動きベクトルmvColはMvL0[xPCol][yPCol]に決定され、参照ピクチャインデックスrefIdxColはRefIdxL0[xPCol][yPCol]に決定される。
【0162】
2)そうでない場合、即ち、PredFlagL1[xPCol][yPCol]が1である場合、下記のような過程が実行される。
【0163】
a.Xは、0又は1になり、下記のような割当過程が実行される。
【0164】
i.RefIdxColLXはRefIdxLX[xPCol][yPCol]で(に)割り当てられる。
【0165】
ii.PicOrderCnt(colPic)がPicOrderCnt(currPic)より小さく、RefPicOrderCnt(colPic,RefIdxColLX,LX)がPicOrderCnt(currPic)より大きい場合、又はPicOrderCnt(colPic)がPicOrderCnt(currPic)より大きく、RefPicOrderCnt(colPic,RefIdxColLX,LX)がPicOrderCnt(currPic)より小さい場合、MvXCrossは1に割り当てられる。
【0166】
iii.そうでない場合、即ち、PicOrderCnt(colPic)がPicOrderCnt(currPic)より小さく、RefPicOrderCnt(colPic,RefIdxColLX,LX)がPicOrderCnt(currPic)より小さい又は同じ場合、又はPicOrderCnt(colPic)がPicOrderCnt(currPic)より大きく、RefPicOrderCnt(colPic,RefIdxColLX,LX)がPicOrderCnt(currPic)より大きい又は同じ場合、MvXCrossは1に割り当てられる。
【0167】
b.下記の条件のうち一つをみたす場合、動きベクトルmvCol、参照ピクチャインデックスrefIdxCol、ListColは、各々、MvL1[xPCol][yPCol]、RefIdxColL1、L1に決定される。
【0168】
i.Mv0Crossは0、Mv1Crossは1。
【0169】
ii.Mv0CrossとMv1Crossが同じであり、参照ピクチャリストがL1。
【0170】
c.そうでない場合、動きベクトルmvCol、参照ピクチャインデックスrefIdxCol、ListColは、各々、MvL0[xPCol][yPCol]、RefIdxColL0、L0に決定される。
【0171】
3)availableFlagLXColは1になり、数式12又は数式13乃至数式18の演算が実行される。
【0172】
a.PicOrderCnt(colPic)-RefPicOrderCnt(colPic,refIdxCol,ListCol)がPicOrderCnt(currPic)-RefPicOrderCnt(currPic,refIdxLX,LX)である場合、
【0173】
【0174】
b.そうでない場合、
【0175】
【0176】
【0177】
【0178】
【0179】
ここで、tdとtbは、数式17及び数式18の通りである。
【0180】
【0181】
【0182】
即ち、数式13乃至数式16を参照すると、mvLXColは、動きベクトルmvColの大きさ調整値(scaled version)に誘導される。
【0183】
一方、動きベクトルがダイナミックレンジでクリップされても、クリップされた動きベクトルが大きさ調整(scaling)される場合、再びダイナミックレンジを外れることができる。したがって、大きさ調整された動きベクトルを導出した後、前記動きベクトルのダイナミックレンジを制限することができる。その場合、数式15と数式16は、各々、数式19と数式20に代替されることができる。
【0184】
【0185】
【0186】
IV.復号化装置で時間的動きベクトルをクリップするための情報送信方法
【0187】
以下、復号化装置で時間的動きベクトルを符号化装置と同様の方法でクリップするために必要な情報を送信する方法を説明する。
【0188】
前述した時間的動きベクトル導出過程でのTMVBitWidthは、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダなどを介して符号化装置から復号化装置に送信されることができる。
【0189】
【0190】
表5のbit_width_temporal_motion_vector_minus8は、時間的動きベクトル成分のビット幅を示す。bit_width_temporal_motion_vector_minus8が存在しない場合、0に類推され、時間的動きベクトル成分のビット幅は、数式21のように表現される。
【0191】
【0192】
1.情報送信方法1-動きベクトルを圧縮し、動きベクトルのビット深度を制限する場合
【0193】
【0194】
表6を参照すると、motion_vector_buffer_comp_flagが1である場合、動きベクトルバッファ圧縮過程が実行される。
【0195】
motion_vector_buffer_comp_ratio_log2は、動きベクトルバッファ圧縮過程の圧縮比率を示す。motion_vector_buffer_comp_ratio_log2が存在しない場合、0に類推され、動きベクトルバッファ圧縮比率は、数式22のように表現される。
【0196】
【0197】
また、表6を参照すると、bit_depth_temporal_motion_vector_constraint_flagが1である場合、時間的動きベクトルビット深度制限過程が実行される。
【0198】
bit_depth_temporal_motion_vector_minus8は、時間的動きベクトルのビット深度を示す。bit_depth_temporal_motion_vector_minus8が存在しない場合、0に類推され、時間的動きベクトルのビット深度は、数式23のように表現される。
【0199】
【0200】
2.情報送信方法2-動きベクトルのビット深度を制限する場合
【0201】
【0202】
表7を参照すると、bit_depth_temporal_motion_vector_constraint_flagが1である場合、時間的動きベクトルビット深度制限過程が実行される。
【0203】
bit_depth_temporal_motion_vector_minus8は、時間的動きベクトルのビット深度を示す。bit_depth_temporal_motion_vector_minus8が存在しない場合、0に類推され、時間的動きベクトルのビット深度は、数式24のように表現される。
【0204】
【0205】
3.情報送信方法3-動きベクトルのビット深度を制限する場合
【0206】
【0207】
表8のbit_depth_temporal_motion_vector_minus8は、時間的動きベクトルのビット深度を示す。bit_depth_temporal_motion_vector_minus8が存在しない場合、0に類推され、時間的動きベクトルのビット深度は、数式25のように表現される。
【0208】
【0209】
4.情報送信方法4-動きベクトルのX成分、Y成分の各々に対してビット深度を制限する場合
【0210】
【0211】
表9を参照すると、bit_depth_temporal_motion_vector_constraint_flagが1である場合、時間的動きベクトルビット深度制限過程が実行される。
【0212】
bit_depth_temporal_motion_vector_x_minus8は、時間的動きベクトルのX成分ビット深度を示す。bit_depth_temporal_motion_vector_x_minus8が存在しない場合、0に類推され、時間的動きベクトルのビット深度は、数式26のように表現される。
【0213】
【0214】
bit_depth_temporal_motion_vector_y_minus8は、時間的動きベクトルのY成分ビット深度を示す。bit_depth_temporal_motion_vector_x_minus8が存在しない場合、0に類推され、時間的動きベクトルのビット深度は、数式27のように表現される。
【0215】
【0216】
5.情報送信方法5-動きベクトルを圧縮し、動きベクトルのビット深度を制限する場合
【0217】
【0218】
表10を参照すると、motion_vector_buffer_comp_flagが1である場合、動きベクトルバッファ圧縮過程が実行される。
【0219】
motion_vector_buffer_comp_ratio_log2は、動きベクトルバッファ圧縮過程の圧縮比率を示す。motion_vector_buffer_comp_ratio_log2が存在しない場合、0に類推され、動きベクトルバッファ圧縮比率は、数式28のように表現される。
【0220】
【0221】
V.映像コーデックのレベルを介したダイナミックレンジの定義
【0222】
時間的動きベクトルのダイナミックレンジは、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダを介して送信されず、映像コーデックのレベル(level)を介して定義されることができる。符号化装置と復号化装置は、レベル情報を利用して動きベクトルの制限されたダイナミックレンジを判別することができる。
【0223】
また、レベルでも動きベクトルのX成分とY成分の各々のダイナミックレンジ及び/又はビット深度を互いに異なるように定義することができ、各々の成分の最小値及び最大値を定義することもできる。
【0224】
表11と表12は、前述した時間的動きベクトル導出過程でのTMVBitWidthをレベル(level)で定義する場合の一例である。
【0225】
【0226】
表11を参照すると、TMVBitWidthは、レベルで定義されたMaxTMVBitWidthに設定される。そのとき、MaxTMVBitWidthは、時間的動きベクトルがメモリに格納される時、動きベクトルの最大ビット幅を示す。
【0227】
一方、TMVBitWidthはレベルで定義し、定義された値との差(delta value)をシーケンスパラメータセット、ピクチャパラメータセット、又はスライスヘッダを送信することもできる。即ち、TMVBitWidthは、レベルで定義されたMaxTMVBitWidthにシーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダで送信された差を加える値に設定されることができる。そのとき、TMVBitWidthは、時間的動きベクトルがメモリに格納される時、動きベクトルのビット幅を示す。
【0228】
【0229】
【0230】
表13のdelta_bit_width_temporal_motion_vector_minus8は、時間的動きベクトル成分のビット幅の差を示す。delta_bit_width_temporal_motion_vector_minus8が存在しない場合、0に類推され、時間的動きベクトル成分のビット幅は、数式29のように表現される。
【0231】
【0232】
また、表14のようにレベルに時間的動きベクトルの各々の成分のダイナミックレンジを定義することもできる。
【0233】
【0234】
また、表15乃至表17のように、レベルに時間的動きベクトルの各々の成分のビット幅を定義することもできる。
【0235】
【0236】
【0237】
【0238】
また、表18のようにレベルに時間的動きベクトルY成分のビット幅を定義することもできる。
【0239】
【0240】
また、時間的動きベクトルのダイナミックレンジは、動きベクトルの制限に対する情報の送信なく符号化装置及び復号化装置で予め約束した固定値に定義され、又は固定されたビット深度の形態に格納されることができる。
【0241】
TMVBitWidthを符号化装置と復号化装置で同じ値に固定して使用する場合、TMVBitWidthは、4、6、8、10、12、14、16などの正の整数である。そのとき、TMVBitWidthは、時間的動きベクトルがメモリに格納される時、動きベクトルのビット幅を示す。
【0242】
図14は、本発明の一実施例に係る映像の符号化方法を示す順序図である。
図14を参照すると、映像符号化方法は、クリップステップ(S1410)、格納ステップ(S1420)、及び符号化ステップ(S1430)を含む。
【0243】
映像符号化装置及び/又は復号化装置は、参照ピクチャの動きベクトルを所定のダイナミックレンジでクリップする(S1410)。“I.動きベクトルクリップ過程”を介して、前述したように、ダイナミックレンジを外れた動きベクトルは、該当ダイナミックレンジの最小値又は最大値で表現される。したがって、“IV.復号化装置で時間的動きベクトルをクリップするための情報送信方法”と“V.映像コーデックのレベルを介したダイナミックレンジの定義”を介して、前述したように、映像コーデックのレベル及び/又はシーケンスパラメータセット等を介してビット深度を制限したり、映像コーデックのレベルを介してダイナミックレンジを制限したりすることで、参照ピクチャの動きベクトルを所定のダイナミックレンジでクリップすることができる。
【0244】
映像符号化装置及び/又は復号化装置は、“II.動きベクトル格納過程”を介して、前述したように、クリップされた参照ピクチャの動きベクトルをバッファに格納する(S1420)。動きベクトルは、復元された映像と共に又は別にバッファに格納されることができる。
【0245】
映像符号化装置は、格納された参照ピクチャの動きベクトルを利用して符号化対象ブロックの動きベクトルを符号化するする(S1430)。“III.動きベクトル導出過程”を介して、前述したように、HEVCで使われる向上した動きベクトル予測方法では符号化/復号化対象ブロックの周辺に位置する復元ブロックの動きベクトルだけでなく、参照ピクチャ内で符号化/復号化対象ブロックと同じ位置又は対応される位置に存在するブロックの動きベクトルを利用する。したがって、符号化対象ブロックの動きベクトルは、符号化対象ブロックと隣接した周辺ブロックの動きベクトルだけでなく、参照ピクチャの動きベクトル、即ち、時間的動きベクトルであってもよい。
【0246】
一方、参照ピクチャの動きベクトルのX成分のダイナミックレンジとY成分のダイナミックレンジは、互いに異なるように定義されることができるため、参照ピクチャの動きベクトルの各々の成分は、各々のダイナミックレンジでクリップされることができる。
【0247】
また、参照ピクチャの動きベクトルのダイナミックレンジを制限する方法だけでなく、参照ピクチャの動きベクトルを圧縮する方法を使用することもできる。参照ピクチャの動きベクトルのダイナミックレンジを制限し、又は参照ピクチャの動きベクトルを圧縮する場合、映像コーデックのレベル及び/又はシーケンスパラメータセット等にこれを示すフラグとこれに対するパラメータを定義することができる。
【0248】
また、メモリに格納された動き情報、即ち、参照ピクチャの動き情報を使用することで、動きベクトル予測、向上した動きベクトル予測、動き情報併合、動き情報併合省略(merge skip)などの符号化方法を実行することもできる。
【0249】
図15は、本発明の一実施例に係る映像の復号化方法を示す順序図である。
図15を参照すると、映像復号化方法は、クリップステップ(S1510)、格納ステップ(S1520)、導出ステップ(S1530)、及び復号化ステップ(S1540)を含む。
【0250】
図15のクリップステップ(S1510)と格納ステップ(S1520)は、前述した“I.動きベクトルクリップ過程”と“II.動きベクトル格納過程”を利用する
図14のクリップステップ(S1410)と格納ステップ(S1420)と同様である。また、
図15の導出ステップ(S1530)は、前述した“III.動きベクトル導出過程”を利用し、
図14の符号化ステップ(S1430)と対称的である。したがって、詳細な説明は省略する。
【0251】
映像復号化装置は、復号化対象ブロックの動きベクトルを利用してインター予測復号化を実行する(S1540)。映像復号化装置は、動きベクトルのダイナミックレンジ制限方法、動きベクトルの空間解像度減少方法、動きベクトルの量子化方法、動きベクトルの表現解像度減少方法のうち、少なくとも一つ以上を使用して動きベクトルをメモリに格納し、格納された動きベクトルを復号化対象ブロックの動きベクトル予測及び動き情報併合に利用することができる。
【0252】
また、メモリに格納された動き情報、即ち、参照ピクチャの動き情報を使用し、動きベクトル予測、向上した動きベクトル予測、動き情報併合、動き情報併合省略(merge skip)などの復号化方法を実行することもできる。
【0253】
前述した実施例は、一連のステップ又はブロックで表現された順序図により説明されているが、本発明は、前述したステップの順序に限定されるものではなく、一部のステップは異なるステップと、異なる順序又は同時に発生することができる。また、本発明が属する技術分野の通常の知識を有する者であれば、順序図に示すステップは排他的でなく、他のステップが含まれ、又は一部のステップが削除可能であることを理解することができる。
【0254】
また、前述した実施例は、多様な態様の例示を含む。多様な態様を示すために、全ての可能な組合せを記述することはできないが、本発明が属する技術分野の通常の知識を有する者であれば、他の組合せが可能であることを認識することができる。したがって、本発明は、特許請求の範囲内に属する全ての交替、修正、及び変更を含む。