(57)【特許請求の範囲】
【請求項１】
可変長符号化された画像データを復号化する画像処理装置であって、
前記画像データを可変長復号化し、連続する零係数の個数と非零係数との組を出力する可変長復号化部と、
前記非零係数に対して逆量子化処理を行い、逆量子化データを求めて出力する逆量子化処理部と、
前記逆量子化データを、指定されたアドレスに記憶するデータ記憶部と、
逆スキャン処理を行い、前記連続する零係数の個数に基づいて前記逆量子化データを記憶させるべきアドレスを求め、このアドレスを前記データ記憶部に指定するアドレス設定部と、
前記アドレス設定部が指定したアドレスに対応した自己のアドレスに、書き込みフラグをセットする書込み情報記憶部と、
前記データ記憶部からデータを読み出し、前記書込み情報記憶部が記憶する情報に基づいて、前記アドレス設定部が指定したアドレスのデータはそのまま出力する一方、前記アドレス設定部が指定したアドレス以外のアドレスのデータは所定の値に置き換えて出力するデータ読出部と
を備えた画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記書込み情報記憶部は、
記憶しているデータのリセットを、前記データ記憶部から前記データ読出部によって１ブロック分のデータが読み出されたとき、行うものである
ことを特徴とする画像処理装置。
【請求項３】
請求項１に記載の画像処理装置において、
前記書込み情報記憶部は、
各アドレスに１ビットの記憶領域を有する
ことを特徴とする画像処理装置。
【請求項４】
可変長符号化された画像データを復号化する画像処理方法であって、
前記画像データを可変長復号化し、連続する零係数の個数と非零係数との組を求める可変長復号化工程と、
前記非零係数に対して逆量子化処理を行い、逆量子化データを求める逆量子化処理工程と、
逆スキャン処理を行い、前記連続する零係数の個数に基づいて前記逆量子化データを記憶させるべきアドレスを求め、このアドレスをデータ記憶部に指定するアドレス設定工程と、
前記逆量子化データを、前記データ記憶部の指定されたアドレスに記憶させるデータ記憶工程と、
前記アドレス設定工程で指定したアドレスに対応した書込み情報記憶部のアドレスに、書き込みフラグをセットする書込み情報記憶工程と、
前記データ記憶部からデータを読み出し、前記書込み情報記憶部が記憶する情報に基づいて、前記アドレス設定工程で指定したアドレス以外のアドレスのデータは所定の値に置き換える一方、前記アドレス設定工程で指定したアドレスのデータは置き換えを行わないデータ読出工程と
を備えた画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＭＰＥＧ（moving picture experts group）等の方式により符号化された画像を復号化する画像処理装置に関する。
【０００２】
【従来の技術】
ＭＰＥＧストリーム等の可変長符号化された符号を復号化処理する画像処理装置においては、近年、多くの画素を有するＨＤ（High Definition）画像等の復号化の必要性が高まってきており、復号化処理を高速化することが必要となっている。
【０００３】
図４は従来の画像処理装置における処理についての説明図である。図４（ａ）は、画像の処理単位を説明する図である。例えば、ＨＤ画像では１画面は１９２０×１０８０個の画素を含み、標準画像では１画面は７２０×４８０画素を含んでいる。この画面は、マクロブロックと呼ばれる１６×１６画素を単位として処理される。マクロブロックは、更に８×８個の画素データを含む６個のブロック、すなわち、Ｙ０，Ｙ１，Ｙ２及びＹ３の４個の輝度ブロック、並びにＣｂ、Ｃｒの２個の色差ブロックに分割して処理される。
【０００４】
図４（ｂ）は、可変長符号化された画像データのビットストリームを説明する図である。１マクロブロック分のデータは、ヘッダ、輝度ブロックＹ０〜Ｙ３、色差ブロックＣｂ，Ｃｒの順でマクロブロック毎に伝送される。
【０００５】
図４（ｃ）は従来の画像処理装置におけるパイプライン処理について説明する図である。復号化の処理においては、処理の高速化を図るため、８×８画素のブロックの処理を１単位としてパイプライン処理を行うのが一般的である。すなわち、例えば図４（ｃ）に示すように、可変長復号化、逆量子化及び逆スキャンを行うユニットＡと、逆離散コサイン変換を行うユニットＢと、動き補償を行うユニットＣとを並列に動作させる。
【０００６】
このようなパイプライン処理を行う場合、それぞれのユニットの処理が平均的なクロックサイクル数で終了することが望ましい。ところが、ユニットＡにおいては、１ブロックの６４個のデータ全てに対して逆量子化及び逆スキャン処理を行い、その処理後のデータを記憶するため、１ブロックの処理を行うために必要なクロックサイクルが他のユニットよりも多い。
【０００７】
図５は従来の画像処理装置のブロック図である。図５の画像処理装置は、可変長復号化部８１と、逆量子化・逆スキャン処理部８２と、データ記憶部８３とをユニットＡとして備え、データ読出部８４と、逆離散コサイン変換部８５とをユニットＢとして備え、動き補償部８６をユニットＣとして備えている。
【０００８】
図５において、可変長復号化部８１は、入力されたビットストリームを可変長復号化し、１ブロック分のデータを６４個の数の列に変換して順に逆量子化・逆スキャン処理部８２に出力する。逆量子化・逆スキャン処理部８２は、可変長復号化部８１が出力する１ブロック当たり６４個の数の全てに対して逆量子化及び逆スキャン処理を行い、得られた全てのＤＣＴ係数をデータ記憶部８３に記憶させる。
【０００９】
データ読出部８４は、データ記憶部８３からＤＣＴ係数を読み出して逆離散コサイン変換部８５に出力する。逆離散コサイン変換部８５は、ＤＣＴ係数に対して逆離散コサイン変換を行い、復元された画像データを動き補償部８６に出力する。動き補償部８６は、この復元された画像データを用いて動き補償処理を行う。
【００１０】
【発明が解決しようとする課題】
ＭＰＥＧストリーム等の画像データに対して可変長復号化を行って得られる離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）係数は、特殊な画像の場合を除き、値が零となるものの割合が高い。図５に示すような従来の画像処理装置においては、可変長復号化の処理において得られた全ての係数に対して逆量子化及び逆スキャン処理を行い、更にその処理後のデータを記憶しており、復号化処理を高速化する場合のボトルネックになっていた。また、このような復号化処理をハードウェア化して行う場合には、できるだけ少ない回路面積で実現することが望ましい。
【００１１】
本発明はこのような従来技術の問題点を解決するものであり、可変長符号化された画像データを復号化する際に、可変長復号化された非零係数のみを対象にして逆量子化及び逆スキャン処理を行い、回路面積をあまり増大させることなく、復号化処理の高速化を図ることを目的とする。
【００１２】
【課題を解決するための手段】
具体的には、本発明の画像処理装置は、可変長符号化された画像データを復号化する画像処理装置であって、前記画像データを可変長復号化し、連続する零係数の個数と非零係数との組を出力する可変長復号化部と、前記非零係数に対して逆量子化処理を行い、逆量子化データを求めて出力する逆量子化処理部と、前記逆量子化データを、指定されたアドレスに記憶するデータ記憶部と、逆スキャン処理を行い、前記連続する零係数の個数に基づいて前記逆量子化データを記憶させるべきアドレスを求め、このアドレスを前記データ記憶部に指定するアドレス設定部と、前記アドレス設定部が指定したアドレスに対応した自己のアドレスに、書き込みフラグをセットする書込み情報記憶部と、前記データ記憶部からデータを読み出し、前記書込み情報記憶部が記憶する情報に基づいて、前記アドレス設定部が指定したアドレスのデータはそのまま出力する一方、前記アドレス設定部が指定したアドレス以外のアドレスのデータは所定の値に置き換えて出力するデータ読出部とを備えたものである。
【００１３】
これによると、非零係数のみを対象にして、逆量子化及び逆スキャン処理を行い、その処理結果の記憶を行うため、可変長符号の復号化を高速化することができる。また、逆量子化データを記憶したアドレスに対応して書込みフラグを記憶するため、必要な記憶容量が少なく、回路面積を小さくすることができる。
【００１５】
また、この画像処理装置において、前記書込み情報記憶部は、記憶しているデータのリセットを、前記データ記憶部から前記データ読出部によって１ブロック分のデータが読み出されたとき、行うものであることが好ましい。これによると、１ブロック毎に処理を行うことができ、データ記憶部及び書込み情報記憶部は１ブロック分のデータ数に応じた記憶容量があればよいこととなる。
【００１６】
また、本発明の画像処理装置において、前記書込み情報記憶部は、各アドレスに１ビットの記憶領域を有することが好ましい。これによると、書込み情報記憶部の記憶容量を小さなものとすることができるため、回路面積を小さくすることができる。
【００１７】
また、本発明の画像処理方法は、可変長符号化された画像データを復号化する画像処理方法であって、前記画像データを可変長復号化し、連続する零係数の個数と非零係数との組を求める可変長復号化工程と、前記非零係数に対して逆量子化処理を行い、逆量子化データを求める逆量子化処理工程と、逆スキャン処理を行い、前記連続する零係数の個数に基づいて前記逆量子化データを記憶させるべきアドレスを求め、このアドレスをデータ記憶部に指定するアドレス設定工程と、前記逆量子化データを、前記データ記憶部の指定されたアドレスに記憶させるデータ記憶工程と、前記アドレス設定工程で指定したアドレスに対応した書込み情報記憶部のアドレスに、書き込みフラグをセットする書込み情報記憶工程と、前記データ記憶部からデータを読み出し、前記書込み情報記憶部が記憶する情報に基づいて、前記アドレス設定工程で指定したアドレス以外のアドレスのデータは所定の値に置き換える一方、前記アドレス設定工程で指定したアドレスのデータは置き換えを行わないデータ読出工程とを備えたものである。
【００１８】
これによると、非零係数のみを対象にして、逆量子化及び逆スキャン処理を行い、その処理結果の記憶を行うため、可変長符号の復号化を高速化することができる。また、逆量子化データを記憶したアドレスに対応して書込みフラグを記憶するため、必要な記憶容量が少ない。
【００１９】
【発明の実施の形態】
以下、本発明の一実施形態について、図面を参照しながら説明する。
【００２０】
図１は本発明の実施形態に係る画像処理装置のブロック図である。図１の画像処理装置は、可変長復号化部１１と、逆量子化処理部１２と、データ記憶部１３と、アドレス設定部１４と、書込み情報記憶部１５と、データ読出部１６と、逆離散コサイン変換部１７と、動き補償部１８とを備えている。
【００２１】
可変長復号化部１１には、ビットストリームが入力される。ここで、ビットストリームは、ＭＰＥＧ方式によって画像データに対してＤＣＴ変換、量子化、スキャン処理及び可変長符号化を行って得られたデータである。画像データに対してＤＣＴ変換を行うとＤＣＴ係数が得られ、更に量子化及びスキャン処理を行うと、１次元に並べられた量子化後のＤＣＴ係数の列が得られる。この量子化後のＤＣＴ係数の列の中で、連続する零係数の個数（０個の場合を含む）とその後に続く非零係数とを組にして、可変長符号化が行われる。連続する零係数の個数をランデータＲＵＮ、非零係数をレベルデータＬＥＶＥＬと称することとする。
【００２２】
可変長復号化部１１は、ビットストリームに対して可変長復号化を行い、ランデータＲＵＮとレベルデータＬＥＶＥＬとの組に復号化する。可変長復号化部１１は、レベルデータＬＥＶＥＬを逆量子化処理部１２に、ランデータＲＵＮをアドレス設定部１４に出力する。
【００２３】
逆量子化処理部１２は、レベルデータＬＥＶＥＬに対して逆量子化を行い、得られた逆量子化データ、すなわち非零のＤＣＴ係数を、データ記憶部１３及び書込み情報記憶部１５に出力する。
【００２４】
アドレス設定部１４は、各ブロックの処理を開始する際にリセットされ、データ順ｎは初期値“０”となる。データ順ｎは、可変長復号化後の零を含んだデータ列の中でのデータの順番を表す。すなわち、データ順ｎは、スキャン処理後のＤＣＴ係数ブロック内における６４個のデータの中での順番を表す。アドレス設定部１４は、インクリメンタを有し、データ順ｎにランデータＲＵＮを累積加算する。その後、アドレス設定部１４は、データ順ｎに基づいて逆スキャン処理を行う。言い換えると、アドレス設定部１４は、逆スキャンテーブルを参照して、データ順ｎに対応したアドレスＡＤ、すなわち、逆量子化処理部１２で求める非零のＤＣＴ係数を記憶させるべきアドレスを算出し、データ記憶部１３及び書込み情報記憶部１５に出力する。
【００２５】
逆量子化処理部１２とアドレス設定部１４とは、同期して動作し、非零のＤＣＴ係数１個に対してアドレスＡＤ１個が出力される。データ記憶部１３及び書込み情報記憶部１５では、ＤＣＴ係数とアドレスＡＤとの組を同時に利用できるようになっている。
【００２６】
データ記憶部１３は、１２ビットのデータを６４個記憶することができ、アドレス０〜６３のそれぞれにデータを１個ずつ記憶する。また、書込み情報記憶部１５は、１ビットのデータを６４個記憶することができ、アドレス０〜６３のそれぞれにデータを１個ずつ記憶する。書込み情報記憶部１５は、各ブロックの処理を開始する前にリセットされており、全アドレスに“０”を記憶している。
【００２７】
データ記憶部１３は、アドレスＡＤで示されたアドレスに非零のＤＣＴ係数を記憶する。書込み情報記憶部１５は、アドレスＡＤで示されたアドレスに書き込みフラグとして“１”をセットする。データ記憶部１３がＤＣＴ係数を１個記憶したのに対応して、アドレス設定部１４は、データ順ｎに“１”を加算する。以下同様にして、１ブロック分のデータを順次処理する。
【００２８】
可変長復号化部１１は、ブロック終了符号ＥＯＢ（end of block)が入力されると１ブロック分のデータが終了したと判断し、ブロック終了符号ＥＯＢをデータ読出部１６に出力する。
【００２９】
データ記憶部１３にＤＣＴ係数を書き込むには、１個のＤＣＴ係数毎に１クロックサイクルの時間が必要である。データ記憶部１３に書き込まれるＤＣＴ係数は非零の係数のみであるので、１ブロック分の６４個のＤＣＴ係数全てを書き込む場合に比べて、書き込みに要する時間は短い。このため、図４（ｃ）で説明したユニットＡの処理に要する時間を短縮することができる。
【００３０】
データ読出部１６は、ブロック終了符号ＥＯＢを受け取ると、データ記憶部１３及び書込み情報記憶部１５から読み出しを開始する。データ記憶部１３及び書込み情報記憶部１５は、それぞれ読み出しポートを例えば４ポート備えており、４個のデータを１クロックサイクルで読み出すことができる。
【００３１】
データ読出部１６は、データ記憶部１３及び書込み情報記憶部１５から同アドレスのデータを同じクロックサイクルにおいて読み出す。データ読出部１６は、読み出したＤＣＴ係数と同アドレスの書き込みフラグの値が“１”であれば、ＤＣＴ係数をそのまま逆離散コサイン変換部１７に出力し、ＤＣＴ係数と同アドレスの書き込みフラグの値が“０”であれば、ＤＣＴ係数を“０”にマスクして逆離散コサイン変換部１７に出力する。
【００３２】
データ読出部１６は、データ記憶部１３及び書込み情報記憶部１５から１ブロック分の６４個のデータを全て読み出すと、読み出し終了情報を書込み情報記憶部１５に出力し、書込み情報記憶部１５は記憶するデータ全てを“０”にリセットする。
【００３３】
逆離散コサイン変換部１７は、ブロック毎にＤＣＴ係数に対して逆離散コサイン変換を行い、復元された画像データを動き補償部１８に出力する。以上の処理をＹ０，Ｙ１，Ｙ２及びＹ３の４個の輝度ブロック、並びにＣｂ、Ｃｒの２個の色差ブロックに対して行う。動き補償部１８は、復元された画像データに対して動き補償処理を行って出力する。
【００３４】
図２は、データ記憶部１３及び書込み情報記憶部１５が記憶するデータの例を示す説明図である。図２（ａ）はデータ記憶部１３が記憶するデータを示し、図２（ｂ）は書込み情報記憶部１５が記憶するデータを示している。
【００３５】
ここでは例として、あるブロックに関して逆量子化処理部１２が出力する非零のＤＣＴ係数の数が２個であり、最初に出力するＤＣＴ係数が“５”、２番目に出力するＤＣＴ係数が“４”であるものとする。
【００３６】
この最初のＤＣＴ係数が出力されるとき、アドレス設定部１４が出力するアドレスＡＤが６であるとすると、データ記憶部１３は、このＤＣＴ係数の値“５”をそのアドレス６に格納する。このとき、書込み情報記憶部１５も、そのアドレス６に書き込みフラグとして“１”を格納する。同様に、２番目のＤＣＴ係数が出力されるとき、アドレス設定部１４が出力するアドレスＡＤが１０であるとすると、データ記憶部１３は、このＤＣＴ係数の値“４”をそのアドレス１０に格納する。このとき、書込み情報記憶部１５も、そのアドレス１０に書き込みフラグとして“１”を格納する。
【００３７】
データ記憶部１３は、１つのブロックに関しての処理毎にリセットされることはないので、そのアドレス６及び１０以外には不要なデータが格納されている。書込み情報記憶部１５は、１つのブロックに関しての処理を始める前にリセットされているので、そのアドレス６及び１０以外には“０”を格納している。
【００３８】
このように、データ記憶部１３と書込み情報記憶部１５とは、同一のアドレスに互いに対応するデータを記憶している。したがって、データ記憶部１３が記憶しているデータのうち、書込み情報記憶部１５が“１”を記憶しているアドレスにはこのブロックにおける非零のＤＣＴ係数が記憶されており、その他のアドレスには不要なデータが記憶されていることがわかる。データ読出部１６は、これらの不要なデータを例えば“０”に置き換えて出力する。
【００３９】
書込み情報記憶部１５は、各アドレスに１ビットの容量を有するのみなので、これを実現する回路の面積は非常に小さなものとなる。
【００４０】
データ記憶部１３が実際にデータを記憶するアドレスは、アドレスＡＤそのものであってもよいし、アドレスＡＤに１対１に対応させた他のアドレスであってもよい。また、書込み情報記憶部１５がデータを記憶するアドレスは、データ記憶部１３で用いるアドレスと同じものでもよいし、データ記憶部１３で用いるアドレスに１対１に対応させた他のアドレスであってもよい。
【００４１】
また、書込み情報記憶部１５は、１ビットのデータを記憶するものとしたが、２ビット以上のデータを記憶するものであってもよい。また、リセット時のデータと書き込みフラグのデータとが区別できるものであれば、これらのデータはそれぞれどのような値であってもよい。例えば、リセット時に全てのアドレスに“１”を書き込み、書き込みフラグの値として“０”を書き込むこととしてもよい。
【００４２】
また、データ読出部１６は、データ記憶部１３及び書込み情報記憶部１５から１ブロック分の６４個のデータを全て読み出すと、読み出し終了情報を書込み情報記憶部１５に出力することとした。この読み出し終了情報を出力するタイミングは、データ読出部１６が１ブロック分のデータを全て読み出してから書込み情報記憶部１５に次のブロックに関するデータが入力されるまでであればいつでもよい。
【００４３】
図３は、図１の画像処理装置における処理についてのフローチャートである。図３は、図１の画像処理装置のうち、可変長復号化部１１と、逆量子化処理部１２と、データ記憶部１３と、アドレス設定部１４と、書込み情報記憶部１５と、データ読出部１６とにおける１ブロック分のデータの処理について表したものである。
【００４４】
図３において、ステップＳ１では、書込み情報記憶部１５をリセットして記憶内容を全て“０”にし、アドレス設定部１４をリセットして、ブロック内のデータ順ｎを“０”とする。
【００４５】
ステップＳ２では、入力ビットストリームに対して可変長復号化を行い、ランデータＲＵＮ及びレベルデータＬＥＶＥＬを求める。
【００４６】
ステップＳ３では、現在処理対象としている復号化されたデータがブロック終了符号ＥＯＢであるか否かを判定する。このデータがブロック終了符号ＥＯＢである場合はステップＳ８に移り、このデータがブロック終了符号ＥＯＢではない場合はステップＳ４に移る。
【００４７】
ステップＳ４では、データ順ｎにランデータＲＵＮの値を加算する。また、求められたデータ順ｎに基づき、逆スキャンテーブルを参照して、ステップＳ５で求める非零のＤＣＴ係数（逆量子化データ）を記憶させるべきアドレスＡＤを求める。
【００４８】
ステップＳ５では、レベルデータＬＥＶＥＬに対して逆量子化処理を行い、非零のＤＣＴ係数を求める。
【００４９】
ステップＳ６では、非零のＤＣＴ係数をデータ記憶部１３のアドレスＡＤに記憶し、アドレスＡＤに対応した書込み情報記憶部１５のアドレスに、書き込みフラグをセットする。
【００５０】
ステップＳ７では、非零のＤＣＴ係数を１個記憶したことに対応してデータ順ｎに１を加算する。その後、ステップＳ３に戻る。
【００５１】
ステップＳ８では、データ記憶部１３からデータを読み出し、書込み情報記憶部１５のデータに基づいて、非零のＤＣＴ係数を記憶したアドレスのデータはそのままとし、非零のＤＣＴ係数を記憶しなかったアドレスのデータは例えば“０”に置き換える。
【００５２】
ステップＳ４，Ｓ５を実行する順序は逆であってもよいし、同時であってもよい。
【００５３】
なお、本実施形態では、アドレス設定部１４は加算を行うインクリメンタを有することとしたが、これに限らず、所定の値からの減算を行うデクリメンタを用いてもよい。
【００５４】
また、逆離散コサイン変換部１７がデータ読出部１６の機能を備えるようにしてもよい。
【００５５】
また、本発明は、ＭＰＥＧ１，ＭＰＥＧ２及びＭＰＥＧ４のいずれの方式で符号化されたデータにも適用可能である。また、ＭＰＥＧ方式には限らず、ＪＰＥＧ等の可変長符号化を行う方式によって符号化されたデータにも適用可能である。
【００５６】
【発明の効果】
本発明によると、可変長復号化後において零係数に対して逆量子化、逆スキャン処理を行う必要がなく、また、逆量子化、逆スキャン処理後に記憶しなければならないデータ数が少ないので、復号化の処理を高速化することができる。特に、データの記憶のために要する時間が短いので、パイプライン処理を行う場合に復号化の処理全体を高速に行うことができる。また、このような処理を行うために必要な記憶容量が小さくて済むので、回路面積をあまり大きくすることなく高速化を図ることができる。
【図面の簡単な説明】
【図１】  本発明の実施形態に係る画像処理装置のブロック図である。
【図２】  データ記憶部及び書込み情報記憶部が記憶するデータの例を示す説明図である。
【図３】  図１の画像処理装置における処理についてのフローチャートである。
【図４】  従来の画像処理装置における処理についての説明図である。
【図５】  従来の画像処理装置のブロック図である。
【図１】
0003940672.tif 000002
【図２】
0003940672.tif 000003
【図３】
0003940672.tif 000004
【図４】
0003940672.tif 000005
【図５】
0003940672.tif 000006