(57)【要約】【課題】参照画像データの一時記憶に必要とされるバッファサイズと外部メモリに必要とされるデータ転送レートとを抑えることが可能であるバッファ装置を提供する。【解決手段】バッファ装置は、符号化対象フレームにおける同一ラインの各一部領域である第１領域及び第２領域と、同一ラインよりも下のラインの一部領域である第３領域とに関して、第１領域と第２領域と第３領域との順に実行される動き探索処理で参照される参照フレームの各探索範囲の参照画像データを記憶するバッファ装置であって、参照画像データを記憶するメモリと、第２領域の動き探索処理が実行される場合、第１領域の動き探索処理で参照された第１探索範囲に含まれる参照画像データのうち、第３領域の動き探索処理で参照される第３探索範囲に含まれる参照画像データを、メモリから削除せずに残すよう制御するバッファ制御部とを備える。【選択図】図１
2019216324.tif 000002
【特許請求の範囲】
【請求項１】
符号化対象フレームにおける同一ラインの各一部領域である第１領域及び第２領域と、前記同一ラインよりも下のラインの一部領域である第３領域とに関して、第１領域と第２領域と第３領域との順に実行される動き探索処理で参照される参照フレームの各探索範囲の参照画像データを記憶するバッファ装置であって、
前記参照画像データを記憶するメモリと、
第２領域の動き探索処理が実行される場合、第１領域の動き探索処理で参照された第１探索範囲に含まれる前記参照画像データのうち、第３領域の動き探索処理で参照される第３探索範囲に含まれる前記参照画像データを、前記メモリから削除せずに残すよう制御するバッファ制御部と
を備えるバッファ装置。
【請求項２】
前記バッファ制御部は、前記参照フレームの左端を含む第１探索範囲及び第３探索範囲に含まれる前記参照画像データを、前記メモリから削除せずに残すよう制御する、請求項１に記載のバッファ装置。
【請求項３】
符号化対象フレームにおける同一ラインの各一部領域である第１領域及び第２領域と、前記同一ラインよりも下のラインの一部領域である第３領域とに関して、第１領域と第２領域と第３領域との順に実行される動き探索処理で参照される参照フレームの各探索範囲の参照画像データを記憶するバッファ装置であって、
前記参照画像データを記憶するメモリと、
第３領域の動き探索処理が実行される場合、第３領域の動き探索処理で参照される第３探索範囲に含まれる前記参照画像データのうち、第１領域の動き探索処理で参照された第１探索範囲に含まれていない前記参照画像データを、前記メモリに記録するバッファ制御部と
を備えるバッファ装置。
【請求項４】
前記バッファ制御部は、第３探索範囲の一部の画素が前記参照フレームの外にはみ出している場合、はみ出している画素の前記参照画像データをはみ出していない画素の前記参照画像データに基づいて生成し、生成された前記参照画像データと取得された前記参照画像データとを前記メモリに記録する、請求項３に記載のバッファ装置。
【請求項５】
前記バッファ制御部は、前記メモリに記憶される期間が長期間であるか否かを表すラベリングデータのうち、前記長期間であることを表すラベリングデータを、取得された前記参照画像データに対応付け、前記長期間であることを表すラベリングデータが対応付けられた前記参照画像データを、前記長期間であることを表すラベリングデータが対応付けられていない前記参照画像データと比較して前記メモリに長期間残すよう制御する、請求項１から請求項４のいずれか一項に記載のバッファ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バッファ装置に関する。
【背景技術】
【０００２】
ＭＰＥＧ（Moving Picture Experts Group）−２、ＭＰＥＧ−４、ＭＰＥＧ−４／ＡＶＣ（Advanced Video Coding）等の動画像符号化規格がある。また、ＨＥＶＣ（High Efficiency Video Coding）は、今後の普及が見込まれている動画像符号化規格である。ＨＥＶＣの符号化効率は、ＭＰＥＧ−４／ＡＶＣの符号化効率の約２倍である。このように符号化効率が向上したことで、ＨＥＶＣは、４Ｋ（３８４０画素×２１６０ライン）、８Ｋ（７６８０画素×４３２０ライン）等の高い空間解像度の動画像を符号化することが可能である。
【０００３】
動画像符号化規格において、互いに異なるサイズの符号化ブロックを用いて入力画像データを符号化するという階層的な符号化処理は、符号化効率を大きく向上させる。この階層的な符号化処理では、符号化装置は、符号化済みの参照画像データと入力画像データとの差分の累積値等が最小となる座標を、参照画像に含まれている探索範囲において探索する。
【０００４】
階層的な符号化処理では、符号化装置に備えられた探索モジュールが同じ参照画像データを何度も使用するので、非常に多くの参照画像データが必要とされる。参照画像データのサイズは非常に大きいので、必要とされる参照画像データの全てをＬＳＩ（Large Scale Integration）の内部メモリに記憶させることは難しい。このため、参照画像データは外部メモリに記憶される場合がある。しかしながら、外部メモリのデータ転送レートには制限があるため、ＬＳＩに備えられた参照画像バッファが、参照画像データを一時的に記憶し、一時的に記憶された参照画像データを探索モジュールに出力する。
【０００５】
外部メモリに必要とされるデータ転送レートを抑えるため、参照画像バッファは参照画像のフレームの横幅分の参照画像データだけを一時的に記憶する場合がある（非特許文献１参照）。以下、符号化対象の符号化ブロックを「符号化対象ブロック」という。ＨＥＶＣ等の動画像符号化規格では、符号化対象ブロックはラスタスキャン順に選択される。参照画像におけるインター予測の探索範囲の形状は矩形である。また、参照画像のフレームにおいて、符号化対象フレームにおける符号化対象ブロックの位置と同じ位置のブロックである同位置ブロックの位置と、探索範囲の中心との位置関係は、参照画像のフレーム内で一定である場合が多い。
【０００６】
参照画像バッファは、（画像横幅×探索範囲縦幅）分の参照画像データを一時的に記憶していれば、フレームの同一ライン上で次の符号化ブロックが選択された場合でも、参照画像バッファに記憶されている参照画像データを更新する必要がない。参照画像バッファは、同一ライン上の複数の符号化ブロックに対して符号化処理が実行されている間、（画像横幅×ブロック縦幅）分の参照画像データを探索モジュールに転送する。
【０００７】
これによって、参照画像バッファは、外部メモリに必要とされるデータ転送レートを、（ブロック横幅×ブロック縦幅／１ブロック処理時間）のレートに抑えることが可能である。しかしながら、参照画像バッファのサイズは、ほぼ（画像横幅×探索範囲縦幅）のサイズになってしまう。このため、４Ｋ又は８Ｋ等の高い空間解像度の動画像が符号化処理される場合、参照画像バッファのサイズが膨大となり、ＬＳＩの規模、サイズ及び電力が悪化する。
【０００８】
参照画像バッファは、符号化対象ブロックの探索範囲のみの参照画像データを記憶してもよい。符号化対象ブロックの符号化処理が終了し、次の符号化対象ブロックが選択された場合、探索範囲が重複する範囲は広い。このため、次の符号化対象ブロックが選択されたことによって転送が必要となる参照画像データは、探索範囲の外の右側の横幅ブロックサイズ分の参照画像データのみである。この場合、参照画像バッファのサイズは、ほぼ（探索範囲横幅×探索範囲縦幅）のサイズである。外部メモリのデータ転送レートは、（ブロック横幅×探索範囲縦幅／１ブロック処理時間）のレートであり、４Ｋ又は８Ｋ等の高い空間解像度の動画像のデータを転送することが可能である。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Takayuki Onishi, Takashi Sano, Yukikuni Nishida, Kazuya Yokohari, Jia Su, Ken Nakamura, Koyo Nitta, Kimiko Kawashima, Jun Okamoto, Naoki Ono, Ritsu Kusaba, Atsushi Sagata, Hiroe Iwasaki, Mitsuo Ikeda, and Atsushi Shimizu, “Single-chip 4K 60fps 4:2:2 HEVC Video Encoder LSI with 8K Scalability,” Dig. Symp. VLSI Circuits, C54-C55, Jun 2015.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、原画像の右端のブロックであった符号化対象ブロックの符号化処理が終了し、符号化対象ブロックが原画像においてラスタスキャン順に１本下のラインの左端のブロックとなった場合、原画像の右端のブロックであった符号化対象ブロックを符号化するためのインター予測の探索範囲と、原画像の左端のブロックとなった符号化対象ブロックを符号化するためのインター予測の探索範囲とは重複しない。
【００１１】
参照画像バッファが探索範囲のみの参照画像データを記憶している場合に、符号化対象ブロックが原画像においてラスタスキャン順に１本下のラインの左端のブロックとなった場合には、バッファ装置は、１ブロック処理時間内で、探索範囲の全ての参照画像データを外部メモリから参照画像バッファに転送する必要がある。
【００１２】
探索範囲の参照画像データのサイズは、符号化効率に影響する。このため、符号化対象ブロックが原画像においてラスタスキャン順に１本下のラインの左端のブロックとなった場合には、転送レートが高くなってしまい、参照画像データの転送が間に合わない場合がある。ＬＳＩ内の探索モジュールは、外部メモリからバッファに格納できた参照画像データに対して動き探索処理を行うが、１ブロック処理時間内の参照画像データ転送が間に合わない場合、転送ができなかった参照画像の一部領域に対しては、探索モジュールは動き探索処理が行えない。そのため、画面左端の符号化対象ブロックにおいては、大幅な動き探索精度低下及び客観画質劣化が生じうる。また、上記の参照画像転送手法では、左右のブロックで探索範囲の重複範囲が広いことを利用して、探索範囲の外の右側の横幅ブロックサイズ分の参照画像データのみを新たに転送している。このため、画面左端の符号化対象ブロックにおいて参照画像データを転送しきれなかった場合、その次の符号化対象ブロックにおいても、右側の横幅ブロックサイズ分の領域以外では、バッファ内に格納された参照画像データに抜けが残っている。したがって、画面左端における参照画像データ転送ミスは、その左端ブロックだけでなく、隣接する多くの符号化対象ブロックに影響を与え、結果として画面全体における客観画質劣化及び符号量増加へとつながる。このように、従来のバッファ装置は、参照画像データの一時記憶に必要とされるバッファメモリのサイズと外部メモリに必要とされるデータ転送レートとを抑えることができないという問題がある。
【００１３】
上記事情に鑑み、本発明は、参照画像データの一時記憶に必要とされるバッファサイズと外部メモリに必要とされるデータ転送レートとを抑えることが可能であるバッファ装置を提供することを目的としている。
【課題を解決するための手段】
【００１４】
本発明の一態様は、符号化対象フレームにおける同一ラインの各一部領域である第１領域及び第２領域と、前記同一ラインよりも下のラインの一部領域である第３領域とに関して、第１領域と第２領域と第３領域との順に実行される動き探索処理で参照される参照フレームの各探索範囲の参照画像データを記憶するバッファ装置であって、前記参照画像データを記憶するメモリと、第２領域の動き探索処理が実行される場合、第１領域の動き探索処理で参照された第１探索範囲に含まれる前記参照画像データのうち、第３領域の動き探索処理で参照される第３探索範囲に含まれる前記参照画像データを、前記メモリから削除せずに残すよう制御するバッファ制御部とを備えるバッファ装置である。
【００１５】
本発明の一態様は、上記のバッファ装置であって、前記バッファ制御部は、前記参照フレームの左端を含む第１探索範囲及び第３探索範囲に含まれる前記参照画像データを、前記メモリから削除せずに残すよう制御する。
【００１６】
本発明の一態様は、符号化対象フレームにおける同一ラインの各一部領域である第１領域及び第２領域と、前記同一ラインよりも下のラインの一部領域である第３領域とに関して、第１領域と第２領域と第３領域との順に実行される動き探索処理で参照される参照フレームの各探索範囲の参照画像データを記憶するバッファ装置であって、前記参照画像データを記憶するメモリと、第３領域の動き探索処理が実行される場合、第３領域の動き探索処理で参照される第３探索範囲に含まれる前記参照画像データのうち、第１領域の動き探索処理で参照された第１探索範囲に含まれていない前記参照画像データを、前記メモリに記録するバッファ制御部とを備えるバッファ装置である。
【００１７】
本発明の一態様は、上記のバッファ装置であって、前記バッファ制御部は、第３探索範囲の一部の画素が前記参照フレームの外にはみ出している場合、はみ出している画素の前記参照画像データをはみ出していない画素の前記参照画像データに基づいて生成し、生成された前記参照画像データと取得された前記参照画像データとを前記メモリに記録する。
【００１８】
本発明の一態様は、上記のバッファ装置であって、前記バッファ制御部は、前記メモリに記憶される期間が長期間であるか否かを表すラベリングデータのうち、前記長期間であることを表すラベリングデータを、取得された前記参照画像データに対応付け、前記長期間であることを表すラベリングデータが対応付けられた前記参照画像データを、前記長期間であることを表すラベリングデータが対応付けられていない前記参照画像データと比較して前記メモリに長期間残すよう制御する。
【発明の効果】
【００１９】
本発明により、参照画像データの一時記憶に必要とされるバッファサイズと外部メモリに必要とされるデータ転送レートとを抑えることが可能である。
【図面の簡単な説明】
【００２０】
【図１】符号化装置の構成の例を示す図である。
【図２】右向きのエリアホッピングベクトルによって設定される探索範囲の例を示す図である。
【図３】参照画像のフレームにおける探索範囲の位置の変化の例を示す図である。
【図４】符号化の処理ラインが１本下のラインに変更された場合における、探索範囲の位置の変化の例を示す図である。
【図５】符号化の処理ラインが１本下のラインに変更された場合における、探索範囲の重複の例を示す図である。
【図６】符号化装置の動作を示すフローチャート（前半）である。
【図７】符号化装置の動作を示すフローチャート（後半）である。
【図８】初期転送処理の例を示す図である。
【図９】原画像の左端の符号化対象ブロック等が必要とする探索範囲の参照画像データの推移の例を示す図である。
【図１０】原画像の左端に近い位置の符号化対象ブロック等が必要とする探索範囲の参照画像データの推移の例を示す図である。
【図１１】原画像の右端に近い位置の符号化対象ブロック等が必要とする探索範囲の参照画像データの推移の例を示す図である。
【図１２】原画像の右端の符号化対象ブロック等が必要とする探索範囲の参照画像データの推移の例を示す図である。
【図１３】左向きのエリアホッピングベクトルによって設定される探索範囲の例を示す図である。
【発明を実施するための形態】
【００２１】
本発明の実施形態について、図面を参照して詳細に説明する。
以下では、「符号化ブロック」は、ＭＰＥＧ−２、Ｈ.２６４／ＡＶＣ規格であれば、マクロブロックである。「符号化ブロック」は、ＨＥＶＣ規格であれば、コーディング・ユニット（CU: Coding Unit）又はプレディクション・ユニット（PU: Prediction Unit）である。
【００２２】
図１は、符号化装置１０の構成の例を示す図である。符号化装置１０は、動画像符号化処理部１００と、動画像符号化バッファ部２００とを備える。符号化装置１０は、外部メモリ３００に接続されている。符号化装置１０は、符号化済みの参照画像データを、外部メモリ３００に書き込む。
【００２３】
符号化装置１０は、符号化対象の動画像の信号（入力画像の信号）を、原画像データとして取得する。符号化装置１０は、原画像データを外部メモリ３００に書き込む。原画像データを符号化する場合、符号化装置１０は、原画像データ及び参照画像データを、外部メモリ３００から読み出す。
【００２４】
符号化装置１０は、外部メモリ３００から読み出された原画像データ及び参照画像データを、動画像符号化バッファ部２００に一時的に記録する。動画像符号化処理部１００は、符号化処理に必要である原画像データ及び参照画像データを、動画像符号化バッファ部２００から取得する。符号化装置１０は、参照画像データを用いて、原画像データを符号化する。
【００２５】
Ｈ．２６４／ＡＶＣやＨＥＶＣ等の動画像符号化規格では、動画像のフレームを符号化ブロックごとに符号化する。以下では、動画像符号化処理部１００は、符号化ブロックごとに符号化処理を実行する。動画像符号化処理部１００は、取得された原画像データを、パラメータに基づいて符号化する。動画像符号化処理部１００は、符号化結果をビットストリームとして符号化装置１０の外部に出力する。符号化装置１０の外部の表示装置は、ビットストリームに基づく映像を表示してもよい。
【００２６】
動画像符号化処理部１００は、原画像整形部１０１と、イントラ予測処理部１０２と、インター予測処理部１０３と、予測残差信号生成部１０４と、変換・量子化処理部１０５と、エントロピー符号化部１０６と、逆量子化・逆変換処理部１０７と、復号信号生成部１０８と、ループフィルタ処理部１０９とを備える。
【００２７】
動画像符号化バッファ部２００は、原画像バッファ２０１と、参照画像バッファ２０２とを備える。参照画像バッファ２０２は、メモリ２０３と、バッファ制御部２０４とを備える。バッファ制御部２０４は、参照画像バッファ２０２から独立した別機構でもよい。
【００２８】
各機能部の一部又は全部は、例えば、ＬＳＩやＡＳＩＣ（Application Specific Integrated Circuit）等のハードウェアを用いて実現される。各機能部の一部又は全部は、ＣＰＵ（Central Processing Unit）等のプロセッサが、メモリに記憶されたプログラムを実行することにより実現されてもよい。動画像符号化バッファ部２００及び外部メモリ３００は、例えばフラッシュメモリ、ＨＤＤ（Hard Disk Drive）などの不揮発性の記録媒体（非一時的な記録媒体）である。バッファ部及び外部メモリは、ＲＡＭ（Random Access Memory）などの揮発性の記録媒体を備えてもよい。
【００２９】
原画像整形部１０１は、フレームにおけるラスタスキャン順で、原画像データを取得する。原画像整形部１０１は、取得された原画像データを、符号化ブロック単位の原画像データに整形する。原画像整形部１０１は、符号化ブロック単位の原画像データを、外部メモリ３００に書き込む。原画像バッファ２０１は、符号化ブロック単位の原画像データのうちから、符号化対象ブロックの原画像データを、外部メモリ３００から読み出す。原画像バッファ２０１は、符号化対象ブロックの原画像データを、一時的に記憶する。
【００３０】
参照画像バッファ２０２は、符号化対象ブロックの動きベクトルを探索する処理（動き探索処理）をインター予測処理部１０３が実行するために必要とされる探索範囲（参照フレームの領域）の参照画像データを、外部メモリ３００から読み出す。探索範囲は、動画像符号化規格に基づいて予め定められる。メモリ２０３は、読み出された参照画像データを一時的に記憶する。参照画像バッファ２０２は、メモリ２０３に一時的に記憶されている参照画像データの更新タイミングを、原画像のフレームにおける符号化対象ブロックの位置に応じて変更する。
【００３１】
インター予測処理部１０３は、原画像データを原画像バッファ２０１から読み出す。インター予測処理部１０３は、参照画像データを参照画像バッファ２０２のメモリ２０３から読み出す。インター予測処理部１０３は、符号化対象フレームの原画像データと参照画像データとの間の動き探索処理を実行する。
【００３２】
予測残差信号生成部１０４は、原画像バッファ２０１から原画像信号を読み出す。予測残差信号生成部１０４は、イントラ予測処理部１０２又はインター予測処理部１０３の出力である予測信号と原画像との差分をがと単位で算出し、算出された差分を予測残差信号として変換・量子化処理部１０５に出力する。
【００３３】
変換・量子化処理部１０５は、離散コサイン変換等の直交変換を予測残差信号に対して実行することによって、変換係数を量子化する。変換・量子化処理部１０５は、量子化された変換係数をエントロピー符号化部１０６に出力する。エントロピー符号化部１０６は、量子化された変換係数をエントロピー符号化し、エントロピー符号化の結果を、ビットストリームとして符号化装置１０の外部に出力する。
【００３４】
変換・量子化処理部１０５は、量子化された変換係数を、逆量子化・逆変換処理部１０７に出力する。逆量子化・逆変換処理部１０７は、量子化された変換係数に逆量子化及び逆直交変換を実行し、逆直交変換の結果である予測残差復号信号を出力する。復号信号生成部１０８は、イントラ予測処理部１０２又はインター予測処理部１０３の出力である予測信号と予測残差復号信号とを加算することで、符号化ブロックごとに復号信号を生成する。
【００３５】
ループフィルタ処理部１０９は、生成された復号信号に対して、符号化歪みを低減するフィルタリング処理を実行する。ループフィルタ処理部１０９は、インター予測処理部１０３によって参照画像として用いられるフィルタリング処理後の画像データを、外部メモリ３００に書き込む。
【００３６】
以下では、探索範囲は、参照画像に含まれている点を中心とした矩形の範囲である。以下、符号化対象ブロックの動きベクトル、すなわち、参照画像における同位置ブロックの位置と探索範囲の中心とを表すベクトルを「エリアホッピングベクトル」という。エリアホッピングベクトルＶｈｐは、（Ｖｈｐ＿ｘ，Ｖｈｐ＿ｙ）と表される。
【００３７】
図２は、右向きのエリアホッピングベクトルによって設定される探索範囲の例を示す図である。原画像４００（符号化対象フレーム）の画像サイズと、参照画像５００（参照フレーム）の画像サイズとは、いずれも（Ｗ×Ｈ）である。符号化対象ブロック１１のサイズは（Ｂｘ×Ｂｙ）である。探索範囲１３のサイズは（Ｓｘ×Ｓｙ）である。以下では、エリアホッピングベクトルＶｈｐは、フレーム内で一定である。
【００３８】
探索範囲１３の形状が矩形であり、エリアホッピングベクトルＶｈｐが一定である場合、符号化対象ブロック１１の符号化処理が終了し、次の符号化対象ブロック１１が選択された場合、参照画像５００のフレームにおいて、原画像４００における符号化対象ブロック１１の位置と同じ位置のブロックである同位置ブロック１２の探索範囲は、符号化処理が終了する前後で重複する範囲の面積は広い。
【００３９】
図３は、参照画像５００のフレームにおける探索範囲の位置の変化の例を示す図である。説明の簡略化のため、図３から図５までに示される例では、エリアホッピングベクトルが無く、探索範囲の中心は、符号化対象ブロックの同位置ブロックの位置と一致している。以下、新たに参照画像バッファ２０２に記憶される必要のある探索範囲を「新規必要範囲」という。
【００４０】
図３では、符号化対象ブロックの同位置ブロックがブロック５０１からブロック５０２に変更された場合、探索範囲は、探索範囲６０１から探索範囲６０２に変更される。ここで、探索範囲の差分部分の面積は、探索範囲６０１の外の右側の横幅ブロック分（新規必要範囲１６）の面積となる。インター予測処理部１０３は、探索処理で必要な新規必要範囲１６の参照画像データを、参照画像バッファ２０２のメモリ２０３から読み出す。新規必要範囲１６の参照画像データ（新規必要データ）のサイズは、（Ｂｘ×Ｓｙ）のサイズである。
【００４１】
原画像４００の右端のブロックであった符号化対象ブロック１１の符号化処理が終了し、符号化対象ブロック１１が原画像においてラスタスキャン順に１本下のラインの左端のブロックとなった場合。原画像の右端のブロックであった符号化対象ブロック１１を符号化するためのインター予測の探索範囲１３と、原画像４００の左端のブロックとなった符号化対象ブロック１１を符号化するためのインター予測の探索範囲１３とは重複しない。
【００４２】
図４は、符号化の処理ラインが１本下のラインに変更された場合における、探索範囲１３の位置の変化の例を示す図である。図４では、同位置ブロックであるブロック５０３が参照画像５００の右端にあるため、探索範囲６０３が参照画像５００の外にはみだしているが、ＨＥＶＣ等の動画像符号化処理では、探索された動きベクトルが参照画像５００の外を指すことは、許されている。このような場合、参照画像５００の外の画素の画素値には、参照画像５００の端の画素の画素値が設定されることが多い。したがって、参照画像バッファ２０２が記憶するブロック５０３の参照画像データは、探索範囲６０３よりも狭い範囲の参照画像データである。
【００４３】
図４に示されているように、同位置ブロックであるブロック５０４の位置が参照画像５００の右端から左端に変更されて、探索範囲６０３から探索範囲６０４に探索範囲が変更された場合、探索範囲６０３及び探索範囲６０４の各横幅が参照画像５００の横幅の半分以上でない限り、探索範囲６０３と探索範囲６０４とが重複する範囲が存在しない。４Ｋ又は８Ｋの高い空間解像度の動画像では、探索範囲のサイズは、原画像のサイズに比べて小さい。このため、新たに参照画像バッファ２０２に記憶される必要のある探索範囲（新規必要範囲１６）の参照画像データのサイズは、探索範囲６０４のサイズそのものとなる。ただし、参照画像５００の外の探索範囲の画素は、参照画像５００の端の画素から補間される。
【００４４】
参照画像バッファ２０２は、次の符号化対象ブロックの予測処理が開始される前に、次の符号化対象ブロックの動きベクトルの探索範囲の参照画像データを格納しておく必要がある。（画面横幅×探索範囲縦幅）のサイズの参照画像データを参照画像バッファ２０２が一時記憶する場合、１符号化対象ブロックの処理時間内に１符号化対象ブロックのサイズの参照画像データを転送すればよいためバンド幅は抑えられるが、参照画像バッファ２０２に必要とされるバッファサイズは膨大となる。これに対して、符号化対象ブロックが必要とする探索範囲の参照画像データのみを参照画像バッファ２０２が記憶する場合には、参照画像バッファ２０２に必要とされるバッファサイズは小さくなる。また、処理ラインが更新された場合、外部メモリ３００から参照画像バッファ２０２へのデータ転送量は、バンド幅を超過する可能性がある。つまり、参照画像５００の左端のブロック５０４が必要とする新規必要範囲１６の参照画像データは、ブロック５０３が必要としない参照画像データであることから、参照画像バッファ２０２に全く記憶されていないので、データ転送量が増加する。
【００４５】
図５は、符号化の処理ラインが１本下のラインに変更された場合における、探索範囲の重複の例を示す図である。参照画像５００の左端のブロック５０４が必要とする探索範囲６０４の参照画像データは、１本上のラインで符号化対象ブロック１１の符号化処理が実行されていた場合における、ブロック５０５の探索範囲ｅ１の参照画像データの一部である。すなわち、ブロック５０４よりも（Ｗ／Ｂｘ）個だけ前の同位置ブロックであるブロック５０５の探索範囲ｅ１と、探索範囲６０４の一部の範囲とは重複している。
【００４６】
図５に示した通り、ブロック５０４の探索範囲６０４と参照画像５００のフレームにおいてブロック５０４の上に位置するブロック５０５の探索範囲ｅ１とは、重複する範囲の面積が広い。ここで、ブロック５０４の探索範囲とブロック５０５の探索範囲とで重複している領域を、ブロック５０４の符号化が終わっても参照画像バッファ２０２に格納しておき、ブロック５０５を符号化する際にブロック５０５の探索範囲とブロック５０４の探索範囲とで重複していない領域である新規必要範囲１６のみを参照画像バッファ２０２に追加して格納することが考えられる。これによって、ブロック５０３の符号化が完了しブロック５０４を符号化する際に参照画像バッファ２０２に新たに格納される参照画像データの転送量と、参照画像バッファ２０２に格納しておく参照画像データのサイズとの両方を、少なく抑えることができる。ブロック５０４の探索範囲６０４として新たに必要な探索範囲（新規必要範囲１６）の参照画像データのサイズは、（Ｓｘ×Ｂｙ）の参照画像データのサイズである。ただし、参照画像５００の外の探索範囲の画素は、参照画像５００の端の画素から補間される。
【００４７】
バッファ制御部２０４は、参照画像データの分類、読み出し、書き込み及び削除等の制御を実行する。バッファ制御部２０４は、参照画像５００の左端のブロックの参照画像データを参照画像バッファ２０２に保持する時間の長さを、（Ｗ／Ｂｘ）個のブロックの符号化の処理時間（長期間）の長さとする。すなわち、バッファ制御部２０４は、参照画像５００の左端のブロック５０５の参照画像データを、原画像４００における１ラインの符号化対象ブロックの符号化処理が終了するまで、参照画像バッファ２０２のメモリ２０３に保持させる。
【００４８】
バッファ制御部２０４は、参照画像５００の左端以外のブロックの参照画像データを参照画像バッファ２０２に保持する時間を、（Ｓｘ／Ｂｘ）個のブロックの処理時間（短期間）とする。バッファ制御部２０４は、符号化対象ブロックの符号化処理において参照されない参照画像データを参照画像バッファ２０２から削除することによって、参照画像バッファ２０２に保持される参照画像データを符号化対象ブロックごとに更新する。
【００４９】
これらによって、バッファ制御部２０４は、メモリ２０３のサイズが小さい場合でも、処理ラインの更新時に外部メモリ３００から参照画像バッファ２０２へのデータ転送量の増加を抑えることができる。
【００５０】
バッファ制御部２０４は、参照画像バッファ２０２が参照画像データを外部メモリ３００から読み出す場合、参照画像データが参照画像バッファ２０２に保持される時間の長さに応じて、参照画像バッファに長期間記憶されるデータ（以下「長期データ」という。）である「ｌｏｎｇ  ｔｅｒｍ  ｄａｔａ」と、参照画像バッファに短期間記憶されるデータ（以下「短期データ」という。）である「ｓｈｏｒｔ  ｔｅｒｍ  ｄａｔａ」との２種類に、参照画像データを分類する。
【００５１】
バッファ制御部２０４は、メモリ２０３に記憶される期間が長期間であるか否かを表すラベリングデータを、参照画像データに対応付ける。バッファ制御部２０４は、分類された参照画像データを、参照画像バッファ２０２のメモリ２０３に記録する。バッファ制御部２０４は、分類の結果を、例えば参照画像データの付加ビットとしてメモリ２０３に記録する。なお、バッファ制御部２０４は、分類の結果を別の機構又はバッファに記録してもよい。例えば、バッファ制御部２０４は、ラベリングデータを参照画像データに対応付けて、バッファ制御部２０４の内部メモリに記憶してもよい。
【００５２】
次に、バッファ制御部２０４の動作を説明する。
図６及び図７は、符号化装置１０の動作を示すフローチャートである。バッファ制御部２０４は、原画像のフレーム単位で処理を実行する。バッファ制御部２０４は、符号化対象フレームの符号化処理を開始する（ステップＳ１０１）。
【００５３】
バッファ制御部２０４は、参照画像データの初期転送処理を実行する。すなわち、バッファ制御部２０４は、最初に符号化される原画像（符号化対象フレーム）の左上端の符号化ブロックが必要とする探索範囲の全ての参照画像データを、外部メモリ３００から読み出す。バッファ制御部２０４は、読み出された参照画像データを、参照画像バッファ２０２のメモリ２０３に記録する。バッファ制御部２０４は、初期転送処理によって読み出された全ての参照画像データを、「ｌｏｎｇ  ｔｅｒｍ  ｄａｔａ」に分類する（ステップＳ１０２）。
【００５４】
図８は、初期転送処理の例を示す図である。バッファ制御部２０４は、探索範囲１３の全ての参照画像データを、ラスタスキャン順に外部メモリ３００から読み出す。初期転送処理におけるデータ転送量は、（Ｓｘ×Ｓｙ）のサイズの大きなデータ量になり得る。バッファ制御部２０４は、各符号化ブロックの符号化処理前に初期転送処理を実行する。したがって、バッファ制御部２０４は、１ブロックの符号化処理の時間と比較して長い時間を、初期転送処理の時間として確保することができる。これによって、バッファ制御部２０４は、初期転送処理における参照画像データの転送レートを低く抑えることができる。
【００５５】
図８に示されているように、探索範囲１３が参照画像５００の外にはみ出している場合、外部メモリ３００から参照画像バッファ２０２に転送される参照画像データは、参照画像５００の外の画素値を含んでいない。このため、バッファ制御部２０４は、参照画像５００の外にはみ出している範囲の画素値を、参照画像５００の左端又は上端の画素値に基づいて生成する。
【００５６】
バッファ制御部２０４は、参照画像データをラスタスキャン順に外部メモリ３００から読み出して、読み出された参照画像データを参照画像バッファ２０２に記録する。このため、バッファ制御部２０４は、探索範囲１３において上側の画素ほど前のタイミングで、参照画像バッファ２０２に記録する。なお、バッファ制御部２０４は、画素単位のラスタスキャン順でなく符号化ブロック単位のラスタスキャン順で、参照画像データを外部メモリ３００から読み出してもよい。
【００５７】
図６及び図７に戻り、符号化装置１０の動作の説明を続ける。動画像符号化処理部１００は、符号化ブロック単位で符号化処理を開始する。初期転送処理の直後では、動画像符号化処理部１００は、原画像４００の左上端の符号化対象ブロック１１の符号化処理を実行する（ステップＳ１０３）。
【００５８】
ステップＳ１０４からステップＳ１０８において、バッファ制御部２０４は、不要な参照画像データを、参照画像バッファ２０２から削除する。
【００５９】
バッファ制御部２０４は、符号化ブロック単位の符号化処理（以下「符号化ブロック処理」という。）の開始を表す信号を、動画像符号化処理部１００から取得する。バッファ制御部２０４は、符号化対象ブロック１１が原画像４００のフレームの先頭の符号化ブロック（原画像の左上端の符号化ブロック）であるか否かを判定する（ステップＳ１０４）。
【００６０】
符号化対象ブロック１１が原画像４００のフレームの先頭の符号化ブロックでない場合（ステップＳ１０４：ＮＯ）、バッファ制御部２０４は、符号化対象ブロック１１が原画像４００のフレームの左端のブロックであるか否かを判定する（ステップＳ１０５）。
【００６１】
符号化対象ブロック１１が原画像４００のフレームの左端の符号化ブロックでない場合（ステップＳ１０５：ＮＯ）、バッファ制御部２０４は、「ｓｈｏｒｔ  ｔｅｒｍ  ｄａｔａ」に分類されている参照画像データの一部を、参照画像バッファ２０２から削除する。
【００６２】
ここで、バッファ制御部２０４は、「ｓｈｏｒｔ  ｔｅｒｍ  ｄａｔａ」のサイズが（探索範囲横幅×探索範囲縦幅）以上のサイズとならないように、探索範囲内の左側の参照画像データを順次削除する。すなわち、バッファ制御部２０４は、「ｓｈｏｒｔ  ｔｅｒｍ  ｄａｔａ」として参照画像バッファ２０２に記憶されている参照画像データのうち、参照画像バッファ２０２に記憶されている時間が（探索範囲横幅／ブロック横幅×１ブロック処理時間）以上である参照画像データを、参照画像バッファ２０２から削除する（ステップＳ１０６）。
【００６３】
符号化対象ブロックが原画像のフレームの左端の符号化ブロックである場合（ステップＳ１０５：ＹＥＳ）、バッファ制御部２０４は、「ｌｏｎｇ  ｔｅｒｍ  ｄａｔａ」のサイズが（探索範囲横幅×探索範囲縦幅）を超えるサイズとならないように、探索範囲内の上側の参照画像データを順次削除する。すなわち、バッファ制御部２０４は、「ｌｏｎｇ  ｔｅｒｍ  ｄａｔａ」として参照画像バッファ２０２に記憶されている参照画像データのうち、最も古いタイミングで記憶された（探索範囲横幅×ブロック縦幅）のサイズの参照画像データを削除する（ステップＳ１０７）。
【００６４】
バッファ制御部２０４は、「ｓｈｏｒｔ  ｔｅｒｍ  ｄａｔａ」として参照画像バッファ２０２に記憶されている全ての参照画像データを削除する（ステップＳ１０８）。
【００６５】
符号化対象ブロック１１が原画像４００のフレームの先頭の符号化ブロックである場合、参照画像バッファ２０２に記憶されている参照画像データのうちで、不要な参照画像データは存在しない。この場合、バッファ制御部２０４は、参照画像データを参照画像バッファ２０２から削除することなく、ステップＳ１１０又はステップＳ１１１において参照画像データを外部メモリ３００から読み出し、参照画像データを参照画像バッファ２０２に記録する。
【００６６】
符号化対象ブロック１１が原画像４００のフレームの先頭の符号化ブロックである場合（ステップＳ１０４：ＹＥＳ）、バッファ制御部２０４は、符号化対象ブロック１１が原画像の右端のブロックであるかを判定する（ステップＳ１０９）。
【００６７】
符号化対象ブロック１１が原画像４００の右端のブロックでない場合（ステップＳ１０９：ＮＯ）、次の符号化対象ブロックが必要とする探索範囲内の最右端以外の参照画像データは、現在の符号化対象ブロックの探索範囲内の参照画像データと重複しており、読み出される必要がない。このため、バッファ制御部２０４は、次の符号化対象ブロック１１が必要とする探索範囲内の最右端の参照画像データを、外部メモリ３００から読み出す。最右端の参照画像データのサイズは、（ブロックサイズ横幅×探索範囲縦幅）のサイズである。バッファ制御部２０４は、読み出された参照画像データを、「ｓｈｏｒｔ  ｔｅｒｍ  ｄａｔａ」に分類する。バッファ制御部２０４は、「ｓｈｏｒｔ  ｔｅｒｍ  ｄａｔａ」に分類された参照画像データを、参照画像バッファ２０２に記録する（ステップＳ１１０）。
【００６８】
このように、バッファ制御部２０４は、「ｓｈｏｒｔ  ｔｅｒｍ  ｄａｔａ」に分類される参照画像データを、符号化ブロックごとのタイミングのうち「ｌｏｎｇ  ｔｅｒｍ  ｄａｔａ」に分類される参照画像データを読み出すタイミング以外のタイミングで、外部メモリ３００から読み出す。
【００６９】
符号化対象ブロック１１が原画像４００の右端のブロックである場合（ステップＳ１０９：ＹＥＳ）、次の符号化対象ブロック１１が必要とする探索範囲内の最下端以外の参照画像データは、現在の符号化対象ブロック（１ライン上の右端の符号化ブロック）の探索範囲内の参照画像データと重複しており、読み出される必要がない。このため、バッファ制御部２０４は、次の符号化対象ブロック１１が必要とする探索範囲内の最下端の参照画像データを、外部メモリ３００から読み出す。最下端の参照画像データのサイズは、（探索範囲横幅×ブロックサイズ縦幅）のサイズである。バッファ制御部２０４は、読み出された参照画像データを、「ｌｏｎｇ  ｔｅｒｍ  ｄａｔａ」に分類する。バッファ制御部２０４は、「ｌｏｎｇ  ｔｅｒｍ  ｄａｔａ」に分類された参照画像データを、参照画像バッファ２０２に記録する（ステップＳ１１１）。
【００７０】
このように、バッファ制御部２０４は、「ｌｏｎｇ  ｔｅｒｍ  ｄａｔａ」に分類される参照画像データを、（Ｗ／Ｂｘ）回あたりに１回（１ラインごとに１回）のタイミングで、外部メモリ３００から読み出す。原画像４００の左端の符号化対象ブロック１１が必要とする探索範囲１３の参照画像データが参照画像バッファ２０２に長期間にわたり記憶されているので、バッファ制御部２０４は、最下端以外の参照画像データを読み出す必要がないためである。
【００７１】
バッファ制御部２０４は、符号化対象ブロック１１の符号化処理の終了を表す信号を、動画像符号化処理部１００から取得する（ステップＳ１１２）。バッファ制御部２０４は、符号化処理の終了した符号化対象ブロック１１が原画像４００のフレームの終端の符号化ブロックであるか否かを判定する（ステップＳ１１３）。
【００７２】
符号化処理の終了した符号化対象ブロック１１が原画像４００のフレームの終端以外の符号化ブロックである場合（ステップＳ１１３：ＮＯ）、バッファ制御部２０４は、符号化対象ブロックを、次の符号化ブロックに更新し（ステップＳ１１４）、ステップＳ１０３に処理を戻す。符号化処理の終了した符号化対象ブロック１１が原画像４００のフレームの終端の符号化ブロックである場合（ステップＳ１１３：ＹＥＳ）、バッファ制御部２０４は、符号化対象の原画像４００のフレームの符号化処理を終了する（ステップＳ１１５）。
【００７３】
次に、参照画像バッファ２０２に記憶されている長期データ及び短期データの推移を説明する。
【００７４】
図９は、原画像４００の左端の符号化対象ブロック１１等が必要とする探索範囲１３の参照画像データの推移の例を示す図である。原画像４００の左端の現在の符号化対象ブロック１１が必要とする探索範囲は、図９では、現在の同位置ブロック１２−２が必要とする探索範囲１３−２である。
【００７５】
参照画像５００−１では、参照画像バッファ２０２は、長期データ１４と、短期データ１５とを記憶している。長期データ１４は、同位置ブロック１２−２が必要とする探索範囲１３−２の参照画像データと、探索範囲１３−２の外の上側の１ブロック縦幅分に含まれている参照画像データとを含むデータである。短期データ１５は、参照画像５００−１の右端で同位置ブロック１２−２よりも１ライン上の同位置ブロック１２−１が必要とする探索範囲の参照画像データである。
【００７６】
参照画像５００−１に対する次の処理として、参照画像５００−２に示されているように、バッファ制御部２０４は、短期データ１５を参照画像バッファ２０２から削除する。さらに、バッファ制御部２０４は、現在の符号化対象ブロック１１の同位置ブロック１２−２が必要とする探索範囲１３−２の外の上側の１ブロック縦幅分に含まれている参照画像データを、参照画像バッファ２０２から削除する。すなわち、バッファ制御部２０４は、長期データ１４のうちの不要な参照画像データを、参照画像バッファ２０２から削除する。
【００７７】
参照画像５００−２に対する次の処理として、参照画像５００−３に示されているように、バッファ制御部２０４は、次の符号化対象ブロック１１の同位置ブロック１２−３が必要とする探索範囲の新規必要データとして、同位置ブロック１２−２が必要とする探索範囲１３−２の外の右側の１ブロック横幅分に含まれる参照画像データを、外部メモリ３００から読み出す。バッファ制御部２０４は、読み出された参照画像データを、短期データ１５として参照画像バッファ２０２に記録する。
【００７８】
図１０は、原画像４００の左端に近い位置の符号化対象ブロック１１等が必要とする探索範囲１３の参照画像データの推移の例を示す図である。原画像４００の左端に近い位置の現在の符号化対象ブロック１１が必要とする探索範囲１３は、図１０では、現在の同位置ブロック１２−４が必要とする探索範囲１３−４である。
【００７９】
参照画像５００−１では、参照画像バッファ２０２は、長期データ１４と、短期データ１５とを記憶している。長期データ１４は、同位置ブロック１２−４が必要とする探索範囲１３−４の参照画像データのうち「ｌｏｎｇ  ｔｅｒｍ  ｄａｔａ」に分類された参照画像データと、同位置ブロック１２−３が必要とする探索範囲１３−３の参照画像データのうち「ｌｏｎｇ  ｔｅｒｍ  ｄａｔａ」に分類された参照画像データとである。短期データ１５は、同位置ブロック１２−４が必要とする探索範囲１３−４の参照画像データのうち、「ｓｈｏｒｔ  ｔｅｒｍ  ｄａｔａ」に分類された参照画像データである。
【００８０】
参照画像５００−１に対する次の処理として、参照画像５００−２に示されているように、同位置ブロック１２−４が必要とする探索範囲１３−４の参照画像データの一部として短期データ１５が参照画像バッファ２０２に既に記憶されているので、バッファ制御部２０４は、短期データ１５を参照画像バッファ２０２から削除する必要がない。
【００８１】
参照画像５００−２に対する次の処理として、参照画像５００−３に示されているように、バッファ制御部２０４は、次の符号化対象ブロック１１の同位置ブロック１２−５が必要とする探索範囲の新規必要データとして、同位置ブロック１２−４が必要とする探索範囲１３−４の外の右側の１ブロック横幅分に含まれる参照画像データを、外部メモリ３００から読み出す。バッファ制御部２０４は、読み出された参照画像データを、短期データ１５の一部として参照画像バッファ２０２に記録する。
【００８２】
図１１は、原画像４００の右端に近い位置の符号化対象ブロック１１等が必要とする探索範囲１３の参照画像データの推移の例を示す図である。原画像４００の右端に近い位置の現在の符号化対象ブロック１１が必要とする探索範囲１３は、図１１では、現在の同位置ブロック１２−７が必要とする探索範囲１３−７である。
【００８３】
参照画像５００−１では、参照画像バッファ２０２は、長期データ１４と、短期データ１５とを記憶している。長期データ１４は、同位置ブロック１２−２が必要とする探索範囲１３−２の参照画像データのうち「ｌｏｎｇ  ｔｅｒｍ  ｄａｔａ」に分類された参照画像データである。短期データ１５は、同位置ブロック１２−７が必要とする探索範囲１３−７の参照画像データと、探索範囲１３−７の外の左側の１ブロック縦幅分に含まれている参照画像データとを含むデータである。
【００８４】
参照画像５００−１に対する次の処理として、参照画像５００−２に示されているように、バッファ制御部２０４は、現在の符号化対象ブロック１１の同位置ブロック１２−７が必要とする探索範囲１３−７の外の左側の１ブロック縦幅分に含まれている参照画像データを、参照画像バッファ２０２から削除する。すなわち、バッファ制御部２０４は、短期データ１５のうちの不要な参照画像データを、参照画像バッファ２０２から削除する。
【００８５】
参照画像５００−２に対する次の処理として、参照画像５００−３に示されているように、バッファ制御部２０４は、次の符号化対象ブロック１１の同位置ブロック１２−８が必要とする探索範囲の新規必要データとして、同位置ブロック１２−７が必要とする探索範囲１３−７の外の右側の１ブロック横幅分に含まれる参照画像データを、外部メモリ３００から読み出す。バッファ制御部２０４は、読み出された参照画像データを、短期データ１５の一部として参照画像バッファ２０２に記録する。
【００８６】
図１２は、原画像４００の右端の符号化対象ブロック１１等が必要とする探索範囲１３の参照画像データの推移の例を示す図である。原画像４００の右端の現在の符号化対象ブロック１１が必要とする探索範囲は、図１２では、現在の同位置ブロック１２−１０が必要とする探索範囲１３−１０である。
【００８７】
参照画像５００−１では、参照画像バッファ２０２は、長期データ１４と、短期データ１５とを記憶している。長期データ１４は、同位置ブロック１２−２が必要とする探索範囲１３−２のうち「ｌｏｎｇ  ｔｅｒｍ  ｄａｔａ」に分類された参照画像データである。短期データ１５は、参照画像５００−１の右端に近い位置で同位置ブロック１２−９が必要とする探索範囲の参照画像データである。
【００８８】
参照画像５００−１に対する次の処理として、参照画像５００−２に示されているように、バッファ制御部２０４は、現在の符号化対象ブロック１１の同位置ブロック１２−１０が必要とする探索範囲１３−１０の外の左側の１ブロック縦幅分に含まれている参照画像データを、参照画像バッファ２０２から削除する。すなわち、バッファ制御部２０４は、短期データ１５のうちの不要な参照画像データを、参照画像バッファ２０２から削除する。
【００８９】
参照画像５００−２に対する次の処理として、参照画像５００−３に示されているように、バッファ制御部２０４は、次の符号化対象ブロック１１の同位置ブロック１２−１１が必要とする探索範囲の新規必要データとして、同位置ブロック１２−２が必要とする探索範囲１３−２の外の下側の１ブロック縦幅分に含まれる参照画像データを、外部メモリ３００から読み出す。バッファ制御部２０４は、読み出された参照画像データを、長期データ１４の一部として参照画像バッファ２０２に記録する。
【００９０】
エリアホッピングベクトルは、左向きでもよい。
図１３は、左向きのエリアホッピングベクトルによって設定される探索範囲の例を示す図である。原画像の左端の現在の符号化対象ブロックが必要とする探索範囲は、図１３では、現在の同位置ブロック１２−２が必要とする探索範囲１３−２である。長期データ１４は、１ラインの符号化処理の間、参照画像バッファ２０２のメモリ２０３に保持される。
【００９１】
以上のように、実施形態の動画像符号化バッファ部２００は、バッファ装置である。動画像符号化バッファ部２００は、第１領域と第２領域と第３領域との順に実行される動き探索処理で参照される参照画像５００（参照フレーム）の各探索範囲１３の参照画像データを記憶する。第１領域及び第２領域は、符号化対象フレームにおける同一ラインの各符号化対象ブロック（一部領域）である。第３領域は、第１領域及び第２領域の同一ラインよりも下のラインの符号化対象ブロックである。動画像符号化バッファ部２００は、メモリ２０３と、バッファ制御部２０４とを備える。メモリ２０３は、参照画像データを記憶する。バッファ制御部２０４は、第２領域の動き探索処理が実行される場合、第１領域の動き探索処理で参照された第１探索範囲に含まれる参照画像データのうち、第３領域の動き探索処理で参照される第３探索範囲に含まれる参照画像データを、メモリ２０３から削除せずに残すよう制御する。
【００９２】
これによって、実施形態のバッファ装置は、参照画像データのバッファサイズと外部メモリのデータ転送レートとを抑えることが可能である。
【００９３】
実施形態のバッファ制御部２０４は、参照画像５００の左端を含む第１探索範囲及び第３探索範囲に含まれる参照画像データを、メモリ２０３から削除せずに残すよう制御する。バッファ制御部２０４は、第３領域の動き探索処理が実行される場合、第３探索範囲の参照画像データのうちメモリ２０３に残されていない参照画像データ（新規必要データ）を取得し、取得された参照画像データをメモリ２０３に記録する。すなわち、バッファ制御部２０４は、第３領域の動き探索処理が実行される場合、第３領域の動き探索処理で参照される第３探索範囲に含まれる参照画像データのうち、第１領域の動き探索処理で参照された第１探索範囲に含まれていない参照画像データを、メモリ２０３に記録する。バッファ制御部２０４は、第３探索範囲の一部の画素が参照画像５００の外にはみ出している場合、はみ出している画素の参照画像データをはみ出していない画素の参照画像データに基づいて生成しする。バッファ制御部２０４は、生成された参照画像データと取得された参照画像データとを、新規必要データとしてメモリ２０３に記録する。
【００９４】
バッファ制御部２０４は、メモリ２０３に記憶される期間が長期間であるか否かを表すラベリングデータのうち、長期間であることを表すラベリングデータ（ｌｏｎｇ  ｔｅｒｍ  ｄａｔａ）を、取得された参照画像データに対応付ける。バッファ制御部２０４は、長期間であることを表すラベリングデータが対応付けられた参照画像データを、長期間であることを表すラベリングデータが対応付けられていない参照画像データ（ｓｈｏｒｔ  ｔｅｒｍ  ｄａｔａ）と比較してメモリ２０３に長期間残すよう制御する。
【００９５】
これらによって、実施形態のバッファ装置は、１ラインの符号化処理の間、参照画像における左端の参照画像データを参照画像バッファ２０２のメモリ２０３に保持する。これによって、実施形態のバッファ装置は、参照画像バッファ２０２のメモリ２０３に保持される参照画像データのサイズを探索範囲の２倍以下（例えば、１．５倍）の範囲の参照画像データのサイズに抑えて、外部メモリ３００に必要とされるデータ転送レートを（符号化ブロック横幅×探索範囲縦幅／１ブロック処理時間）又は（探索範囲横幅×符号化ブロック縦幅／１ブロック処理時間）に抑えることができる。
【００９６】
実施形態のバッファ装置は、符号化処理のラインが更新された場合でも、探索範囲のサイズをほぼ一定にして、参照画像データの転送レートをほぼ一定にすることが可能である。実施形態のバッファ装置は、エリアホッピングにも対応可能であり、符号化効率を保ったまま、低い転送レートで符号化装置１０の規模及び電力を抑えることが可能である。
【００９７】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【００９８】
上述した実施形態における符号化装置をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、ＦＰＧＡ（Field Programmable Gate Array）等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【産業上の利用可能性】
【００９９】
本発明は、動画像の符号化装置に適用可能である。
【符号の説明】
【０１００】
１０…符号化装置、１１…符号化対象ブロック、１２…同位置ブロック、１３…探索範囲、１４…長期データ、１５…短期データ、１６…新規必要範囲、１００…動画像符号化処理部、１０１…原画像整形部、１０２…イントラ予測処理部、１０３…インター予測処理部、１０４…予測残差信号生成部、１０５…変換・量子化処理部、１０６…エントロピー符号化部、１０７…逆量子化・逆変換処理部、１０８…復号信号生成部、１０９…ループフィルタ処理部、２００…動画像符号化バッファ部、２０１…原画像バッファ、２０２…参照画像バッファ、２０３…メモリ、２０４…バッファ制御部、３００…外部メモリ、４００…原画像、５００…参照画像、５０１…ブロック、５０２…ブロック、５０３…ブロック、５０４…ブロック、５０５…ブロック、６０１…探索範囲、６０２…探索範囲、６０３…探索範囲、６０４…探索範囲
【図１】
2019216324.tif 000003
【図２】
2019216324.tif 000004
【図３】
2019216324.tif 000005
【図４】
2019216324.tif 000006
【図５】
2019216324.tif 000007
【図６】
2019216324.tif 000008
【図７】
2019216324.tif 000009
【図８】
2019216324.tif 000010
【図９】
2019216324.tif 000011
【図１０】
2019216324.tif 000012
【図１１】
2019216324.tif 000013
【図１２】
2019216324.tif 000014
【図１３】
2019216324.tif 000015