(57)【要約】【課題】復号処理を高効率化することが可能なデコーダおよびデコード方法を提供する。【解決手段】デコーダは、復号対象のピクチャデータを書き込むべき記憶領域に前回復号したピクチャデータをコピーするコピー手段と、デコーダが取り込んだ符号化データから、復号対象のピクチャデータに含まれる次に復号すべきマクロブロックの符号化データを切り出す切り出し手段と、次に復号すべきマクロブロックの復号方法を示すデータに基づいて、次に復号すべきマクロブロックが前回復号したピクチャデータの同一位置のマクロブロックと一致するか否かを判定する判定手段と、判定手段により両マクロブロックが一致しないことが判定された場合に、次に復号すべきマクロブロックの符号化データを復号して当該マクロブロックの復号化データを記憶領域に書き込み、一方、判定手段により両マクロブロックが一致することが判定された場合に、次に復号すべきマクロブロックの符号化データの復号処理を実行しない復号手段と、を備える。【選択図】図４
2010093580.tif 000002
【特許請求の範囲】
【請求項１】
ピクチャデータの符号化データを取り込んで当該ピクチャデータを構成する複数のマクロブロックを逐次に復号し、このピクチャデータごとの復号を繰り返すことにより一連のピクチャデータを逐次に復号するデコーダであって、
復号対象のピクチャデータを書き込むべき記憶領域に前回復号したピクチャデータをコピーするコピー手段と、
前記デコーダが取り込んだ符号化データから、復号対象のピクチャデータに含まれる次に復号すべきマクロブロックの符号化データを切り出す切り出し手段と、
次に復号すべきマクロブロックの復号方法を示すデータに基づいて、次に復号すべきマクロブロックが前回復号したピクチャデータの同一位置のマクロブロックと一致するか否かを判定する判定手段と、
前記判定手段により両マクロブロックが一致しないことが判定された場合に、次に復号すべきマクロブロックの符号化データを復号して当該マクロブロックの復号化データを前記記憶領域に書き込み、一方、前記判定手段により両マクロブロックが一致することが判定された場合に、次に復号すべきマクロブロックの符号化データの復号処理を実行しない復号手段と、
を備えることを特徴とするデコーダ。
【請求項２】
前記復号手段は、前記判定手段により両マクロブロックが一致しないことが判定された場合に、次に復号すべきマクロブロックの符号化データを復号するための前処理を行ってから、次に復号すべきマクロブロックの符号化データを復号して当該マクロブロックの復号化データを前記記憶領域に書き込むことを特徴とする請求項１に記載のデコーダ。
【請求項３】
前記切り出し手段は、前記判定手段により両マクロブロックが一致することが判定された場合に、前記符号化データの切り出しを中断することを特徴とする請求項１または２に記載のデコーダ。
【請求項４】
ピクチャデータの符号化データを取り込んで当該ピクチャデータを構成する複数のマクロブロックを逐次に復号し、このピクチャデータごとの復号を繰り返すことにより一連のピクチャデータを逐次に復号するデコードプログラムであって、
復号対象のピクチャデータを書き込むべき記憶領域に前回復号したピクチャデータをコピーするコピー機能と、
前記デコードプログラムが取り込んだ符号化データから、復号対象のピクチャデータに含まれる次に復号すべきマクロブロックの符号化データを切り出す切り出し機能と、
次に復号すべきマクロブロックの復号方法を示すデータに基づいて、次に復号すべきマクロブロックが前回復号したピクチャデータの同一位置のマクロブロックと一致するか否かを判定する判定機能と、
前記判定機能により両マクロブロックが一致しないことが判定された場合に、次に復号すべきマクロブロックの符号化データを復号して当該マクロブロックの復号化データを前記記憶領域に書き込み、一方、前記判定機能により両マクロブロックが一致することが判定された場合に、次に復号すべきマクロブロックの符号化データの復号処理を実行しない復号機能と、
をコンピュータに実現させるデコードプログラム。
【請求項５】
前記復号機能は、前記判定機能により両マクロブロックが一致しないことが判定された場合に、次に復号すべきマクロブロックの符号化データを復号するための前処理を行ってから、次に復号すべきマクロブロックの符号化データを復号して当該マクロブロックの復号化データを前記記憶領域に書き込むことを特徴とする請求項４に記載のデコードプログラム。
【請求項６】
前記切り出し機能は、前記判定機能により両マクロブロックが一致することが判定された場合に、前記符号化データの切り出しを中断することを特徴とする請求項４または５に記載のデコードプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一連のピクチャデータの符号化データを復号するデコーダおよびデコードプログラムに関する。
【背景技術】
【０００２】
Ｈ．２６４／ＡＶＣ規格に準拠した符号化および復号化を行うソフトウェアには、ジョイントモデル（Joint Model、以下ＪＭと呼ぶ）と呼ばれる標準的なソフトウェアがある。このＪＭを採用したデコーダは、ピクチャデータの符号化データを取り込んで当該ピクチャデータを構成する複数のマクロブロックを逐次に復号し、このピクチャデータごとの復号を繰り返すことにより一連のピクチャデータを逐次に復号するものである。具体的には、ＪＭを採用したデコーダは、１．ピクチャの符号化データの切り出し、２．マクロブロックの符号化データの切り出し、３．マクロブロック単位での復号化、４．デブロッキングフィルタ処理、５．ピクチャデータの出力、という手順を繰り返す。
【０００３】
図６は、ＪＭを採用するデコーダにおいて一枚のピクチャの符号化データを復号する際の処理の流れを示している。ステップＳ６０１において、デコーダは、復号すべきピクチャデータの全てのマクロブロックを処理したか否かを判定し、全てのマクロブロックを処理していない場合にステップＳ６０２に進む。次に、ステップＳ６０２において、デコーダは、取り込んだ符号化データから次に復号すべきマクロブロックの符号化データを切り出す。ステップＳ６０３において、デコーダは、切り出したマクロブロックの符号化データを復号する処理を行う。
【０００４】
図６のステップＳ６０３では、復号対象のマクロブロックがＰスライスまたはＢスライスに含まれるものであり、デコーダが動き補償によりマクロブロックを復号する場合の処理の流れが示されている。ステップＳ６０３−１において、デコーダは、マクロブロックの復号処理を行うための前処理を行う。この前処理では、デコーダは、マクロブロックの復号方法を判別し、当該復号方法に従ってマクロブロックを復号するための準備を行う。
【０００５】
次に、ステップＳ６０３−２において、デコーダは、参照ピクチャが前回復号されたピクチャであり、且つ、マクロブロックの動きベクトルが０である、という判定条件を満たしているか否かを判定する。この判定条件が満たされる場合には、次に復号すべきマクロブロックが前回復号したピクチャデータの同一位置のマクロブロックと一致していることを意味している。デコーダは、上記の判定条件が満たされることを判定した場合にはステップＳ６０３−３に進み、一方、上記の判定条件が満たされないことを判定した場合にはステップＳ６０３−４に進む。
【０００６】
ステップＳ６０３−２からステップＳ６０３−３に進んだ場合には、デコーダは、切り出したマクロブロックの符号化データに対して、動き補償、重み付き予測等の復号処理を行って、マクロブロックを復号する。一方、ステップＳ６０３−２からステップＳ６０３−４に進んだ場合には、デコーダは、前回復号したピクチャデータの同一位置のマクロブロックをコピーする。より詳しくは、デコーダ１０は、前回復号したピクチャデータの同一位置のマクロブロックを格納した記憶領域にアクセスして、当該同一位置のマクロブロックのデータを読み出し、その後、次に復号すべきマクロブロックを格納するための記憶領域に、当該同一位置のマクロブロックのデータを書き込む。
【０００７】
なお、下記の特許文献１，２には、他の従来技術に係るデコーダが示されている。
【特許文献１】特開２００８−１７５２７号公報
【特許文献２】特開２００７−３１２３５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したとおり、ＪＭを採用したデコーダは、次に復号すべきマクロブロックが前回復号したピクチャデータの同一位置のマクロブロックと一致していることを判定した場合に、前回復号したピクチャデータの同一位置のマクロブロックをコピーする。このマクロブロック単位でのコピー処理は、両マクロブロックが一致する度に行われるため、一枚のピクチャデータを復号する間に何回も行われる処理である。
【０００９】
したがって、デコーダは、一枚のピクチャデータを復号する間に、両マクロブロックが一致する度に何回もメモリにアクセスするため、メモリアクセスのオーバーヘッドが大きくなり、マクロブロックのコピー処理に要する時間が長くなる。その結果、ＪＭを採用したデコーダでは、復号処理の効率が低下してしまう。
【００１０】
特に、動きが少ない動画像データを復号して再生する際には、マクロブロック単位でのコピー処理が大量に発生し、復号処理の効率が顕著に低下してしまう。すなわち、動きが少ない動画像を再生する際には、コピーするマクロブロックの１個のデータ量は小さいが、マクロブロックをコピーする回数が多いため、メモリアクセスのオーバーヘッドが大きくなり、マクロブロックのコピー処理に要する時間が長くなる。
【００１１】
本発明は、上記の課題を解決するためになされたもので、復号処理を高効率化することが可能なデコーダおよびデコード方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した目的を達成するために、本発明は、ピクチャデータの符号化データを取り込んで当該ピクチャデータを構成する複数のマクロブロックを逐次に復号し、このピクチャデータごとの復号を繰り返すことにより一連のピクチャデータを逐次に復号するデコーダであって、復号対象のピクチャデータを書き込むべき記憶領域に前回復号したピクチャデータをコピーするコピー手段と、デコーダが取り込んだ符号化データから、復号対象のピクチャデータに含まれる次に復号すべきマクロブロックの符号化データを切り出す切り出し手段と、次に復号すべきマクロブロックの復号方法を示すデータに基づいて、次に復号すべきマクロブロックが前回復号したピクチャデータの同一位置のマクロブロックと一致するか否かを判定する判定手段と、判定手段により両マクロブロックが一致しないことが判定された場合に、次に復号すべきマクロブロックの符号化データを復号して当該マクロブロックの復号化データを記憶領域に書き込み、一方、判定手段により両マクロブロックが一致することが判定された場合に、次に復号すべきマクロブロックの符号化データの復号処理を実行しない復号手段と、を備えることを特徴とする。
【００１３】
本発明のデコーダでは、復号対象のピクチャデータを書き込むべき記憶領域に前回復号したピクチャデータを予めコピーしておき、その後、復号対象のピクチャデータに含まれる次に復号すべきマクロブロックが前回復号したピクチャデータの同一位置のマクロブロックと一致するか否かを判定する。そして、両マクロブロックが一致しないことが判定された場合に、次に復号すべきマクロブロックの符号化データを復号して当該マクロブロックの復号化データを記憶領域に書き込む。その一方で、両マクロブロックが一致することが判定された場合に、次に復号すべきマクロブロックの符号化データの復号処理を実行しない。このデコーダによれば、復号対象のピクチャデータを書き込むべき記憶領域に前回復号したピクチャデータを予めコピーしているため、復号対象のピクチャデータを構成する複数のマクロブロックを逐次に復号する際に、次に復号すべきマクロブロックが前回復号したピクチャデータの同一位置のマクロブロックと一致していることが判定される度に、その前回復号したマクロブロックのデータをコピーする必要はない。よって、前回復号したピクチャデータのマクロブロックのコピーが頻繁に行われることを防止して、ピクチャデータの復号処理を高効率化することができる。
【００１４】
上述したデコーダにおいて、復号手段は、判定手段により両マクロブロックが一致しないことが判定された場合に、次に復号すべきマクロブロックの符号化データを復号するための前処理を行ってから、次に復号すべきマクロブロックの符号化データを復号して当該マクロブロックの復号化データを記憶領域に書き込むことが好ましい。上記の構成によれば、両マクロブロックが一致しないことが判定された場合にのみ、次に復号すべきマクロブロックの符号化データを復号するための前処理が行われ、その一方で、両マクロブロックが一致することが判定された場合には前処理が行われない。よって、両マクロブロックが一致することが判定された場合に前処理が行われることを防止することにより、デコーダにおける無駄な処理を少なくし、ピクチャデータの復号処理を更に効率化することができる。
【００１５】
上述したデコーダにおいて、切り出し手段は、判定手段により両マクロブロックが一致することが判定された場合に、符号化データの切り出しを中断することが好ましい。上記の構成によれば、両マクロブロックが一致することが判定された場合に、次に復号すべきマクロブロックの符号化データの切り出しを中断することにより、デコーダにおける無駄な処理を少なくし、ピクチャデータの復号処理を更に効率化することができる。
【００１６】
上述した目的を達成するために、本発明は、ピクチャデータの符号化データを取り込んで当該ピクチャデータを構成する複数のマクロブロックを逐次に復号し、このピクチャデータごとの復号を繰り返すことにより一連のピクチャデータを逐次に復号するデコードプログラムであって、復号対象のピクチャデータを書き込むべき記憶領域に前回復号したピクチャデータをコピーするコピー機能と、デコードプログラムが取り込んだ符号化データから、復号対象のピクチャデータに含まれる次に復号すべきマクロブロックの符号化データを切り出す切り出し機能と、次に復号すべきマクロブロックの復号方法を示すデータに基づいて、次に復号すべきマクロブロックが前回復号したピクチャデータの同一位置のマクロブロックと一致するか否かを判定する判定機能と、判定機能により両マクロブロックが一致しないことが判定された場合に、次に復号すべきマクロブロックの符号化データを復号して当該マクロブロックの復号化データを記憶領域に書き込み、一方、判定機能により両マクロブロックが一致することが判定された場合に、次に復号すべきマクロブロックの符号化データの復号処理を実行しない復号機能と、をコンピュータに実現させるデコードプログラムである。
【００１７】
上述したデコーダにおいて、復号機能は、判定機能により両マクロブロックが一致しないことが判定された場合に、次に復号すべきマクロブロックの符号化データを復号するための前処理を行ってから、次に復号すべきマクロブロックの符号化データを復号して当該マクロブロックの復号化データを記憶領域に書き込むことが好ましい。
【００１８】
上述したデコーダにおいて、切り出し機能は、判定機能により両マクロブロックが一致することが判定された場合に、符号化データの切り出しを中断することが好ましい。
【発明の効果】
【００１９】
本発明によれば、一連のピクチャデータの符号化データを復号するデコーダおよびデコードプログラムであって、復号処理を高効率化することが可能なデコーダおよびデコードプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２０】
以下、添付図面を参照して、本発明の好適な実施形態について詳細に説明する。なお、説明において、同一要素または同一機能を有する要素には、同一符号を用いることとし、重複する説明は省略する。
【００２１】
図１には、本実施形態に係るデコーダ１０のハードウェア構成が示されている。デコーダ１０は、汎用のコンピュータを用いて構成されており、バス１６により接続されたＣＰＵ（Central Processing Unit）１２およびＲＡＭ（Random Access Memory）１４を含んでいる。ＣＰＵ１２およびＲＡＭ１４は、Ｈ．２６４／ＡＶＣ規格に準拠した復号処理を行う演算処理部である。すなわち、ＣＰＵ１２は、Ｈ．２６４／ＡＶＣ規格に準拠したデコードプログラムをＲＡＭ１４に読み出して実行し、時系列に並んだ一連のピクチャデータである動画像データの符号化データの復号処理を行う。
【００２２】
本実施形態では、一連のピクチャの符号化データのビットストリームＤｉｎが、バス１６を介してＲＡＭ１４に入力される。ＣＰＵ１２およびＲＡＭ１４は、ピクチャの符号化データを復号し、符号化前のピクチャデータをほぼ再生する。復号されたピクチャデータＤｏｕｔは、バス１６を介してＲＡＭ１４から出力される。なお、図１に示されるハードウェア構成は単なる一例であり、他のハードウェア構成によりデコーダ１０が構成されてもよい。
【００２３】
ＲＡＭ１４に入力されるビットストリームは、ＮＡＬ（Network Abstraction Layer）ユニットというパケットを基本単位として構成されている。ＮＡＬユニットには複数の種類があり、スライスデータを含むＮＡＬユニット、シーケンスパラメータセットのデータを含むＮＡＬユニット、ピクチャパラメータセットのデータを含むＮＡＬユニット、アクセスユニットデリミタのデータを含むＮＡＬユニット等がある。
【００２４】
スライスは、ピクチャ内で水平方向に延びる帯状の画像領域であり、複数のマクロブロックにより構成されている。スライスには、復号方法の異なる複数の種類があり、Ｉ（Intra）スライス、Ｐ（Predictive）スライス、Ｂ（Bi-predictive）スライス等がある。Ｉスライスは、画面内予測により復号化可能なスライスであり、Ｐスライスは、参照ピクチャを１枚用いた画面間予測により復号化可能なスライスであり、Ｂスライスは、参照ピクチャを最大２枚用いた画面間予測により復号化可能なスライスである。なお、このようなスライスごとの復号方法は、ピクチャパラメータセット、スライスデータ等のデータに基づいて判別可能である。
【００２５】
図２には、本実施形態に係るデコーダ１０の概略的な機能を示す機能ブロック図が示されている。デコーダ１０は、エントロピー復号部２２と、逆量子化／逆ＤＣＴ部２４と、画面内予測部２８と、動き補償部３０と、重み付き予測部３２と、デブロッキングフィルタ部３４と、を含んで構成されている。これらの機能ブロックの夫々は、デコーダ１０がデコードプログラムを実行することにより実現されるものである。
【００２６】
エントロピー復号部２２は、ビットストリームを取り込むと、ビットストリームから一部の符号化データを切り出し、切り出した符号化データをエントロピー復号する。言い換えれば、エントロピー復号部２２は、ビットストリームから次に復号するピクチャおよびマクロブロックの符号化データを切り出す切り出し部である。逆量子化／逆ＤＣＴ部２４は、エントロピー復号部２２によりエントロピー復号されたマクロブロックの符号化データを逆量子化し、更に逆量子化された信号を逆離散コサイン変換する。
【００２７】
マクロブロックが画面内予測により復号可能なものである場合には、画面内予測部２８は、同一のピクチャ内の情報を用いて画素値を予測する。一方、マクロブロックが画面間予測により復号可能なものである場合には、動き補償部３０は、時間的に前後のピクチャの情報を用いて画素値を予測し、続いて、重み付き予測部３２は、動き補償部３０により処理された画素値に重み係数を掛けて、画面間に生じる明るさの時間変化に適応するように画素値を補正する。なお、画面内予測および画面間予測に必要な情報は、エントロピー復号部２２から画面内予測部２８、動き補償部３０、重み付き予測部３２に与えられる。
【００２８】
マクロブロックの復号方法が画面内予測または画面間予測のいずれであるかに応じて、スイッチ３６が切り替えられる。画面内予測または画面間予測により得られたピクチャデータは、逆量子化および逆ＤＣＴにより得られたピクチャデータに加算される。デブロッキングフィルタ部３４は、復号されたピクチャのブロックノイズを抑制して、そのブロックノイズが抑制されたピクチャデータを出力する。また、デブロッキングフィルタ部３４は、動き補償部３０の利用に供するため、ブロックノイズが抑制されたピクチャデータ４０をＲＡＭ１４に記憶する。
【００２９】
図３のフローチャートには、本実施形態のデコーダ１０における復号処理の全体的な流れが示されている。図３の復号処理は、デコーダ１０がデコードプログラムを実行することにより実現されるものである。
【００３０】
先ず、ステップＳ３０１において、デコーダ１０は、ビットストリームに含まれる全てのピクチャの符号化データを復号したか否かを判定する。ここで、デコーダ１０は、全てのピクチャの符号化データを復号していないことを判定した場合には、次に復号すべきピクチャの符号化データを復号するためにステップＳ３０２の処理に進む。一方、デコーダ１０は、全てのピクチャの符号化データを復号したことを判定した場合には、復号処理を終了する。
【００３１】
次に、ステップＳ３０１からステップＳ３０２に進んだ場合には、デコーダ１０は、次に復号すべきピクチャの符号化データの切り出しを行い、切り出した符号化データのエントロピー復号を行う。そして、ステップＳ３０３において、デコーダ１０は、前回復号した直前のピクチャデータをコピーする。より詳しくは、デコーダ１０は、ＲＡＭ１４において前回復号したピクチャデータを格納した記憶領域にアクセスして、当該前回復号したピクチャデータを読み出し、その後、ＲＡＭ１４において次に復号すべきピクチャデータを格納するための記憶領域に、当該前回復号したピクチャデータを書き込む。
【００３２】
次に、ステップＳ３０４において、デコーダ１０は、復号対象のピクチャを構成する全てのマクロブロックの符号化データを復号したか否かを判定する。ここで、デコーダ１０は、全てのマクロブロックの符号化データを復号していないことを判定した場合には、次に復号すべきマクロブロックの符号化データを復号するためにステップＳ３０５の処理に進む。一方、デコーダ１０は、全てのマクロブロックの符号化データを復号したことを判定した場合には、ステップＳ３０７の処理に進む。
【００３３】
ステップＳ３０４からステップＳ３０５に進んだ場合には、デコーダ１０は、ステップＳ３０２で切り出した復号対象のピクチャの符号化データから、次に処理すべきマクロブロックの符号化データの切り出しを行う。そして、ステップＳ３０６において、デコーダ１０は、切り出したマクロブロックの符号化データを復号する。ここで行われる復号処理は、図２を参照して説明した逆量子化／逆ＤＣＴ、画面内予測、動き補償、重み付き予測等の復号処理である。デコーダ１０は、ＲＡＭ１４において復号対象のマクロブロックを格納するための記憶領域に、マクロブロックの復号化データを書き込む。
【００３４】
一方、ステップＳ３０４からステップＳ３０７に進んだ場合には、デコーダ１０は、ブロックノイズを抑制するためにデブロッキングフィルタ処理を行う。そして、ステップＳ３０８において、デコーダ１０は、デブロッキングフィルタ処理後のピクチャデータを出力する。また、デコーダ１０は、他のピクチャを復号するための参照ピクチャとするために、デブロッキングフィルタ処理後のピクチャデータをＲＡＭ１４に保持しておく。その後、デコーダ１０は、ステップＳ３０１の処理に戻り、ビットストリームに含まれる全てのピクチャデータを処理したか否かを判定する。
【００３５】
図４のフローチャートには、図３におけるステップＳ３０３からステップＳ３０６までの処理がより詳しく示されている。また、図５には、本実施形態における復号処理が模式的に示されている。以下、図４および図５を参照して、本実施形態の復号処理をより詳しく説明する。
【００３６】
前述したように、ステップＳ３０３〜ステップＳ３０６において、デコーダ１０は、前回復号したピクチャデータをコピーしてから、復号対象のピクチャデータに含まれる次に復号すべきマクロブロックの符号化データを切り出し、切り出したマクロブロックの符号化データを復号する。ステップＳ３０６−１〜ステップＳ３０６−３の処理は、ＰスライスまたはＢスライスに含まれるマクロブロックを動き補償により復号する処理である。図５の上段には、前回復号したピクチャデータＰｎ−１を読み出して、次に復号すべきピクチャデータＰｎを格納するための記憶領域に書き込む処理が示されている。
【００３７】
ステップＳ３０６−１において、デコーダ１０は、次に復号すべきマクロブロックの復号方法を示すデータに基づいて、次に復号すべきマクロブロックの画素値が前回復号した直前のピクチャの同一位置のマクロブロックの画素値と一致するか否かを判定する。より具体的には、デコーダ１０は、ピクチャパラメータセットやスライスヘッダなどのデータから次に復号すべきマクロブロックの復号方法を認識し、次に復号すべきマクロブロックの復号方法に基づいて、「次に復号すべきマクロブロックが前回復号したピクチャデータを参照するものであり、且つ、次に復号すべきマクロブロックの動きベクトルが０である」という判定条件が満たされるか否かを判定する。上記の判定条件が満たされる場合には、両マクロブロックが一致することが判断できる。その一方で、上記の判定条件が満たされない場合には、両マクロブロックが一致しないことが判断できる。
【００３８】
なお、ステップＳ３０６−１の判定処理は、次に復号すべきマクロブロックの符号化データを切り出す処理の途中、図４においてステップＳ３０５−１の切り出し処理の前半部分とステップＳ３０５−２の切り出し処理の後半部分との間に行われる。よって、ステップＳ３０６−１における両マクロブロックが一致するか否かの判定は、次に復号すべきマクロブロックの符号化データを切り出している途中で結論を出すことができる。すなわち、デコーダ１０は、次に復号すべきマクロブロックの符号化データを切り出している途中で、ピクチャパラメータセットやスライスヘッダなどがエントロピー符号化された符号化データをエントロピー復号した時点で、これらのピクチャパラメータセットやスライスヘッダなどのデータに基づいて上記の判定条件が満たされるか否かを判定することが可能となる。よって、デコーダ１０は、次に復号すべきマクロブロックの符号化データの全てを切り出してエントロピー復号する前に、次に復号すべきマクロブロックの符号化データを切り出している途中で上記判定の結論を出すことができる。
【００３９】
ステップＳ３０６−１において両マクロブロックが一致しないことが判定された場合には、デコーダ１０は、次に復号すべきマクロブロックの符号化データを復号するためにステップＳ３０６−２の処理に進む。一方、ステップＳ３０６−１において両マクロブロックが一致することが判定された場合には、デコーダ１０は、マクロブロックの符号化データの復号処理を実行せずに終了し、更に復号すべき別のマクロブロックが有るか否かを判定するためにステップＳ３０４の処理に進む。ステップＳ３０６−１からステップＳ３０４に進む時には、デコーダは、ステップＳ３０５で行われているマクロブロックの符号化データの切り出し処理を中断する。このように、両マクロブロックが一致することが判定された場合に、次に復号すべきマクロブロックの符号化データの切り出しを中断することにより、デコーダ１０における無駄な処理を少なくし、ピクチャデータの復号処理を効率化している。
【００４０】
ステップＳ３０６−１からステップＳ３０６−２に進んだ場合には、デコーダ１０は、次に復号すべきマクロブロックの符号化データを復号するための前処理を行う。ここで、前処理とは、ピクチャパラメータセットやスライスヘッダなどに含まれるパラメータデータに基づいて、逆量子化、逆ＤＣＴ、画面内予測、動き補償、重み付き予測などの復号計算を行うための準備となる処理である。本実施形態では、ステップＳ３０６−１で両マクロブロックが一致しないことが判定された場合に、次に復号すべきマクロブロックの符号化データを復号するための前処理が行われる。一方、ステップＳ３０６−１で両マクロブロックが一致することが判定された場合に、次に復号すべきマクロブロックの符号化データを復号するための前処理が行われない。よって、図６に示される従来技術（ＪＭ）と比較して、両マクロブロックが一致することが判定された場合に前処理が行われることが防止されているため、デコーダ１０における無駄な処理を少なくし、ピクチャデータの復号処理を効率化している。
【００４１】
次に、ステップＳ３０６−３において、デコーダ１０は、動き補償、重み付き予測などの復号処理を行うことにより、復号対象のマクロブロックの符号化データを復号して、当該マクロブロックの復号化データをＲＡＭ１４に書き込む。このようにして、復号対象のマクロブロックのためのＲＡＭ１４の記憶領域に、ステップＳ３０６−２およびステップＳ３０６−３の処理により復号されたマクロブロックの復号化データが書き込まれる。その後、デコーダ１０は、ステップＳ３０４の処理に戻り、復号対象のピクチャデータを構成する全てのマクロブロックを処理したか否かを判定する。
【００４２】
前述したように、ステップＳ３０６−１において両マクロブロックが一致することが判定された場合には、デコーダ１０は、ステップＳ３０６−２およびステップＳ３０６−３の処理を行うことなく、ステップ３０４に戻って復号対象のピクチャデータを構成する全てのマクロブロックを処理したか否かを判定する。ここで、ステップＳ３０６−２およびステップＳ３０６−３の処理を行う必要がない理由は、復号対象のマクロブロックのためのＲＡＭ１４の記憶領域には既に前回復号したピクチャデータが書き込まれているからである。図５の下段には、復号されたピクチャデータＰｎが示されている。復号されたピクチャデータＰｎにおいて、斜線が付された領域は、画面内予測や動き補償などの復号処理が行われたマクロブロックであり、一方、斜線が付されない領域は、画面内予測や動き補償などの復号処理が行われなかったマクロブロックである。
【００４３】
本実施形態のデコーダ１０では、復号対象のピクチャデータを書き込むべき記憶領域に前回復号したピクチャデータを予めコピーしておき、その後、復号対象のピクチャデータに含まれる次に復号すべきマクロブロックが前回復号したピクチャデータの同一位置のマクロブロックと一致するか否かを判定する。そして、両マクロブロックが一致しないことが判定された場合に、次に復号すべきマクロブロックの符号化データを復号して当該マクロブロックの復号化データを記憶領域に書き込む。その一方で、両マクロブロックが一致することが判定された場合に、次に復号すべきマクロブロックの符号化データの復号処理を実行しない。このデコーダ１０によれば、復号対象のピクチャデータを書き込むべき記憶領域に前回復号したピクチャデータを予めコピーしているため、復号対象のピクチャデータを構成する複数のマクロブロックを逐次に復号する際に、次に復号すべきマクロブロックが前回復号したピクチャデータの同一位置のマクロブロックと一致していることが判定される度に、その前回復号したマクロブロックのデータをコピーする必要はない。よって、前回復号したピクチャデータのマクロブロックのコピーが頻繁に行われることを防止して、ピクチャデータの復号処理を高効率化することができる。
【００４４】
ＶＧＡ（Video Graphics Array）画像の復号処理を行う場合を一例として説明すると、従来技術のデコーダ１０では、ＶＧＡ画像のマクロブロックの個数は１３００個程度であるため、１回のコピー処理でコピーされるマクロブロック１個のデータ量はピクチャ１枚のデータ量の約１／１０００であり、１枚のピクチャにつき数百回〜千数百回のコピー処理が行われていた。また、従来技術のデコーダ１０では、マクロブロックのコピー処理をする場合でも、画面内予測や動き補償などのための前処理が行われており、このような前処理は無駄な処理となっていた。これに対して、本実施形態のデコーダ１０では、１枚のピクチャにつき１回のコピーが行われるのみである。よって、１回のコピーにおけるデータ量は大きくなるが、コピー処理に必要なオーバーヘッドが抑制されるため、ピクチャデータの復号処理を高効率化することができる。なお、本実施形態の復号処理は、静止画像や動きの少ない動画像ほど、コピー処理に必要なオーバーヘッドを抑制できる効果が顕著となる。
【００４５】
以上の説明では、本実施形態のデコーダ１０について説明したが、本発明はこれに限定されるものではない。例えば、本実施形態のデコーダ１０はＨ．２６４／ＡＶＣの規格に準拠したデコーダであったが、他の規格に準拠したデコーダに本発明が適用されてもよい。また、本実施形態のデコーダ１０は汎用的なＣＰＵ１２およびＲＡＭ１４により構成されたが、他の実施形態ではデコーダは復号処理を行う専用の集積回路により構成されてもよい。また、本実施形態のデコーダ１０はＰスライスに含まれるマクロブロックの復号処理について高効率化する効果を得たが、Ｂスライスに含まれるマクロブロックの復号処理についても高効率化する効果を得られる。
【図面の簡単な説明】
【００４６】
【図１】本実施形態に係るデコーダのハードウェア構成が示されている。
【図２】本実施形態に係るデコーダの処理の機能ブロック図が示されている。
【図３】本実施形態に係るデコーダにおける復号処理の流れを概略的に示すフローチャートである。
【図４】本実施形態に係るデコーダにおける復号処理の流れをより詳細に示すフローチャートである。
【図５】本実施形態に係るデコーダにおける復号処理を模式的に示す図である。
【図６】従来技術に係るデコーダにおける復号処理の流れを示すフローチャートである。
【符号の説明】
【００４７】
１０・・・デコーダ、１２・・・ＣＰＵ、１４・・・ＲＡＭ、１６・・・バス、２２・・・エントロピー復号部、２４・・・逆量子化／逆ＤＣＴ部、２８・・・画面内予測部、３０・・・動き補償部、３２・・・重み付き予測部、３４・・・デブロッキングフィルタ部、３６・・・スイッチ、４０・・・ピクチャデータ。
【図１】
2010093580.tif 000003
【図２】
2010093580.tif 000004
【図３】
2010093580.tif 000005
【図４】
2010093580.tif 000006
【図５】
2010093580.tif 000007
【図６】
2010093580.tif 000008