(57)【要約】      （修正有）【課題】画像の分割領域の境界領域にフィルタ処理を行う場合に、符号化に要する時間の増加を抑制する技術を提供する。【解決手段】動画像に含まれる複数の画像を所定の符号化順に従って符号化する画像符号化装置において、動画像に含まれる第１の画像を複数の分割領域に分割する分割手段と、第１の画像を分割領域単位で符号化し、動き補償フレーム間予測を用いて動画像に含まれる第２の画像を符号化する符号化手段と、符号化された第１の画像を復号する復号手段と、復号された第１の画像において複数の分割領域の境界領域にフィルタ処理を行うフィルタ手段と、を備える。第１の画像が所定の符号化順において第２の画像の直前に位置し、第１の画像が動き補償フレーム間予測のための参照画像として使用される場合、符号化手段は、第１の画像における複数の分割領域の境界領域を動き補償フレーム間予測の探索範囲から除外する。【選択図】図７
2019129411.tif 000002
【特許請求の範囲】
【請求項１】
動画像に含まれる複数の画像を所定の符号化順に従って符号化する画像符号化装置であって、
前記動画像に含まれる第１の画像を複数の分割領域に分割する分割手段と、
前記第１の画像を分割領域単位で符号化し、動き補償フレーム間予測を用いて前記動画像に含まれる第２の画像を符号化する符号化手段と、
前記符号化された前記第１の画像を復号する復号手段と、
前記復号された前記第１の画像において前記複数の分割領域の境界領域にフィルタ処理を行うフィルタ手段と、
を備え、
前記第１の画像が前記所定の符号化順において前記第２の画像の直前に位置し、前記第１の画像が前記動き補償フレーム間予測のための参照画像として使用される場合、前記符号化手段は、前記第１の画像における前記複数の分割領域の前記境界領域を前記動き補償フレーム間予測の探索範囲から除外する
ことを特徴とする画像符号化装置。
【請求項２】
動画像に含まれる複数の画像を所定の符号化順に従って符号化する画像符号化装置であって、
前記動画像に含まれる第１の画像を複数の分割領域に分割する分割手段と、
前記第１の画像を分割領域単位で符号化し、動き補償フレーム間予測を用いて前記動画像に含まれる第２の画像を符号化する符号化手段と、
前記符号化された前記第１の画像を復号する復号手段と、
前記復号された前記第１の画像において前記複数の分割領域の境界領域にフィルタ処理を行うフィルタ手段と、
を備え、
前記第１の画像が前記所定の符号化順において前記第２の画像の直前に位置する場合、前記符号化手段は、前記第１の画像を前記動き補償フレーム間予測のための参照画像として使用しない
ことを特徴とする画像符号化装置。
【請求項３】
前記第１の画像が前記所定の符号化順において前記第２の画像の直前に位置する場合、前記フィルタ手段による前記第１の画像のための前記フィルタ処理と、前記符号化手段による前記第２の画像の前記符号化とは、並列に実行される
ことを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項４】
前記フィルタ処理は、デブロッキングフィルタ処理を含む
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像符号化装置。
【請求項５】
前記複数の分割領域は、ＨＥＶＣ符号化方式のタイルである
ことを特徴とする請求項１乃至４のいずれか１項に記載の画像符号化装置。
【請求項６】
動き補償フレーム間予測のための参照画像として使用されない第１の画像と、動き補償フレーム間予測のための参照画像として使用される複数の第２の画像とを含む動画像を符号化する画像符号化装置であって、
前記複数の第２の画像それぞれを複数の分割領域に分割する分割手段と、
前記複数の第２の画像それぞれを分割領域単位で符号化し、動き補償フレーム間予測を用いて前記第１の画像を符号化する符号化手段と、
前記符号化された前記複数の第２の画像それぞれを復号する復号手段と、
前記復号された前記複数の第２の画像それぞれにおいて前記複数の分割領域の境界領域にフィルタ処理を行うフィルタ手段と、
を備え、
前記符号化手段は、前記第１の画像を符号化する前に、前記複数の第２の画像のうち、前記第１の画像の符号化時に参照画像として使用される全ての画像と前記全ての画像の次に撮影された画像とを符号化する
ことを特徴とする画像符号化装置。
【請求項７】
前記符号化された前記第１の画像及び前記複数の第２の画像それぞれをエントロピー符号化するエントロピー符号化手段を更に備え、
前記エントロピー符号化手段は、前記次に撮影された画像をエントロピー符号化する前に前記第１の画像をエントロピー符号化する
ことを特徴とする請求項６に記載の画像符号化装置。
【請求項８】
前記フィルタ処理は、デブロッキングフィルタ処理を含む
ことを特徴とする請求項６又は７に記載の画像符号化装置。
【請求項９】
前記複数の分割領域は、ＨＥＶＣ符号化方式のタイルである
ことを特徴とする請求項６乃至８のいずれか１項に記載の画像符号化装置。
【請求項１０】
請求項１乃至９のいずれか１項に記載の画像符号化装置と、
前記動画像を生成する撮像手段と、
を備えることを特徴とする撮像装置。
【請求項１１】
動画像に含まれる複数の画像を所定の符号化順に従って符号化する画像符号化装置が実行する画像符号化方法であって、
前記動画像に含まれる第１の画像を複数の分割領域に分割する分割工程と、
前記第１の画像を分割領域単位で符号化し、動き補償フレーム間予測を用いて前記動画像に含まれる第２の画像を符号化する符号化工程と、
前記符号化された前記第１の画像を復号する復号工程と、
前記復号された前記第１の画像において前記複数の分割領域の境界領域にフィルタ処理を行うフィルタ工程と、
を備え、
前記第１の画像が前記所定の符号化順において前記第２の画像の直前に位置し、前記第１の画像が前記動き補償フレーム間予測のための参照画像として使用される場合、前記符号化工程は、前記第１の画像における前記複数の分割領域の前記境界領域を前記動き補償フレーム間予測の探索範囲から除外する
ことを特徴とする画像符号化方法。
【請求項１２】
動画像に含まれる複数の画像を所定の符号化順に従って符号化する画像符号化装置が実行する画像符号化方法であって、
前記動画像に含まれる第１の画像を複数の分割領域に分割する分割工程と、
前記第１の画像を分割領域単位で符号化し、動き補償フレーム間予測を用いて前記動画像に含まれる第２の画像を符号化する符号化工程と、
前記符号化された前記第１の画像を復号する復号工程と、
前記復号された前記第１の画像において前記複数の分割領域の境界領域にフィルタ処理を行うフィルタ工程と、
を備え、
前記第１の画像が前記所定の符号化順において前記第２の画像の直前に位置する場合、前記符号化工程は、前記第１の画像を前記動き補償フレーム間予測のための参照画像として使用しない
ことを特徴とする画像符号化方法。
【請求項１３】
動き補償フレーム間予測のための参照画像として使用されない第１の画像と、動き補償フレーム間予測のための参照画像として使用される複数の第２の画像とを含む動画像を符号化する画像符号化装置が実行する画像符号化方法であって、
前記複数の第２の画像それぞれを複数の分割領域に分割する分割工程と、
前記複数の第２の画像それぞれを分割領域単位で符号化し、動き補償フレーム間予測を用いて前記第１の画像を符号化する符号化工程と、
前記符号化された前記複数の第２の画像それぞれを復号する復号工程と、
前記復号された前記複数の第２の画像それぞれにおいて前記複数の分割領域の境界領域にフィルタ処理を行うフィルタ工程と、
を備え、
前記符号化工程は、前記第１の画像を符号化する前に、前記複数の第２の画像のうち、前記第１の画像の符号化時に参照画像として使用される全ての画像と前記全ての画像の次に撮影された画像とを符号化する
ことを特徴とする画像符号化方法。
【請求項１４】
コンピュータを、請求項１乃至９のいずれか１項に記載の画像符号化装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置、撮像装置、画像符号化方法、及びプログラムに関する。
【背景技術】
【０００２】
動画像の国際標準符号化規格である、ＨＥＶＣ（High Efficiency Video Coding）符号化方式が普及し始めている。ＨＥＶＣ符号化方式では、従来のＨ．２６４符号化方式に対してタイル分割という技術が新たに追加されている（非特許文献１参照）。これは、画面をタイルと呼ばれる複数の分割領域に分割し、タイルごとに順番に符号化動作を行うものである。例えば、画面を左右の２つのタイルに分割した場合、まず左のタイルの符号化動作を行った後に、右のタイルの符号化動作を行う。タイル分割を行わない通常の符号化動作では、１画面を左上からブロックごとにラスタ順に符号化を行うが、タイル分割の符号化動作ではタイルごとに順に符号化を行い、タイル内で左上からブロックごとにラスタ順で符号化を行う。従って、タイル分割を行わない場合と比べて、符号化順が異なることになる。
【０００３】
ＨＥＶＣ符号化方式でも、Ｈ．２６４符号化方式と同様にデブロッキングフィルタという処理が行われる。これは、ブロック境界に対してブロックノイズを除去するフィルタ処理である。通常、タイル分割を行わない１画面でのラスタ順の符号化動作の場合、ブロックごとにデブロッキングフィルタの処理が行われる。デブロッキングフィルタは、上下のブロック境界、及び左右のブロック境界にフィルタがかけられる。そのため、エンコーダは通常、ブロック境界近辺のローカルデコード後の画素を、フィルタ処理用に内部に保持しておく。ラスタ順の処理の場合、左右境界のフィルタ用の画素についてはブロックごとに保持しておけばよい。上下境界のフィルタ用の画素については、上境界のフィルタ処理用の複数ラインの画素を保持しておけばよい。
【０００４】
タイル分割処理の場合、符号化順が通常とは異なる。この場合、タイル内でのデブロッキングフィルタ処理は問題ないが、タイル境界のデブロッキングフィルタ処理が問題になる。図２に例を示す。まず、エンコーダは左のタイル２０１の符号化処理を行い、デブロッキングフィルタ処理も行う。次に、エンコーダは右のタイル２０２の符号化処理を行う。ここで、タイル分割を行わない場合と符号化順が異なるため、タイル分割境界２０３にデブロッキングフィルタ処理を行う際に、１つ前に符号化されたブロックには、タイル分割境界２０３のデブロッキングフィルタ処理用の画素が存在しない。そのため、タイル分割境界２０３に対するデブロッキングフィルタ処理を可能にするためには、タイル分割境界２０３のデブロッキングフィルタ処理用の画素を取得可能にする何らかの構成が必要である。
【０００５】
特許文献１は、従来からデブロッキングフィルタ用に保持していた画素に加えて、左右のタイル分割境界（以下、「タイル境界」とも呼ぶ）近辺の画素を垂直方向の解像度分すべて保持しておく技術を開示している。特許文献１の技術によれば、タイル境界近辺の垂直方向の解像度分の画素を全て保持しておくため、大量のバッファが必要となる。
【０００６】
或いは、１画面全体にタイル境界のデブロッキングフィルタ処理以外の符号化処理を全て行った後に、タイル境界に対してデブロッキングフィルタのみを行う構成が考えられる。即ち、エンコーダは、タイル境界のデブロッキングフィルタ処理以外の符号化処理を行い、１画面分のローカルデコード画像を一旦保存し、その後、タイル境界のデブロッキング処理を行うというように、２段階に分けて処理を行うことになる。この場合、タイル境界のデブロッキングフィルタ処理用に境界近辺の垂直方向の画素を保持しておく必要がないので、必要なバッファサイズを削減することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１７−５０７６６号公報
【非特許文献】
【０００８】
【非特許文献１】Ｈ．２６５／ＨＥＶＣ教科書、大久保  榮[監修]、鈴木  輝彦、▲高▼村  誠之、中条  健[編]、2013年10月21日発行
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述のように処理を２段階に分ける場合、処理時間が長くなる。処理時間を削減するために、２つの処理をピクチャ単位で並列に行うことが考えられる。即ち、タイル境界のデブロッキングフィルタ処理以外の符号化処理と、タイル境界のデブロッキングフィルタ処理とを、ピクチャ単位のパイプライン処理で行うことができればよい。しかしながら、直前に符号化を行ったローカルデコード画像を参照画像として用いて符号化を行うためには、タイル境界のデブロッキングフィルタ処理が完了するのを待つ必要がある。そのため、例えばＰピクチャの直後のＢピクチャの符号化時などには、このようなパイプライン処理を適用することができない。
【００１０】
本発明はこのような状況に鑑みてなされたものであり、分割領域単位で符号化される画像において分割領域の境界領域にフィルタ処理を行う場合に、符号化に要する時間の増加を抑制する技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明は、動画像に含まれる複数の画像を所定の符号化順に従って符号化する画像符号化装置であって、前記動画像に含まれる第１の画像を複数の分割領域に分割する分割手段と、前記第１の画像を分割領域単位で符号化し、動き補償フレーム間予測を用いて前記動画像に含まれる第２の画像を符号化する符号化手段と、前記符号化された前記第１の画像を復号する復号手段と、前記復号された前記第１の画像において前記複数の分割領域の境界領域にフィルタ処理を行うフィルタ手段と、を備え、前記第１の画像が前記所定の符号化順において前記第２の画像の直前に位置し、前記第１の画像が前記動き補償フレーム間予測のための参照画像として使用される場合、前記符号化手段は、前記第１の画像における前記複数の分割領域の前記境界領域を前記動き補償フレーム間予測の探索範囲から除外することを特徴とする画像符号化装置を提供する。
【発明の効果】
【００１２】
本発明によれば、分割領域単位で符号化される画像において分割領域の境界領域にフィルタ処理を行う場合に、符号化に要する時間の増加を抑制することが可能となる。
【００１３】
なお、本発明のその他の特徴及び利点は、添付図面及び以下の発明を実施するための形態における記載によって更に明らかになるものである。
【図面の簡単な説明】
【００１４】
【図１】撮像装置１００の構成を説明するブロック図。
【図２】タイル分割を伴う符号化動作について説明する図。
【図３】符号化対象画像の入力順、符号化順、及び参照関係を示す図。
【図４】動きベクトル検出を行う探索範囲の制限を行わない場合の符号化動作について説明する図。
【図５】画像３０４（図４）が参照する参照画像の探索範囲を示す図。
【図６】探索範囲の制限を行う場合の画像３０６、３０４、３０５、３０９（図４）の符号化動作について説明する図。
【図７】撮像装置１００が実行する符号化処理のフローチャート。
【図８】撮像装置８００の構成を説明するブロック図。
【図９】撮像装置９００の構成を説明するブロック図。
【図１０】画像符号化部９０２（図９）の詳細について説明する図。
【図１１】撮像装置９００が実行する符号化処理のフローチャート。
【図１２】図１１のフローチャートに従う符号化動作の例について説明する図。
【図１３】撮像装置９００が実行するエントロピー符号化処理のフローチャート。
【図１４】図１３のフローチャートに従うエントロピー符号化動作の例について説明する図。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照して、本発明の実施形態を説明する。添付図面の全体を通じて、同一の参照符号が付与された要素は、同一又は同様の要素を表す。なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。また、実施形態の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。また、別々の実施形態の中で説明されている特徴を適宜組み合せることも可能である。
【００１６】
［第１の実施形態］
図１は、第１の実施形態に係る画像符号化装置を含む撮像装置１００の構成を説明するブロック図である。以下では、ＨＥＶＣ符号化方式により動画像の符号化を行う例について説明するが、本実施形態の符号化方式はＨＥＶＣ符号化方式に限定されない。
【００１７】
最初に、タイル分割を行わない通常の符号化動作について説明する。被写体からの光束が、レンズ１０１を通して撮像部１０２に入力される。撮像部１０２は、入力された光束をデジタル画素データに変換し、現像処理部１０３へ出力する。
【００１８】
現像処理部１０３は、デベイヤー処理、キズ補正、ノイズ除去、ＹＣｂＣｒ形式への色変換などの各種画像処理を行う。画像処理後の、圧縮符号化を行うことができる形式になった画像が、これから符号化を行う対象である符号化対象画像として符号化フレームバッファ１０４に入力される。
【００１９】
動き予測部１０５は、符号化フレームバッファ１０４に格納されている符号化対象画像と、参照フレームバッファ１１６に格納されている参照画像との間でブロックマッチングをとり、動きベクトル検出を行う。その際に、参照画像範囲設定部１１８が、動きベクトル検出を行う探索範囲の設定を行う。動き予測部１０５は、符号化対象画像と、検出された動きベクトル位置の予測画像との間で画素の差分をとり、差分画像を直交変換部１０６に出力する。また、動き予測部１０５は、ローカルデコード画像作成用に、予測画像を動き補償部１１３に出力する。
【００２０】
直交変換部１０６は、差分画像に対して離散コサイン変換を行うことにより変換係数を生成し、量子化部１０７に出力する。
【００２１】
量子化部１０７は、直交変換部１０６から送られてきた変換係数に対して、量子化制御部１０８が出力する量子化ステップ（量子化値）に従って量子化を行う。量子化された変換係数は、符号化ストリーム作成のために可変長符号化部１０９へ出力される。また、量子化された変換係数は、ローカルデコード画像を作成するために、逆量子化部１１１へ出力される。
【００２２】
可変長符号化部１０９は、量子化された変換係数に対してジグザグスキャン又はオルタネートスキャン等を行い、可変長符号化を行う。また、可変長符号化部１０９は、動きベクトル、量子化値、マクロブロック分割情報、適応オフセット処理用パラメータなどの符号化方式情報に対して可変長符号化を行う。可変長符号化部１０９は、符号化された変換係数に対して符号化された符号化方式情報を付加することにより、符号化ストリームを生成する。生成された符号化ストリームは、記録メディア１１０に保存される。また、可変長符号化部１０９は、符号化の際にマクロブロックごとの発生符号量を算出し、量子化制御部１０８に出力する。
【００２３】
量子化制御部１０８は、可変長符号化部１０９から送られてくる発生符号量を用いて、目標符号量を達成するように量子化値を決定し、量子化部１０７に出力する。
【００２４】
逆量子化部１１１は、量子化部１０７から送られてきた量子化後の変換係数に対して逆量子化を行い、ローカルデコード用の変換係数を生成する。この変換係数は逆直交変換部１１２に出力される。
【００２５】
逆直交変換部１１２は、逆量子化部１１１から出力された変換係数に対して逆離散コサイン変換を行うことにより差分画像を生成する。生成された差分画像は動き補償部１１３に出力される。
【００２６】
動き補償部１１３は、動き予測部１０５から送られてきた動きベクトル位置の予測画像と、逆直交変換部１１２から送られてきた差分画像とを加算することにより、ローカルデコード用の画像データを生成する。生成された画像データは、デブロッキングフィルタ部１１４に出力される。
【００２７】
デブロッキングフィルタ部１１４は、動き補償部１１３から送られてきた画像データに対してデブロッキングフィルタをかける。デブロッキングフィルタ後の画像データは、適応オフセット処理部１１５に出力される。
【００２８】
適応オフセット処理部１１５は、バンドオフセット処理、エッジオフセット処理、又は何も処理をしない、のいずれかの選択を行い、適応オフセット処理を行うバンド位置、エッジ方向、オフセット値などを決定する。適応オフセット処理部１１５は、デブロッキングフィルタ後の画像データに対して適応オフセット処理を行い、適応オフセット処理後の画像をローカルデコード画像として参照フレームバッファ１１６に格納する。また、適応オフセット処理部１１５は、適応オフセット処理用のパラメータ（適応オフセット処理としてどの処理を選択したかの情報、バンド位置、エッジ方向、オフセット値など）を符号化ストリームに含めるために、可変長符号化部１０９に出力する。
【００２９】
以上の処理により、符号化ストリーム及びローカルデコード画像が作成される。
【００３０】
次に、タイル分割を伴う符号化動作について説明する。ここでは、図２に示すように符号化対象画像を左右のタイル（分割領域）に２分割した場合について説明する。まず、左のタイル２０１について、上述した通常の符号化動作と同様に、タイル内でラスタ順に符号化動作が行われる。タイル２０１の符号化動作が完了したら、右のタイル２０２について同様に符号化動作が行われる。但し、タイル２０２の符号化動作の際に、タイル分割境界２０３には、デブロッキングフィルタ処理は行われない。
【００３１】
なお、タイル２０１もタイル２０２も、タイル分割境界２０３の画素を含むマクロブロック（ＣＴＵ）においては、適応オフセット処理を行わないものとする。これは、適応オフセット処理はデブロッキングフィルタ処理後の画素に対して行う必要があるためである。
【００３２】
ピクチャ全体の符号化処理が完了し、参照フレームバッファ１１６にローカルデコード画像が格納された後に、タイル分割境界２０３のデブロッキングフィルタ処理が行われる。具体的には、タイル境界デブロッキングフィルタ部１１７は、タイル分割境界２０３のデブロッキングフィルタ処理に必要な画素を参照フレームバッファ１１６から読み出す。そして、タイル境界デブロッキングフィルタ部１１７は、タイル分割境界２０３のデブロッキングフィルタ処理を行い、デブロッキングフィルタ処理後の画素を参照フレームバッファ１１６の同じ場所に格納する。
【００３３】
図３は、符号化対象画像の入力順、符号化順、及び参照関係を示す図である。図３には、符号化対象画像として、順番に入力される画像３０１から画像３１０までが示されている。符号化は、これらの画像の順番を入れ替えて行われる。画像３０３が入力された後、最初にＩピクチャとして画像３０３が符号化される。画像３０３はＩピクチャなので、画面内のみで符号化が行われる。次に、Ｂピクチャとして画像３０１、３０２が符号化される。画像３０１、３０２の符号化は、動き補償フレーム間予測を用いて行われ、画像３０３のロ−カルデコード画像が参照画像として使用される。次に、Ｐピクチャとして画像３０６が符号化される。画像３０６の符号化は、動き補償フレーム間予測を用いて行われ、画像３０３のローカルデコード画像が参照画像として使用される。次に、Ｂピクチャとして画像３０４、３０５が符号化される。画像３０４、３０５の符号化は、動き補償フレーム間予測を用いて行われ、画像３０３、３０６のローカルデコード画像が参照画像として使用される。次に、Ｐピクチャとして画像３０９が符号化される。画像３０９の符号化は、動き補償フレーム間予測を用いて行われ、画像３０６のローカルデコード画像が参照画像として使用される。
【００３４】
ここで、図４を参照して、動きベクトル検出を行う探索範囲の制限（詳細は後述）を行わない場合の符号化動作について説明する。図４には、画像３０６、３０４、３０５、３０９の符号化動作が、タイル境界のデブロッキングフィルタ処理以外の符号化処理（Ｅｎｃ処理）と、タイル境界のデブロッキングフィルタ処理（Ｄｅｂ処理）とに分けて示されている。
【００３５】
最初に、画像３０３のローカルデコード画像を参照して、画像３０６（Ｐピクチャ）のＥｎｃ処理４０１が行われる。その後、画像３０６のＤｅｂ処理４０２が行われる。次に、画像３０３、３０６のローカルデコード画像を参照して、画像３０４（Ｂピクチャ）のＥｎｃ処理４０３が行われる。その後、画像３０４のＤｅｂ処理４０４が行われる。Ｄｅｂ処理４０４と並行して、画像３０３、３０６のローカルデコード画像を参照して、画像３０５（Ｂピクチャ）のＥｎｃ処理４０５が行われる。その後、画像３０５のＤｅｂ処理４０６が行われる。Ｄｅｂ処理４０６と並行して、画像３０６のローカルデコード画像を参照して、画像３０９（Ｐピクチャ）のＥｎｃ処理４０７が行われる。その後、画像３０９のＤｅｂ処理４０８が行われる。
【００３６】
このように、画像３０４のＤｅｂ処理４０４及び画像３０５のＥｎｃ処理４０５、並びに画像３０５のＤｅｂ処理４０６及び画像３０９のＥｎｃ処理４０７は、パイプライン処理として並列に行うことができる。しかし、画像３０４のＥｎｃ処理４０３は、直前に符号化が行われている画像３０３のローカルデコード画像を参照画像として用いるため、画像３０３のＤｅｂ処理４０２と並列に行うことができない。そのため、Ｅｎｃ処理４０３を実行するためには、Ｄｅｂ処理４０２が完了するのを待たなければならず、パイプラインで処理を行うことができない。
【００３７】
次に、図５及び図６を参照して、動きベクトル検出を行う探索範囲の制限を行う場合の符号化動作について説明する。画像３０４の符号化のように、直前に符号化された画像を参照画像として使用する符号化を行う場合、参照画像範囲設定部１１８は、動きベクトル検出を行う参照範囲（探索範囲）を通常よりも狭い範囲に設定する。
【００３８】
図５に、画像３０４が参照する参照画像の探索範囲を示す。画像３０４の符号化には、画像３０３、３０６のローカルデコード画像が参照画像として使用される。図５には、画像３０３のローカルデコード画像５０１、及び画像３０６のローカルデコード画像５０２が示されている。網掛けで示す探索範囲５０３は、ローカルデコード画像５０１の探索範囲である。ローカルデコード画像５０１は、画像３０４の直前に符号化された画像ではないため、探索範囲５０３は画像全体である。即ち、探索範囲の制限は行われず、探索範囲は通常の符号化動作の場合と同じである。ローカルデコード画像５０２のうち、領域５０４は、タイル境界のデブロッキングフィルタ処理部分である。ローカルデコード画像５０２から領域５０４を除いた部分である探索範囲５０５、５０６（網掛け部分）は、ローカルデコード画像５０２の探索範囲である。このように、直前に符号化が行われた画像が参照画像として使用される場合、参照画像範囲設定部１１８は、領域５０４（複数のタイルの境界領域）を探索範囲から除外する。従って、画像３０４の符号化時に領域５０４は参照されることがなく、タイル境界（領域５０４）のデブロッキングフィルタ処理を行う前にローカルデコード画像５０２を参照画像として用いることが可能になる。
【００３９】
図６を参照して、探索範囲の制限を行う場合の画像３０６、３０４、３０５、３０９の符号化動作について説明する。最初に、画像３０３のローカルデコード画像を参照して、画像３０６（Ｐピクチャ）のＥｎｃ処理６０１が行われる。その後、画像３０６のＤｅｂ処理６０２が行われる。Ｄｅｂ処理６０２と並行して、画像３０３、３０６のローカルデコード画像を参照して、画像３０４（Ｂピクチャ）のＥｎｃ処理６０３が行われる。その後、画像３０４のＤｅｂ処理６０４が行われる。Ｄｅｂ処理６０４と並行して、画像３０３、３０６のローカルデコード画像を参照して、画像３０５（Ｂピクチャ）のＥｎｃ処理６０５が行われる。その後、画像３０５のＤｅｂ処理６０６が行われる。Ｄｅｂ処理６０６と並行して、画像３０６のローカルデコード画像を参照して、画像３０９（Ｐピクチャ）のＥｎｃ処理６０７が行われる。その後、画像３０９のＤｅｂ処理６０８が行われる。
【００４０】
図６の符号化動作は、探索範囲の制限を行わない場合（図４参照）と比較して、画像３０６のＤｅｂ処理６０２と画像３０４のＥｎｃ処理６０３が並列に実行される点が異なる。直前に符号化されたローカルデコード画像を参照画像として使用する場合においてもＥｎｃ処理とＤｅｂ処理を並列に行えるため、パイプライン処理を保ったまま符号化処理が行える。そのため、処理時間を削減することができる。
【００４１】
図７は、撮像装置１００が実行する符号化処理のフローチャートである。なお、ここでは符号化処理のうち主に探索範囲の制限に関係する処理について説明を行うものとし、その他の処理（例えば、符号化ストリーム作成処理など）については説明を省略する。また、本フローチャートの各ステップの処理を実行する機能は、任意のハードウェア又はソフトウェアにより実装可能である。例えば、ソフトウェアによる実装の場合、撮像装置１００のＣＰＵがＲＯＭに格納された制御プログラムをＲＡＭに展開して実行することにより、これらの機能を実現することができる。
【００４２】
Ｓ７０１で、撮像装置１００は、符号化対象画像を取得する。符号化対象画像の取得は、画像の入力順とは異なる所定の符号化順に従って行われる（図３参照）。
【００４３】
Ｓ７０２で、撮像装置１００は、符号化対象画像を複数のタイルに分割する。
【００４４】
Ｓ７０３で、撮像装置１００は、符号化対象画像がＩピクチャとして符号化される画像であるか否かを判定する。符号化対象画像がＩピクチャとして符号化される画像である場合、処理はＳ７０４に進み、そうでない場合、処理はＳ７０５に進む。
【００４５】
Ｓ７０４で、撮像装置１００は、符号化対象画像に対して、タイル境界のデブロッキングフィルタ処理以外の符号化処理をタイル単位（分割領域単位）で実行する。即ち、撮像装置１００は、各タイルのフレーム内符号化及び復号、及びタイル境界を除く領域に対するデブロッキングフィルタ処理を実行する。
【００４６】
Ｓ７０３において符号化対象画像がＩピクチャとして符号化される画像でないと判定された場合、符号化対象画像はＰピクチャ又はＢピクチャとして符号化される画像である。即ち、符号化対象画像に対して、以前に符号化された１以上の画像を参照画像として用いる動き補償フレーム間予測符号化が行われる。この１以上の参照画像に関して、Ｓ７０５で、撮像装置１００は、直前に符号化された参照画像が存在するか否かを判定する。「直前に符号化された参照画像」とは、符号化順において現在の符号化対象画像の直前に位置する参照画像である。直前に符号化された参照画像が存在する場合、処理はＳ７０６に進み、そうでない場合、処理はＳ７０７に進む。
【００４７】
Ｓ７０６で、撮像装置１００は、参照画像範囲設定部１１８を用いて、直前に符号化された参照画像について、動き補償フレーム間予測の探索範囲からタイル境界を除外する。
【００４８】
Ｓ７０７で、撮像装置１００は、符号化対象画像に対して、タイル境界のデブロッキングフィルタ処理以外の符号化処理をタイル単位で実行する。即ち、撮像装置１００は、各タイルの動き補償フレーム間予測符号化及び復号、及びタイル境界を除く領域に対するデブロッキングフィルタ処理を実行する。Ｓ７０６において探索範囲からタイル境界を除外する処理が行われた場合、Ｓ７０７の動き補償フレーム間予測符号化において、除外されたタイル境界の探索は行われない。
【００４９】
Ｓ７０８で、撮像装置１００は、Ｓ７０４又はＳ７０７においてタイル境界のデブロッキングフィルタ処理以外の符号化処理が行われた符号化対象画像に対して、タイル境界のデブロッキングフィルタ処理を行う。なお、Ｓ７０８の処理は、次の符号化対象画像に対するＳ７０４又はＳ７０７の処理と並行して実行可能である。そのため、撮像装置１００は、Ｓ７０８の処理の完了を待たずに、次のＳ７０９の処理を実行する。
【００５０】
Ｓ７０９で、撮像装置１００は、次の符号化対象画像が存在するか否かを判定する。次の符号化対象画像が存在する場合、処理はＳ７０２に戻り、そうでない場合、本フローチャートの符号化処理は終了する。次の符号化対象画像が現在の符号化対象画像を参照してＰピクチャ又はＢピクチャとして符号化される場合、現在の符号化対象画像に対するＳ７０８の処理が完了する前に、Ｓ７０７において現在の符号化対象画像が参照される可能性がある。この場合であっても、Ｓ７０５においてタイル境界が探索範囲から除外されるため、現在の符号化対象画像に対するＳ７０８の処理が完了する前に、Ｓ７０７において次の符号化対象画像に対する動き補償フレーム間予測符号化を行うことが可能である。
【００５１】
以上説明したように、第１の実施形態によれば、撮像装置１００は、符号化対象画像をタイル単位で符号化して復号する。また、Ｐピクチャ又はＢピクチャに対応する符号化対象画像については、撮像装置１００は、動き補償フレーム間予測を用いて符号化を行う。現在の符号化対象画像の動き補償フレーム間予測のために参照画像として使用される符号化対象画像が、符号化順において現在の符号化対象画像の直前に位置する場合がある。この場合、撮像装置１００は、この直前の符号化対象画像におけるタイルの境界領域を、動き補償フレーム間予測の探索範囲から除外する。これにより、直前の符号化対象画像におけるタイルの境界領域に対するデブロッキングフィルタ処理が完了する前に、現在の符号化対象画像を符号化することが可能となる。従って、タイル単位で符号化される画像においてタイルの境界領域にフィルタ処理を行う場合に、符号化に要する時間の増加を抑制することが可能となる。
【００５２】
［第２の実施形態］
第２の実施形態では、直前に符号化された画像を参照画像として使用せずに動き補償フレーム間予測符号化を行う構成について説明する。
【００５３】
図８は、第２の実施形態に係る画像符号化装置を含む撮像装置８００の構成を説明するブロック図である。以下、主に第１の実施形態と異なる点について説明する。
【００５４】
撮像装置８００は、参照画像範囲設定部１１８（図１参照）の代わりに、参照画像選択部８０１を備える。参照画像選択部８０１は、ピクチャごとにどの画像を参照画像として用いるかを選択する。図３を参照して、通常の符号化時の参照関係を説明する。Ｐピクチャである画像３０６は、画像３０３のローカルデコード画像を参照する。Ｂピクチャである画像３０４、３０５は、前方参照として画像３０３のローカルデコード画像を参照し、後方参照として画像３０６のローカルデコード画像を参照する。このように、Ｂピクチャでは通常、前方参照と後方参照の２つの参照を行う。
【００５５】
ここで、画像３０４は、符号化順において画像３０６の次に位置する。第１の実施形態において図４を参照して説明したように、符号化順で直前に位置するローカルデコード画像を参照画像として用いる場合、Ｄｅｂ処理が終わるのを待たねばならず、パイプライン処理を行うことができない。そのため、符号化に要する時間が長くなる。
【００５６】
これを回避するために、本実施形態では、撮像装置８００は、符号化順で直前に位置するローカルデコード画像は参照画像として用いないものとする。参照画像選択部８０１は、符号化順と通常の符号化動作時の参照関係とに基づき、現在の符号化対象画像の符号化に用いる参照画像を選択する。
【００５７】
再び図３を参照して、参照画像選択の例を説明する。画像３０６は、符号化順で３ピクチャ前の画像３０３のローカルデコード画像を参照画像として用いる。画像３０４は、通常であれば画像３０３と画像３０６のローカルデコード画像を参照する。しかし、画像３０６は直前に符号化された画像である。そのため、参照画像選択部８０１は、４ピクチャ前に符号化された画像３０３のローカルデコード画像のみを参照画像として選択する。
【００５８】
画像３０５は、通常の符号化動作と同様、５ピクチャ前に符号化された画像３０３のローカルデコード画像と、２ピクチャ前に符号化された画像３０６のローカルデコード画像を参照画像として用いる。
【００５９】
画像３０４の符号化時に、符号化順において直前に位置する画像３０６を参照画像として使用しないことにより、画像３０６のＤｅｂ処理を待つことなく画像３０４の符号化を行うことができ、ピクチャパイプラインで処理を行うことができる。
【００６０】
以上説明したように、第２の実施形態によれば、撮像装置８００は、符号化対象画像をタイル単位で符号化して復号する。また、Ｐピクチャ又はＢピクチャに対応する符号化対象画像については、撮像装置８００は、動き補償フレーム間予測を用いて符号化を行う。この時、撮像装置８００は、符号化順において現在の符号化対象画像の直前に位置する符号化対象画像を、動き補償フレーム間予測のための参照画像として使用しない。これにより、直前の符号化対象画像におけるタイルの境界領域に対するデブロッキングフィルタ処理が完了する前に、現在の符号化対象画像を符号化することが可能となる。従って、タイル単位で符号化される画像においてタイルの境界領域にフィルタ処理を行う場合に、符号化に要する時間の増加を抑制することが可能となる。
【００６１】
［第３の実施形態］
図９は、第３の実施形態に係る画像符号化装置を含む撮像装置９００の構成を説明するブロック図である。撮像装置９００は、撮像部９０９、画像処理部９０１、画像符号化部９０２、記録部９０３、メモリバス９０４、フレームメモリ９０５、ＣＰＵ９０６、フラッシュメモリ９０７、及びＣＰＵバス９０８を含む。
【００６２】
撮像部９０９は、レンズやＣＣＤ等のカメラ部及び光学部を含み、レンズから取り込んだ光信号をセンサにて電気信号へ変換する。撮像部９０９は、変換後の電気信号を、ベイヤー形式のデジタルＲＡＷ画像データとして、メモリバス９０４を介して、大容量ＤＲＡＭ等のフレームメモリ９０５に出力する。
【００６３】
画像処理部９０１は、ＲＡＷ画像に対してデベイヤー処理（デモザイク処理）を施し、
輝度と色差からなる信号に変換する。その後、画像処理部９０１は、各信号に含まれるノイズを除去し、光学的な歪を補正し、画像を適正化する等、所謂現像処理を行う。そして、画像処理部９０１は、現像後の画像データを圧縮符号化するため、再度フレームメモリ９０５へ出力する。
【００６４】
画像符号化部９０２は、デジタル画像データをフレームメモリ９０５から読み出し、
動き補償フレーム間予測とエントロピー符号化による画像データの冗長性を利用した映像圧縮を行い、符号化ビットストリームを出力する。以下の説明において、画像符号化部９０２は、映像圧縮方式としてＨＥＶＣ符号化方式を採用するものとするが、本実施形態の映像圧縮方式はＨＥＶＣ符号化方式に限定されない。
【００６５】
記録部９０３は、符号化ビットストリームを、ＭＰ４やＭＯＶ形式等の、各種ＰＣアプリケーションで再生や編集互換性が保たれている所定のコンテナ形式に変換し、ＵＳＢメモリ、ＳＤカード、又はハードディスクなどの不揮発メモリ媒体に記録する。
【００６６】
メモリバス９０４は、撮像部９０９、画像処理部９０１、画像符号化部９０２、及び記録部９０３と、フレームメモリ９０５との間を接続し、画像データ、符号化データ、各種パラメータデータを高速転送するためのデータバスである。バス転送方式は、ＩＳＡ、ＰＣＩ−Ｅｘｐｒｅｓｓ、ＡＸＩ等の標準的なバス規格でもよいし、独自のバス方式を採用してもよい。
【００６７】
フレームメモリ９０５は、画像符号化部９０２の符号化処理の過程で使用する原画像データや、フレーム間予測のための参照画像データ、符号化ビットストリーム等を格納する。
【００６８】
ＣＰＵ９０６は、撮像部９０９、画像処理部９０１、画像符号化部９０２、記録部９０３の起動や停止、割り込み通知などのハードウェア制御を、ＣＰＵバス９０８を介して行うコントローラである。
【００６９】
フラッシュメモリ９０７は、ＣＰＵ９０６を動かすプログラムを格納した不揮発性メモリである。ＣＰＵ９０６は、フェッチ動作でフラッシュメモリ９０７へアクセスすることができる。
【００７０】
ＣＰＵバス９０８は、ＣＰＵ９０６と各ペリフェラルとを接続する制御用のバスである。ＣＰＵバス９０８は、メモリバス９０４と同様の標準化バス規格方式を採用してもよいし、十分な処理余裕があれば低速なＩ２Ｃ等のシリアル方式を採用してもよい。
【００７１】
次に、図１０を参照して、画像符号化部９０２の詳細について説明する。画像符号化部９０２は、イントラ予測部１０００、インター予測部１００１、イントラ・インター判定部１００２、予測画像生成部１００３、整数変換部１００４、量子化部１００５、エントロピー符号化部１００６、及び符号量制御部１００７を含む。画像符号化部９０２はまた、逆量子化部１００８、逆整数変換部１００９、ループフィルタ１０１０、ポストループフィルタ１０１１、減算器１０１２、及び加算器１０１３を含む。
【００７２】
イントラ予測部１０００は、フレームメモリ９０５に格納されたフレーム画像データから符号化対象ブロックの画像データを読み出し、符号化対象ブロック周辺の参照画素データから生成される複数のイントラ予測画像との相関を計算する。そして、イントラ予測部１０００は、最も相関の高いイントラ予測方式を選択してイントラ・インター判定部１００２へ通知する。
【００７３】
インター予測部１００１は、フレームメモリ９０５に格納された符号化対象画像を受信すると共に、符号化済みの画像データを参照画像として受信する。そして、インター予測部１００１は、ブロック単位で画素データ同士のパターンマッチングを行って動きベクトルを算出する。
【００７４】
イントラ・インター判定部１００２は、前述のイントラ予測部１０００と、インター予測部１００１からの出力の結果に基づいて、符号化のための予測方式を選択する。具体的な選択方法としては、符号化対象画像ブロックについてイントラ予測部１０００において計算した予測画像と、インター予測部１００１で導出した動きベクトルを用いて参照画像から生成した予測画像とについて、符号化対象画像との予測誤差をそれぞれ導出して比較する。或いは、イントラ予測部１０００や、インター予測部１００１で予測誤差を求めておき、イントラ・インター判定部１００２にて予測誤差を評価値として取得後、評価値を比較する方法でもよい。イントラ・インター判定部１００２は、予測誤差の比較の結果、差分値が小さい方の予測モードを符号化予測モードと判定して予測画像生成部１００３に出力する。
【００７５】
予測画像生成部１００３は、イントラ・インター判定部１００２で選択された予測モードに応じて予測画像を生成する。生成された予測画像は、入力画像との差分画像算出のために減算器１０１２へ出力される。予測画像はまた、ローカルデコード画像生成のために加算器１０１３へも出力される。
【００７６】
整数変換部１００４は、ブロック単位で画素データの空間解像度変換を行って空間周波数領域に変換する。
【００７７】
量子化部１００５は、目標符号量に基づいて量子化係数を算出し、整数変換部１００４で空間周波数領域に変換された係数データに対して量子化処理を行う。量子化された係数データ（量子化データ）は、エントロピー符号化を行うためにエントロピー符号化部１００６へ出力される。量子化された係数データはまた、参照画像や予測画像を算出するために逆量子化部１００８へも出力される。
【００７８】
エントロピー符号化部１００６は、量子化部１００５にて量子化された係数データに対して、ＣＡＢＡＣ（コンテキスト適応算術符号化）方式等のビットデータの出現確率の偏りを利用したエントロピー符号化による情報圧縮を行う。また、インター予測の場合には、エントロピー符号化部１００６は、動き予測で用いたベクトル値に対してもエントロピー符号化を行う。エントロピー符号化部１００６は、符号化データに対して、復号処理のために必要なパラメータ（ＳＰＳやＰＰＳ等のヘッダ情報）を付加し、所定のデータフォーマットに整形してフレームメモリ９０５に出力する。出力データはフレームメモリ９０５に格納され、上述の記録部９０３にて所定のコンテナ形式に変換された後に、ファイルとして記録媒体に保存される。
【００７９】
符号量制御部１００７は、エントロピー符号化部１００６から出力された符号化データの符号量を取得し、ビットレートやバッファモデルに基づいて１ピクチャ当たりの目標符号量を算出する。そして、符号量制御部１００７は、算出された目標符号量を量子化部１００５に設定するフィードバック制御を行う。
【００８０】
逆量子化部１００８は、量子化部１００５にて量子化された係数データに対して、再度量子化係数を乗じて係数データを計算する。
【００８１】
逆整数変換部１００９は、逆量子化部１００８から出力された係数データを逆整数変換することにより画像データを生成する。
【００８２】
ループフィルタ１０１０は、逆整数変換部１００９から出力された画像データと予測画像とを加算した画像データに対して、ブロック境界で発生する符号化歪みを軽減するフィルタ処理（例えばデブロッキングフィルタ処理）を施す。ループフィルタ１０１０は、フィルタ処理された画像データを、フレームメモリ９０５へローカルデコード画像として出力する。なお、符号化対象画像がＨＥＶＣ規格で定められる水平方向にタイル分割して符号化される場合、タイル境界を跨ぐフィルタ処理を行う必要がある画素については、ループフィルタ１０１０はフィルタ処理をスキップする。
【００８３】
ポストループフィルタ１０１１は、タイル単位での符号化処理とは独立して動作する。ポストループフィルタ１０１１は、フレームメモリ９０５上に格納された１画面分のローカルデコード画像について、ループフィルタ１０１０でフィルタ処理をスキップしたタイル境界部（分割領域の境界領域）の画素データを再度読み出し、フィルタ処理を行う。
【００８４】
なお、上述のエントロピー符号化部１００６及び符号量制御部１００７は、通常１画面分のピクチャ単位で制御を行い、その他の処理ブロックは、所定の矩形画素ブロック単位で制御を行うものとする。特に、ＨＥＶＣ方式においては、量子化はＣＵ（Ｃｏｄｉｎｇ  Ｕｎｉｔ）、動きベクトル探索はＰＵ（Ｐｒｅｄｉｃｔｉｏｎ  Ｕｎｉｔ）、整数変換はＴＵ（Ｔｒａｎｓｆｏｒｍ  Ｕｎｉｔ）の単位で行われる。
【００８５】
図１１は、撮像装置９００が実行する符号化処理のフローチャートである。なお、ここでは符号化処理のうち主に符号化順の制御に関係する処理について説明を行うものとし、その他の処理（例えば、符号化ストリーム作成処理など）については説明を省略する。撮像装置９００が、タッチパネルやボタン等のインタフェース（不図示）からのユーザ操作をトリガとして動画記録状態になると、１フレーム期間毎に本フローチャートの処理が実行される。
【００８６】
最初に、Ｓ１１０１で、画像符号化部９０２は、撮像装置９００が動画を記録中であるか否かを判定する。動画を記録中の場合、図１０を参照して説明した１画面分の符号化処理が開始し、本フローチャートの処理はＳ１１０２に進む。動画を記録中でない場合、画像符号化部９０２は、ユーザ操作により動画記録の停止指示がなされたものと判断し、本フローチャートの処理を終了する。
【００８７】
Ｓ１１０２で、画像符号化部９０２は、符号化対象画像のピクチャタイプが、参照ピクチャとして使われるＩピクチャ又はＰピクチャであるか否かを判定する。符号化対象画像がＩピクチャ又はＰピクチャの場合、処理はＳ１１０３に進み、そうでない場合（即ち、符号化対象画像が参照ピクチャとして使用されないＢピクチャの場合）、処理はＳ１１０６に進む。
【００８８】
Ｓ１１０３で、画像符号化部９０２は、符号化対象画像についてタイルによる画面分割を行い、タイル単位で１フレーム期間内に１画面分の画像符号化を実行する。
【００８９】
Ｓ１１０４で、画像符号化部９０２は、全タイル、即ち１ピクチャ全体の符号化が完了したか否かを判定する。この判定は、タイル単位の符号化処理が完了したタイミングで実行される。なお、タイル単位の符号化完了を検出する方法については特に限定されないが、例えばポーリングにより動作状態を繰り返し問い合わせる方式や、割り込み通知による方式などを利用可能である。全タイルの符号化が完了した場合、処理はＳ１１０５に進み、そうでない場合、処理はＳ１１０３に戻る。
【００９０】
Ｓ１１０５で、画像符号化部９０２は、ポストループフィルタ１０１１により、符号化対象画像のローカルデコード画像のタイル境界に対してフィルタ処理（以下、「ポストＬＦ処理」とも呼ぶ）を施す。ポストループフィルタ１０１１は、画像符号化部９０２内のその他のブロックとは独立して動作する。そのため、画像符号化部９０２は、ポストＬＦ処理の完了を待たずに、処理をＳ１１０１に戻して後続ピクチャの符号化を実行することができる。
【００９１】
Ｓ１１０６で、画像符号化部９０２は、前回符号化したＩ又はＰピクチャが現在の符号化対象Ｂピクチャの参照画像として使用されるか否かをする。前回符号化したＩ又はＰピクチャが現在の符号化対象Ｂピクチャの参照画像として使用される場合、処理はＳ１１０７に進み、そうでない場合、処理はＳ１１０８に進む。
【００９２】
前回符号化したＩ又はＰピクチャが現在の符号化対象Ｂピクチャの参照画像として使用される場合、参照画像のタイル境界に対するポストＬＦ処理がまだ完了していない可能性がある。そのため、このタイミングで現在の符号化対象Ｂピクチャを符号化すると、タイル境界にフィルタのかかっていないローカルデコード画像を参照してしまうことになる。そこで、Ｓ１１０７で、画像符号化部９０２は、入力順において後続するＩ又はＰピクチャ（前回符号化したＩ又はＰピクチャの次に撮影されたＩ又はＰピクチャ）を先に符号化するように符号化順序を並べ替える。これにより、参照画像として使用されるピクチャに対するポストＬＦ処理が完了した後にＢピクチャの符号化を開始することが可能となる。なお、符号化順序の並べ替えを可能とするため、フレームメモリ９０５には、並べ替えによる処理遅延を許容する十分な容量のバッファが備わっているものとする。
【００９３】
上記の並び替えにより符号化順序が遅くなったＢピクチャについて再びＳ１１０６の判定が行われる場合、前回符号化したＩ又はＰピクチャは現在の符号化対象Ｂピクチャの参照画像として使用されない。そのため、処理はＳ１１０８に進む。この場合、参照画像として使用されるＩ又はＰピクチャのポストＬＦ処理は既に完了していると考えられる。そこで、Ｓ１１０８で、画像符号化部９０２は、Ｂピクチャの符号化を行う。
【００９４】
次に、図１２を参照して、図１１のフローチャートに従う符号化動作の例について説明する。ここでは、Ｂピクチャが前後に撮影されたＩピクチャ又はＰピクチャを参照するケースについて説明する。図１２には、符号化対象画像の入力順（撮像部９０９により取得され画像処理部９０１により現像されフレームメモリ９０５に入力された順序）、及び符号化順（ポストＬＦ処理以外の画像符号化部９０２の符号化処理の順序）が示されている。また、ポストＬＦ処理の実行順序も示されている。また、図１２には、ピクチャタイプが示されると共に、各ピクチャの入力順がピクチャタイプの添え字として示されている。更に、Ｂピクチャについては参照先となるピクチャを矢印で関連付けしている。図１２の例では、左右２分割のタイル分割を伴う符号化が行われるものとするが、タイル分割の構成はこれに限定されない。
【００９５】
撮像装置９００は、入力、符号化、及びポストＬＦ処理のいずれの処理についても、例えば３０Ｈｚや６０Ｈｚ等の所定のフレーム期間内に完了するようなハードウェア性能を有するものとする。
【００９６】
図１１のフローチャートに従ってＩ０ピクチャ及びＰ３ピクチャの符号化が完了した後、従来方式であればＢ１ピクチャの符号化が開始してしまう。しかしながら、本実施形態では、Ｂ１ピクチャの前にＰ６ピクチャが符号化される。換言すると、Ｂ１ピクチャを符号化する前に、Ｉ及びＰピクチャのうち、Ｂ１ピクチャの符号化時に参照画像として使用される全ての画像（Ｉ０ピクチャ及びＰ３ピクチャ）と、その次に撮影された画像（Ｐ６ピクチャ）とが符号化される。従って、Ｂ１ピクチャが符号化されるタイミングでは、Ｂ１ピクチャにより参照されるＰ３ピクチャのポストＬＦ処理が完了している。これにより、Ｂ１ピクチャを符号化する際に、タイル境界へのフィルタ処理が完了したＩ０ピクチャ及びＰ３ピクチャを参照することができるようになる。Ｂ２ピクチャ以降のＢピクチャについても同様の効果を得ることができる。また、Ｐ６ピクチャ以降は全てのフレーム期間において符号化を行うことができるので、符号化に要する時間の増加を抑制することができる。
【００９７】
以上説明したように、第３の実施形態によれば、撮像装置９００は、符号化対象画像をタイル単位で符号化して復号する。また、Ｐピクチャ又はＢピクチャに対応する符号化対象画像については、撮像装置９００は、動き補償フレーム間予測を用いて符号化を行う。撮像装置９００は、Ｂピクチャを符号化する前に、このＢピクチャの符号化時に参照画像として使用される全てのＩ又はＰピクチャと、その次に撮影されたＩ又はＰピクチャとを符号化する。これにより、タイル単位で符号化される画像においてタイルの境界領域にフィルタ処理を行う場合に、符号化に要する時間の増加を抑制することが可能となる。
【００９８】
［第４の実施形態］
第３の実施形態では、符号化順の制御について説明した。第４の実施形態では、エントロピー符号化部１００６が実行するエントロピー符号化の順序を制御する構成について説明する。第４の実施形態において、撮像装置９００の基本的な構成は第３の実施形態と同様である（図９及び図１０参照）。以下、主に第３の実施形態と異なる点について説明する。
【００９９】
図１３は、撮像装置９００が実行するエントロピー符号化処理のフローチャートである。本フローチャートの処理は、図１１のフローチャートに従う符号化処理と並行して実行される。また、本フローチャートの処理は、フレーム周期毎に起動するものとするが、起動タイミングは特に限定されない。例えば、１フレーム単位の画像符号化処理の終了タイミングや、ポストＬＦ処理の終了タイミング等を割り込み通知によってＣＰＵ９０６が検知し、完了割り込みをトリガとして本フローチャートの処理を起動してもよい。
【０１００】
Ｓ１３０１は、エントロピー符号化部１００６は、まだエントロピー符号化を行っていない未処理の量子化データがフレームメモリ９０５に残っているか否かを判定する。未処理の量子化データがフレームメモリ９０５に残っている場合、処理はＳ１３０２に進む。未処理の量子化データがフレームメモリ９０５に残っていない場合、本フローチャートの処理は終了し、次のフレーム周期タイミングで再度起動される。
【０１０１】
Ｓ１３０２で、エントロピー符号化部１００６は、処理待ちの最初にある量子化データ（現在の量子化データ）のピクチャタイプがＩピクチャ又はＰピクチャであるか否かを判定する。ピクチャタイプがＩピクチャ又はＰピクチャである場合、処理はＳ１３０３に進み、そうでない場合、処理はＳ１３０７に進む。
【０１０２】
Ｓ１３０３で、エントロピー符号化部１００６は、既に参照枚数分のピクチャの量子化データをエントロピー符号化済みであるか否かを判定する。例えば、Ｍ＝３構造と呼ばれるＧＯＰ構造の場合は、Ｂピクチャは前後１枚ずつの計２枚を参照するケースが一般的である。この場合、Ｓ１３０３で、エントロピー符号化部１００６は、２ピクチャのＩ又はＰピクチャのエントロピー符号化を完了しているかどうかをチェックする。この判定を行うために、エントロピー符号化部１００６は、参照枚数が２であるという情報を保持すると共に、エントロピー符号化済みの参照ピクチャ数ＶｅＲｅｆＣｎｔをカウントするカウント機構を持つ。そして、エントロピー符号化部１００６は、カウンタ値ＶｅＲｅｆＣｎｔが２となったか否かを判定する。参照枚数分のピクチャの量子化データをエントロピー符号化済みでない場合、処理はＳ１３０４に進み、参照枚数分のピクチャの量子化データをエントロピー符号化済みである場合、処理はＳ１３０６に進む。
【０１０３】
Ｓ１３０４で、エントロピー符号化部１００６は、現在の量子化データをフレームメモリ９０５から読み出してエントリピー符号化を行い、ビットストリームとして出力する。
【０１０４】
Ｓ１３０５で、エントロピー符号化部１００６は、カウンタ値ＶｅＲｅｆＣｎｔをインクリメントする。その後、処理はＳ１３０１に戻る。
【０１０５】
Ｓ１３０６で、エントロピー符号化部１００６は、後続のＢピクチャを先にエントロピー符号化するために、現在の量子化データを、エントロピー符号化の順序を管理するキューの後ろに並べ替える。
【０１０６】
Ｓ１３０７で、エントロピー符号化部１００６は、現在の量子化データ（この場合、Ｂピクチャに対応する）をエントロピー符号化し、ビットストリームとして出力する。ここで、Ｓ１３０７とＳ１３０４とは、処理対象となる量子化データのピクチャタイプが異なるだけで、同じ処理内容である。
【０１０７】
Ｓ１３０８で、エントロピー符号化部１００６は、Ｂピクチャのエントロピー符号化が、２つのＩ又はＰピクチャの間に連続するＢピクチャの枚数分行われたか否かを判定する。ここでは、２つのＩ又はＰピクチャの間に、連続して２つのＢピクチャが入るデータ構造を想定している。連続する２つのＢピクチャのエントロピー符号化が完了した場合、処理はＳ１３０９に進み、そうでない場合、処理はＳ１３０１に戻る。
【０１０８】
Ｓ１３０９で、エントロピー符号化部１００６は、カウンタ値ＶｅＲｅｆＣｎｔをデクリメントする。なぜなら、この場合、次のＢピクチャが参照する２枚のピクチャのうち、前方にあるピクチャについてはエントロピー符号化が行われていないからである。
【０１０９】
次に、図１４を参照して、図１３のフローチャートに従うエントロピー符号化動作の例について説明する。図１４には、図１２と同様、符号化対象画像の入力順、符号化順、及びポストＬＦ処理の実行順序が示されている。これらの順序は、図１２と同じである。これに加えて、図１４には、エントロピー符号化の順序が示されている。
【０１１０】
１つの画像の符号化（エントロピー符号化を除く）が完了すると、フレームメモリ９０５には、１ピクチャ分のローカルデコード画像の他に、量子化部１００５が出力した量子化データが格納される。図１３のフローチャートによれば、Ｉ０ピクチャ及びＰ３ピクチャの最初の２ピクチャが符号化されたタイミングではカウンタ値ＶｅＲｅｆＣｎｔが２未満なので、Ｉ０ピクチャ及びＰ３ピクチャが連続してエントロピー符号化される。
【０１１１】
続いて、符号化順ではＰ６の符号化が完了するが、既に２ピクチャ分の参照ピクチャのエントロピー符号化が完了している。そのため、図１３のＳ１３０６におけるエントロピー符号化の順序の並べ替えが行われ、Ｐ６ピクチャの量子化データのエントロピー符号化は後回しにされる。その結果、Ｂ１ピクチャ及びＢ２ピクチャについて、連続してエントロピー符号化が行われ、カウンタ値ＶｅＲｅｆＣｎｔがデクリメントされ１になる。その後、Ｐ６ピクチャのエントロピー符号化が行われる。Ｐ９ピクチャ以降についても同様に順番の並べ替えが行われ、Ｂピクチャにより参照されないＰピクチャは、そのＢピクチャよりも後にエントロピー符号化される。
【０１１２】
このように、エントロピー符号化の順序を並べ替えてストリーム出力の順序を入れ替えることによって、３ピクチャ分の参照ピクチャを復号してバッファし、その後にＢピクチャを復号して煩雑な表示順並び替えを行う必要が少なくなる。その結果、出画遅延を短縮し、フレームメモリ９０５上のバッファを削減することができる。
【０１１３】
以上説明したように、第４の実施形態によれば、撮像装置９００は、Ｂピクチャの符号化時に参照画像として使用される全てのＩ又はＰピクチャの次に撮影されたＩ又はＰピクチャの前に、このＢピクチャのエントロピー符号化を行う。これにより、出画遅延を短縮し、フレームメモリの必要量を削減することができる。
【０１１４】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１１５】
１００…撮像装置、１０５…動き予測部、１０６…直交変換部、１０７…量子化部、１１４…デブロッキングフィルタ部、１１６…参照フレームバッファ、１１７…タイル境界デブロッキングフィルタ部
【図１】
2019129411.tif 000003
【図２】
2019129411.tif 000004
【図３】
2019129411.tif 000005
【図４】
2019129411.tif 000006
【図５】
2019129411.tif 000007
【図６】
2019129411.tif 000008
【図７】
2019129411.tif 000009
【図８】
2019129411.tif 000010
【図９】
2019129411.tif 000011
【図１０】
2019129411.tif 000012
【図１１】
2019129411.tif 000013
【図１２】
2019129411.tif 000014
【図１３】
2019129411.tif 000015
【図１４】
2019129411.tif 000016