(57)【要約】【課題】復号処理性能の低下を防げると共に、従来よりも低コストで復号処理を実現するための技術を提供すること。【解決手段】フレーム間符号化されたブロックの予測残差データ及び予測画像の、予測残差データ用メモリ及び予測画像用メモリのそれぞれへの格納が完了すると、該予測残差データと該予測画像とを用いた動き補償を行うことで該ブロックを復号する。【選択図】図１
2014078891.tif 000002
【特許請求の範囲】
【請求項１】
ブロック単位に符号化された各フレームを復号する画像処理装置であって、
ブロックごとの符号化データを復号して、該ブロックの係数データ及び動きベクトルデータを生成する復号手段と、
前記復号手段が係数データを生成するたびに、該係数データから予測残差データを生成し、該予測残差データを、少なくとも２ブロック分の予測残差データを格納可能な予測残差データ用メモリに格納する手段と、
前記復号手段が動きベクトルデータを生成するたびに、該動きベクトルデータが指し示す画像領域の画像を、復号済みのフレームを格納している復号済みフレーム用メモリから読み出し、該読み出した画像を予測画像として、少なくとも２ブロック分の予測画像を格納可能な予測画像用メモリに格納する予測画像生成手段と、
フレーム間符号化されたブロックの予測残差データ及び予測画像の、前記予測残差データ用メモリ及び前記予測画像用メモリのそれぞれへの格納が完了すると、該予測残差データと該予測画像とを用いた動き補償を行うことで該ブロックを復号し、該復号したブロックを前記復号済みフレーム用メモリに格納する動き補償手段と
を備えることを特徴とする画像処理装置。
【請求項２】
更に、
フレーム内予測符号化されたブロックの予測残差データの前記予測残差データ用メモリへの格納が完了すると、該予測残差データを用いて該ブロックを復号し、該復号したブロックを前記復号済みフレーム用メモリに格納する手段
を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記動き補償手段は、前記復号したブロックに対してデブロッキング・フィルタ処理を施してから該ブロックを前記復号済みフレーム用メモリに格納することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
ブロック単位に符号化された各フレームを復号する画像処理装置であって、
ブロックごとの符号化データを復号して、該ブロックの２次元の係数データ及び動きベクトルデータを生成する復号手段と、
前記復号手段が２次元の係数データを生成するたびに該係数データを、垂直方向及び水平方向のうち一方方向の１次元データ列ごとの処理である第１の処理を行ってから、少なくとも２ブロック分の係数データを格納可能な係数データ用メモリに格納する手段と、
前記復号手段が動きベクトルデータを生成するたびに、該動きベクトルデータが指し示す画像領域の画像を、復号済みのフレームを格納している復号済みフレーム用メモリから読み出し、該読み出した画像を予測画像として、少なくとも２ブロック分の予測画像を格納可能な予測画像用メモリに格納する予測画像生成手段と、
フレーム間符号化されたブロックの係数データの前記係数データ用メモリへの格納が完了すると、該係数データに対して垂直方向及び水平方向のうち他方方向の１次元データ列ごとの処理である第２の処理、を行うことで予測残差データを生成し、該予測残差データ及び該ブロックの予測画像を用いた動き補償を行うことで該ブロックを復号し、該復号したブロックを前記復号済みフレーム用メモリに格納する動き補償手段と
を備えることを特徴とする画像処理装置。
【請求項５】
ブロック単位に符号化された各フレームを復号する画像処理装置が行う画像処理方法であって、
前記画像処理装置の復号手段が、ブロックごとの符号化データを復号して、該ブロックの係数データ及び動きベクトルデータを生成する復号工程と、
前記画像処理装置の予測残差データを格納する手段が、前記復号工程で係数データを生成するたびに、該係数データから予測残差データを生成し、該予測残差データを、少なくとも２ブロック分の予測残差データを格納可能な予測残差データ用メモリに格納する工程と、
前記画像処理装置の予測画像生成手段が、前記復号工程で動きベクトルデータを生成するたびに、該動きベクトルデータが指し示す画像領域の画像を、復号済みのフレームを格納している復号済みフレーム用メモリから読み出し、該読み出した画像を予測画像として、少なくとも２ブロック分の予測画像を格納可能な予測画像用メモリに格納する予測画像生成工程と、
前記画像処理装置の動き補償手段が、フレーム間符号化されたブロックの予測残差データ及び予測画像の、前記予測残差データ用メモリ及び前記予測画像用メモリのそれぞれへの格納が完了すると、該予測残差データと該予測画像とを用いた動き補償を行うことで該ブロックを復号し、該復号したブロックを前記復号済みフレーム用メモリに格納する動き補償工程と
を備えることを特徴とする画像処理方法。
【請求項６】
ブロック単位に符号化された各フレームを復号する画像処理装置が行う画像処理方法であって、
前記画像処理装置の復号手段が、ブロックごとの符号化データを復号して、該ブロックの２次元の係数データ及び動きベクトルデータを生成する復号工程と、
前記画像処理装置の係数データを格納する手段が、前記復号工程で２次元の係数データを生成するたびに該係数データを、垂直方向及び水平方向のうち一方方向の１次元データ列ごとの処理である第１の処理を行ってから、少なくとも２ブロック分の係数データを格納可能な係数データ用メモリに格納する工程と、
前記画像処理装置の予測画像生成手段が、前記復号工程で動きベクトルデータを生成するたびに、該動きベクトルデータが指し示す画像領域の画像を、復号済みのフレームを格納している復号済みフレーム用メモリから読み出し、該読み出した画像を予測画像として、少なくとも２ブロック分の予測画像を格納可能な予測画像用メモリに格納する予測画像生成工程と、
前記画像処理装置の動き補償手段が、フレーム間符号化されたブロックの係数データの前記係数データ用メモリへの格納が完了すると、該係数データに対して垂直方向及び水平方向のうち他方方向の１次元データ列ごとの処理である第２の処理、を行うことで予測残差データを生成し、該予測残差データ及び該ブロックの予測画像を用いた動き補償を行うことで該ブロックを復号し、該復号したブロックを前記復号済みフレーム用メモリに格納する動き補償工程と
を備えることを特徴とする画像処理方法。
【請求項７】
コンピュータを、請求項１乃至４の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレーム間予測符号化された符号化データを復号するための技術に関し、特に、パイプライン処理により符号化データを復号する技術に関するものである。
【背景技術】
【０００２】
デジタル放送、デジタルビデオ等の動画像の圧縮符号化方式として、ＩＳＯ／ＩＥＣで規定されているＭＰＥＧ−２やＨ．２６４（非特許文献１）といった方式が広く普及している。これらの動画像圧縮方式では、フレーム間で相関を利用して予測符号化を行うフレーム間予測符号化方式が採用されている。ＭＰＥＧ−２では、マクロブロックと呼ばれる矩形領域を単位としてフレーム間で相関度の高い領域を検出し、該領域と符号化対象のマクロブロックとの空間的な位置の差分が動きベクトルデータとして符号化される。さらに、該領域の画素値（予測画像データ）と符号化対象のマクロブロックの画素値の差分（予測残差データ）が、ＤＣＴなどの変換を施されて係数データに変換され、符号化される。なお、動きベクトルデータは非整数精度の位置を指し示すことも可能である。具体的には、相関度の高い領域の画素間の中間値をフィルタにより生成し、該中間値を予測画像データとして予測符号化処理を行う。
【０００３】
動画像復号処理においては、動きベクトルデータが指し示す領域の画像をフレームメモリから読み出して予測画像を生成し、予測残差データと加算する、所謂動き補償処理を行う。動きベクトルデータは非整数精度の位置を指し示す場合は、フィルタに用いられる画像データもフレームメモリから読み出す。
【０００４】
これらの一連の処理を具現化する従来の動画像復号装置の一例を、図１０を用いて説明する。従来の動画像復号装置は、マクロブロック毎に同期を取るパイプライン処理により動画像を復号する。
【０００５】
符号データ復号部４００は、入力された圧縮符号化データを復号し、係数データと動きベクトルデータを出力する。符号データ復号部４００は、パイプラインステージ１で処理を実行する。
【０００６】
逆量子化・逆変換部４１１は、符号データ復号部４００から出力された係数データに対して、逆変換の演算の順番にデータを並び替えるスキャン変換を施した後、逆量子化・逆変換して予測残差データを出力する。逆量子化・逆変換部４１１による処理はパイプラインステージ２で実行される。
【０００７】
イントラ予測部４１３は、復号対象となるマクロブロックがイントラ予測符号化（フレーム内予測符号化）されたものであった場合に、復号済みの周辺画素値を参照して復号を行う。イントラ予測部４１３による処理はパイプラインステージ３で実行される。
【０００８】
予測画像生成部４２１は、符号データ復号部４００から出力された動きベクトルデータを基に、フレームメモリ４４０に格納されている復号済みのフレームの中から、動きベクトルデータが指し示す領域の参照画像データを読み出す。予測画像生成部４２１による処理はパイプラインステージ２で実行される。
【０００９】
動き補償部４２３は、予測残差データ及び参照画像データを加算し、該加算により得られた復号画像データをイントラ予測部４１３及びループフィルタ部４３０へ出力する。動き補償部４２３による処理はパイプラインステージ３で実行される。
【００１０】
ループフィルタ部４３０は、復号画像データに対してデブロッキング・フィルタ処理を行う。デブロッキング・フィルタ処理を施された画像データは、後続するフレームの復号処理において予測画像生成部４２１によって参照されるため、フレームメモリ４４０へ格納される。ループフィルタ部４３０による処理はパイプラインステージ４で実行される。
【００１１】
制御部４６０は、符号データ復号部４００、逆量子化・逆変換部４１１、イントラ予測部４１３、予測画像生成部４２１、動き補償部４２３、ループフィルタ部４３０、のマクロブロック毎の処理の同期を取る。
【００１２】
近年、ＬＳＩの動作周波数向上により、フレームメモリを制御するメモリコントローラ内のパイプライン段数が増加しているため、フレームメモリへの読み出しアドレスの出力から、対応するデータのメモリからの転送開始までの遅延時間が増大する傾向にある。これにより、動画像復号装置内のパイプライン処理において、参照画像の読み出しと予測画像の生成を行うステージの処理時間が増大し、動画像復号装置の性能低下を招いていた。例として、従来の動画像復号装置のパイプライン処理を表す図１１のタイミングチャートを参照して、性能が低下する様子を説明する。
【００１３】
ステージ２で実行される予測画像生成部４２１の処理は、詳細には、フレームメモリ４４０に格納されている参照画像データの読み出しアドレスの出力、読み出されたデータの受信、予測画像の生成から成る。上述のように読み出しアドレスの出力からメモリからのデータ転送開始までの遅延時間が増大しているため、予測画像生成の完了までに要する処理時間が増大している。従来の動画像復号装置では、制御部４６０がマクロブロック毎の処理の同期を取っているため、ステージ２の処理時間の増大により、動画像復号装置の性能低下が起きている。
【００１４】
さらに、Ｈ．２６４では、ＭＰＥＧ−２よりも細かい矩形領域を処理単位としてフレーム間予測符号化することが可能であるため、参照画像データの読み出しデータ量が増大し、動画像復号装置の性能がますます低下する可能性がある。例として、プログレッシブ形式の動画像データに対する読み出しデータをＭＰＥＧ−２とＨ．２６４とで比較する。
【００１５】
ＭＰＥＧ−２では１６×１６画素を単位としたフレーム間予測復号処理を行う場合、非整数画素精度の動きベクトルが検出されたときは、１７×１７画素＝２８９画素のデータが参照フレームを格納するフレームメモリから読み出される。一方、Ｈ．２６４では、フレーム間予測復号処理における矩形領域の大きさは最小で４×４画素である。Ｈ．２６４では非整数精度の予測画像データを生成するために６タップのフィルタを用いるため、１つの４×４画素領域に対して最大で９×９画素＝８１画素の読み出しが行われる。よって、Ｈ．２６４では、１６×１６画素のマクロブロックにおける読み出し画素数の最大値は、８１画素×１６＝１２９６画素となり、ワーストケースにおいてはＭＰＥＧ−２の４倍以上のデータ読み出しが必要となる。
【００１６】
フレームメモリ読み出しの遅延時間の増大や参照画素数の増大に伴う動画像復号装置内のパイプラインステージの処理時間増大を防ぐ技術として、特許文献１に記載のデコード方法、デコーダ及びデコード装置が提案されている。特許文献１の技術では、復号後の係数データと動きベクトルデータを各々格納する係数データ記憶部と動きベクトル記憶部を設けることにより、マクロブロック毎の参照画素の読み出しに伴う遅延に起因する動画像復号装置の性能低下を抑えている。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】ＷＯ２００８／１１４４０３
【非特許文献】
【００１８】
【非特許文献１】ＩＴＵ−Ｔ  Ｈ．２６４  （０３／２０１０）  Ａｄｖａｎｃｅｄ ｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏ ｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ
【発明の概要】
【発明が解決しようとする課題】
【００１９】
しかしながら、従来技術では係数データ記憶部のメモリにコストがかかるという課題があった。例えば、原画像の画素サンプルのビット深度が８ビットのとき、係数データのビット深度は１画素サンプルあたり１６ビットである。Ｈ．２６４のマクロブロックのサイズは１６×１６画素であり、色差４：２：０フォーマットのときの画素サンプル数は１６×１６×１．５＝３８４である。よって、４マクロブロック分のバッファを実装する場合、従来技術の動画像復号装置では、４×３８４×１６＝２４，５７６ビットのメモリが必要となり、動画像復号装置を搭載するＬＳＩの単価上昇を招いていた。
【００２０】
本発明はこのような問題に鑑みてなされたものであり、復号処理性能の低下を防げると共に、従来よりも低コストで復号処理を実現するための技術を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明の目的を達成するために、本発明の画像処理装置は、ブロック単位に符号化された各フレームを復号する画像処理装置であって、ブロックごとの符号化データを復号して、該ブロックの係数データ及び動きベクトルデータを生成する復号手段と、前記復号手段が係数データを生成するたびに、該係数データから予測残差データを生成し、該予測残差データを、少なくとも２ブロック分の予測残差データを格納可能な予測残差データ用メモリに格納する手段と、前記復号手段が動きベクトルデータを生成するたびに、該動きベクトルデータが指し示す画像領域の画像を、復号済みのフレームを格納している復号済みフレーム用メモリから読み出し、該読み出した画像を予測画像として、少なくとも２ブロック分の予測画像を格納可能な予測画像用メモリに格納する予測画像生成手段と、フレーム間符号化されたブロックの予測残差データ及び予測画像の、前記予測残差データ用メモリ及び前記予測画像用メモリのそれぞれへの格納が完了すると、該予測残差データと該予測画像とを用いた動き補償を行うことで該ブロックを復号し、該復号したブロックを前記復号済みフレーム用メモリに格納する動き補償手段とを備えることを特徴とする。
【発明の効果】
【００２２】
本発明の構成によれば、復号処理性能の低下を防げると共に、従来よりも低コストで復号処理を実現することができる。
【図面の簡単な説明】
【００２３】
【図１】画像処理装置の機能構成例を示すブロック図。
【図２】予測画像生成部１２１の構成例を示すブロック図。
【図３】タイミングチャートを示す図。
【図４】画像処理装置の機能構成例を示すブロック図。
【図５】タイミングチャートを示す図。
【図６】予測画像生成部１２１の詳細な構成を示すブロック図。
【図７】フィルタを用いて生成される予測画像を説明する図。
【図８】画像処理装置の機能構成例を示すブロック図。
【図９】タイミングチャートを示す図。
【図１０】従来の動画像復号装置の一例を示す図。
【図１１】タイミングチャートを示す図。
【発明を実施するための形態】
【００２４】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００２５】
［第１の実施形態］
マクロブロック単位で符号化された各フレームの符号化データを復号する画像処理装置の機能構成例について、図１のブロック図を用いて説明する。本実施形態では、Ｈ．２６４符号化方式に従い、マクロブロックと呼ばれる１６×１６画素の矩形領域を単位としてパイプライン処理を行うものとする。しかし、これはあくまでも説明を具体的に行うために挙げた一例に過ぎない。例えば、１６×１６画素よりも大きい矩形領域を処理単位とする符号化方式では、該矩形領域を単位とするパイプライン処理を行ってもよい。
【００２６】
符号データ復号部１００は、マクロブロック単位で入力される符号化データを、Ｈ．２６４においてはＣＡＢＡＣ（コンテキスト適応型算術号化方式）又はＣＡＶＬＣ（コンテキスト適応型可変長符号化方式）に従って復号する。なお、復号方式は符号化方式に応じたものとなるため、ここで挙げた復号方式に限るものではない。例えば、ＭＰＥＧ−２においては可変長符号化方式に基づいて符号化データを復号する。
【００２７】
そして符号データ復号部１００は、この復号によりマクロブロック単位で係数データ及び動きベクトルデータを生成するので、係数データは逆量子化・逆変換部１１１に対して出力し、動きベクトルデータは予測画像生成部１２１に対して出力する。
【００２８】
逆量子化・逆変換部１１１は、マクロブロック単位で符号データ復号部１００から出力される係数データを受けると、該係数データに対し逆変換の演算の順番にデータを並び替えるスキャン変換を施した後、逆量子化・逆変換して予測残差データを出力する。係数データから予測残差データを生成するまでの一連の処理は周知の技術であるため、この技術に係る詳細な説明は省略する。そして逆量子化・逆変換部１１１は、生成した予測残差データを、後段の予測残差画像バッファ１１２に格納する。予測残差画像バッファ１１２は、少なくとも２マクロブロック分の予測残差データを格納可能な予測残差データ用メモリである。
【００２９】
イントラ予測復号部１１３は、ステージ４（図３）で復号対象となるマクロブロックがイントラ予測符号化（フレーム内予測符号化）されたものである場合、制御部１６０の指示により復号済みの周辺画素値を参照する。そして、予測残差画像バッファ１１２に格納されている該マクロブロックの予測残差データと、この参照した周辺画素値と、を用いて該マクロブロックの復号を行う。なお、イントラ予測復号部１１３は不図示のラインバッファを備えており、後続するマクロブロックをイントラ予測復号する場合に参照される周辺画素の画素値を該ラインバッファに格納する。
【００３０】
予測画像生成部１２１はマクロブロック単位で符号データ復号部１００から出力される動きベクトルデータを受けると、該動きベクトルデータが指し示す画像領域の画像を、復号済みのフレームを格納しているフレームメモリ１４０から参照画像として読み出す。動きベクトルデータが非整数の位置を指し示す場合は、フィルタを使用して参照画像を補間して予測画像を生成する。そうでない場合は、フレームメモリ１４０から読み出した参照画像を予測画像とする。そして予測画像生成部１２１は、このようにして得られた予測画像を、後段の予測画像バッファ１２２に格納する。予測画像バッファ１２２は、少なくとも２マクロブロック分の予測画像を格納可能な予測画像用メモリである。
【００３１】
動き補償部１２３は制御部１６０からの指示により、予測残差画像バッファ１１２及び予測画像バッファ１２２のそれぞれから予測残差データ及び予測画像を読み出し、該予測残差データと該予測画像とを加算することでマクロブロックの復号画像を生成する。そして動き補償部１２３は、生成した復号画像を、イントラ予測復号部１１３及びループフィルタ部１３０に対して出力する。
【００３２】
制御部１６０は、図１の各処理部のパイプライン処理の同期をとるために、予測画像生成部１２１を除く各処理部のマクロブロック処理の終了を検知してから次のマクロブロック処理の開始を指示する。制御部１６０は、対応するステージ４（図３）で復号対象となるマクロブロックがインター予測符号化（フレーム間予測符号化）されたものであった場合には、動き補償部１２３に動作開始を指示する。また、制御部１６０は、復号対象となるマクロブロックがイントラ予測符号化されたものであった場合には、イントラ予測復号部１１３に動作開始を指示する。
【００３３】
ループフィルタ部１３０は、動き補償部１２３やイントラ予測復号部１１３から送出された復号画像に対して、Ｈ．２６４符号化方式で定義されるデブロッキング・フィルタ処理を行う。そしてループフィルタ部１３０は、デブロッキング・フィルタ処理を施した復号画像を、後続するフレームの復号処理において予測画像生成部１２１が参照するために、フレームメモリ１４０に格納する。
【００３４】
次に、予測画像生成部１２１の構成例について、図２のブロック図を用いて説明する。予測画像生成部１２１に入力された動きベクトルデータは、動きベクトルバッファ１２１２及び動きベクトル解釈部１２１１に入力される。
【００３５】
動きベクトル解釈部１２１１は、動きベクトルデータが指し示す画像領域内の画像が格納されているフレームメモリ１４０内のアドレスを、該動きベクトルデータから算出する。
【００３６】
動きベクトルバッファ１２１２は、少なくとも２マクロブロック分の動きベクトルデータを格納可能なメモリであり、動きベクトルデータは、フィルタを使用した補間による予測画像の生成に用いられるために、この動きベクトルバッファ１２１２に格納される。
【００３７】
読み出しアドレス出力部１２１３は、動きベクトル解釈部１２１１が求めたアドレスを、画像読み出しアドレスとして、フレームメモリ１４０に対して出力する。読み出しアドレス出力部１２１３は不図示のＦＩＦＯを備え、動きベクトル解釈部１２１１から出力されたアドレスをこのＦＩＦＯにバッファリングする。
【００３８】
フレームメモリ１４０は不図示のメモリコントローラとＤＲＡＭから成り、メモリコントローラはさらにＦＩＦＯを有しており、所定の量の読み出しアドレスをこのＦＩＦＯに格納する。メモリコントローラ内のＦＩＦＯが満杯になった場合は、読み出しアドレス出力部１２１３内のＦＩＦＯに格納される。メモリコントローラは、ＤＲＡＭから画像のデータを読み出すまでの遅延時間の間に、該読み出しデータに先行して読み出しアドレス出力部１２１３から出力される複数のアドレスを格納することができる。
【００３９】
読み出しデータ受信部１２１４は、読み出しアドレスで指定されたフレームメモリ１４０（ＤＲＡＭ）中の格納領域に格納されているデータ、即ち参照画像を読み出す。そして読み出しデータ受信部１２１４は、読み出した参照画像を、後段の予測値生成部１２１５に対して出力する。
【００４０】
予測値生成部１２１５は、動きベクトルバッファ１２１２に格納されている動きベクトルデータや、読み出しデータ受信部１２１４から受けた参照画像を用いて、予測画像を生成する。動きベクトルデータが非整数画素の位置を示すときはフィルタを用いて予測画像データを生成するが、フィルタの計算式については非特許文献１により公知であるため、説明を省略する。
【００４１】
次に、このような画像処理装置がマクロブロック単位でパイプライン処理を行う様子を、図１〜図３を用いて説明する。本実施形態では、パイプラインステージは５段に分かれている。符号データ復号部１００による符号データ復号処理はステージ１で実行される。逆量子化・逆変換部１１１による処理はステージ２で実行される。予測残差画像バッファ１１２へのデータの書き込みはステージ３で実行される。イントラ予測復号部１１３による処理はステージ４で実行される。ループフィルタ部１３０による処理はステージ５で実行される。予測画像生成部１２１による処理及び予測画像バッファ１２２へのデータの書き込みは、ステージ２からステージ３にわたって実行される。動き補償部１２３による処理は、ステージ４で実行される。なお、各処理部とステージとの関係はこれに限るものではなく、例えば、各ステージをさらに細分化してもよい。
【００４２】
ここで、図３のマクロブロック０に着目し、このマクロブロック０の符号化データが復号されるまでの流れについて説明する。これは、フレーム間符号化されたマクロブロックであれば、他のマクロブロックについても同様の説明を適用することができる。
【００４３】
マクロブロック０の符号化データが符号データ復号部１００に入力されると、符号データ復号部１００は期間ｔ１で該符号化データを復号して、係数データと動きベクトルデータとを生成する。
【００４４】
期間ｔ２では、動きベクトル解釈部１２１１はマクロブロック０の動きベクトルデータが指し示す画像領域のアドレスを求め、読み出しアドレス出力部１２１３は、このアドレスをフレームメモリ１４０に対して出力する。
【００４５】
読み出しデータ受信部１２１４は、期間ｔ２〜ｔ３にかけてフレームメモリ１４０から参照画像のデータを順次読み出し、読み出したデータを順次予測値生成部１２１５に対して送出する。予測値生成部１２１５は、読み出しデータ受信部１２１４からデータを受けると、このデータを基に上記のようにして予測画像を生成し、生成した部分から順次予測画像バッファ１２２に格納する。予測値生成部１２１５の動作は、期間ｔ２〜ｔ３にかけて行われる。
【００４６】
一方、期間ｔ２において逆量子化・逆変換部１１１は、マクロブロック０の係数データから予測残差データを求め、期間ｔ３において該予測残差データを予測残差画像バッファ１１２に格納する。
【００４７】
即ち、期間ｔ３の終了時点でマクロブロック０の予測残差データ及び予測画像のそれぞれの格納が完了したことになる。これをうけて制御部１６０は次のパイプライン処理の開始を指示する。この指示の中には、動き補償部１２３に対する予測残差画像バッファ１１２及び予測画像バッファ１２２からのデータ読み出し開始の指示が含まれる。動き補償部１２３は、期間ｔ４においてマクロブロック０の予測残差データ及び予測画像を用いてマクロブロック０の復号画像を生成する。
【００４８】
そして期間ｔ５では、ループフィルタ部１３０は、マクロブロック０の復号画像に対してデブロッキング・フィルタ処理を行い、デブロッキング・フィルタ処理を施した復号画像を、フレームメモリ１４０に格納する。
【００４９】
一方、マクロブロック２は、イントラ予測符号化（フレーム内予測符号化）されたマクロブロックである。マクロブロック２の符号化データが符号データ復号部１００に入力されると、符号データ復号部１００は期間ｔ３で該符号化データを復号して、係数データを生成する。期間ｔ４において逆量子化・逆変換部１１１は、マクロブロック２の係数データから予測残差データを求め、期間ｔ５において該予測残差データを予測残差画像バッファ１１２に格納する。期間ｔ５の終了時点でマクロブロック２の予測残差データの格納が完了したことになるので、制御部１６０は次のパイプライン処理の開始を指示する。この指示の中には、イントラ予測復号部１１３に対する予測残差画像バッファ１１２からのデータ読み出し開始の指示が含まれる。イントラ予測復号部１１３は、期間ｔ６においてマクロブロック２の予測残差データを用いてマクロブロック２の復号画像を生成する。そして期間ｔ７では、ループフィルタ部１３０は、マクロブロック２の復号画像に対してデブロッキング・フィルタ処理を行い、デブロッキング・フィルタ処理を施した復号画像を、フレームメモリ１４０に格納する。
【００５０】
このように、本実施形態によれば、読み出しアドレス出力から予測画像バッファへの書き込みという一連の処理が、２つのパイプラインステージに跨って行われる。よって、読み出しアドレス出力から読み出しデータ受信までに遅延時間が生じても、画像処理装置の処理性能の低下を防ぐことができる。
【００５１】
＜変形例＞
また、特許文献１に記載の従来技術のように、読み出しアドレス出力からデータ受信までの遅延時間の増大のみならず、読み出し対象の参照画像が増加して読み出しデータ受信時間が増大する場合にも対応可能である。以下、パイプラインステージを更に分割した場合における画像処理装置の機能構成例を示すブロック図を示す図４、タイミングチャートを示す図５を用いて本変形例について説明する。
【００５２】
図４に示した構成は図１に示した構成と同様であるが、パイプラインステージが８段に分かれており、ステージ３以降の各ステージと処理部との対応関係が若干異なる。即ち、予測画像生成部１２１による処理及び予測画像バッファ１２２へのデータの書き込みとデータ保持が、ステージ２からステージ６にわたって実行される。また、予測残差画像バッファ１１２へのデータの書き込みとデータ保持がステージ３〜６で実行される。これらに伴い、イントラ予測復号部１１３による処理と動き補償部１２３による処理はステージ７で、ループフィルタ部１３０による処理はステージ８で実行される。また、予測画像バッファ１２２及び予測残差画像バッファ１１２は、４マクロブロック分のデータを保持するバッファを備える。さらに、本実施形態では、図２の読み出しアドレス出力部１２１３は、４マクロブロック分のアドレスを保持するＦＩＦＯ（不図示）を内部に備える。
【００５３】
ここで、図５のタイミングチャートにおいて、マクロブロック６に着目する。マクロブロック６についてはフレームメモリ１４０から読み出す参照画像が多いため、読み出しアドレス出力から予測画像生成までの一連の処理は、時刻ｔ８〜ｔ１２に跨っている。即ち、上記の一連の処理は５ステージ分の処理時間を要する。一方、ステージ２（期間ｔ８）で逆量子化・逆変換を施されたマクロブロック６の予測残差データは、予測残差画像バッファ１１２においてステージ３〜６（期間ｔ９〜ｔ１２）で格納される。しかる後に、ステージ７（期間ｔ１３）で、マクロブロック６に対する動き補償処理が行われる。また、後続するマクロブロック７はイントラ予測符号化されたマクロブロックなので、読み出しアドレス出力から予測画像生成までの一連の処理は実行されないため、マクロブロック６の処理で遅延した時間を吸収することができる。よって、読み出しアドレス出力から予測画像生成までの一連の処理が増大しても、パイプライン処理の１ステージあたりの処理時間が増えないので、安定した性能で動画像データを復号することができる。
【００５４】
さらに、特許文献１に記載の従来技術と異なり、復号後の係数データをバッファで保持するのではなく、逆変換処理の出力である予測残差データをバッファで保持するため、バッファ容量を削減することができる。例えば、特許文献１の図６を参照すると、マクロブロック０に対して係数データ解釈・逆量子化・逆周波数変換を施す時点で、係数データ記憶部にはマクロブロック１〜４の係数データが記憶されるため、４マクロブロック分のバッファが必要となる。Ｈ．２６４のマクロブロックのサイズは１６×１６画素であり、色差４：２：０フォーマットのときのサンプル数は１６×１６×１．５＝３８４サンプルである。原画像のビット深度が８ビットのとき係数データのビット深度は１サンプルあたり１６ビットである。よって、従来技術の動画像復号装置では、４×３８４×１６＝２４，５７６ビットのバッファが必要となる。一方、本変形例で必要となるバッファの段数は従来技術と同じ４マクロブロック分であるが、バッファに保持すべき予測残差データは１サンプルあたり９ビットである。よって、本変形例では４×３８４×９＝１３，８２４ビットのバッファで済むので、従来技術よりもコストを低減することができる。
【００５５】
なお、第１の実施形態及び本変形例ではＨ．２６４符号化方式を対象としたが、これに限定されるものではない。例えば、ＭＰＥＧ−２符号化方式に適用することも可能である。この場合、図１のブロック図から、イントラ予測復号部１１３とループフィルタ部１３０を取り除いた形態となる。また、予測画像バッファ１２２及び予測残差画像バッファ１１２が保持するブロック数は上記に限定されず、２以上のいかなる数も使用することが可能である
第１の実施形態及び本変形例は、以下に示す基本構成の一例に過ぎず、この基本構成と同等の構成であれば、如何なる構成を採用しても良い。即ち、この基本構成では、ブロックごとの符号化データを復号して、該ブロックの係数データ及び動きベクトルデータを生成する。そして、係数データを生成するたびに、該係数データから予測残差データを生成し、該予測残差データを、少なくとも２ブロック分の予測残差データを格納可能な予測残差データ用メモリに格納する。更に、動きベクトルデータを生成するたびに、該動きベクトルデータが指し示す画像領域の画像を、復号済みのフレームを格納している復号済みフレーム用メモリから読み出す。そして、該読み出した画像を予測画像として、少なくとも２ブロック分の予測画像を格納可能な予測画像用メモリに格納する（予測画像生成）。
【００５６】
そして、フレーム間符号化されたブロックの予測残差データ及び予測画像の、予測残差データ用メモリ及び予測画像用メモリのそれぞれへの格納が完了すると、該予測残差データと該予測画像とを用いた動き補償を行うことで該ブロックを復号する。そして、該復号したブロックを復号済みフレーム用メモリに格納する。
【００５７】
［第２の実施形態］
本実施形態に係る画像処理装置は、第１の実施形態と同様の構成を有するが、予測画像生成部１２１の構成のみが第１の実施形態と異なる。本実施形態に係る予測画像生成部１２１の詳細な構成について図６のブロック図を用いて説明する。図６において、図２と同様の処理部には同じ参照番号を付しており、これらの処理部に係る説明は省略する。
【００５８】
動きベクトル小数部バッファ１２２２は、符号データ復号部１００から出力される整数部と小数部とから成る動きベクトルデータのうち、小数部のみを格納するためのメモリである。
【００５９】
図７を用いて、予測値生成部１２２５によりフィルタを用いて生成される予測画像を説明する。図７において、白い矩形は整数位置（整数座標位置）の画素を表す。網点の矩形はフィルタにより整数位置の画素から補間して生成される画素（非整数位置の画素）を表す。図が煩雑になることを避けるため、非整数位置の画素は一部のみ記載する。Ｈ．２６４符号化方式において、縦軸または横軸が＋０．５に位置する画素（図７のｂ、ｈ、ｊ、ｑ、ｍ、ｓ）は、６タップのフィルタを用いて生成される（フィルタの計算式については非特許文献１により公知なので、説明を省略する）。それ以外の画素は、整数位置の画素または縦軸または横軸が＋０．５に位置する画素との平均値を求めることにより生成される。
【００６０】
このように、非整数位置の画素の生成方法は、動きベクトルデータの小数部が表す画素位置により決まる。ゆえに、予測値生成部１２２５は動きベクトルデータの小数部のみを参照すれば予測画像を生成できるので、動きベクトル小数部バッファ１２２２は、符号データ復号部１００から出力された動きベクトルデータのうち、小数部のみを格納するだけで済む。よって、本実施形態では、動きベクトルデータを格納するためのバッファが従来よりも小さくて済むので、コストを削減することができる。
【００６１】
［第３の実施形態］
本実施形態に係る画像処理装置の機能構成例について、図８のブロック図を用いて説明する。なお、図８において、図１と同様の処理部には同じ参照番号を付しており、これらの処理部に係る説明は省略する。また、本実施形態に係る画像処理装置による処理のタイミングチャートを図９に示す。
【００６２】
逆量子化・逆変換部３１１は、ステージ２〜４にかけて逆量子化・逆変換処理を行い、予測残差データを出力する。また、転置バッファ３１２は逆変換処理において変換途中の係数データを格納する係数データ用メモリであり、少なくとも２マクロブロック分の変換途中の係数データを格納可能なメモリである。
【００６３】
一般的に、動画像の符号化及び復号では、２次元の画像に対して１次元の変換や逆変換を縦方向と横方向の合計２回行うことより変換処理を実現している。本実施形態でも同様に、ステージ２において、逆量子化処理を行い、逆量子化された変換係数に対して１回目の１次元の逆変換を施す。ステージ３で転置バッファ３１２に１回目の逆変換を施した係数データを格納する。そして、制御部３６０からの指示により、ステージ４において２回目の１次元の逆変換を、転置バッファ３１２に格納した係数データに施す。なお、動き補償処理と２回目の逆変換をステージ４で逐次行うことになるが、動き補償は予測残差データと予測画像データを加算するだけなので、一連の処理はパイプライン処理のボトルネックにはならないと考えられる。
【００６４】
制御部３６０は、逆量子化・逆変換部３１１による１回目の１次元変換と、符号データ復号部１００、イントラ予測復号部１１３、動き補償部１２３、ループフィルタ部１３０、予測画像バッファ１２２の処理の終了を検知する。該終了検知の後に、次のマクロブロックの処理の開始を各部に指示する。
【００６５】
予測画像生成部１２１による処理は、第１の実施形態と同様に、フレームメモリ１４０からのデータの読み出し遅延の影響によりステージ３で完了するが、転置バッファ３１２によりその遅延を吸収することができる。よって、本実施形態は、フレームメモリからの読み出しの遅延を吸収するためのバッファを、逆変換処理に用いる転置バッファで兼ねることができるので、従来よりもコストを削減することができる。なお、予測画像生成部１２１は、第２の実施形態と同じように動きベクトルデータの小数部のみを格納する構成にすることも可能である。なお、上記の各実施形態や変形例は、適宜組み合わせて用いても良い。
【００６６】
第３の実施形態は、以下に示す基本構成の一例に過ぎず、この基本構成と同等の構成であれば、如何なる構成を採用しても良い。即ち、この基本構成では、ブロックごとの符号化データを復号して、該ブロックの２次元の係数データ及び動きベクトルデータを生成する。２次元の係数データを生成するたびに該係数データを、垂直方向及び水平方向のうち一方方向の１次元データ列ごとの処理である第１の処理を行ってから、少なくとも２ブロック分の係数データを格納可能な係数データ用メモリに格納する。また、動きベクトルデータを生成するたびに、該動きベクトルデータが指し示す画像領域の画像を、復号済みのフレームを格納している復号済みフレーム用メモリから読み出す。そして、該読み出した画像を予測画像として、少なくとも２ブロック分の予測画像を格納可能な予測画像用メモリに格納する。
【００６７】
フレーム間符号化されたブロックの係数データの係数データ用メモリへの格納が完了すると、該係数データに対して垂直方向及び水平方向のうち他方方向の１次元データ列ごとの処理である第２の処理、を行うことで予測残差データを生成する。そして、該予測残差データ及び該ブロックの予測画像を用いた動き補償を行うことで該ブロックを復号し、該復号したブロックを復号済みフレーム用メモリに格納する。
【００６８】
［第４の実施形態］
図１，２，４，６，８，１０の各部はハードウェアで構成しても良いが、制御部をＣＰＵで構成し、メモリとして機能する処理部をＲＡＭやハードディスクなどのメモリ装置で構成し、その他の各部をコンピュータプログラムで構成しても良い。この場合、ＣＰＵがこれら各部に相当するコンピュータプログラムを実行することで、これら各部の機能を実現することができる。
【００６９】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014078891.tif 000003
【図２】
2014078891.tif 000004
【図３】
2014078891.tif 000005
【図４】
2014078891.tif 000006
【図５】
2014078891.tif 000007
【図６】
2014078891.tif 000008
【図７】
2014078891.tif 000009
【図８】
2014078891.tif 000010
【図９】
2014078891.tif 000011
【図１０】
2014078891.tif 000012
【図１１】
2014078891.tif 000013