(57)【特許請求の範囲】
【請求項１】
ブロック毎に圧縮画像の復号を行い、参照画像に基づいて圧縮されたブロックについては動き補償に呼応する補償処理を含む復号を行う画像復号装置であって、
参照画像群を格納しているメモリと、
参照画像を格納するための入力バッファを有し、入力バッファに格納された参照画像を参照して逐次１つのブロックについての補償処理を行う補償手段と、
各サイクルタイム内に、逐次、１つのブロックに対応する参照画像がある限り全ての参照画像を前記メモリから読み出して前記入力バッファに書き込む参照画像転送手段と、
各サイクルタイムにおいて前記参照画像転送手段が前記メモリから読み出す参照画像の総量が所定基準量より多いか否かを判定する判定手段と、
前記判定手段により多いと判定されたサイクルタイム内において、参照画像の読み出しのためのアクセス以外の、前記メモリへのアクセスを抑止する抑止手段とを備える
ことを特徴とする画像復号装置。
【請求項２】
前記画像復号装置は、更に、
逐次、参照画像に基づいて圧縮された１つのブロックに対応する動きベクトルを取得する取得手段を備え、
前記補償手段は、前記参照画像を参照して、前記取得手段により取得された動きベクトルに基づいて、ブロックについての補償処理を行い、
前記参照画像転送手段が転送する、１つのブロックに対応する全ての参照画像それぞれは、前記取得手段により取得された当該ブロックに対応する各動きベクトルにより特定されるものであり、
前記判定手段は、各サイクルタイムにおいて前記メモリから読み出すブロックに対応する参照画像の総量が所定基準量より多いか否かを、前記取得手段により取得された当該ブロックに対応する動きベクトルの数が所定の閾値より多いか否かにより判定する
ことを特徴とする請求項１記載の画像復号装置。
【請求項３】
前記画像復号装置は、更に、
補償手段により補償処理の行われた後のブロックについての復号画像を格納するための出力バッファと、
逐次、１つのブロックについての復号画像を、前記出力バッファから読み出して前記メモリに書き込む復号画像転送手段とを備え、
前記抑止手段は、前記判定手段により多いと判定されたサイクルタイム内において、前記復号画像転送手段による前記メモリへのアクセスを抑止する
ことを特徴とする請求項２記載の画像復号装置。
【請求項４】
前記出力バッファの容量は、２ブロック分の復号画像を格納可能な容量であり、
前記復号画像転送手段は、前記抑止手段により抑止されたサイクルタイムの次のサイクルタイム内においては、連続して２つ分のブロックについての復号画像を、前記出力バッファから読み出して前記メモリに書き込み、それ以外のサイクルタイム内においては、１つ分のブロックについての復号画像を、前記出力バッファから読み出して前記メモリに書き込む
ことを特徴とする請求項３記載の画像復号装置。
【請求項５】
前記メモリは、参照画像の他に、ブロック毎に参照画像に基づいて圧縮されたブロックであるか否かを示す情報と動きベクトルとを含むブロックヘッダ情報とブロックデータとを含んでなるデータが可変長符号化されてなる符号化ストリームを格納しており、
前記画像復号装置は、更に、
符号化ストリームが入力されると可変長復号する可変長復号手段と、
前記メモリから符号化ストリームを逐次読み出して前記可変長復号手段に入力するストリーム転送手段と、
逐次伝達されたブロックのブロックデータに参照画像を参照しない復号処理を施すイントラ処理手段とを備え、
前記取得手段は、前記可変長復号手段により可変長復号された結果から前記動きベクトルの取得を行い、更に、可変長復号手段により可変長復号された結果のブロックデータを、参照画像に基づいて圧縮されたブロックについては前記補償手段に伝達し、参照画像に基づいて圧縮されていないブロックについては前記イントラ処理手段に伝達し、
前記出力バッファには、前記補償手段により補償処理の行われた後のブロックについての復号画像の他に、前記イントラ処理手段により復号処理が施された後のブロックについての復号画像が格納される
ことを特徴とする請求項４記載の画像復号装置。
【請求項６】
前記ブロックは、マクロブロックである
ことを特徴とする請求項５記載の画像復号装置。
【請求項７】
前記メモリは、参照画像の他に、ブロック毎に参照画像に基づいて圧縮されたブロックであるか否かを示す情報と動きベクトルとを含むブロックヘッダ情報とブロックデータとを含んでなるデータが可変長符号化されてなる符号化ストリームを格納しており、
前記画像復号装置は、更に、
符号化ストリームデータが入力されると可変長復号する可変長復号手段と、
前記メモリから符号化ストリームを逐次読み出して前記可変長復号手段に入力するストリーム転送手段と、
逐次伝達されたブロックのブロックデータに参照画像を参照しない復号処理を施すイントラ処理手段とを備え、
前記取得手段は、前記可変長復号手段により可変長復号された結果から前記動きベクトルの取得を行い、更に、可変長復号手段により可変長復号された結果のブロックデータを、参照画像に基づいて圧縮されたブロックについては前記補償手段に伝達し、参照画像に基づいて圧縮されていないブロックについては前記イントラ処理手段に伝達し、
前記抑止手段は、前記判定手段により多いと判定されたサイクルタイム内において、前記ストリーム転送手段による前記メモリへのアクセスを抑止する
ことを特徴とする請求項２記載の画像復号装置。
【請求項８】
ブロック毎に圧縮画像の復号を行い、参照画像に基づいて圧縮されたブロックについては動き補償に呼応する補償処理を含む復号を行う画像復号装置であって、
参照画像群を格納しているメモリと、
参照画像を格納するための、２ブロック分の参照画像の格納に足りる容量の入力バッファを有し、入力バッファに格納された参照画像を参照して逐次１つのブロックについての補償処理を行う補償手段と、
連続した２サイクルタイム内に、逐次、２つのブロックそれぞれに対応する参照画像がある限り全ての参照画像を前記メモリから読み出して前記入力バッファに書き込む参照画像転送手段とを備える
ことを特徴とする画像復号装置。
【請求項９】
前記画像復号装置は、更に、前記補償手段による補償処理が行われた後の復号画像を処理する処理手段を備え、
前記処理手段及び前記補償手段のうち１手段は、前記参照画像転送手段と並列にサイクルタイム毎に１つのブロックに対応する処理をし、かつ、前記参照画像転送手段により、あるサイクルタイム内に転送開始されたブロックに対応する処理を、当該サイクルタイムの２つ後のサイクルタイム内に実行し始める
ことを特徴とする請求項８記載の画像復号装置。
【請求項１０】
前記ブロックは、マクロブロックである
ことを特徴とする請求項９記載の画像復号装置。
【請求項１１】
参照画像群とともにメモリに格納された圧縮画像についてブロック毎に復号を行い、参照画像に基づいて圧縮されたブロックについては動き補償に呼応する補償処理を含む復号を行う画像復号方法であって、
各サイクルタイム内に、逐次、１つのブロックに対応する参照画像がある限り全ての参照画像を、前記メモリから読み出し所定のバッファに書き込む参照画像転送ステップと、
各サイクルタイムにおいて前記参照画像転送ステップにより前記メモリから読み出す参照画像の総量が所定基準量より多いか否かを判定する判定ステップと、
前記判定ステップにより多いと判定されたサイクルタイム内において、参照画像の読み出しのためのアクセス以外の、前記メモリへのアクセスを抑止する抑止ステップと、
前記所定のバッファに格納された参照画像を参照して逐次１つのブロックについての補償処理を行う補償ステップとを含む
ことを特徴とする画像復号方法。
【請求項１２】
参照画像群とともにメモリに格納された圧縮画像についてブロック毎に復号を行い、参照画像に基づいて圧縮されたブロックについては動き補償に呼応する補償処理を含む復号を行う画像復号方法であって、
連続した２サイクルタイム内に、逐次、２つのブロックそれぞれに対応する参照画像がある限り全ての参照画像を前記メモリから読み出して所定のバッファに書き込む画像転送ステップと、
前記所定のバッファに格納された参照画像を参照して逐次１つのブロックについての補償処理を行う補償ステップと並列に実行する
ことを特徴とする画像復号方法。
【請求項１３】
ブロック毎に圧縮画像の復号を行い、参照画像に基づいて圧縮されたブロックについては動き補償に呼応する補償処理を含む復号を行う半導体集積回路であって、
参照画像群を格納しているメモリと、
参照画像を格納するための入力バッファを有し、入力バッファに格納された参照画像を参照して逐次１つのブロックについての補償処理を行う補償回路部と、
各サイクルタイム内に、逐次、１つのブロックに対応する参照画像がある限り全ての参照画像を、前記メモリから読み出して前記入力バッファに書き込む参照画像転送回路部と、
各サイクルタイムにおいて前記参照画像転送回路部が前記メモリから読み出す参照画像の総量が所定基準量より多いか否かを判定する判定回路部と、
前記判定回路部により多いと判定されたサイクルタイム内において、参照画像の読み出しのためのアクセス以外の、前記メモリへのアクセスを抑止する抑止回路部とを備える
ことを特徴とする半導体集積回路。
【請求項１４】
ブロック毎に圧縮画像の復号を行い、参照画像に基づいて圧縮されたブロックについては動き補償に呼応する補償処理を含む復号を行う半導体集積回路であって、
参照画像群を格納しているメモリと、
参照画像を格納するための、２ブロック分の参照画像の格納に足りる容量の入力バッファを有し、入力バッファに格納された参照画像を参照して逐次１つのブロックについての補償処理を行う補償回路部と、
連続した２サイクルタイム内に、逐次、２つのブロックそれぞれに対応する参照画像がある限り全ての参照画像を前記メモリから読み出して前記入力バッファに書き込む参照画像転送回路部とを備える
ことを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮画像を復号つまり伸長する画像復号装置に関し、特に、ＭＰＥＧ４ＡＶＣ規格（Moving Picture Experts Group phase4 Advanced Video Coding、ＩＳＯ１４４９６−１０）に準拠した圧縮画像の復号に適した画像復号技術に関する。
【背景技術】
【０００２】
従来、動画像を伝送する際又は記録媒体に記録する際には、ＭＰＥＧ（Moving Picture Experts Group）規格、例えばＭＰＥＧ２ビデオ規格（ＩＳＯ／ＩＥＣ１８８１８−２）やＭＰＥＧ４ビジュアル規格（ＩＳＯ／ＩＥＣ１４４９６−２）に従った圧縮を施す技術が知られており、また、これらの規格に従って圧縮された画像を復号する画像復号装置も知られている。
【０００３】
このような画像復号装置は、大容量のＤＲＡＭ（Dynamic Random Access Memory）等のメモリに取り込んだ圧縮画像に係る可変長符号化されたストリームの復号を、そのストリームをメモリから読み出して可変長復号して動きベクトルやブロックデータ等をマクロブロック（ＭＢ：Macroblock）毎に抽出し、マクロブロック毎に、そのメモリ内の、動きベクトルに応じて特定される参照画像を参照してブロックデータに対して、いわゆる動き検出の逆処理に相当する補償処理（以下、この処理を「動き補償処理」という。）を行い、動き補償処理の結果として得られる復号画像をメモリに記録するという手順で実行する。ここで、復号されメモリに格納された復号画像群は、後続の圧縮画像の復号の際に参照画像群として利用される。
【０００４】
なお、従来の画像復号装置は、圧縮画像の復号を高速に行うために、マクロブロック単位で復号に必要な各処理を行う各構成要素を並列に動作させるパイプライン制御を行う。
図１３は、従来の画像復号装置におけるパイプライン制御の実行シーケンスを例示する図である。同図では、可変長復号（ＶＬＤ：Variable-LengthDecoder）処理ユニットと動き補償処理ユニットとＤＭＡ（Direct Memory Access）コントローラとが並列動作可能であり、ＤＭＡコントローラは、１マクロブロック分の可変長符号化されたストリームをメモリから可変長復号処理ユニットにＤＭＡ転送するストリーム転送処理と、１マクロブロックに対応する参照画像をメモリから動き補償処理ユニットにＤＭＡ転送する参照画像転送処理と、動き補償処理ユニットにより得られた１マクロブロックに対応する復号画像をメモリにＤＭＡ転送する復号画像転送処理とを、パイプライン制御における同期周期としての各サイクルタイム内で時分割して実行する。ここでは、個々のサイクルタイムをタイムスロット（ＴＳ）ともいう。
【０００５】
図１３に例示したパイプライン制御によれば、ｎを任意の整数としており、ＴＳ＝ｎつまりｎ番目のタイムスロットにおいては、ＭＢ＃ｎつまりｎ番目のマクロブロックに対応するストリーム転送処理がＤＭＡコントローラにより実行され、そのマクロブロックに対応する可変長復号処理がＴＳ＝ｎ＋１つまりｎ＋１番目のタイムスロットにおいて可変長復号処理ユニットにより実行され、そのマクロブロックに対応する参照画像転送処理がｎ＋２番目のタイムスロットにおいてＤＭＡコントローラにより実行され、そのマクロブロックに対応する動き補償処理がｎ＋３番目のタイムスロットにおいて動き補償処理ユニットにより実行され、そのマクロブロックに対応する復号画像転送処理がｎ＋４番目のタイムスロットにおいてＤＭＡコントローラにより実行される。
【０００６】
このように、従来の画像復号装置は、参照画像転送処理、可変長復号処理、動き補償処理等を実行する各構成要素が１マクロブロック単位の処理に要する時間の最大値でありかつ画像復号装置に要求される１マクロブロック単位の復号性能を満足するようなサイクルタイムを定めており、各構成要素がサイクルタイム毎に同期して処理を実行するようにパイプライン制御を実施している。即ち、従来、１マクロブロック単位の処理時間を基準として最適にパイプライン制御するために、各マクロブロックに対応する参照画像を動き補償処理ユニットに供給するためのメモリアクセスである参照画像転送処理は、それぞれ１サイクルタイムで行われていた。なお、ＭＰＥＧ２ビデオ規格やＭＰＥＧ４ビジュアル規格においては１マクロブロックに対応する動きベクトルの数の上限が定まるものであったため、その動きベクトルの数に相当する数の参照画像の量を概算する等により画像復号装置におけるメモリバスバンド幅に関する要件が定まった。
【０００７】
ところで、近年策定されたＭＰＥＧ４ＡＶＣ規格（非特許文献１参照）は、対象画像についてスケーラビリティを有し、ＱＣＩＦ（Quarter CommonIntermediate Format）のような小さい画像からＨＤ（High Definition）画像のような大きい画像までを対象とし、画像の大きさに基づいて複数のレベルに区分した内容の規格となっている。１マクロブロックに対応する動きベクトルの最大値はＭＰＥＧ２ビデオ規格では４本であったのに対して、ＭＰＥＧ４ＡＶＣ規格では３２本と増加している。これにより、動画像の圧縮に際して、動画の時間軸方向の冗長性の削減を一層効果的に行うことができるようになる。但し、ＨＤ画像のような大きな画像に対応するレベルにおいては、１マクロブロックに対応する動きベクトルの数が増大したものの、動画再生のための復号処理における演算量を一定範囲に抑制すべきとの見地等から、その１マクロブロックとその前又は後のマクロブロックとの間での動きベクトルの数の合計について上限が規定されている。
【非特許文献１】ＩＳＯ／ＩＥＣ  １４４９６−１０  Information technology - Coding of audio-visualobjects - Part 10: Advanced Video Coding
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述した従来の画像復号装置を、ＭＰＥＧ４ＡＶＣ規格の大きな画像に対応するレベルについての規定に準拠して圧縮された画像の復号を行えるようにしようとすれば、１サイクルタイム内において従来の２倍以上の量の参照画像をメモリから動き補償処理ユニットに転送し得ることに対処するため、メモリバスバンド幅をかなり大きくする必要がある。このため画像格納用の大容量のメモリは、例えば一層高い周波数で動作するものである必要があり、この結果、画像復号装置の製造コストが大きく上昇してしまう。
【０００９】
そこで、本願は上記問題に鑑みてなされたものであり、ＭＰＥＧ４ＡＶＣ規格の大きな画像に対応するレベルの規定に準拠して圧縮された画像を復号可能な画像復号装置であって、必要なメモリバスバンド幅を抑制するための構成を備える画像復号装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明に係る画像復号装置は、ブロック毎に圧縮画像の復号を行い、参照画像に基づいて圧縮されたブロックについては動き補償に呼応する補償処理を含む復号を行う画像復号装置であって、参照画像群を格納しているメモリと、参照画像を格納するための入力バッファを有し、入力バッファに格納された参照画像を参照して逐次１つのブロックについての補償処理を行う補償手段と、各サイクルタイム内に、逐次、１つのブロックに対応する参照画像がある限り全ての参照画像を前記メモリから読み出して前記入力バッファに書き込む参照画像転送手段と、各サイクルタイムにおいて前記参照画像転送手段が前記メモリから読み出す参照画像の総量が所定基準量より多いか否かを判定する判定手段と、前記判定手段により多いと判定されたサイクルタイム内において、参照画像の読み出しのためのアクセス以外の、前記メモリへのアクセスを抑止する抑止手段とを備えることを特徴とする。
【００１１】
ここで、サイクルタイムは、周期的な所定時間分の期間であり、例えばパイプライン制御における単位時間である。
【発明の効果】
【００１２】
上述の構成によって、本発明に係る画像復号装置は、メモリからの参照画像の読み出し量が多いサイクルタイム内においては、参照画像の読み出しの他のメモリアクセスを抑止するため、サイクルタイム内での最大データ転送量を抑えることができ、これによりメモリバスバンド幅を抑えることが可能になる。
なお、コスト削減のためにメモリ個数を抑えて例えば単一のメモリを用いるとして動き検出の逆処理に相当する補償処理等を行って動画像を復号する場合には、そのメモリに対して、参照画像を読み出すためのメモリアクセスの他に、後に参照画像として用いられ得る復号画像の書き込みのためのメモリアクセスや、圧縮画像の符号化ストリームを読み出すためのメモリアクセス等が発生することになるところ、本発明に係る画像復号装置によれば、参照画像の読み出し以外のこれらのメモリアクセスの少なくとも一部をあるサイクルタイムにおいて一時的に抑止することになる。
【００１３】
また、画像復号装置において例えばマクロブロック単位等のブロック単位で独立して処理を行うことができることに基づき適切にパイプライン制御を行った場合に、サイクルタイムにおいてメモリとの間での最大のデータ転送量の転送を行う必要があるものが、参照画像についての転送であり、また、ＭＰＥＧ４ＡＶＣ規格の大きな画像に対応するレベルの規定では２マクロブロック分の動きベクトル数の上限が定められていることに鑑みれば、本発明に係る画像復号装置によりあるサイクルタイムＡ内において一時的に抑止されたメモリアクセスについては、参照画像についてのデータ転送量が少なくなる次のサイクルタイムＢにおいて実施すれば足りるようになる。従って、本発明に係る画像復号装置が、あるサイクルタイムであるメモリアクセスを抑止したことにより特段の問題が生じるわけではない。
【００１４】
ここで、前記画像復号装置は、更に、逐次、参照画像に基づいて圧縮された１つのブロックに対応する動きベクトルを取得する取得手段を備え、前記補償手段は、前記参照画像を参照して、前記取得手段により取得された動きベクトルに基づいて、ブロックについての補償処理を行い、前記参照画像転送手段が転送する、１つのブロックに対応する全ての参照画像それぞれは、前記取得手段により取得された当該ブロックに対応する各動きベクトルにより特定されるものであり、前記判定手段は、各サイクルタイムにおいて前記メモリから読み出すブロックに対応する参照画像の総量が所定基準量より多いか否かを、前記取得手段により取得された当該ブロックに対応する動きベクトルの数が所定の閾値より多いか否かにより判定することとしてもよい。
【００１５】
これにより、動きベクトルの数を得て所定の閾値と比較するという簡易な構成により参照画像の総量が所定基準量より多いか否かを間接的に判定することができるようになる。
また、前記画像復号装置は、更に、補償手段により補償処理の行われた後のブロックについての復号画像を格納するための出力バッファと、逐次、１つのブロックについての復号画像を、前記出力バッファから読み出して前記メモリに書き込む復号画像転送手段とを備え、前記抑止手段は、前記判定手段により多いと判定されたサイクルタイム内において、前記復号画像転送手段による前記メモリへのアクセスを抑止することとしてもよい。
【００１６】
これにより、必ずしも１マクロブロック単位で迅速にメモリに書き込む必要性が低い復号画像をメモリに書き込むためのメモリアクセスを抑止制御対象とすることで、圧縮画像の復号を分担するＶＬＤ処理ユニットや動き補償処理ユニット等の各ユニット間の処理時間の関係等を特段変更する必要もなく比較的容易にメモリバスバンド幅の抑制をすることができるようになる。
【００１７】
また、前記出力バッファの容量は、２ブロック分の復号画像を格納可能な容量であり、前記復号画像転送手段は、前記抑止手段により抑止されたサイクルタイムの次のサイクルタイム内においては、連続して２つ分のブロックについての復号画像を、前記出力バッファから読み出して前記メモリに書き込み、それ以外のサイクルタイム内においては、１つ分のブロックについての復号画像を、前記出力バッファから読み出して前記メモリに書き込むこととしてもよい。
【００１８】
これにより、あるサイクルタイムで抑止された復号画像のメモリへの書き込みは、参照画像の転送量が相対的に少ないこととなる次のサイクルタイムで行われるので、フレーム単位での画像の復号時間をほとんど増大させることなく圧縮画像の復号が行えるようになる。
また、前記メモリは、参照画像の他に、ブロック毎に参照画像に基づいて圧縮されたブロックであるか否かを示す情報と動きベクトルとを含むブロックヘッダ情報とブロックデータとを含んでなるデータが可変長符号化されてなる符号化ストリームを格納しており、前記画像復号装置は、更に、符号化ストリームが入力されると可変長復号する可変長復号手段と、前記メモリから符号化ストリームを逐次読み出して前記可変長復号手段に入力するストリーム転送手段と、逐次伝達されたブロックのブロックデータに参照画像を参照しない復号処理を施すイントラ処理手段とを備え、前記取得手段は、前記可変長復号手段により可変長復号された結果から前記動きベクトルの取得を行い、更に、可変長復号手段により可変長復号された結果のブロックデータを、参照画像に基づいて圧縮されたブロックについては前記補償手段に伝達し、参照画像に基づいて圧縮されていないブロックについては前記イントラ処理手段に伝達し、前記出力バッファには、前記補償手段により補償処理の行われた後のブロックについての復号画像の他に、前記イントラ処理手段により復号処理が施された後のブロックについての復号画像が格納されることとしてもよい。
【００１９】
また、前記メモリは、参照画像の他に、ブロック毎に参照画像に基づいて圧縮されたブロックであるか否かを示す情報と動きベクトルとを含むブロックヘッダ情報とブロックデータとを含んでなるデータが可変長符号化されてなる符号化ストリームを格納しており、前記画像復号装置は、更に、符号化ストリームデータが入力されると可変長復号する可変長復号手段と、前記メモリから符号化ストリームを逐次読み出して前記可変長復号手段に入力するストリーム転送手段と、逐次伝達されたブロックのブロックデータに参照画像を参照しない復号処理を施すイントラ処理手段とを備え、前記取得手段は、前記可変長復号手段により可変長復号された結果から前記動きベクトルの取得を行い、更に、可変長復号手段により可変長復号された結果のブロックデータを、参照画像に基づいて圧縮されたブロックについては前記補償手段に伝達し、参照画像に基づいて圧縮されていないブロックについては前記イントラ処理手段に伝達し、前記抑止手段は、前記判定手段により多いと判定されたサイクルタイム内において、前記ストリーム転送手段による前記メモリへのアクセスを抑止することとしてもよい。
【００２０】
これにより、単位時間あたりのメモリとの間でのデータ転送量が参照画像に比べて一般に低い符号化ストリームに関してのメモリアクセスが抑止制御の対象となるため、あるサイクルタイムで抑止された分を次のサイクルタイムで転送してもメモリバスバンド幅を増大しなければならない要因とはならず、抑止の結果としてメモリバスバンド幅の抑制が実現できるようになる。
【００２１】
また、本発明に係る画像復号装置は、ブロック毎に圧縮画像の復号を行い、参照画像に基づいて圧縮されたブロックについては動き補償に呼応する補償処理を含む復号を行う画像復号装置であって、参照画像群を格納しているメモリと、参照画像を格納するための、２ブロック分の参照画像の格納に足りる容量の入力バッファを有し、入力バッファに格納された参照画像を参照して逐次１つのブロックについての補償処理を行う補償手段と、連続した２サイクルタイム内に、逐次、２つのブロックそれぞれに対応する参照画像がある限り全ての参照画像を前記メモリから読み出して前記入力バッファに書き込む参照画像転送手段とを備えることを特徴とする。
【００２２】
これにより、１マクロブロック分に対応する参照画像の最大データ転送量を１サイクルタイム内で転送可能なようにメモリバスバンド幅を決定しなくても良くなるため、その分、メモリバスバンド幅についての要件を緩和することができるようになる。
ここで、前記画像復号装置は、更に、前記補償手段による補償処理が行われた後の復号画像を処理する処理手段を備え、前記処理手段及び前記補償手段のうち１手段は、前記参照画像転送手段と並列にサイクルタイム毎に１つのブロックに対応する処理をし、かつ、前記参照画像転送手段により、あるサイクルタイム内に転送開始されたブロックに対応する処理を、当該サイクルタイムの２つ後のサイクルタイム内に実行し始めることとしてもよい。
【００２３】
これにより、各マクロブロックに対応する参照画像に依存する処理を適切なタイミングで処理することができるようになる。
また、本発明に係る画像復号方法は、参照画像群とともにメモリに格納された圧縮画像についてブロック毎に復号を行い、参照画像に基づいて圧縮されたブロックについては動き補償に呼応する補償処理を含む復号を行う画像復号方法であって、各サイクルタイム内に、逐次、１つのブロックに対応する参照画像がある限り全ての参照画像を、前記メモリから読み出し所定のバッファに書き込む参照画像転送ステップと、各サイクルタイムにおいて前記参照画像転送ステップにより前記メモリから読み出す参照画像の総量が所定基準量より多いか否かを判定する判定ステップと、前記判定ステップにより多いと判定されたサイクルタイム内において、参照画像の読み出しのためのアクセス以外の、前記メモリへのアクセスを抑止する抑止ステップと、前記所定のバッファに格納された参照画像を参照して逐次１つのブロックについての補償処理を行う補償ステップとを含むことを特徴とする。
【００２４】
これにより、メモリからの参照画像の読み出し量が多いサイクルタイム内においては、他のメモリアクセスを抑止するため、圧縮画像の復号に係るパイプライン制御におけるサイクルタイム内での最大データ転送量を抑えることができ、これによりメモリバスバンド幅を抑えることが可能になる。
また、本発明に係る画像復号方法は、参照画像群とともにメモリに格納された圧縮画像についてブロック毎に復号を行い、参照画像に基づいて圧縮されたブロックについては動き補償に呼応する補償処理を含む復号を行う画像復号方法であって、連続した２サイクルタイム内に、逐次、２つのブロックそれぞれに対応する参照画像がある限り全ての参照画像を前記メモリから読み出して所定のバッファに書き込む画像転送ステップと、前記所定のバッファに格納された参照画像を参照して逐次１つのブロックについての補償処理を行う補償ステップと並列に実行することを特徴とする。
【００２５】
これにより、圧縮画像の復号を各パイプラインステージが１マクロブロック分に相当する処理を基本的には１サイクルタイム内で実行するようなパイプライン制御により実現する場合において、参照画像のメモリからの転送については１サイクルタイム内で完了する制約を外しているため、１マクロブロック分に対応する参照画像の最大データ転送量を１サイクルタイム内で転送可能なようにメモリバスバンド幅を決定しなくても良くなり、その分、メモリバスバンド幅についての要件を緩和することができるようになる。
【００２６】
また、本発明に係る半導体集積回路は、ブロック毎に圧縮画像の復号を行い、参照画像に基づいて圧縮されたブロックについては動き補償に呼応する補償処理を含む復号を行う半導体集積回路であって、参照画像群を格納しているメモリと、参照画像を格納するための入力バッファを有し、入力バッファに格納された参照画像を参照して逐次１つのブロックについての補償処理を行う補償回路部と、各サイクルタイム内に、逐次、１つのブロックに対応する参照画像がある限り全ての参照画像を、前記メモリから読み出して前記入力バッファに書き込む参照画像転送回路部と、各サイクルタイムにおいて前記参照画像転送回路部が前記メモリから読み出す参照画像の総量が所定基準量より多いか否かを判定する判定回路部と、前記判定回路部により多いと判定されたサイクルタイム内において、参照画像の読み出しのためのアクセス以外の、前記メモリへのアクセスを抑止する抑止回路部とを備えることを特徴とする。
【００２７】
この半導体集積回路においては、メモリからの参照画像の読み出し量が多いサイクルタイム内においては、参照画像の読み出しの他のメモリアクセスを抑止するため、サイクルタイム内での最大データ転送量を抑えることができ、これによりメモリバスバンド幅を抑えることが可能になる。
また、本発明に係る半導体集積回路は、ブロック毎に圧縮画像の復号を行い、参照画像に基づいて圧縮されたブロックについては動き補償に呼応する補償処理を含む復号を行う半導体集積回路であって、参照画像群を格納しているメモリと、参照画像を格納するための、２ブロック分の参照画像の格納に足りる容量の入力バッファを有し、入力バッファに格納された参照画像を参照して逐次１つのブロックについての補償処理を行う補償回路部と、連続した２サイクルタイム内に、逐次、２つのブロックそれぞれに対応する参照画像がある限り全ての参照画像を前記メモリから読み出して前記入力バッファに書き込む参照画像転送回路部とを備えることを特徴とする。
【００２８】
この半導体集積回路においては、１マクロブロック分に対応する参照画像の最大データ転送量を１サイクルタイム内で転送可能なようにメモリバスバンド幅を決定しなくても良くなるため、その分、メモリバスバンド幅についての要件を緩和することができるようになる。
【発明を実施するための最良の形態】
【００２９】
＜実施形態１＞
以下、本発明の実施形態１に係る画像復号装置１００について説明する。
＜構成＞
図１は、本発明の実施形態１に係る画像復号装置１００の構成図である。
画像復号装置１００は、同図に示すように、制御部１１０、メモリ１２０、ＤＭＡコントローラ１３０、可変長復号（ＶＬＤ）処理ユニット１４０、逆周波数変換処理ユニット１５０、動き補償処理ユニット１６０、イントラ処理ユニット１７０、デブロックフィルタ処理ユニット１８０及び出力バッファ１９０を備える。
【００３０】
ここで、メモリ１２０は、圧縮された画像等が可変長符号化されてなる符号化ストリームを格納し、また、参照画像を格納するためのＤＲＡＭである。なお、ここでは、画像は、表示される画像内容を表現している画像データをも含む概念を示す用語として用いる。
ＤＭＡコントローラ１３０は、制御部１１０からメモリアドレス指定等を伴う指示を受けつけるキューを有し、受け付けた指示に従ってメモリ１２０と、ＶＬＤ処理ユニット１４０、動き補償処理ユニット１６０或いは出力バッファ１９０との間でのデータ転送を行う機能を担う。
【００３１】
ＶＬＤ処理ユニット１４０は、圧縮画像のストリームデータが可変長符号化されてなる符号化ストリームが入力されると、符号化ストリームを可変長復号して、圧縮画像のストリームデータからマクロブロックタイプと動きベクトルとを抽出し制御部に伝達するとともに、マクロブロックの実体であり周波数変換されたいわゆる差分値を表現するブロックデータを抽出し逆周波数変換処理ユニット１５０に伝達する機能を有する。なお、図２にデータ構造を示すように圧縮画像のストリームデータは、Ｉピクチャ、Ｐピクチャ、Ｂピクチャといったピクチャタイプ等を示すスライスヘッダ２１０に続いてマクロブロック毎にマクロブロックヘッダ２２０及びブロックデータ２３０が複数連続するように構成されている。このマクロブロックヘッダ２２０は、参照画像に基づいてインターモードで圧縮されたインターマクロブロックか、参照画像に基づかずにイントラモードで圧縮されたイントラマクロブロックかの別を示すマクロブロックタイプと、動きベクトルとを含む。
【００３２】
逆周波数変換処理ユニット１５０は、ＶＬＤ処理ユニット１４０から伝えられるブロックデータを逆周波数変換して得られる差分値を出力する機能を有する。
動き補償処理ユニット１６０は、入力バッファ１６１を有し、入力バッファ１６１に蓄積された参照画像からクォータペル精度の画像を算出して算出した画像と逆周波数変換処理ユニット１５０が出力するマクロブロックについての差分値とを加算することにより画像を再構成する補償処理、つまりいわゆる動き補償の逆処理に相当する処理（ここでは「動き補償処理」という。）を実行する機能を有する。
【００３３】
イントラ処理ユニット１７０は、イントラ処理を実施する機能、即ち逆周波数変換処理ユニット１５０が出力するそのマクロブロックについての差分値とそのマクロブロックの周辺画像とを加算することにより画像を再構成する機能を有する。
デブロックフィルタ処理ユニット１８０は、動き補償処理ユニット１６０又はイントラ処理ユニット１７０が出力する再構成画像に対して、デブロックフィルタ処理を実施する機能、即ちブロックノイズを抑圧するためのデブロックフィルタをかけることにより復号画像を得て出力バッファ１９０に送出する機能を有する。
【００３４】
出力バッファ１９０は、復号画像を２マクロブロック分格納するに足りる容量を有するバッファメモリである。
また、制御部１１０は、ハードウェア面においては、プロセッサ、ＲＯＭ（Read Only Memory）、タイマー等を含んで構成され、ＲＯＭに格納されたプログラムをプロセッサが実行することにより、画像復号装置１００の各構成要素に、マクロブロック単位の復号に係る各処理を所定のサイクルタイム毎に並列に行わせるパイプライン制御を実現するものであり、具体的にはＤＭＡコントローラ１３０、ＶＬＤ処理ユニット１４０、逆周波数変換処理ユニット１５０、動き補償処理ユニット１６０、イントラ処理ユニット１７０及びデブロックフィルタ処理ユニット１８０を制御し、機能面における構成要素として、ストリーム転送制御部１１１、取得部１１２、参照画像転送制御部１１３、復号画像転送制御部１１４及び抑止判定部１１６を有する。
【００３５】
ここで、ストリーム転送制御部１１１は、メモリ１２０からＶＬＤ処理ユニット１４０へと符号化ストリームを転送させるようＤＭＡコントローラ１３０への指示を行う機能を有する。
取得部１１２は、ＶＬＤ処理ユニット１４０から動きベクトル及びマクロブロックタイプを取得し参照画像転送制御部１１３に伝え、動きベクトルの数をカウントしその動きベクトルの数を抑止判定部１１６に伝える機能を有する。
【００３６】
参照画像転送制御部１１３は、マクロブロックタイプがインターマクロブロックの場合には各動きベクトルに応じて各参照画像の位置を特定して、各参照画像のアドレスを指定して各サイクルタイムにおいて１つのマクロブロックに対応する全ての参照画像をメモリ１２０から動き補償処理ユニット１６０の入力バッファ１６１へ転送させるようＤＭＡコントローラ１３０への指示を行う機能を有する。
【００３７】
復号画像転送制御部１１４は、１サイクルタイム内で出力バッファ１９０から復号画像がメモリ１２０へと送出されなかったか否かを示す情報を格納する未出力情報格納部１１５を含み、出力バッファ１９０内の復号画像をメモリ１２０へと転送させるようＤＭＡコントローラ１３０への指示を行う機能を有する。
抑止判定部１１６は、動きベクトル数に関する閾値を予め記憶している閾値記憶部１１７を含み、取得部１１２から伝えられた動きベクトルの数とその閾値とを比較して、動きベクトルの数が閾値を超えたか否かを判定し、判定結果に応じて、復号画像のメモリ１２０への転送指示を復号画像転送制御部１１４が行うことを抑止する機能を有する。なお、抑止判定部１１６における動きベクトルの数が閾値を超えたか否かの判定は、その動きベクトルに対応する参照画像のデータ転送量が所定量より多いか否かを間接的に判定することになり、あるサイクルタイムにおける参照画像のデータ転送量が所定量より多い場合に、抑止判定部１１６は、そのサイクルタイムにおける復号画像のメモリ１２０への書き込み指示を抑止する。
【００３８】
図３は、マクロブロックと参照画像との関係を示す図である。
圧縮画像３００を区分してなる複数のマクロブロックは、輝度信号と色差信号とから構成されるところ、同図では輝度信号について示しており、輝度信号については１つのマクロブロックは１６画素×１６画素分の信号である。１つのマクロブロック３１１が、圧縮画像３００とは別時間にあたる画像フレームである参照画像３２０のうちの一部の参照画像３２１と類似している場合に、動きベクトル３０１は、マクロブロック３１１と参照画像３２１との空間的位置の差分を示す。なお、参照画像３２０は、参照画像３２１等の部分的な参照画像の集合に相当する。
【００３９】
なお、閾値記憶部１１７には、次の数１を満たすうちで最小の整数である閾値Ｓが記憶されている。
［数１］  ｆ（Ｓ）≧ｆ（Ｖ−Ｓ）＋Ｃ
ここで、関数ｆ（ｘ）は、動きベクトルの数がｘである場合における参照画像の総ビット量を示す関数であり、Ｖは、連続した２マクロブロックにわたっての動きベクトルの上限数であり、Ｃは１マクロブロック分の復号画像の総ビット量である。
【００４０】
従って、閾値Ｓに基づく判定により、ＤＭＡ転送対象の参照画像の量がｆ（Ｖ−Ｓ）＋Ｃ以上である所定量より多いか否かの判定が行えるようになる。
＜動作＞
以下、上述の構成を備える画像復号装置１００のマクロブロック単位での画像復号の動作を、制御部１１０による制御の流れに即して説明する。
【００４１】
制御部１１０は、圧縮画像を構成する各マクロブロックのうち逐次復号対象となるマクロブロックを定めて、パイプライン制御により各サイクルタイム内に画像復号装置１００の各構成要素それぞれに順次６つのマクロブロックのいずれかを処理させるが、ここでは、まず１つのマクロブロックについてどのような処理が施されるかを説明する。
図４は、制御部１１０によるマクロブロックに対する復号の制御内容を示すフローチャートである。
【００４２】
まず、制御部１１０のストリーム転送制御部１１１は、符号化ストリームをメモリ１２０からＶＬＤ処理ユニット１４０に転送させるようＤＭＡコントローラ１３０に転送指示を発行する（ステップＳ１１）。この符号化ストリームの転送指示をキューにより受け付けたＤＭＡコントローラ１３０は、１マクロブロック分の符号化ストリームの転送を行う。
【００４３】
制御部１１０は、ＶＬＤ処理ユニット１４０を起動し（ステップＳ１２）、ＶＬＤ処理ユニット１４０は、符号化ストリームから動きベクトルとマクロブロックタイプとを抽出して取得部１１２に伝達するとともにブロックデータを抽出して逆周波数変換処理ユニット１５０に伝達する。
制御部１１０は、逆周波数変換処理ユニット１５０を起動し（ステップＳ１３）、逆周波数変換処理ユニット１５０は、ブロックデータに逆周波数変換を施して出力する。
【００４４】
制御部１１０は、マクロブロックについてのマクロブロックタイプがインターマクロブロックかイントラマクロブロックかを判別し（ステップＳ１４）、インターマクロブロックであれば、制御部１１０の取得部１１２は動きベクトルを参照画像転送制御部１１３に伝え、参照画像転送制御部１１３は、マクロブロックの位置と各動きベクトルとに基づいて各参照画像の位置を算出することを通じて各参照画像のメモリ１２０内でのアドレスを算出し（ステップＳ１５）、そのアドレスを指定してＤＭＡコントローラ１３０に、参照画像をメモリ１２０から入力バッファ１６１に転送するように指示を発行し（ステップＳ１６）、動き補償処理ユニット１６０を起動し（ステップＳ１７）、デブロックフィルタ処理ユニット１８０を起動する（ステップＳ１８）。このステップＳ１６による参照画像の転送指示をキューにより受け付けたＤＭＡコントローラ１３０は、１マクロブロックに対応する全ての参照画像を入力バッファ１６１に転送する。
【００４５】
また、ステップＳ１７の結果として、動き補償処理ユニット１６０は、入力バッファ１６１内の参照画像と、逆周波数変換されたブロックデータとに基づいて画像を再構成してデブロックフィルタ処理ユニット１８０に送出し、またステップＳ１８の結果としてデブロックフィルタ処理ユニット１８０は、再構成された画像のブロックノイズを抑圧して出力バッファ１９０に蓄積する。
【００４６】
一方、ステップＳ１４においてマクロブロックについてのマクロブロックタイプがイントラマクロブロックであると判別した場合には、制御部１１０は、ステップＳ１５〜Ｓ１７をスキップしてイントラ処理ユニット１７０を起動し（ステップＳ１９）、デブロックフィルタ処理ユニット１８０を起動する（ステップＳ１８）。このステップＳ１９の結果としてイントラ処理ユニット１７０は、逆周波数変換されたブロックデータから画像を再構成してデブロックフィルタ処理ユニット１８０に送出する。
【００４７】
また、制御部１１０の抑止判定部１１６は、取得部１１２により取得された動きベクトル数と閾値記憶部１１７に記憶されている閾値Ｓとを比較して、動きベクトル数が閾値Ｓを超えている場合には（ステップＳ２０）、復号画像転送制御部１１４に復号画像をメモリ１２０に送出するＤＭＡ転送に係る指示を発行させずに、未出力情報格納部１１５内の未出力情報を、その復号画像のメモリへの送出がなされなかった旨を示すように設定する（ステップＳ２１）。これに対して、ステップＳ２０において、動きベクトル数が閾値Ｓを超えていない場合には、復号画像転送制御部１１４は、未出力情報を参照して前のマクロブロック分の復号画像のメモリへの送出がなされていなかったかを判定し（ステップＳ２２）、その送出がなされていなかった場合には、復号画像転送制御部１１４は、ＤＭＡコントローラ１３０に、あるマクロブロックの復号画像にその前のマクロブロック分の復号画像を合わせて２マクロブロック分の復号画像を出力バッファ１９０からメモリ１２０に転送するように指示を発行してから（ステップＳ２３）、未出力情報をクリア、つまり未出力情報が未送出の復号画像が存在しない旨を示すように更新し（ステップＳ２４）、前のマクロブロック分の復号画像の送出がなされていな場合には、復号画像転送制御部１１４は、ＤＭＡコントローラ１３０に、あるマクロブロックの復号画像を出力バッファ１９０からメモリ１２０に転送するように指示を発行し（ステップＳ２５）、未出力情報をクリアする（ステップＳ２４）。
【００４８】
このステップＳ２３又はＳ２５により、デブロックフィルタ処理ユニット１８０によりブロックノイズが抑制されて出力バッファ１９０に格納されている復号画像が、メモリ１２０にＤＭＡ転送されることになる。
以上、基本的に１つのマクロブロックについての処理を図４に即して順を追って説明したが、制御部１１０は、実際は、パイプライン制御を行っており、図４のフローチャート中の各ステップに示す動作は、パイプライン制御の周期的な時間である各サイクルタイムにおいて最初に実行される。なお、処理対象となるマクロブロックは同一ではないが、ステップＳ１１と、ステップＳ１２と、ステップＳ１３と、ステップＳ１５〜Ｓ１６と、ステップＳ１７或いはステップＳ１９と、ステップＳ１８と、ステップＳ２０〜Ｓ２５とのそれぞれは、各サイクルタイムの最初に実行するのであればどの順で実行しても差し支えない。
【００４９】
また、制御部１１０による各ユニットの起動は、各サイクルの開始を伝達する意義を有し、各ユニットは各サイクルタイム内に基本的に１つのマクロブロックに対応する処理を行う。
図５は、制御部１１０によるパイプライン制御の実行シーケンスを示す図である。
同図中、タイムスロットＴＳ＝ｎ（ｎは任意の整数）は、ｎ番目のサイクルタイムを意味する。また、ＭＢ＃ｎは、ｎ番目のマクロブロックが処理対象であることを示す。
【００５０】
図５に示すように、制御部１１０によるパイプライン制御の下では、ストリーム転送制御部１１１の指示に従ってＤＭＡコントローラ１３０により実施されるストリーム転送処理と、ＶＬＤ処理ユニット１４０により実施される可変長復号処理と、逆周波数変換処理ユニット１５０により実施される逆周波数変換処理と、参照画像転送制御部１１３の指示に従ってＤＭＡコントローラ１３０により実施される参照画像転送処理と、動き補償処理ユニット１６０により実施される動き補償処理又はイントラ処理ユニット１７０により実施されるイントラ処理と、デブロックフィルタ処理ユニット１８０により実施されるデブロックフィルタ処理と、復号画像転送制御部１１４の指示に従ってＤＭＡコントローラ１３０により実施される復号画像転送処理とが並列してなされる。
【００５１】
従って、ある１つのサイクルタイム内では、各ユニット等により６つのマクロブロックが並行的に処理対象とされる。サイクルタイムの長さは、復号に求められる速度を満たすように定められ、並列動作する各ユニットのうち１マクロブロック単位の処理に要する時間の最も長いユニットのその処理時間が１サイクルタイム以内になるような処理性能を各ユニットは発揮する必要がある。
【００５２】
なお、図５では、復号画像転送処理については例示をしており、この例では、ＴＳ＝ｎ＋２で示されるサイクルタイム内において参照画像転送処理の対象となるｎ番目のマクロブロックについての動きベクトル数が閾値Ｓを超えており、また、ＴＳ＝ｎ＋４で示されるサイクルタイム内において参照画像転送処理の対象となるｎ＋２番目のマクロブロックについての動きベクトル数が閾値Ｓを超えていたことを想定した例を示している。
【００５３】
このため、ＴＳ＝ｎ＋２で示されるサイクルタイム内では、参照画像転送処理において転送されるデータ量が所定量より多くなるため、上述のステップＳ２０〜Ｓ２５で示した制御により、ｎ−３番目のマクロブロックを対象としての復号画像転送処理は抑止され、そのためにＴＳ＝ｎ＋３で示されるサイクルタイム内ではｎ−３番目のマクロブロックとｎ−２番目のマクロブロックとの両方を対象としての復号画像転送処理が実施されることになり、また、ＴＳ＝ｎ＋４で示されるサイクルタイム内では、参照画像転送処理において転送されるデータ量が所定量より多くなるため、ｎ−１番目のマクロブロックを対象としての復号画像転送処理は抑止され、そのためにＴＳ＝ｎ＋５で示されるサイクルタイム内では、ｎ−１番目のマクロブロックとｎ番目のマクロブロックとの両方を対象としての復号画像転送処理が実施されることになる。
【００５４】
図６は、画像復号装置１００におけるＤＭＡ転送の制御を示す図である。
ＤＭＡコントローラ１３０は、１マクロブロック分の可変長符号化されたストリームをメモリ１２０からＶＬＤ処理ユニット１４０にＤＭＡ転送するストリーム転送処理と、１マクロブロックに対応する参照画像をメモリ１２０から動き補償処理ユニット１６０の入力バッファ１６１にＤＭＡ転送する参照画像転送処理と、出力バッファ１９０に格納された１マクロブロックに対応する復号画像をメモリ１２０にＤＭＡ転送する復号画像転送処理とを、各サイクルタイム内で時分割して実行する。
【００５５】
同図中、記号Ａによりストリーム転送処理の対象となる１マクロブロック分に相当する符号化ストリームの転送時間を示しており、記号Ｂにより参照画像転送処理の対象となる１マクロブロック分に対応する様々な量の参照画像の転送時間の例を示しており、記号Ｃにより復号画像転送処理の対象となる１マクロブロック分に相当する復号画像の転送時間を示している。なお、図６の例は、図５の例と対応している。
【００５６】
この例は、ＴＳ＝ｎ＋２で示されるサイクルタイム内においてはＤＭＡ転送する参照画像の総量が所定量を超えており、図４のステップＳ２０の判定ブロックでｙｅｓと判定され、そのサイクルタイム内では復号画像のＤＭＡ転送はなされず、次のＴＳ＝ｎ＋３で示されるサイクルタイムで２マクロブロック分の復号画像のＤＭＡ転送がなされることを示している。なお、ＭＰＥＧ４ＡＶＣ規格の大きな画像に対応するレベルの規定により、連続する２つのマクロブロック分の動きベクトルの総数の上限が１６等と固定的に定められているため、ＴＳ＝ｎ＋２においてＤＭＡ転送される参照画像の量が多い場合には相対的にＴＳ＝ｎ＋３においてＤＭＡ転送される参照画像の量は少ない又は０になる。なお、１マクロブロックに対応する参照画像の最大量に対して１マクロブロックに対応する復号画像の量は十分に小さい。
【００５７】
従って、ステップＳ２０〜Ｓ２５で示されるような抑止判定部１１６及び復号画像転送制御部１１４の動作の結果、ＴＳ＝ｎ＋２で示されるサイクルタイム内において復号画像の転送が抑止されることになり、このサイクルタイム内でのメモリアクセスによる最大データ転送量を減縮することができるようになるため、この画像復号装置１００においては、メモリバンド幅についての要件を比較的緩和できることになる。
＜実施形態２＞
以下、本発明の実施形態２に係る画像復号装置５００について説明する。
【００５８】
前述した実施形態１に係る画像復号装置１００は、各サイクルタイム内に１マクロブロックに対応する全ての参照画像のＤＭＡ転送を行う構成を有する。これに対し、実施形態２に係る画像復号装置５００は、１つのマクロブロックに対応する全ての参照画像のＤＭＡ転送を１サイクルタイム内で完了できないことも許容し、連続する２マクロブロックそれぞれに対応する全ての参照画像のＤＭＡ転送を２サイクルタイム内で完了するように制御する構成を有する。
【００５９】
＜構成＞
図７は、本発明の実施形態２に係る画像復号装置５００の構成図である。
画像復号装置５００は、同図に示すように、制御部５１０、メモリ１２０、ＤＭＡコントローラ１３０、可変長復号（ＶＬＤ）処理ユニット１４０、逆周波数変換処理ユニット１５０、バッファ５５１、動き補償処理ユニット５６０、イントラ処理ユニット１７０、デブロックフィルタ処理ユニット１８０及び出力バッファ５９０を備える。なお、図７に示した画像復号装置５００の各構成要素のうち実施形態１で示した画像復号装置１００の構成要素と同一のものについては、図１と同じ符号を付しており、これらについては詳しい説明を省略する。
【００６０】
動き補償処理ユニット５６０は、連続した２つのマクロブロックに対応する全ての参照画像を格納するのに十分な容量を有する入力バッファ５６１を有し、入力バッファ５６１に蓄積された参照画像からクォータペル精度の画像を算出して算出した画像と逆周波数変換処理ユニット１５０が出力するマクロブロックについての差分値とを加算することにより画像を再構成する動き補償処理を実行する機能を有する。
【００６１】
出力バッファ５９０は、復号画像を１マクロブロック分格納するに足りる容量を有するバッファメモリである。
また、制御部５１０は、ハードウェア面においては、プロセッサ、ＲＯＭ（Read Only Memory）、タイマー等を含んで構成され、ＲＯＭに格納されたプログラムをプロセッサが実行することにより、画像復号装置５００の各構成要素に、マクロブロック単位の復号に係る各処理を所定のサイクルタイム毎に並列に行わせるパイプライン制御を実現するものであり、具体的にはＤＭＡコントローラ１３０、ＶＬＤ処理ユニット１４０、逆周波数変換処理ユニット１５０、動き補償処理ユニット５６０、イントラ処理ユニット１７０及びデブロックフィルタ処理ユニット１８０を制御し、機能面における構成要素として、ストリーム転送制御部１１１、取得部１１２、参照画像転送制御部５１３及び復号画像転送制御部５１４を有する。
【００６２】
ここで、参照画像転送制御部５１３は、取得部１１２が取得したマクロブロックタイプがインターマクロブロックの場合には各動きベクトルに応じて各参照画像の位置を特定して、各参照画像のアドレスを指定して、各参照画像をメモリ１２０から動き補償処理ユニット５６０の入力バッファ５６１へと転送させるようＤＭＡコントローラ１３０への指示を行う機能を有する。なお、この指示は、サイクルタイムの開始時点毎になされるが、ＤＭＡコントローラ１３０のキューに格納された指示に対応したＤＭＡ転送が行われ始めるのはそのサイクルタイムの開始時点とは限らない。但し、参照画像のＤＭＡ転送の指示がなされてから２つ分のサイクルタイム以内にそれに呼応したＤＭＡ転送の実行は必ず完了する。
【００６３】
復号画像転送制御部５１４は、１サイクルタイム内で出力バッファ５９０内の１マクロブロック分の復号画像をメモリ１２０へと転送させるようＤＭＡコントローラ１３０への指示を行う機能を有する。
また、バッファ５５１は、逆周波数変換処理ユニット１５０の出力したデータを一時的に蓄積するためのバッファメモリであり、逆周波数変換処理ユニット１５０があるサイクルタイムにおいて処理したマクロブロックについて、その次のまた次のサイクルタイムにおいて動き補償処理ユニット５６０又はイントラ処理ユニット１７０により処理されるようにするために設けられている。
【００６４】
＜動作＞
以下、上述の構成を備える画像復号装置５００のマクロブロック単位での画像復号の動作を、制御部５１０による制御の流れに即して説明する。
制御部５１０は、圧縮画像を構成する各マクロブロックのうち逐次復号対象となるマクロブロックを定めて、パイプライン制御により各サイクルタイム内に画像復号装置５００の各構成要素それぞれに順次６つ又は７つのマクロブロックのいずれかを処理させるが、ここでは、まず１つのマクロブロックについてどのような処理が施されるかを説明する。
【００６５】
図８は、制御部５１０によるマクロブロックに対する復号の制御内容を示すフローチャートである。
まず、制御部５１０のストリーム転送制御部１１１は、符号化ストリームをメモリ１２０からＶＬＤ処理ユニット１４０に転送させるようＤＭＡコントローラ１３０に転送指示を発行する（ステップＳ５１）。この符号化ストリームの転送指示をキューにより受け付けたＤＭＡコントローラ１３０は、１マクロブロック分の符号化ストリームの転送を行う。
【００６６】
制御部５１０は、ＶＬＤ処理ユニット１４０を起動し（ステップＳ５２）、ＶＬＤ処理ユニット１４０は、符号化ストリームから動きベクトルとマクロブロックタイプとを抽出して取得部１１２に伝達するとともにブロックデータを抽出して逆周波数変換処理ユニット１５０に伝達する。
制御部５１０は、逆周波数変換処理ユニット１５０を起動し（ステップＳ５３）、逆周波数変換処理ユニット１５０は、ブロックデータに逆周波数変換を施して出力する。
【００６７】
制御部５１０は、マクロブロックについてのマクロブロックタイプがインターマクロブロックかイントラマクロブロックかを判別し（ステップＳ５４）、インターマクロブロックであれば、制御部５１０の取得部１１２は動きベクトルを参照画像転送制御部５１３に伝え、参照画像転送制御部５１３は、マクロブロックの位置と各動きベクトルとに基づいて各参照画像の位置を算出することを通じて各参照画像のメモリ１２０内でのアドレスを算出し（ステップＳ５５）、そのアドレスを指定してＤＭＡコントローラ１３０に、参照画像をメモリ１２０から入力バッファ５６１に転送するように指示を発行し（ステップＳ５６）、動き補償処理ユニット５６０を起動し（ステップＳ５７）、デブロックフィルタ処理ユニット１８０を起動する（ステップＳ５８）。このステップＳ５６による参照画像の転送指示をキューにより受け付けたＤＭＡコントローラ１３０は、１マクロブロックに対応する全ての参照画像を入力バッファ５６１に転送する。
【００６８】
また、ステップＳ５７の結果として、動き補償処理ユニット５６０は、入力バッファ５６１内の参照画像と、逆周波数変換されたブロックデータとに基づいて画像を再構成してデブロックフィルタ処理ユニット１８０に送出し、またステップＳ５８の結果としてデブロックフィルタ処理ユニット１８０は、再構成された画像のブロックノイズを抑圧して出力バッファ５９０に蓄積する。
【００６９】
一方、ステップＳ５４においてマクロブロックについてのマクロブロックタイプがイントラマクロブロックであると判別した場合には、制御部５１０は、ステップＳ５５〜Ｓ５７をスキップしてイントラ処理ユニット１７０を起動し（ステップＳ５９）、デブロックフィルタ処理ユニット１８０を起動する（ステップＳ５８）。このステップＳ５９の結果としてイントラ処理ユニット１７０は、逆周波数変換されたブロックデータから画像を再構成してデブロックフィルタ処理ユニット１８０に送出する。
【００７０】
制御部５１０の復号画像転送制御部５１４は、ステップＳ５８が行われた後にその結果として出力バッファ５９０に格納されたマクロブロックについての復号画像をメモリ１２０に転送するようにＤＭＡコントローラ１３０に対して指示を発行する（ステップＳ６０）。
以上、基本的に１つのマクロブロックについての処理を図８に即して順を追って説明したが、制御部５１０は、実際は、パイプライン制御を行っており、図８のフローチャート中の各ステップに示す動作は、パイプライン制御の周期的な時間である各サイクルタイムにおいて最初に実行される。即ち、処理対象となるマクロブロックは同一ではないが、ステップＳ５１と、ステップＳ５２と、ステップＳ５３と、ステップＳ５５〜Ｓ５６と、ステップＳ５７或いはステップＳ５９と、ステップＳ５８と、ステップＳ６０とのそれぞれは、各サイクルタイムの最初に実行される。なお、その時において、ステップＳ５１と、ステップＳ５５〜Ｓ５６と、ステップＳ６０とについては、後述するように実行順序が定まっているが、他のステップについてはどの順序で実行しても差し支えない。
【００７１】
また、制御部１１０による各ユニットの起動は、各サイクルの開始を伝達する意義を有し、各ユニットは各サイクルタイム内に基本的に１つのマクロブロックに対応する処理を行う。但し、ＤＭＡコントローラ１３０による１つのマクロブロックに対応する全ての参照画像についてのＤＭＡ転送は１つのサイクルタイム内に完了しなくてもよく、連続する２つのマクロブロックそれぞれに対応する全ての参照画像についてのＤＭＡ転送が２つのサイクルタイム内に完了すればよい。
【００７２】
図９は、制御部５１０によるパイプライン制御の実行シーケンスを示す図である。
同図中、タイムスロットＴＳ＝ｎ（ｎは任意の整数）は、ｎ番目のサイクルタイムを意味する。また、ＭＢ＃ｎは、ｎ番目のマクロブロックが処理対象であることを示す。
図９に示すように、制御部５１０によるパイプライン制御の下では、ストリーム転送制御部１１１の指示に従ってＤＭＡコントローラ１３０により実施されるストリーム転送処理と、ＶＬＤ処理ユニット１４０により実施される可変長復号処理と、逆周波数変換処理ユニット１５０により実施される逆周波数変換処理と、参照画像転送制御部５１３の指示に従ってＤＭＡコントローラ１３０により実施される参照画像転送処理と、動き補償処理ユニット１６０により実施される動き補償処理又はイントラ処理ユニット１７０により実施されるイントラ処理と、デブロックフィルタ処理ユニット１８０により実施されるデブロックフィルタ処理と、復号画像転送制御部５１４の指示に従ってＤＭＡコントローラ１３０により実施される復号画像転送処理とが並列してなされる。
【００７３】
従って、ある１つのサイクルタイム内では、各ユニット等により６つ又は７つのマクロブロックが並行的に処理対象とされる。サイクルタイムの長さは、復号に求められる速度を満たすように定められ、並列動作する各ユニットのうち１マクロブロック単位の処理に要する時間の最も長いユニットのその処理時間が１サイクルタイム以内になるような処理性能を各ユニットは発揮する必要がある。
【００７４】
なお、図９では、参照画像転送処理については、各マクロブロックに対応する参照画像のＤＭＡ転送が行われ得る期間が２サイクルタイムあることを示しているだけであり、ＭＰＥＧ４ＡＶＣ規格の大きな画像に対応するレベルの規定により、連続する２つのマクロブロック分の動きベクトルの総数の上限が固定的に定められているため、そのような大きな画像に対する復号の際には、実際上は、例えばｎ番目のマクロブロックに対応する参照画像の転送とｎ＋１番目のマクロブロックに対応する参照画像の転送とを合わせて見れば両方で２サイクルタイム内に完了することになる。
【００７５】
図１０は、制御部５１０によるＤＭＡ転送指示発行処理を示すフローチャートである。
各サイクルタイムの最初において、制御部５１０のストリーム転送制御部１１１、参照画像転送制御部５１３及び復号画像転送制御部５１４がＤＭＡ転送指示を行う順序は、定められており、同図に示すように、まずストリーム転送制御部１１１によりｎ番目のマクロブロックに対応する符号化ストリームのＤＭＡ転送の指示の発行がなされ（ステップＳ７１）、復号画像転送制御部５１４によりｎ−６番目のマクロブロックに対応する復号画像のＤＭＡ転送の指示の発行がなされ（ステップＳ７２）、最後にｎ−２番目のマクロブロックに対応する全ての参照画像のＤＭＡ転送の指示の発行がなされる（ステップＳ７３）。
【００７６】
図１１は、画像復号装置５００におけるＤＭＡ転送の制御を示す図である。
ＤＭＡコントローラ１３０は、１マクロブロック分の可変長符号化されたストリームをメモリ１２０からＶＬＤ処理ユニット１４０にＤＭＡ転送するストリーム転送処理と、１マクロブロックに対応する参照画像をメモリ１２０から動き補償処理ユニット５６０の入力バッファ５６１にＤＭＡ転送する参照画像転送処理と、出力バッファ５９０に格納された１マクロブロックに対応する復号画像をメモリ１２０にＤＭＡ転送する復号画像転送処理とを、各サイクルタイム内で時分割して実行する。
【００７７】
同図中、記号Ａによりストリーム転送処理の対象となる１マクロブロック分に相当する符号化ストリームの転送時間を示しており、記号Ｂにより参照画像転送処理の対象となる１マクロブロック分に対応する様々な量の参照画像の転送時間の例を示しており、記号Ｃにより復号画像転送処理の対象となる１マクロブロック分に相当する復号画像の転送時間を示している。
【００７８】
この例は、ＴＳ＝ｎ＋２で示されるサイクルタイム内においてはＤＭＡ転送する１マクロブロックに対応する参照画像の総量が多いために、そのサイクルタイム内ではＤＭＡ転送が完了せずに、ＴＳ＝ｎ＋３で示されるサイクルタイム内に入って漸くそのＤＭＡ転送が完了する例である。ＴＳ＝ｎ＋３で示されるサイクルタイムを含む全てのサイクルタイムの最初において図１０に従った順序でＤＭＡ転送指示はなされる。即ち、ＤＭＡコントローラ１３０は、ＤＭＡ転送が終了し次第、キューから、ＤＭＡ転送指示を指示された順に取り出して次のＤＭＡ転送を行う。
【００７９】
なお、ＭＰＥＧ４ＡＶＣ規格の大きな画像に対応するレベルの規定により、大きな画像においても連続する２つのマクロブロック分の動きベクトルの総数の上限が１６等と固定的に定められているため、ＴＳ＝ｎ＋２においてＤＭＡ転送される参照画像の量が多い場合には相対的にＴＳ＝ｎ＋３においてＤＭＡ転送される参照画像の量は少ない又は０になる。
【００８０】
従って、１サイクルタイム内で１マクロブロックに対応する全て参照画像のＤＭＡ転送を完了しなくても、２サイクルタイム内に完了しさえすればよいので、各サイクルタイム内でのメモリアクセスによる最大データ転送量を減縮することができるようになるため、この画像復号装置５００においては、メモリバンド幅についての要件を比較的緩和できることになる。
＜補足＞
以上、本発明に係る画像復号装置について実施形態１、２に基づいて説明したが、以下のように変形することもでき、本発明は上述の実施形態で示した画像復号装置に限られないことは勿論である。
（１）実施形態１、２では、動き補償処理ユニットは入力バッファを含むこととしたが、動き補償処理ユニットの外部にバッファメモリを設けても良い。また画像復号装置を構成する各ユニットはそれぞれ入力バッファや出力バッファを含むこととしてもよい。なお、各ユニットは、必ずしも独立した個体でなくてもよく、複数が一体として成型されてものであってもよい。
（２）実施形態１、２では、参照画像転送処理によりあるマクロブロックに対応する全ての参照画像のメモリから入力バッファへのＤＭＡ転送が完了した後のサイクルタイムで動き補償処理ユニットがそのマクロブロックについての動き補償処理を行うこととしたが、動き補償処理ユニットは入力バッファに参照画像が格納され次第、ＤＭＡ転送が完了前でもそのマクロブロックについての動き補償処理を開始することとしてもよく、この場合においては例えばそのＤＭＡ転送が完了した後のサイクルタイムでは動き補償処理の結果を受けてデブロックフィルタ処理ユニットがデブロックフィルタ処理を行うこととしてもよい。即ち、実施形態２について見れば、参照画像を取得し次第、動き補償処理ユニットが動き補償処理を開始するという場合には、あるサイクルタイム内にあるマクロブロックに対応する参照画像のＤＭＡ転送が開始されたときにそのマクロブロックに対応するデブロックフィルタ処理をそのサイクルタイムの２つ後のサイクルタイム内に実行開始するように、実施形態２で示した画像復号装置を変形してもよい。
（３）実施形態１では、１サイクルタイム内で所定量を超えた参照画像のメモリからのＤＭＡ転送が行われる際には、そのサイクルタイム内での復号画像のメモリへのＤＭＡ転送を抑止することとしたが、所定量を超えた参照画像のＤＭＡ転送が行われるサイクルタイム内でその参照画像のＤＭＡ転送以外の何らかのメモリアクセスを抑止すればよく、例えば符号化ストリームのメモリからのＤＭＡ転送を抑止することとしてもよい。なお、参照画像の転送量は、あるサイクルタイムで所定量より多ければ次のサイクルタイムで少なくなることを前提とすれば、抑止したメモリアクセスは、例えばその抑止したメモリサイクルの次のメモリサイクルを用いて実行するように制御するとよい。符号化ストリームのＤＭＡ転送を抑止制御の対象とする場合には、例えば、符号化ストリームは実施形態１で図５により示したものより常に１マクロブロック分に相当する量だけ先読みすることとし、ＶＬＤ処理ユニットには１マクロブロック分余分に蓄積可能な入力バッファを設けることとしてもよい。
（４）実施形態１で示した閾値Ｓは数１を満たす最小の整数であることとしたが、必ずしも最小の整数でなくてもよい。但し、最小の整数であればメモリバスバンド幅を最も大きく抑えることができる。また、実施形態１では閾値Ｓと動きベクトルの数とを比較した結果に応じて復号画像のＤＭＡ転送を一時的に抑止するか否かを決定する構成を示したが、画像復号装置を、ＤＭＡ転送対象となる参照画像のデータ量と所定量とを比較した結果に応じて復号画像のＤＭＡ転送を一時的に抑止するか否かを決定する構成にしてもよい。
（５）実施形態１、２では、マクロブロック単位で復号を行う画像復号装置を示したが、マクロブロックを更に細分化した単位で復号を行うこととしてもよく、本発明は、画像を小さな任意のサイズのブロック単位に分割して復号を行う場合に適用できる。
【００８１】
マクロブロック単位でなく、そのブロック単位で実施形態２で示したようなパイプライン制御（図９参照）を行い、そのブロック単位を基本的に１サイクルタイムで処理するようにしてもよい。ブロック単位は、例えばマクロブロックの１／１６である４×４画素のサイズや、１／２である８×１６画素のサイズ等である。なお、ブロック単位でパイプライン制御を行う場合も、参照画像転送処理のパイプラインステージについては１ブロックについての転送を１サイクルタイムで実行するという制限を外すことになる。
（７）実施の形態１、２で示した画像復号装置１００、５００は、それぞれ半導体集積回路として１つの半導体チップ上に構成されていてもよく、また、その半導体集積回路を１つのパッケージにした場合にメモリ１２０はそのパッケージの外部に存在することとしてもよい。なお、図１２は、メモリ１２０以外を半導体集積回路１０１として実現した画像復号装置１００のイメージを示す図である。
【産業上の利用可能性】
【００８２】
本発明に係る画像復号装置は、ＭＰＥＧ４ＡＶＣ規格に従って圧縮された動画像を再生するＤＶＤプレーヤ、デジタルテレビ等の画像再生装置において利用可能である。
【図面の簡単な説明】
【００８３】
【図１】本発明の実施形態１に係る画像復号装置１００の構成図である。
【図２】圧縮画像のストリームデータの構造を示す図である。
【図３】マクロブロックと参照画像との関係を示す図である。
【図４】制御部１１０によるマクロブロックに対する復号の制御内容を示すフローチャートである。
【図５】制御部１１０によるパイプライン制御の実行シーケンスを示す図である。
【図６】画像復号装置１００におけるＤＭＡ転送の制御を示す図である。
【図７】本発明の実施形態２に係る画像復号装置５００の構成図である。
【図８】制御部５１０によるマクロブロックに対する復号の制御内容を示すフローチャートである。
【図９】制御部５１０によるパイプライン制御の実行シーケンスを示す図である。
【図１０】制御部５１０によるＤＭＡ転送指示発行処理を示すフローチャートである。
【図１１】画像復号装置５００におけるＤＭＡ転送の制御を示す図である。
【図１２】メモリ１２０以外を半導体集積回路１０１として実現した画像復号装置１００のイメージを示す図である。
【図１３】従来の画像復号装置におけるパイプライン制御の実行シーケンスを例示する図である。
【符号の説明】
【００８４】
１００、５００    画像復号装置
１１０、５１０    制御部
１１１    ストリーム転送制御部
１１２    取得部
１１３、５１３    参照画像転送制御部
１１４、５１４    復号画像転送制御部
１１５    未出力情報格納部
１１６    抑止判定部
１１７    閾値記憶部
１２０    メモリ
１３０    ＤＭＡコントローラ
１４０    ＶＬＤ処理ユニット
１４０    処理ユニット
１５０    逆周波数変換処理ユニット
１６０、５６０    動き補償処理ユニット
１６１、５６１    入力バッファ
１７０    イントラ処理ユニット
１８０    デブロックフィルタ処理ユニット
１９０、５９０    出力バッファ
５５１    バッファ５５１
【図１】
0004668914.tif 000002
【図２】
0004668914.tif 000003
【図３】
0004668914.tif 000004
【図４】
0004668914.tif 000005
【図５】
0004668914.tif 000006
【図６】
0004668914.tif 000007
【図７】
0004668914.tif 000008
【図８】
0004668914.tif 000009
【図９】
0004668914.tif 000010
【図１０】
0004668914.tif 000011
【図１１】
0004668914.tif 000012
【図１２】
0004668914.tif 000013
【図１３】
0004668914.tif 000014