(57)【要約】      （修正有）【課題】Ｗａｖｅｆｒｏｎｔ並列処理に必要な参照画素保持用のバッファメモリを削減可能にする画像符号化装置を提供する。【解決手段】画像符号化装置は、入力画像内の符号化対象の第１のブロックに対応したブロックを含む探索範囲の参照画素を保持する参照保持部１２０２と、参照保持部１２０２に保持された参照画素を用いて入力画像の第１のブロック内の予測ブロックの動きベクトルを探索する探索部１２０４と、入力画像内の第１のブロックとは異なる符号化対象の第２のブロックに対応したブロックを含む探索範囲の参照画素を保持する参照保持部１２１２と、参照保持部１２１２に保持された参照画素を用いて入力画像の第２のブロック内の予測ブロックの動きベクトルを探索する探索部１２１４と、保持部１２０２が保持している参照画素の中から、探索部１２１４が探索に用いる参照画素を読み出して、参照保持部１２１２へ転送する転送部１２０５とを有する。【選択図】図２
2018148486.tif 000002
【特許請求の範囲】
【請求項１】
入力画像をブロック単位でフレーム間予測処理により符号化する画像符号化装置であって、
参照画像の中で、前記入力画像の符号化対象の第１のブロックに対応したブロックを含む探索範囲の参照画素を保持する第１の保持手段と、
前記第１の保持手段に保持された参照画素を用い、前記入力画像の前記第１のブロックに含まれる予測ブロックの動きベクトルを探索する第１の探索手段と、
参照画像の中で、前記入力画像の前記第１のブロックとは異なる符号化対象の第２のブロックに対応したブロックを含む探索範囲の参照画素を保持する第２の保持手段と、
前記第２の保持手段に保持された参照画素を用いて、前記入力画像の前記第２のブロックに含まれる予測ブロックの動きベクトルを探索する第２の探索手段と、
前記第１の保持手段が保持している参照画素の中から、前記第２の探索手段が前記探索に用いる参照画素を読み出して、前記第２の保持手段へ転送する転送手段と、
を有することを特徴とする画像符号化装置。
【請求項２】
前記転送手段は、前記第１の保持手段が保持している前記探索範囲の参照画素の中で前記第１の探索手段が前記動きベクトルの探索に使用せず、前記第２の探索手段が前記動きベクトルの探索の際に参照する参照画素を含むブロックを、前記第１の保持手段から読み出して前記第２の保持手段へ転送することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記入力画像の中で、前記第１の探索手段が前記動きベクトルを探索する前記第１のブロックが含まれる行と、前記第２の探索手段が前記動きベクトルを探索する前記第２のブロックが含まれる行とは、異なることを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項４】
前記第１の探索手段が前記動きベクトルを探索する前記第１のブロックと、前記第２の探索手段が前記動きベクトルを探索する前記第２のブロックとは、前記行の方向で少なくとも２個のブロックの間隔を空けて離れていることを特徴とする請求項３に記載の画像符号化装置。
【請求項５】
前記参照画像を保持するフレームメモリから前記参照画素を読み出す読み出し手段を有することを特徴とする請求項１から４の何れか１項に記載の画像符号化装置。
【請求項６】
前記転送手段は、前記第１の保持手段から読み出した参照画素を、前記読み出し手段を介して前記第２の保持手段へ転送することを特徴とする請求項５に記載の画像符号化装置。
【請求項７】
前記読み出し手段は、前記第２の探索手段が前記探索に用いる参照画素うち、前記転送手段から転送される前記参照画素は前記フレームメモリから読み出さず、前記転送手段から転送されない参照画素を前記フレームメモリから読み出し、前記フレームメモリから読み出された参照画素と、前記転送手段から転送された参照画素とを、前記第２の保持手段へ出力することを特徴とする請求項６に記載の画像符号化装置。
【請求項８】
入力画像をブロック単位でフレーム間予測処理により符号化する画像符号化装置の画像符号化方法であって、
参照画像の中で、前記入力画像の符号化対象の第１のブロックに対応したブロックを含む探索範囲の参照画素を第１の保持手段に保持させる第１の保持工程と、
前記第１の保持手段が保持している参照画素の中から、第２の探索手段が探索に用いる参照画素を読み出して、第２の保持手段へ転送する転送工程と、
参照画像の中で、前記入力画像の前記第１のブロックとは異なる符号化対象の第２のブロックに対応したブロックを含む探索範囲の参照画素を第２の保持手段に保持させる第２の保持工程と、
前記第１の保持手段に保持された参照画素を用い、前記入力画像の前記第１のブロックに含まれる予測ブロックの動きベクトルを探索する第１の探索工程と、
前記第２の保持手段に保持された参照画素を用いて、前記入力画像の前記第２のブロックに含まれる予測ブロックの動きベクトルを探索する第２の探索工程と、
を有することを特徴とする画像符号化方法。
【請求項９】
コンピュータを、請求項１から７の何れか１項に記載の画像符号化装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像信号を符号化する画像符号化装置、画像符号化方法、及びプログラムに関する。
【背景技術】
【０００２】
動画像の圧縮記録に用いられる符号化方式として、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ（以下、Ｈ．２６４とする。）が知られている（非特許文献１）。
近年、Ｈ．２６４の後継としてさらに高効率な符号化方式の国際標準化を行う活動が開始されて、ＪＣＴ−ＶＣ（Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）がＩＳＯ／ＩＥＣとＩＴＵ−Ｔの間で設立された。ＪＣＴ−ＶＣでは、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）符号化方式の標準化がなされた（非特許文献２）。
【０００３】
ＨＥＶＣでは、ＣＴＵ（Ｃｏｄｉｎｇ  Ｔｒｅｅ  Ｕｎｉｔ）と呼ばれる所定のサイズの符号化単位ブロックでラスタスキャン順に符号化が行われる。ＣＴＵはさらにＣＵ（Ｃｏｄｉｎｇ Ｕｎｉｔ）と呼ばれる符号化ブロックからなる符号化単位から構成され、ＣＵはさらにＰＵ（Ｐｒｅｄｉｃｔｉｏｎ Ｕｎｉｔ）と呼ばれる予測ブロックからなる符号化単位から構成される。
【０００４】
また、ＨＥＶＣの標準化にあたっては、種々の符号化ツールが、符号化効率向上のみならず実装の容易性や処理時間の短縮といった観点も含めて幅広く採用されている。処理時間の短縮の観点では、マルチコアのＣＰＵや複数のハードウェア等の上で動作させる事を想定した、並列性を高めるための手法も採用されている。その並列処理の手法の一つに、コンテキスト適応型算術符号化処理（以下、ＣＡＢＡＣと記す。）を並列に処理するためのＷａｖｅｆｒｏｎｔと呼ばれる手法がある。Ｗａｖｅｆｒｏｎｔの並列処理では、高さ方向がＣＴＵ一個分で横方向に複数のＣＴＵが並んだ横長の矩形行（以後、ＣＴＵラインと呼ぶ）にピクチャを区切って、符号化が行われる。このようにピクチャをＣＴＵラインで区切ることによって、Ｗａｖｅｆｒｏｎｔ並列処理では、各ＣＴＵラインを並列に処理することができる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ＩＴＵ−Ｔ  Ｈ．２６４  （０３／２０１０）  Ａｄｖａｎｃｅｄｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ
【非特許文献２】ＩＴＵ−Ｔ  Ｈ．２６５  （０４／２０１３）  Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、Ｗａｖｅｆｒｏｎｔ並列処理が行われる場合、動きベクトル探索処理に用いる参照画素は、バンド単位でフレームメモリから読み出されることになる。ただし、フレーム間予測処理が行われる場合、動きベクトル探索処理に用いる参照画素は、ＣＴＵの単位でフレームメモリから読み出された後、一時的にバッファメモリに保持される。例えば、フレーム間予測処理の際には、或る時刻におけるフレーム間予測処理で参照された参照画素が、その後の他の時刻でのフレーム間予測処理で再び参照されることがあるため、バッファメモリにはそれらの各参照画素がＣＴＵの単位で保持される。また、Ｗａｖｅｆｒｏｎｔ並列処理では前述したように各ＣＴＵラインが並列に処理されるため、バッファメモリには大きな容量のメモリが必要になる。しかしながら、大容量のバッファメモリは高価であるため、バッファメモリの削減が望まれる。
【０００７】
そこで、本発明は、バッファメモリを削減可能にすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、入力画像をブロック単位でフレーム間予測処理により符号化する画像符号化装置であって、参照画像の中で、前記入力画像の符号化対象の第１のブロックに対応したブロックを含む探索範囲の参照画素を保持する第１の保持手段と、前記第１の保持手段に保持された参照画素を用い、前記入力画像の前記第１のブロックに含まれる予測ブロックの動きベクトルを探索する第１の探索手段と、参照画像の中で、前記入力画像の前記第１のブロックとは異なる符号化対象の第２のブロックに対応したブロックを含む探索範囲の参照画素を保持する第２の保持手段と、前記第２の保持手段に保持された参照画素を用いて、前記入力画像の前記第２のブロックに含まれる予測ブロックの動きベクトルを探索する第２の探索手段と、前記第１の保持手段が保持している参照画素の中から、前記第２の探索手段が前記探索に用いる参照画素を読み出して、前記第２の保持手段へ転送する転送手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、バッファメモリの削減が可能となる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態の画像符号化装置の概略構成例を示す図である。
【図２】フレーム間予測部の概略構成例を示す図である。
【図３】予測処理をＣＴＵライン単位で並列処理する様子を示す図である。
【図４】本実施形態においてメモリに保持される参照画素のＣＴＵを表す図である。
【図５】並列処理されるＣＴＵラインの説明に用いる図である。
【図６】カレントＣＴＵと参照される隣接ＣＴＵの説明に用いる図である。
【図７】並列処理でＣＡＢＡＣコンテキストを同期させる様子を示す図である。
【図８】２並列でピクチャを符号化する例を表す図である。
【図９】フレーム間予測における動きベクトル探索範囲を表す図である。
【図１０】従来技術においてメモリ保持される参照画素のＣＴＵを表す図である。
【図１１】本実施形態の画像符号化処理を実現可能なＰＣの構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
図１は、本実施形態の画像符号化装置１００の概略構成例を示す図である。なお、本実施形態では、画像符号化装置１００が入力画像（入力ピクチャ）をＨＥＶＣの符号化方式により符号化する例を挙げているが、符号化方式はこの例に限定されずＨ．２６４符号化方式等でもよい。本実施形態では、ＨＥＶＣ符号化方式で規定されるＣＴＵを符号化単位ブロックとし、Ｗａｖｅｆｒｏｎｔ並列処理により二つの符号化単位ブロック行（二つのＣＴＵライン）を並列に符号化処理する例を挙げて説明する。
【００１２】
ここで、図１に示した本実施形態の画像符号化装置の構成の説明を行う前に、ＨＥＶＣの符号化方式におけるＷａｖｅｆｒｏｎｔ並列処理の概要について説明する。
Ｗａｖｅｆｒｏｎｔ並列処理では、図５に示すように、高さ方向がＣＴＵの一個分で横方向に複数のＣＴＵが並んだ横長矩形の行のＣＴＵライン毎にピクチャを区切って符号化が行われる。図５は、図中の方形の四角が一つのＣＴＵ５０１を表し、複数のＣＴＵ５０１が横方向に並んだＣＴＵライン＃１〜＃６でピクチャ５００が区切られた例を示している。
【００１３】
Ｗａｖｅｆｒｏｎｔ並列処理において、画素値や動きベクトルの予測符号化処理を行う際には、現在処理中のＣＴＵ（以下、カレントＣＴＵとする。）に隣接する各ＣＴＵを構成しているＣＵ内で、既に処理済みの画素値や動きベクトルの値が参照される。以下、この参照される処理済みの画素を参照画素と表記する。図６は、ピクチャから、カレントＣＴＵ６０１と、そのカレントＣＴＵ６０１に隣接していて参照される各ＣＴＵ６０２〜６０５を抜き出して例示した図である。また、Ｗａｖｅｆｒｏｎｔ並列処理では、図７に示すように、ＣＴＵラインの左端から２番目のＣＴＵを処理し終えた時点でのコンテキストが、一つ下のＣＴＵラインの１番目（左端）のＣＴＵの処理に使われる。このように、Ｗａｖｅｆｒｏｎｔ並列処理では、ＣＴＵラインの処理後のコンテキストを一つ下のＣＴＵラインで使用することにより、ＣＴＵライン毎にＣＡＢＡＣ処理がリセットされてコンテキスト初期化が発生して符号化効率が低下してしまうのを防いでいる。また、このような理由から、Ｗａｖｅｆｒｏｎｔ並列処理では、図８（ａ）のＣＴＵライン＃１のＣＴＵ８０１とＣＴＵライン＃２のＣＴＵ８０２に示すように、それらＣＴＵライン＃１，＃２間で例えばＣＴＵ２個分以上の間隔を空けて処理が行われる。なお、ＣＴＵライン間におけるＣＴＵの間隔は、必ずしもＣＴＵ２個分である必要はなく、ＣＴＵ２個分以上の間隔であれば、図８（ｂ）のＣＴＵライン＃１のＣＴＵ８１１とＣＴＵライン＃２のＣＴＵ８１２に示すようにＣＴＵ４個分等の間隔でもよい。
【００１４】
本実施形態では、画像符号化装置１００において、図８（ｂ）に示したように、二つのＣＴＵライン間でＣＴＵ４個分空けて、それらＣＴＵラインで並列に符号化処理する例を挙げて説明する。なお、本実施形態では、ＣＴＵ４個分の間隔を空けた並列処理を例に挙げているが、ＣＴＵ３個分の間隔を空けた並列処理でもよいし、ＣＴＵ４個分以上の間隔を空けた並列処理であってもよい。
【００１５】
以下、図１を参照して、本実施形態の画像符号化装置１００の構成を説明する。
入力部１２には、不図示の撮像部により撮像された画像や、不図示の記録媒体から読み出された画像、不図示の通信ネットワーク等から取得した画像等の何れかの画像データが入力される。なお、入力部１２に入力される画像データは、例えば動画を構成する各フレームの画像データであり、この入力されたフレームの画像データが入力ピクチャとして、フレーム間予測部１２０及び１２１、フレーム内予測部１３０及び１３１に送られる。本実施形態の画像符号化装置１００は、フレーム間予測部１２０及びフレーム内予測部１３０以降の各部と、フレーム間予測部１２１及びフレーム内予測部１３１以降の各部とからなる２系統の構成で、それぞれＣＴＵラインを符号化する。これにより、２ＣＴＵラインを並列に符号化する符号化処理が行われている。
【００１６】
フレームメモリ１９０は、後述するようにフィルタ処理部１８０及び１８１によるフィルタ処理がなされた後のピクチャの画像データを、後続する入力ピクチャに対するフレーム間予測処理のための参照ピクチャとして保持する。
【００１７】
読み出し部１１０は、フレーム間予測処理で動きベクトルを探索する際に用いる参照画素のデータを、フレームメモリ１９０が保持している参照ピクチャの中から読み出し、フレーム間予測部１２０及び１２１に出力する。読み出し部１１０がフレームメモリ１９０から読み出す参照画素についての詳細は後述する。また同様に詳細は後述するが、読み出し部１１０は、後述の図２に示すように、フレーム間予測部１２０の転送部１２０５から出力された参照画素のデータをフレーム間予測部１２１に出力する機能も有する。また図示は省略するが、読み出し部１１０は、フレーム間予測処理で使用する参照画素のデータを一時的に保持するためのＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）として機能するバッファメモリを備えている。読み出し部１１０の動作及びバッファメモリ機能の詳細についても後述する。
【００１８】
フレーム間予測部１２０及び１２１は、入力ピクチャに対してフレーム間予測処理を行う。具体的には、フレーム間予測部１２０及び１２１は、後述するようにして読み出し部１１０から供給された参照画素を用いて、入力ピクチャの各ＣＴＵを構成しているＰＵ（予測ブロック）に対応する動きベクトルを、ＰＵ単位（予測ブロック単位）で探索する。
【００１９】
図３は、ＣＴＵライン単位でＷａｖｅｆｒｏｎｔ並列処理が行われる際の各ＣＴＵを示した図である。入力ピクチャと参照ピクチャを共に図３のように表した場合、図中の方形の四角はそれぞれＣＴＵを表し、各ＣＴＵ内に記述された（Ｘ，Ｙ）はＸが行番号、Ｙが列番号を表している。そして、図３に示したピクチャのうち、ＣＴＵ内の列番号Ｙが偶数の各ＣＴＵラインのデータはフレーム間予測部１２０へ入力され、列番号Ｙが奇数の各ＣＴＵラインのデータはフレーム間予測部１２１へ入力される。また、参照ピクチャの場合、図３のＣＴＵ３０１は入力ピクチャの符号化対象のＣＴＵと空間的に同一位置にある参照ピクチャ内のＣＴＵである。動きベクトルの探索の際には、参照ピクチャ内のＣＴＵ３０１及びその周辺のＣＴＵからなる図中点線で示した範囲が動きベクトルの探索ウィンドウ３０２となされる。なお、本実施形態の場合、フレーム間予測部１２０は、次に処理するＣＴＵの動きベクトル探索に不要な参照画素のうち、フレーム間予測部１２１が動きベクトル探索に必要とする参照画素のデータを、ＣＴＵ単位で読み出し部１１０に出力する。このようなフレーム間予測部１２０における構成及び動作の詳細は後述する。そして、フレーム間予測部１２０から出力されたデータはモード決定部１４０に送られ、同様に、フレーム間予測部１２１から出力されたデータはモード決定部１４１に送られる。
【００２０】
フレーム内予測部１３０及び１３１は、入力ピクチャに対してＰＵ単位でフレーム内予測（イントラ予測処理）のモードによる探索処理を行う。フレーム内予測処理の場合も、前述同様に図３に示す入力ピクチャのうち、ＣＴＵ内の行番号Ｘが偶数のＣＴＵラインのデータはフレーム内予測部１３０へ入力され、行番号Ｘが奇数のＣＴＵラインのデータはフレーム内予測部１３１へ入力される。イントラ予測処理については、前述した非特許文献１に詳細が記載されているので、その説明は省略する。そして、フレーム内予測部１３０から出力されたデータはモード決定部１４０に送られ、同様に、フレーム内予測部１３１から出力されたデータはモード決定部１４１に送られる。
【００２１】
モード決定部１４０及び１４１は、ＰＵ単位でフレーム間予測処理とフレーム内予測処理の何れかの予測モードを選択する。さらに、モード決定部１４０及び１４１は、選択した予測モードと動きベクトルと参照画素とを基に予測画像を生成し、その予測画像と入力ピクチャとの差分を求めて予測差分画像を生成する。そして、モード決定部１４０は、生成した予測差分画像のデータを変換・量子化部１５０に出力し、モード決定部１４１は、生成した予測差分画像のデータを変換・量子化部１５１に出力する。また、モード決定部１４０が生成した予測モードと動きベクトルのデータは符号化部１６０に送られ、モード決定部１４１が生成した予測モードと動きベクトルのデータは符号化部１６１に送られる。
【００２２】
変換・量子化部１５０及び１５１は、予測差分画像に対して直交変換を行い、その直交変換による変換係数データを量子化する。変換・量子化部１５０から出力された量子化後の変換係数データは符号化部１６０と逆変換・逆量子化部１７０に送られ、変換・量子化部１５１から出力された量子化後の変換係数データは符号化部１６１と逆変換・逆量子化部１７１に送られる。
【００２３】
符号化部１６０及び１６１は、それぞれ量子化後の変換係数データを、算術符号化等を用いてエントロピー符号化する。また、符号化部１６０はモード決定部１４０から出力された予測モード及び動きベクトルのデータをエントロピー符号化し、符号化部１６１はモード決定部１４１から出力された予測モード及び動きベクトルのデータをエントロピー符号化する。
【００２４】
逆変換・逆量子化部１７０は変換・量子化部１５０から出力された量子化後の変換係数データに対し、逆量子化を行い、さらにその逆量子化後の変換係数データに逆直交変換処理を行って予測差分画像を生成（復元）する。同様に、逆変換・逆量子化部１７１は変換・量子化部１５１から出力された量子化後の変換係数データを逆量子化し、さらにその逆量子化後の変換係数データに逆直交変換処理を行って予測差分画像を生成（復元）する。
【００２５】
逆変換・逆量子化部１７０で逆直交変換処理されて生成された予測差分画像は、モード決定部１４０から出力された予測画像と加算されて、フィルタ処理部１８０に出力される。同様に、逆変換・逆量子化部１７１で逆直交変換処理されて生成された予測差分画像は、モード決定部１４１から出力された予測画像と加算されて、フィルタ処理部１８１に出力される。
【００２６】
フィルタ処理部１８０は、逆変換・逆量子化部１７０から出力された画像に対して、量子化等の処理によって生じた歪を除去するためのフィルタ処理を行う。同様に、フィルタ処理部１８１は、逆変換・逆量子化部１７１から出力された画像に対して、量子化等の処理によって生じた歪を除去するためのフィルタ処理を行う。これらフィルタ処理部１８０，１８１でそれぞれフィルタ処理された画像データは、フレームメモリ１９０に出力される。これにより、フレームメモリ１９０には、前述のようにしてフィルタ処理された後の画像データが、入力ピクチャのフレーム間予測処理のための参照ピクチャとして保持される。
【００２７】
なお、フレーム間予測部１２０及びフレーム内予測部１３０は、それぞれフレーム間予測部１２１及びフレーム内予測部１３１とは異なるＣＴＵラインの処理を行うため、予測モードや動きベクトル、フィルタ処理された画素を互いに参照する必要がある。このため、ラインバッファ２００は、それらフレーム内予測、動きベクトルの符号化、フィルタ処理等に必要なデータを受け渡すためのバッファとしての機能を果たしている。
【００２８】
ここで、前述したように、参照ピクチャのデータはフレームメモリ１９０に保持され、フレーム間予測処理の際の動きベクトル探索処理に用いる参照画素は、フレームメモリ１９０から読み出される。また、フレーム間予測処理の際の参照画素のデータは、読み出し部１１０を介してフレーム間予測部１２０とフレーム間予測部１２１に送られるため、読み出し部１１０には、参照画素のデータを一時的に保持するバッファメモリが設けられている。なお、本実施形態の場合、フレーム間予測部１２１で使用される参照画素のデータは、フレームメモリ１９０から読み出されたデータだけでなく、フレーム間予測部１２０から読み出し部１１０を介して転送されるが、その説明については後述する。
【００２９】
以下、本実施形態における参照画素の読み出し動作等の説明を行う前に、本実施形態との比較のため、従来の画像符号化装置における参照画素の読み出し動作の概要について説明する。従来の画像符号化装置は、フレーム間予測処理でＷａｖｅｆｒｏｎｔ並列処理を行う場合に、参照画素のデータをフレームメモリから読み出してバッファメモリに一時保持させるようになされている。
【００３０】
従来技術を用いた画像符号化装置では、Ｗａｖｅｆｒｏｎｔ並列処理が行われる場合、動きベクトル探索処理に用いる参照画素を、バンド単位でフレームメモリから読み出す。図９は、フレーム間予測処理が行われる場合において、フレームメモリから参照画素が読み出されて、例えば２ＣＴＵラインの並列処理がＣＴＵライン間で数個分のＣＴＵ間隔を空けて行われる例を表す図である。図９の例において、ＣＴＵ９０１と９０３は、２ＣＴＵライン並列で動きベクトル探索処理が行われる際の、入力ピクチャの符号化対象のＣＴＵと空間的に同一位置にある参照ピクチャ内のＣＴＵを示している。また、探索ウィンドウ９０２はＣＴＵ９０１に対応した動きベクトル探索範囲であり、探索ウィンドウ９０４はＣＴＵ９０３に対応した動きベクトル探索範囲である。また、探索ウィンドウ９０２のＣＴＵ９０５，９０６，９０７と探索ウィンドウ９０４のＣＴＵ９０８は、フレームメモリから読み出される参照画素のＣＴＵである。この例の場合、ＣＴＵ９０６とＣＴＵ９０７の参照画素は、探索ウィンドウ９０２において参照される一方で、その後、探索ウィンドウ９０４が右に移動したときに再び参照されることになる。
【００３１】
図１０は、従来の画像符号化装置において、前述の図３と同様に各ＣＴＵに行番号Ｘと列番号Ｙが付与された参照ピクチャから、図９のように２ＣＴＵライン並列でＣＴＵの参照画素のデータが読み出されてメモリに保持される例を示した図である。図１０中の方形の各四角はそれぞれＣＴＵを表しており、図中の斜線が付与されたＣＴＵは、時刻Ｔ１〜Ｔ５でそれぞれフレームメモリから読み出された参照画素のＣＴＵを表している。図１０でも図３の例と同様に、各ＣＴＵは行番号Ｘと列番号Ｙとで表されており、各ＣＴＵがＣＴＵ（Ｘ，Ｙ）のように表されている。図１０のＡ欄は、２ＣＴＵライン並列で処理が行われる場合の二つのフレーム間予測処理のうち、図３の上側のＣＴＵラインに対する時刻Ｔ１〜Ｔ５のフレーム間予測処理でメモリに保持される各ＣＴＵを表している。以下、Ａ欄のフレーム間予測処理をフレーム間予測処理１と表記する。フレーム間予測処理１を行うフレーム間予測処理部（図１ではフレーム間予測部１２０に相当する。）は、各時刻Ｔ１〜Ｔ５においてそれぞれ探索ウィンドウ分に相当する９ＣＴＵのデータを保持するメモリを有する。一方、図１０のＣ欄は、図３の下側のＣＴＵラインに対する時刻Ｔ１〜Ｔ５のフレーム間予測処理でメモリに保持される各ＣＴＵを表している。以下、Ｃ欄のフレーム間予測処理をフレーム間予測処理２と表記する。フレーム間予測処理２を行うフレーム間予測処理部（図１ではフレーム間予測部１２１に相当する。）は、各時刻Ｔ１〜Ｔ５でそれぞれ探索ウィンドウ分に相当する９ＣＴＵのデータを保持するメモリを有する。図１０のＢ欄は、フレームメモリから読み出した参照画素を一時的に保持するバッファメモリにおいて、時刻Ｔ１〜Ｔ５のフレーム間予測処理の際に保持されている各ＣＴＵを表している。
【００３２】
図１０に例示したように、例えば時刻Ｔ１では、斜線が付与されたＣＴＵ（６，１）、ＣＴＵ（６，２）、ＣＴＵ（６，３）及びＣＴＵ（２，４）の各ＣＴＵの参照画素がフレームメモリから読み出される。次の時刻Ｔ２では、時刻Ｔ１でフレームメモリから読み出された各ＣＴＵのデータが図の左方向にシフトされ、フレームメモリからは新たにＣＴＵ（７，１）、ＣＴＵ（７，２）、ＣＴＵ（７，３）及びＣＴＵ（３，４）のデータが読み出される。一方、時刻Ｔ１でバッファメモリ（Ｂ欄）に保持されていたＣＴＵ（３，２）及び（３，３）のデータは時刻Ｔ２でフレーム間予測処理２（Ｃ欄）へ入力される。従来の画像符号化装置では、以下、時刻Ｔ３以降も同様にフレームメモリからの読み出しが行われることになる。
【００３３】
ここで、例えばＣＴＵ（６，２）とＣＴＵ（６，３）の参照画素は、時刻Ｔ１においてフレーム間予測処理１により参照される一方で、時刻Ｔ５でもフレーム間予測処理２によって参照される。このため、図１０のＢ欄に示すように、フレームメモリから読み出された参照画素を保持するバッファメモリには、少なくとも時刻Ｔ５の前の時刻Ｔ４まで、それらＣＴＵ（６，２）とＣＴＵ（６，３）の参照画素のデータを保持しておかなければならない。また時刻Ｔ１では、時刻Ｔ２〜Ｔ４においてフレーム間予測処理２によりそれぞれ参照されるＣＴＵ（３，２）、ＣＴＵ（３，３）、ＣＴＵ（４，２）、ＣＴＵ（４，３、ＣＴＵ（５，２）、ＣＴＵ（５，３）の各データも、バッファメモリに既に保持されている。すなわち、従来の画像符号化装置において、参照画素を一時的に保持するバッファメモリには少なくとも８個分のＣＴＵのデータが保持されることになり、バッファメモリは大きな容量のメモリでなければならない。なお、バッファメモリの容量増加を避けるために、フレーム間予測処理の都度、フレームメモリから参照画素を読み出す方法も考えられるが、この場合、フレームメモリからの読み出し回数とデータ転送量が増大し、消費電力が増加することになり好ましくない。
【００３４】
そこで、本実施形態の画像符号化装置１００は、２ＣＴＵラインで並列処理するための二つのフレーム間予測部１２０，１２１のうち、先行するＣＴＵラインの処理を行うフレーム間予測部１２０の中に、図２に示す転送部１２０５を設けている。そして、本実施形態の画像符号化装置１００は、転送部１２０５によりフレーム間予測部１２０からフレーム間予測部１２１へ参照画像のデータを転送可能にすることで、読み出し部１１０に必要なバッファメモリを削減可能としている。
【００３５】
図２は、本実施形態の画像符号化装置１００のフレーム間予測部１２０及び１２１の詳細な構成を示した図である。なお、図２には、読み出し部１１０、ラインバッファ２００も描かれている。
図２に示すように、フレーム間予測部１２０は、制御部１２０１、参照保持部１２０２、入力保持部１２０３、探索部１２０４、転送部１２０５を有して構成されている。フレーム間予測部１２１は、制御部１２１１、参照保持部１２１２、入力保持部１２１３、探索部１２１４を有して構成されている。
【００３６】
フレーム間予測部１２０において、制御部１２０１は、参照保持部１２０２と入力保持部１２０３の書き込みと読み出し、ラインバッファ２００の書き込みと読み出しを制御するメモリ制御部である。制御部１２０１は、入力保持部１２０３に対しては入力ピクチャの中の現在の符号化対象の画素データを書き込み、参照保持部１２０２に対しては読み出し部１１０がフレームメモリから読み出した参照画素のデータを書き込む。入力保持部１２０３は、入力ピクチャの中の現在の符号化対象の画素をＣＴＵ単位で保持するメモリである。参照保持部１２０２は、探索部１２０４が動きベクトルを探索する際に用いる参照画素をＣＴＵ単位で保持するメモリである。参照保持部１２０２には、符号化対象のＣＴＵと空間的に同一位置にある参照ピクチャ内のＣＴＵ（図３のＣＴＵ３０１）の画素及びその周囲のＣＴＵの画素からなる探索ウィンドウ（図３の探索ウィンドウ３０２）分に相当する各画素データが保持される。なお、本発明はこれに限定されるものではなく、例えばカメラのパン・チルト動作が行われた際の画像を入力ピクチャとして符号化する場合には、パン・チルトの方向に合わせて探索ウィンドウがずらされてもよい。制御部１２０１は、探索部１２０４から要求された位置の参照画素を参照保持部１２０２から読み出し、探索部１２０４へ出力する。
【００３７】
探索部１２０４は、制御部１２０１を介して、入力保持部１２０３から符号化対象のＣＴＵ内の予測ブロックの画素を読み出し、参照保持部１２０２から探索ウィンドウの画素を読み出して、ブロックマッチング処理により動きベクトルを探索する。具体的には、探索部１２０４は、探索ウィンドウ内の全ての画素について、ブロックマッチングにより符号化対象のＣＴＵの画素との比較を行って符号化コストを計算し、符号化コストが最小となる位置を動きベクトルとして検出する。なお、本発明はこの例には限定されず、例えば探索部１２０４は探索ウィンドウ内の画素を間引いて探索してもよいし、探索ウィンドウと入力された符号化対象のＣＴＵの縮小画像を生成して探索してもよい。
【００３８】
フレーム間予測部１２１の制御部１２１１は、制御部１２０１と同様のメモリ制御部であり、参照保持部１２１２と入力保持部１２１３、及び、ラインバッファ２００の書き込みと読み出しを制御する。制御部１２１１は、入力保持部１２１３に対しては入力ピクチャの中の現在の符号化対象の画素データを書き込み、参照保持部１２１２に対しては読み出し部１１０がフレームメモリから読み出した参照画素のデータを書き込む。入力保持部１２１３は、入力保持部１２０３と同様のメモリであり、入力ピクチャの中の現在の符号化対象の画素をＣＴＵ単位で保持する。参照保持部１２１２は、参照保持部１２０２と同様のメモリであり、探索部１２１４が動きベクトルを探索する際に用いる参照画素をＣＴＵ単位で保持する。ただし、フレーム間予測部１２１の処理対象となされるＣＴＵは、前述の図３で説明したように、フレーム間予測部１２０が処理するＣＴＵラインより一つ下のＣＴＵラインで更に４ＣＴＵ間隔分だけ空けられたＣＴＵである。なお、フレーム間予測部１２１においても、例えばカメラのパン・チルト動作が行われた際の画像を入力ピクチャとして符号化する場合には、パン・チルトの方向に合わせて探索ウィンドウがずらされてもよい。制御部１２１１は、探索部１２１４から要求された位置の参照画素を参照保持部１２１２から読み出し、探索部１２１４へ出力する。
【００３９】
探索部１２１４は、探索部１２０４と同様の動きベクトル探索部であり、入力保持部１２１３と参照保持部１２１２から、ＣＴＵ内の予測ブロックの画素と探索ウィンドウの画素を読み出し、ブロックマッチング処理により動きベクトルを探索する。なお、フレーム間予測部１２０の場合と同様に、探索部１２１４は探索ウィンドウ内の画素を間引いて探索してもよいし、探索ウィンドウと入力された符号化対象のＣＴＵの縮小画像を生成して探索してもよい。
【００４０】
ここで本実施形態の場合、フレーム間予測部１２０は、次の時刻で処理するＣＴＵの動きベクトル探索に不要なＣＴＵのうち、後にフレーム間予測部１２１が動きベクトル探索で必要とするＣＴＵのデータを、フレーム間予測部１２１に転送する。このため、転送部１２０５は、探索部１２０４がＣＴＵ内の処理を終えた後、右隣の各ＣＴＵ内で予測ブロックの動きベクトル探索に使用されない参照画素のうち、探索部１２１４が後に参照する画素を、制御部１２０１を介して参照保持部１２０２から読み出す。そして、転送部１２０５は、その読み出した参照画素のデータを、読み出し部１１０を介してフレーム間予測部１２１に転送する。すなわち、転送部１２０５は、参照保持部１２０２から参照保持部１２１２へ参照画素のデータを転送する機能を有している。
【００４１】
以下、転送部１２０５の具体的な動作を、図４を参照して説明する。
図４は、本実施形態の画像符号化装置１００において、前述の図３と同様に各ＣＴＵに行番号Ｘと列番号Ｙが付与された参照ピクチャから、図３のように２ＣＴＵライン並列でＣＴＵの参照画素のデータが読み出されてメモリに保持される例を示した図である。図４中の方形の各四角はそれぞれＣＴＵを表しており、図中の斜線が付与されたＣＴＵは、時刻Ｔ１〜Ｔ４でそれぞれフレームメモリ１９０から読み出された参照画素のＣＴＵを表している。図４でも図３の例と同様に、各ＣＴＵは行番号Ｘと列番号Ｙとで表されており、各ＣＴＵがＣＴＵ（Ｘ，Ｙ）のように表されている。図４のＡ欄は、本実施形態の二つのフレーム間予測部１２０，１２１のうち、図３の上側のＣＴＵラインに対する時刻Ｔ１〜Ｔ４のフレーム間予測処理を行うフレーム間予測部１２０の参照保持部１２０２に保持される各ＣＴＵを表している。一方、図４のＣ欄は、図３の下側のＣＴＵラインに対する時刻Ｔ１〜Ｔ４のフレーム間予測処理を行うフレーム間予測部１２１の参照保持部１２１２に保持される各ＣＴＵを表している。すなわち、参照保持部１２０２と１２１２は、各時刻Ｔ１〜Ｔ４においてそれぞれ探索ウィンドウ分に相当する９ＣＴＵのデータを保持するメモリとなされている。図４のＢ欄は、フレームメモリ１９０から参照画像を読み出す読み出し部１１０内に設けられているバッファメモリにおいて、時刻Ｔ１〜Ｔ４のフレーム間予測処理の際に保持される各ＣＴＵを表している。
【００４２】
本実施形態の場合、図４に示すように、例えば時刻Ｔ１では、斜線が付与されたＣＴＵ（６，１）、ＣＴＵ（６，２）、ＣＴＵ（６，３）及びＣＴＵ（２，４）の各ＣＴＵの参照画素がフレームメモリ１９０から読み出される。次の時刻Ｔ２では、時刻Ｔ１でフレームメモリ１９０から読み出された各ＣＴＵのデータが図の左方向にシフトされ、フレームメモリ１９０からは新たにＣＴＵ（７，１）、ＣＴＵ（７，２）、ＣＴＵ（７，３）及びＣＴＵ（３，４）のデータが読み出される。
【００４３】
ここで、本実施形態の場合、時刻Ｔ１において、フレーム間予測部１２０は、ＣＴＵ（５，２）内の動きベクトル探索処理を終えている。また、時刻Ｔ１において、フレーム間予測部１２１は、図３のＣＴＵ（５，２）から１ＣＴＵライン下で左方向に４ＣＴＵ分だけ離れたＣＴＵ（１，３）内の動きベクトル探索処理を終えている。このとき、転送部１２０５は、制御部１２０１を介し、参照保持部１２０２から、次の時刻Ｔ２では動きベクトル探索に使用しないＣＴＵのうち、探索部１２１４が後に参照する画素のＣＴＵを、制御部１２０１を介して参照保持部１２０２から読み出す。また、転送部１２０５は、時刻Ｔ２において、探索部１２０４が動きベクトル探索に使用せず、一方で探索部１２１４が時刻Ｔ３で動きベクトル探索に参照するＣＴＵ（４，２）とＣＴＵ（４，３）を、制御部１２０１を介して参照保持部１２０２から読み出す。そして、転送部１２０５は、その読み出されたＣＴＵ（４，２）とＣＴＵ（４，３）のデータを、読み出し部１１０を介してフレーム間予測部１２１に転送する。これにより、読み出し部１１０のバッファメモリには、時刻Ｔ２において、それらＣＴＵ（４，２）とＣＴＵ（４，３）のデータが保持される。
【００４４】
次の時刻Ｔ３では、読み出し部１１０のバッファメモリに保持されているＣＴＵ（４，２）とＣＴＵ（４，３）のデータが、フレーム間予測部１２１に送られて、参照保持部１２１２に保持される。また、図４に示すように、時刻Ｔ３において、フレームメモリ１９０からはＣＴＵ（８，１）、ＣＴＵ（８，２）、ＣＴＵ（８，３）及びＣＴＵ（４，４）のデータが読み出される。このため、時刻Ｔ３において、フレーム間予測部１２１の参照保持部１２１２には、探索部１２１４がＣＴＵ（３，３）に対する動きベクトル探索処理を開始する前に、ＣＴＵ（４，２）とＣＴＵ（４，３）を含む各ＣＴＵのデータが保持されていることになる。
【００４５】
このように本実施形態の場合、読み出し部１１０は、探索部１２０４が探索に用いる参照画素うち、転送部１２０５から転送される参照画素はフレームメモリ１９０から読み出さず、転送部１２０５から転送されない参照画素をフレームメモリ１９０から読み出す。したがって、参照保持部１２１２には、フレームメモリ１９０から読み出された参照画素と、転送部１２０５から転送された参照画素とが保持される。
【００４６】
以上説明したように、本実施形態では、フレーム間予測部１２０が次に処理するＣＴＵの動きベクトル探索に不要な参照画素のうち、フレーム間予測部１２１が後に動きベクトル探索に必要とする参照画素のデータを、フレーム間予測部１２１へ転送する。すなわち、本実施形態の場合、転送部１２０５が、参照保持部１２０２から参照保持部１２１２へ参照画素を転送するようになされており、参照保持部１２０２がバッファメモリの機能を兼ねている。このため、本実施形態によれば、読み出し部１１０において、参照画素を保持するためのバッファメモリが削減されることになる。
【００４７】
また、本実施形態の場合、フレーム間予測部１２１で参照される参照画素のうち、転送部１２０５が転送する参照画素については、読み出し部１１０はフレームメモリ１９０から読み出さない。したがって、本実施形態によれば、フレームメモリ１９０からの読み出し回数とデータ転送量が削減され、消費電力も低減される。
【００４８】
図１１は、本実施形態に係る画像符号化装置をコンピュータにより実現する場合の、コンピュータの概略構成例を示す図である。
図１１において、ＣＰＵ１００１は、中央演算装置である。ＲＡＭ１００２は、揮発性メモリであり、前述した本実施形態の画像符号化処理を実現するためのプログラムが展開され、また、画像データなどが一時的に格納される。ＲＯＭ１００３は不揮発性メモリであり、ＣＰＵ１００１の起動用プログラムや各種初期設定データ等が格納されている。外部記憶装置１００６は、ＲＡＭ１００２と比較して大容量な記録デバイスであり、例えばＨＤＤ（ハードディスクドライブ）やＳＳＤ（ソリッドステートドライブ）からなる。外部記憶装置１００６には、ＣＰＵ１００１により実行されるＯＳ（基本ソフトウェア）や、本実施形態に係る画像符号化処理を実現するためのプログラム、その他各種のデータ等が格納されている。また、外部記憶装置１００６には、撮影された画像データやネットワーク等を介して取得された画像データ等も記録可能となされている。Ｉ／Ｆ１００７は、外部ネットワーク等と接続するためのインターフェースであり、Ｉ／Ｆ１００７を介してインターネット等を介した通信や他のコンピュータ等との通信が行われる。本実施形態の画像符号化処理のプログラムはＩ／Ｆ１００７を介して取得されてもよく、また、本実施形態の画像符号化処理にて扱う画像データもＩ／Ｆ１００７を介して取得されてもよい。出力部１００５は、液晶等の表示デバイスである。これらの各構成はバス１０１０により接続されている。
【００４９】
ＣＰＵ１００１は、電源ＯＮ等の起動時、ＲＯＭ１００３に格納されている起動用プログラムを実行する。この起動用プログラムは、外部記憶装置１００６に格納されているＯＳを読み出し、ＲＡＭ１００２に展開するためのものである。ＣＰＵ１００１は、ＯＳの起動後、操作部１００４等を介してユーザにより本実施形態の画像符号化処理のプログラムを起動する旨の指示がなされると、外部記憶装置１００６から画像符号化処理のプログラムを読み出してＲＡＭ１００２に展開する。これにより、ＣＰＵ１００１は、本実施形態の画像符号化処理を実行可能な状態となる。また、ＣＰＵ１００１は、本実施形態の画像符号化処理のプログラムの動作に用いられる各種データについてもＲＡＭ１００２上に格納して読み書きを行う。
【００５０】
また、本実施形態の画像符号化処理プログラムは、図１のフレームメモリ１９０、ラインバッファ２００のメモリを除いた各部の処理を、ＣＰＵ１００１が実行可能なプログラムとなされる。すなわち、画像符号化処理プログラムを実行することで、ＣＰＵ１００１は、読み出し部１１０、フレーム内予測部１３０及び１３１、フレーム間予測部１２０及び１２１、モード決定部１４０及び１４１等の各部の処理を行う。また、ＣＰＵ１００１は、画像符号化処理プログラムを実行することで、変換・量子化部１５０及び１５１や、逆変換・逆量子化部１７０及び１７１、フィルタ処理部１８０及び１８１、符号化部１６０及び１６１の各処理も行うこともできる。また、画像符号化処理プログラムには、ＣＰＵ１００１が、ＲＡＭ１００２内に、前述した読み出し部１１０のバッファメモリ、参照保持部１２０２及び１２１２、入力保持部１２０３及び１２１３等を形成させるプログラムも含まれる。なお、画像符号化処理プログラムには、ＣＰＵ１００１がＲＡＭ１００２内にフレームメモリ１９０、ラインバッファ２００を形成させるためのプログラムが含まれてもよい。
【００５１】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００５２】
１００：画像符号化装置、１１０：読み出し部、１２０，１２１：フレーム間予測部、１３０，１３１：フレーム内予測部、１４０，１４１：モード決定部、１９０：フレームメモリ、２００：ラインバッファ、１２０１，１２１１：制御部、１２０２，１２１２：参照保持部、１２０３，１２１３：入力保持部、１２０４，１２１４：探索部、１２０５，１２１５：転送部
【図１】
2018148486.tif 000003
【図２】
2018148486.tif 000004
【図３】
2018148486.tif 000005
【図４】
2018148486.tif 000006
【図５】
2018148486.tif 000007
【図６】
2018148486.tif 000008
【図７】
2018148486.tif 000009
【図８】
2018148486.tif 000010
【図９】
2018148486.tif 000011
【図１０】
2018148486.tif 000012
【図１１】
2018148486.tif 000013