(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-23
(45)【発行日】2023-05-31
(54)【発明の名称】動画像符号化プログラム、及び動画像符号化装置
(51)【国際特許分類】
H04N 19/57 20140101AFI20230524BHJP
H04N 19/107 20140101ALI20230524BHJP
H04N 19/167 20140101ALI20230524BHJP
H04N 19/174 20140101ALI20230524BHJP
H04N 19/65 20140101ALI20230524BHJP
【FI】
H04N19/57
H04N19/107
H04N19/167
H04N19/174
H04N19/65
(21)【出願番号】P 2019004487
(22)【出願日】2019-01-15
【審査請求日】2021-10-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100094525
【氏名又は名称】土井 健二
(74)【代理人】
【識別番号】100094514
【氏名又は名称】林 恒徳
(72)【発明者】
【氏名】屋森 章弘
【審査官】田中 純一
(56)【参考文献】
【文献】特開2017-069866(JP,A)
【文献】特開平04-245884(JP,A)
【文献】米国特許出願公開第2017/0099491(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
インター予測符号化で符号化されるピクチャの一部をイントラ予測符号化で符号化し、イントラ予測符号化が行われるイントラスライスラインを、複数のピクチャで巡回させる符号化方式を用いて動画像を符号化する動画像符号化装置のコンピュータに実行させる動画像符号化プログラムであって、
第1の処理ブロックに対する参照ブロックの探索範囲を、前記第1の処理ブロックから、前記第1の処理ブロックが存在する第1のピクチャよりも符号化順で前にある第2のピクチャにおいて前記イントラスライスラインが通過したリフレッシュ済領域と前記イントラスライスラインが通過していない未リフレッシュ領域との境界であるリフレッシュ境界よりも第2の処理ブロックのサイズ分、前記第1の処理ブロックに近い側までの範囲に設定し、
前記探索範囲において前記第1の処理ブロックに対する第1の動きベクトルを検出し、さらに、前記第1の処理ブロックの周辺にある前記第2の処理ブロックで検出された第2の動きベクトルと前記第1の動きベクトルとを加重平均して前記第1の動きベクトルとし、
前記第1の動きベクトルと前記第2のピクチャとを用いて第1の予測データを生成し、前記第1のピクチャの前記イントラスライスライン内の他のブロックを利用して該イントラスライスライン内のブロックのおける第2の予測データを生成し、前記第1及び第2の予測データを用いて前記第1のピクチャを符号化する
処理を前記コンピュータに実行させる動画像符号化プログラム。
【請求項2】
前記イントラスライスラインを画像上垂直方向に巡回させるとき、前記参照ブロックの探索範囲を、前記第1の処理ブロックの下端から、前記リフレッシュ境界よりも前記第2の処理ブロックサイズ分、前記第1の処理ブロックに近い側までの範囲に設定することを特徴とする請求項1記載の動画像符号化プログラム。
【請求項3】
前記イントラスライスラインを画像上水平方向に巡回させるとき、前記参照ブロックの探索範囲を、前記第1の処理ブロックの右端から、前記リフレッシュ境界よりも前記第2の処理ブロックのサイズ分、前記第1の処理ブロックに近い側までの範囲に設定することを特徴とする請求項1記載の動画像符号化プログラム。
【請求項4】
前記参照ブロックの探索範囲を、前記第1の処理ブロックから、前記リフレッシュ境界よりも前記第2の処理ブロックのサイズ分、前記第1の処理ブロックに近い側までの範囲に設定することに代え、
前記第1の処理ブロックに対する前記第1の動きベクトルを検出する際に、前記参照ブロックが探索範囲を超えたとき、前記第2の動きベクトルとの加重平均を計算することなく、検出した前記第1の動きベクトルを用いて前記第1の予測データを生成し、
前記参照ブロックが探索範囲を超えないとき、前記第1の動きベクトルと前記第2の動きベクトルとを加重平均して前記第1の動きベクトルとして、該第1の動きベクトルを用いて前記第1の予測データを生成する、
ことを特徴とする請求項1記載の動画像符号化プログラム。
【請求項5】
インター予測符号化で符号化されるピクチャの一部をイントラ予測符号化で符号化し、イントラ予測符号化が行われるイントラスライスラインを、複数のピクチャで巡回させる符号化方式を用いて動画像を符号化する動画像符号化装置において、
第1の処理ブロックに対する参照ブロックの探索範囲を、前記第1の処理ブロックから、前記第1の処理ブロックが存在する第1のピクチャよりも符号化順で前にある第2のピクチャにおいて前記イントラスライスラインが通過したリフレッシュ済領域と前記イントラスライスラインが通過していない未リフレッシュ領域との境界であるリフレッシュ境界よりも第2の処理ブロックのサイズ分、前記第1の処理ブロックに近い側までの範囲に設定する探索範囲制限部と、
前記探索範囲において前記第1の処理ブロックに対する第1の動きベクトルを検出し、さらに、前記第1の処理ブロックの周辺にある前記第2の処理ブロックで検出された第2の動きベクトルと前記第1の動きベクトルとを加重平均して前記第1の動きベクトルとする動きベクトル検出部と、
前記第1の動きベクトルと前記第2のピクチャとを用いて第1の予測データを生成し、前記第1のピクチャの前記イントラスライスライン内の他のブロックを利用して該イントラスライスライン内のブロックのおける第2の予測データを生成し、前記第1及び第2の予測データを用いて前記第1のピクチャを符号化する符号化部と
を備えることを特徴とする動画像符号化装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動画像符号化プログラム、及び動画像符号化装置に関する。
【背景技術】
【0002】
動画像の圧縮符号化技術については、例えば、ISO/IEC(International Organization for Standardization/International Electrotechnical Commission)による標準規格として、ISO/IEC 23008-2(又はITU-T(International Telecommunication Union Telecommunication Standardization Sector) H.265 “High efficiency video coding”)(以下、「HEVC」と称する場合がある。)がある。HEVCでは、4K(=3840ライン×2160画素)画像や、8K(=7680ライン×4320画素)画像に対する符号化方式などを規定している。
【0003】
HEVCによる符号化方式では、1画面(又はピクチャ)内で、イントラ予測モードとインター予測モードの2種類の予測モードをブロック単位に切り替えることができる。イントラ予測モードは、例えば、現在の符号化対象ピクチャ内から画像を空間方向に予測するモードである。また、インター予測モードは、例えば、現在の符号化対象ピクチャとは別のピクチャを用いて画像を時間方向に予測するモードである。例えば、符号化装置では、イントラ予測モードとインター予測モードの各コストを計算し、コストの少ない方の予測モードを選択することが可能である。
【0004】
動画像符号化装置においては、イントラリフレッシュ(又はイントラスライス)方式による符号化方式(以下では、「イントラリフレッシュ方式」と称する場合がある。)が利用される場合がある。イントラリフレッシュ方式は、例えば、インター予測モードで符号化されるピクチャの一部をイントラ予測モードで符号化する符号化方式である。そして、イントラリフレッシュ方式では、イントラ予測モードで符号化される領域(又はイントラスライス)を、所定周期で複数のピクチャを用いて、巡回させるようにしている。
【0005】
図14(A)と
図14(B)はイントラリフレッシュ方式の例を表す図である。このうち、
図14(A)は、水平イントラリフレッシュ方式の例を表し、
図14(B)は垂直イントラリフレッシュ方式の例を表す。なお、
図14(A)と
図14(B)において、横軸は時間t方向を表す。
【0006】
図14(A)に示す例では、イントラスライス200が画面上、水平方向にあって、時間の経過とともに垂直方向(又は下方向)へ移動する例を表す。動画像符号化装置では、一定のリフレッシュ周期でピクチャ全体にイントラスライス200を巡回させる。イントラスライス200の下端であるリフレッシュ境界210は、時間tの経過とともに、除々に下方へ移動する。そのため、リフレッシュ済領域220は、時間tの経過とともに、除々に拡張される。リフレッシュ済領域220の処理ブロックでは、現在のピクチャのリフレッシュ済領域、又は過去のピクチャのリフレッシュ済領域を参照して符号化が行われる。イントラスライス200が一巡すると、ピクチャ全体がリフレッシュされる。例えば、ピクチャP
0より時間的に前のピクチャから編集が行われた場合、復号側では、一巡後のピクチャP
5から、復号を再開することが可能である。
【0007】
図14(B)に示す例では、イントラスライスが画面上、垂直方向にあって、時間tの経過とともに水平方向(又は右方向)へ移動する例を表す。この場合も、時間tの経過に伴って、リフレッシュ境界210が除々に右へ移動し、リフレッシュ済領域220も除々に拡張される。イントラスライス200が一巡すると、全ピクチャがリフレッシュされる。
【0008】
このように、イントラリフレッシュ方式では、インター予測モードで符号化されるピクチャ内にイントラ予測モードで符号化される領域が含まれるため、ピクチャ全体の符号量を各ピクチャ間で均一にすることができる。そのため、符号化ビットストリームをネットワークへ送信する際に利用される伝送バッファの容量も一定以下とすることが可能となり、定期的にI(Intra)ピクチャを含む符号化ビットストリームと比較して、バッファ遅延を抑制することが可能となる。また、イントラリフレッシュ方式では、イントラスライス200が含まれ、リフレッシュ周期経過後に、画面全体がリフレッシュされるので、動画像データ全体の画質低下も抑制することが可能となる。
【0009】
図15はリフレッシュ符号化方式における入力順と符号化順の関係を表す図である。
図15において、「P」はP(Predictive)ピクチャを表し、添え字は、入力順を表す。
図15に示すように、リフレッシュ符号化方式は、ピクチャの入力の順番で、符号化が行われる。イントラリフレッシュ方式では、入力順に符号化が行われるため、他の符号化方式(例えば、時間階層符号化方式)と比較して、複雑な参照関係をなくすことが可能となる。
【0010】
なお、イントラリフレッシュ方式を、例えば、低遅延符号化方式と称する場合がある。
【0011】
一方、ISO/IECとITU-Tとにおいて合同ワーキンググループとしてJVET(Joint Video Exploration Team)が結成され、次世代の動画像圧縮技術について検討している。JVETにおいては、動き補償技術として、OBMC(Overlapped Block Motion Compensation:オーバーラップ動き補償)を用いることが検討されている。OBMCは、例えば、周辺のブロックの動きベクトルと現処理ブロックの動きベクトルとを加重平均して、現処理ブロックの動きベクトルを算出する技術である。
【0012】
図16(A)と
図16(B)は、OBMCの例を表す図である。JVETによるOBMCでは、例えば、4ライン×4画素、又は8ライン×8画素をサブブロックとし、サブブロック単位で処理が行われる。例えば、1つのPU(Prediction Unit)内に1又は複数のサブブロックが含まれる。JVETによるOBMCでは、PU境界についてOBMCを実施するモード(例えば
図16(A))と、現CU(Current CU(Coding Unit))の全サブブロックについてOBMCを実施するモード(例えば
図16(B))の2つのモードがある。
【0013】
前者のモードの場合、
図16(A)に示すように、斜線で示すサブブロックの動きベクトルを生成する場合、PU境界のうち、水平方向における各サブブロック230では、各サブブロック230の上側に隣接するサブブロックの動きベクトルを用いて動きベクトルを算出する。また、PU境界のうち、垂直方向における各サブブロック240では、各サブブロック240の左側に隣接するサブブロックの動きベクトルを用いて動きベクトルを算出する。
【0014】
後者のモードの場合、
図16(B)に示すように、処理対象のサブブロック(例えば白抜きのサブブロック)に対して、上下左右に隣接する4つのサブブロック(例えば横線で示すサブブロック)の動きベクトルを用いて、処理対象のサブブロックの動きベクトルを算出する。
【0015】
このように、OBMCでは、周辺のブロックの動きベクトルを用いて、処理対象ブロックの動きベクトルを算出するため、例えば、動き予測の一様性を出すことが可能であり、Bピクチャと同様の符号化効率を得ることが可能である。
【0016】
なお、OBMC自体は、H.263においても検討されている。H.263において適用されるOBMCは、例えば、マクロブロックが16ライン×16画素が、8ライン×8画素の4つの輝度予測ブロックに分割されている場合で、無制限動きベクトルモードで、かつ、Pピクチャの場合に適用される。
【0017】
図17(A)から
図17(D)は、H.263において適用されるOBMCの例を表す図である。斜線で示された現輝度ブロック(処理対象ブロック)の動きベクトルと、現輝度ブロックに隣接する2つのブロックの動きベクトルとを重み付け加算により、現輝度ブロックの動きベクトルが算出される。
【0018】
処理対象ブロックに対するサブブロックは、例えば、処理対象ブロックに隣接する上下左右のブロックの全部又は一部のブロックとなっている。
【0019】
このような圧縮符号化技術に関して、例えば、以下の技術がある。すなわち、隣接画素を用いたフィルタ処理により、隣接画素に対応する対応画素を生成し、強制イントラブロックの境界ラインから隣接画素数に対応する対応画素を含有しないように探索範囲を設定し、探索範囲で動きベクトルを検出する画像処理装置がある。
【0020】
この技術によれば、エラー復帰に要する時間を短縮することができる、とされる。
【0021】
また、イントラスライスにおける発生情報量が各ピクチャで均等となるように、イントラスライスの巡回方向における、各ピクチャのイントラスライスの幅を設定し、各ピクチャについてイントラリフレッシュ方式により符号化を行う動画像符号化装置がある。
【0022】
この技術によれば、リフレッシュ周期を一定に保ちつつ、ピクチャ間でのイントラスライスの発生情報量の変動を抑制することができる、とされる。
【先行技術文献】
【非特許文献】
【0023】
【文献】Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, Document: JVET-G1001-v1, 7th Meeting: Torino, IT, 13-21 July 2017
【特許文献】
【0024】
【文献】特開2011-35444号公報
【文献】特開2017-69866号公報
【発明の概要】
【発明が解決しようとする課題】
【0025】
イントラリフレッシュ方式において、OBMCによる動き補償が適用される場合、OBMCが正常に動作しない場合がある。
【0026】
すなわち、OBMCでは、処理対象ブロックに対して、周辺ブロックの動きベクトルが用いられる。そのため、周辺ブロックが、現ピクチャより符号化順で前にある前ピクチャのリフレッシュ境界を超える場合がある。この場合、前ピクチャのリフレッシュ境界を越えた未リフレッシュ済領域を指す、現ピクチャの動きベクトルが生成される場合がある。このような動きベクトルが生成されると、復号側では、前ピクチャの未リフレッシュ領域の画像データを用いて、現ピクチャの復号画像が生成される。そのため、仮に未リフレッシュ領域にエラーが含まれていると、復号側では、エラーを含む復号画像を生成することになる。このような場合、OBMCが正常に動作している、とは言えず、復号画像が劣化する場合がある。
【0027】
上述した、強制イントラブロックの境界ラインから隣接画素数に対応する対応画素を含有しないように探索範囲を設定する技術は、OBMCについて何ら議論されていない。そのため、上述した技術では、イントラリフレッシュ方式においてOBMCによる動き補償が適用される場合において、前ピクチャのリフレッシュ境界を越えた動きベクトルが生成され、OBMCが正常に動作しない、という問題に対する解決策は何ら示唆されていない。
【0028】
また、上述した、イントラスライスにおける発生情報量が各ピクチャで均等となるように、イントラスライスの巡回方向における、各ピクチャのイントラスライスの幅を設定する技術についても、OBMCについて何ら議論されていない。従って、かかる技術についても、イントラリフレッシュ方式において、OBMCが適用される場合において、OBMCが正常に動作しない、という問題に対する解決策は何ら示唆されていない。
【0029】
そこで、1つの側面では、イントラリフレッシュ符号化において、OBMCを正常に動作させることが可能な動画像符号化プログラム及び動画像符号化装置を提供することにある。
【課題を解決するための手段】
【0030】
1つの態様では、インター予測符号化で符号化されるピクチャの一部をイントラ予測符号化で符号化し、イントラ予測符号化が行われるイントラスライスラインを、複数のピクチャで巡回させる符号化方式を用いて動画像を符号化する動画像符号化装置のコンピュータに実行させる動画像符号化プログラムであって、第1の処理ブロックに対する参照ブロックの探索範囲を、前記第1の処理ブロックから、前記第1の処理ブロックが存在する第1のピクチャよりも符号化順で前にある第2のピクチャにおいて前記イントラスライスラインが通過したリフレッシュ済領域と前記イントラスライスラインが通過していない未リフレッシュ領域との境界であるリフレッシュ境界よりも第2の処理ブロックのサイズ分、前記第1の処理ブロックに近い側までの範囲に設定し、前記探索範囲において前記第1の処理ブロックに対する第1の動きベクトルを検出し、さらに、前記第1の処理ブロックの周辺にある前記第2の処理ブロックで検出された第2の動きベクトルと前記第1の動きベクトルとを加重平均して前記第1の動きベクトルとし、 前記第1の動きベクトルと前記第2のピクチャとを用いて第1の予測データを生成し、前記第1のピクチャの前記イントラスライスライン内の他のブロックを利用して該イントラスライスライン内のブロックのおける第2の予測データを生成し、前記第1及び第2の予測データを用いて前記第1のピクチャを符号化する処理を前記コンピュータに実行させる。
【発明の効果】
【0031】
1つの側面では、イントラリフレッシュ符号化において、OBMCを正常に動作させることができる。
【図面の簡単な説明】
【0032】
【
図1】
図1は動画像符号化装置の構成例を表す図である。
【
図4】
図4(A)と
図4(B)は探索範囲の例を表す図である。
【
図5】
図5(A)と
図5(B)は探索範囲の例を表す図である。
【
図7】
図7(A)は探索範囲、
図7(B)は動きベクトルの例を夫々表す図である。
【
図8】
図8(A)と
図8(B)は探索範囲の例を表す図である。
【
図9】
図9(A)と
図9(B)は探索範囲の例を表す図である。
【
図13】
図13は動画像符号化装置のハードウェア構成例を表す図である。
【
図15】
図15はイントラリフレッシュ方式におけるピクチャの入力順を表す図である。
【発明を実施するための形態】
【0033】
以下、本実施の形態について図面を参照して詳細に説明する。本明細書における課題及び実施例は一例であり、本願の権利範囲を限定するものではない。そして、各実施の形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、本明細書で使用している用語や記載した技術的内容は、ISO/IECなど、画像圧縮符号化に関する規格として規格書に記載された用語や技術的内容が適宜用いられてもよい。
【0034】
[第1の実施の形態]
<動画像符号化装置の構成例>
図1は、本第1の実施の形態における動画像符号化装置100の構成例を表す図である。
【0035】
動画像符号化装置100は、イントラリフレッシュ方式による圧縮符号化処理を行う。イントラリフレッシュ方式は、例えば、インター予測符号化で符号化されるピクチャの一部をイントラ予測符号化で符号化し、イントラ予測符号化が行われるイントラスライスラインを、複数のピクチャを用いて巡回させる符号化方式である。イントラリフレッシュ方式により、例えば、バッファ遅延を抑制し、動画像データ全体の画質低下も抑制することが可能となる。イントラリフレッシュ方式による符号化方式を、例えば、低遅延符号化と称する場合がある。
【0036】
また、動画像符号化装置100は、OBMCによる動き補償を行うことが可能である。OBMCは、例えば、処理対象ブロックの動きベクトルと、処理対象ブロック周辺の周辺ブロックの動きベクトルとを加重平均して、処理対象ブロックの動きベクトルとする方式である。OBMCにより、例えば、Bピクチャと同等の符号化効率を得ることが可能となる。
【0037】
動画像符号化装置100は、コントロール部110と、減算部111、直交変換及び量子化部112、可変長符号化部113、逆量子化及び逆直交変換部114、加算部115、フレームメモリ116を備える。また、動画像符号化装置100は、イントラリフレッシュ判定部120と、探索範囲制限部121、動きベクトル検出部122、インター予測部123、イントラ予測部124、イントラ及びインター判定部125、及び予測画生成部126を備える。
【0038】
コントロール部110は、入力画像の画像データを入力し、例えば、CU単位で入力画像の画像データを出力する。コントロール部110は、入力画像の画像データを、減算部111、イントラリフレッシュ判定部120、及び探索範囲制限部121へ出力する。
【0039】
また、コントロール部110は、OBMCを適用するか否かを判定し、適用する場合は、OBMCモードである旨をイントラリフレッシュ判定部120と探索範囲制限部121へ出力する。OBMCを適用するか否かは、例えば、ユーザからのOBMCを適用する旨の入力情報をコントロール部110が受けたか否かで判定してもよい。
【0040】
なお、以下では、「画像」と「動画像」とを区別しないで用いる場合がある。また、「画像」と「画像データ」とを区別しないで用いる場合がある。
【0041】
減算部111は、入力画像の画像データに対して、予測画生成部126から出力された予測画像の画像データを減算し、差分画像の画像データを生成する。予測画像としては、イントラリフレッシュ方式が適用されるため、1枚のピクチャにおいて、インター予測モードで予測された予測画像データと、そのピクチャの一部(又はイントラスライス)にイントラ予測モードで予測された予測データとを含む。減算部111は、差分画像の画像データを直交変換及び量子化部112へ出力する。
【0042】
直交変換及び量子化部112は、差分画像の画像データに対して、例えば、TU(Transform Unit)単位で整数変換を行い、周波数領域への画像データへ変換(又は直交変換)する。そして、直交変換及び量子化部112は、整数変換後の差分画像の画像データに対して、例えば、TU単位で、量子化ステップで除算した量子化値を算出する。直交変換及び量子化部112は、算出した量子化値を可変長符号化部113と逆量子化及び逆直交変換部114へ出力する。
【0043】
可変長符号化部113は、例えば、ハフマン符号化をベースにしたUVLC(Universal Variable Length Coding)による符号化方式を利用して、量子化値を符号化する。可変長符号化部113は、符号化後の画像データを出力する。符号化方式については、例えば、算出符号化方式を用いて符号化が行われてもよい。
【0044】
逆量子化及び逆直交変換部114は、量子化値に対して、直交変換及び量子化部112で用いた量子化ステップを乗算等することで、量子化値となる前の整数変換後の画像データを算出する。そして、逆量子化及び逆直交変換部114は、整数変換後の画像データに対して、逆整数変換処理を行うことで、整数変換前の差分画像の画像データを生成する。逆量子化及び逆直交変換部114は、差分画像の画像データを出力する。
【0045】
加算部115は、逆量子化及び逆直交変換部114から出力された差分画像の画像データと、予測画生成部126から出力された予測画像の画像データとを加算し、復号画像を生成する。加算部115は、復号画像の画像データをフレームメモリ116へ出力する。
【0046】
フレームメモリ116は、復号画像の画像データを記憶するメモリである。加算部115により、復号画像の画像データがフレームメモリ116に記憶され、動きベクトル検出部122により、記憶された復号画像の画像データが読み出される。
【0047】
イントラリフレッシュ判定部120は、処理対象ブロックがインター予測モードにより処理されるブロックか、イントラ予測モードにより処理されるブロックかを示す情報を、探索範囲制限部121、イントラ予測部124、及び、イントラ及びインター判定部125へ出力する。また、イントラリフレッシュ判定部120は、入力画像の画像データをイントラ予測部124へ出力する。
【0048】
探索範囲制限部121は、例えば、OBMCモードのときであって、処理対象ブロックが現ピクチャのリフレッシュ済領域に存在するとき、処理対象のブロックに対する参照ブロックの探索範囲を一定範囲に制限する。一定範囲は、例えば、処理対象のブロックから、処理対象ブロックが存在する現ピクチャよりも符号化順で前にある前ピクチャにおけるリフレッシュ境界よりも、OBMCブロックサイズ(又はOBMCの1サブブロックサイズ)分、処理対象ブロックに近い側までの範囲である。詳細は後述する。
【0049】
なお、探索範囲制限部121は、OBMCモードではないときであって、処理対象ブロックが現ピクチャのリフレッシュ済領域の範囲内のとき、例えば、参照ブロックの探索範囲を、処理対象ブロックから前ピクチャのリフレッシュ境界までの範囲に制限する。
【0050】
また、探索範囲制限部121は、OBMCモードのときで処理対象ブロックが未リフレッシュ済領域に存在するとき、又は、OBMCモードではないときで処理対象ブロックが未リフレッシュ済領域に存在するとき、探索範囲の制限を行うことはしない。
【0051】
なお、探索範囲制限部121は、イントラリフレッシュ判定部120からイントラ予測モードである情報を受け取ったときは、とくに処理を行うことはなく、インター予測モードである情報を受け取ったときに、上記した処理を行う。
【0052】
探索範囲制限部121は、探索範囲に関する情報とOBMCモードの有無に関する情報などを動きベクトル検出部122へ出力する。また、探索範囲制限部121は、コントロール部110から出力された画像データを、動きベクトル検出部122へ出力する。
【0053】
なお、探索範囲制限部121における処理対象ブロックは、例えば、PUである。ただし、PUには、OBMCブロックが含まれるため、例えば、探索範囲制限部121がPUに対する参照ブロックの探索範囲を制限することは、OBMCブロックに対する参照ブロックの探索範囲を制限することと同じである。
【0054】
動きベクトル検出部122は、例えば、フレームメモリ116から前ピクチャの復号画像の画像データを読み出し、探索範囲内において、現ピクチャの処理対象ブロックの参照ブロックを、前ピクチャの復号画像から探索する。具体的には、動きベクトル検出部122は、現ピクチャの処理対象ブロックと、探索範囲内における復号画像の参照ブロックとの間で、ブロックマッチングを行い、処理対象ブロックに最も一致する参照ブロックを探索する。動きベクトル検出部122は、このような参照ブロックを探索することで、処理対象ブロックの動きベクトルを検出する。なお、動きベクトル検出部122は、イントラスライスに含まれる処理対象ブロックに対しては、動きベクトルを検出することはしない。
【0055】
例えば、動きベクトル検出部122は、OBMCモードのとき、処理対象ブロックに含まれるOBMCブロック(又はサブブロック。以下では、「OBMCブロック」と称する場合がある。)単位で、探索範囲内において、動きベクトルを検出する。
【0056】
例えば、OBMCモードが、PU境界のサブブロックに適用するモードの場合(例えば
図16(A))、動きベクトル検出部122は、PU境界において、PUをOBMCブロックに分割し、OBMCブロック単位で、動きベクトルを検出する。この場合、動きベクトル検出部122は、OBMCブロック単位に、ブロックマッチングを行い、参照ブロックを探索する。
【0057】
なお、動きベクトル検出部122は、PU内のOBMCブロック以外の領域について、その領域をブロック単位として、そのブロック単位で動きベクトルを検出する。
【0058】
一方、例えば、OBMCモードが、PU内の全OBMCブロックに適用するモードの場合(例えば
図16(B))、動きベクトル検出部122は、PU内をOBMCブロックに分割し、PU内の全OBMCブロックに対して、OBMCブロック単位で動きベクトルを検出する。
【0059】
そして、動きベクトル検出部122は、処理対象ブロックの動きベクトルと、処理対象ブロック周辺にある1又は複数の周辺ブロックの動きベクトルとを利用して、処理対象ブロックの動きベクトルを算出する。
【0060】
具体的には、動きベクトル検出部122は、例えば、処理対象ブロックの動きベクトルと、周辺ブロックの動きベクトルとを加重平均して、処理対象ブロックの動きベクトルとする。加重平均を算出する際に用いられる加重の重みは、例えば、周辺ブロックの動きベクトルに対して、{1/4,1/8,1/16,1/32}の全部又は一部、処理対象ブロックの動きベクトルに対して、{3/4,7/8,15/16,31/32}の全部又は一部が用いられてよい。
【0061】
ただし、これらの重みは、一例であって、JVETで検討されている、他の重みが用いられてもよい。例えば、処理対象ブロックの動きベクトルに対する重みが、周辺ブロックの動きベクトルに対する重みよりも大きい値であってもよい。
【0062】
動きベクトル検出部122は、検出した動きベクトルに関する情報と前ピクチャの復号画像の画像データなどをインター予測部123へ出力する。
【0063】
インター予測部123は、前ピクチャの復号画像の画像データと動きベクトルとを利用して、予測データを生成する。具体的には、インター予測部123は、例えば、前ピクチャの復号画像に対して動きベクトル分ずらした予測画像の予測データを生成する。インター予測部123は、予測データをイントラ及びインター判定部125へ出力する。
【0064】
なお、インター予測部123は、例えば、PU単位やOBMCブロック単位で生成した予測データを、内部メモリなどの記憶し、CU単位でまとめて予測データを読み出して、イントラ及びインター判定部125へ出力してもよい。
【0065】
イントラ予測部124は、例えば、コントロール部110から出力された現ピクチャのイントラスライス内の処理ブロックの画像データに対して、処理ブロック近傍のイントラスライス内の他のブロックからの画像データを補間することで、予測画像の予測データを生成する。
【0066】
イントラ予測部124は、イントラリフレッシュ判定部120から現在の処理対象ブロックがイントラ予測モードであることを表す情報を受け取るため、この情報を利用して、コントロール部110から受け取った処理対象ブロックに対して予測画像の予測データを生成すればよい。
【0067】
なお、イントラ予測部124は、現在の処理対象ブロックがインター予測モードであることを示す情報を受け取ったときは、コントロール部110から受け取った処理対象ブロックに対しては、とくに処理を行わなくてもよい。
【0068】
イントラ予測部124は、生成した予測画像の予測データをイントラ及びインター判定部125へ出力する。なお、イントラ予測部124で処理される処理ブロックの単位は、例えば、CUやCTU(Coding Tree Unit)であってよい。
【0069】
イントラ及びインター判定部125は、イントラリフレッシュ判定部120から出力された、インター予測モードかイントラ予測モードかの情報に応じて、インター予測部123又はイントラ予測部124から出力された予測データを予測画生成部126へ出力する。具体的には、イントラ及びインター判定部125は、インター予測モードのとき、インター予測部123から出力された予測データを予測画生成部126へ出力し、イントラ予測モードのとき、イントラ予測部124から出力された予測データを予測画生成部126へ出力する。
【0070】
予測画生成部126は、イントラ及びインター判定部125から受け取った予測データを予測画像の画像データとして、減算部111と加算部115へ出力する。
【0071】
なお、動画像符号化装置100は、符号化部130を含む。符号化部130は、符号化部130は、減算部111、直交変換及び量子化部112、可変長符号化部113、逆量子化及び逆直交変換部114、加算部115、フレームメモリ116を含む。また、符号化部130は、インター予測部123、イントラ予測部124、イントラ及びインター判定部125、及び予測画生成部126を含む。
【0072】
<動作例>
図2は動画像符号化装置100における動作例を表すフローチャートである。
図2に示すフローチャートは、インター予測モードの際の動作例を表している。
【0073】
動画像符号化装置100は、処理を開始すると(S10)、OBMCモードか否かを判定する(S11)。例えば、コントロール部110は、ユーザからOBMCモードである旨の情報を受け付けたか否かにより判定してもよい。
【0074】
動画像符号化装置100は、現CU(Current CU)がリフレッシュ済領域か否かを判定する(S12)。例えば、コントロール部110は、CU単位で入力画像の画像データを減算部111や探索範囲制限部121へ出力するが、処理対象ブロックである現CUがリフレッシュ済領域内に存在するか否かを判定する。
【0075】
図4(A)は、あるピクチャP
1における、水平イントラリフレッシュ方式の場合のリフレッシュ済領域と未リフレッシュ済領域の例を表す図である。
図4(A)において、斜線で示す領域は、イントラスライスを表している。イントラスライスの下端がリフレッシュ済領域と未リフレッシュ済領域との境界となり、この境界が、リフレッシュ境界となる。
【0076】
例えば、コントロール部110は、内部メモリに、各ピクチャに対するリフレッシュ境界の情報を保持している。そのため、コントロール部110は、現CUが含まれるピクチャと、現CUのピクチャ内での位置とに基づいて、現CUがリフレッシュ境界より上の領域か、下の領域かにより、現CUがリフレッシュ済領域内に存在するか否かを判定してもよい。垂直イントラリフレッシュ方式の場合、コントロール部110は、現在の処理ブロックが、リフレッシュ境界より左の領域(又はリフレッシュ済領域)か、右の領域(又は未リフレッシュ済領域)かにより判定してもよい。
【0077】
なお、動き補償は、例えば、PU単位で行われる場合がある。この場合、CUには1又は複数のPUが含まれるため、現CUがリフレッシュ済領域か否かを判定することは、現PUがリフレッシュ済領域であるか否かを判定していることになり得る。
【0078】
図2に戻り、動画像符号化装置100は、現CUがリフレッシュ済領域のとき(S12でYes)、PUサイズがOBMCの処理ブロック単位であるN
OBサイズ以上か否かを判定する(S13)。例えば、コントロール部110は、PUサイズがOBMCのブロックサイズN
OB以上か否かを確認している。なお、コントロール部110は、例えば、内部メモリに、PUサイズとOBMCのブロックサイズN
OBとを記憶しており、本処理の際に内部メモリから読み出して処理を行えばよい。OBMCのブロックサイズN
OBは、例えば、シーケンス毎に異なってもよい。
【0079】
動画像符号化装置100は、PUサイズがOBMCのブロックサイズNOB以上のとき(S13でYes)、水平イントラリフレッシュか否かを判定する(S14)。例えば、コントロール部110は、イントラリフレッシュ方式を適用する際に、水平イントラリフレッシュで処理を行うのか、垂直イントラリフレッシュで処理を行うのかを決定しており、決定結果に従って、水平リフレッシュか否かを判定してもよい。
【0080】
動画像符号化装置100は、水平イントラリフレッシュのとき(S14でYes)、垂直方向における参照ブロックの探索範囲を、以下の式(1)で示す範囲に制限する。
【0081】
max(0,RmaxMV-NOB) ・・・(1)
以下、式(1)に示す探索範囲の詳細について説明する。
【0082】
<垂直方向における探索範囲>
式(1)において、RmaxMVは、例えば、処理対象ブロックから、処理対象ブロックがある現ピクチャよりも符号化順で前にある前ピクチャのリフレッシュ境界までの距離を表す。
【0083】
図4(A)と
図4(B)は、R
maxMVの例を表す図である。
図4(A)と
図4(B)において、横軸は時間tを表し、斜線で示す領域はイントラスライスを表し、現在の処理対象のブロックは「現PU」であるとする。
【0084】
図4(B)に示すように、太い点線は前ピクチャP
1のリフレッシュ境界を表す。
図4(B)に示すように、例えば、現ピクチャP
2において、「現PU」の下端から前ピクチャP
1のリフレッシュ境界までの距離がR
maxMVとなる。
【0085】
また、式(1)において、NOBは、上述したように、例えば、OBMCの単位ブロックのサイズを表す。従って、RmaxMV-NOBは、例えば、現PU(の下端)から、前ピクチャP1のリフレッシュ境界よりも、1OBMCブロックサイズNOB分、現PUに近い側までの範囲を表す。
【0086】
図5(A)は、現PUがピクチャP
Nに存在するときの例を表し、
図5(B)は、現PUに対する参照ブロックの探索範囲の例を表す。
図5(A)と
図5(B)に示すように、探索範囲制限部121によって、参照ブロックの探索範囲を、(R
maxMV-N
OB)の範囲に制限することで、現PUに対する動きベクトルを、前ピクチャのリフレッシュ境界を超えない範囲に制限させることが可能となる。仮に、
図5(B)に示すように、現PUが処理対象ブロックで、現PUに対する参照ブロック(一点鎖線で示すブロック)が探索範囲の下限にあったとき、その場合の動きベクトルは、前ピクチャのリフレッシュ境界を超えない範囲となる。
【0087】
図6は、探索範囲の例を表す図である。
図6に示すように、ピクチャP
Nに存在する現PUの動きベクトルを検出するための参照ブロックの探索範囲は、実際には、前ピクチャP
N-1における(R
maxMV-N
OB)の範囲となる。
【0088】
図4(B)から
図6までの例は、現PUから前ピクチャのリフレッシュ境界までの距離R
maxMVが、1OBMCブロックサイズN
OBよりも大きい場合(R
maxMV>N
OB)の例について説明した。
【0089】
図7(A)は、現PUから前ピクチャのリフレッシュ境界までの距離R
maxMVと、1OBMCブロックサイズN
OBとが同じ場合(R
maxMV=N
OB)の例を表す図である。
【0090】
図7(A)では、現PUとして、現PUに含まれるOBMC処理ブロックが処理対象ブロックとなっている例を表している。
図7(A)に示すように、処理対象ブロックが探索範囲の下限に位置する場合も、探索範囲は式(1)を満たす範囲となる。
【0091】
従って、OBMCの際に、
図7(A)に示すように、処理対象ブロックの下に、処理対象ブロックに対する周辺OBMCブロックが存在する場合でも、周辺OBMCブロックが探索範囲を超えていると、その周辺OBMCブロックは考慮されない。従って、動きベクトル検出部122は、OBMCの際に、探索範囲外に存在する周辺OBMCブロックの動きベクトルを用いることなく、探索範囲内に存在する周辺OBMCブロックの動きベクトルを用いて、OBMCを適用する。
【0092】
図7(B)に示すように、探索範囲の下限に存在する処理対象ブロック(OBMCブロック)では、探索範囲外の周辺OBMCブロックを用いないため、仮にその周辺OBMCブロックがリフレッシュ境界を超える動きベクトルを持っていても、その動きベクトルは用いられない。従って、動きベクトル検出部122は、処理対象ブロックに対して、前ピクチャのリフレッシュ境界を超える動きベクトルを検出することはない。この場合、動きベクトル検出部122は、探索範囲内の周辺OBMCを用いて、処理対象のOBMCブロックの動きベクトルを検出する。
【0093】
なお、
図7(B)に示すように、処理対象ブロック(OBMCブロック)が、探索範囲を超えて、前ピクチャのリフレッシュ境界のすぐ上に存在する場合(点線のブロック)がある。この場合、探索範囲制限部121は、処理対象ブロックに対する参照ブロックの探索範囲を、前ピクチャのリフレッシュ境界を超えない範囲に制限する。これにより、処理対象ブロックにおける動きベクトルは、前ピクチャのリフレッシュ境界を超えないようにすることが可能となる。
【0094】
以上、水平イントラリフレッシュのときの垂直方向における参照ブロックの探索範囲の例について説明した。
【0095】
図2に戻り、一方、動画像符号化装置100は、水平イントラリフレッシュでないとき(S14でNo)、すなわち、垂直イントラリフレッシュのとき、水平方向における参照ブロックの探索範囲を、式(1)のように制限する(S18)。なお、式(1)において、かっこの中は、単に数値を表しており、(x,y)座標に対応するものではない。
【0096】
以下、垂直イントラリフレッシュのときの水平方向における参照ブロックの探索範囲の例について詳細に説明する。
【0097】
<水平方向における探索範囲>
図8(A)と
図8(B)は、R
maxMVの例を表す図である。
【0098】
水平方向における探索範囲も、垂直方向における探索範囲と基本的には考え方は同じである。
図8(B)に示すように、現PUが処理対象ブロックであって、現PUの右端から、前ピクチャP
1のリフレッシュ境界までの距離がR
maxMVである。探索範囲である(R
maxMV-N
OB)は、例えば、現PU(の右端)から、前ピクチャP
1のリフレッシュ境界よりも、1OBMCブロックサイズN
OB分、現PUに近い側までの範囲を表す。
【0099】
図9(A)は、現PUがピクチャP
Nに存在するときの例を表し、
図9(B)は、現PUに対する参照ブロックの探索範囲の例を表す。
図9(A)と
図9(B)に示すように、探索範囲制限部121によって、参照ブロックの探索範囲を、(R
maxMV-N
OB)の範囲に制限することで、現PUに対する動きベクトルを、前ピクチャのリフレッシュ境界を超えないように制限させることが可能となる。仮に、
図9(B)に示すように、現PUに対する参照ブロック(一点鎖線で示すブロック)が探索範囲の右端にあったとき、探索範囲制限部121は、探索範囲を超えたブロックを参照しないように探索範囲を設定する。これにより、動きベクトル検出部122では、探索範囲を超えたブロックを参照しないため、動きベクトルを、前ピクチャのリフレッシュ境界を超えない範囲に設定できる。
【0100】
なお、実際の探索範囲は、垂直方向における探索範囲を同様に、現PUの存在するピクチャより前の前ピクチャの探索範囲内となる(例えば、
図6)。
【0101】
図10(A)は、現PUから前ピクチャのリフレッシュ境界までの距離R
maxMVと、1OBMCブロックサイズN
OBとが同じ場合(R
maxMV=N
OB)の例を表す図である。
【0102】
図10(A)では、現PUとして、現PUに含まれるOBMC処理ブロックが処理対象ブロックとする例を表している。
図10(A)に示すように、処理対象ブロックが探索範囲の右端に位置する場合も、探索範囲は式(1)を満たす範囲となる。
【0103】
従って、
図10(A)に示すように、処理対象ブロックの右側に、処理対象ブロックに対する周辺OBMCブロックが存在する場合、周辺OBMCブロックが探索範囲外となるときは、その周辺ブロックは考慮されない。従って、動きベクトル検出部122は、OBMCの際に、探索範囲外に存在する周辺OBMCブロックの動きベクトルを用いることなく、探索範囲内に存在する周辺OBMCブロックの動きベクトルを用いて、OBMCを適用する。
【0104】
図10(B)に示すように、探索範囲の右端に存在する処理対象ブロックは、探索範囲外の周辺OBMCブロックを用いないため、仮にその周辺OBMCブロックの動きベクトルが前ピクチャのリフレッシュ境界を越えている場合でも、その動きベクトルは用いられない。従って、動きベクトル検出部122は、処理対象ブロックに対して、前ピクチャのリフレッシュ境界を超える動きベクトルを検出することはない。この場合、動きベクトル検出部122は、探索範囲内において周辺OBMCブロックがあれば、この周辺OBMCブロックを用いて、処理対象のOBMCブロックの動きベクトルを検出する。
【0105】
なお、
図10(B)に示すように、処理対象ブロック(OBMCブロック)が、探索範囲を超えて、前ピクチャのリフレッシュ境界のすぐ左側に存在する場合(点線で示すブロック)がある。この場合、探索範囲制限部121は、参照ブロックの探索範囲を、前ピクチャのリフレッシュ境界を超えない範囲に制限する。
【0106】
以上、垂直イントラリフレッシュのときの水平方向における参照ブロックの探索範囲の例について説明した。
【0107】
上述した例は、JVETで議論されているOBMCの例について説明した。
【0108】
図11(A)と
図11(B)は、H.263で適用されるOBMCの場合の例を表す図である。H.263で適用されるOBMCの処理対象ブロックと周辺ブロックとの関係は、例えば、
図11(A)や
図11(B)で示すように、処理対象ブロック(斜線)に対して、隣接して右側と下側に周辺ブロックが存在する場合がある。
【0109】
H.263のOBMCが適用される場合でも、水平イントラリフレッシュの場合、探索範囲は、式(1)で示す範囲となる。例えば、
図11(A)で示すように、その探索範囲の下端に処理対象ブロック(OBMCブロック)が存在するときは、下側にある周辺OBMCブロックは探索範囲外となる。動きベクトル検出部122では、その周辺OBMCの動きベクトルを用いることなく、探索範囲内にある、右側の周辺OBMCブロックの動きベクトルを用いて、処理対象のOBMCブロックの動きベクトルを算出する。
【0110】
垂直イントラリフレッシュの場合も探索範囲は、式(1)で示す範囲となる。例えば、
図11(B)で示すように、その探索範囲の右端に処理対象ブロック(OBMCブロック)が存在するときでも、右側にある周辺OBMCブロックは探索範囲外となる。動きベクトル検出部122は、その周辺OBMCの動きベクトルを用いることなく、探索範囲内にある、下側の周辺OBMCブロックの動きベクトルを用いて、処理対象のOBMCブロックの動きベクトルを算出する。
【0111】
なお、H.263によるOBMCの場合においても、処理対象ブロックが、探索範囲を超えて、リフレッシュ境界のすぐ上側(水平イントラリフレッシュの場合)やすく左側(垂直イントラリフレッシュの場合)に存在する場合がある。この場合も、探索範囲制限部121は、
図7(B)や
図10(B)と同様に、探索範囲を、前ピクチャのリフレッシュ境界を超えない範囲に制限すればよい。
【0112】
以上、垂直方向の制限範囲と水平方向の制限範囲について説明した。
【0113】
図2に戻り、動画像符号化装置100は、水平イントラリフレッシュで垂直方向における探索範囲を制限し(S15)、垂直イントラリフレッシュで水平方向における探索範囲を制限した(S18)後、PU処理を行う(S16)。
【0114】
PU処理は、例えば、制限された探索範囲内において動きベクトルを検出する処理と、インター予測により予測画像の予測データを生成する処理などが含まれる。例えば、以下の処理がある。すなわち、動きベクトル検出部122は、探索範囲内において、処理対象ブロックに対する参照ブロックを探索して、動きベクトルを検出する。インター予測部123は、動きベクトルと、前ピクチャの復号画像とを用いて、予測画像の予測データを生成する。イントラ及びインター判定部125は、インター予測による予測データを選択し、予測画生成部126は、選択された予測データを、予測画像の画像データとして出力する。
【0115】
動画像符号化装置100は、PU処理を終了すると、一連の処理を終了する(S17)。
【0116】
一方、動画像符号化装置100は、OBMCモードではないとき(S11でNo)、例えば、CU内に含まれるPUの個数分、
図3に示すS21からS22の処理を繰り返す(S20からS23までのループ)。すなわち、動画像符号化装置100は、CUに含まれるPUの1つ1つにインデックスを割り当て、インデックスの若い方から順番に、PU毎に、イントラリフレッシュによる探索範囲を制限する処理を行う(S21)。
【0117】
例えば、探索範囲制限部121は、処理対象ブロックが現ピクチャのリフレッシュ済領域の範囲内にあるとき、参照ブロックの探索範囲を、前ピクチャのリフレッシュ境界までの範囲に制限する。ただし、探索範囲制限部121は、処理対象ブロックが現ピクチャの未リフレッシュ済領域の範囲内の場合は、とくに探索範囲を制限しなくてもよい。
【0118】
次に、動画像符号化装置100は、PU処理を行う(S22)。例えば、動きベクトル検出部122は、制限された探索範囲内又は制限されない状態で、参照ブロックを探索して、動きベクトルを検出する。以降、インター予測部123における処理などは、
図2のS16と同様である。
【0119】
図3に戻り、以降、動画像符号化装置100は、CU内に含まれる全PUに対して、S21とS22の処理を行う。全PUに対してPU処理を終えると、動画像符号化装置100は、一連の処理を終了する(
図2のS17)。
【0120】
一方、動画像符号化装置100は、現CUが現ピクチャのリフレッシュ済領域にないとき(S12でNo)、
図3のS20からS23までの処理を行う。この場合は、例えば、現CUが、
図4(B)に示すピクチャP
2に存在するとき、現CUが現ピクチャP
2のリフレッシュ境界より下側に存在する場合である。この場合、動きベクトル検出部122は、インター予測により、前ピクチャの未リフレッシュ領域を参照して、動きベクトルを検出することになる。
【0121】
図2に戻り、一方、PUサイズがOBMCブロックサイズN
OBよりも小さいとき(S13でNo)、
図3のS20からS23までの処理を行う。この場合は、1つのOBMCブロックサイズが、PUサイズよりも大きいため、例外的な取り扱いとして、
図3に示すS20からS23までの処理を行うようにしている。
【0122】
以上説明したように、本第1の実施の形態では、イントラリフレッシュ方式でOBMCを適用する際に、処理対象ブロックに対する参照ブロックの探索範囲を、max(0,RmaxMV-NOB)に制限するようにしている。これにより、例えば、動きベクトル検出部122では、前ピクチャのリフレッシュ境界を超える動きベクトルを検出することがなくなる。そのため、復号側では、前ピクチャの未リフレッシュ領域のブロックを用いて復号画像を生成することがない。従って、復号画像に劣化が生じることがない。よって、動画像符号化装置100において、イントラリフレッシュ方式による符号化の際に、OBMCを適用しても、OBMCを正常に動作させることが可能となる。
【0123】
[第2の実施の形態]
第1の実施の形態では、動画像符号化装置100が、OBMCを適用する際に、参照ブロックの探索範囲を、max(0,RmaxMV-NOB)に制限する例について説明した。本第2の実施の形態では、動きベクトルの探索結果が、所定範囲を超えるとき、動画像符号化装置100が、OBMCをオフにする例である。
【0124】
図12は、第2の実施の形態における動作例を表すフローチャートである。
【0125】
S10からS14までは、第1の実施の形態と同様である。
【0126】
動画像符号化装置100は、水平イントラリフレッシュのとき(S14でYes)、処理対象ブロックに対する参照ブロックの動きベクトルの垂直成分が、所定範囲(RmaxMV-NOB)を超えたか否かを判定する(S30)。例えば、動画像符号化装置100は、以下の処理を行う。
【0127】
すなわち、探索範囲制限部121では、とくに探索範囲を制限する処理を行わない。そのため、動きベクトル検出部122では、参照ブロックの探索範囲を制限しない。そして、動きベクトル検出部122は、動きベクトル探索における参照ブロックの垂直位置が、所定範囲(RmaxMV-NOB)を超えたか否かを判定する。すなわち、動きベクトル検出部122は、処理ブロックの動きベクトルの垂直成分が、所定範囲(RmaxMV-NOB)を超えたか否かを判定する。
【0128】
動画像符号化装置100は、動きベクトル(又は参照ブロック)の探索結果が、所定範囲を超えたとき(S30でYes)、OBMCをオフにする(S31)。例えば、動きベクトル検出部122は、処理ブロックの動きベクトルが、所定範囲(RmaxMV-NOB)を超えたとき、OBMCによる動きベクトルの検出処理を行わない。この場合、動きベクトル検出部122は、そのまま動きベクトルを用いて、PU処理を行う(S16)。
【0129】
OBMCでは、処理対象ブロックの動きベクトルだけではなく、周辺の動きベクトルを用いて処理対象の動きベクトルを用いている。そのため、例えば、処理対象ブロックの動きベクトルが所定範囲を超えると、周辺ブロックの動きベクトルも所定範囲を超える可能性がある。このような場合に、OBMCの処理を行うと、更に、前ピクチャのリフレッシュ境界を越えた周辺ブロックの動きベクトルを用いて、処理対象の動きベクトルを算出する場合がある。そこで、本第2の実施の形態では、このような場合、OBMCをオフにして、その可能性をできるだけ低くするようにしている。
【0130】
一方、動画像符号化装置100は、動きベクトルの探索結果が、所定範囲を超えないとき(S30でNo)、OBMCモードを継続して、PU処理を行う(S16)。PU処理においては、例えば、動きベクトル検出部122が、OBMCを用いて、周辺ブロックの動きベクトルを利用して、処理対象ブロックの動きベクトルを算出する。
【0131】
一方、動画像符号化装置100は、水平イントラリフレッシュではなく、垂直イントラリフレッシュのとき(S14でNo)、動きベクトルの水平成分が、所定範囲を超えたか否かを判定し(S32)、超えているときは(S32でYes)、OBMCをオフにする(S33)。
【0132】
一方、動画像符号化装置100は、動きベクトルの水平探索結果が、所定範囲を超えないとき(S32でNo)、OBMCモードを継続して、PU処理を行う(S16)。
【0133】
本第2の実施の形態においても、動画像符号化装置100は、処理対象ブロックの動きベクトルが探索範囲を超えるとき、OBMCをオフすることで、例えば、前ピクチャの未リフレッシュ済領域のブロックを参照する可能性を低くすることが可能となる。従って、復号側の際に、未リフレッシュ済領域に含まれるエラーなどを参照する可能性も低くすることができる。よって、動画像符号化装置100において、イントラリフレッシュ方式による符号化の際に、OBMCを適用しても、OBMCを正常に動作させることが可能となる。また、復号側でも、未リフレッシュ済領域を参照することによる復号画像の劣化を生じさせないようにすることが可能となる。
【0134】
なお、上述した第2の実施の形態において、所定範囲を、(RmaxMV-NOB)とする例について説明した。例えば、所定範囲を、前ピクチャのリフレッシュ境界としてもよい。
【0135】
[その他の実施の形態]
図13は、動画像符号化装置100のハードウェア構成例を表す図である。
【0136】
動画像符号化装置100は、CPU(Central Processing Unit)150、メモリ151、DSP(Digital Signal Processor)152、ROM(Read Only Memory)153、RAM(Random Access Memory)154、及びIF(Interface)155を備える。
【0137】
CPU150は、ROM153に記憶されたプログラムを読み出して、RAM154にロードし、ロードしたプログラムを実行する。この実行により、CPU150は、例えば、コントロール部110、イントラリフレッシュ判定部120、探索範囲制限部121の機能を実現する。CPU150は、例えば、第1の実施の形態におけるコントロール部110、イントラリフレッシュ判定部120、探索範囲制限部121に対応する。
【0138】
また、DSP152は、例えば、CPU150の指示により、動きベクトル検出部122と符号化部130の機能を実現する。DSP152は、例えば、第1の実施の形態における動きベクトル検出部122と符号化部130に対応する。
【0139】
メモリ151は、例えば、第1の実施の形態のフレームメモリ116に対応する。
【0140】
IF155は、例えば、可変長符号化部113から出力される符号化データをまとめてビットストリームとして、復号側へ出力する。
【0141】
以上まとめると付記のようになる。
【0142】
(付記1)
インター予測符号化で符号化されるピクチャの一部をイントラ予測符号化で符号化し、イントラ予測符号化が行われるイントラスライスラインを、複数のピクチャで巡回させる符号化方式を用いて動画像を符号化する動画像符号化装置のコンピュータに実行させる動画像符号化プログラムであって、
第1の処理ブロックに対する参照ブロックの探索範囲を、前記第1の処理ブロックから、前記第1の処理ブロックが存在する第1のピクチャよりも符号化順で前にある第2のピクチャにおいて前記イントラスライスラインが通過したリフレッシュ済領域と前記イントラスライスラインが通過していない未リフレッシュ領域との境界であるリフレッシュ境界よりも第2の処理ブロックのサイズ分、前記第1の処理ブロックに近い側までの範囲に設定し、
前記探索範囲において前記第1の処理ブロックに対する第1の動きベクトルを検出し、さらに、前記第1の処理ブロックの周辺にある前記第2の処理ブロックで検出された第2の動きベクトルと前記第1の動きベクトルとを加重平均して前記第1の動きベクトルとし、
前記第1の動きベクトルと前記第2のピクチャとを用いて第1の予測データを生成し、前記第1のピクチャの前記イントラスライスライン内の他のブロックを利用して該イントラスライスライン内のブロックのおける第2の予測データを生成し、前記第1及び第2の予測データを用いて前記第1のピクチャを符号化する
処理を前記コンピュータに実行させる動画像符号化プログラム。
【0143】
(付記2)
前記イントラスライスラインを画像上垂直方向に巡回させるとき、前記参照ブロックの探索範囲を、前記第1の処理ブロックの下端から、前記リフレッシュ境界よりも前記第2の処理ブロックサイズ分、前記第1の処理ブロックに近い側までの範囲に設定することを特徴とする付記1記載の動画像符号化プログラム。
【0144】
(付記3)
前記イントラスライスラインを画像上水平方向に巡回させるとき、前記参照ブロックの探索範囲を、前記第1の処理ブロックの右端から、前記リフレッシュ境界よりも前記第2の処理ブロックのサイズ分、前記第1の処理ブロックに近い側までの範囲に設定することを特徴とする付記1記載の動画像符号化プログラム。
【0145】
(付記4)
前記第1の処理ブロックから前記リフレッシュ境界までの距離をRmaxMVとし、前記第2の処理ブロックのサイズをNOBとすると、前記参照ブロックの探索範囲を、以下に示す式(2)を満たす範囲に設定することを特徴とする付記1記載の動画像符号化プログラム。
max(0,RmaxMV-NOB) ・・・(2)
【0146】
(付記5)
前記参照ブロックの探索範囲を、前記第1の処理ブロックから、前記リフレッシュ境界よりも前記第2の処理ブロックのサイズ分、前記第1の処理ブロックに近い側までの範囲に設定することに代え、
前記第1の処理ブロックに対する前記第1の動きベクトルを検出する際に、前記参照ブロックが探索範囲を超えたとき、前記第2の動きベクトルとの加重平均を計算することなく、検出した前記第1の動きベクトルを用いて前記第1の予測データを生成し、
前記参照ブロックが探索範囲を超えないとき、前記第1の動きベクトルと前記第2の動きベクトルとを加重平均して前記第1の動きベクトルとして、該第1の動きベクトルを用いて前記第1の予測データを生成する、
ことを特徴とする付記1記載の動画像符号化プログラム。
【0147】
(付記6)
第3の処理ブロックに対する参照ブロックの探索範囲を、前記第1の処理ブロックから前記リフレッシュ境界よりも前記第2の処理ブロックのサイズ分、前記第1の処理ブロックに近い側までの範囲に設定し、
前記第3の処理ブロックには、前記第1の処理ブロックが含まれることを特徴とする付記1記載の動画像符号化プログラム。
【0148】
(付記7)
前記第3の処理ブロックはPU(Prediction Unit)であり、前記第1の処理ブロックはOBMC(Overlapped Block Motion Compensation)のサブブロックであることを特徴とする付記6記載の動画像符号化プログラム。
【0149】
(付記8)
前記第2の処理ブロックは、前記第1の処理ブロックに隣接する上下左右のブロックの全部又は一部であることを特徴とする付記1記載の動画像符号化プログラム。
【0150】
(付記9)
インター予測符号化で符号化されるピクチャの一部をイントラ予測符号化で符号化し、前記イントラスライスラインを、複数のピクチャで巡回させる符号化方式は、イントラリフレッシュ符号化方式であり、
前記第1の処理ブロックの周辺にある前記第2の処理ブロックで検出された前記第2の動きベクトルと前記第1の動きベクトルとを加重平均して前記第1の動きベクトルを算出する方式は、OBMC(Overlapped Block Motion Compensation)である
ことを特徴とする付記1記載の動画像符号化プログラム。
【0151】
(付記10)
インター予測符号化で符号化されるピクチャの一部をイントラ予測符号化で符号化し、イントラ予測符号化が行われるイントラスライスラインを、複数のピクチャで巡回させる符号化方式を用いて動画像を符号化する動画像符号化装置において、
第1の処理ブロックに対する参照ブロックの探索範囲を、前記第1の処理ブロックから、前記第1の処理ブロックが存在する第1のピクチャよりも符号化順で前にある第2のピクチャにおいて前記イントラスライスラインが通過したリフレッシュ済領域と前記イントラスライスラインが通過していない未リフレッシュ領域との境界であるリフレッシュ境界よりも第2の処理ブロックのサイズ分、前記第1の処理ブロックに近い側までの範囲に設定する探索範囲制限部と、
前記探索範囲において前記第1の処理ブロックに対する第1の動きベクトルを検出し、さらに、前記第1の処理ブロックの周辺にある前記第2の処理ブロックで検出された第2の動きベクトルと前記第1の動きベクトルとを加重平均して前記第1の動きベクトルとする動きベクトル検出部と、
前記第1の動きベクトルと前記第2のピクチャとを用いて第1の予測データを生成し、前記第1のピクチャの前記イントラスライスライン内の他のブロックを利用して該イントラスライスライン内のブロックのおける第2の予測データを生成し、前記第1及び第2の予測データを用いて前記第1のピクチャを符号化する符号化部と
を備えることを特徴とする動画像符号化装置。
【符号の説明】
【0152】
100:動画像符号化装置 110:コントロール部
111:減算部 112:直交変換及び量子化部
113:可変長符号化部 114:逆量子化及び逆直交変換部
115:加算部 116:フレームメモリ
120:イントラリフレッシュ判定部 121:探索範囲制限部
122:動きベクトル検出部 123:インター予測部
124:イントラ予測部 125:イントラ及びインター判定部
126:予測画生成部 150:CPU
152:DSP