(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-04
(45)【発行日】2024-03-12
(54)【発明の名称】映像復号化方法
(51)【国際特許分類】
H04N 19/52 20140101AFI20240305BHJP
H04N 19/46 20140101ALI20240305BHJP
【FI】
H04N19/52
H04N19/46
(21)【出願番号】P 2023001347
(22)【出願日】2023-01-06
(62)【分割の表示】P 2021198721の分割
【原出願日】2011-12-19
【審査請求日】2023-01-06
(31)【優先権主張番号】10-2010-0130229
(32)【優先日】2010-12-17
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2011-0137042
(32)【優先日】2011-12-19
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】596099882
【氏名又は名称】エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート
【氏名又は名称原語表記】ELECTRONICS AND TELECOMMUNICATIONS RESEARCH INSTITUTE
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100096921
【氏名又は名称】吉元 弘
(72)【発明者】
【氏名】リム、スン、チャン
(72)【発明者】
【氏名】キム、フイ、ヨン
(72)【発明者】
【氏名】ジョン、セ、ユン
(72)【発明者】
【氏名】チョ、スク、ヒー
(72)【発明者】
【氏名】キム、ジョン、ホ
(72)【発明者】
【氏名】リー、ハ、ヒュン
(72)【発明者】
【氏名】リー、ジン、ホ
(72)【発明者】
【氏名】チェ、ジン、スー
(72)【発明者】
【氏名】キム、ジン、ウン
(72)【発明者】
【氏名】アン、チー、トゥク
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2013/036041(WO,A2)
【文献】国際公開第2011/125211(WO,A1)
【文献】国際公開第2011/048903(WO,A1)
【文献】国際公開第2011/019247(WO,A2)
【文献】Takeshi Chujoh et al.,Description of video coding technology proposal by TOSHIBA,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,JCTVC-A117r1,1st Meeting: Dresden, DE,2010年04月,pp.1-6
【文献】Test Model under Consideration,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,JCTVC-B205_draft007,2nd Meeting: Geneva, CH,2010年10月,pp.1-5, 11-14, 67, 78-89
【文献】Yeping Su and Andrew Segall,On motion vector competition,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,JCTVC-C257r2,3rd Meeting: Guangzhou, CN,2010年10月,pp.1-2
【文献】Tim Hellman and Wade Wan,Limiting Collocated Temporal Reference to One Per Picture,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,JCTVC-H0442-v2,8th Meeting: San Jose, CA, USA,2012年01月,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
現在ブロックの隣接ユニットから空間的動き情報を導出するステップと、
ビットストリームから、前記現在ブロックの時間的動き情報に関連する参照ピクチャインデックスを取得するステップであって、前記参照ピクチャインデックスは、参照ピクチャリスト内の複数の参照ピクチャの間で、前記現在ブロックの前記時間的動き情報を有する参照ピクチャを記述する、前記ステップと、
前記参照ピクチャインデックスに基づいて、前記現在ブロックの前記時間的動き情報を有する前記参照ピクチャを決定するステップと、
前記隣接ユニットから、前記空間的動き情報を含む前記現在ブロックの空間的マージ候補と、前記参照ピクチャから、前記時間的動き情報を含む前記現在ブロックの時間的マージ候補を取得するステップと、
前記空間的マージ候補と前記時間的マージ候補を含む前記現在ブロックに対するマージ候補リストを発生するステップと、
前記マージ候補リストを利用して、前記現在ブロックに対して動き補償を実行するステップと、
前記動き補償の結果を用いて、前記現在ブロックの予測ブロックを発生するステップと、
前記予測ブロックに基づいて、前記現在ブロックの再構成されたブロックを発生するステップと、
を備え、
ビットストリームから得られたインジケータが、前記参照ピクチャからの前記時間的動き情報を用いることができることを指示する場合、前記参照ピクチャからの前記時間的動き情報が、前記マージ候補リストを発生させるために用いられ、
前記動き補償を実行するステップは、
前記現在ブロックのマージインデックスを取得するステップと、
前記マージ候補リスト内に含まれているマージ候補の中から前記マージインデックスにより指示された動き情報を選択するステップと、
前記選択された動き情報を利用し、前記現在ブロックに対する前記動き補償を実行するステップを含むことを特徴とする映像復号化方法。
【請求項2】
現在ブロックの隣接ユニットから空間的動き情報を導出するステップと、
前記隣接ユニットから、前記空間的動き情報を含む前記現在ブロックの空間的マージ候補と、前記現在ブロックの参照ピクチャ内の参照ブロックから、前記現在ブロックの時間的マージ候補を取得するステップと、
前記空間的マージ候補と前記時間的マージ候補を含む前記現在ブロックに対するマージ候補リストを発生するステップと、
前記マージ候補リストに基づいて、前記現在ブロックのマージインデックスを決定し、及び符号化するステップと、
を備え、
前記現在ブロックの前記マージインデックスが、前記マージ候補リストに含まれるマージ候補のうちの前記現在ブロックの動き情報を指示し、
前記参照ピクチャは、前記現在ブロックの時間的動き情報を有し、
インジケータが、前記参照ピクチャからの前記時間的動き情報を用いることができることを指示する場合、前記参照ピクチャからの前記時間的動き情報が、前記マージ候補リストを発生させるために用いられ、
前記参照ピクチャは、参照ピクチャリスト内の複数の参照ピクチャの一つであり、
前記参照ピクチャは、参照ピクチャインデックスによって選択されることを特徴とする映像符号化方法。
【請求項3】
映像符号化方法によって生成されたビットストリームを送信する方法であって、
前記映像符号化方法は、
現在ブロックの隣接ユニットから空間的動き情報を導出するステップと、
前記隣接ユニットから、前記空間的動き情報を含む前記現在ブロックの空間的マージ候補と、前記現在ブロックの参照ピクチャ内の参照ブロックから、前記現在ブロックの時間的マージ候補を取得するステップと、
前記空間的マージ候補と前記時間的マージ候補を含む前記現在ブロックに対するマージ候補リストを発生するステップと、
前記マージ候補リストに基づいて、前記現在ブロックのマージインデックスを決定し、及び符号化するステップと、
を備え、
前記現在ブロックの前記マージインデックスが、前記マージ候補リストに含まれるマージ候補のうちの前記現在ブロックの動き情報を指示し、
前記参照ピクチャは、前記現在ブロックの時間的動き情報を有し、
インジケータが、前記参照ピクチャからの前記時間的動き情報を用いることができることを指示する場合、前記参照ピクチャからの前記時間的動き情報が、前記マージ候補リストを発生させるために用いられ、
前記参照ピクチャは、参照ピクチャリスト内の複数の参照ピクチャの一つであり、
前記参照ピクチャは、参照ピクチャインデックスによって選択されることを特徴とするビットストリームを送信する方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像処理に関し、より詳しくは、映像復号化方法に関する。
【背景技術】
【0002】
最近、HD(High Definition)解像度を有する放送サービスが国内だけでなく、世界的に拡大されるにつれて、多くのユーザが高解像度、高画質の映像に慣れており、これにより、多くの機関が次世代映像機器に対する開発に拍車をかけている。また、HDTVと共にHDTVの4倍以上の解像度を有するUHD(Ultra High Definition)に対する関心が増大し、より高い解像度、高画質の映像に対する圧縮機術が要求されている。
【0003】
映像圧縮のために、時間的に以前及び/又は以後のピクチャから、現在ピクチャに含まれているピクセル値を予測するインター(inter)予測技術、現在ピクチャ内のピクセル情報を利用して現在ピクチャに含まれているピクセル値を予測するイントラ(intra)予測技術、出現頻度が高いシンボル(symbol)に短い符号を割り当て、出現頻度が低いシンボルに長い符号を割り当てるエントロピー符号化技術などが使われることができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の技術的課題は、映像符号化/復号化の効率を上げることができる映像符号化方法を提供することにある。
【0005】
本発明の他の技術的課題は、映像符号化/復号化の効率を上げることができる映像復号化方法及び装置を提供することにある。
【0006】
本発明の他の技術的課題は、映像符号化/復号化の効率を上げることができるインター予測方法及び装置を提供することにある。
【0007】
本発明の他の技術的課題は、映像符号化/復号化の効率を上げることができる時間的動き情報符号化方法及び装置を提供することにある。
【0008】
本発明の他の技術的課題は、映像符号化/復号化の効率を上げることができる時間的動き情報復号化方法及び装置を提供することにある。
【課題を解決するための手段】
【0009】
1.本発明の一実施形態は、映像復号化方法である。前記方法は、現在ピクチャ内の復号化対象ユニットに対する、参照動き情報を導出するステップ及び前記導出された参照動き情報を利用して前記復号化対象ユニットに対する動き補償(motion compensation)を実行するステップを含み、前記参照動き情報は、前記現在ピクチャに対する参照ピクチャに含まれている動き情報であり、参照ピクチャリスト(reference picture list)、参照ピクチャインデックス(reference picture index)、動きベクトル(motion vector)、予測方向(prediction direction)、及び動きベクトル予測器(motion vector predictor)のうち少なくとも一つを含む。
【0010】
2.1において、前記参照動き情報導出ステップは、前記参照ピクチャから前記参照動き情報を抽出(extract)するステップをさらに含む。
【0011】
3.2において、前記参照動き情報抽出ステップは、前記参照ピクチャ内の複数の動き情報の各々の発生回数をカウント(count)してカウント情報を取得するステップ、及び前記取得されたカウント情報に基づき、前記参照ピクチャ内の複数の動き情報の中から前記参照動き情報を選択するステップをさらに含む。
【0012】
4.2において、前記参照動き情報抽出ステップは、前記参照ピクチャ内の動き情報に対して中央値演算(median operation)を実行して動き情報中央値を導出するステップ及び前記動き情報中央値を前記参照動き情報として抽出するステップをさらに含む。
【0013】
5.2において、前記参照動き情報抽出ステップは、前記参照ピクチャ内の動き情報に対してサブサンプリング(sub-sampling)を実行するステップをさらに含む。
【0014】
6.5において、前記サブサンプリング実行ステップは、前記参照ピクチャ内の第1の大きさのブロックに含まれている複数の第2の大きさのブロックの中から所定の位置のブロックを選択するステップ及び前記選択されたブロックに該当する動き情報を前記参照動き情報として抽出するステップをさらに含み、前記参照ピクチャ内の各々の動き情報は、前記第2の大きさのブロック単位に格納されることができる。
【0015】
7.6において、前記所定の位置は、前記第1の大きさのブロック内の最も左側上段の位置である。
【0016】
8.2において、前記参照動き情報抽出ステップは、前記参照ピクチャ内の動き情報を複数のグループにグループ化(grouping)するステップ、及び前記複数のグループの各々から、動き情報の発生頻度に基づき、所定の個数の動き情報を前記参照動き情報として選択するステップをさらに含み、前記グループ化ステップでは、前記参照ピクチャに含まれているユニットの深さ(depth)値、前記参照ピクチャに含まれているユニットの大きさ(size)、及び前記参照ピクチャに含まれているユニットのパーティション(partition)形態のうち少なくとも一つの特性に基づき、前記グループ化を実行する。
【0017】
9.2において、前記参照動き情報抽出ステップは、前記参照ピクチャを複数の領域に分割するステップ、及び前記複数の領域の各々から、動き情報の発生頻度に基づき、所定の個数の動き情報を前記参照動き情報として選択するステップをさらに含む。
【0018】
10.2において、前記参照ピクチャの個数が2以上である場合、前記参照動き情報抽出ステップは、前記参照ピクチャの各々から、動き情報の発生頻度に基づき、所定の個数の動き情報を選択するステップをさらに含む。
【0019】
11.10において、前記参照動き情報抽出ステップは、前記参照ピクチャの各々に対して、前記現在ピクチャからの時間的距離(temporal distance)を導出するステップ、及び前記導出された時間的距離に基づき、前記選択された動き情報をスケーリングするステップをさらに含む。
【0020】
12.1において、前記動き補償実行ステップは、前記復号化対象ユニットに対する動きベクトル差分(motion information difference)を受信して復号化するステップ、前記復号化対象ユニットに対する予測動きベクトル(predicted motion vector)を導出するステップ、前記復号化された動きベクトル差分及び前記導出された予測動きベクトルを利用し、前記復号化対象ユニットに対する動きベクトルを導出するステップ、及び前記導出された動きベクトルを利用し、前記復号化対象ユニットに対する動き補償を実行するステップをさらに含む。
【0021】
13.12において、前記予測動きベクトル導出ステップは、前記参照動き情報を利用し、前記復号化対象ユニットに対する動きベクトル候補(motion vector candidate)を生成するステップ、及び前記動きベクトル候補を利用し、前記予測動きベクトルを導出するステップをさらに含む。
【0022】
14.1において、前記動き補償実行ステップは、マージインデックス(merge index)を受信して復号化するステップ、前記参照動き情報を利用し、マージ候補リスト(merge candidate list)を生成するステップ、前記マージ候補リストに含まれているマージ候補の中から前記マージインデックスが指示する動き情報を選択するステップ、及び前記選択された動き情報を利用し、前記復号化対象ユニットに対する動き補償を実行するステップをさらに含む。
【0023】
15.1において、前記参照動き情報の個数が2以上である場合、前記動き補償実行ステップは、符号化された動き情報インデックスを受信して復号化するステップ、前記参照動き情報の中から、前記動き情報インデックスが指示する動き情報を選択するステップ、及び前記選択された動き情報を利用して前記復号化対象ユニットに対する動き補償を実行するステップをさらに含む。
【0024】
16.1において、前記参照動き情報導出ステップは、符号化された参照動き情報を受信するステップ及び前記受信された参照動き情報を復号化するステップをさらに含む。
【0025】
17.16において、前記符号化された参照動き情報の個数が2以上である場合、前記復号化ステップでは、DPCM(Differential Pulse Code Modulation)を利用し、前記受信された参照動き情報を復号化する。
【発明の効果】
【0026】
本発明による映像符号化方法によると、映像符号化/復号化の効率が向上することができる。
【0027】
本発明による映像復号化方法によると、映像符号化/復号化の効率が向上することができる。
【0028】
本発明によるインター予測方法によると、映像符号化/復号化の効率が向上することができる。
【0029】
本発明による時間的動き情報符号化方法によると、映像符号化/復号化の効率が向上することができる。
【0030】
本発明による時間的動き情報復号化方法によると、映像符号化/復号化の効率が向上することができる。
【図面の簡単な説明】
【0031】
【
図1】本発明が適用される映像符号化装置の一実施例による構成を示すブロック図である。
【
図2】本発明が適用される映像復号化装置の一実施例による構成を示すブロック図である。
【
図3】一つのユニットが複数の下位ユニットに分割される実施例を概略的に示す概念図である。
【
図4】符号化器でのインター予測方法の一実施例を概略的に示すフローチャートである。
【
図6】符号化対象ユニットに対するインター予測及び/又は動き補償に使われる参照ピクチャの実施例を示す。
【
図7】復号化器でのインター予測方法の一実施例を概略的に示すフローチャートである。
【発明を実施するための形態】
【0032】
以下、図面を参照して本発明の実施形態に対して具体的に説明する。本明細書の実施例を説明するにあたって、関連した公知構成又は機能に対する具体的な説明が本明細書の要旨を不明にすると判断される場合にはその詳細な説明は省略する。
【0033】
一構成要素が他の構成要素に“連結されている”又は“接続されている”と言及された場合、該当他の構成要素に直接的に連結されている、又は接続されていることもあるが、中間に他の構成要素が存在することもあると理解されなければならない。また、本発明において、特定構成を“含む”と記述する内容は、該当構成以外の構成を排除するものではなく、追加的な構成が本発明の実施又は本発明の技術的思想の範囲に含まれることができることを意味する。
【0034】
第1、第2などの用語は、多様な構成要素の説明に使われることができるが、前記構成要素は、前記用語により限定されてはならない。前記用語は、一つの構成要素を他の構成要素から区別する目的にのみ使われる。例えば、本発明の権利範囲を外れない限り、第1の構成要素は第2の構成要素と命名することができ、同様に、第2の構成要素も第1の構成要素と命名することができる。
【0035】
また、本発明の実施例に示す構成部は、互いに異なる特徴的な機能を示すために独立的に図示されるものであり、各構成部が分離されたハードウェアや一つのソフトウェア構成単位に構成されることを意味しない。即ち、各構成部は、説明の便宜上、各々の構成部として羅列して含むものであり、各構成部のうち少なくとも2個の構成部が統合されて一つの構成部からなり、又は一つの構成部が複数個の構成部に分けられて機能を遂行することができ、このような各構成部の統合された実施例及び分離された実施例も本発明の本質から外れない限り本発明の権利範囲に含まれる。
【0036】
また、一部の構成要素は、本発明で本質的な機能を遂行する必須な構成要素ではなく、単に性能を向上させるための選択的構成要素である。本発明は、単に性能向上のために使われる構成要素を除外した本発明の本質を具現するのに必須な構成部のみを含んで具現されることができ、単に性能向上のために使われる選択的構成要素を除外した必須構成要素のみを含む構造も本発明の権利範囲に含まれる。
【0037】
図1は、本発明が適用される映像符号化装置の一実施例による構成を示すブロック図である。
【0038】
図1を参照すると、前記映像符号化装置100は、動き予測部111、動き補償部112、イントラ予測部120、スイッチ115、減算器125、変換部130、量子化部140、エントロピー符号化部150、逆量子化部160、逆変換部170、加算器175、フィルタ部180、及び参照ピクチャバッファ190を含む。
【0039】
映像符号化装置100は、入力映像に対してイントラ(intra)モード又はインター(inter)モードに符号化を実行し、ビットストリームを出力することができる。イントラ予測は画面内予測を意味し、インター予測は画面間予測を意味する。イントラモードの場合、スイッチ115がイントラに転換され、インターモードの場合、スイッチ115がインターに転換されることができる。映像符号化装置100は、入力映像の入力ブロックに対する予測ブロックを生成した後、入力ブロックと予測ブロックとの差分(residual)を符号化することができる。
【0040】
イントラモードの場合、イントラ予測部120は、現在ブロック周辺の既に符号化されたブロックのピクセル値を利用して空間的予測を実行することで、予測ブロックを生成することができる。
【0041】
インターモードの場合、動き予測部111は、動き予測過程で参照ピクチャバッファ190に格納されている参照映像で入力ブロックと最もよくマッチされる領域を探して動きベクトルを求めることができる。動き補償部112は、動きベクトルを利用して動き補償を実行することによって予測ブロックを生成することができる。ここで、動きベクトルは、インター予測に使われる2次元ベクトルであり、現在符号化/復号化対象ピクチャと参照ピクチャとの間のオフセットを示すことができる。
【0042】
減算器125は、入力ブロックと生成された予測ブロックとの差分により残差ブロック(residual block)を生成することができる。変換部130は、残差ブロックに対して変換(transform)を実行することで、変換係数(transform coefficient)を出力することができる。また、量子化部140は、入力された変換係数を量子化パラメータによって量子化することで、量子化された係数(quantized coefficient)を出力することができる。
【0043】
エントロピー符号化部150は、量子化部140で算出された値又は符号化過程で算出された符号化パラメータ値などに基づいてエントロピー符号化を実行することで、ビットストリーム(bit stream)を出力することができる。
【0044】
エントロピー符号化が適用される場合、高い発生確率を有するシンボル(symbol)に少ない数のビットが割り当てられ、低い発生確率を有するシンボルに多い数のビットが割り当てられてシンボルが表現されることによって、符号化対象シンボルに対するビット列の大きさが減少されることができる。したがって、エントロピー符号化を介して映像符号化の圧縮性能が高まることができる。エントロピー符号化部150は、エントロピー符号化のために、指数ゴロム(exponential golomb)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-Adaptive Binary Arithmetic Coding)のような符号化方法を使用することができる。
【0045】
図1の実施例による映像符号化装置は、インター予測符号化、即ち、画面間予測符号化を実行するため、現在符号化された映像は、参照映像として使われるために、復号化されて格納される必要がある。したがって、量子化された係数は、逆量子化部160で逆量子化され、逆変換部170で逆変換される。逆量子化、逆変換された係数は、加算器175を介して予測ブロックと加えて復元ブロックが生成される。
【0046】
復元ブロックは、フィルタ部180を経て、フィルタ部180は、デブロッキングフィルタ(deblocking filter)、SAO(Sample Adaptive Offset)、ALF(Adaptive Loop Filter)のうち少なくとも一つ以上を復元ブロック又は復元ピクチャに適用することができる。フィルタ部180は、適応的インループ(in-loop)フィルタと呼ばれることもある。デブロッキングフィルタは、ブロック間の境界に生じたブロック歪曲を除去することができる。SAOは、コーディングエラーを補償するために、ピクセル値に適正オフセット(offset)値を加えることができる。ALFは、復元された映像と元来の映像を比較した値に基づいてフィルタリングを実行することができる。フィルタ部180を経た復元ブロックは、参照ピクチャバッファ190に格納されることができる。
【0047】
図2は、本発明が適用される映像復号化装置の一実施例による構成を示すブロック図である。
【0048】
図2を参照すると、前記映像復号化装置200は、エントロピー復号化部210、逆量子化部220、逆変換部230、イントラ予測部240、動き補償部250、加算器255、フィルタ部260、及び参照ピクチャバッファ270を含む。
【0049】
映像復号化装置200は、符号化器で出力されたビットストリームの入力を受けてイントラモード又はインターモードに復号化を実行することで、再構成された映像、即ち、復元映像を出力することができる。イントラモードの場合、スイッチがイントラに転換され、インターモードの場合、スイッチがインターに転換されることができる。映像復号化装置200は、入力を受けたビットストリームから残差ブロック(residual block)を得て予測ブロックを生成した後、残差ブロックと予測ブロックとを加えて再構成されたブロック、即ち、復元ブロックを生成することができる。
【0050】
エントロピー復号化部210は、入力されたビットストリームを確率分布によってエントロピー復号化し、量子化された係数(quantized coefficient)形態のシンボルを含むシンボルを生成することができる。エントロピー復号化方法は、前述したエントロピー符号化方法と同様である。
【0051】
エントロピー復号化方法が適用される場合、高い発生確率を有するシンボルに少ない数のビットが割り当てられ、低い発生確率を有するシンボルに多い数のビットが割り当てられてシンボルが表現されることによって、各シンボルに対するビット列の大きさが減少されることができる。したがって、エントロピー復号化方法を介して映像復号化の圧縮性能が高まることができる。
【0052】
量子化された係数は、逆量子化部220で逆量子化され、逆変換部230で逆変換され、量子化された係数が逆量子化/逆変換された結果、残差ブロック(residual block)が生成されることができる。
【0053】
イントラモードの場合、イントラ予測部240は、現在ブロック周辺の既に符号化されたブロックのピクセル値を利用して空間的予測を実行することで、予測ブロックを生成することができる。インターモードの場合、動き補償部250は、動きベクトル及び参照ピクチャバッファ270に格納されている参照映像を利用して動き補償を実行することによって、予測ブロックを生成することができる。
【0054】
残差ブロックと予測ブロックは、加算器255を介して加えられ、加えられたブロックは、フィルタ部260を経ることができる。フィルタ部260は、デブロッキングフィルタ、SAO、ALFのうち少なくとも一つ以上を復元ブロック又は復元ピクチャに適用することができる。フィルタ部260は、再構成された映像、即ち、復元映像を出力することができる。復元映像は、参照ピクチャバッファ270に格納されてインター予測に使われることができる。
【0055】
以下、ユニット(unit)は、映像符号化及び復号化の単位を意味する。映像符号化及び復号化時の符号化又は復号化単位は、映像を分割して符号化又は復号化する時のその分割された単位を意味するため、ブロック、符号化ユニット(CU:Coding Unit)、符号化ブロック、予測ユニット(PU:Prediction Unit)、予測ブロック、変換ユニット(TU:Transform Unit)、変換ブロック(transform block)などで呼ばれることもある。また、一つのユニットは、大きさが小さい下位ユニットに分割されることができる。
【0056】
ここで、予測ユニットは予測及び/又は動き補償実行の単位となる基本ユニットを意味する。予測ユニットは、複数のパーティション(partition)に分割されることができ、各々のパーティションは、予測ユニットパーティション(prediction unit partition)と呼ばれることもある。予測ユニットが複数のパーティションに分割された場合、複数のパーティションの各々が予測及び/又は動き補償実行の単位となる基本ユニットである。以下、本発明の実施例では予測ユニットが分割された各々のパーティションも予測ユニットと呼ばれることもある。
【0057】
一方、前述したように、インターモードで符号化器及び復号化器は、符号化/復号化対象ユニットに対するインター予測(inter prediction)及び/又は動き補償(motion compensation)を実行することができる。ここで、符号化/復号化対象ユニット(encoding/decoding target unit)は、予測ユニット及び/又は予測ユニットパーティションを意味する。この時、符号化器及び復号化器は、復元された隣接ユニット(reconstructed neighbor unit)及び/又は同一位置ユニット(collocated unit)の動きベクトルを利用することによって、符号化/復号化の効率を向上させることができる。ここで、復元された隣接ユニットは、符号化/復号化対象ユニットに隣接し、又は符号化/復号化対象ユニットのコーナーに位置した隣接ユニットであり、既に符号化又は復号化されて復元されたユニットを意味する。また、同一位置ユニットは、復元された参照ピクチャ内で符号化/復号化対象ユニットと空間的に同一位置に存在するユニットを意味する。以下、参照ピクチャに含まれているユニットの動きベクトルは、時間的動きベクトル(temporal motion vector)という。例えば、同一位置ユニットの動きベクトルは、時間的動きベクトルと呼ばれることもある。
【0058】
一例として、符号化器及び復号化器は、復元された隣接ユニットの動きベクトル及び/又は時間的動きベクトルを符号化/復号化対象ユニットの動きベクトルとして使用することができる。この時、符号化/復号化対象ユニットでは復元された隣接ユニットの動きベクトル及び時間的動きベクトルが使われるため、符号化器は、符号化/復号化対象ユニットに対する動きベクトルを符号化しない。したがって、復号化器に送信されるビット量が減少され、符号化の効率が向上することができる。このようなインター予測モードにはスキップモード(skip mode)及び/又はダイレクトモード(direct mode)などがある。
【0059】
この時、符号化器は、復元された隣接ユニットのうちいずれのユニットの動きベクトルが使われるかを指示する識別子及び/又はインデックスを使用することができる。前記識別子及び/又はインデックスが使われるインター予測モードは、マージモード(merge mode)と呼ばれることもある。
【0060】
他の例として、符号化器及び復号化器は、符号化/復号化対象ユニットの動きベクトルを利用して予測及び/又は補償を実行した後、符号化/復号化対象ユニットの動きベクトルを符号化する時、前記符号化/復号化対象ユニットに対する予測動きベクトル(predicted motion vector)を利用することができる。ここで、予測動きベクトルは、復元された隣接ユニットの動きベクトル又は時間的動きベクトルである。即ち、符号化器及び復号化器は、復元された隣接ユニットの動きベクトル又は時間的動きベクトルを予測動きベクトルとして使用し、符号化/復号化対象ユニットの動きベクトルを効率的に符号化することができる。
【0061】
符号化器は、符号化対象ユニットの動きベクトルと予測動きベクトルとの間の差分により、動きベクトル差分(motion vector difference)を生成することができる。ここで、動きベクトル差分は、符号化対象ユニットの動きベクトルと予測動きベクトルとの残差値を意味する。符号化器は、生成された動きベクトル差分を符号化して復号化器に送信することができる。この時、復号化器は、動きベクトル差分を復号化し、復号化された動きベクトル差分と予測動きベクトルとの和を介して復号化対象ユニットの動きベクトルを導出することができる。このようなインター予測方法は、MVP(Motion Vector Prediction:動きベクトル予測)と呼ばれることもある。MVPが使われることによって、符号化器から復号化器に送信される情報量が減少され、符号化の効率が向上することができる。
【0062】
この時、符号化器は、復元された隣接ユニットのうちいずれのユニットの動きベクトルが使われるかを指示する識別子及び/又はインデックスを使用することができる。前記識別子及び/又はインデックスが追加的に利用されるMVPは、AMVP(Advanced Motion Vector Prediction)と呼ばれることもある。
【0063】
前述したスキップモード、ダイレクトモード、マージモード、MVP、AMVPなどでは、参照ピクチャ内の動き情報が現在符号化/復号化対象ユニットの予測及び/又は動き補償に使われることができる。現在符号化/復号化対象ユニットの予測及び/又は動き補償に使われる参照ピクチャ内の動き情報は、時間的動き情報と呼ばれることもある。時間的動き情報には、例えば、時間的動きベクトルなどがある。
【0064】
ここで、動き情報(motion information)は、インター予測及び動き補償に使われる符号化パラメータを意味する。符号化パラメータは、構文要素(syntax element)のように符号化器で符号化されて復号化器に送信される情報だけでなく、符号化又は復号化過程で類推されることができる情報を含むことができ、映像を符号化したり復号化したりする時、必要な情報を意味する。動き情報は、参照ピクチャリスト(reference picture list)、参照ピクチャインデックス(reference picture index)、動きベクトル(motion vector)、予測方向(prediction direction)、動きベクトル予測器(motion vector predictor)のうち少なくとも一つを含むことができる。
【0065】
ここで、参照ピクチャリストは、インター予測に使われる複数の参照映像で構成されたリストである。インター予測には2個の参照ピクチャリストが使われることができ、一つは参照ピクチャリスト0と呼ばれ、他の一つは参照ピクチャリスト1と呼ばれることもある。この時、動き情報に含まれている予測方向(prediction direction)は、インター予測時、いずれの参照ピクチャリストが使われるかを指示する情報である。即ち、予測方向は、参照ピクチャリスト0が使われるか、参照ピクチャリスト1が使われるか又は参照ピクチャリスト0と参照ピクチャリスト1の両方とも使われるかを指示することができる。
【0066】
参照ピクチャインデックスは、参照ピクチャリストに含まれている参照ピクチャのうち符号化/復号化対象ユニットのインター予測に使われる参照ピクチャを指示するインデックスである。また、動きベクトル予測器は、符号化器及び復号化器が動きベクトルを予測する時、予測候補となるユニット及び/又は予測候補となるユニットの動きベクトルを意味する。
【0067】
前述した符号化パラメータは、動き情報だけでなく、インター予測モード、符号化ブロックパターン(CBP:Coded Block Pattern)、ブロック大きさ、ブロック分割情報などの値及び/又は統計を含むことができる。ここで、ブロック分割情報にはユニットの深さ(depth)に対する情報が含まれることができる。深さ情報は、ユニットが分割される回数及び/又は程度を示すことができる。
【0068】
図3は、一つのユニットが複数の下位ユニットに分割される実施例を概略的に示す概念図である。
【0069】
一つのユニットは、ツリー構造(tree structure)下で深さ情報(depth)を有して階層的に分割されることができる。各々の分割された下位ユニットは、深さ情報を有することができる。前記深さ情報は、ユニットが分割された回数及び/又は程度を示すため、前記下位ユニットの大きさに対する情報を含むこともできる。
【0070】
図3の310を参照すると、最も上位ノードはルートノード(root node)と呼ばれることもあり、最も小さい深さ値を有することができる。この時、最も上位ノードは、レベル0の深さを有することができ、分割されない最初のユニットを示すことができる。
【0071】
レベル1の深さを有する下位ノードは、最初のユニットが一回分割されたユニットを示すことができ、レベル2の深さを有する下位ノードは、最初のユニットが二回分割されたユニットを示すことができる。例えば、
図3の320において、ノードaに対応するユニットaは、最初のユニットで一回分割されたユニットであり、レベル1の深さを有することができる。
【0072】
レベル3のリーフノード(leaf node)は、最初のユニットが三回分割されたユニットを示すことができる。例えば、
図3の320において、ノードdに対応するユニットdは、最初のユニットで三回分割されたユニットであり、レベル3の深さを有することができる。したがって、最も下位ノードであるレベル3のリーフノードは、最も深い深さを有することができる。
【0073】
前述したように、符号化器及び復号化器は、スキップモード、ダイレクトモード、マージモード、MVP、AMVPなどを利用してインター予測及び/又は動き補償を実行する場合、時間的動き情報(例えば、時間的動きベクトル)を利用することができる。しかし、時間的動き情報を利用したインター予測方法は、符号化/復号化対象ピクチャに対する参照ピクチャがメモリに格納されていなければならないという短所を有する。また、参照ピクチャが損失される場合、参照ピクチャ内の動き情報(例えば、時間的動きベクトル)が正確に使われることができないため、符号化/復号化過程が進行されるにつれてエラーが伝播(propagation)されることができる。したがって、時間的動き情報を利用したインター予測方法は、エラー耐性(error resiliency)側面での短所も有することができる。したがって、参照ピクチャ内の動き情報を効率的に符号化/復号化し、エラー耐性を向上させることができるインター予測方法が要求される。
【0074】
図4は、符号化器でのインター予測方法の一実施例を概略的に示すフローチャートである。
【0075】
図4を参照すると、符号化器は、現在ピクチャに対する参照ピクチャの動き情報を抽出することができる(S410)。この時、符号化器は、参照ピクチャに含まれている動き情報のうちN個の動き情報を抽出することができる。前記抽出された動き情報は、現在ピクチャ内の符号化対象ユニットのインター予測及び/又は動き補償に使われることができる。ここで、Nは正の整数を示し、以下に叙述される実施例におけるNは正の整数を意味する。
【0076】
以下、参照ピクチャの動き情報を抽出する方法の実施例が叙述される。符号化器は、後述される動き情報抽出方法のうち少なくとも一つを利用し、参照ピクチャの動き情報を抽出することができる。
【0077】
動き情報抽出方法の実施例として、符号化器は、参照ピクチャ内の動き情報発生頻度によって動き情報を抽出することができる。この時、例えば、符号化器は、参照ピクチャ内の動き情報の中から発生頻度が高い順序通りにN個の動き情報を選択して抽出することができる。下記の表1は、動き情報発生頻度による動き情報抽出方法の一実施例を示す。
【0078】
【0079】
表1を参照すると、符号化器は、符号化過程で参照ピクチャ内の動きベクトル発生回数をカウント(count)してカウント情報を取得することができる。この時、符号化器は、発生頻度が高い順序にN個の動きベクトルを選択することができる。表1の実施例において、Nは3の場合、抽出された動きベクトルは[0,0]、[1,0]、[0,-1]である。
【0080】
他の例として、符号化器は、符号化過程で動きベクトル自体でない動きベクトルの各成分に対するカウント情報を取得することもできる。ここで、動きベクトルは、2次元のベクトル形態を有し、[x,y]で表現されることができるため、動きベクトルの各成分は、x成分、y成分を意味する。この時、符号化器は、動きベクトル成分の各々に対して発生頻度が高い順序にN個の成分を選択することができる。符号化器は、選択された動きベクトル成分を利用してN個の動きベクトルを抽出することができる。
【0081】
前述した実施例において、符号化器は、参照ピクチャの動き情報を量子化(quantization)した後、量子化された動き情報の発生頻度をカウントしてカウント情報を取得することができる。例えば、符号化器は、符号化過程で1/4ピクセル単位の動きベクトルを整数ピクセル単位の動きベクトルに量子化し、量子化された動きベクトルの発生頻度をカウントすることができる。この時、符号化器は、量子化された動きベクトルの中から発生頻度が高い順序通りにN個の動きベクトルを選択及び/又は抽出することができる。
【0082】
この時、符号化器は、量子化ステップ大きさ(quantization step size)によって、動き情報に対する量子化を実行することができる。前記量子化ステップ大きさに対する情報は、符号化器及び復号化器に同一に格納されている。この時、復号化器は、符号化器で使われた量子化ステップ大きさが分かるため、符号化器は、量子化ステップ大きさに対する情報を復号化器に送信しない。復号化器が量子化ステップ大きさに対する情報を有していない場合、符号化器は、前記量子化ステップ大きさに対する情報を符号化してビットストリーム(bit stream)を介して復号化器に送信することができる。復号化器は、送信された量子化ステップ大きさ情報を復号化し、動き情報の量子化に使用することができる。
【0083】
動き情報抽出方法の他の実施例として、符号化器は、参照ピクチャに含まれている複数の動き情報に対して所定のプロセスを実行することで、時間的動き情報を抽出することができる。
【0084】
一例として、符号化器は、参照ピクチャに含まれている複数の動き情報に対して中央値演算(median operation)を実行することで、時間的動き情報を抽出することができる。例えば、参照ピクチャ内に3個の動きベクトル[0,0]、[-3,5]、[-4,2]が存在すると仮定する。この時、符号化器は、動きベクトルの各成分に対して中央値演算を実行することで、1個の動きベクトル[-3,2]を抽出することができる。
【0085】
他の例として、符号化器は、参照ピクチャに含まれている複数の動き情報に対してサブサンプリング(sub-sampling)を実行することで、N個の動き情報を抽出することができる。例えば、参照ピクチャ内の動きベクトルが下記の表2のように2次元形態で配列されていると仮定する。
【0086】
【0087】
表2を参照すると、符号化器は、サブサンプリングを介して、2次元形態の動きベクトル配列から奇数番目の行及び奇数番目の列に存在する動きベクトルを抽出することができる。この時、[-2,4]、[0,-1]、[5,-1]、[-2,1]のように4個の動きベクトルが抽出されることができる。
【0088】
参照ピクチャに含まれている複数の動き情報に対してサブサンプリングを実行することでN個の動き情報を抽出する方法の他の例として、符号化器は、2次元形態の動きベクトル配列から特定位置に該当する動きベクトルを抽出することができる。
【0089】
一例として、参照ピクチャ内の動きベクトルが前記表2のように2次元形態で配列されている場合、符号化器は、2次元形態の動きベクトル配列から特定位置に該当する動きベクトルを抽出することができる。
【0090】
例えば、動きベクトルは、4×4ブロック単位に、2次元形態の動きベクトル配列に格納されることができる。この時、符号化器は、16×16大きさのブロックに含まれている4×4大きさのブロックの中から、所定の位置に該当するブロックを選択することができ、前記選択されたブロックに該当する動きベクトルを抽出することができる。ここで、前記所定の位置は、例えば、16×16大きさのブロック内で最も左側上段の位置である。表2の実施例において、前記所定の位置は、[-2,4]の動きベクトルに対応する位置である。この時、符号化器は、[-2,4]の動きベクトルを抽出することができる。
【0091】
動き情報抽出方法の他の実施例として、符号化器は、参照ピクチャに含まれているユニットの特性を基準に、参照ピクチャ内の動き情報を複数個のグループに分類及び/又はグループ化(grouping)することができる。前記ユニットの特性にはユニットの深さ(depth)、ユニットの大きさ(size)及び/又はユニットのパーティション(partition)形態などがある。この時、符号化器は、各々のグループに対して発生頻度によって、M(以下、Mは、正の整数)個の動き情報を抽出し、総N個の動き情報を抽出することができる。
【0092】
例えば、参照ピクチャ内にユニットの深さ値が0でP-1(以下、Pは、正の整数)まで存在する場合、符号化器は、ユニットの深さ値を基準に参照ピクチャ内の動き情報をP個のグループに分類することができる。この時、符号化器は、符号化過程で各々のグループに対して動きベクトルの発生回数をカウントしてカウント情報を取得することができる。即ち、符号化器は、ユニットの深さ別に動きベクトルのカウント情報を取得することができる。符号化器は、カウント情報に基づき、各々のグループに対して発生頻度が高い順序にM個の動きベクトルを選択し、総N個の動きベクトルを抽出することができる。ここで、Nは、M*Pである。
【0093】
他の例として、参照ピクチャ内にP種類の大きさのユニットが存在する場合、符号化器は、ユニットの大きさを基準に参照ピクチャ内の動き情報をP個のグループに分類することができる。この時、符号化器は、符号化過程で各々のグループに対して動きベクトルの発生回数をカウントしてカウント情報を取得することができる。即ち、符号化器は、ユニットの大きさ別に動きベクトルのカウント情報を取得することができる。符号化器は、カウント情報に基づき、各々のグループに対して発生頻度が高い順序にM個の動きベクトルを選択し、総N個の動きベクトルを抽出することができる。ここで、Nは、M*Pである。
【0094】
他の例として、参照ピクチャ内にP種類のパーティション形態が存在する場合、符号化器は、パーティション形態を基準に参照ピクチャ内の動き情報をP個のグループに分類することができる。この時、符号化器は、符号化過程で各々のグループに対して動きベクトルの発生回数をカウントしてカウント情報を取得することができる。即ち、符号化器は、パーティション形態別に動きベクトルのカウント情報を取得することができる。符号化器は、カウント情報に基づき、各々のグループに対して発生頻度が高い順序にM個の動きベクトルを選択し、総N個の動きベクトルを抽出することができる。ここで、Nは、N*Pである。ここで、ユニットのパーティションは、インター予測及び動き補償に使われる基本単位を意味し、L*K(L及びKは、正の整数)の大きさを有することができる。
【0095】
動き情報抽出方法の他の実施例として、符号化器は、参照ピクチャを複数の領域に分割することができる。ここで、前記複数の領域の各々は、スライス(slice)で区分された領域であり、前記複数の領域は、互いに異なる動きベクトル発生分布を有することができる。この時、符号化器は、各々の領域に対して発生頻度によってM(以下、Mは、正の整数)個の動き情報を抽出し、総N個の時間的動き情報を抽出することができる。
【0096】
図5は、参照ピクチャ分割方法の実施例を示す。
図5を参照すると、参照ピクチャは、第1の領域510及び第2の領域520に分割されることができる。下記の表3は、参照ピクチャが第1の領域510及び第2の領域520に分割された場合、動き情報発生頻度による動き情報抽出方法の実施例を示す。
【0097】
【0098】
表3を参照すると、符号化器は、符号化過程で領域別に動きベクトル発生回数をカウントしてカウント情報を取得することができる。即ち、符号化器は、第1の領域510及び第2の領域520の各々に対して、動きベクトル発生回数をカウントしてカウント情報を取得することができる。この時、符号化器は、カウント情報に基づき、各々の領域に対して発生頻度が高い順序にM個の動きベクトルを選択し、総N個の動きベクトルを抽出することができる。例えば、参照ピクチャが2個の領域に分割され、Mが3の場合、抽出された動きベクトルの個数は総6個である。
【0099】
動き情報抽出方法の他の実施例として、符号化対象ユニット及び/又は現在ピクチャに対して複数の参照ピクチャが使われる場合、符号化器は、各々の参照ピクチャに対して発生頻度によって、M個の動き情報を抽出し、総N個の時間的動き情報を抽出することができる。
【0100】
図6は、符号化対象ユニットに対するインター予測及び/又は動き補償に使われる参照ピクチャの実施例を示す。
図6を参照すると、現在ピクチャ630は、符号化対象ユニットを含むことができる。この時、符号化対象ユニットのインター予測のために、第1の参照ピクチャ610及び第2の参照ピクチャ620が使われることができる。下記の表4は、複数の参照ピクチャが使われる場合、動き情報発生頻度による動き情報抽出方法の実施例を示す。
【0101】
【0102】
表4を参照すると、符号化器は、符号化過程で参照ピクチャ別に動きベクトル発生回数をカウントしてカウント情報を取得することができる。即ち、符号化器は、第1の参照ピクチャ610及び第2の参照ピクチャ620の各々に対して、動きベクトル発生回数をカウントしてカウント情報を取得することができる。この時、符号化器は、カウント情報に基づき、各々の参照ピクチャに対して発生頻度が高い順序にM個の動きベクトルを選択し、総N個の動きベクトルを抽出することができる。例えば、2個の参照ピクチャが使われ、Mが3の場合、抽出された動きベクトルの個数は総6個である。
【0103】
動き情報抽出方法の他の実施例として、符号化対象ユニット及び/又は現在ピクチャに対して複数の参照ピクチャが使われる場合、符号化器は、各々の参照ピクチャに対してM個の動き情報を選択した後、選択された動き情報をスケーリング(scaling)することで、N個の時間的動き情報を抽出することもできる。
【0104】
この時、一例として、符号化器は、各々の参照ピクチャに対して、現在ピクチャからの時間的距離を計算することができ、前記計算された時間的距離(temporal distance)を利用してスケーリングを実行することができる。ここで、前記時間的距離は、現在ピクチャ及び複数の参照ピクチャがディスプレイ順序(display order)に羅列された場合、前記ディスプレィ順序に基づいて決定される距離である。
【0105】
例えば、符号化器は、符号化過程で参照ピクチャ別に動きベクトル発生回数をカウントしてカウント情報を取得することができる。即ち、符号化器は、参照ピクチャの各々に対して動きベクトル発生回数をカウントしてカウント情報を取得することができる。この時、符号化器は、前記カウント情報に基づき、各々の参照ピクチャに対して、発生頻度が高い順序にM個の動きベクトルを選択し、総N個の動きベクトルを選択することができる。
【0106】
符号化器は、各々の参照ピクチャに対して、現在ピクチャからの時間的距離を計算することができる。符号化器は、計算された時間的距離を利用して前記選択された動きベクトルに対するスケーリングを実行することで、スケーリングされた動きベクトルを現在ピクチャ及び/又は現在符号化ユニットに対する時間的動きベクトルとして抽出することができる。この時、スケーリングされた動きベクトルのうち複数の動きベクトルが互いに同じである場合、符号化器は、互いに同一の動きベクトルのうち一個の動きベクトルのみを時間的動きベクトルとして抽出することができる。
【0107】
一例として、2個の参照ピクチャが使われ、前記参照ピクチャの各々は、第1の参照ピクチャ、第2の参照ピクチャと仮定する。また、現在ピクチャと第1の参照ピクチャとの間の第1の時間的距離は2であり、現在ピクチャと第2の参照ピクチャとの間の第2の時間的距離は4であると仮定する。
【0108】
第1の参照ピクチャから選択された動きベクトルが[0,2]、[1,1]であり、第2の参照ピクチャから選択された動きベクトルが[0,4]、[2,4]である場合、選択された動きベクトルは[0,2]、[1,1]、[0,4]、[2,4]である。この時、符号化器は、前記第1の時間的距離及び前記第2の時間的距離に基づいて、第1の参照ピクチャから選択された動きベクトル及び/又は第2の参照ピクチャから選択された動きベクトルをスケーリングすることができる。例えば、第2の参照ピクチャから選択された動きベクトル[0,4]、[2,4]がスケーリングされる場合、スケーリングされた動きベクトルは[0,2]、[1,2]である。この時、スケーリングされた動きベクトルのうち[0,2]は、第1の参照ピクチャから選択された動きベクトルと同じであるため、最終的に抽出される時間的動きベクトルは、{[0,2]、[1,1]、[1,2]}のように構成されることができる。
【0109】
一方、復号化器は、符号化器で使われた動き情報抽出方法と同様な方法を利用し、参照ピクチャの動き情報を抽出することができる。この時、符号化器は、抽出された動き情報を復号化器に送信しない。一方、前述した動き情報抽出過程は、復号化器でない符号化器でのみ実行されることもできる。この時、符号化器は、抽出された動き情報を符号化して復号化器に送信することができる。
【0110】
再び
図4を参照すると、符号化器は、抽出された時間的動き情報を利用し、現在ピクチャ内の符号化対象ユニットに対するインター予測及び/又は動き補償を実行することができる(S420)。
【0111】
一例として、符号化器は、符号化対象ユニットに対する動きベクトル予測(MVP:Motion Vector Prediction)及び/又はAMVP(Advanced Motion Vector Prediction)の実行時、前記抽出された時間的動き情報を利用することができる。この時、符号化器は、参照ピクチャから抽出された時間的動きベクトルを動きベクトル候補(Motion Vector Candidate)のうち一つとして使用することができる。動きベクトル予測及び/又はAMVPが適用される場合、符号化器は、ブロックマッチングアルゴリズム、スキップモード又はダイレクトモードなどを利用してインター予測及び/又は動き補償を実行することができる。
【0112】
ブロックマッチングアルゴリズムは、参照ピクチャ内の復元されたユニットのうち符号化対象ユニットに対する参照ユニットを決定するアルゴリズムを意味する。符号化器は、符号化対象ユニットの動きベクトルを利用し、参照ピクチャ内の復元されたユニットのうち符号化対象ユニットに対する参照ユニットを決定することができる。この時、符号化器は、前記決定された参照ユニットを利用して前記符号化対象ユニットに対するインター予測及び/又は動き補償を実行することができる。
【0113】
スキップモード及びダイレクトモードでは、復元された隣接ユニットの動きベクトル及び時間的動きベクトルが符号化対象ユニットの動きベクトルとして利用されることができ、復元された隣接ユニットの参照ピクチャインデックスが符号化対象ユニットの参照ピクチャインデックスとして使われることができる。前記ダイレクトモードでは現在符号化対象ユニットに対する残差信号(residual signal)が符号化されて復号化器に送信されることができる。しかし、前記スキップモードでは残差信号(residual)が存在しないため、符号化器は、残差信号(residual signal)を符号化しない。
【0114】
他の例として、符号化器は、マージ(merge)モードを利用してインター予測及び/又は動き補償を実行することもできる。マージモードにおける符号化器は、復元された隣接ユニットの動きベクトル及び時間的動きベクトルのうち少なくとも一つを符号化対象ユニットの動きベクトルとして利用し、インター予測及び/又は動き補償を実行することができる。この時、符号化器は、符号化対象ユニットの動きベクトルを導出するために、前記抽出された時間的動きベクトルを利用することができる。例えば、符号化器は、前記抽出された時間的動きベクトルをマージ候補リスト(merge candidate list)に含まれるマージ候補のうち一つとして使用することができる。即ち、符号化器は、前記抽出された時間的動きベクトルを利用してマージ候補リストを生成することができる。
【0115】
この時、符号化器は、マージインデックスを符号化して復号化器に送信することができる。ここで、マージインデックスは、マージ候補リストに含まれているマージ候補のうちいずれの候補が符号化対象ユニットのインター予測及び動き補償に使われるかを指示するインデックスである。復号化器は、前記マージインデックスを受信して復号化することができ、符号化器と同様な方法によりマージ候補リストを生成することができる。この時、復号化器は、生成されたマージ候補リスト及び復号化されたマージインデックスを利用することで、復号化対象ユニットのインター予測及び動き補償に利用される動き情報を導出することができる。
【0116】
また、マージモードでも符号化対象ユニットに対する残差信号が存在しない。この時、符号化器は、残差信号を符号化せず、このような符号化モードは、マージスキップ(merge skip)モードと呼ばれることもある。
【0117】
一方、参照ピクチャから抽出された時間的動き情報は2個以上である。この場合、符号化器は、抽出された複数の時間的動き情報の中から1個を選択し、選択された時間的動き情報を符号化対象ユニットに対するインター予測及び/又は動き補償に利用することができる。この時、符号化器は、率-歪曲最適化(RDO:Rate-Distortion Optimization)方法により最適の時間的動き情報を選択することができる。ここで、率-歪曲最適化方法は、率(distortion)と歪曲(rate)の観点で最適の符号化方式を選択する方法を意味する。
【0118】
例えば、符号化器は、複数の時間的動きベクトルの各々に対して、符号化が実行される場合の率-歪曲費用(rate-distortion cost)を計算することができる。この時、符号化器は、最小の率-歪曲費用値を有する1個の時間的動きベクトルを選択することができる。符号化器は、インター予測及び/又は動き補償の実行時、前記選択された時間的動きベクトルを利用することができる。また、符号化器は、前記選択された時間的動きベクトルに対する動きベクトルインデックスを符号化することができ、符号化された動きベクトルインデックスは、ビットストリームに含まれて復号化器に送信されることができる。
【0119】
符号化器は、符号化対象ユニットの動き情報を符号化するために、参照ピクチャから抽出された時間的動き情報を利用することもできる。この時、参照ピクチャから抽出された時間的動き情報は、符号化対象ユニットの動き情報に対する予測値として使われることができる。以下、符号化対象ユニットの動き情報に対する予測値は、予測動き情報といい、符号化対象ユニットの動きベクトルに対する予測値は、予測動きベクトルという。
【0120】
例えば、符号化器は、参照ピクチャから抽出された時間的動きベクトルを符号化対象ユニットに対する予測動きベクトルとして使用することができる。符号化器は、符号化対象ユニットの動きベクトルと予測動きベクトルとのの差分により、動きベクトル差分(motion vector difference)を求めることができる。この時、符号化器は、前記求められた動きベクトル差分を符号化することができ、符号化された動きベクトル差分は、ビットストリームに含まれて復号化器に送信されることができる。以下の数式1は、動きベクトル差分計算方法の実施例を示す。
【0121】
【0122】
ここで、motion_vector_differenceは、動きベクトル差分を示すことができる。また、motion_vectorは、符号化対象ユニットの動きベクトルを示し、extracted_motion_vectorは、参照ピクチャから抽出された時間的動きベクトルを示すことができる。
【0123】
再び
図4を参照すると、符号化器は、参照ピクチャから抽出された動き情報及び/又は前記動き情報に関連した情報を符号化することができる(S430)。前記符号化された情報は、符号化対象ユニットに対するシーケンスパラメータセット(SPS:Sequence Parameter Set)、ピクチャパラメータセット(PPS:Picture Parameter Set)又はスライスヘッダ(Slice Header)に含まれて復号化器に送信されることができる。
【0124】
一実施例として、符号化器は、参照ピクチャから抽出された動き情報が符号化されて復号化器に送信されるかどうかを指示する、動き情報符号化指示子を符号化することができる。この時、動き情報符号化指示子は、抽出された動き情報がインター予測及び動き補償に利用されるかどうかを示すこともできる。符号化された動き情報符号化指示子は、ビットストリームに含まれて復号化器に送信されることができる。
【0125】
例えば、前記動き情報符号化指示子は、coded_motion_vector_present_flagという構文要素(syntax element)により示される。前記構文要素は、ピクチャパラメータセット又はスライスヘッダで符号化されることができる。
【0126】
coded_motion_vector_present_flagの値が1の場合、符号化器は、抽出された時間的動き情報を符号化して復号化器に送信することができる。この時、復号化器は、送信された時間的動き情報を復号化することができる。復号化器は、前記復号化された時間的動き情報を利用し、復号化対象ユニットに対するインター予測及び動き補償を実行することができる。coded_motion_vector_present_flagの値が0の場合、符号化器は、抽出された時間的動き情報を符号化しない。この時、復号化器は、インター予測及び動き補償の実行時、前記抽出された時間的動き情報を利用しない。
【0127】
また、符号化器は、参照ピクチャから抽出された動き情報値を符号化することができる。符号化された動き情報値は、ビットストリームに含まれて復号化器に送信されることができる。
【0128】
参照ピクチャから複数個の動きベクトルが抽出された場合、符号化器は、DPCM(Difference Pulse Code Modulation)を利用して抽出された動きベクトル値を符号化することができる。この時、符号化器は、DPCMを利用し、各動きベクトルに対する予測を実行することができる。
【0129】
例えば、参照ピクチャから2個の動きベクトルが抽出されると仮定する。抽出された動きベクトルは、各々、第1の動きベクトル、第2の動きベクトルという。ここで、第1の動きベクトルは、extracted_motion_vector_1により示され、第2の動きベクトルは、extracted_motion_vector_2により示される。DPCMが利用される場合、前記第1の動きベクトル値は、第2の動きベクトル値に対する予測値として使われることができる。この時、符号化器は、第2の動きベクトル値を符号化する時、前記予測値(第1の動きベクトル値)を利用して第2の動きベクトルに対する動きベクトル差分を求めることができる。これは一例に過ぎず、以下の数式2により示される。
【0130】
【0131】
ここで、motion_vector_difference_2は、第2の動きベクトルに対する動きベクトル差分を示す。前述した方法により動きベクトル差分が導出されると、符号化器は、導出された動きベクトル差分値を符号化して復号化器に送信することができる。
【0132】
参照ピクチャから抽出された動き情報が1個である場合、符号化器は、抽出された動き情報に対する予測を実行せず、抽出された動き情報値自体を符号化することができる。この時、符号化された動き情報値は、ビットストリームに含まれて復号化器に送信されることができる。
【0133】
一方、前述したように、参照ピクチャから抽出された動き情報の個数は2個以上である。抽出された動き情報の個数が2個以上である場合、符号化器は、抽出された複数の動き情報の中から1個を選択し、符号化対象ユニットに対するインター予測及び/又は動き補償に利用することができる。この時、符号化器は、抽出された複数の動き情報のうちいずれの動き情報が使われるかを指示する動き情報インデックスを符号化することができる。符号化された動き情報インデックスは、ビットストリームに含まれて復号化器に送信されることができる。
【0134】
下記の表5は、参照ピクチャから抽出された動きベクトルの個数が2個以上である場合、抽出された動きベクトルの実施例を示す。
【0135】
【0136】
表5を参照すると、各々の動きベクトルには動き情報インデックスが割り当てられることができる。例えば、抽出された複数の動きベクトルのうち[0,-1]が使われる場合、符号化器は、動き情報インデックス値2を符号化して復号化器に送信することができる。この時、復号化器は、前記送信された動き情報インデックスを利用し、インター予測及び動き補償に使われる動きベクトルを導出することができる。
【0137】
参照ピクチャから抽出された動き情報が1個である場合、符号化器は、動き情報インデックスを符号化しない。
【0138】
後述のように、復号化器は、符号化器と同様な方法によりN(Nは、正の整数)個の時間的動き情報を抽出することができる。前記抽出された時間的動き情報は、復号化対象ユニットに対するインター予測及び動き補償に利用されることができる。この時、符号化器は、参照ピクチャから抽出された時間的動き情報値及び/又は動き情報インデックスを符号化しないこともある。
【0139】
前述したインター予測方法によると、符号化器は、映像符号化時に時間的動き情報を効率的に符号化することができる。また、符号化器は、参照ピクチャ内の動き情報をメモリに格納しないため、符号化対象ユニットに対するインター予測及び動き補償時に、メモリ要求量(memory requirement)及びメモリ帯域幅(memory bandwidth)が減少され、エラー耐性が向上することができる。したがって、全体的な映像符号化の効率が向上することができる。
【0140】
図7は、復号化器でのインター予測方法の一実施例を概略的に示すフローチャートである。
【0141】
図7を参照すると、復号化器は、現在ピクチャに対する参照ピクチャの動き情報を抽出することができる(S710)。
【0142】
復号化器は、参照ピクチャに含まれている動き情報のうちN個の動き情報を抽出することができる。前記抽出された動き情報は、現在ピクチャ内の復号化対象ユニットのインター予測及び/又は動き補償に使われることができる。ここで、Nは正の整数を示し、以下に叙述される実施例におけるNは正の整数を意味する。
【0143】
復号化器は、符号化器で使われた動き情報抽出方法と同様な方法を利用し、参照ピクチャの動き情報を抽出することができる。この時、復号化器は、符号化器で抽出された時間的動き情報と同じである動き情報を抽出することができる。動き情報抽出方法の実施例は、
図4で前述したため省略する。
【0144】
一方、前述したように、符号化器は、参照ピクチャから抽出された動き情報値を符号化することができ、符号化された動き情報値は、ビットストリームに含まれて復号化器に送信されることができる。この場合、復号化器は、送信されたビットストリームから参照ピクチャの動き情報を導出することができるため、復号化器は、動き情報抽出過程を実行しない。
【0145】
再び
図7を参照すると、復号化器は、符号化器で送信された参照ピクチャの動き情報及び/又は前記動き情報に関連した情報を復号化することができる(S720)。復号化器は、シーケンスパラメータセット(SPS:Sequence Parameter Set)、ピクチャパラメータセット(PPS:Picture Parameter Set)又はスライスヘッダ(Slice Header)で前記情報を復号化することができる。
【0146】
一実施例として、復号化器は、符号化器で抽出された時間的動き情報が符号化されて復号化器に送信されるかどうかを指示する、動き情報符号化指示子を復号化することができる。この時、動き情報符号化指示子は、符号化器で抽出された時間的動き情報がインター予測及び動き補償に利用されるかどうかを示すこともできる。
【0147】
例えば、前記動き情報符号化指示子は、coded_motion_vector_present_flagという構文要素(syntax element)により示される。前記構文要素は、ピクチャパラメータセット又はスライスヘッダで復号化されることができる。
【0148】
coded_motion_vector_present_flagの値が1の場合、符号化器は、参照ピクチャから抽出された時間的動き情報を符号化して復号化器に送信することができる。この時、復号化器は、送信された時間的動き情報を復号化することができる。復号化器は、前記復号化された時間的動き情報を利用し、復号化対象ユニットに対するインター予測及び動き補償を実行することができる。coded_motion_vector_present_flagの値が0の場合、符号化器は、参照ピクチャから抽出された時間的動き情報を符号化しない。この時、復号化器は、前記抽出された時間的動き情報を復号化せず、インター予測及び動き補償の実行時、前記抽出された時間的動き情報を利用しない。
【0149】
また、前述したように、符号化器は、参照ピクチャから抽出された動き情報値を符号化して復号化器に送信することができる。この時、復号化器は、送信された動き情報値を受信して復号化することができる。
【0150】
参照ピクチャから複数個の動きベクトルが抽出された場合、符号化器は、DPCMを利用して抽出された動きベクトル値を予測した後、予測された動きベクトル値と抽出された動きベクトル値との差分、即ち、動きベクトル差分を符号化することができる。符号化された動きベクトル差分は、復号化器に送信されることができ、復号化器は、送信された動きベクトル差分を利用し、時間的動き情報を導出することができる。
【0151】
例えば、符号化器で2個の動きベクトルが符号化されると仮定する。符号化された動きベクトルは、各々、第1の動きベクトル、第2の動きベクトルという。ここで、第1の動きベクトルは、extracted_motion_vector_1により示され、第2の動きベクトルは、extracted_motion_vector_2により示される。DPCMが利用される場合、前記第1の動きベクトル値は、第2の動きベクトル値に対する予測値として使われることができる。この時、前述したように、符号化器は、第2の動きベクトルに対する動きベクトル差分を復号化器に送信することができる。ここで、前記第2の動きベクトルに対する動きベクトル差分は、motion_vector_difference_2で示される。
【0152】
復号化器は、第1の動きベクトル値を復号化することができる。また、復号化器は、第2の動きベクトルに対する動きベクトル差分を復号化し、復号化された動きベクトル差分を第1の動きベクトル値と加えて第2の動きベクトル値を導出することができる。これは一例に過ぎず、以下の数式3により示される。
【0153】
【0154】
参照ピクチャから抽出された動き情報が1個である場合、符号化器は、抽出された動き情報に対する予測を実行せず、抽出された動き情報値自体を符号化して復号化器に送信することができる。この時、復号化器は、動き情報に対する予測を実行せず、送信された動き情報値自体を復号化することができる。
【0155】
一方、参照ピクチャから抽出された動き情報の個数は2個以上である。前記動き情報は、符号化器で抽出されて復号化器に送信されることもでき、復号化器で抽出されることもできる。この時、復号化器は、複数の動き情報の中から1個を選択し、復号化対象ユニットに対するインター予測及び/又は動き補償に利用することができる。
【0156】
前述したように、参照ピクチャから抽出された動き情報の個数が2個以上である場合、符号化器は、動き情報インデックスを符号化して復号化器に送信することができる。ここで、動き情報インデックスは、抽出された複数の動き情報のうちいずれの動き情報が使われるかを指示するインデックスである。この時、復号化器は、受信された動き情報インデックスを復号化することができる。復号化器は、符号化器で抽出された動き情報と同じである複数の動き情報を有することができるため、前記復号化された動き情報インデックスを利用し、インター予測及び動き補償に利用される動き情報を選択することができる。
【0157】
下記の表6は、参照ピクチャから抽出された動きベクトルの個数が2個以上である場合、抽出された動きベクトルの実施例を示す。
【0158】
【0159】
表6を参照すると、各々の動きベクトルには動き情報インデックスが割り当てられることができる。例えば、符号化器から送信された動き情報インデックス値が2の場合、復号化器は、2のインデックス値が割り当てられた動きベクトル[0,-1]をインター予測及び動き補償に使用することができる。
【0160】
参照ピクチャから抽出された動き情報が1個である場合、符号化器は、動き情報インデックスを符号化しない。この時、符号化器は、動き情報インデックスを送信しないため、復号化器は、動き情報インデックスを復号化しない。
【0161】
また、前述したように、復号化器は、符号化器と同様な方法によりN(Nは、正の整数)個の時間的動き情報を抽出することができる。前記抽出された時間的動き情報は、復号化対象ユニットに対するインター予測及び動き補償に利用されることができる。この時、符号化器は、参照ピクチャから抽出された時間的動き情報値及び/又は動き情報インデックスを符号化しない。この時、復号化器は、動き情報値及び動き情報インデックスなどを復号化しない。即ち、前述した動き情報値及び動き情報インデックスなどの復号化過程は省略されることができる。
【0162】
前述した動き情報抽出過程(S710)及び/又は動き情報復号化過程(S720)により、復号化器は、参照ピクチャの時間的動き情報を導出することができる。復号化器で導出された参照ピクチャの動き情報は、符号化器で抽出された時間的動き情報と同じである。以下、復号化器で導出された参照ピクチャの動き情報は、参照動き情報といい、復号化器で導出された参照ピクチャの動きベクトルは、参照動きベクトルという。
【0163】
また、
図7を参照すると、復号化器は、前述した方法により導出された、参照動き情報を利用し、現在ピクチャ内の復号化対象ユニットに対するインター予測及び/又は動き補償を実行することができる(S730)。
【0164】
一例として、復号化器は、復号化対象ユニットに対する動きベクトル予測(MVP:Motion Vector Prediction)及び/又はAMVP(Advanced Motion Vector Prediction)の実行時、前記参照動き情報を利用することができる。この時、復号化器は、参照動きベクトルを動きベクトル候補(Motion Vector Candidate)のうち一つとして使用することができる。動きベクトル予測及び/又はAMVPが適用される場合、復号化器は、参照動きベクトルを利用してインター予測及び/又は動き補償を実行することができる。
【0165】
スキップモード及びダイレクトモードでは、復元された隣接ユニットの動きベクトル及び時間的動きベクトルが復号化対象ユニットの動きベクトルとして利用されることができ、復元された隣接ユニットの参照ピクチャインデックスが復号化対象ユニットの参照ピクチャインデックスとして使われることができる。前記ダイレクトモードでは現在復号化対象ユニットに対する残差信号(residual signal)が復号化されることができる。しかし、前記スキップモードでは残差信号(residual)が存在しないため、復号化器は、残差信号(residual signal)を復号化しない。
【0166】
他の例として、復号化器は、マージ(merge)モードを利用してインター予測及び/又は動き補償を実行することもできる。マージモードにおける復号化器は、復元された隣接ユニットの動きベクトル及び時間的動きベクトルのうち少なくとも一つを復号化対象ユニットの動きベクトルとして利用し、インター予測及び/又は動き補償を実行することができる。この時、復号化器は、復号化対象ユニットの動きベクトルを導出するために、参照動きベクトルを利用することができる。例えば、復号化器は、参照動きベクトルをマージ候補リスト(merge candidate list)に含まれるマージ候補のうち一つとして使用することができる。
【0167】
マージモードでも復号化対象ユニットに対する残差信号が存在しない。この時、復号化器は、残差信号を復号化せず、このような符号化モードは、マージスキップ(merge skip)モードと呼ばれることもある。
【0168】
一方、復号化器で導出された参照動き情報は2個以上である。この場合、復号化器は、導出された複数の参照動き情報の中から1個を選択し、選択された参照動き情報を符号化対象ユニットに対するインター予測及び/又は動き補償に利用することができる。この時、一例として、復号化器は、符号化器から送信された動き情報インデックスを復号化することができ、復号化された動き情報インデックスを利用し、インター予測及び動き補償に利用される参照動き情報を選択することができる。ここで、動き情報インデックスは、導出された複数の参照動き情報のうちいずれの参照動き情報が使われるかを指示することができる。
【0169】
復号化器は、復号化対象ユニットの動き情報を導出するために、参照動き情報を利用することもできる。この時、参照動き情報は、復号化対象ユニットの動き情報に対する予測値として使われることができる。
【0170】
例えば、復号化器は、参照動きベクトルを復号化対象ユニットに対する予測動きベクトルとして使用することができる。ここで、予測動きベクトルは、復号化対象ユニットの動きベクトルに対する予測値を意味する。前述したように、符号化器は、符号化対象ユニットの動きベクトルと参照ピクチャから抽出された動きベクトルとの間の動きベクトル差分を導出して復号化器に送信することができる。この時、復号化器は、前記動きベクトル差分を受信して復号化することができ、復号化された動きベクトル差分及び参照動きベクトルを加え、復号化対象ユニットの動きベクトルを導出することができる。これは、例えば、以下の数式4により示される。
【0171】
【0172】
ここで、motion_vectorは、復号化対象ユニットの動きベクトルを示すことができる。また、motion_vector_differenceは、動きベクトル差分を示し、extracted_motion_vectorは、参照動きベクトルを示すことができる。
【0173】
前述したインター予測方法によると、復号化器は、映像復号化時に時間的動き情報を効率的に復号化することができる。また、復号化器は、参照ピクチャ内の動き情報をメモリに格納しないため、復号化対象ユニットに対するインター予測及び動き補償時に、メモリ要求量(memory requirement)及びメモリ帯域幅(memory bandwidth)が減少され、エラー耐性が向上することができる。したがって、全体的な映像復号化の効率が向上することができる。
【0174】
前述した実施例において、方法は一連のステップ又はブロックで順序図に基づいて説明されているが、本発明はステップの順序に限定されるものではなく、あるステップは前述と異なるステップと異なる順序に又は同時に発生することができる。また、当該技術分野において通常の知識を有する者であれば、順序図に示すステップが排他的でなく、他のステップが含まれ、又は順序図の一つ又はそれ以上のステップが本発明の範囲に影響を及ぼさずに削除可能であることを理解することができる。
【0175】
前述した実施例は、多様な態様の例示を含む。多様な態様を示すための全ての可能な組合せを記述することはできないが、該当技術分野の通常の知識を有する者は他の組合せが可能であることを認識することができる。したがって、本発明は、特許請求の範囲内に属する全ての交替、修正、及び変更を含む。