特許第6321750号(P6321750)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エム アンド ケー ホールディングス インコーポレイテッドの特許一覧

<>
  • 特許6321750-映像符号化装置 図000002
  • 特許6321750-映像符号化装置 図000003
  • 特許6321750-映像符号化装置 図000004
  • 特許6321750-映像符号化装置 図000005
  • 特許6321750-映像符号化装置 図000006
  • 特許6321750-映像符号化装置 図000007
  • 特許6321750-映像符号化装置 図000008
  • 特許6321750-映像符号化装置 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6321750
(24)【登録日】2018年4月13日
(45)【発行日】2018年5月9日
(54)【発明の名称】映像符号化装置
(51)【国際特許分類】
   H04N 19/463 20140101AFI20180423BHJP
   H04N 19/61 20140101ALI20180423BHJP
【FI】
   H04N19/463
   H04N19/61
【請求項の数】2
【全頁数】24
(21)【出願番号】特願2016-199653(P2016-199653)
(22)【出願日】2016年10月11日
(62)【分割の表示】特願2013-524785(P2013-524785)の分割
【原出願日】2011年8月12日
(65)【公開番号】特開2017-41902(P2017-41902A)
(43)【公開日】2017年2月23日
【審査請求日】2016年10月11日
(31)【優先権主張番号】10-2011-0064306
(32)【優先日】2011年6月30日
(33)【優先権主張国】KR
(31)【優先権主張番号】10-2010-0079530
(32)【優先日】2010年8月17日
(33)【優先権主張国】KR
(73)【特許権者】
【識別番号】514095055
【氏名又は名称】エム アンド ケー ホールディングス インコーポレイテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】オ,ス−ミ
(72)【発明者】
【氏名】ヤン,ムノク
【審査官】 坂東 大五郎
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00−19/98
(57)【特許請求の範囲】
【請求項1】
在ブロックのイントラ予測モードを定め、前記イントラ予測モードによって前記現在ブロックに対応する予測ブロックを生成するイントラ予測部と、
前記現在ブロックと前記予測ブロックとの差を計算して得られた残差ブロックを変換し、変換ブロックを生成する変換部と、
前記現在ブロックが属する現在コーディングブロックについて定められた量子化ステップサイズを用いて前記変換ブロックを量子化し、量子化された変換ブロックを生成し、前記現在コーディングブロックの左側コーディングブロック、前記現在コーディングブロックの左側、上側及び直前のコーディングブロックのみを用いて前記現在コーディングブロックの量子化ステップサイズ予測子を定める量子化部と、
前記量子化された変換ブロックの量子化された変換係数をスキャンして1次元の量子化された変換係数を生成するスキャニング部と、
前記1次元の量子化された変換係数をエントロピー符号化するエントロピー符号化部と、を備え
前記現在コーディングブロックの左側及び上側コーディングブロックの量子化ステップサイズがいずれも有効ではない場合、スキャン順序上、直前のコーディングブロックの量子化ステップサイズが前記量子化ステップサイズ予測子と定められ、
前記量子化ステップサイズは、既定のサイズと同一または大きいサイズを持つコーディングブロック毎に定められ、
前記変換ブロックのサイズが4×4より大きければ、前記量子化された変換係数は複数のサブセットに分割され、
記スキャニング部は、前記イントラ予測モードによって定められたスキャンパターンを用いて前記複数のサブセットをスキャンることを特徴とする映像符号化装置。
【請求項2】
前記スキャニング部は、前記複数のサブセットを逆方向にスキャンすることを特徴とする請求項1に記載の映像符号化装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、インター予測符号化方法に係り、さらに詳細には、現在予測ユニットに隣接している予測ユニットの動きベクトル及び以前に符号化された参照ピクチャー内の既定の位置の動きベクトルのうち一つを用いて、現在予測ユニットの動きベクトルを予測符号化するインター予測符号化方法に関する。
【背景技術】
【0002】
本発明は、現在予測ユニットの動きベクトルを予測して符号化及び保護化する装置及び方法に関する。
【0003】
MPEG−1、MPEG−2、MPEG−4 H.264/MPEG−4 AVC(Advanced Video coding)などの映像圧縮方式では、映像を符号化するために一つのピクチャーをマクロブロックに分ける。そして、インター予測(inter prediction)及びイントラ予測(intra prediction)を用いてそれぞれのマクロブロックを符号化する。次いで、符号化されたマクロブロックのデータサイズ及び原本マクロブロックの歪曲程度を考慮して最適の符号化モードを選択し、マクロブロックを符号化する。
【0004】
インター予測を用いて映像を符号化する方法は、ピクチャー間の時間的な重複性をとり除いて映像を圧縮する方法であり、動き推定符号化方法が代表的な例である。動き推定符号化は、一つ以上の参照ピクチャーを用いて現在ピクチャーの動きをブロック単位で推定かつ補償して映像を符号化する方法である。
【0005】
動き推定符号化では、所定の評価関数を用いて現在ブロックと最も類似したブロックを、参照ピクチャーの定められた検索範囲で検索する。類似したブロックが検索されれば、現在ブロックと参照ピクチャー内の類似したブロックとの間のレジデューのみ伝送することでデータの圧縮率を高める。
【0006】
この時、動き推定符号化された現在ブロックを復号化するためには、現在ブロックと参照ピクチャー内の類似したブロックとの位置差を示す動きベクトルに関する情報が必要である。したがって、符号化時に動きベクトルに関する情報を符号化してビットストリームに挿入するが、動きベクトルに関する情報をそのまま符号化して挿入すれば、オーバーヘッドが増加して映像データの圧縮率が低くなる。
【0007】
したがって、インター予測符号化方法では、現在ブロックの動きベクトルを周辺ブロックを用いて予測し、予測の結果で生成された予測動きベクトルと原本動きベクトルとの差分値のみを符号化して伝送することで、動きベクトルに関する情報も圧縮する。
【0008】
H.264では、現在ブロックの動きベクトルの予測値である予測動きベクトルは、予測動きベクトル=中央値(mvA、mvB、mvC)によって定められる。隣接しているブロックは類似性を持ちやすいため、現在ブロックの動きベクトルを周辺ブロックの動きベクトルの中央値と定める。
【0009】
しかし、隣接ブロックの動きベクトルのうち一つ以上が現在ブロックの動きベクトルと異なる場合、前記中央値が現在ブロックの動きベクトルを効果的に予測できないという点が発生する。また、映像の動きがほとんどないか、または時間的にほぼ一定に動く映像及び背景映像については、既存の動き予測方式より効果的な動き予測のための候補者選定及び動きベクトルを符号化/復号化する方式が求められる。
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明が解決しようとする課題は、現在予測ユニットに隣接している予測ユニットの動きベクトル及び以前に符号化された参照ピクチャー内の既定の位置の動きベクトルのうち一つを用いて、現在予測ユニットの動きベクトルを予測符号化するインター予測符号化する方法を提供することである。
【課題を解決するための手段】
【0011】
本発明によるインター予測符号化方法は、現在予測ユニットの動きベクトル及び参照ピクチャーインデックスを定め、前記現在予測ユニットと隣接している既定の位置の予測ユニットの有効な動きベクトルを空間動きベクトル候補者に誘導し、前記現在予測ユニットの有効な時間動きベクトル候補者を誘導し、前記有効な空間動きベクトル候補者及び時間動きベクトル候補者のうち一つを、現在予測ユニットの動きベクトル予測子と定め、前記現在予測ユニットの動きベクトルと前記定められた動きベクトル予測子との動きベクトル差値を求め、前記差値及び前記参照ピクチャーインデックスを符号化し、前記時間動きベクトル候補者は、以前に符号化された参照ピクチャー内の現在予測ユニットに対応する位置、またはその周辺に存在する予測ユニットの動きベクトルであることを特徴とする。
【発明の効果】
【0012】
本発明によるインター予測符号化方法は、動き情報を効果的に符号化するために、現在予測ユニットと隣接している既定の位置の予測ユニットの有効な動きベクトルを空間動きベクトル候補者に誘導し、以前に符号化された参照ピクチャー内の現在予測ユニットに対応する位置、またはその周辺に存在する予測ユニットの動きベクトルを、前記現在予測ユニットの有効な時間動きベクトル候補者に誘導する。そして、前記有効な空間動きベクトル候補者及び時間動きベクトル候補者のうち一つを現在予測ユニットの動きベクトル予測子と定め、前記現在予測ユニットの動きベクトルと前記定められた動きベクトル予測子との動きベクトル差値を求める。したがって、空間及び時間動きベクトル候補者を用いることで現在予測ユニットの動き情報の符号化量を低減させる。
【図面の簡単な説明】
【0013】
図1】本発明の実施形態による動画符号化装置を示すブロック図である。
図2】本発明の実施形態による動画復号化装置を示すブロック図である。
図3】本発明の実施形態によるスキップ符号化された予測ユニットの復元ブロックを生成する過程を示す図面である。
図4】本発明の実施形態による空間スキップ候補者の位置を示す図面である。
図5】本発明の実施形態による時間スキップ候補者を求めるために使われる予測ユニットの位置を示す図面である。
図6】本発明の実施形態による時間スキップ候補者ピクチャー内の現在予測ユニットに対応する対応ブロックを示す図面である。
図7】本発明の実施形態による動きベクトル予測符号化された予測ユニットの復元ブロックを生成する過程を示す図面である。
図8】本発明の実施形態による空間動きベクトル候補者のための現在予測ユニットに隣接している予測ユニットの位置を示す図面である。
【発明を実施するための形態】
【0014】
以下、本発明のいろいろな実施形態を例示的な図面により詳細に説明する。本発明は多様な変更を加えることができ、かつ多様な実施形態を持つことができるところ、本発明を特定の実施形態に限定しようとするものではなく、本発明の思想及び技術範囲に含まれるあらゆる変更、均等物ないし代替物を含むと理解されねばならない。
【0015】
映像符号化のために、ピクチャーは複数のスライスで構成され、スライスは、複数のLCU(largest coding unit)で構成される。LCUの位置は、アドレス指示子によって定められる。前記LCUは、それ自体がコーディングユニット(CU:coding unit)になってもよく、さらに小さな単位のCUに分割されてもよい。LCU単位ごとにLCU内のCU構成を示す情報を含む。前記CU構成を示すために分割フラグが使われる。
【0016】
それぞれ定められたCUは、一つまたは複数の予測ユニット(PU:prediction unit)で構成される。PUは、イントラまたはインター予測のために使われる基本単位を意味する。
【0017】
変換ユニット(TU:transform unit)は、変換符号化の基本単位を意味する。イントラ予測の場合には、PUが複数のTUを持ってもよい。インター予測の場合には、複数のPUが一つのTUを構成してもよい。PUの最大サイズはSPS(sequence parameter set)で定義され、四分木形態に分割される。イントラ予測及びインター予測についての最大サイズのPUは互いに異なる。したがって、前記情報はSPSを通じて復号器に伝送される。
【0018】
図1は、本発明による動画符号化装置を示すブロック図である。図1を参照すれば、本発明による動画符号化装置100は、ピクチャー分割部110、変換部120、量子化部130、スキャニング部131、エントロピー符号化部140、イントラ予測部150、インター予測部160、逆量子化部135、逆変換部125、後処理部170、ピクチャー保存部180、減算部190及び加算部195を備える。
【0019】
ピクチャー分割部110は、入力されるビデオ信号を分析し、ピクチャーを最大のコーディングユニットごとに所定サイズのコーディングユニットに分割して予測モードを定め、前記コーディングユニット別に予測ユニットのサイズを定める。そして、ピクチャー分割部110は、符号化する予測ユニットを、予測モードによってイントラ予測部150またはインター予測部160に伝送する。また、ピクチャー分割部110は、符号化する予測ユニットを減算部190に伝送する。
【0020】
変換部120は、入力された予測ユニットの原本ブロックと、イントラ予測部150またはインター予測部160で生成された予測ブロックとの残差信号である残差ブロックを変換する。前記残差ブロックは、コーディングユニットで構成することが望ましい。コーディングユニットで構成された残差ブロックは、最適の変換ユニットに分割されて変換される。予測モード(イントラまたはインター)及びイントラ予測モードによって適応的に変換マトリックスが定められる。変換ユニットは、2個(水平、垂直)の1次元変換マトリックスによって変換される。例えば、インター予測の場合には、既定の1つの変換マトリックスが定められる。
【0021】
イントラ予測の場合、イントラ予測モードが水平である場合には、残差ブロックが垂直方向への方向性を持つ確率が高くなるので、垂直方向にはDCT基盤の定数マトリックスを適用し、水平方向にはDST基盤またはKLT基盤の定数マトリックスを適用する。イントラ予測モードが垂直である場合には、垂直方向にはDST基盤またはKLT基盤の定数マトリックスを、水平方向にはDCT基盤の定数マトリックスを適用する。DCモードの場合には、双方向ともDCT基盤の定数マトリックスを適用する。前記方式は、変換ユニットのサイズが既定のサイズより小さいか、または同じ場合に適用する。前記既定のサイズは、4×4または8×8である。したがって、変換ユニットのサイズが既定のサイズより大きい場合には、双方向ともDCT基盤の定数マトリックスを適用するか、または2次元のDCT基盤の定数マトリックスを適用する。すなわち、イントラ予測の場合、変換ユニットのサイズ及びイントラ予測モードによって変換マトリックスが適応的に定められてもよい。
【0022】
量子化部130は、前記変換マトリックスによって変換された残差ブロックの係数を量子化するための量子化ステップサイズを、既定のサイズ以上のコーディングユニット別に定める。既定のサイズより小さなコーディングユニットについての量子化ステップサイズは、既定のサイズ単位で定められる量子化ステップサイズの値を持つ。そして、定められた量子化ステップサイズ及び予測モードによって定められる量子化マトリックスを用いて、前記変換ブロックの係数を量子化する。量子化部130は、現在コーディングユニットの量子化ステップサイズ予測子として、現在コーディングユニットに隣接しているコーディングユニットの量子化ステップサイズを優先的に用いる。すなわち、量子化部130は、現在コーディングユニットの左側コーディングユニットの量子化ステップサイズを、現在コーディングユニットの量子化ステップサイズ予測子と定める。前記左側コーディングユニットが利用不可能な場合には、スキャン順序上、直前のコーディングユニットの量子化ステップサイズを現在コーディングユニットの量子化ステップサイズ予測子と定める。または左側コーディングユニット、上側コーディングユニット、スキャン順序上、直前のコーディングユニット順序で検索して、有効なコーディングユニットの量子化ステップサイズを現在コーディングユニットの量子化ステップサイズ予測子と定める。
【0023】
前記量子化された変換ブロックは、逆量子化部135及びスキャニング部131で提供される。スキャニング部131は、量子化された変換ブロックの係数をスキャニングして1次元の量子化係数に変換する。係数スキャニング方式は、予測モード及びイントラ予測モードによって定められる。また、係数スキャニング方式は、変換ユニットのサイズによって異なって定められてもよい。
【0024】
スキャニング部131は、現在変換ユニットがサイズによって量子化された係数ブロックを複数のサブセットに分割するかどうかを定める。変換ユニットのサイズが第1基準サイズより大きい場合、前記量子化された係数ブロックを複数のサブセットに分割する。前記第1基準サイズは、4×4または8×8であることが望ましい。
【0025】
スキャニング部131は、量子化された係数ブロックに適用されるスキャンパターンを定める。インター予測モードの場合には、既定のスキャンパターン(例えば、ジグザグスキャン)のみを適用する。イントラ予測の場合には、イントラ予測モード及び変換ユニットのサイズによってスキャンパターンが変わる。非方向性モードについては、前記既定のスキャンパターンを適用する。非方向性モードは、DCモードまたは平面モードである。
【0026】
イントラ予測方向性モードは、イントラ予測モード及び変換ユニットのサイズによって前記スキャンパターンが変わる。既定のサイズ以上の変換ユニットについては、前記既定のスキャンパターンを適用し、既定のサイズより小さな変換ユニットについては、方向性イントラ予測モードによって適応的にスキャンパターンが定められる。前記既定のサイズは16×16である。
【0027】
既定のサイズより小さな変換ユニットについては、3種のスキャンパターンが適用される。3種のスキャンパターンは、第1スキャンパターン(前記既定のスキャンパターンと同一)、第2スキャンパターン(水平スキャンパターン)、第3スキャンパターン(垂直スキャンパターン)である。垂直モードの場合には、水平方向への変換係数の存在する可能性が大きいため、第2スキャンパターンを適用する。同様に、前記垂直モードの左側及び右側に隣接している所定数の方向性イントラ予測モードについても第2スキャンパターンを適用する。同様に、水平モードの場合には、第3スキャンパターンを適用する。そして、前記水平モードの上側及び下側の所定数の方向性イントラ予測モードについては、第3スキャンパターンを適用する。前記所定数は、各方向に対して3または4であることが望ましい。
【0028】
量子化係数のスキャン順序は、逆方向にスキャンする。前記量子化された係数が複数のサブセットに分割された場合には、それぞれのサブセット内の量子化係数に同じスキャンパターンを適用する。前記複数のサブセットは、一つのメインサブセットと少なくとも一つ以上の残余サブセットとで構成される。メインサブセットは、DC係数を含む左上側に位置し、前記残余サブセットは、メインサブセット以外の領域をカバーする。
【0029】
サブセット間のスキャンパターンは、ジグザグスキャンを適用する。スキャンパターンは、メインサブセットから順方向に残余サブセットにスキャンすることが望ましいが、その逆方向も可能である。また、サブセット内の量子化された係数のスキャンパターンと同じくサブセット間のスキャンパターンを設定してもよい。この場合、サブセット間のスキャンパターンが、イントラ予測モードによって定められる。一方、符号器は、前記変換ユニット内の0ではない最後の量子化係数の位置を示す情報を復号器に伝送する。各サブセット内の0ではない最後の量子化係数の位置を示す情報も復号器に伝送する。前記情報は、それぞれのサブセット内の0ではない最後の量子化係数の位置を示す情報である。
【0030】
逆量子化135は、前記量子化された量子化係数を逆量子化する。逆変換部125は、逆量子化された変換係数を空間領域の残差ブロックに復元する。加算器は、前記逆変換部によって復元された残差ブロックと、イントラ予測部150またはインター予測部160からの予測ブロックとを合わせて復元ブロックを生成する。
【0031】
後処理部160は、復元されたピクチャーに発生するブロッキング効果を除去するためのデブロッキングフィルタリング過程、ピクセル単位で原本映像との差値を補うための適応的オフセット適用過程、及びコーディングユニットで原本映像との差値を補うための適応的ループフィルタリング過程を行う。
【0032】
デブロッキングフィルタリング過程は、既定のサイズ以上のサイズを持つ予測ユニット及び変換ユニットの境界に適用することが望ましい。前記サイズは、8×8である。前記デブロッキングフィルタリング過程は、フィルタリングする境界(boundary)を定める段階、前記境界に適用する境界フィルタリング強度(bounary filtering strength)を定める段階、デブロッキングフィルターの適用如何を定める段階、前記デブロッキングフィルターを適用すると定められた場合、前記境界に適用するフィルターを選択する段階を含む。
【0033】
前記デブロッキングフィルターの適用如何は、i)前記境界フィルタリング強度が0より大きいかどうか、及びii)前記フィルタリングする境界に隣接している2個のブロック(Pブロック、Qブロック)境界部分でのピクセル値の変化程度を示す値が、量子化パラメータによって定められる第1基準値より小さいかどうかによって定められる。
【0034】
前記フィルターは、少なくとも2個以上であることが望ましい。ブロック境界に位置している2個のピクセル間の差値の絶対値が第2基準値より大きいか、または同じ場合には、相対的に弱いフィルタリングを行うフィルターを選択する。前記第2基準値は、前記量子化パラメータ及び前記境界フィルタリング強度によって定められる。
【0035】
適応的ループフィルタリング過程は、デブロッキングフィルタリング過程または適応的オフセット適用過程を経た復元された映像と原本映像とを比べた値に基づいてフィルタリングを行える。適応的ループフィルターは、4×4サイズのブロックに基づいて、一つのラプラシアン活動値(Laplacian Activity value)を通じて検出される。前記定められたALFは、4×4サイズまたは8×8サイズのブロックに含まれた画素全体に適用される。適応的ループフィルターの適用如何は、コーディングユニット別に定められる。各コーディングユニットによって適用されるループフィルターのサイズ及び係数は変わりうる。コーディングユニット別に前記適応的ループフィルターの適用如何を示す情報、フィルター係数情報、フィルター形態情報などは各スライスヘッダに含まれて復号器に伝送される。色差信号の場合には、ピクチャー単位で適応的ループフィルターの適用如何を定める。ループフィルターの形態も、輝度とは異なって長方形でありうる。
【0036】
適応的ループフィルタリングの適用如何は、シーケンスまたはピクチャー単位で設定される。前記適応的ループフィルタリング過程に適用される適応的ループフィルターパラメータ情報は、ピクチャーまたはスライスヘッダに含まれる。前記適応的ループフィルターパラメータ情報がピクチャーヘッダに含まれれば、スライスヘッダは前記情報を含まない。一方、前記適応的ループフィルターパラメータ情報がピクチャーヘッダに含まれていなければ、スライスヘッダは前記情報を含む。前記適応的ループフィルターパラメータ情報は、適応的ループフィルタリング過程で使われるluma成分の水平及び/または垂直方向のフィルター長を示す情報を含む。前記情報は、使われるフィルターの数を示す情報を含む。フィルターの数が2以上ならば、フィルター係数が予測方法を使って符号化されるかどうかを示す情報を含み、予測方法が使われる場合には予測されたフィルター係数を含み、そうではない場合には予測されていないフィルター係数を含む。
【0037】
一方、輝度成分だけではなく色差成分も適応的にフィルタリングされる。したがって、前記情報は、色差成分それぞれがフィルタリングされるかどうかを示す情報を含む。この場合、ビット数を低減させるためにCr及びCbについてのフィルタリング如何を共に示す情報はジョイント符号化される。色差成分いずれもフィルタリングしない場合が最も頻繁であるため、これについて最も小さな情報を割り当てるエントロピー符号化を行うことが望ましい。また、色差成分のうち少なくとも一つ以上がフィルタリングされる場合には、前記情報は、色差成分に対するフィルター係数の水平及び/または垂直方向のフィルター長を示す情報及びフィルター情報を含む。
【0038】
また、適応的ループフィルタリング過程は、所定サイズ以上のコーディングユニットごとにオン・オフされる。したがって、各スライスヘッダは、スライス内のコーディングユニット単位で適応的ループフィルタリング過程が適用されるかどうかを示す情報を含む。
【0039】
ピクチャー保存部180は、後処理された映像データを後処理部160から入力されて、ピクチャー単位で映像を復元して保存する。ピクチャーは、フレーム単位の映像またはフィールド単位の映像である。ピクチャー保存部180は、複数のピクチャーを保存できるバッファ(図示せず)を備える。
【0040】
インター予測部150は、前記ピクチャー保存部180に保存された少なくとも一つ以上の参照ピクチャーを用いて動き推定を行い、参照ピクチャーを示す参照ピクチャーインデックス及び動きベクトルを定める。そして、定められた参照ピクチャーインデックス及び動きベクトルによって、ピクチャー保存部150に保存された複数の参照ピクチャーのうち動き推定に用いられた参照ピクチャーから、符号化しようとする予測ユニットに対応する予測ブロックを抽出して出力する。
【0041】
イントラ予測部140は、現在予測ユニットが含まれるピクチャー内部の再構成された画素値を用いてイントラ予測符号化を行う。イントラ予測部140は、予測符号化する現在予測ユニットを入力されて、現在ブロックのサイズによって予め設定された数のイントラ予測モードのうち一つを選択してイントラ予測を行う。イントラ予測部は、イントラ予測ブロックを生成するために参照ピクセルを適応的にフィルタリングする。参照ピクセルが有効でない場合には、有効な参照ピクセルを用いて前記有効でない位置の参照ピクセルを生成する。
【0042】
エントロピー符号化部130は、量子化部130によって量子化された量子化係数、イントラ予測部140から受信されたイントラ予測情報、インター予測部150から受信された動き情報などをエントロピー符号化する。
【0043】
一方、本発明による動画符号化装置100は、動きベクトルを予測符号化する。動きベクトルの予測符号化過程は、インター予測部150及びエントロピー符号化部140によって行われる。前記動画符号化装置100による動きベクトル予測符号化過程(AMVP符号化過程)は、次の通りである。
【0044】
現在予測ユニットの動きベクトルを求める。そして、現在予測ユニットと隣接している既定の位置の予測ユニットの有効な(available)動きベクトルを、空間動きベクトル候補者と設定する。隣接している予測ユニットの動きベクトルが存在しない場合、予測ユニットが他のスライスに含まれる場合には、動きベクトルが有効ではないと判断する。
【0045】
次いで、前記空間動きベクトル候補者を適応的にスケーリングする。現在予測ユニットと隣接予測ユニットとが互いに同じピクチャーを参照する場合にはスケーリングせず、互いに異なる参照ピクチャーを参照する場合または参照ピクチャーとの時間的距離(temporal distance of the reference picture)が異なる場合には、前記空間動きベクトル候補者をスケーリングする。スケーリングは、参照ピクチャーとの時間的距離を用いて行う。しかし、動かない映像(例えば、背景など)の場合には、スケーリングしなくてもよい。この場合、スケーリング如何を示す情報(フラグ)を復号器に伝送してもよい。または、既定数の空間動きベクトルのみをスケーリングしてもよい。
【0046】
前記空間動きベクトル候補者及び前記時間動きベクトル候補者のうち、現在予測ユニットの動きベクトル予測子を選択する。
【0047】
現在予測ユニットの動きベクトルと前記現在予測ユニットの動きベクトル予測子との動きベクトル差値(MVD)を求め、前記MVDを符号化する。そして、前記動きベクトル予測子を示す情報も符号化する。
【0048】
前記時間動きベクトル候補者は、以前に符号化された特定参照ピクチャー内の現在予測ユニットに対応する位置、またはその周辺に存在する予測ユニットの動きベクトルである。前記特定参照ピクチャー内の現在予測ユニットに対応する位置、またはその周辺に存在する予測ユニットの動きベクトルが複数である場合には、既定の方式によっていずれか一つが時間動きベクトル候補者と定められる。すなわち、前記特定ピクチャー内の現在予測に対応する第1位置の動きベクトルが有効な場合には、これを時間動きベクトル候補者と設定し、前記第1位置の動きベクトルが有効でない場合には、第2位置の動きベクトルを時間動きベクトル候補者と設定する。
【0049】
スライスタイプがB(双方向予測)である場合、時間動きベクトル候補者が含まれた前記特定参照ピクチャーは、リスト0またはリスト1から定められる。したがって、符号化部は、前記リスト情報を符号化して伝送し、復号化部は、前記リスト情報に基づいて特定参照ピクチャーを定める。
【0050】
また、時間動きベクトルが使われたかどうかを示す情報が、ビットストリームに含まれて受信される。この場合、前記情報によって前記動きベクトル復号化過程が変わる。
【0051】
前記空間動きベクトル候補者は、左側動きベクトル候補者及び上側動きベクトル候補者を含む。現在予測ユニットの左側動きベクトル候補者は、現在予測ユニットの左側または左下側に隣接している予測ユニットの動きベクトルである。既定の順序で有効な動きベクトルが得られるまで、左側または左下側予測ユニットの動きベクトル候補者を検索(retrieve)して得られた動きベクトルである。現在予測ユニットの上側動きベクトル候補者は、現在予測ユニットの上側、右上側、左上側の予測ユニットの動きベクトルのうち既定の順序で検索して得られた、最初の有効な動きベクトルである。
【0052】
同一値の動きベクトル候補者が存在する場合、順序上、後の動きベクトルをリストからとり除く。
【0053】
動きベクトル候補者が1つであれば、これを動きベクトル予測子と選択し、動きベクトル予測子を示す情報は符号化されない。
【0054】
図2は、本発明の実施形態による動画復号化装置を示すブロック図である。図2を参照すれば、本発明による動画復号化装置は、エントロピー復号化部210、逆スキャニング部215、逆量子化部220、逆変換部225、加算器270、後処理部250、ピクチャー保存部260、イントラ予測部230、インター予測部240及びイントラ/インター転換スィッチ280を備える。
【0055】
エントロピー復号化部210は、動画符号化装置から伝送される符号化ビートストリームを復号して、イントラ予測モードインデックス、動き情報、量子化係数シーケンスなどに分離する。エントロピー復号化部210は、復号された動き情報をインター予測部240に供給する。エントロピー復号化部210は、前記イントラ予測モード情報を、前記イントラ予測部230、逆量子化部220及び逆変換部225に供給する。また、前記エントロピー復号化210は、前記逆量子化係数シーケンスを逆量子化部220及び逆変換部225に供給する。
【0056】
逆スキャニング部215は、前記量子化係数情報を2次元配列の逆量子化ブロックに変換する。前記変換のために、複数の逆スキャニングパターンのうち一つを選択する。係数逆スキャニングパターンは、イントラ予測モードによって定められる。現在変換ユニットのサイズが既定のサイズより大きい場合には、既定のサイズのサブセット単位で逆スキャンして量子化された変換ユニットを構成する。そして、現在変換ユニットのサイズが既定のサイズと同じ場合には、変換ユニット単位で逆スキャンして量子化された変換ユニットを構成する。前記量子化された係数が複数のサブセット単位で逆スキャンされる場合には、それぞれのサブセット内の量子化係数に同じ逆スキャンパターンを適用する。前記複数のサブセットは、一つのメインサブセットと少なくとも一つ以上の残余サブセットとで構成される。メインサブセットは、DC係数を含む左上側に位置し、前記残余サブセットは、メインサブセット以外の領域をカバーする。
【0057】
サブセット間の逆スキャンパターンは、逆ジグザグスキャンを適用する。スキャンパターンは、残余サブセットからメインサブセットに逆スキャンすることが望ましいが、その逆方向も可能である。サブセット内の量子化された係数の逆スキャンパターンと同様にサブセット間の逆スキャンパターンを設定してもよい。逆スキャニング部215は、現在変換ユニット内の0ではない最後の量子化係数の位置を示す情報を用いて逆スキャニングを行う。
【0058】
イントラ予測方向性モードについてのサブセット内の逆スキャンパターンは、イントラ予測モード及び変換ユニットのサイズによって変わる。すなわち、既定のサイズ以上の変換ユニットについては、既定のスキャンパターンを適用し、既定のサイズより小さな変換ユニットについては、方向性イントラ予測モードによって適応的に逆スキャンパターンが定められる。前記既定のサイズは、16×16である。既定のサイズより小さな変換ユニットについては、3種の逆スキャンパターンが適用される。3種のスキャンパターンは、第1スキャンパターン(前記既定のスキャンパターンと同一)、第2スキャンパターン(水平スキャンパターン)、第3スキャンパターン(垂直スキャンパターン)である。垂直モードと、前記垂直モードの左側及び右側に隣接している所定数の方向性イントラ予測モードとについても、第2スキャンパターンを適用する。同様に、水平モードと、前記水平モードの上側及び下側に隣接している所定数の方向性イントラ予測モードとについては、第3スキャンパターンを適用する。前記所定数は、各方向に対して3または4であることが望ましい。
【0059】
逆量子化部220は、前記2次元配列の逆量子化係数を逆量子化するために量子化ステップサイズを復元する。量子化ステップサイズは、既定のサイズ以上のコーディングユニット別に定める。既定のサイズより小さなコーディングユニットについての量子化ステップサイズは、既定のサイズ単位で定められる量子化ステップサイズの値を持つ。逆量子化部220は、現在コーディングユニットの量子化ステップサイズ予測子として、現在コーディングユニットに隣接しているコーディングユニットの量子化ステップサイズを優先的に用いる。すなわち、現在コーディングユニットの左側コーディングユニットの量子化ステップサイズを、現在コーディングユニットの量子化ステップサイズ予測子と定める。前記左側コーディングユニットが利用不可能な場合には、スキャン順序上、直前のコーディングユニットの量子化ステップサイズを現在コーディングユニットの量子化ステップサイズ予測子と定める。または、左側コーディングユニット、上側コーディングユニット、スキャン順序上、直前のコーディングユニット順序で検索し、有効なコーディングユニットの量子化ステップサイズを現在コーディングユニットの量子化ステップサイズ予測子と定める。
【0060】
前記量子化ステップサイズ予測子が定められれば、受信された残余量子化ステップサイズと前記定められた量子化ステップサイズ予測子とを加えて量子化ステップサイズを得る。そして、前記量子化ステップサイズ及び予測モードによって定められる逆量子化マトリックスを用いて前記逆量子化係数を逆量子化する。
【0061】
逆変換部225は、逆量子化ブロックを逆変換して残差ブロックを復元する。前記逆量子化ブロックに適用する逆変換マトリックスは、予測モード(イントラまたはインター)及びイントラ予測モードによって適応的に定められる。図1の変換部120に適用された変換マトリックスの逆変換マトリックスが適用される。
【0062】
加算器270は、逆量子化部220及び逆変換部225によって復元された残差ブロックと、イントラ予測部230またはインター予測部240によって生成される予測ブロックとを加算することで、映像ブロックを復元する。
【0063】
後処理部250は、加算器270によって生成された復元映像にデブロッキングフィルター処理を行う。これによって、量子化過程による映像損失に起因するデブロッキングアーティファクトを低減させる。
【0064】
ピクチャー保存部260は、後処理部250によってデブロッキングフィルター処理が行われたローカル復号映像を保持するフレームメモリである。
【0065】
イントラ予測部230は、エントロピー復号化部210から受信されたイントラ予測モードインデックスに基づいて現在ブロックのイントラ予測モードを復元する。そして、復元されたイントラ予測モードによって予測ブロックを生成する。
【0066】
インター予測部240は、受信された動き情報に基づいて現在予測ユニットの動きベクトルを復元する。そして、前記復元された動きベクトル情報に基づいて、ピクチャー保存部260に保存されたピクチャーから現在ブロックに対する予測ブロックを生成する。小数点精度の動き補償が適用される場合には、選択された補間フィルターを適用して予測ブロックを生成する。
【0067】
インター予測部の動きベクトル予測復号化過程(AMVP復号化過程)は、次の通りである。
【0068】
符号化された動きベクトル差値を復号化してMVDを生成する。現在予測ユニットと隣接している既定の位置の予測ユニットの有効な動きベクトルを空間動きベクトル候補者と設定する。そして、前記空間動きベクトル候補者を適応的にスケーリングする。現在予測ユニットと隣接予測ユニットとが互いに同じピクチャーを参照する場合には、スケーリングせず、互いに異なる参照ピクチャーを参照する場合には、前記空間動きベクトル候補者をスケーリングする。スケーリングは、参照ピクチャーの時間的距離(temporal distance of the reference picture)を用いて行う。
【0069】
動きベクトル予測子を示す動き情報に基づいて、空間動きベクトル候補者及び時間動きベクトル候補者のうち、現在予測ユニットの動きベクトル予測子を選択する。そして、前記選択された動きベクトル予測子とMVDとを加えて現在予測ユニットの動きベクトルを復元する。
【0070】
前記時間動きベクトル候補者は、以前に符号化された特定参照ピクチャー内の現在予測ユニットに対応する位置、またはその周辺に存在する予測ユニットの動きベクトルである。前記特定参照ピクチャー内の現在予測ユニットに対応する位置、またはその周辺に存在する予測ユニットの動きベクトルが複数である場合には、既定の方式によっていずれか一つが時間動きベクトル候補者と定められる。すなわち、前記特定ピクチャー内の現在予測に対応する第1位置の動きベクトルが有効な場合には、これを時間動きベクトル候補者と設定し、前記第1位置の動きベクトルが有効でない場合には、第2位置の動きベクトルを時間動きベクトル候補者と設定する。
【0071】
スライスタイプがBである場合、時間動きベクトル候補者が含まれた前記特定参照ピクチャーは、リスト0またはリスト1から定められる。したがって、復号化部は、前記リスト情報に基づいて特定参照ピクチャーを定める。
【0072】
また、時間動きベクトルが使われたかどうかを示す情報が、ビットストリームに含まれて受信される。この場合、前記情報によって前記動きベクトル復号化過程が変わる。前記空間動きベクトル候補者は、左側動きベクトル候補者及び上側動きベクトル候補者を含む。現在予測ユニットの左側動きベクトル候補者は、現在予測ユニットの左側または左下側に隣接している予測ユニットの動きベクトルである。既定の順序で有効な動きベクトルが得られるまで、左側または左下側予測ユニットの動きベクトル候補者を検索(retrieve)して得られた動きベクトルである。現在予測ユニットの上側動きベクトル候補者は現在予測ユニットの上側、右上側、左上側のエツックユニットの動きベクトルのうち既定の順序に検索して得られた、最初の有効な動きベクトルである。
【0073】
同一値の動きベクトル候補者が存在する場合、順序上、後の動きベクトルをリストからとり除く。動きベクトル候補者が1つであれば、これを動きベクトル予測子と選択し、動きベクトル予測子を示す情報は符号化されない。
【0074】
イントラ/インター転換スィッチ280は、符号化モードに基づいて、イントラ予測部230とインター予測部240のいずれか一つで生成された予測ブロックを加算器270に提供する。
【0075】
以下では、本発明によるインター予測復号化過程を説明する。インター予測復号化過程は、現在予測ユニットの動き情報を復号化する過程、現在予測ユニットの予測ブロックを生成する過程、残差ブロックを生成する過程、及び予測ブロックと残差ブロックとを用いて再構成ブロックを生成を含む。前記動き情報は、動きベクトル及び参照ピクチャーインデックスを含む。
【0076】
図3は、本発明によるスキップ符号化された予測ユニットの復元ブロックを生成する過程を示す図面である。受信された符号化ユニット内のskip_flagが1である場合の予測ブロックを生成する過程である。
【0077】
先ず、隣接予測ユニットから空間スキップ候補者を誘導(derivation)する(S210)。
【0078】
空間スキップ候補者は、図4に示したように、現在予測ユニットの左側予測ユニット(ブロックA)、現在予測ユニットの上側予測ユニット(ブロックB)、現在予測ユニットの右上側予測ユニット(ブロックC)及び現在予測ユニットの左下側予測ユニット(ブロックD)の動き情報になる。現在予測ユニットの左上側予測ユニット(ブロックE)の動き情報も空間スキップ候補者になりうるが、これは特別な場合に限定することが望ましい。例えば、予測ユニットA、B、C、Dのうち一部(例えば、1つ以上)の動き情報が有効でない場合に、ブロックEの動き情報が空間スキップ候補者に組み込まれる。動き情報は、参照ピクチャーインデックスと動きベクトルを含む。
【0079】
また、空間スキップ候補者は、左側予測ユニットA、上側予測ユニットB及びコーナー予測ユニット(CまたはDまたはE)の動き情報であってもよい。ここでコーナー予測ユニットは、既定の順序(C、D、E順またはD、C、E順)にスキャンして有効な最初の予測ユニットである。
【0080】
前記各隣接予測ユニットの有効性検査(Availability check)を進める。予測ユニットが存在しないか、予測ユニットの予測モードがイントラモードである場合には、有効でない予測ユニットと処理する。
【0081】
一方、現在予測ユニットの左側に複数の予測ユニットが存在する場合には、既定の順序(上から下へ、または下から上へ)で予測ユニットの有効性検査を進め、有効な最初の予測ユニットを左側予測ユニットと設定する。または、既定の位置の予測ユニット(例えば、最上側または最下側予測ユニット)を左側予測ユニットと設定してもよい。同様に、上側に複数の予測ユニットが存在する場合には、既定の順序(左側から右側へ、または右側から左側へ)で予測ユニットの有効性検査を進め、有効な最初の予測ユニットを上側予測ユニットと設定してもよい。または、既定の位置の予測ユニット(最左側または最右側予測ユニット)を上側予測ユニットと設定してもよい。
【0082】
時間スキップ候補者を誘導する(S220)。時間スキップ候補者を誘導する段階は、時間スキップ候補者のための参照ピクチャーインデックスを求める段階と、時間スキップ候補者の動きベクトルを求める段階とで構成される。
【0083】
時間スキップ候補者のための参照ピクチャーインデックスを求める。時間スキップ候補者のための参照ピクチャーインデックスは0と設定される。または、時間スキップ候補者のための参照ピクチャーインデックスは、現在予測ユニットに空間的に隣接している予測ユニットの参照ピクチャーインデックスを用いて求めてもよい。
【0084】
図5は、時間スキップ候補者のための参照ピクチャーインデックスを求めるために使われる現在予測ユニットに隣接している予測ユニットの位置を示す。時間スキップ候補者のための参照ピクチャーインデックスは、現在予測ユニットに隣接している予測ユニットの参照ピクチャーインデックスのうち一つと定める。
【0085】
時間スキップ候補者のための参照インデックスを求めるために、現在予測ユニットの左側予測ユニットA、上側予測ユニットB、右上側予測ユニットC、左下側予測ユニットD及び左上側予測ユニットEの参照ピクチャーインデックスが使われる。
【0086】
上側予測ユニットが複数存在する場合には、左側から右側(または右側から左側)へスキャンし、最初に有効な予測ユニットの参照ピクチャーインデックスを上側予測ユニットの参照ピクチャーインデックスと定めてもよい。同様に、左側予測ユニットが複数存在する場合には、上側から下側へスキャンし、最初に有効な予測ユニットの参照ピクチャーインデックスを左側予測ユニットの参照ピクチャーインデックスと定めてもよい。
【0087】
右上側予測ユニットC、左下側予測ユニットD、左上側予測ユニットEのブロック順でスキャンし、有効な最初の予測ユニットの参照ピクチャーインデックスをコーナー予測ユニットの参照ピクチャーインデックスと定める。
【0088】
現在予測ユニットの左側予測ユニットの参照ピクチャーインデックス(以下、左側参照ピクチャーインデックス)、現在予測ユニットの上側予測ユニットの参照ピクチャーインデックス(以下、上側参照ピクチャーインデックス)、及び現在予測ユニットのコーナー予測ユニットの参照ピクチャーインデックス(以下、コーナー参照ピクチャーインデックス)が求められれば、これらから時間スキップ候補者のための参照ピクチャーインデックスを求める。ここでは、コーナーの予測ユニットC、D、Eのうち一つのみを候補者と設定したが、これに限定されず、予測ユニットC、Dが候補者と設定される場合(候補者4個)、予測ユニットC、D、Eがいずれも候補者と設定される場合(候補者5個)も可能である。以下では、上側、左側及びコーナーの3種の参照ピクチャーインデックスを用いる過程のみについて例示的に説明する。
【0089】
有効な参照ピクチャーインデックスのうち最も多い頻度を持つ参照ピクチャーインデックスを、時間スキップ候補者のための参照ピクチャーインデックスと設定する。有効な候補者のうち最も多い頻度を持つ参照ピクチャーインデックスが複数存在する場合には、前記複数の参照ピクチャーインデックスのうち最小値を持つ参照ピクチャーインデックスを、時間スキップ候補者のための参照ピクチャーインデックスと設定する。
【0090】
次いで、前記時間スキップ候補者の動きベクトルを求める段階を説明する。
【0091】
先ず、前記時間スキップ候補者ブロックが属するピクチャー(以下、時間スキップ候補者ピクチャー)を定める。時間スキップ候補者ピクチャーは、参照ピクチャーインデックスが0であるピクチャーと設定される。この場合、スライスタイプがPである場合には、リスト0(list0)の最初のピクチャーが時間スキップ候補者ピクチャーと設定される。スライスタイプがBである場合には、スライスヘッダ内の時間スキップ候補者ピクチャーが属するリストを示すフラグを用いて参照ピクチャーリストを選択し、前記参照ピクチャーリスト内の参照ピクチャーインデックスが0であるピクチャーを時間スキップ候補者ピクチャーと定める。例えば、前記フラグが1を示せば、list0から、0を示せば、list1から時間スキップ候補者ピクチャーを設定する。
【0092】
一方、前記時間スキップ候補者のための参照ピクチャーインデックスが示す参照ピクチャーを、時間スキップ候補者ブロックが属するピクチャーと設定してもよい。この場合にも、スライスタイプがPである場合には、リスト0(list0)の前記時間スキップ候補者の参照ピクチャーインデックスが示す参照ピクチャーが、時間スキップ候補者ピクチャーと設定される。そして、スライスタイプがBである場合には、スライスヘッダ内の時間スキップ候補者が属するリストを示すフラグを用いて、時間スキップ候補者ピクチャーを設定する。
【0093】
次いで、前記時間スキップ候補者ピクチャー内の時間スキップ候補者ブロックを求める。前記時間スキップ候補者ブロックとして、前記時間スキップ候補者ピクチャー内の現在予測ユニットに対応する複数の対応ブロックのうちいずれか一つが選択される。この場合、複数の対応ブロックに優先順位を与え、前記優先順位に基づいて有効な最初の対応ブロックが時間スキップ候補者ブロックと選択される。
【0094】
図6は、前記時間スキップ候補者ピクチャー内の現在予測ユニットに対応する対応ブロックを示す。時間スキップ候補者の位置は、空間スキップ候補者の位置と異なることが望ましい。
【0095】
したがって、前記時間スキップ候補者ピクチャー内の現在予測ユニットに対応するブロックに隣接している左下側コーナーブロックBR0、または前記時間スキップ候補者ピクチャー内の現在予測ユニットに対応するブロック内の左下側ブロックBR1を第1候補者ブロックと設定し、前記時間スキップ候補者ピクチャー内の現在予測ユニットに対応するブロックの中央位置の左上側ピクセルまたは右下側ピクセルを含むブロックCを第2候補者ブロックと設定する。
【0096】
前記第1候補者ブロックが有効であれば、前記第1候補者ブロックを時間スキップ候補者ブロックと設定し、前記第1候補者ブロックが有効でなく前記第2候補者ブロックが有効であれば、前記第2候補者ブロックを時間スキップ候補者ブロックと設定する。
【0097】
一方、前記左下側コーナーブロックBR0、前記左下側ブロックBR1、前記右下側ピクセルまたは左上側ピクセルを含むブロックC順にスキャンしてもよい。また、有効な時間スキップ候補者ブロックが複数存在する場合、最大の面積を持つ対応ブロックまたはこれらの中央値(median)を時間スキップ候補者動きベクトルと設定してもよい。
【0098】
前記時間候補者予測ブロックが定められれば、前記時間候補者予測ブロックの動きベクトルを時間スキップ候補者動きベクトルと設定する。
【0099】
次いで、有効なスキップ候補者リストを構築する(S230)。
【0100】
有効な空間スキップ候補者及び時間スキップ候補者を用いてスキップ候補者リストを構築する。スキップ候補者リストは、既定の順序で構築することが望ましい。既定の順序は、空間左側スキップ候補者A、空間上側スキップ候補者B、時間スキップ候補者、空間右上側スキップ候補者C、空間左下側シキップ候補者Dの順に設定される。また、時間スキップ候補者、空間左側スキップ候補者A、空間上側スキップ候補者B、空間右上側スキップ候補者C、空間左下側スキップ候補者Dの順に設定されてもよい。
【0101】
一方、空間左側スキップ候補者A、空間上側スキップ候補者B、空間右上側スキップ候補者C、空間左下側スキップ候補者Dのうちいずれか一つ以上が有効でない場合には、空間左上側スキップ候補者Eが追加される。この場合、空間左上側スキップ候補者Eは、有効でない空間スキップ候補者の位置に追加される。すなわち、各空間スキップ候補者別優先順位によって有効性を検査し、有効でない空間スキップ候補者の位置に前記空間左上側スキップ候補者Eを追加する。前記優先順位は、A、B、C、D順、またはA、D、B、C順である。
【0102】
スキップ候補者リストの構築時、複数のスキップ候補者が同一動きベクトル及び同一参照ピクチャーインデックスを持つようになれば、スキップ候補者リスト上で後順位のスキップ候補者をリスト上で削除する。
【0103】
次いで、現在予測ユニットの動きベクトル及び参照ピクチャーインデックスを求める(S240)。
【0104】
受信された予測ユニット内にスキップインデックスが存在する場合には、スキップ候補者リスト上の対応するインデックスのスキップ候補者予測ユニットの動きベクトル及び参照ピクチャーインデックスを、現在予測ユニットの動きベクトル及び参照ピクチャーインデックスと定める。
【0105】
しかし、受信された予測ユニット内にスキップインデックスが存在していない場合には、スキップ候補者が存在すれば、前記スキップ候補者の動きベクトル及び参照ピクチャーインデックスを現在予測ユニットの動きベクトル及び参照ピクチャーインデックスと定める。
【0106】
そして、受信された予測ユニット内にスキップインデックスが存在せず、スキップ候補者も存在していなければ、現在予測ユニットの動きベクトルを0、参照ピクチャーインデックスを0と定める。
【0107】
一方、スキップ候補者が時間スキップ候補者である場合には、時間スキップ候補者の動きベクトルを現在予測ユニットの動きベクトルと設定する。そして、0または前記時間スキップ候補者のための参照ピクチャーインデックスを現在予測ユニットの参照ピクチャーインデックスと定める。
【0108】
一方、スキップインデックスは、有効なスキップ候補者数によって互いに異なるVLCテーブルを用いて符号化された値である。この場合、有効なスキップ候補者数を求めた後、ここに対応するVLCテーブルを用いて前記スキップインデックスを復号する段階が、段階S230と段階S240との間に追加される。段階S240は、前記復号されたスキップインデックスを用いて現在予測ユニットの動き情報を定める。また、スキップ候補者数が固定でありうる。この場合には、有効なスキップ候補者を用いて有効でないスキップ候補者を生成し、スキップ候補者リストを構築する。
【0109】
現在予測ユニットの動きベクトル及び参照ピクチャーインデックスが求められれば、参照ピクチャーインデックスが示すピクチャー内で、動きベクトルを用いて予測ブロックを生成する(S250)。前記生成された予測ブロックは復元ブロックになる。
【0110】
一方、符号化ユニット内のskip_flagが0であり、受信された予測ユニット内のmerge_flagが1である場合の復元ブロックを生成する過程は、前記スキップモードでの復元ブロックを生成する過程とほぼ同一である。具体的に、予測ブロックを生成する過程は同一である。しかし、スキップモードでは残差ブロックが0であるため、生成された予測ブロックが復元ブロックになる一方、マージモードでは残差ブロックが0でないため、残差ブロックを復元する段階及び生成された予測ブロックと復元された残差ブロックとを加えて復元ブロックを生成する段階が追加される。
【0111】
隣接予測ユニットから空間マージ候補者及び時間マージ候補者を誘導する。空間マージ候補者を誘導する過程は、空間スキップ候補者を求める過程と同一である。また、時間マージ候補者を誘導する過程も、時間スキップ候補者を求める過程と同一である。
【0112】
次いで、有効なマージ候補者リストを構築する。有効な空間マージ候補者及び時間マージ候補者を既定の順序で整列する。既定の順序は、空間左側マージ候補者A、空間上側マージ候補者B、時間マージ候補者、空間右上側マージ候補者C、空間左下側マージ候補者Dの順に設定される。また、時間マージ候補者、空間左側マージ候補者A、空間上側マージ候補者B、空間右上側マージ候補者C、空間左下側マージ候補者Dの順に設定されてもよい。
【0113】
一方、空間左側マージ候補者A、空間上側マージ候補者B、空間右上側マージ候補者C、空間左下側マージ候補者Dのうちいずれか一つ以上が有効でない場合には、空間左上側マージ候補者Eが追加される。この場合、空間左上側マージ候補者Eは、有効でない空間マージ候補者の位置に追加される。すなわち、各空間マージ候補者別優先順位によって有効性を検査し、有効でない空間マージ候補者の位置に前記空間左上側マージ候補者Eを追加する。前記優先順位は、A、B、C、D順、またはA、D、B、C順である。
【0114】
また、前記既定の順序は、予測ユニットの予測モードによって異なって設定されてもよく、一部のマージ候補者を候補者から排除させてもよい。すなわち、予測ユニットが2N×Nである場合には前記順序で設定できるが、空間左下側マージ候補者Dを候補者から削除する。また、予測ユニットがN×2Nである場合には、空間右上側マージ候補者Cより空間左下側マージ候補者Dが現在予測ユニットとの連関性が高いため、前記2個の候補者の順序を変更するか、または空間右上側マージ候補者Cを空間マージ候補者から除外してもよい。
【0115】
次いで、現在予測ユニットの動きベクトル及び参照ピクチャーインデックスを求める。受信された予測ユニット内にマージインデックスが存在する場合には、マージ候補者リスト上の対応するインデックスのマージ候補者の動きベクトル及び参照ピクチャーインデックスを、現在予測ユニットの動きベクトル及び参照ピクチャーインデックスと定める。
【0116】
しかし、受信された予測ユニット内に、マージインデックスは存在していないが、マージ候補者が存在するならば、前記マージ候補者の動きベクトル及び参照ピクチャーインデックスを、現在予測ユニットの動きベクトル及び参照ピクチャーインデックスと定める。
【0117】
そして、受信された予測ユニット内にマージインデックスが存在せずにスキップ候補者も存在していなければ、現在予測ユニットの動きベクトルを0、参照ピクチャーインデックスを0と定める。
【0118】
一方、マージ候補者が時間マージ候補者である場合には、時間マージ候補者の動きベクトルを現在予測ユニットの動きベクトルと設定する。そして、0または時間マージ候補者のための参照ピクチャーインデックスを、現在予測ユニットの参照ピクチャーインデックスと定める。
【0119】
一方、マージインデックスは、有効なマージ候補者数によって互いに異なるVLCテーブルを用いて符号化された値である。この場合、有効なマージ候補者数を求めた後、これに対応するVLCテーブルを用いて前記スキップインデックスを復号する段階が追加される。
【0120】
現在予測ユニットの動きベクトル及び参照ピクチャーインデックスが求められれば、参照ピクチャーインデックスが示すピクチャー内で動きベクトルを用いて予測ブロックを生成する。
【0121】
また、変換ユニット単位で残差ブロックを復元する。残差ブロックは、エントロピー復号化、逆スキャン、逆量子化及び逆変換過程を通じて復元される。前記過程は、図2の動画復号化装置のエントロピー復号化部210、逆スキャニング部215、逆量子化部220、逆変換部225によって行われる。
【0122】
最後に、前記生成された予測ブロック及び前記復元された残差ブロックを用いて復元ブロックを生成する。復元ブロックは符号化ユニット単位で復元する。したがって、生成された予測ブロック及び復元された残差ブロックをそれぞれ符号化ユニット単位で作った後、前記符号化単位の予測ブロック及び符号化単位の残差ブロックを用いて復元ブロックを生成する。
【0123】
図7は、本発明による動きベクトル予測符号化された予測ユニットの復元ブロックを生成する過程を示す図面である。符号化ユニット内のskip_flagが0であり、受信された予測ユニット内のmerge_flagが0である場合に適用される。
【0124】
先ず、受信されたビットストリームの予測ユニットシンタックスから、現在予測ユニットの参照ピクチャーインデックス及び差分動きベクトルを求める(S310)。
【0125】
スライスタイプがBである場合には、インター予測情報を確認する。インター予測情報が参照ピクチャー組み合わせリストPred_LCを用いた片方向予測を示せば、参照ピクチャーインデックスを用いて参照ピクチャー組み合わせリストlist_c内の参照ピクチャーを選択する。そして、差分動きベクトルを復元する。インター予測情報が参照ピクチャーリスト0を用いた片方向予測を示せば、参照ピクチャーリスト0の参照ピクチャーインデックスを用いて参照ピクチャーを求め、差分動きベクトルを復元する。インター予測情報が双方向予測を示せば、参照ピクチャーリスト0の参照ピクチャーインデックス及び参照ピクチャーリスト1の参照ピクチャーインデックスを用いて各参照ピクチャーを求め、各参照ピクチャーに対する差分動きベクトルを復元する。
【0126】
次いで、空間動きベクトル候補者を求める(S320)。図8は、本発明による空間動きベクトル候補者を求めるために使われる現在予測ユニットに隣接している予測ユニットの位置を示す。
【0127】
左側空間動きベクトル候補者は、現在予測ユニットの左側予測ユニットのうち一つ(ブロックA、Dのうち一つ)になる。上側空間動きベクトル候補者は、現在予測ユニットの上側予測ユニットのうち一つ(ブロックB、C、Eのうち一つ)になる。
【0128】
先ず、左側空間動きベクトル候補者を求める過程を説明する。
【0129】
現在予測ユニットの左側予測ユニットをA、D順序、またはD、A順序で検索して第1条件を満たす予測ユニットの存否を検索する。第1条件を満たす予測ユニットとは、(1)予測ユニットが存在し、(2)予測ユニットがインター予測ユニットであり、(3)現在予測ユニットの参照ピクチャーと同じ参照ピクチャーを持ち、(4)参照ピクチャーリストの同じ予測ユニットをいう。前記第1条件を満たす予測ユニットが存在すれば、前記予測ユニットの動きベクトルを左側空間動きベクトル候補者と設定する。第1条件を満たす予測ユニットが存在していなければ、第2条件を満たす予測ユニットの存否を検索する。第2条件を満たす予測ユニットとは、(1)予測ユニットが存在し、(2)予測ユニットがインター予測ユニットであり、(3)現在予測ユニットの参照ピクチャーと同じ参照ピクチャーを持つものの、(4)参照ピクチャーリストの異なる予測ユニットをいう。前記第2条件を満たす予測ユニットが存在すれば、前記予測ユニットの動きベクトルを左側空間動きベクトル候補者と設定する。
【0130】
第2条件を満たす予測ユニットも存在していなければ、第3条件を満たす予測ユニットの存否を検索する。第3条件を満たす予測ユニットとは、(1)予測ユニットが存在し、(2)予測ユニットがインター予測ユニットであり、(3)参照ピクチャーリストが同一であるものの、(4)現在予測ユニットの参照ピクチャーと異なる参照ピクチャーを持つ予測ユニットをいう。前記第3条件を満たす予測ユニットが存在すれば、前記予測ユニットの動きベクトルを左側空間動きベクトル候補者と設定する。
【0131】
第3条件を満たす予測ユニットも存在していなければ、第4条件を満たす予測ユニットの存否を検索する。第4条件を満たす予測ユニットとは、(1)予測ユニットが存在し、(2)予測ユニットがインター予測ユニットであるものの、(3)参照ピクチャーリストが異なり、(4)現在予測ユニットの参照ピクチャーと異なる参照ピクチャーを持つ予測ユニットをいう。前記第4条件を満たす予測ユニットが存在すれば、前記予測ユニットの動きベクトルを左側空間動きベクトル候補者と設定する。
【0132】
第1条件または第2条件を満たす予測ユニットの動きベクトルは、そのまま動きベクトル候補者と使われるが、第3条件または第4条件を満たす予測ユニットの動きベクトルは、スケーリングされて動きベクトル候補者と使われる。
【0133】
前記すべての条件を満たす動きベクトルが存在していなければ、左側空間動きベクトル候補者は有効でないと設定する。
【0134】
次いで、上側空間動きベクトル候補者を求める過程を説明する。
【0135】
現在予測ユニットの上側予測ユニットをB、C、E順序またはC、B、E順序で検索し、第1条件を満たす予測ユニットの存否を検索する。前記第1条件を満たす予測ユニットが存在すれば、前記予測ユニットの動きベクトルを上側空間動きベクトル候補者と設定する。
【0136】
第1条件を満たす予測ユニットが存在していなければ、第2条件を満たす予測ユニットの存否を検索する。前記第2条件を満たす予測ユニットが存在すれば、前記予測ユニットの動きベクトルを上側空間動きベクトル候補者と設定する。
【0137】
第2条件を満たす予測ユニットも存在していなければ、第3条件を満たす予測ユニットの存否を検索する。前記第3条件を満たす予測ユニットが存在すれば、前記予測ユニットの動きベクトルを上側空間動きベクトル候補者と設定する。
【0138】
第3条件を満たす予測ユニットも存在していなければ、第4条件を満たす予測ユニットの存否を検索する。前記第4条件を満たす予測ユニットが存在すれば、前記予測ユニットの動きベクトルを上側空間動きベクトル候補者と設定する。
【0139】
第1条件または第2条件を満たす予測ユニットの動きベクトルは、そのまま動きベクトル候補者と使われるが、第3条件または第4条件を満たす予測ユニットの動きベクトルは、スケーリングされて動きベクトル候補者と使われる。前記すべての条件を満たす動きベクトルが存在していなければ、上側空間動きベクトル候補者は有効でないと設定する。
【0140】
左側空間動きベクトル候補者を求める過程での第1〜4条件と、上側空間動きベクトル候補者を求める過程での第1〜4条件とは同一である。時間動きベクトル候補者を求める(S330)。先ず、前記時間動きベクトル候補者ブロックが属するピクチャー(以下、時間動きベクトル候補者ピクチャー)を定める。時間動きベクトル候補者ピクチャーは、参照ピクチャーインデックスが0であるピクチャーと定められる。この場合、スライスタイプがPである場合には、リスト0(list0)の最初のピクチャーが時間動きベクトル候補者ピクチャーと定められる。スライスタイプがBである場合には、スライスヘッダ内の時間動きベクトル候補者が属するリストを示すフラグを用いて、時間動きベクトル候補者ピクチャーが定められる。例えば、前記フラグが1を示せば、list0から、0を示せば、list1から時間動きベクトル候補者ピクチャーを定める。また、受信された予測ユニットから求めた現在予測ユニットの参照ピクチャーインデックスに対応するピクチャーを、時間動きベクトル候補者ピクチャーと定めてもよい。
【0141】
次いで、前記時間動きベクトル候補者ピクチャー内の時間動きベクトル候補者ブロックを求める。前記時間動きベクトル候補者ブロックは、時間スキップ動きベクトル候補者と同一である。前記時間動きベクトル候補者ブロックが定められれば、前記時間動きベクトル候補者ブロックの動きベクトルを時間動きベクトル候補者と設定する。
【0142】
次いで、動きベクトル候補者リストを生成する(S340)。動きベクトル候補者リストは、有効な動きベクトル候補者のみを用いる。リストは、既定の順序で構築することが望ましい。既定の順序は、空間左側動きベクトル候補者、空間上側動きベクトル候補者、時間動きベクトル候補者の順に設定される。また、時間動きベクトル候補者、空間上側動きベクトル候補者順序、空間上側動きベクトル候補者の順に設定されてもよい。
【0143】
但し、予測ユニットの予測モードによって空間動きベクトル候補者の順序が異なって設定されてもよく、一部空間動きベクトル候補者を候補者から排除してもよい。すなわち、符号化ユニットが2個の2N×Nの予測ユニットに分割される場合の下側の2N×N予測ブロックの場合には、空間上側動きベクトル候補者をリストから排除する。同様に、符号化ユニットが2個のN×2Nの予測ユニットに分割される場合の右側のN×2N予測ブロックの場合には、空間上側動きベクトル候補者と空間左側動きベクトル候補者との順序を切り替えるか、または空間左側動きベクトル候補者をリストから排除する。
【0144】
一方、符号化ユニットが2個の2N×Nの予測ユニットに分割される場合の上側の2N×N予測ブロックはマージになる。しかし、マージにならない場合には、空間左側動きベクトル候補者を求める過程でDを除外するか、またはA、D順序で検索する。同様に、符号化ユニットが2個のN×2Nの予測ユニットに分割される場合の左側のN×2N予測ブロックはマージになる。しかし、マージにならない場合には、空間上側動きベクトル候補者を求める過程でCを除外するか、またはB、C、E順序で検索する。
【0145】
次いで、動きベクトル候補者リストが構築され、複数の動きベクトル候補者が同一動きベクトルを持つようになれば、動きベクトル候補者リスト上で後順位の動きベクトル候補者を削除する。
【0146】
次いで、現在予測ユニットの動きベクトル予測子を求める(S350)。
【0147】
動きベクトルインデックスが予測ユニット内に存在する場合には、前記動きベクトル候補者リスト上の対応するインデックスの動きベクトル候補者を現在予測ユニットの動きベクトル予測子と定める。動きベクトルインデックスが予測ユニット内に存在しないものの、動きベクトル候補者が存在すれば、前記動きベクトル候補者を現在予測ユニットの動きベクトル予測子と設定する。もし、すべての候補者が有効でなければ、現在予測ユニットの動きベクトル予測子を0と設定する。
【0148】
一方、動きベクトル候補者リストを設定する前に、予測ユニット内の動きベクトルインデックスを先ず読み取る。この場合には、動きベクトルインデックスが示す数ほどのみ既定の順序で有効な動きベクトル候補者を検出した後、動きベクトルインデックスに対応する動きベクトル候補者を現在予測ユニットの動きベクトルと設定する。動きベクトルインデックスは、固定長で符号化された情報であるが、可変長であることが望ましい。
【0149】
現在予測ユニットの動きベクトル予測子が求められれば、受信された差分動きベクトルと前記動きベクトル予測子とを加えて現在予測ユニットの動きベクトルを復元する(S360)。次いで、前記復元された現在予測ユニットの動きベクトル及び受信された現在予測ユニットの参照ピクチャーインデックスを用いて予測ブロックを生成する(S370)。
【0150】
また、変換ユニット単位で残差ブロックを復元する(S380)。残差ブロックは、エントロピー復号化、逆スキャン、逆量子化及び逆変換過程を通じて復元される。前記過程は、図2の動画復号化装置のエントロピー復号化部210、逆スキャニング部215、逆量子化部220、逆変換部225によって行われる。
【0151】
最後に、前記生成された予測ブロック及び前記復元された残差ブロックを用いて復元ブロックを生成する(S390)。復元ブロックは、符号化ユニット単位で復元する。したがって、生成された予測ブロック及び復元された残差ブロックをそれぞれ符号化ユニット単位で作った後、前記符号化単位の予測ブロック及び符号化単位の残差ブロックを用いて復元ブロックを生成する。
【0152】
以上、実施形態を参照して説明したが、当業者ならば、特許請求の範囲に記載した本発明の思想及び領域から逸脱しない範囲内で本発明を多様に修正及び変更できるということを理解できるであろう。
(付記1)
インター予測符号化方法において、
現在予測ユニットの動きベクトル及び参照ピクチャーインデックスを定める段階と、
前記現在予測ユニットと隣接している既定の位置の予測ユニットの有効な動きベクトルを空間動きベクトル候補者に誘導する段階と、
前記現在予測ユニットの有効な時間動きベクトル候補者を誘導する段階と、
前記有効な空間動きベクトル候補者及び時間動きベクトル候補者のうち一つを、現在予測ユニットの動きベクトル予測子と定める段階と、
前記現在予測ユニットの動きベクトルと前記定められた動きベクトル予測子との動きベクトル差値を求め、前記差値及び前記参照ピクチャーインデックスを符号化する段階と、を含み、
前記時間動きベクトル候補者は、以前に符号化された参照ピクチャー内の現在予測ユニットに対応する位置、またはその周辺に存在する予測ユニットの動きベクトルであることを特徴とするインター予測符号化方法。
(付記2)
前記時間動きベクトル候補者は、前記参照ピクチャー内の既定の第1位置及び第2位置の順序で検索して有効な動きベクトルと定められることを特徴とする付記1に記載のインター予測符号化方法。
(付記3)
前記参照ピクチャー内の既定の第1位置及び第2位置の動きベクトルがいずれも有効でない場合、前記時間動きベクトル候補者は有効でないと定めることを特徴とする付記2に記載のインター予測符号化方法。
(付記4)
スライスタイプが双方向予測である場合、前記時間動きベクトル候補者が属する参照ピクチャーを、リスト0の参照ピクチャー及びリスト1の参照ピクチャーのうち一つと定め、前記リストを特定する情報を符号化することを特徴とする付記1に記載のインター予測符号化方法。
(付記5)
前記時間動きベクトル候補者が使われるかどうかを判断し、前記情報を符号化することを特徴とする付記1に記載のインター予測符号化方法。
(付記6)
前記現在予測ユニットの有効な左側動きベクトル及び前記現在予測ユニットの有効な上側動きベクトルが前記空間動きベクトル候補者と定められることを特徴とする付記1に記載のインター予測符号化方法。
(付記7)
前記左側動きベクトル候補者は、前記現在予測ユニットの左側及び左下側に隣接している予測ユニットの動きベクトルを既定の順序で検索して得られた有効な動きベクトルであることを特徴とする付記6に記載のインター予測符号化方法。
(付記8)
前記上側動きベクトル候補者は、現在予測ユニットの上側、右上側及び左上側に隣接している予測ユニットの動きベクトルを既定の順序で検索して得られた有効な動きベクトルであることを特徴とする付記6に記載のインター予測符号化方法。
(付記9)
前記有効な空間動きベクトル候補者を適応的にスケーリングすることを特徴とする付記1に記載のインター予測符号化方法。
(付記10)
前記現在予測ユニットの参照ピクチャーと前記空間動きベクトル候補者の参照ピクチャーからの時間的距離によって前記有効な空間動きベクトル候補者をスケーリングすることを特徴とする付記1に記載のインター予測符号化方法。
図1
図2
図3
図4
図5
図6
図7
図8