JP2013145971A - 画像復号装置、画像復号方法及び画像復号プログラム - Google Patents

画像復号装置、画像復号方法及び画像復号プログラム Download PDF

Info

Publication number
JP2013145971A
JP2013145971A JP2012005602A JP2012005602A JP2013145971A JP 2013145971 A JP2013145971 A JP 2013145971A JP 2012005602 A JP2012005602 A JP 2012005602A JP 2012005602 A JP2012005602 A JP 2012005602A JP 2013145971 A JP2013145971 A JP 2013145971A
Authority
JP
Japan
Prior art keywords
motion vector
prediction
candidate
motion information
vector candidate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012005602A
Other languages
English (en)
Inventor
Hideki Takehara
英樹 竹原
Motoharu Ueda
基晴 上田
Hiroya Nakamura
博哉 中村
Shigeru Fukushima
茂 福島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JVCKenwood Corp
Original Assignee
JVCKenwood Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by JVCKenwood Corp filed Critical JVCKenwood Corp
Priority to JP2012005602A priority Critical patent/JP2013145971A/ja
Publication of JP2013145971A publication Critical patent/JP2013145971A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】従来の方法では、予測動きベクトルの予測精度が低下し、符号化効率が良くならないことがあった。
【解決手段】予測ベクトルリスト構築部153は、空間予測ベクトル候補導出部150に導出させた予測動きベクトル候補と、所定のフラグに応じて時間予測ベクトル候補導出部152および空間スケーリング予測ベクトル候補導出部151のいずれか一方に導出させた予測動きベクトル候補とから、予測動きベクトル候補リストを構築する。予測ベクトル選択部221は、選択すべき予測動きベクトル候補を示す情報にもとづいて予測動きベクトル候補リストから1つの予測動きベクトル候補を選択し、復号対象ブロックの予測動きベクトルとする。加算部222は、予測動きベクトルと復号された差分ベクトルとを加算して、復号対象ブロックの動きベクトルを求める。
【選択図】図22

Description

本発明は、動き補償予測を用いた動画像復号技術に関し、特に動き補償予測で利用する動き情報を復号する画像復号装置、画像復号方法および画像復号プログラムに関する。
一般的な動画像圧縮符号化では動き補償予測が利用される。動き補償予測は、対象画像を細かいブロックに分割し、復号済みの画像を参照画像として、動きベクトルで示される動き量に基づいて、対象画像の処理対象ブロックから参照画像の参照ブロックに移動した位置の信号を予測信号として生成する技術である。動き補償予測には1本の動きベクトルを利用して単予測に行うものと、2本の動きベクトルを利用して双予測に行うものがある。
動きベクトルについては、処理対象ブロックに隣接する符号化済みのブロックの動きベクトルを予測動きベクトル(単に「予測ベクトル」ともいう)とし、処理対象ブロックの動きベクトルと予測ベクトルとの差分を求め、差分ベクトルを符号化ベクトルとして伝送することで圧縮効率を向上させている。
MPEG−4AVC/H.264(以下、AVC)のような動画像圧縮符号化では、動き補償予測を行うブロックサイズを細かく且つ多様にすることで、精度の高い動き補償予測を可能としている。一方、ブロックサイズを小さくすることで、符号化ベクトルの符号量は大きくなる問題があった。
そこで、AVCでは、時間方向の動きの連続性に着目し、処理対象ブロックと同一位置にある参照画像のブロックが有する動きベクトルをスケーリングして処理対象ブロックの動きベクトルとして利用することで、符号化ベクトルを伝送することなく動き補償予測を実現する時間ダイレクト動き補償予測が用いられている。
また、特許文献1では、空間方向の動きの連続性に着目し、処理対象ブロックに隣接する処理済みのブロックが有する動きベクトルを処理対象ブロックの動きベクトルとして利用して、符号化ベクトルを伝送することなく動き補償予測を実現する方法が開示されている。
特開平10−276439号公報
しかし、AVCや特許文献1に記載された方法では、予測ベクトルが1つとダイレクトモードが1つしか得られないため、画像によっては予測動きベクトルの予測精度が低下し、符号化効率が良くならない場合もある。
このような状況下、本発明者らは、動き補償予測を使用する動画像符号化方式において、符号化情報をより一層圧縮し、全体の符号量を削減する必要性を認識するに至った。
本発明はこうした状況に鑑みてなされたものであり、その目的は、複数の予測動きベクトルの候補を導出することにより、差分動きベクトルの符号量の削減を図って符号化効率を向上させる動画像復号技術を提供することにある。
上記課題を解決するために、本発明のある態様の画像復号装置は、動き補償予測を行う画像復号装置であって、予測動きベクトル候補リストにおいて選択すべき予測動きベクトル候補を示す情報が差分ベクトルとともに符号化された符号列から、前記選択すべき予測動きベクトル候補を示す情報と前記差分ベクトルを復号する復号部(201)と、復号対象ブロックに隣接する複数の復号済みブロックのいずれかの動きベクトルを予測動きベクトル候補とする空間予測動きベクトル候補導出部(150)と、前記復号対象ブロックに隣接する複数の復号済みブロックのいずれかの動きベクトルをスケーリングして予測動きベクトル候補を導出する空間スケーリング予測動きベクトル候補導出部(151)と、前記復号対象ブロックのあるピクチャとは別の復号済みのピクチャのブロックのいずれかの動きベクトルをスケーリングして予測動きベクトル候補を導出する時間予測動きベクトル候補導出部(152)と、前記空間予測動きベクトル候補導出部(150)に導出させた予測動きベクトル候補と、前記時間予測動きベクトル候補導出部(152)および前記空間スケーリング予測動きベクトル候補導出部(151)のいずれか一方に導出させた予測動きベクトル候補とから、予測動きベクトル候補リストを構築する予測動きベクトル候補リスト構築部(153)と、前記選択すべき予測動きベクトル候補を示す情報にもとづいて前記予測動きベクトル候補リストから1つの予測動きベクトル候補を選択し、前記復号対象ブロックの予測動きベクトルとする予測動きベクトル選択部(221)と、前記予測動きベクトルと復号された前記差分ベクトルとを加算して、前記復号対象ブロックの動きベクトルを求める加算部(222)とを含む。前記予測動きベクトル候補リスト構築部(153)は、所定のフラグが所定値であれば、前記空間予測動きベクトル候補導出部(150)に導出させた予測動きベクトル候補と、前記時間予測動きベクトル候補導出部(152)に導出させずに前記空間スケーリング予測動きベクトル候補導出部(151)に導出させた予測動きベクトル候補とから、前記予測動きベクトル候補リストを構築し、前記所定のフラグが所定値でなければ、前記空間予測動きベクトル候補導出部(150)に導出させた予測動きベクトル候補と、前記空間スケーリング予測動きベクトル候補導出部(151)に導出させずに前記時間予測動きベクトル候補導出部(152)に導出させた予測動きベクトル候補とから、前記予測動きベクトル候補リストを構築する。
本発明の別の態様は、画像復号方法である。この方法は、動き補償予測を行う画像復号方法であって、予測動きベクトル候補リストにおいて選択すべき予測動きベクトル候補を示す情報が差分ベクトルとともに符号化された符号列から、前記選択すべき予測動きベクトル候補を示す情報と前記差分ベクトルを復号する復号ステップと、復号対象ブロックに隣接する複数の復号済みブロックのいずれかの動きベクトルを予測動きベクトル候補とする空間予測動きベクトル候補導出ステップと、前記復号対象ブロックに隣接する複数の復号済みブロックのいずれかの動きベクトルをスケーリングして予測動きベクトル候補を導出する空間スケーリング予測動きベクトル候補導出ステップと、前記復号対象ブロックのあるピクチャとは別の復号済みのピクチャのブロックのいずれかの動きベクトルをスケーリングして予測動きベクトル候補を導出する時間予測動きベクトル候補導出ステップと、前記空間予測動きベクトル候補導出ステップに導出させた予測動きベクトル候補と、前記時間予測動きベクトル候補導出ステップおよび前記空間スケーリング予測動きベクトル候補導出ステップのいずれか一方に導出させた予測動きベクトル候補とから、予測動きベクトル候補リストを構築する予測動きベクトル候補リスト構築ステップと、前記選択すべき予測動きベクトル候補を示す情報にもとづいて前記予測動きベクトル候補リストから1つの予測動きベクトル候補を選択し、前記復号対象ブロックの予測動きベクトルとする予測動きベクトル選択ステップと、前記予測動きベクトルと復号された前記差分ベクトルとを加算して、前記復号対象ブロックの動きベクトルを求める加算ステップとを含む。前記予測動きベクトル候補リスト構築ステップは、所定のフラグが所定値であれば、前記空間予測動きベクトル候補導出ステップに導出させた予測動きベクトル候補と、前記時間予測動きベクトル候補導出ステップに導出させずに前記空間スケーリング予測動きベクトル候補導出ステップに導出させた予測動きベクトル候補とから、前記予測動きベクトル候補リストを構築し、前記所定のフラグが所定値でなければ、前記空間予測動きベクトル候補導出ステップに導出させた予測動きベクトル候補と、前記空間スケーリング予測動きベクトル候補導出ステップに導出させずに前記時間予測動きベクトル候補導出ステップに導出させた予測動きベクトル候補とから、前記予測動きベクトル候補リストを構築する。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、複数の予測動きベクトルの候補を導出して差分動きベクトルの符号量を削減することができる。
図1(a)、(b)は、符号化ブロックを説明する図である。 図2(a)〜(d)は、予測ブロックサイズタイプを説明する図である。 予測ブロックサイズタイプを説明する図である。 予測符号化モードを説明する図である。 マージインデックスと符号列の関係を説明する図である。 予測ブロックのシンタックスの一例を説明する図である。 実施の形態1に係る動画像符号化装置の構成を示す図である。 図7の動き情報生成部の構成を示す図である。 図8のマージモード決定部の構成を説明する図である。 マージモード決定部の動作を説明するフローチャートである。 図9の結合動き情報候補リスト生成部の構成を説明する図である。 図9の結合動き情報候補リスト生成部の動作を説明するフローチャートである。 予測ブロックの空間候補ブロック群について説明する図である。 図11の空間結合動き情報候補導出部の動作を説明するフローチャートである。 空間結合動き情報候補最大数の設定の動作を説明するフローチャートである。 図11の時間結合動き情報候補導出部の動作を説明するフローチャートである。 図11の第1結合動き情報候補補充部の動作を説明するフローチャートである。 組み合わせ検査回数と結合動き情報候補Mと結合動き情報候補Nの関係を説明する図である。 図11の第2結合動き情報候補補充部の動作を説明するフローチャートである。 予測ベクトルモード決定部の構成を示す図である。 予測ベクトルモード決定部の動作を示すフローチャートである。 予測ベクトル候補リスト生成部の構成を説明する図である。 予測ベクトル候補リスト生成部の動作を説明するフローチャートである。 空間予測ベクトル候補導出部の動作を説明するフローチャートである。 空間スケーリング予測ベクトル候補導出部の動作を説明するフローチャートである。 時間予測ベクトル候補導出部の動作を説明するフローチャートである。 実施の形態1に係る動画像復号装置の構成を示す図である。 図27の動き情報再生部の構成を示す図である。 図28の結合動き情報再生部の構成を示す図である。 結合動き情報再生部の動作を説明する図である。 動きベクトル再生部の構成を説明する図である。 動きベクトル再生部の動作を説明する図である。 最大符号化ブロック境界で動き情報が半分に間引いて記憶される場合に空間結合動き情報候補最大数を大きくすることが有効となることを説明する図である。 実施の形態3のスライスヘッダのシンタックスを説明する図である。 実施の形態3におけるマージ候補最大数を決定する動作を説明するフローチャートである。 マージ候補最大数が小さい方に符号化効率が向上する一例を説明する図である。 実施の形態4の結合動き情報候補リスト生成部の構成を説明する図である。 実施の形態4の結合動き情報候補リスト生成部の動作を説明するフローチャートである。
まず、本発明の実施の形態の前提となる技術を説明する。
現在、MPEG(Moving Picture Experts Group)などの符号化方式に準拠した装置およびシステムが普及している。そのような符号化方式では、時間軸上に連続する複数の画像をデジタル信号の情報として取り扱う。その際、効率の高い情報の放送、伝送または蓄積などを目的とし、画像を複数のブロックに分割して時間方向の冗長性を利用した動き補償予測、および空間方向の冗長性を利用した離散コサイン変換などの直交変換を用いて圧縮符号化する。
2003年に、国際標準化機構(ISO)と国際電気標準会議(IEC)のジョイント技術委員会(ISO/IEC)と、国際電気通信連合電気通信標準化部門(ITU−T)の共同作業によってAVCと呼ばれる符号化方式(ISO/IECでは14496−10、ITU−TではH.264の規格番号がつけられている)が国際標準として制定された。AVCでは、基本的に処理対象ブロックの複数の隣接ブロックの動きベクトルの中央値を予測ベクトルとする。予測ブロックサイズが正方形でない場合で処理対象ブロックの特定の隣接ブロックの参照インデックスと処理対象ブロックの参照インデックスが一致する場合には、その特定の隣接ブロックの動きベクトルを予測ベクトルとする。
現在、国際標準化機構(ISO)と国際電気標準会議(IEC)のジョイント技術委員会(ISO/IEC)と、国際電気通信連合電気通信標準化部門(ITU−T)の共同作業によってHEVCと呼ばれる符号化方式の標準化が検討されている。
HEVCの標準化では、処理対象のブロックの複数の隣接ブロックと復号済みの別の画像のブロックを候補ブロックとして、これら候補ブロック群で構成される候補ブロック群から1つの候補ブロックが選択されて、選択された候補ブロックの情報が符号化および復号されて、選択された候補ブロックの動き情報が処理対象のブロックの動き情報として利用されるマージモードが検討されている。
また、処理対象のブロックの複数の隣接ブロックと復号済みの別の画像のブロックを候補ブロックとして、これら候補ブロック群で構成される候補ブロック群から1つの候補ブロックが選択されて、選択された候補ブロックの情報が符号化および復号されて、選択された候補ブロックの動きベクトルが処理対象のブロックの予測ベクトルとして利用される予測ベクトルモードが検討されている。
[実施の形態1]
(符号化ブロック)
本実施の形態では、入力された画像信号は最大符号化ブロック単位に分割され、分割された最大符号化ブロックをラスタースキャン順序で処理する。符号化ブロックは階層構造となっており、符号化効率などを考慮して順次4分割することでより小さい符号化ブロックにすることができる。なお、4分割された符号化ブロックはジグザグスキャン順で符号化される。これ以上小さくすることのできない符号化ブロックを最小符号化ブロックと呼ぶ。符号化ブロックは符号化の単位となり、最大符号化ブロックも分割回数が0である場合は符号化ブロックとなる。本実施の形態では、最大符号化ブロックを64画素×64画素、最小符号化ブロックを8画素×8画素とする。
図1(a)、(b)は、符号化ブロックを説明するための図である。図1(a)の例では、符号化ブロックが10個に分割されている。CU0、CU1およびCU9は32画素×32画素の符号化ブロック、CU2、CU3およびCU8は16画素×16画素の符号化ブロック、ならびにCU4、CU5、CU6およびCU7は8画素×8画素の符号化ブロックとなっている。図1(b)の例では、符号化ブロックが1個に分割されている。
(予測ブロック)
本実施の形態では、符号化ブロックはさらに予測ブロック(パーティションともいう)に分割される。符号化ブロックは予測ブロックサイズタイプ(分割タイプやパーティションタイプともいう)によって1以上の予測ブロックに分割される。図2(a)〜(d)は、予測ブロックサイズタイプを説明するための図である。図2(a)は符号化ブロックを分割しない2N×2N、図2(b)は水平に2分割する2N×N、図2(c)は垂直に2分割するN×2N、および図2(d)は水平と垂直に4分割するN×Nを示す。2N×2Nは1個の予測ブロック0、2N×NとN×2Nは2個の予測ブロック0と予測ブロック1、N×Nは4個の予測ブロック0、予測ブロック1、予測ブロック2、予測ブロック3からなる。予測ブロック0、予測ブロック1、予測ブロック2、予測ブロック3の順に符号化される。
図3は、符号化ブロックの分割回数と予測ブロックサイズタイプによる予測ブロックサイズを説明するための図である。本実施の形態における予測ブロックサイズは、CU分割回数が0であって予測ブロックサイズタイプが2N×2Nである64画素×64画素からCU分割回数が3であって予測ブロックサイズタイプN×Nである4画素×4画素までの13の予測ブロックサイズが存在することになる。例えば、符号化ブロックを非対称に水平や垂直に2分割することもできる。
本実施の形態では、最大符号化ブロックを64画素×64画素、最小符号化ブロックを8画素×8画素とするが、この組み合わせに限定されない。また、予測ブロックの分割のパターンを図2(a)〜(d)としたが、1以上に分割される組み合わせであればよくこれに限定されない。
(ピクチャとスライス)
ピクチャとスライスはAVCなどで利用されている一般的な概念であるためここでは説明は省略する。また、Iピクチャ、Pピクチャ、Bピクチャ、Iスライス、Pスライス、Bスライスについても一般的な概念であるためここでは説明は省略する。以下、画像はピクチャといいかえてもよい。
(予測符号化モード)
本実施の形態では、動き補償予測や符号化ベクトル数を予測ブロック毎に切り替えることが可能となっている。ここで、動き補償予測と符号化ベクトル数を関連付けた予測符号化モードの一例について図4を用いて簡単に説明する。図4は、予測符号化モードを説明するための図である。
図4に示す予測符号化モードには、動き補償予測の予測方向が単予測(L0予測)であって符号化ベクトル数が1であるPredL0、動き補償予測の予測方向が単予測(L1予測)であって符号化ベクトル数が1であるPredL1、動き補償予測の予測方向が双予測(BI予測)であって符号化ベクトル数が2であるPredBI、および動き補償予測の予測方向が単予測(L0予測/L1予測)または双予測(BI予測)であって符号化ベクトル数が0であるマージモード(MERGE)がある。また、動き補償予測を実施しない予測符号化モードであるイントラモード(Intra)もある。ここで、PredL0、PredL1、およびPredBIが予測ベクトルモードとなる。
マージモードでは予測方向がL0予測/L1予測/BI予測のいずれにもなるが、それは、マージモードの予測方向は候補ブロック群から選択された候補ブロックの予測方向をそのまま引き継ぐか、復号済みの情報から導出されるためである。また、マージモードでは符号化ベクトルが符号化されない。これは、マージモードの符号化ベクトルは候補ブロック群から選択された候補ブロックの動きベクトルをそのまま引き継ぐか、あらかじめ定められた規則によって導出されるためである。
(参照インデックス)
本実施の形態では、動き補償予測の精度向上のために、動き補償予測において複数の参照画像の中から最適な参照画像を選択することを可能とする。そのため、動き補償予測で利用した参照画像を参照画像インデックスとして符号化ベクトルとともに符号化する。動き補償予測で利用される参照画像インデックスは0以上の数値となる。参照インデックスには、参照インデックスL0(L0予測の参照インデックスともいう)と参照インデックスL1(L1予測の参照インデックスともいう)がある。動き補償予測が単予測であれば、参照インデックスは参照インデックスL0または参照インデックスL1のいずれか1つ利用され、動き補償予測が双予測であれば、参照インデックスL0と参照インデックスL1の2つの参照インデックスが利用される(図4)。
マージモードでは参照インデックスは符号化されない。これは、マージモードの参照インデックスは候補ブロック群から選択された候補ブロックの参照インデックスをそのまま引き継ぐか、あらかじめ定められた規則によって導出されるためである。
(参照ピクチャリスト)
本実施の形態では、動き補償予測で利用できる1以上の参照画像を参照ピクチャリスト内に登録しておき、参照ピクチャリスト内に登録された参照画像を参照インデックスで示すことによって参照画像を確定させて動き補償予測で利用する。参照ピクチャリストには、参照ピクチャリストL0(L0予測の参照ピクチャリストともいう)と参照ピクチャリストL1(L1予測の参照ピクチャリストともいう)がある。動き補償予測が単予測の場合は、参照ピクチャリストL0の中の参照画像を用いたL0予測、または参照ピクチャリストL1の中の参照画像を用いたL1予測のいずれかを利用する。双予測の場合は参照ピクチャリストL0と参照ピクチャリストL1の2つを利用したBI予測を利用する。
参照ピクチャリストの生成の詳細についてはAVCと同様に生成されるものとしてここでは説明しない。
なお、参照インデックスL0は参照ピクチャリストL0の参照画像を示し、参照インデックスL1は参照ピクチャリストL1の参照画像を示す。
(マージインデックス)
本実施の形態では、マージモードの場合には、処理対象画像内の複数の隣接ブロックおよび符号化済みの別の画像内の処理対象の予測ブロックと同一位置にある同一位置予測ブロック内と同一位置予測ブロックの周辺にあるブロックを候補ブロック群として、候補ブロック群の中から最適な予測符号化モード、動きベクトル、及び参照インデックスを持つ候補ブロックを選択し、選択した候補ブロックを示すためのマージインデックスを符号化および復号する。マージモードのときのみマージインデックスが1つ利用される(図4)。
ここでは、マージインデックスの最大個数(マージ候補最大数ともいう)はスライスヘッダで指定されるものとする。マージ候補最大数については後述する。なお、マージ候補最大数が5の場合のマージインデックスは0から4までの整数となる。
以降、マージインデックスの対象となる候補ブロックの動き情報を結合動き情報候補と呼び、結合動き情報候補の集合体を結合動き情報候補リストと呼ぶ。以降、動き情報とは予測方向、動きベクトル、及び参照インデックスを含む。
次に、マージインデックスと符号列の関係について説明する。図5はマージ候補最大数が5である場合のマージインデックスと符号列の関係を説明するための図である。マージインデックスの符号列としてTruncated Unary符号列を用いる。マージインデックスが0の場合の符号列は'0'、マージインデックスが1の場合の符号列は'10'、マージインデックスが2の場合の符号列は'110'、マージインデックスが3の場合の符号列は'1110'、マージインデックスが4の場合の符号列は'1111'となり、マージインデックスが小さくなるほど符号列が短くなるように設定される。そのため、選択率の高い候補ブロックに小さいマージインデックスを割り当てることで、符号化効率を向上させることができる。
マージ候補最大数が4である場合は、マージインデックスが0の場合の符号列は'0'、マージインデックスが1の場合の符号列は'10'、マージインデックスが2の場合の符号列は'110'、マージインデックスが3の場合の符号列は'111'となる。マージ候補最大数が3である場合は、マージインデックスが0の場合の符号列は'0'、マージインデックスが1の場合の符号列は'10'、マージインデックスが2の場合の符号列は'11'となる。マージ候補最大数が2である場合は、マージインデックスが0の場合の符号列は'0'、マージインデックスが1の場合の符号列は'1'となる。マージ候補最大数が1である場合は、マージインデックスが0は符号化ストリーム中には符号化されず、復号時にはマージインデックスは暗黙的に0として処理される。
次に、結合動き情報候補リストとマージインデックスの関係について説明する。マージインデックス0は結合動き情報候補リスト内の最初(0番目)の結合動き情報候補を示す。以下、マージインデックスmは結合動き情報候補リスト内のm番目の結合動き情報候補を示す。ここで、mは0から(マージ候補最大数−1)の整数となる。
(予測ベクトルインデックス)
本実施の形態では、予測ベクトルの精度を向上させるために、処理対象画像内の複数の隣接ブロックおよび符号化済みの別の画像の処理対象ブロックと同一位置にある同一位置予測ブロック内と同一位置予測ブロックの周辺にあるブロックを候補ブロック群として、候補ブロック群から予測ベクトルとして最適な動きベクトルを持つ候補ブロックを選択し、選択した候補ブロックを示すための予測ベクトルインデックスを符号化および復号する。動き補償予測が単予測であれば、予測ベクトルインデックスは1つ利用され、動き補償予測が双予測であれば、2つの予測ベクトルインデックスが利用される(図4)。予測ベクトルインデックスの最大数(予測ベクトル候補最大数ともいう)は2であり、予測ベクトルインデックスは0または1の整数となる。ここでは、予測ベクトル候補最大数を2としたが、2以上であればよく、これに限定されない。
次に、予測ベクトルインデックスと符号列の関係について説明する。予測ベクトルインデックスの符号列としてTruncated Unary符号列を用いる。
予測ベクトルインデックスの符号列は予測ベクトルインデックスが0の場合の符号列は'0'、予測ベクトルインデックスが1の場合の符号列は'1'とする。
以降、予測ベクトルインデックスの対象となる候補ブロックの動きベクトルを予測ベクトル候補と呼び、予測ベクトル候補の集合体を予測ベクトル候補リストと呼ぶ。予測ベクトルインデックス0は予測ベクトル候補リスト内の最初(0番目)の予測ベクトル候補を示す。以下、予測ベクトルインデックスmは予測ベクトル候補リスト内のm番目の予測ベクトル候補を示す。ここで、mは0から(予測ベクトル候補最大数−1)の整数となる。
(POC)
本発明の実施の形態では、画像の時間情報(距離情報)としてPOC(Picture Order Count)を用いる。POCはAVCで定義された画像の表示順序を示すカウンタである。ここでは、画像の表示順序が1増加するとPOCも1増加するとする。したがって、画像間のPOC差から画像間の時間差(距離)を取得できる。
(シンタックス)
本実施の形態による予測ブロックのシンタックスの一例について説明する。図6は本実施の形態に係るシンタックスを説明する図である。図6はPPS(Picture Parameter Set)、スライスヘッダ(Slice Header)、符号化木(Coding Tree)、符号化ブロック(Coding Unit)、及び予測ブロック(Prediction Unit)のシンタックス構成の一例を示す。
PPSはピクチャの特性を決定するためのパラメータ群を定義するパラメータセットである。PPSには時間候補利用許可フラグ(enable_temporal_mvp_flag)が設置される。時間候補利用許可フラグは0または1の値を1ビットの符号であって、ColPic上の動きベクトルと参照インデックスの利用を制限するためのフラグである。時間候補利用許可フラグが1であれば、ColPic上の動きベクトルと参照インデックスが利用可能となり、時間候補利用許可フラグが0であれば、ColPic上の動きベクトルと参照インデックスは利用不可能となる。
スライスヘッダはスライスの特性を決定するためのパラメータ群を定義したヘッダである。スライスヘッダにはPOCと5_minus_max_num_merge_candsが設置される。5_minus_max_num_merge_candsはマージ候補最大数を決定するためのパラメータであって、0から4までの整数となる。マージ候補最大数(MaxNumMergeCand)は5から5_minus_max_num_merge_candsを減算することで算出される。5_minus_max_num_merge_candsの符号列にはTruncated Unary符号列が用いられるとする。以下、5_minus_max_num_merge_candsは0で、マージ候補最大数は5とする。
符号化木では符号化ブロックの分割情報が管理される。符号化木にはsplit_coding_unit_flagが設置され、split_coding_unit_flagが1であれば符号化木は4個の符号化木に分割される。split_coding_unit_flagが0であれば符号化木は符号化ブロックとなる。
符号化ブロックには、スキップモードフラグ(skip_flag)、予測モード(pred_mode)と予測ブロックサイズタイプ(part_mode)が設置され、スキップモードフラグと予測ブロックサイズタイプに応じて1個または2個または4個の予測ブロックに分割される。
予測モードはイントラ予測(画面内予測)を行う符号化ブロックであるかインター予測(動き補償予測)を行う符号化ブロックであるかを示す。スキップモードフラグが1である場合はスキップモードとなって、スキップモードは1個の予測ブロックを持つ。符号化ブロック(符号化木)の分割回数は符号化ブロック(符号化木)の深さともいう。
予測ブロックには、マージフラグ(merge_flag)、マージインデックス(merge_idx)、インター予測タイプ(inter_pred_type)、L0予測の参照インデックス(ref_idx_l0)、L0予測の差分ベクトル(mvd_l0[0]、mvd_l0[1])、L0予測の予測ベクトルインデックス(mvp_idx_l0)、L1予測の参照インデックス(ref_idx_l1)、L1予測の差分ベクトル(mvd_l1[0]、mvd_l1[1])、及びL1予測の予測ベクトルインデックス(mvp_idx_l1)が設置されている。差分ベクトルの[0]は水平成分、[1]は垂直成分を示す。
ここで、inter_pred_typeは動き補償予測の予測方向(インター予測タイプとも呼ぶ)を示し、Pred_L0(L0予測の単予測)、Pred_L1(L1予測の単予測)およびPred_BI(BI予測の双予測)の3種類がある。inter_pred_typeがPred_L0またはPred_BIの場合は、L0予測に関する情報が設置されて、inter_pred_typeがPred_L1またはPred_BIの場合は、L1予測に関する情報が設置される。Pスライスではinter_pred_typeは一意にPred_L0となるため、inter_pred_typeは省略される。
また、スキップモードの場合、予測ブロックはインター予測を行う符号化ブロックであって、予測符号化モードとしてはマージモードとなる。そのため、スキップモードの場合はマージインデックスが設置される。
なお、本実施の形態に係るシンタックスを図6のように設定したが、符号化ブロックや予測ブロックが複数のブロックサイズを有し、マージモードと予測ベクトルモードが利用できればよく、これに限定されない。
以下、図面とともに本発明の好適な実施の形態に係る動画像符号化装置、動画像符号化方法および動画像符号化プログラム、ならびに動画像復号装置、動画像復号方法および動画像復号プログラムの詳細について説明する。なお、図面の説明において同一要素には同一符号を付与して重複する説明を省略する。
(動画像符号化装置100の構成)
図7は、本実施の形態1に係る動画像符号化装置100の構成を示す。動画像符号化装置100は、動画像信号を、動き補償予測を実施する予測ブロック単位で符号化する装置である。マージ候補最大数の決定、参照ピクチャリストの生成、符号化ブロックの分割、スキップモードの決定、予測ブロックサイズタイプの決定、予測ブロックサイズと予測ブロックの符号化ブロック内の位置(予測ブロックの位置情報や予測ブロック番号ともいう)の決定、予測符号化モードがイントラであるかの決定は動画像符号化装置100の外部の符号化制御部112で決定されて動画像符号化装置100に供給される。実施の形態1では予測符号化モードがイントラでない場合について説明する。また、実施の形態1では特に断らない限り、双予測に対応したBピクチャ(Bスライス)について説明するが、双予測に対応しないPピクチャ(Pスライス)についてはL1予測を省略すればよい。
動画像符号化装置100は、CPU(Central Processing Unit)、フレームメモリ、ハードディスクなどを備える情報処理装置などのハードウェアにより実現される。動画像符号化装置100は、上記の構成要素が動作することにより、以下に説明する機能的な構成要素を実現する。なお、参照ピクチャリスト、処理対象の予測ブロックの位置情報、予測ブロックサイズおよび動き補償予測の予測方向に関しては動画像符号化装置100内で共有していることとし、図示しない。
実施の形態1の動画像符号化装置100は、予測ブロック画像取得部101、減算部102、予測誤差符号化部103、符号列生成部104、予測誤差復号部105、動き補償部106、加算部107、動きベクトル検出部108、動き情報生成部109、フレームメモリ110、および動き情報メモリ111を含む。
(動画像符号化装置100の機能と動作)
以下、各部の機能と動作について説明する。予測ブロック画像取得部101は、予測ブロックの位置情報と予測ブロックサイズに基づいて、端子10より供給される画像信号から処理対象の予測ブロックの画像信号を取得し、予測ブロックの画像信号を減算部102、動きベクトル検出部108および動き情報生成部109に供給する。
動きベクトル検出部108は、予測ブロック画像取得部101より供給される画像信号および内部に記憶している複数の参照画像に相当する画像信号から、L0予測とL1予測それぞれの動きベクトルと参照画像を示す参照インデックスを検出する。当該L0予測とL1予測の動きベクトル、および当該L0予測とL1予測の参照インデックスを動き情報生成部109に供給する。ここでは、動きベクトル検出部108は参照画像として内部に記憶している複数の参照画像に相当する画像信号を利用するとしたが、フレームメモリ110に記憶されている参照画像を利用することもできる。
一般的な動きベクトルの検出方法は、対象画像の画像信号と、同一位置より所定の移動量だけ移動させた参照画像の予測信号について誤差評価値を算出し、誤差評価値が最小となる移動量を動きベクトルとする。参照画像が複数ある場合には各参照画像について動きベクトルを検出し、誤差評価値が最小となる参照画像を選択する。誤差評価値としては、絶対差分和を示すSAD(Sum of Absolute Difference)や二乗誤差平均を示すMSE(Mean Square Error)などを利用することが可能である。また、動きベクトル符号量を誤差評価値に加算して評価することも可能である。
動き情報生成部109は、動きベクトル検出部108より供給されるL0予測とL1予測の動きベクトルおよびL0予測とL1予測の参照インデックス、動き情報メモリ111より供給される候補ブロック群、参照インデックスで示されるフレームメモリ110内の参照画像、および予測ブロック画像取得部101より供給される画像信号から、予測符号化モードを決定する。
決定された予測符号化モードに基づいて、マージフラグ、マージインデックス、動き補償予測の予測方向、L0予測とL1予測の参照インデックス、L0予測とL1予測の差分ベクトルおよびL0予測とL1予測の予測ベクトルインデックスを必要に応じて、符号列生成部104に供給する。動き補償予測の予測方向、L0予測とL1予測の参照インデックス、およびL0予測とL1予測の動きベクトルを動き補償部106および動き情報メモリ111に供給する。動き情報生成部109の詳細については後述する。
動き補償部106は、動き情報生成部109より供給される動き補償予測の予測方向がLN予測であれば、動き情報生成部109より供給されるLN予測の参照インデックスで示されるフレームメモリ110内の参照画像を、動き情報生成部109より供給されるLN予測の動きベクトルに基づき動き補償してLN予測の予測信号を生成する。Nは0または1である。ここで、動き補償予測の予測方向が双予測であれば、L0予測とL1予測の予測信号の平均値が予測信号となる。なお、L0予測とL1予測の予測信号を重みづけしてもよい。動き補償部106は、当該予測信号を減算部102に供給する。
減算部102は、予測ブロック画像取得部101より供給される画像信号と動き補償部106より供給される予測信号を減算して予測誤差信号を算出し、当該予測誤差信号を予測誤差符号化部103に供給する。
予測誤差符号化部103は、減算部102より供給される予測誤差信号に対して、直交変換や量子化などの処理を行って予測誤差符号化データを生成し、当該予測誤差符号化データを符号列生成部104および予測誤差復号部105に供給する。
符号列生成部104は、予測誤差符号化部103より供給される予測誤差符号化データ、ならびに動き情報生成部109より供給されるマージフラグ、マージインデックス、動き補償予測の予測方向(インター予測タイプ)、L0予測とL1予測の参照インデックス、L0予測とL1予測の差分ベクトルおよびL0予測とL1予測の予測ベクトルインデックスを図6に示すシンタックスの順序に従ってエントロピー符号化して符号列を生成し、当該符号列を符号化ストリームとして端子11に供給する。エントロピー符号化は算術符号化やハフマン符号化などの可変長符号化を含む方法によって実施される。
また、符号列生成部104は、動画像符号化装置100で利用された符号化ブロックの分割情報、予測ブロックサイズタイプ、予測ブロックの符号化ブロック内の位置、及び予測符号化モードを、符号化ストリームの特性を決定するためのパラメータ群を定義したSPS(Sequence Parameter Set)、ピクチャの特性を決定するためのパラメータ群を定義したPPS(Picture Parameter Set)、やスライスの特性を決定するためのパラメータ群を定義したスライスヘッダなどと共に符号化ストリーム中に多重化する。
予測誤差復号部105は、予測誤差符号化部103より供給される予測誤差符号化データに対して、逆量子化や逆直交変換などの処理を行って予測誤差信号を生成し、当該予測誤差信号を加算部107に供給する。加算部107は、予測誤差復号部105より供給される予測誤差信号と、動き補償部106より供給される予測信号を加算して復号画像信号を生成し、当該復号画像信号をフレームメモリ110に供給する。
フレームメモリ110は、加算部107より供給される復号画像信号を記憶する。また、画像全体の復号が完了した復号画像については参照画像として、当該参照画像のPOCと共に1以上の所定の画像数を記憶する。フレームメモリ110は、記憶した参照画像信号を動き補償部106および動き情報生成部109に供給する。参照画像を記憶する記憶領域はFIFO(First In First Out)方式で制御される。ここでは、参照画像のPOCをフレームメモリ110に記憶するとしたが、参照画像とPOCが一意に認識できればよく、これに限定されない。また、POCは動画像符号化装置100と符号化制御部112で共有されているものとして図示しない。
動き情報メモリ111は、動き情報生成部109より供給される動き情報を最小の予測ブロックサイズ単位で所定の画像数、記憶する。処理対象の予測ブロックの隣接ブロックの動き情報を空間候補ブロック群とする。
また、動き情報メモリ111は、処理対象の予測ブロックと同一位置にあるColPic上の同一位置予測ブロック内とその周辺ブロックの動き情報を時間候補ブロック群とする。動き情報メモリ111は、空間候補ブロック群と時間候補ブロック群を候補ブロック群として動き情報生成部109に供給する。動き情報メモリ111は、フレームメモリ110と同期しており、FIFO(First In First Out)方式で制御される。
ここで、ColPicとは、処理対象の予測ブロックのある画像とは別の復号済みの画像であって、フレームメモリ110に参照画像として記憶されている。実施の形態1では、ColPicは処理対象画像の直前に復号した参照画像とする。なお、実施の形態1では、ColPicは処理対象画像の直前に復号した参照画像としたが、復号済みの画像であればよく、例えば、表示順で直前の参照画像や表示順で直後の参照画像でもよく、L0予測またはL1予測の参照ピクチャリストの0番目の参照画像としてもよく、符号化ストリーム中で指定することも可能である。
ここで、動き情報メモリ111における動き情報の管理方法について説明する。動き情報は最小の予測ブロック単位で各メモリエリアに記憶される。各メモリエリアには、少なくとも予測方向、L0予測の動きベクトル、L0予測の参照インデックス、L1予測の動きベクトル、およびL1予測の参照インデックスが記憶される。
なお、予測符号化モードがイントラモードである場合、L0予測とL1予測の動きベクトルとして(0,0)が記憶され、L0予測とL予測の参照インデックスとして「−1」が記憶される。これ以降、動きベクトルの(H、V)は、Hが水平成分、Vが垂直成分を表すこととする。なお、参照インデックスの「−1」は動き補償予測を実施しないモードであることが判定できればどのような値でもよい。これ以降は特に断らない限り単にブロックと表現する場合には、最小の予測ブロック単位のことを示すこととする。また、領域外のブロックである場合もイントラモードと同様に、L0予測とL1予測の動きベクトルとして(0,0)が記憶され、L0予測とL1予測の参照インデックスとして「−1」が記憶される。LX方向(Xは0または1)が有効であるとはLX方向の参照インデックスが0以上であることで、LX方向が無効である(有効でない)とはLX方向の参照インデックスが「−1」であることである。
(動き情報生成部109の構成)
続いて、動き情報生成部109の詳細な構成について説明する。図8は、動き情報生成部109の構成を示す。動き情報生成部109は、予測ベクトルモード決定部120、マージモード決定部121および予測符号化モード決定部122を含む。端子12は動き情報メモリ111に、端子13は動きベクトル検出部108に、端子14はフレームメモリ110に、端子15は予測ブロック画像取得部101に、端子16は符号列生成部104に、端子50は動き補償部106に、および端子51は動き情報メモリ111にそれぞれ接続されている。
(動き情報生成部109の機能と動作)
以下、各部の機能と動作について説明する。予測ベクトルモード決定部120は、端子12より供給される候補ブロック群、端子13より供給されるL0予測とL1予測の動きベクトルおよびL0予測とL1予測の参照インデックス、端子14より供給される参照インデックスで示される参照画像、および端子15より供給される画像信号から、インター予測タイプを決定し、インター予測タイプに従って、L0予測とL1予測の予測ベクトルインデックスを選択してL0予測とL1予測の差分ベクトルを算出するとともに、予測誤差を算出し、レート歪み評価値を算出する。そして、当該インター予測タイプに基づいた動き情報、差分ベクトル、予測ベクトルインデックス、およびレート歪み評価値を予測符号化モード決定部122に供給する。予測ベクトルモード決定部120の詳細については後述する。
マージモード決定部121は、端子12より供給される候補ブロック群、端子14より供給される参照画像、および端子15より供給される画像信号から、結合動き情報候補リストを生成し、当該結合動き情報候補リストの中から1つの結合動き情報候補を選択してマージインデックスを決定し、レート歪み評価値を算出する。そして、当該結合動き情報候補の動き情報、当該マージインデックスおよび当該レート歪み評価値を予測符号化モード決定部122に供給する。マージモード決定部121の詳細については後述する。
予測符号化モード決定部122は、予測ベクトルモード決定部120より供給されるレート歪み評価値と、マージモード決定部121より供給されるレート歪み評価値とを比較してマージフラグを決定する。
予測ベクトルモードレート歪み評価値がマージモードレート歪み評価値未満の場合は、マージフラグを「0」に設定する。予測符号化モード決定部122は、当該マージフラグ、予測ベクトルモード決定部120より供給されるインター予測タイプ、参照インデックス、差分ベクトルと予測ベクトルインデックスを端子16に供給し、予測ベクトルモード決定部120より供給される動き情報を端子50および端子51に供給する。
マージモードレート歪み評価値が予測ベクトルモードレート歪み評価値以下の場合は、マージフラグを「1」に設定する。予測符号化モード決定部122は、当該マージフラグおよびマージモード決定部121より供給されるマージインデックスを端子16に供給し、マージモード決定部121より供給される動き情報を端子50および端子51に供給する。なお、レート歪み評価値の具体的な算出方法は本発明の主眼ではないため詳細な説明は省略するが、予測誤差と符号量から符号量当たりの予測誤差量を算出し、レート歪み評価値が小さいほど符号化効率は高くなる特性を持つ評価値である。そのため、レート歪み評価値が小さい予測符号化モードを選択することで符号化効率を向上させることができる。
(マージモード決定部121の構成)
続いて、マージモード決定部121の詳細な構成について説明する。図9は、マージモード決定部121の構成を説明する図である。マージモード決定部121は、結合動き情報候補リスト生成部140および結合動き情報選択部141を含む。結合動き情報候補リスト生成部140は、実施の形態1に係る動画像符号化装置100により生成された符号列を復号する動画像復号装置200にも同様に設置されて、動画像符号化装置100と動画像復号装置200にて同一の結合動き情報リストが生成される。
(マージモード決定部121の機能と動作)
以下、各部の機能と動作について説明する。図10は、マージモード決定部121の動作を説明するフローチャートである。結合動き情報候補リスト生成部140は、端子12より供給される候補ブロック群からマージ候補最大数の結合動き情報候補を含む結合動き情報候補リストを生成し(S100)、当該結合動き情報候補リストを結合動き情報選択部141に供給する。結合動き情報候補リスト生成部140の詳細な構成については後述する。
結合動き情報選択部141は、結合動き情報候補リスト生成部140より供給される結合動き情報候補リストの中から、最適な結合動き情報候補を選択し(S101)、選択された結合動き情報候補を示す情報であるマージインデックスを決定して(S102)、当該マージインデックスを端子17に供給する。
ここで、最適な結合動き情報候補の選択方法について説明する。結合動き情報候補の予測方向、動きベクトルおよび参照インデックスに基づいて動き補償予測されて得られる端子14より供給される参照画像と、端子15より供給される画像信号とから予測誤差量が算出される。マージインデックスの符号量と、当該予測誤差量とからレート歪み評価値が算出されて、レート歪み評価値が最小となる結合動き情報候補が最適な結合動き情報候補として選択される。
(結合動き情報候補リスト生成部140の構成)
続いて、結合動き情報候補リスト生成部140の詳細な構成について説明する。図11は、結合動き情報候補リスト生成部140の構成を説明するための図である。端子19は結合動き情報選択部141に接続されている。結合動き情報候補リスト生成部140は、空間結合動き情報候補導出部160、時間結合動き情報候補導出部161、結合動き情報候補リスト構築部162、冗長結合動き情報候補削除部163、第1結合動き情報候補補充部164、および第2結合動き情報候補補充部165を含む。
(結合動き情報候補リスト生成部140の機能と動作)
以下、各部の機能と動作について説明する。図12は、結合動き情報候補リスト生成部140の動作を説明するためのフローチャートである。
最初に、空間結合動き情報候補導出部160は、端子12より供給される空間候補ブロック群から0個から空間結合動き情報候補最大数の空間結合動き情報候補を導出し(S110)、当該空間結合動き情報候補を結合動き情報候補リスト構築部162に供給する。空間結合動き情報候補導出部160の詳細な動作については後述する。また、空間結合動き情報候補最大数についても後述する。
次に、結合動き情報候補リスト生成部140は、時間候補利用許可フラグ(enable_temporal_mvp_flag)が1であるか検査する(S111)。
時間候補利用許可フラグが1であれば(S111のY)、時間結合動き情報候補導出部161は、端子12より供給される時間候補ブロック群から0個から時間結合動き情報候補最大数の時間結合動き情報候補を導出し(S112)、当該時間結合動き情報候補を結合動き情報候補リスト構築部162に供給する。時間結合動き情報候補導出部161の詳細な動作については後述する。
時間候補利用許可フラグが0であれば(S111のN)、スキップS112をスキップする。
次に、結合動き情報候補リスト構築部162は0個から空間結合動き情報候補最大数の空間結合動き情報候補と0個から時間結合動き情報候補最大数の時間結合動き情報候補から結合動き情報候補リストを構築する(S113)。ここでは、結合動き情報候補リストには導出された順序で空間結合動き情報候補と時間結合動き情報候補が順次登録されるものとする。
次に、冗長結合動き情報候補削除部163は、結合動き情報候補リスト構築部162より供給される結合動き情報候補リストに登録されている結合動き情報候補を検査し、同一の動き情報を有する結合動き情報候補が複数存在する場合には1つの結合動き情報候補を残してその他の結合動き情報候補を削除し(S114)、当該結合動き情報候補リストを第1結合動き情報候補補充部164に供給する。ここで、当該結合動き情報候補リストに登録されている結合動き情報候補は全てが異なる結合動き情報候補となる。
次に、第1結合動き情報候補補充部164は、冗長結合動き情報候補削除部163より供給される結合動き情報候補リストに登録された結合動き情報候補から0個から2個の第1補充結合動き情報候補を導出してマージ候補最大数を超えないように結合動き情報候補リストに追加し(S115)、当該結合動き情報候補リストを第2結合動き情報候補補充部165に供給する。第1結合動き情報候補補充部164の詳細な動作については後述する。
次に、第2結合動き情報候補補充部165は、第1結合動き情報候補補充部164より供給される結合動き情報候補リストに登録された結合動き情報候補の数がマージ候補最大数に達するまで第2補充結合動き情報候補を導出して当該結合動き情報候補リストに追加し(S116)、当該結合動き情報候補リストを端子19に供給する。第2結合動き情報候補補充部165の詳細な動作については後述する。
以上のように、結合動き情報候補リスト生成部140は結合動き情報候補リストを生成する。
(ブロック群について)
以降、予測ブロックの候補ブロック群について説明する。図13は予測ブロックの空間候補ブロック群について説明する図である。図13(a)は符号化ブロックの大きさが16画素×16画素で予測ブロックサイズタイプが2Nx2Nである場合の予測ブロックサイズの空間候補ブロック群を示す。
空間候補ブロック群は、予測ブロックの左下の画素の左に位置するブロックA、予測ブロックの右上の画素の上に位置するブロックB、予測ブロックの右上の画素の右斜め上に位置するブロックC、予測ブロックの左下の画素の左斜め下に位置するブロックE、及び予測ブロックの左上の画素の左斜め上に位置するブロックDの5個とする。
時間候補ブロック群は、ColPicの所定領域の代表ブロックであるブロックHとブロックIの2個とする。処理対象の予測ブロックの左上の画素の位置を(x,y)、処理対象の予測ブロックの幅と高さをそれぞれPUW、PUHとすると、((((x+PUW)>>4)<<4),(((y+PUH)>>4)<<4))となる画素の位置をブロックの左上の画素の位置として含むColPic上のブロックを時間候補ブロックHとする。ここで、>>は右方向のビットシフト、<<は左方向のビットシフトである。
同様に、(x+(PUW>>1),y+(PUH>>1))となる画素の位置をブロックの左上の画素の位置として含むColPic上のブロックを時間候補ブロックIとする。
このように、時間候補ブロックをColPicの所定領域(ここでは16画素×16画素の領域)の代表ブロックとすることで、ColPicが記憶すべき動きベクトルと参照インデックスを削減できる。1画像で記憶する動きベクトルと参照インデックスを削減することで、複数の復号済み画像をColPicの対象とすることが可能となるため、予測効率を向上させる効果がある。
なお、予測ブロックサイズタイプが2N×2Nではない符号化ブロックにおける予測ブロックに対しても予測ブロックサイズタイプが2N×2Nである符号化ブロックの予測ブロックと同じ位置関係を適用するものとする。図13(b)は符号化ブロックの大きさが8画素×8画素で予測ブロックサイズタイプが2NxNである場合の空間候補ブロック群を示す。
ここでは、ブロックAを予測ブロックの左下の画素の左に位置するブロックとしたが、予測ブロックの左辺に接していればよく、これに限定されない。また、ブロックBを予測ブロックの右上の画素の上に位置するブロックとしたが、予測ブロックの上辺に接していればよく、これに限定されない。また、時間候補ブロック群をブロックHとブロックIの2個としたが、同一位置予測ブロック内と同一位置予測ブロックの周辺にあるブロックであればよく、これに限定されない。
(空間結合動き情報候補導出部160の詳細な動作)
続いて、空間結合動き情報候補導出部160の詳細な動作について説明する。図14は、空間結合動き情報候補導出部160の動作を説明するためのフローチャートである。空間結合動き情報候補導出部160は、候補ブロック群の空間候補ブロック群に含まれる候補ブロックであるブロックA、ブロックB、ブロックC、ブロックE、ブロックDの順に以下の処理を繰り返し行う(S120からS124)。
最初に、候補ブロックが有効であるか検査する(S121)。候補ブロックが有効であるとは、候補ブロックのL0予測とL1予測の参照インデックスの少なくとも一方が0以上であることである。候補ブロックが有効であれば(S121のY)、候補ブロックの動き情報を空間結合動き情報候補として導出する(S122)。候補ブロックが有効でなければ(S121のN)、次の候補ブロックを検査し(S124)、全ての候補ブロックの検査が終了すれば、処理を終了する。ステップS122に続いて、導出した空間結合動き情報候補の数が空間結合動き情報候補最大数であるか検査する(S123)。導出した空間結合動き情報候補の数が空間結合動き情報候補最大数でなければ(S123のN)、次の候補ブロックを検査する(S124)。導出した空間結合動き情報候補の数が空間結合動き情報候補最大数であれば(S123のY)、処理を終了する。
続いて、空間結合動き情報候補最大数について説明する。図15は空間結合動き情報候補最大数の設定の動作を説明するフローチャートである。ここでは、空間結合動き情報候補導出部160が空間結合動き情報候補最大数を時間候補利用許可フラグ(enable_temporal_mvp_flag)に応じて変更する。最初に、時間候補利用許可フラグが1であるか検査する(S131)。時間候補利用許可フラグが1であれば(S131のY)、空間結合動き情報候補最大数を4に設定し(S132)、処理を終了する。時間候補利用許可フラグが0であれば(S131のN)、空間結合動き情報候補最大数を5に設定し(S133)、処理を終了する。
ここでは、空間結合動き情報候補導出部160が空間結合動き情報候補最大数を設定するとしたが、符号化制御部112や後述する復号制御部208で設定してもよい。
ここで、空間結合動き情報候補が空間方向の連続性を基づいて導出されるのに対し、時間結合動き情報候補は時間方向の連続性に基づいて導出されており、これらの性質は異なるものである。そのため、時間候補利用許可フラグが1である場合にマージ候補最大数よりも空間結合動き情報候補最大数が小さくなるように設定し、時間結合動き情報候補が導出された場合には時間結合動き情報候補の動き情報が常に結合動き情報候補リストに登録されるようにすることで、時間方向の連続性の高い動画像においてマージモードの選択率を高めて符号化効率を向上させることができる。
以上のように、時間候補利用許可フラグが1であれば、マージ候補最大数よりも空間結合動き情報候補最大数が小さくなるように設定されるため、ブロックA、ブロックB、ブロックC、及びブロックEが全て有効であれば、ブロックDは空間結合動き情報候補とはなり得ない。そこで、時間候補利用許可フラグが0である場合には、時間候補利用許可フラグが1である場合よりも空間結合動き情報候補最大数を大きくし、マージ候補最大数と等しくなるようにすることで、相対的に第1補充結合動き情報候補や第2補充結合動き情報候補よりも選択率の高くなるブロックDを空間結合動き情報候補として導出し、結合動き情報候補リストに追加することで、時間結合動き情報候補を利用できない条件においても符号化効率を向上させることができる。
例えば、時間結合動き情報候補が利用できないIピクチャ直後のPピクチャやBスライスにおいて時間候補利用許可フラグを0とすることで符号化効率を向上させることができる。
(時間結合動き情報候補導出部161の詳細な動作)
続いて、時間結合動き情報候補導出部161の詳細な動作について説明する。図16は、時間結合動き情報候補導出部161の動作を説明するためのフローチャートである。L0予測とL1予測の各予測方向LXについて以下の処理を繰り返し行う(S140からS147)。ここで、Xは0または1である。また、候補ブロック群の時間候補ブロック群に含まれる候補ブロックであるブロックH、ブロックIの順に以下の処理を繰り返し行う(S141からS146)。
時間結合動き情報候補導出部161は、候補ブロックのLN予測が有効であるか検査する(S142)。ここで、Nは0または1である。ここでは、NはXと同じであるとする。候補ブロックのLN予測が有効であるとは、候補ブロックのLN予測の参照インデックスが0以上であることである。候補ブロックのLN予測が有効であれば(S142のY)、候補ブロックのLN予測の動きベクトルをLX予測の基準動きベクトルとする(S143)。候補ブロックのLN予測が有効でなければ(S142のN)、ステップ123からステップ126をスキップして次の候補ブロックを検査し(S146)、全ての候補ブロックの検査が終了すると、次の予測方向を処理する(S147)。
ステップS143に続いて、時間結合動き情報候補のLX予測の参照画像を決定する(S144)。ここでは、時間結合動き情報候補のLX予測の参照画像は、LX予測の参照インデックス0の参照画像とする。次に、基準動きベクトルを処理対象画像と時間結合動き情報候補のLX予測の参照画像の距離に合うようにスケーリングして時間結合動き情報候補のLX予測の動きベクトルを算出し(S145)、次の予測方向を処理する(S147)。時間結合動き情報候補のLX予測の動きベクトルの具体的な算出式については後述する。
L0予測とL1予測について処理が終了したステップS147に続いて、時間結合動き情報候補のL0予測とL1予測の少なくとも一方の予測が有効であるか検査する(S148)。時間結合動き情報候補のL0予測とL1予測の少なくとも一方の予測が有効であれば(S148のY)、時間結合動き情報候補のインター予測タイプを決定して時間結合動き情報候補を導出する(S149)。
ここでは、インター予測タイプの決定は、L0予測だけが有効であれば、時間結合動き情報候補のインター予測タイプをPred_L0とし、L1予測だけが有効であれば、時間結合動き情報候補のインター予測タイプをPred_L1とし、L0予測とL1予測の両方が有効であれば、時間結合動き情報候補のインター予測タイプをPred_BIとする。
続いて、時間結合動き情報候補のLX予測の動きベクトルの算出式について説明する。時間候補ブロックを有するColPicと時間候補ブロックがLX予測の動き補償予測で参照するピクチャであるColRefLXPicの画像間距離をtd、時間結合動き情報候補のLX予測の参照画像RefLXPicと処理対象画像CurPicの画像間距離をtb、LX予測の基準動きベクトルをmvLXとすると、時間結合動き情報候補のLX予測の動きベクトルmvLXColは式1より算出される。式1より時間結合動き情報候補のLX予測の動きベクトルの算出にはtbとtdを算出するための減算と、除算、及び乗算が必要となることがわかる。
mvLXCol = tb / td * mvLX; 式1
浮動小数点演算の簡略化のために整数演算とする場合には例えば、式2から式4のように展開して利用してもよい。Abs(v)は値vの絶対値を算出する関数、Clip3(uv,lv,v)は値vを下限lvから上限uvまでに制限する関数、Sign(v)は値vが0以上であれば1を値vが0より小さい場合は−1を返す関数である。>>は右方向のビットシフトを、<<は左方向のビットシフトを表す。
tx = (16384+Abs(td/2) ) / td; 式2
DistScaleFactor = Clip3( -1024, 1023, ( tb * tx + 32 ) >> 6 ); 式3
mvLXCol = Sign( DistScaleFactor * mvLX ) * ( (Abs( DistScaleFactor * mvLX ) + 127 ) >> 8 ); 式4
ここでは、時間結合動き情報候の最大数である時間結合動き情報候補最大数を1とした。そのため、図16には空間結合動き情報候補導出部160の動作を説明するフローチャートである図16で示したステップS123に相当する処理を省略したが、時間結合動き情報候補最大数が2以上である場合にはステップS149の後にステップS123に相当する処理を追加することもできる。
ここでは、NはXと同じであるとしたが、NはXと異なっていても良く、これに限定されない。
(第1結合動き情報候補補充部164の詳細な動作)
続いて、第1結合動き情報候補補充部164の詳細な動作について説明する。図17は、第1結合動き情報候補補充部164の動作を説明するためのフローチャートである。最初に、結合動き情報候補リストに登録された結合動き情報候補の数(NumCandList)とマージ候補最大数(MaxNumMergeCand)から、第1補充結合動き情報候補を導出する最大数であるMaxNumGenCandを式5より算出する(S170)。
MaxNumGenCand=MaxNumMergeCand-NumCandList; (NumCandList>1)
MaxNumGenCand=0; (NumCandList=>1) 式5
次に、MaxNumGenCandが0より大きいか検査する(S171)。MaxNumGenCandが0より大きくなければ(S171のN)、処理を終了する。MaxNumGenCandが0より大きければ(S171のY)、以下の処理を行う。まず、組み合わせ検査回数であるloopTimesを決定する。loopTimesはNumCandList×NumCandListに設定する。ただし、loopTimesが8を超える場合にはloopTimesは8に制限する(S172)。ここで、loopTimesは0から7までの整数となる。loopTimesだけ以下の処理を繰り返し行う(S172からS180)。結合動き情報候補Mと結合動き情報候補Nの組み合わせを決定する(S173)。ここで、組み合わせ検査回数と結合動き情報候補Mと結合動き情報候補Nの関係について説明する。図18は組み合わせ検査回数と結合動き情報候補Mと結合動き情報候補Nの関係を説明するための図である。図18のようにMとNは異なる値であって、MとNの合計値が小さくなる順に設定される。結合動き情報候補MのL0予測が有効で且つ結合動き情報候補NのL1予測が有効であるか検査する(S174)。結合動き情報候補MのL0予測が有効で且つ結合動き情報候補NのL1予測が有効であれば(S174のY)、結合動き情報候補MのL0予測の参照画像と動きベクトルが結合動き情報候補NのL1予測の参照画像と動きベクトルと異なるか検査する(S175)。結合動き情報候補MのL0予測が有効で且つ結合動き情報候補NのL1予測が有効でなければ(S174のN)、次の組み合わせを処理する。結合動き情報候補MのL0予測の参照画像と結合動き情報候補NのL1予測の参照画像が異なれば(S175のY)、結合動き情報候補MのL0予測の動きベクトルと参照画像を結合動き情報候補NのL1予測の動きベクトルと参照画像と組み合わせてインター予測タイプがPred_BIである双結合動き情報候補を導出する(S176)。ここでは、第1補充結合動き情報候補として、ある結合動き情報候補のL0予測とそれとは異なる結合動き情報候補のL1予測の動き情報を組み合わせた双結合動き情報を導出する。結合動き情報候補MのL0予測の参照画像と結合動き情報候補NのL1予測の参照画像が同じであれば(S175のN)、次の組み合わせを処理する。ステップS176に続いて、双結合動き情報候補を結合動き情報候補リストに追加する(S178)。ステップS178に続いて、導出(生成)した双結合動き情報の数がMaxNumGenCandであるか検査する(S179)。導出された双結合動き情報の数がMaxNumGenCandであれば(S179のY)、処理を終了する。導出された双結合動き情報の数がMaxNumGenCandでなければ(S179のN)、次の組み合わせを処理する(S180)。全ての組み合わせの処理が終了すれば処理を終了する。
ここでは、第1補充結合動き情報候補を、結合動き情報候補リストに登録されたある結合動き情報候補のL0予測の動きベクトルと参照画像を、別の結合動き情報候補のL1予測の動きベクトルと参照画像と組み合わせて、動き補償予測の方向が双方向である双結合動き情報候補としたが、これに限定されない。例えば、結合動き情報候補リストに登録されたある結合動き情報候補のL0予測の動きベクトルとL1予測の動きベクトルに+1などのオフセット値を加えた動き補償予測の方向が双方向である結合動き情報候補、結合動き情報候補リストに登録されたある結合動き情報候補のL0予測の動きベクトルまたはL1予測の動きベクトルに+1などのオフセット値を加えた双予測である結合動き情報候補としてもよい。
ここで、第1補充結合動き情報候補は、結合動き情報候補リストに登録された結合動き情報候補の動き情報と処理対象の動き情報候補の動きに微妙にずれがある場合に、結合動き情報候補リストに登録された結合動き情報候補の動き情報を修正して新たな有効となる結合動き情報候補を導出することで、符号化効率を高めることができる。
(第2結合動き情報候補補充部165の詳細な動作)
続いて、第2結合動き情報候補補充部165の詳細な動作について説明する。図19は、第2結合動き情報候補補充部165の動作を説明するためのフローチャートである。最初に、第1結合動き情報候補補充部164より供給される結合動き情報候補リストに登録された結合動き情報候補の数とマージ候補最大数から、第2補充結合動き情報候補を導出する最大数であるMaxNumGenCandを式6より算出する(S190)。
MaxNumGenCand=MaxNumMergeCand-NumCandList; 式6
次に、以下の処理をiについてMaxNumGenCand回繰り返し行う(S191からS195)。ここで、iは0からMaxNumGenCand−1の整数となる。L0予測の動きベクトルが(0,0)、L0予測の参照インデックスがiであって、L1予測の動きベクトルが(0,0)、L1予測の参照インデックスがiであるインター予測タイプがPred_BIである第2補充結合動き情報候補を導出し(S192)、当該第2補充結合動き情報候補を結合動き情報候補リストに追加する(S193)。次に、次のiについて処理する(S194)。全てのiについて処理が終了すれば処理を終了する。
ここでは、第2補充結合動き情報候補を、L0予測の動きベクトルが(0,0)、参照インデックスがiであって、L1予測の動きベクトルが(0,0)、参照インデックスがiであるインター予測タイプがPred_BIである結合動き情報候補とした。これは、一般的な動画像において、L0予測の動きベクトルとL1予測の動きベクトルが(0,0)である結合動き情報候補の発生頻度が統計的に高いためである。結合動き情報候補リストに登録された結合動き情報候補の動き情報に依存せず、統計的に利用頻度が高い結合動き情報候補であれば、これに限定されない。例えば、L0予測やL1予測の動きベクトルはそれぞれ(0,0)以外のベクトル値でもよく、L0予測とL1予測の参照インデックスが異なるように設定してもよい。また、第2補充結合動き情報候補を符号化済みの画像や符号化済みの画像の一部の発生頻度の高い動き情報とし、符号化ストリームに符号化して伝送して設定することもできる。なお、ここではBピクチャ(Bスライス)について説明したが、Pピクチャ(Pスライス)の場合は、L0予測の動きベクトルが(0,0)で、インター予測タイプがPred_L0である第2補充結合動き情報候補を導出する。
ここで、第2補充結合動き情報候補として結合動き情報候補リストに登録された結合動き情報候補に依存しない結合動き情報候補を設定することで、結合動き情報候補リストに登録された結合動き情報候補が0個である場合に、マージモードを利用することを可能とし、符号化効率を向上させることができる。また、結合動き情報候補リストに登録された結合動き情報候補の動き情報と処理対象の動き情報候補の動きが異なる場合に、新たな結合動き情報候補を導出して選択肢の幅を広げることで、符号化効率を向上させることができる。
以上のように、時間候補利用許可フラグが0である場合には、ブロックDの動き情報を他の結合動き情報候補の動き情報と組み合わせて新たな動き情報を導出したり、第5の空間結合動き情報候補の動き情報を修正して新たな動き情報を導出することで、第2補充結合動き情報候補よりも相対的に選択率の高い第1補充結合動き情報候補を結合動き情報候補リストに追加することで、符号化効率を高めることができる。
また、時間候補利用許可フラグが1である場合には、時間結合動き情報候補の動き情報を他の結合動き情報候補の動き情報と組み合わせて新たな動き情報を導出したり、時間結合動き情報候補の動き情報を修正して新たな動き情報を導出することで、第2補充結合動き情報候補よりも相対的に選択率の高い第1補充結合動き情報候補を結合動き情報候補リストに追加することで、符号化効率を高めることができる。
特に、双結合動き情報候補を利用する場合には少なくとも2つの結合動き情報候補が必要となるため、結合動き情報候補リストにブロックDまたは時間結合動き情報候補以外の結合動き情報候補が1個しか登録されていない場合に、第2補充結合動き情報候補よりも相対的に選択率の高い第1補充結合動き情報候補が導出されるため、符号化効率を高めることができる。
ここでは、空間候補ブロック群を5個、時間候補ブロック群を2個、マージ候補最大数の上限を5とし、空間結合動き情報候補最大数を4または5、時間結合動き情報候補最大数を1としたが、時間候補利用許可フラグが0である場合に時間候補利用許可フラグが1である場合よりも空間結合動き情報候補最大数を大きくできればよく、これに限定されない。
また、ここでは、時間候補利用許可フラグをPPSに設置したが、SPSに設置することもできる。
例えば、AVCで定義されているような符号化ツールを分類したプロファイルなどで時間候補利用許可フラグを0に固定して運用することで、符号化と復号において時間候補ブロックを記憶する必要がないこと、時間結合動き情報候補の導出が不要となることから、符号化と復号においてメモリ容量を大きく削減すること、回路規模やソフトウェア規模を縮小することが可能となる。
(予測ベクトルモード決定部120の構成)
続いて、予測ベクトルモード決定部120の詳細な構成について説明する。図20は、予測ベクトルモード決定部120の構成を示す図である。予測ベクトルモード決定部120は、予測ベクトル候補リスト生成部130および予測ベクトル決定部131を含む。端子17は予測符号化モード決定部122に接続されている。
予測ベクトル候補リスト生成部130は、実施の形態1に係る動画像符号化装置100により生成された符号列を復号する動画像復号装置200内の動きベクトル再生部211の中にも同様に設置されて、動画像符号化装置100と動画像復号装置200にて同一の予測ベクトル候補リストが生成される。
(予測ベクトルモード決定部120の動作)
以下、予測ベクトルモード決定部120の動作について説明する。図21は、予測ベクトルモード決定部120の動作を示すフローチャートである。
最初に、L0予測について以下の処理を行う。以下、Xは0とする。予測ベクトル候補リスト生成部130は、端子13より供給されるLX予測の参照インデックスを取得する。端子12より供給される候補ブロック群とLX予測の参照インデックスから予測ベクトル候補最大数の予測ベクトル候補を含むLX予測の予測ベクトル候補リストを生成する(S200)。予測ベクトル候補リスト生成部130は、当該LX予測の予測ベクトル候補リストを予測ベクトル決定部131に供給する。
予測ベクトル決定部131は、予測ベクトル候補リスト生成部130より供給されるLX予測の予測ベクトル候補リストから1つの予測ベクトル候補をLX予測の予測ベクトルとして選択し(S201)、当該LX予測の予測ベクトルインデックスを決定する(S202)。
予測ベクトル決定部131は、端子13より供給されるLX予測の動きベクトルからLX予測の予測ベクトルを減算してLX予測の差分ベクトルを算出し(S203)、当該LX予測の差分ベクトルと当該LX予測の予測ベクトルインデックスを出力する。
予測ベクトル決定部131は、端子15より供給される画像信号と、端子14より供給される参照画像を端子13より供給されるLX予測の動きベクトルおよびLX予測の参照インデックスに基づいて動き補償予測したLX予測の予測信号とから予測誤差量を算出し、当該予測誤差量と、LX予測の差分ベクトル、LX予測の参照インデックス、およびLX予測の予測ベクトルインデックスの符号量とからPred_LXのレート歪評価値を算出する。
次に、Xを1としてL1予測についてL0予測と同じ処理を行う。
続いて、予測ベクトル決定部131は、端子15より供給される画像信号と、L0予測の予測信号およびL1予測の予測信号を平均したBI予測の予測信号とから予測誤差量を算出し、当該予測誤差量と、L0予測とL1予測の差分ベクトル、L0予測とL1予測の参照インデックス、およびL0予測とL1予測の予測ベクトルインデックスの符号量とからPred_BIのレート歪評価値を算出する。
予測ベクトル決定部131は、Pred_L0のレート歪評価値、Pred_L1のレート歪評価値、およびPred_BIのレート歪評価値を比較して、最小のレート歪評価値である予測符号化モードを1つ選択する。そして、予測符号化モードに基づいた動き情報、差分ベクトル、予測ベクトルインデックス、およびレート歪み評価値を予測符号化モード決定部122に供給する。なお、予測符号化モードがPred_L0であれば、L1予測の動きベクトルは(0,0)、L1予測の参照インデックスは「−1」とし、予測符号化モードがPred_L1であれば、L0予測の動きベクトルは(0,0)、L0予測の参照インデックスは「−1」とする。
(予測ベクトル候補リスト生成部130の構成)
続いて、予測ベクトル候補リスト生成部130の詳細な構成について説明する。図22は、予測ベクトル候補リスト生成部130の構成を説明するための図である。端子18は予測ベクトル決定部131に接続されている。予測ベクトル候補リスト生成部130は、空間予測ベクトル候補導出部150、空間スケーリング予測ベクトル候補導出部151、時間予測ベクトル候補導出部152、予測ベクトルリスト構築部153、冗長予測ベクトル候補削除部154、及び予測ベクトル候補補充部155を含む。
(予測ベクトル候補リスト生成部130の動作)
以下、各部の機能と動作について説明する。図23は、予測ベクトル候補リスト生成部130の動作を説明するためのフローチャートである。
予測ベクトル候補リスト生成部130は、端子12より供給される空間候補ブロック群に含まれる候補ブロックを第1グループであるブロックEとブロックA、第2グループであるブロックC、ブロックB、及びブロックDの2グループに分け、第1グループ、第2グループの順に以下の処理を繰り返す(S210からS212)。
ここで、端子12より供給される候補ブロック群はマージモードの場合と同一の候補ブロック群とする。
空間予測ベクトル候補導出部150は、第iグループ(iは1または2)の空間候補ブロック群と端子13より供給されるLX予測の参照インデックスからLX予測の空間予測ベクトル候補を0個または1個導出し(S211)、当該LX予測の空間予測ベクトル候補を予測ベクトルリスト構築部153に供給する。空間予測ベクトル候補導出部150の詳細な動作については後述する。また、空間予測ベクトル候補導出部150と空間スケーリング予測ベクトル候補導出部151の関係についても後述する。
第1グループ、第2グループについて処理が終了すると、予測ベクトル候補リスト生成部130は、時間候補利用許可フラグ(enable_temporal_mvp_flag)が1であるか検査する(S213)。
時間候補利用許可フラグが1であれば(S213のY)、時間予測ベクトル候補導出部152は、端子12より供給される時間候補ブロック群と端子13より供給されるLX予測の参照インデックスからLX予測の時間予測ベクトル候補を0個または1個導出し(S214)、当該LX予測の時間予測ベクトル候補を予測ベクトルリスト構築部153に供給する。時間予測ベクトル候補導出部152の詳細な動作については後述する。
時間候補利用許可フラグが0であれば(S213のN)、S214をスキップする。
次に、予測ベクトルリスト構築部153は0個から2個のLX予測の空間予測ベクトル候補と0個から1個のLX予測の時間予測ベクトル候補とからLX予測の予測ベクトル候補リストを構築し(S215)、当該LX予測の予測ベクトル候補リストを冗長予測ベクトル候補削除部154に供給する。ここで、LX予測の予測ベクトル候補リストには空間予測ベクトル候補、時間予測ベクトル候補の順に最大で3個まで登録される。
次に、冗長予測ベクトル候補削除部154は、LX予測の予測ベクトル候補リストに登録されている予測ベクトル候補を検査し、同一のベクトルを有する予測ベクトル候補が複数存在する場合には1つの予測ベクトル候補を残してその他の予測ベクトル候補を削除する。次に、LX予測の予測ベクトル候補リストに登録されている予測ベクトル候補数が予測ベクトル候補最大数を超えている場合には、LX予測の予測ベクトル候補リストに登録されている予測ベクトル候補数が予測ベクトル候補最大数以下となるようにLX予測の予測ベクトル候補リストの後方の予測ベクトル候補を削除し(S216)、当該LX予測の予測ベクトル候補リストを予測ベクトル候補補充部155に供給する。したがって、冗長予測ベクトル候補削除部154より出力されるLX予測の予測ベクトル候補リストに登録されている予測ベクトル候補は全てが異なる予測ベクトル候補となる。また、LX予測の空間予測ベクトル候補が2個残った場合はLX予測の時間予測ベクトル候補は必然的に予測ベクトル候補リストに登録されないことになる。
次に、予測ベクトル候補補充部155は、予測ベクトル補充候補を生成し、LX予測の予測ベクトル候補リストに登録された予測ベクトル候補数が予測ベクトル候補最大数になるように当該予測ベクトル補充候補をLX予測の予測ベクトル候補リストに追加し(S217)、端子18に供給する。
ここでは、予測ベクトル補充候補は動きベクトル(0,0)とする。ここでは、予測ベクトル補充候補を動きベクトル(0,0)としたが、(1,1)などの所定値でもよく、符号化ストリーム中で伝送してもよく、空間予測ベクトル候補の水平成分や垂直成分を+1や−1などした動きベクトルでもよい。
(空間予測ベクトル候補導出部150の詳細な動作)
引き続いて、空間予測ベクトル候補導出部150の詳細な動作について説明する。図24は空間予測ベクトル候補導出部150の動作を説明するフローチャートである。LX予測の空間予測ベクトル候補の導出について説明する。
第iグループ(iは1または2)の候補ブロックについて以下の処理を繰り返し行う(S220からS226)。第1グループはブロックE、ブロックAの順に、第2グループはブロックC、ブロックB、ブロックDの順に検査される。
各候補ブロックについて、L0予測、L1予測の順に以下の処理を繰り返し行う(S221からS225)。以降、ここでのL0予測、L1予測をLN予測として説明する。
候補ブロックのLN予測は有効であるか検査する(S222)。候補ブロックのLN予測が有効であるとは候補ブロックのLN予測の参照インデックスが0以上であることである。
候補ブロックのLN予測が有効であれば(S222のY)、候補ブロックのLN予測の参照インデックスが示す参照画像がLX予測の参照インデックスが示す参照画像と同一であるか検査する(S223)。
参照画像が同一であれば(S223のY)、候補ブロックのLN予測の動きベクトルをLX予測の空間予測ベクトル候補とし(S224)、処理を終了する。
候補ブロックのLN予測が有効でないか(S222のN)、参照画像が同一でなければ(S223のN)、LN予測がL0予測であればL1予測を検査し、LN予測がL1予測であれば次の候補ブロックを検査する(S225)。
全ての候補ブロックの検査が終了すれば(S226)、時間候補利用許可フラグ(enable_temporal_mvp_flag)が0であるか検査する(227)。
時間候補利用許可フラグが0であれば(S227のY)、空間スケーリング予測ベクトル候補導出部151は、LX予測の空間予測ベクトル候補を0個または1個導出し(S228)、処理を終了する。空間スケーリング予測ベクトル候補導出部151の詳細な動作については後述する。
時間候補利用許可フラグが1であれば(S227のN)、S228をスキップして処理を終了する。
以上のように、各グループから0個または1個の空間予測ベクトル候補が導出され、LX予測として0個から2個の空間予測ベクトル候補が導出される。
(空間スケーリング予測ベクトル候補導出部151の詳細な動作)
引き続いて、空間スケーリング予測ベクトル候補導出部151の詳細な動作について説明する。図25は空間スケーリング予測ベクトル候補導出部151の動作を説明するフローチャートである。LX予測の空間予測ベクトル候補の導出について説明する。
第iグループ(iは1または2)の候補ブロックについて以下の処理を繰り返し行う(S230からS236)。第1グループはブロックE、ブロックAの順に、第2グループはブロックC、ブロックB、ブロックDの順に検査される。
各候補ブロックについて、L0予測、L1予測の順に以下の処理を繰り返し行う(S231からS235)。以降、ここでのL0予測、L1予測をLN予測として説明する。
次に、候補ブロックのLN予測は有効であるか検査する(S232)。候補ブロックのLN予測が有効であるとは候補ブロックのLN予測の参照インデックスが0以上であることである。
候補ブロックのLN予測が有効であれば(S232のY)、候補ブロックのLN予測の参照インデックスが示す参照画像がLX予測の参照インデックスが示す参照画像と同一でないか検査する(S233)。
参照画像が同一でなければ(S233のY)、候補ブロックのLN予測の動きベクトルをLX予測の基準ベクトルとして空間予測ベクトル候補を導出し(S234)、処理を終了する。空間スケーリング予測ベクトル候補導出部151の空間予測ベクトル候補の詳細な導出方法については後述する。
候補ブロックのLN予測が有効でないか(S232のN)、参照画像が同一であれば(S233のN)、LN予測がL0予測であればL1予測を検査し、LN予測がL1予測であれば次の候補ブロックを検査する(S235)。
全ての候補ブロックの検査が終了すれば(S236)、処理を終了する。
続いて、空間スケーリング予測ベクトル候補導出部151の空間予測ベクトル候補の詳細な導出方法について説明する。LX予測の基準ベクトルが参照する参照画像NeiRefLXPicと処理対象画像CurPicの画像間距離をtd、LX予測の参照インデックスが示す参照画像RefLXPicと処理対象画像CurPicの画像間距離をtb、LX予測の基準動きベクトルをmvLXとして、空間予測ベクトル候補mvScLXは上述した式1または式2から式4により算出する。
(時間予測ベクトル候補導出部152の詳細な動作)
引き続いて、時間予測ベクトル候補導出部152の詳細な動作について説明する。図26は時間予測ベクトル候補導出部152の動作を説明するフローチャートである。LX予測の時間予測ベクトル候補の導出について説明する。
時間候補ブロックについて以下の処理を繰り返し行う(S240からS243)。時間候補ブロックはブロックH、ブロックIの順に検査される。
最初に、候補ブロックのLN予測は有効であるか検査する(S241)。ここでは、LN予測はLX予測と同一であるとするが、LN予測はLX予測と同一でなくともよい。候補ブロックのLN予測が有効であるとは候補ブロックのLN予測の参照インデックスが0以上であることである。
候補ブロックのLN予測が有効であれば(S241のY)、候補ブロックのLN予測の動きベクトルをLX予測の基準ベクトルとして時間予測ベクトル候補を導出し(S242)、処理を終了する。時間予測ベクトル候補の詳細な導出方法については後述する。
候補ブロックのLN予測が有効でなければ(S241のN)、次の候補ブロックを検査する(S243)。
全ての候補ブロックの検査が終了すれば(S243)、処理を終了する。
続いて、時間予測ベクトル候補の詳細な導出方法について説明する。時間候補ブロックのあるColPicと時間候補ブロックがLN予測の動き補償予測で参照するピクチャであるColRefLXPicの画像間距離をtd、LX予測の参照インデックスが示す参照画像RefLXPicと処理対象画像CurPicの画像間距離をtb、LX予測の基準動きベクトルをmvLXとして、時間予測ベクトル候補mvLXColは上述した式1または式2から式4により算出する。
(動画像復号装置200の構成)
次に、実施の形態1の動画像復号装置を説明する。図27は、実施の形態1に係る動画像復号装置200の構成を示す図である。動画像復号装置200は、動画像符号化装置100により符号化された符号列を復号して再生画像を生成する装置である。
動画像復号装置200は、CPU(Central Processing Unit)、フレームメモリ、ハードディスクなどを備える情報処理装置などのハードウェアにより実現される。動画像復号装置200は、上記の構成要素が動作することにより、以下に説明する機能的な構成要素を実現する。符号化ブロックの分割、スキップモードの決定、予測ブロックサイズタイプの決定、予測ブロックサイズと予測ブロックの符号化ブロック内の位置(予測ブロックの位置情報)の決定、予測符号化モードがイントラであるかの決定は動画像復号装置200の外部の復号制御部208で決定されているものとし、ここでは予測符号化モードがイントラでない場合について説明する。なお、復号対象の予測ブロックの位置情報、予測ブロックサイズに関しては動画像復号装置200内で共有していることとし、図示しない。
実施の形態1の動画像復号装置200は、符号列解析部201、予測誤差復号部202、加算部203、動き情報再生部204、動き補償部205、フレームメモリ206および動き情報メモリ207を備える。
(動画像復号装置200の動作)
以下、各部の機能と動作について説明する。符号列解析部201は、端子30より供給された符号列を解析して予測誤差符号化データ、マージフラグ、マージインデックス、動き補償予測の予測方向(インター予測タイプ)、参照インデックス、差分ベクトル、および予測ベクトルインデックスをシンタックスに従ってエントロピー復号する。エントロピー復号は算術符号化やハフマン符号化などの可変長符号化を含む方法によって実施される。そして、当該予測誤差符号化データを予測誤差復号部202に、当該マージフラグ、当該マージインデックス、当該インター予測タイプ、当該参照インデックス、当該差分ベクトル、および当該予測ベクトルインデックスを動き情報再生部204に供給する。
また、符号列解析部201は、動画像復号装置200で利用される符号化ブロックの分割情報、予測ブロックサイズタイプ、予測ブロックの符号化ブロック内の位置、及び予測符号化モードを、符号化ストリームの特性を決定するためのパラメータ群を定義したSPS(Sequence Parameter Set)、ピクチャの特性を決定するためのパラメータ群を定義したPPS(Picture Parameter Set)、やスライスの特性を決定するためのパラメータ群を定義したスライスヘッダなどと共に符号化ストリームから復号する。
動き情報再生部204は、符号列解析部201より供給されるマージフラグ、マージインデックス、インター予測タイプ、参照インデックス、差分ベクトル、および予測ベクトルインデックスと、動き情報メモリ207より供給される候補ブロック群から、動き情報を再生し、当該動き情報を動き補償部205および動き情報メモリ207に供給する。動き情報再生部204の詳細な構成については後述する。
動き補償部205は、動き情報再生部204より供給される動き情報に基づいて、フレームメモリ206内の参照インデックスが示す参照画像を、動きベクトルに基づき動き補償して予測信号を生成する。予測方向が双予測であれば、L0予測とL1予測の予測信号を平均したものを予測信号として生成し、当該予測信号を加算部203に供給する。
予測誤差復号部202は、符号列解析部201より供給される予測誤差符号化データに対して、逆量子化や逆直交変換などの処理を行って予測誤差信号を生成し、当該予測誤差信号を加算部203に供給する。
加算部203は、予測誤差復号部202より供給される予測誤差信号と、動き補償部205より供給される予測信号とを加算して復号画像信号を生成し、当該復号画像信号をフレームメモリ206および端子31に供給する。
フレームメモリ206および動き情報メモリ207は、動画像符号化装置100のフレームメモリ110および動き情報メモリ111と同一の機能を有する。フレームメモリ206は、加算部203より供給される復号画像信号を記憶する。動き情報メモリ207は、動き情報再生部204より供給される動き情報を最小の予測ブロックサイズ単位で記憶する。
(動き情報再生部204の詳細な構成)
続いて、動き情報再生部204の詳細な構成について説明する。図28は、動き情報再生部204の構成を示す。動き情報再生部204は、符号化モード判定部210、動きベクトル再生部211および結合動き情報再生部212を含む。端子32は符号列解析部201に、端子33は動き情報メモリ207に、端子34は動き補償部205に、端子36は動き情報メモリ207にそれぞれ接続されている。
(動き情報再生部204の詳細な動作)
以下、各部の機能と動作について説明する。符号化モード判定部210は、符号列解析部201より供給されるマージフラグが「0」であるか「1」であるか判定する。マージフラグが「0」であれば、符号列解析部201より供給されるインター予測タイプ、参照インデックス、差分ベクトル、および予測ベクトルインデックスを動きベクトル再生部211に供給する。マージフラグが「1」であれば、符号列解析部201より供給されるマージインデックスを結合動き情報再生部212に供給する。また、スキップモードである場合も符号列解析部201より供給されるマージインデックスを結合動き情報再生部212に供給する。
動きベクトル再生部211は、符号化モード判定部210より供給されるインター予測タイプ、参照インデックス、差分ベクトル、および予測ベクトルインデックスと、端子33より供給される候補ブロック群から、動きベクトルを再生して動き情報を生成し、端子34及び端子36に供給する。
結合動き情報再生部212は、端子33より供給される候補ブロック群から結合動き情報候補リストを生成し、当該結合動き情報候補リストから符号化モード判定部210より供給されるマージインデックスによって示される結合動き情報候補の動き情報を選択して端子34及び端子36に供給する。
(結合動き情報再生部212の詳細な構成)
続いて、結合動き情報再生部212の詳細な構成について説明する。図29は、結合動き情報再生部212の構成を示す。結合動き情報再生部212は、結合動き情報候補リスト生成部230および結合動き情報選択部231を含む。端子35は符号化モード判定部210に接続されている。
(結合動き情報再生部212の詳細な動作)
以下、各部の機能と動作について説明する。図30は結合動き情報再生部212の動作を説明する図である。結合動き情報候補リスト生成部230は、端子33より供給される候補ブロック群から結合動き情報候補リストを生成し(S310)、当該結合動き情報候補リストを結合動き情報選択部231に供給する。
結合動き情報選択部231は、端子35より供給されるマージインデックスを取得し(S311)、結合動き情報候補リスト生成部230より供給される結合動き情報候補リストの中から、マージインデックスで示される結合動き情報候補を選択して結合動き情報を決定し(S312)、当該結合動き情報の動き情報を端子34及び端子36に供給する。
(動きベクトル再生部211の詳細な構成)
続いて、動きベクトル再生部211の詳細な構成について説明する。図31は、動きベクトル再生部211の構成を説明する図である。動きベクトル再生部211は、予測ベクトル候補リスト生成部220、予測ベクトル選択部221および加算部222を含む。端子35は符号化モード判定部210に接続されている。
(動きベクトル再生部211の詳細な動作)
以下、各部の機能と動作について説明する。図32は動きベクトル再生部211の動作を説明する図である。動きベクトル再生部211は、端子35より供給されるインター予測タイプがL0予測であれば、L0予測について動きベクトルの算出を行い、インター予測タイプがL1予測であれば、L1予測について動きベクトルの算出を行い、インター予測タイプがBI予測であれば、L0予測とL1予測について動きベクトルの算出を行う。各LX予測の動きベクトルの算出は以下のように行われる。
予測ベクトル候補リスト生成部220は、端子35より供給されるLX予測の参照インデックス及び端子33より供給される候補ブロック群からLX予測の予測ベクトル候補リストを生成し(S320)、当該LX予測の予測ベクトルリストを予測ベクトル選択部221に供給する。
予測ベクトル選択部221は、端子35より供給されるLX予測の予測ベクトルインデックスを取得し(S321)、予測ベクトル候補リスト生成部220より供給されるLX予測の予測ベクトルリストからLX予測の予測ベクトルインデックスによって示される予測ベクトル候補を選択してLX予測の予測ベクトルとして決定し(S322)、当該LX予測の予測ベクトルと端子35より供給されるLX予測の差分ベクトルを加算してLX予測の動きベクトルを算出する(S323)。
当該LX予測の動きベクトルとインター予測タイプとが組み合わされて動き情報が生成され、端子34及び端子36に供給される。
以上のように、動画像復号装置200は、動画像符号化装置100により符号化された符号列を復号して再生画像を生成することができる。
時間候補利用許可フラグが0または1のいずれの場合にも備える場合、符号化と復号において、時間候補利用許可フラグが1である場合にも備える必要があるため、時間候補利用許可フラグが1である場合に必要となる回路規模やソフトウェア規模を縮小することはできない。
例えば、AVCで定義されているような符号化ツールを分類したプロファイルなどで時間候補利用許可フラグを0に固定して運用することで、時間候補利用許可フラグが1となる場合に備える必要がなくなり、符号化と復号において時間候補ブロックを記憶する必要がないこと、時間予測ベクトル候補の導出が不要となることから、符号化と復号のいずれにおいてもメモリ容量を大きく削減すること、回路規模やソフトウェア規模を縮小することが可能となる。
一方、時間候補利用許可フラグが1であることを許容する符号化と復号では、空間スケーリング予測ベクトル候補導出部151により導出される空間予測ベクトル候補と時間予測ベクトル候補導出部152により導出される時間予測ベクトル候補を時間候補利用許可フラグによって切り替えることで、式1または式2から式4のようなスケーリング回路を共有して回路規模を削減することができる。また、スケーリングの処理時間を1回にできるため処理時間を短縮することができる。
[実施の形態2]
以下、実施の形態2について説明する。以下、実施の形態1とは異なる点について説明する。実施の形態1とは動き情報メモリ111内に記憶されている動き情報が異なる。実施の形態1では、動き情報メモリ111には動き情報生成部109より供給される動き情報が最小の予測ブロックサイズ単位で記憶されるとした。
実施の形態2では、最大符号化ブロックで必要となる上方向の動き情報メモリを半分に削減するために、最大符号化ブロック境界で動き情報は半分に間引いて記憶される。
図33は最大符号化ブロック境界で動き情報が半分に間引いて記憶される場合に空間結合動き情報候補最大数を大きくすることが有効となることを説明する図である。処理対象の予測ブロックは8画素×8画素の符号化ブロックで予測ブロックサイズタイプがN×2Nの予測ブロック0であって、最大符号化ブロック境界に位置しているとする。このとき、上方向の動き情報であるM1とM1'、M2とM2'、M3とM3'はそれぞれ同一の動き情報を有することになる。この場合、処理対象の予測ブロックの空間候補ブロックであるブロックBに相当するM2とブロックCに相当するM2'は同じ動き情報となるため、冗長予測ベクトル候補削除部154によってブロックCの候補は必ず削除される。
以上のように、上方向の動き情報メモリが半分に間引かれている場合においてはブロックEに相当するM1'を常に空間結合動き情報候補とすることで、符号化効率が向上する。
[実施の形態3]
以下、実施の形態3について説明する。以下、実施の形態1とは異なる点について説明する。実施の形態1とはスライスヘッダのシンタックスが異なる。図34は実施の形態3のスライスヘッダのシンタックスを説明する図である。実施の形態1では、マージ候補最大数はスライスヘッダにある5_minus_max_num_merge_candsによって決定されるとした。ここでは、スライスヘッダに4_minus_max_num_merge_candsが追加設置され、時間候補利用許可フラグが1であれば、5_minus_max_num_merge_candsが符号化または復号され、時間候補利用許可フラグが0であれば、4_minus_max_num_merge_candsが符号化または復号される。
4_minus_max_num_merge_candsはマージ候補最大数を決定するためのパラメータであって、0から3までの整数となる。マージ候補最大数は4から4_minus_max_num_merge_candsを減算することで算出される。このように、実施の形態3では、時間候補利用許可フラグが0である場合には、時間候補利用許可フラグが1である場合よりもマージ候補最大数が小さく制限される。
以下、実施の形態3における符号化制御部112及び復号制御部208のマージ候補最大数を決定する動作について説明する。図35は実施の形態3におけるマージ候補最大数を決定する動作を説明するフローチャートである。最初に、時間候補利用許可フラグが1であるか検査する(S400)。時間候補利用許可フラグが1であれば(S400のY)、マージ候補最大数を5以下に設定し(S401)、処理を終了する。時間候補利用許可フラグが1でなければ(S400のN)、マージ候補最大数を4以下に設定し(S402)、処理を終了する。
実施の形態1では空間結合動き情報候補最大数は時間候補利用許可フラグによって算出されるとしたが、ここでは、空間結合動き情報候補最大数は4に固定されるとする。
以下、時間候補利用許可フラグが0である場合には時間候補利用許可フラグが1である場合よりもマージ候補最大数を小さくする効果について説明する。
時間候補利用許可フラグが0である場合に、空間結合動き情報候補最大数が4に固定されていると、結合動き情報候補リストには必ず第1補充結合動き情報候補または第2補充結合動き情報候補が追加されることになる。さらに、結合動き情報候補リストに時間結合動き情報候補は登録されないため、結合動き情報候補リストに登録される結合動き情報候補の平均数は必然的に少なくなる。そのため、第1補充結合動き情報候補は生成され難くなり、結合動き情報候補リストには、空間結合動き情報候補や第1補充結合動き情報候補よりも相対的に選択率の低い第2補充結合動き情報候補が増加することになる。
そこで、時間候補利用許可フラグが0である場合にマージ候補最大数を小さくして、結合動き情報候補リストに選択率の低い候補が増加するのを抑制する。図36はマージ候補最大数が小さい方に符号化効率が向上する一例を説明する図である。
図36(a)はマージ候補最大数が5である場合に、結合動き情報候補リスト内に結合動き情報候補CA、結合動き情報候補CB、結合動き情報候補CC、結合動き情報候補CD、結合動き情報候補CEが登録されているとする。ここで、結合動き情報候補CDが選択された場合、結合動き情報候補CDの符号列は'1110'の4ビットとなる。
図36(b)はマージ候補最大数が4である場合に、結合動き情報候補リスト内に結合動き情報候補CA、結合動き情報候補CB、結合動き情報候補CC、結合動き情報候補CDが登録されているとする。ここで、結合動き情報候補CDが選択された場合、結合動き情報候補CDの符号列は'111'の3ビットとなる。
以上のように、時間候補利用許可フラグが0である場合にマージ候補最大数を小さくすることで、マージ候補最大数を小さくした場合のマージインデックが最大となる結合動き情報候補が選択された場合にマージインデックスの符号量が1ビット小さくなり、符号化効率を向上させることができる。また、時間候補利用許可フラグが0である場合にマージ候補最大数を小さくすることで、符号化と復号において第1補充結合動き情報候補や第2補充結合動き情報候補の導出に係る処理量を削減することができる。また符号化において第1補充結合動き情報候補や第2補充結合動き情報候補のモード判定の評価に要する処理量を削減することができる。
ここでは、スライスヘッダのシンタックスを変更することで、マージ候補最大数が時間候補利用許可フラグに依存する一例を示したが、これに限定されない。例えば、シンタックスは図6のままで、5_minus_max_num_merge_candsを1としたり、式7よりマージ候補最大数を算出することもできる。
MaxNumMergeCand = 5 - 5_minus_max_num_merge_cands - !enable_temporal_mvp_flag; 式7
例えば、AVCで定義されているような符号化ツールを分類したプロファイルなどで時間候補利用許可フラグが0である場合には時間候補利用許可フラグが1である場合よりもマージ候補最大数が小さくなるように、マージ候補最大数を4に固定して運用することで、マージ候補最大数が5となる場合に備える必要がなくなり、符号化と復号において第5の結合動き情報候補に係る導出処理や記憶を行う必要がないこと、第5の結合動き情報候補に係る冗長結合動き情報候補削除部163の動作が不要であることから、符号化と復号においてメモリ容量を削減すること、回路規模やソフトウェア規模を縮小することが可能となる。
[実施の形態4]
以下、実施の形態4について説明する。以下、実施の形態1とは異なる点について説明する。実施の形態1とは結合動き情報候補リスト生成部140の構成と動作が異なる。図37は実施の形態3の結合動き情報候補リスト生成部140の構成を説明する図である。
実施の形態1とは、時間結合動き情報候補導出部161がなく、冗長結合動き情報候補削除部163の後段に時間結合動き情報候補補充部166が追加されていることが異なる。
図38は実施の形態3の結合動き情報候補リスト生成部140の動作を説明するフローチャートである。
最初に、空間結合動き情報候補導出部160は、端子12より供給される空間候補ブロック群から0個から空間結合動き情報候補最大数の空間結合動き情報候補を導出し(S110)、当該空間結合動き情報候補を結合動き情報候補リスト構築部162に供給する。ここでは、時間候補利用許可フラグによらず、空間結合動き情報候補最大数は5とする。
次に、結合動き情報候補リスト構築部162は0個から空間結合動き情報候補最大数の空間結合動き情報候補から結合動き情報候補リストを構築する(S113)。ここでは、結合動き情報候補リストには導出された順序で空間結合動き情報候補が順次登録されるものとする。
次に、冗長結合動き情報候補削除部163は、結合動き情報候補リスト構築部162より供給される結合動き情報候補リストに登録されている結合動き情報候補を検査し、同一の動き情報を有する結合動き情報候補が複数存在する場合には1つの結合動き情報候補を残してその他の結合動き情報候補を削除する。また、結合動き情報候補リストに登録されている結合動き情報候補数が空間結合動き情報候補最大数である場合には、結合動き情報候補リストに登録されている結合動き情報候補数が空間結合動き情報候補最大数より1だけ小さくなるように結合動き情報候補リストの後方の結合動き情報候補を削除し(S114)、当該結合動き情報候補リストを時間結合動き情報候補補充部166に供給する。ここで、当該結合動き情報候補リストに登録されている結合動き情報候補は全てが異なる結合動き情報候補であって、当該結合動き情報候補リストに登録されている結合動き情報候補の最大数は(空間結合動き情報候補最大数−1)となる。
次に、時間結合動き情報候補補充部166は、時間候補利用許可フラグ(enable_temporal_mvp_flag)が1であるか検査する(S111)。
時間候補利用許可フラグが1であれば(S111のY)、時間結合動き情報候補補充部166は、端子12より供給される時間候補ブロック群から0個から時間結合動き情報候補最大数の時間結合動き情報候補を導出して、当該時間結合動き情報候補を冗長結合動き情報候補削除部163より供給される結合動き情報候補リストに追加し(S117)、当該結合動き情報候補リストを第1結合動き情報候補補充部164に供給する。
時間候補利用許可フラグが0であれば(S111のN)、時間結合動き情報候補補充部166は、スキップS112をスキップし、冗長結合動き情報候補削除部163より供給される結合動き情報候補リストを第1結合動き情報候補補充部164に供給する。
次に、第1結合動き情報候補補充部164は、冗長結合動き情報候補削除部163より供給される結合動き情報候補リストに登録された結合動き情報候補から0個から2個の第1補充結合動き情報候補を導出してマージ候補最大数を超えないように結合動き情報候補リストに追加し(S115)、当該結合動き情報候補リストを第2結合動き情報候補補充部165に供給する。
次に、第2結合動き情報候補補充部165は、第1結合動き情報候補補充部164より供給される結合動き情報候補リストに登録された結合動き情報候補の数がマージ候補最大数に達するまで第2補充結合動き情報候補を導出して当該結合動き情報候補リストに追加し(S116)、当該結合動き情報候補リストを端子19に供給する。
以上のように、時間候補利用許可フラグによらず空間結合動き情報候補最大数を5にして、冗長結合動き情報候補削除部163において結合動き情報候補リストに登録されている結合動き情報候補の最大数を(空間結合動き情報候補最大数−1)に制限することで、例えば、ブロックBの動き情報とブロックCの動き情報だけが同一であってその他の動き情報が異なる場合に、ブロックDの動き情報を結合動き情報候補リストに追加することができる。そのため、時間候補利用許可フラグが1である場合にも、第1補充結合動き情報候補や第2補充結合動き情報候補よりも相対的に選択率の高いブロックDの動き情報を利用することが可能となるため、符号化効率が向上する。
また、時間結合動き情報候補の導出と結合動き情報候補リスト構築部162及び冗長結合動き情報候補削除部163との依存性を排除することで、空間結合動き情報候補導出部160、結合動き情報候補リスト構築部162、及び冗長結合動き情報候補削除部163を一体とすることが容易となって、回路規模やソフトウェア規模を縮小することが容易となる。
また、時間結合動き情報候補の導出には式1または式2から式4のようなスケーリングを要するため、一般的には空間結合動き情報候補よりも処理時間が長くなり、時間結合動き情報候補の導出と空間結合動き情報候補導出部160、結合動き情報候補リスト構築部162、及び冗長結合動き情報候補削除部163とを同時に処理することで、処理効率が向上する。
また、空間結合動き情報候補が空間方向の連続性を基づいて導出されるのに対し、時間結合動き情報候補は時間方向の連続性に基づいて導出されており、これらの性質は異なるものである。そのため、冗長結合動き情報候補削除部163において時間結合動き情報候補が削除される確率は空間結合動き情報候補が削除される確率よりも相対的に小さくなるため、第1補充結合動き情報候補や第2補充結合動き情報候補の追加される個数への影響も限定的となって符号化効率の低下も抑制される。
以上述べた実施の形態の動画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
動画像符号化装置と動画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
動画像送信装置は、動画像符号化装置が出力する符号化ストリームをバッファするメモリと、符号化ストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、動画像復号装置に提供するパケット処理部とを含む。
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ROM(リード・オンリ・メモリ)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
100 動画像符号化装置、 101 予測ブロック画像取得部、 102 減算部、 103 予測誤差符号化部、 104 符号列生成部、 105 予測誤差復号部、 106 動き補償部、 107 加算部、 108 動きベクトル検出部、 109 動き情報生成部、 110 フレームメモリ、 111 動き情報メモリ、 120 予測ベクトルモード決定部、 121 マージモード決定部、 122 予測符号化モード決定部、 130 予測ベクトル候補リスト生成部、 131 予測ベクトル決定部、 140 結合動き情報候補リスト生成部、 141 結合動き情報選択部、 150 空間予測ベクトル候補導出部、 151 空間スケーリング予測ベクトル候補導出部、 152 時間予測ベクトル候補導出部、 153 予測ベクトルリスト構築部、 154 冗長予測ベクトル候補削除部、 155 予測ベクトル候補補充部、 160 空間結合動き情報候補導出部、 161 時間結合動き情報候補導出部、 162 結合動き情報候補リスト構築部、 163 冗長結合動き情報候補削除部、 164 第1結合動き情報候補補充部、 165 第2結合動き情報候補補充部、 166 時間結合動き情報候補補充部、 200 動画像復号装置、 201 符号列解析部、 202 予測誤差復号部、 203 加算部、 204 動き情報再生部、 205 動き補償部、 206 フレームメモリ、 207 動き情報メモリ、 210 符号化モード判定部、 211 動きベクトル再生部、 212 結合動き情報再生部、 220 予測ベクトル候補リスト生成部、 221 予測ベクトル選択部、 222 加算部、 230 結合動き情報候補リスト生成部、 231 結合動き情報選択部。

Claims (3)

  1. 動き補償予測を行う画像復号装置であって、
    予測動きベクトル候補リストにおいて選択すべき予測動きベクトル候補を示す情報が差分ベクトルとともに符号化された符号列から、前記選択すべき予測動きベクトル候補を示す情報と前記差分ベクトルを復号する復号部と、
    復号対象ブロックに隣接する複数の復号済みブロックのいずれかの動きベクトルを予測動きベクトル候補とする空間予測動きベクトル候補導出部と、
    前記復号対象ブロックに隣接する複数の復号済みブロックのいずれかの動きベクトルをスケーリングして予測動きベクトル候補を導出する空間スケーリング予測動きベクトル候補導出部と、
    前記復号対象ブロックのあるピクチャとは別の復号済みのピクチャのブロックのいずれかの動きベクトルをスケーリングして予測動きベクトル候補を導出する時間予測動きベクトル候補導出部と、
    前記空間予測動きベクトル候補導出部に導出させた予測動きベクトル候補と、前記時間予測動きベクトル候補導出部および前記空間スケーリング予測動きベクトル候補導出部のいずれか一方に導出させた予測動きベクトル候補とから、予測動きベクトル候補リストを構築する予測動きベクトル候補リスト構築部と、
    前記選択すべき予測動きベクトル候補を示す情報にもとづいて前記予測動きベクトル候補リストから1つの予測動きベクトル候補を選択し、前記復号対象ブロックの予測動きベクトルとする予測動きベクトル選択部と、
    前記予測動きベクトルと復号された前記差分ベクトルとを加算して、前記復号対象ブロックの動きベクトルを求める加算部とを含み、
    前記予測動きベクトル候補リスト構築部は、
    所定のフラグが所定値であれば、前記空間予測動きベクトル候補導出部に導出させた予測動きベクトル候補と、前記時間予測動きベクトル候補導出部に導出させずに前記空間スケーリング予測動きベクトル候補導出部に導出させた予測動きベクトル候補とから、前記予測動きベクトル候補リストを構築し、
    前記所定のフラグが所定値でなければ、前記空間予測動きベクトル候補導出部に導出させた予測動きベクトル候補と、前記空間スケーリング予測動きベクトル候補導出部に導出させずに前記時間予測動きベクトル候補導出部に導出させた予測動きベクトル候補とから、前記予測動きベクトル候補リストを構築することを特徴とする画像復号装置。
  2. 動き補償予測を行う画像復号方法であって、
    予測動きベクトル候補リストにおいて選択すべき予測動きベクトル候補を示す情報が差分ベクトルとともに符号化された符号列から、前記選択すべき予測動きベクトル候補を示す情報と前記差分ベクトルを復号する復号ステップと、
    復号対象ブロックに隣接する複数の復号済みブロックのいずれかの動きベクトルを予測動きベクトル候補とする空間予測動きベクトル候補導出ステップと、
    前記復号対象ブロックに隣接する複数の復号済みブロックのいずれかの動きベクトルをスケーリングして予測動きベクトル候補を導出する空間スケーリング予測動きベクトル候補導出ステップと、
    前記復号対象ブロックのあるピクチャとは別の復号済みのピクチャのブロックのいずれかの動きベクトルをスケーリングして予測動きベクトル候補を導出する時間予測動きベクトル候補導出ステップと、
    前記空間予測動きベクトル候補導出ステップに導出させた予測動きベクトル候補と、前記時間予測動きベクトル候補導出ステップおよび前記空間スケーリング予測動きベクトル候補導出ステップのいずれか一方に導出させた予測動きベクトル候補とから、予測動きベクトル候補リストを構築する予測動きベクトル候補リスト構築ステップと、
    前記選択すべき予測動きベクトル候補を示す情報にもとづいて前記予測動きベクトル候補リストから1つの予測動きベクトル候補を選択し、前記復号対象ブロックの予測動きベクトルとする予測動きベクトル選択ステップと、
    前記予測動きベクトルと復号された前記差分ベクトルとを加算して、前記復号対象ブロックの動きベクトルを求める加算ステップとを含み、
    前記予測動きベクトル候補リスト構築ステップは、
    所定のフラグが所定値であれば、前記空間予測動きベクトル候補導出ステップに導出させた予測動きベクトル候補と、前記時間予測動きベクトル候補導出ステップに導出させずに前記空間スケーリング予測動きベクトル候補導出ステップに導出させた予測動きベクトル候補とから、前記予測動きベクトル候補リストを構築し、
    前記所定のフラグが所定値でなければ、前記空間予測動きベクトル候補導出ステップに導出させた予測動きベクトル候補と、前記空間スケーリング予測動きベクトル候補導出ステップに導出させずに前記時間予測動きベクトル候補導出ステップに導出させた予測動きベクトル候補とから、前記予測動きベクトル候補リストを構築することを特徴とする画像復号方法。
  3. 動き補償予測を行う画像復号プログラムであって、
    予測動きベクトル候補リストにおいて選択すべき予測動きベクトル候補を示す情報が差分ベクトルとともに符号化された符号列から、前記選択すべき予測動きベクトル候補を示す情報と前記差分ベクトルを復号する復号ステップと、
    復号対象ブロックに隣接する複数の復号済みブロックのいずれかの動きベクトルを予測動きベクトル候補とする空間予測動きベクトル候補導出ステップと、
    前記復号対象ブロックに隣接する複数の復号済みブロックのいずれかの動きベクトルをスケーリングして予測動きベクトル候補を導出する空間スケーリング予測動きベクトル候補導出ステップと、
    前記復号対象ブロックのあるピクチャとは別の復号済みのピクチャのブロックのいずれかの動きベクトルをスケーリングして予測動きベクトル候補を導出する時間予測動きベクトル候補導出ステップと、
    前記空間予測動きベクトル候補導出ステップに導出させた予測動きベクトル候補と、前記時間予測動きベクトル候補導出ステップおよび前記空間スケーリング予測動きベクトル候補導出ステップのいずれか一方に導出させた予測動きベクトル候補とから、予測動きベクトル候補リストを構築する予測動きベクトル候補リスト構築ステップと、
    前記選択すべき予測動きベクトル候補を示す情報にもとづいて前記予測動きベクトル候補リストから1つの予測動きベクトル候補を選択し、前記復号対象ブロックの予測動きベクトルとする予測動きベクトル選択ステップと、
    前記予測動きベクトルと復号された前記差分ベクトルとを加算して、前記復号対象ブロックの動きベクトルを求める加算ステップとをコンピュータに実行させ、
    前記予測動きベクトル候補リスト構築ステップは、
    所定のフラグが所定値であれば、前記空間予測動きベクトル候補導出ステップに導出させた予測動きベクトル候補と、前記時間予測動きベクトル候補導出ステップに導出させずに前記空間スケーリング予測動きベクトル候補導出ステップに導出させた予測動きベクトル候補とから、前記予測動きベクトル候補リストを構築し、
    前記所定のフラグが所定値でなければ、前記空間予測動きベクトル候補導出ステップに導出させた予測動きベクトル候補と、前記空間スケーリング予測動きベクトル候補導出ステップに導出させずに前記時間予測動きベクトル候補導出ステップに導出させた予測動きベクトル候補とから、前記予測動きベクトル候補リストを構築することを特徴とする画像復号プログラム。
JP2012005602A 2012-01-13 2012-01-13 画像復号装置、画像復号方法及び画像復号プログラム Pending JP2013145971A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012005602A JP2013145971A (ja) 2012-01-13 2012-01-13 画像復号装置、画像復号方法及び画像復号プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012005602A JP2013145971A (ja) 2012-01-13 2012-01-13 画像復号装置、画像復号方法及び画像復号プログラム

Publications (1)

Publication Number Publication Date
JP2013145971A true JP2013145971A (ja) 2013-07-25

Family

ID=49041560

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012005602A Pending JP2013145971A (ja) 2012-01-13 2012-01-13 画像復号装置、画像復号方法及び画像復号プログラム

Country Status (1)

Country Link
JP (1) JP2013145971A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015098559A1 (ja) * 2013-12-27 2015-07-02 ソニー株式会社 復号装置および復号方法、並びに、符号化装置および符号化方法
JP2017073807A (ja) * 2011-06-14 2017-04-13 サムスン エレクトロニクス カンパニー リミテッド 映像の復号化方法
CN111316639A (zh) * 2018-04-09 2020-06-19 腾讯美国有限责任公司 用于子块运动矢量预测的方法和装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017073807A (ja) * 2011-06-14 2017-04-13 サムスン エレクトロニクス カンパニー リミテッド 映像の復号化方法
JP2018129809A (ja) * 2011-06-14 2018-08-16 サムスン エレクトロニクス カンパニー リミテッド 映像復号化方法、映像符号化方法及び記録媒体
US10264276B2 (en) 2011-06-14 2019-04-16 Samsung Electronics Co., Ltd. Method and apparatus for encoding motion information and method and apparatus for decoding same
US10623766B2 (en) 2011-06-14 2020-04-14 Samsung Electronics Co., Ltd. Method and apparatus for encoding motion information and method and apparatus for decoding same
US10972748B2 (en) 2011-06-14 2021-04-06 Samsung Electronics Co., Ltd. Method and apparatus for encoding motion information and method and apparatus for decoding same
US11595684B2 (en) 2011-06-14 2023-02-28 Samsung Electronics Co., Ltd. Method and apparatus for encoding motion information and method and apparatus for decoding same
WO2015098559A1 (ja) * 2013-12-27 2015-07-02 ソニー株式会社 復号装置および復号方法、並びに、符号化装置および符号化方法
CN111316639A (zh) * 2018-04-09 2020-06-19 腾讯美国有限责任公司 用于子块运动矢量预测的方法和装置
CN111316639B (zh) * 2018-04-09 2023-12-15 腾讯美国有限责任公司 视频解码方法和装置、及存储介质

Similar Documents

Publication Publication Date Title
JP6065088B2 (ja) 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、並びに、送信装置、送信方法、及び送信プログラム
JP5725006B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP2013145971A (ja) 画像復号装置、画像復号方法及び画像復号プログラム
JP6036972B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP5846133B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP2013153434A (ja) 動画像復号装置、動画像復号方法及び動画像復号プログラム
JP5843039B1 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
WO2013108631A1 (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム、並びに動画像復号装置、動画像復号方法及び動画像復号プログラム
JP2013145972A (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム