(本発明の基礎となった知見)
画像を符号化する画像符号化装置は、画像を構成する各ピクチャを16x16画素でそれぞれが構成される複数のマクロブロック(Macroblock、略してMBと呼ぶこともある)に分割する。そして、画像符号化装置は、ラスタースキャン順に各マクロブロックを符号化する。画像符号化装置は、画像を符号化し圧縮することにより、符号化ストリームを生成する。画像を復号する画像処理装置は、この符号化ストリームをラスタースキャン順でマクロブロック毎に復号し、元の画像の各ピクチャを再生する。
従来の画像符号化方式の1つとしてITU−T H.264規格がある(例えば、非特許文献1を参照)。画像処理装置は、H.264規格で符号化された画像を復号するため、まず、符号化ストリームを読み込む。そして、画像処理装置は、各種ヘッダ情報の復号後、可変長復号を行う。画像処理装置は、可変長復号により得られた係数情報を逆量子化して、逆周波数変換する。これにより、差分画像が生成される。
次に、画像処理装置は、可変長復号により得られたマクロブロックタイプに応じて、面内予測または動き補償を行う。ここで、動き補償は最大16x16画素に対して行われる。これにより、画像処理装置は、予測画像を生成する。その後、画像処理装置は、予測画像に差分画像を加算することにより、再構成処理を行う。そして、画像処理装置は、再構成画像にインループフィルタ処理を行うことで復号対象画像を復号する。
インループフィルタは、再構成画像がフレームメモリに参照画像として格納される前に適用されるフィルタである。インループフィルタとして、デブロックフィルタ、サンプルアダプティブオフセットフィルタおよびアクティブループフィルタが用いられる場合がある。一方、表示の際に適用されるフィルタは、アウトループフィルタと呼ばれる。
H.264規格に係る画像符号化装置は、先ほど述べた通り、16x16画素で構成されるマクロブロック単位で画像を符号化する。しかし、符号化の単位として16x16画素が、必ずしも最適とは限らない。一般に、画像の解像度が高くなるにつれて、隣接ブロック間の相関が高くなる。そのため、画像の解像度が高い場合、画像符号化装置は、符号化の単位を大きくした方が、より圧縮効率を向上させることができる。
近年、4K2K(3840x2160画素)等のように、超高精細なディスプレイの開発が行われてきている。したがって、画像の解像度がますます高くなっていくことが予想される。H.264規格に係る画像符号化装置は、画像の高解像度化が進むにつれて、高解像度の画像を効率的に符号化することが困難になってきている。
一方、次世代の画像符号化規格として提案されている技術の中には、このような課題を解決する技術がある(非特許文献2)。この技術では、従来のH.264規格に対応する符号化単位ブロックのサイズが可変になる。そして、この技術に係る画像符号化装置は、従来の16x16画素よりも大きなブロックで画像を符号化することも可能であり、超高精細画像を適切に符号化することができる。
具体的には、非特許文献2では、符号化のデータ単位として、符号化ユニット(CU:Coding Unit)が定義されている。この符号化ユニットは、従来の符号化規格におけるマクロブロックと同様に、面内予測を行うイントラ予測と、動き補償を行うインター予測とを切り替えることが可能なデータ単位であり、符号化の最も基本的なブロックとして規定されている。
この符号化ユニットのサイズは、8x8画素、16x16画素、32x32画素、64x64画素のいずれかである。最も大きな符号化ユニットは、最大符号化ユニット(LCU:Largest Coding Unit)と呼ばれる。
さらに、周波数変換のデータ単位として変換ユニット(TU:Transform Unit、周波数変換ユニットとも呼ばれる)が定義されている。この変換ユニットは、4x4画素、8x8画素、16x16画素、16x12画素、32x32画素など、4x4画素以上の様々な矩形のサイズに設定される。
また、さらに、面内予測またはインター予測のデータ単位として、予測ユニット(PU:Prediction Unit)が定義されている。予測ユニットは、符号化ユニットの内部において、64x64画素、64x32画素、32x64画素、32x32画素、32x16画素、16画素x32画素、16x12画素など、4x4画素以上の様々な矩形のサイズに設定される。
一方、H.264規格に係る画像復号装置として、特許文献1に記載された画像復号装置がある。特許文献1に係る画像復号装置は、予め定められたサイズでそれぞれが構成される複数のサブブロックにマクロブロックを分割して、複数のサブブロックのそれぞれに対して動き補償を実行する。
図1は、マクロブロックの分割を示す図である。例えば、特許文献1に係る画像復号装置は、16x16画素のマクロブロックをそれぞれが4x4画素で構成される複数のサブブロックに分割する。そして、画像復号装置は、複数のサブブロックのそれぞれに対して動き補償処理を行う。これにより、マクロブロックのサイズによらず、動き補償のデータサイズが予め定められたサイズになる。したがって、動き補償の演算処理が簡素化される。
しかしながら、非特許文献2のように、符号化ユニット、予測ユニットおよび変換ユニットがそれぞれ様々なサイズで構成されている場合、逆周波数変換処理、動き補償処理および再構成処理等を含むパイプライン処理の円滑な動作に支障が生じる場合がある。例えば、符号化ユニット、予測ユニットおよび変換ユニットのサイズまたは形状の違いによって、逆周波数変換処理、動き補償処理および再構成処理等のそれぞれにおいて、必要な処理時間が変動する。これにより、無駄な待ち時間が発生する可能性がある。
ここで、特許文献1の技術によって、動き補償を予め定められたサイズで実行することが可能である。しかし、一方で、例えば、変換ユニットのサイズは、様々なサイズで構成される。様々なサイズで周波数変換が実行された場合、予め定められたサイズで逆周波数変換を実行することは困難である。したがって、特許文献1の技術によっても、データ単位のサイズおよび形状が統一されない。
そのため、非特許文献2に係る無駄な待ち時間の発生は、特許文献1の技術によっても、解消されない。この無駄な待ち時間により、全体の処理において発生する遅延が大きくなる。
そこで、本発明の一態様に係る画像処理装置は、1以上の予測ユニットに対する予測処理と、前記1以上の予測ユニットを含む領域に含まれる複数の変換ユニットに対する周波数変換処理とを含む符号化処理によって符号化された画像を復号するための処理を実行する画像処理装置であって、前記複数の変換ユニットに対して予め定められている変換順序に依存させて、前記1以上の予測ユニットの予測画像に関する画像処理を実行する処理部を備える。
これにより、予測画像に関する画像処理が、取得された変換順序に沿って、適切に実行される。したがって、無駄な待ち時間が解消され、全体の処理において発生する遅延が小さくなる。
例えば、前記処理部は、前記変換順序を取得し、取得された前記変換順序に沿って、前記画像処理を実行してもよい。
これにより、予測画像に関する画像処理が、取得された変換順序に沿って、適切に実行される。
また、例えば、前記処理部は、変換ユニットに等しい、または、変換ユニットよりも小さいブロック毎に、前記画像処理を前記変換順序に沿って実行してもよい。
これにより、予測画像に関する画像処理が、変換順序に沿うように、変換ユニット毎に実行される。あるいは、予測画像に関する画像処理が、変換順序に沿うように、変換ユニットよりも小さいブロック毎に実行される。したがって、予測画像に関する画像処理が、変換順序に沿って、適切に実行される。
また、例えば、前記処理部は、前記予測画像を出力する処理を前記画像処理として前記変換順序に沿って実行してもよい。
これにより、予測画像を出力する処理が、変換順序に沿って実行される。したがって、パイプライン処理が円滑に実行され、全体の処理において発生する遅延が小さくなる。
また、例えば、前記処理部は、前記1以上の予測ユニットに対して予め定められている予測順序が前記変換順序に沿っていない場合、前記画像処理を前記変換順序に沿って実行してもよい。
これにより、予め定められた予測順序が変換順序に沿っていない場合、予測画像に関する画像処理に、予め定められた予測順序ではなく、変換順序が用いられる。したがって、パイプライン処理が円滑に実行され、全体の処理において発生する遅延が小さくなる。
また、例えば、前記画像処理装置は、さらに、前記1以上の予測ユニットを前記複数の変換ユニットのエッジに沿って複数のブロックに分割する分割部を備え、前記処理部は、前記1以上の予測ユニットを分割することにより得られたブロック毎に、前記画像処理を前記変換順序に沿って実行してもよい。
これにより、大きい予測ユニットが、変換ユニットのエッジに沿って分割される。したがって、大きい予測ユニットの予測画像に関する画像処理が変換順序に沿って、適切に実行される。
また、例えば、前記分割部は、前記1以上の予測ユニットに対応する1つの予測ユニットを前記複数の変換ユニットの前記エッジに沿って前記複数のブロックに分割し、前記処理部は、前記1つの予測ユニットを分割することにより得られたブロック毎に、前記画像処理を前記変換順序に沿って実行してもよい。
これにより、複数の変換ユニットの領域で構成される予測ユニットも、これらの変換ユニットのエッジに沿って分割される。したがって、このような予測ユニットの予測画像に関する画像処理も変換順序に沿って、適切に実行される。
また、例えば、前記分割部は、前記複数の変換ユニットを含む符号化ユニットに含まれる複数の予測ユニットを前記1以上の予測ユニットとして前記複数の変換ユニットの前記エッジに沿って前記複数のブロックに分割し、前記処理部は、前記複数の予測ユニットを分割することにより得られたブロック毎に、前記画像処理を前記変換順序に沿って実行してもよい。
これにより、符号化ユニットにおける複数の予測ユニットが、複数の変換ユニットに応じて分割される。したがって、符号化ユニットに対応する予測画像に関する画像処理が適切に実行される。
また、例えば、前記処理部は、前記予測画像を生成する処理と、生成された前記予測画像を出力する処理とを前記画像処理として前記変換順序に沿って実行してもよい。
これにより、予測画像を生成する処理と、予測画像を出力する処理とが、変換順序に沿って実行される。したがって、パイプライン処理が、円滑に実行され、全体の処理において発生する遅延が小さくなる。
また、例えば、前記処理部は、前記予測画像を生成するための情報を取得する処理と、取得された前記情報を用いて前記予測画像を生成する処理と、生成された前記予測画像を出力する処理とを前記画像処理として前記変換順序に沿って実行してもよい。
これにより、予測画像を生成するための情報を取得する処理と、予測画像を生成する処理と、予測画像を出力する処理とが、変換順序に沿って実行される。したがって、パイプライン処理が、円滑に実行され、全体の処理において発生する遅延が小さくなる。
また、例えば、前記処理部は、動き補償処理によって生成された前記予測画像を出力する処理を前記画像処理として前記変換順序に沿って実行してもよい。
これにより、動き補償で生成された予測画像を出力する処理が、変換順序に沿って実行される。したがって、パイプライン処理が円滑に実行され、全体の処理において発生する遅延が小さくなる。
また、例えば、前記処理部は、動き補償処理を実行することにより前記予測画像を生成する処理と、前記予測画像を出力する処理とを前記画像処理として前記変換順序に沿って実行してもよい。
これにより、動き補償で予測画像を生成する処理と、動き補償で生成された予測画像を出力する処理とが、変換順序に沿って実行される。したがって、パイプライン処理が円滑に実行され、全体の処理において発生する遅延が小さくなる。
また、例えば、前記処理部は、動き補償処理を実行するための情報を取得する処理と、取得された前記情報を用いて前記動き補償処理を実行することにより前記予測画像を生成する処理と、生成された前記予測画像を出力する処理とを前記画像処理として前記変換順序に沿って実行してもよい。
これにより、動き補償のための情報を取得する処理と、動き補償で予測画像を生成する処理と、動き補償で生成された予測画像を出力する処理とが、変換順序に沿って実行される。したがって、パイプライン処理が円滑に実行され、全体の処理において発生する遅延が小さくなる。
また、例えば、前記処理部は、面内予測処理によって生成された前記予測画像を出力する処理を前記画像処理として前記変換順序に沿って実行してもよい。
これにより、面内予測で生成された予測画像を出力する処理が、変換順序に沿って実行される。したがって、パイプライン処理が円滑に実行され、全体の処理において発生する遅延が小さくなる。
また、例えば、前記処理部は、面内予測処理を実行することにより前記予測画像を生成する処理と、生成された前記予測画像を出力する処理とを前記画像処理として前記変換順序に沿って実行してもよい。
これにより、面内予測で予測画像を生成する処理と、面内予測で生成された予測画像を出力する処理とが、変換順序に沿って実行される。したがって、パイプライン処理が円滑に実行され、全体の処理において発生する遅延が小さくなる。
また、例えば、前記処理部は、面内予測処理を実行するための情報を取得する処理と、取得された前記情報を用いて前記面内予測処理を実行することにより前記予測画像を生成する処理と、生成された前記予測画像を出力する処理とを前記画像処理として前記変換順序に沿って実行してもよい。
これにより、面内予測のための情報を取得する処理と、面内予測で予測画像を生成する処理と、面内予測で生成された予測画像を出力する処理とが、変換順序に沿って実行される。したがって、パイプライン処理が円滑に実行され、全体の処理において発生する遅延が小さくなる。
また、例えば、前記処理部は、前記予測画像を用いて前記画像を再構成する処理を前記画像処理として前記変換順序に沿って実行してもよい。
これにより、予測画像を用いて画像を再構成する処理が、変換順序に沿って実行される。したがって、パイプライン処理が円滑に実行され、全体の処理において発生する遅延が小さくなる。
また、例えば、前記処理部は、さらに、再構成された前記画像に対するフィルタ処理であるインループフィルタ処理を前記変換順序に沿って実行してもよい。
これにより、インループフィルタ処理が、変換順序に沿って実行される。したがって、パイプライン処理が円滑に実行され、全体の処理において発生する遅延が小さくなる。
また、例えば、前記処理部は、さらに、前記インループフィルタ処理が実行された前記画像をフレームメモリに格納する処理を前記変換順序に沿って実行してもよい。
これにより、画像をフレームメモリに格納する処理が、変換順序に沿って実行される。したがって、パイプライン処理が円滑に実行され、全体の処理において発生する遅延が小さくなる。
また、例えば、本発明の一態様に係る画像処理装置は、予測ユニットの予測モードに従って前記予測ユニットの予測画像を生成する面内予測処理を含む符号化処理によって符号化された画像を復号するための処理を実行する画像処理装置であって、前記予測ユニットを複数のブロックに分割する分割部と、前記複数のブロックのそれぞれに対して、前記予測ユニットの前記予測モードに従って面内予測を実行する処理部とを備える画像処理装置でもよい。
これにより、画像処理装置は、小さいデータ単位で面内予測を実行することができる。したがって、画像処理装置は、パイプライン処理をより小さいデータ単位で円滑に実行することができる。よって、画像処理装置は、全体の処理において発生する遅延を小さくすることができる。
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの非一時的な記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示す。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
また、64x64画素、および、32x32画素等の表現は、それぞれ、64画素x64画素、および、32画素x32画素等のサイズを意味する。
また、以下において、ブロック、データ単位および符号化ユニット(CU)等の表現は、それぞれ、まとまった領域を意味する。それらは、それぞれ、画像領域を意味する場合もある。あるいは、それらは、それぞれ、符号化ストリームにおけるデータ領域を意味する場合もある。
また、画像は、静止画像または動画像を構成する複数のピクチャ、1つのピクチャ、および、ピクチャの一部等のいずれでもよい。
(実施の形態1)
(1−1.概要)
まず、本実施の形態に係る画像処理装置の概要について説明する。本実施の形態に係る画像処理装置は、動き補償を含む符号化処理によって生成された符号化ストリームを復号する。符号化において、動き補償のサイズ、すなわち、予測ユニットのサイズは、可変であり、最大で64x64画素である。
画像処理装置は、動き補償が実行される予測ユニットの矩形内に変換ユニットのエッジが含まれている場合、予測ユニットを変換ユニットのエッジで複数のブロック(分割ブロック)に分割する。そして、画像処理装置は、分割により得られた複数のブロックに対して、変換ユニットの処理順序(変換順序)で、参照画像の転送処理、動き補償処理、および、予測画像の出力処理を行う。また、画像処理装置は、以後の再構成処理およびインループフィルタ処理についても、変換ユニットの処理順序で処理を行う。
例えば、画像処理装置は、予測ユニットのサイズが大きい場合でも、予測ユニットを分割して、変換ユニットの処理順序で、動き補償を実行する。これにより、必要なメモリ容量が減少する。
さらに、画像処理装置は、参照画像の転送処理と、動き補償の処理とをパイプライン状に行う。これにより、処理の遅延が減少する。また、画像処理装置は、再構成処理およびインループフィルタ処理を早く開始することができる。したがって、画像処理装置は、復号処理全体を高速化できる。
(1−2.構成)
次に、本実施の形態に係る画像処理装置の構成について説明する。
図2は、本実施の形態に係る画像処理装置の構成図である。本実施の形態に係る画像処理装置は、制御部501、フレームメモリ502、再構成画像メモリ509、可変長復号部503、逆量子化部504、逆周波数変換部505、動き補償部506、面内予測部507、再構成部508、インループフィルタ部510および動きベクトル演算部511を備える。
制御部501は、画像処理装置の全体を制御する。フレームメモリ502は、復号された画像データを記憶するためのメモリである。再構成画像メモリ509は、生成された再構成画像の一部を記憶するためのメモリである。可変長復号部503は、符号化ストリームを読み込み、可変長符号を復号する。逆量子化部504は、逆量子化を行う。逆周波数変換部505は、逆周波数変換を行う。
動きベクトル演算部511は、予測動きベクトルおよび差分動きベクトル等に基づいて、動きベクトルを算出し、動きベクトルを動き補償部506に出力する。動き補償部506は、フレームメモリ502から参照画像を読み出して、動き補償を行い、予測画像を生成する。面内予測部507は、再構成画像メモリ509から参照画像を読み出して、面内予測(イントラ予測とも呼ぶ)を行い、予測画像を生成する。
再構成部508は、差分画像と予測画像とを加算して再構成画像を生成し、再構成画像の一部を再構成画像メモリ509に格納する。インループフィルタ部510は、再構成画像のノイズを除去し、再構成画像を高画質化する。
図3は、本実施の形態に係る動き補償部506の周辺の構成図である。図2と同様の構成要素には同じ符号を割り当て、説明を省略する。図3には、図2で示された構成要素以外に、DMA(Direct Memory Access)制御部512、参照画像記憶部513および予測画像記憶部514が示されている。これらは、動き補償部506に含まれていてもよい。
DMA制御部512は、動きベクトル演算部511によって算出された動きベクトルに基づいて、フレームメモリ502から参照画像記憶部513へ参照画像を転送する。参照画像記憶部513には、DMA制御部512によって転送された参照画像が記憶される。また、予測画像記憶部514には、動き補償部506によって生成された予測画像が記憶される。
動き補償部506は、動きベクトルに基づいて、動き補償を実行する。その際、動き補償部506は、可変長復号部503から変換ユニットの処理順序についての情報を取得する。そして、動き補償部506は、変換ユニットの処理順序に従って、動き補償を実行して、予測画像を生成する。その後、動き補償部506は、予測画像を予測画像記憶部514に格納する。再構成部508は、予測画像記憶部514に格納された予測画像を用いて、再構成処理を実行する。
以上が、本実施の形態に係る画像処理装置の構成についての説明である。
(1−3.動作)
次に、本実施の形態に係る画像処理装置の動作を説明する。本実施の形態に係る画像処理装置が復号する符号化ストリームは、符号化ユニット(CU)と、変換ユニット(TU)と、予測ユニット(PU)とで構成される。
符号化ユニットは、64x64画素〜8x8画素のサイズで設定され、面内予測とインター予測との切り替え可能なデータ単位である。変換ユニットは、符号化ユニットの内部の領域において、64x64画素〜4x4画素のサイズで設定される。予測ユニットは、符号化ユニットの内部の領域において、64x64画素〜4x4画素のサイズで設定され、面内予測のための予測モード、または、インター予測のための動きベクトルを有する。以下、図4A〜図6Bを用いて符号化ストリームの構成について説明する。
図4Aおよび図4Bは、本実施の形態に係る画像処理装置が復号する画像の階層的な構成を示している。図4Aに示すように、複数のピクチャのまとまりは、シーケンスと呼ばれる。また、図4Bに示すように、各ピクチャはスライスに分割され、各スライスはさらに符号化ユニットに分割される。なお、ピクチャはスライスに分割されない場合もある。
本実施の形態において、最大符号化ユニット(LCU)のサイズは、64x64画素である。
図4Cは、本実施の形態に係る符号化ストリームを示す図である。図4Aおよび図4Bに示されたデータが階層的に符号化されることにより、図4Cに示された符号化ストリームが得られる。
図4Cに示された符号化ストリームは、シーケンスを制御するシーケンスヘッダ、ピクチャを制御するピクチャヘッダ、スライスを制御するスライスヘッダ、および、符号化ユニットレイヤデータ(CUレイヤデータ)で構成される。H.264規格において、シーケンスヘッダは、SPS(Sequence Parameter Set)とも呼ばれ、ピクチャヘッダは、PPS(Picture Parameter Set)とも呼ばれる。
図5Aは、本実施の形態に係る符号化ユニットと符号化ユニットレイヤデータの構成例を示す図である。符号化ユニットに対応する符号化ユニットレイヤデータは、CU分割フラグ、および、CUデータ(符号化ユニットデータ)で構成される。このCU分割フラグは、「1」の場合、符号化ユニットを4分割することを示し、「0」の場合、符号化ユニットを4分割しないことを示す。図5Aでは、64x64画素の符号化ユニットは、分割されない。すなわち、CU分割フラグは「0」である。
図5Bは、本実施の形態に係るCUデータの構成例を示す図である。CUデータは、CUタイプ、動きベクトルまたは面内予測モード、および、係数を含む。CUタイプによって、予測ユニットのサイズが決定される。
図6Aは、選択可能な予測ユニットのサイズの例を示す図である。具体的には、64x64画素、32x64画素、64x32画素、32x32画素、16x32画素、32x16画素、16x16画素、16x8画素、8x16画素、8x8画素、8x4画素、4x8画素、および、4x4画素等の予測ユニットが示されている。予測ユニットのサイズは、4x4画素以上のサイズから選択可能である。また、予測ユニットの形状は、長方形でもよい。
そして、予測ユニット毎に、動きベクトルまたは面内予測モードが指定される。本実施の形態では、動きベクトルのみが用いられるため、図5Bでは動きベクトルのみが示されている。また、図6Aのように、正方形を1:3に分割することにより得られる16x64画素の予測ユニットおよび48x64画素の予測ユニットが選択される場合もある。
図6Bは、選択可能な変換ユニットのサイズの例を示す図である。具体的には、32x32画素、16x32画素、32x16画素、16x16画素、16x8画素、8x16画素、8x8画素、8x4画素、4x8画素、および、4x4画素等の変換ユニットが示されている。図6Bのように、正方形を1:3に分割することにより得られる8x32画素の変換ユニットおよび24x32画素の変換ユニットが選択される場合もある。
図7は、符号化ストリームに含まれる1シーケンスの復号動作を示すフローチャートである。図7に示すフローチャートを用いて、図2に示した画像処理装置の動作を説明する。図7のように、画像処理装置は、まず、シーケンスヘッダを復号する(S901)。その際、可変長復号部503は、制御部501の制御に基づいて、符号化ストリームを復号する。次に、画像処理装置は、同様に、ピクチャヘッダを復号し(S902)、スライスヘッダを復号する(S903)。
次に、画像処理装置は、符号化ユニットを復号する(S904)。符号化ユニットの復号については後で詳しく説明する。画像処理装置は、符号化ユニットの復号後、復号された符号化ユニットがスライスの最後の符号化ユニットであるか否かを判定する(S905)。そして、復号された符号化ユニットがスライスの最後でない場合(S905でNo)、再度、画像処理装置は、次の符号化ユニットを復号する(S904)。
さらに、画像処理装置は、復号された符号化ユニットを含むスライスがピクチャの最後のスライスであるか否かを判定する(S906)。そして、スライスがピクチャの最後でない場合(S906でNo)、画像処理装置は、再度、スライスヘッダを復号する(S903)。
さらに、画像処理装置は、復号された符号化ユニットを含むピクチャがシーケンスの最後のピクチャであるか否かを判定する(S907)。そして、ピクチャがシーケンスの最後でない場合(S907でNo)、画像処理装置は、再度、ピクチャヘッダを復号する(S902)。画像処理装置は、シーケンスのすべてのピクチャの復号後、一連の復号動作を終了する。
図8は、1つの符号化ユニットの復号動作を示すフローチャートである。図8に示すフローチャートを用いて、図7の符号化ユニットの復号(S904)の動作を説明する。
まず、可変長復号部503は、入力された符号化ストリームに含まれる処理対象の符号化ユニットについて、可変長復号を行う(S1001)。
可変長復号処理(S1001)において、可変長復号部503は、符号化ユニットタイプ、面内予測(イントラ予測)モード、動きベクトル情報および量子化パラメータなどの符号化情報を出力する。本実施の形態において、出力される符号化情報には、符号化ユニットのサイズ、符号化ユニットの処理順序、予測ユニットのサイズ、変換ユニットのサイズ、および、変換ユニットの処理順序などが含まれる。また、可変長復号部503は、各画素データに対応する係数情報を出力する。
符号化情報は、制御部501に出力され、その後、各処理部に入力される。係数情報は、次の逆量子化部504に出力される。次に、逆量子化部504は、逆量子化処理を行う(S1002)。その後、逆周波数変換部505は、逆周波数変換を行って差分画像を生成する(S1003)。
次に、制御部501は、処理対象の符号化ユニットにインター予測が用いられるか、面内予測が用いられるかの判定を行う(S1004)。
インター予測が用いられる場合(S1004でYes)、制御部501は、動きベクトル演算部511を起動する。動きベクトル演算部511は、動きベクトルの算出を行う(S1005)。そして、動きベクトル演算部511は、動きベクトルにより指し示される参照画像をフレームメモリ502から転送する。次に、制御部501は、動き補償部506を起動する。そして、動き補償部506は、1/2画素精度または1/4画素精度等の予測画像を生成する(S1006)。
一方、インター予測が用いられない場合(S1004でNo)、すなわち、面内予測が用いられる場合、制御部501は、面内予測部507を起動する。面内予測部507は、面内予測の処理を行い、予測画像を生成する(S1007)。
再構成部508は、動き補償部506または面内予測部507によって出力された予測画像と、逆周波数変換部505によって出力された差分画像とを加算することにより、再構成画像を生成する(S1008)。
生成された再構成画像は、インループフィルタ部510に入力される。同時に、面内予測で用いられる部分は、再構成画像メモリ509に格納される。最後に、インループフィルタ部510は、得られた再構成画像に対して、ノイズを低減するためのインループフィルタ処理を行う。そして、インループフィルタ部510は、フレームメモリ502に結果を格納する(S1009)。以上で、画像処理装置は、符号化ユニットの復号動作を終了する。
図8の例では、上述の複数の処理が複数のステージに分割されている。そして、これらの複数の処理は、パイプライン処理を構成する。
次に、動きベクトル演算部511および動き補償部506の動作について、詳細に説明する。
図9は、動き補償処理の概略を示す説明図である。図9のように、動き補償処理は、符号化ストリームから復号された動きベクトルv(vx、vy)によって指し示される、過去に復号されたピクチャの一部を取り出し、フィルタ演算を行うことによって、予測画像を生成する処理である。
例えば、予測される予測ユニットのサイズが64x64画素である場合、かつ、8TAPフィルタが用いられる場合、64x64画素に7画素が垂直方向および水平方向に付加される。具体的には、左に3画素、右に4画素、上に3画素、および、下に4画素が付加される。したがって、参照ピクチャから取り出される参照画像は、71x71画素である。予測ユニットの左上の座標が(x、y)である場合、参照画像は、左上の座標が(x+vx−3、y+vy−3)である71x71画素の矩形である。
図10Aは、本実施の形態に係る予測ユニットと動きベクトルを示す図である。図10Aに示された64x64画素の予測ユニットPU0は、1つの動きベクトルvを有する。
図10Bは、図10Aに示された予測ユニットPU0の分割を示す図である。図10Bの例において、64x64画素の予測ユニットPU0は、16x16画素の16個のブロックPU0a〜PU0pに分割されている。
図10Aに示された64x64画素の予測ユニットPU0に対する1つの動きベクトルvは、この予測ユニットPU0のどの画素に対しても、同じである。つまり、図10Bのように、予測ユニットPU0が16個のブロックに分割された場合も、それぞれのブロックの動きベクトルは、すべて同じ動きベクトルvである。したがって、64x64画素の予測ユニットPU0は、同じ動きベクトルvを持つ16個のブロックとして処理される。
このとき、16個のブロックの処理順序、すなわち、それぞれのブロックの参照画像の転送処理、動き補償処理、および、予測画像の出力処理についての順序(予測順序)によって、再構成処理の開始が遅くなる場合がある。
本実施の形態の画像処理装置は、予測ユニットを分割し、変換ユニットの処理順序で、それぞれのブロックの参照画像の転送処理、動き補償処理、および、予測画像の出力処理を行う。ここで、変換ユニットの処理順序は、例えば、符号化ストリームにおける複数の変換ユニットの格納順序でもよい。
図11は、本実施の形態に係る動き補償の動作を示すフローチャートである。図3に示された動きベクトル演算部511および動き補償部506の動作について、図11を用いて説明する。
まず、動きベクトル演算部511は、予測ユニット(PU)の動きベクトルを規格で定められた方法により計算する(S1100)。次に、動きベクトル演算部511は、符号化ユニット(CU)内の予測ユニットおよび変換ユニット(TU)についての画面内座標およびサイズに基づいて、予測ユニットの矩形内に変換ユニットのエッジ(辺またはTU境界とも呼ぶ)を含むか否かを判定する(S1101)。
予測ユニットの矩形内に変換ユニットのエッジが含まれない場合(S1101でNo)、動きベクトル演算部511は、動きベクトル、予測ユニットの座標、および、予測ユニットの大きさから、参照画像位置および参照画像サイズを算出する(S1102)。動きベクトル演算部511は、得られた参照画像位置および参照画像サイズをDMA制御部512にセットする。DMA制御部512は、参照画像をフレームメモリ502から参照画像記憶部513に転送する(S1103)。
次に、動き補償部506は、参照画像記憶部513に転送された参照画像を用いて、動き補償の演算を行う(S1104)。そして、動き補償部506は、動き補償の結果として得られた予測画像を予測画像記憶部514に書き込む(S1110)。
予測ユニットの矩形内に変換ユニットのエッジが含まれる場合(S1101でYes)、動きベクトル演算部511は、予測ユニットを変換ユニットのエッジで分割する(S1105)。動きベクトル演算部511は、分割により得られた複数のブロックのそれぞれに対し、動き補償処理で必要な参照画像位置および参照画像サイズを算出する(S1106)。次に、動きベクトル演算部511は、得られた参照画像位置および参照画像サイズをDMA制御部512にセットする。DMA制御部512は、フレームメモリ502から参照画像記憶部513に参照画像を転送する(S1107)。
次に、動き補償部506は、参照画像記憶部513に転送された参照画像を用いて、動き補償の演算を行う(S1108)。そして、動き補償部506は、動き補償の結果として得られた予測画像を予測画像記憶部514に書き込む(S1111)。
さらに、動きベクトル演算部511は、元の予測ユニットに、未処理のブロックがあるか否かを判定する(S1109)。未処理のブロックがある場合(S1109でYes)、動きベクトル演算部511は、そのブロックについての参照画像位置および参照画像サイズを算出する(S1106)。未処理のブロックがない場合(S1109でNo)、動き補償処理は終了する。
画像処理装置は、前述の処理(S1106、S1107、S1108、S1111、S1109)を、変換ユニットの処理順序で行う。
図12Aは、本実施の形態に係る符号化ユニットの構成例を示す図である。図12Aに示された符号化ユニットCU0は、64x64画素のサイズを有する。
図12Bは、図12Aに示された符号化ユニットCU0における予測ユニットの構成例を示す図である。図12Bに示された予測ユニットPU0は、符号化ユニットCU0の全領域で構成される。
図12Cは、図12Aに示された符号化ユニットCU0における変換ユニットの構成例を示す図である。図12Cには、16個の変換ユニットTU0〜TU15が示されている。そして、16個の変換ユニットTU0〜TU15は、TU0、TU1、TU2、・・・、TU15の順で処理される。16個の変換ユニットTU0〜TU15に対する処理として、周波数変換、逆周波数変換、量子化および逆量子化等がある。
図12Dは、図12Aに示された符号化ユニットCU0における予測ユニットの分割後のブロックの構成例を示す図である。図12Dには、16個のブロックPU0a〜PU0pが示されている。そして、16個のブロックPU0a〜PU0pは、PU0a、PU0b、PU0c、・・・、PU0pの順で処理される。16個のブロックPU0a〜PU0pに対する処理として、参照画像の転送処理、動き補償処理、および、予測画像の出力処理等がある。
図12Dに示された16個のブロックPU0a〜PU0pの処理順序は、図12Cに示された16個の変換ユニットTU0〜TU15の処理順序である変換順序に従っている。すなわち、予測ユニットPU0は、変換順序に従って、処理される。
図12Eは、図12Aに示された符号化ユニットCU0の分割後のブロックの構成例を示す図である。図12Eには、16個のブロックBK0〜BK15が示されている。そして、16個のブロックBK0〜BK15は、BK0、BK1、BK2、・・・、BK15の順で処理される。16個のブロックBK0〜BK15に対する処理として、再構成処理、インループフィルタ処理、および、フレームメモリ502への格納処理等がある。
図13Aは、図11の手順が適用されなかった場合のパイプライン処理の例を示すタイムチャートである。
図13Aの例では、まず、可変長復号処理が、符号化ユニットCU0に対して実行される。その後、逆量子化処理および逆周波数変換処理が、変換ユニットTU0〜TU15に対して、TU0、TU1、TU2、・・・、TU15の順で実行される。同時に、動き補償処理が、予測ユニットPU0に対して、実行される。その後、再構成処理が、符号化ユニットCU0に対して実行される。その後、インループフィルタ処理が、符号化ユニットCU0に対して実行される。
図13Aの例では、動き補償処理が、予測ユニットPU0に対して終了し、かつ、逆量子化処理および逆周波数変換処理が、変換ユニットTU0〜TU15に対して終了するまで、再構成処理は開始できない。
図13Bは、図11の手順が適用された場合のパイプライン処理の例を示すタイムチャートである。
図13Bの例では、まず、可変長復号処理が、符号化ユニットCU0に対して実行される。その後、逆量子化処理および逆周波数変換処理が、変換ユニットTU0〜TU15に対して、TU0、TU1、TU2、・・・、TU15の順で実行される。同時に、動き補償処理が、ブロックPU0a〜PU0pに対して、PU0a、PU0b、PU0c、・・・、PU0pの順で実行される。
また、再構成処理が、ブロックBK0〜BK15に対して、BK0、BK1、BK2、・・・、BK15の順で実行される。ここで、変換ユニットTU0の逆量子化処理および逆周波数変換処理が終了し、ブロックPU0aの動き補償処理が終了した後、ブロックBK0の再構成処理が開始する。同様に、変換ユニットTU1〜TU15の逆量子化処理および逆周波数変換処理が順に終了し、ブロックPU0b〜PU0pの動き補償処理が順に終了するタイミングで、ブロックBK1〜BK15の再構成処理が順に開始する。
また、インループフィルタ処理が、ブロックBK0〜BK15に対して、BK0、BK1、BK2、・・・、BK15の順で実行される。ここで、ブロックBK0の再構成処理が終了した後、ブロックBK0のインループフィルタ処理が開始する。同様に、ブロックBK1〜BK15の再構成処理が順に終了するタイミングで、ブロックBK1〜BK15のインループフィルタ処理が順に開始する。
図13Bの例では、分割後のブロックの予測画像は、変換ユニットと同じ順序で出力される。そのため、図13Aの場合に比べ、再構成処理に必要な、差分画像、および、差分画像と同じ領域の予測画像の両方が、早く揃う。したがって、再構成処理およびインループフィルタ処理の開始の遅延が小さくなる。よって、復号処理が高速化する。
また、参照画像のデータ転送が小さいデータ単位で行われ、小さいデータ単位で動き補償処理が実行される。そのため、参照画像を保持するための参照画像記憶部513の必要容量が小さくなる。また、画像処理装置は、予測ユニットの分割によって、参照画像の転送処理、動き補償処理、および、予測画像の出力処理をパイプライン処理によって並行して実行できる。したがって、画像処理装置は、動き補償に必要な処理時間を短くすることができる。
なお、図13Bの例において、変換ユニットTU0〜TU15の処理と、ブロックPU0a〜PU0pの処理とが、同じタイミングで開始している。しかし、これらの処理は、同じタイミングで開始しなくてもよく、必要な情報が得られたタイミングで、互いに独立して開始できる。
(1−4.効果)
このように、画像処理装置は、予測ユニットのサイズが大きい場合でも、予測ユニットを分割して変換ユニットの処理順序で処理することにより、メモリ容量を小さくすることができる。さらに、画像処理装置は、参照画像の転送処理と、動き補償の処理をパイプライン状に行うことで、処理の遅延を小さくすることができる。また、画像処理装置は、再構成処理およびインループフィルタ処理の開始を早くすることができる。したがって、復号処理全体が高速化する。
(1−5.補足)
なお、本実施の形態に係る画像処理装置は、予測ユニットの分割後の複数のブロックに対して、変換ユニットの処理順序で1つずつ、参照画像位置算出、参照画像サイズ算出、参照画像転送、動き補償演算、および、予測画像出力を行う。しかし、画像処理装置は、複数のブロックに対する処理を2つずつ行ってもよいし、3つずつ行ってもよいし、256画素相当分のブロック毎に行ってもよい。
また、本実施の形態に係る画像処理装置は、動きベクトル算出後に予測ユニットを分割する。しかし、画像処理装置は、参照画像位置算出、参照画像サイズ算出および参照画像転送の後に、動き補償処理に必要な参照画像を変換ユニットのエッジで複数のブロックに分割してもよい。そして、画像処理装置は、参照画像の分割後の複数のブロックに対して、変換ユニットの処理順序で、1つずつ、動き補償演算および予測画像出力を行ってもよい。
この場合、参照画像記憶部513の必要容量は、分割しない場合と同様になる。しかし、予測画像記憶部514の必要容量は小さくなる。また、画像処理装置は、再構成処理およびインループフィルタ処理を早く開始できる。したがって、復号処理全体が高速化する。また、フレームメモリ502へのアクセス頻度が減少する。
また、画像処理装置は、参照画像位置算出、参照画像サイズ算出、参照画像転送、および、動き補償処理の後、再構成処理に必要な予測画像を変換ユニットのエッジで複数のブロックに分割してもよい。そして、画像処理装置は、予測画像の分割後の複数のブロックに対して、変換ユニットの処理順序で、1つずつ、予測画像出力、再構成処理およびインループフィルタ処理を行ってもよい。
この場合、参照画像記憶部513の必要容量は、小さくならない。しかし、予測画像記憶部514の必要容量が小さくなる。また、画像処理装置は、再構成処理およびインループフィルタ処理を早く開始できる。したがって、復号処理全体が高速化する。また、フレームメモリ502へのアクセス頻度が減少する。
また、各処理部の構成について、その一部あるいは全部が、専用ハードウェアによる回路で実現されてもよいし、プロセッサにより実行されるプログラムで実現されてもよい。
また、本実施の形態において、フレームメモリ502、参照画像記憶部513および予測画像記憶部514は、メモリまたは記憶部として示されている。しかし、これらは、データの記憶が可能な記憶素子であれば、フリップフロップまたはレジスタなどいずれの構成でもよい。さらに、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部が、フレームメモリ502、参照画像記憶部513および予測画像記憶部514として、用いられてもよい。
また、本実施の形態において、画像復号装置である画像処理装置が示されている。しかし、画像処理装置は、画像復号装置に限定されるものではない。復号処理を逆の手順で実行する画像符号化装置も、同様に、予測ユニットを分割して、動き補償処理を行うことが可能である。例えば、画像符号化装置でも、参照画像を生成するため、動き補償処理が実行される場合がある。このような場合、画像符号化装置は、予測ユニットを分割して、動き補償処理を実行してもよい。
また、本実施の形態では、動き補償が例として記載されている。しかし、画像処理装置は、面内予測の場合でも、同様の処理を実行することで、同様の効果を得ることができる。
また、本実施の形態で示された符号化ユニット、予測ユニットおよび変換ユニットについてのサイズおよび形状は、例であって、これらのサイズおよび形状は、いかなるサイズおよび形状でもかまわない。
(実施の形態2)
(2−1.概要)
まず、本実施の形態に係る画像処理装置の概要について説明する。本実施の形態に係る画像処理装置は、動き補償を含む符号化処理によって生成された符号化ストリームを復号する。符号化において、動き補償のサイズ、すなわち、予測ユニットのサイズは、可変であり、最大で64x64画素である。
画像処理装置は、符号化ユニットに含まれるすべての予測ユニットのそれぞれに対し、予測ユニットの矩形内に変換ユニットのエッジが含まれている場合、変換ユニットのエッジで予測ユニットを複数のブロックに分割する。そして、画像処理装置は、分割により得られた複数のブロックに対して、変換ユニットの処理順序で、参照画像の転送処理、動き補償処理、および、予測画像の出力処理を行う。本実施の形態では、イントラ予測とインター予測のうち、インター予測が用いられる。
また、画像処理装置は、以後の再構成処理およびインループフィルタ処理についても、変換ユニットの処理順序で処理を行う。
これにより、画像処理装置は、符号化ユニットに含まれるすべての予測ユニットに対して、変換ユニットの処理順序と同じ処理順序で処理を行うことができる。したがって、画像処理装置は、実施の形態1の場合よりも復号処理を高速化することができる可能性がある。
以上が本実施の形態に係る画像処理装置の概要についての説明である。
(2−2.構成)
図2は、本実施の形態に係る画像処理装置の構成図である。図3は、本実施の形態に係る動き補償部506の周辺の構成図である。本実施の形態に係る画像処理装置の構成は、実施の形態1と同様であるので、説明を省略する。
(2−3.動作)
本実施の形態では、実施の形態1と同様に、図4A〜図6Bに示された符号化ストリームの構造が用いられる。本実施の形態に係る画像処理装置の動作フローは、図7および図8に示された実施の形態1の動作フローと同様であるので、説明を省略する。
図14Aは、本実施の形態に係る予測ユニットと動きベクトルを示す図である。図14Aの例では、1つの符号化ユニットが、2つの予測ユニットPU0、PU1を含む。予測ユニットPU0は、1つの動きベクトルv0を有し、予測ユニットPU1は、1つの動きベクトルv1を有する。
図14Bは、図14Aに示された2つの予測ユニットPU0、PU1の分割を示す図である。図14Bの例において、予測ユニットPU0は、2つのブロックPU0a、PU0bに分割され、予測ユニットPU1は、2つのブロックPU1a、PU1bに分割されている。
図14Aに示された予測ユニットPU0に対する1つの動きベクトルv0は、この予測ユニットのどの画素に対しても、同じである。つまり、図14Bのように、予測ユニットPU0が2つのブロックPU0a、PU0bに分割された場合も、2つのブロックPU0a、PU0bは、それぞれ、同じ動きベクトルv0を有する。同様に、2つのブロックPU1a、PU1bは、それぞれ、同じ動きベクトルv1を有する。
図14Aおよび図14Bのように、本実施の形態の画像処理装置は、符号化ユニットに含まれる複数の予測ユニットを複数のブロックに分割する。そして、画像処理装置は、変換ユニットの処理順序で、それぞれのブロックに対して、参照画像の転送処理、動き補償処理、および、予測画像の出力処理を行う。
図15は、本実施の形態に係る動き補償の動作を示すフローチャートである。本実施の形態の動きベクトル演算部511および動き補償部506の動作について図15を用いて説明する。図15は、1つの符号化ユニットに対する動き補償の動作を示す。
まず、動きベクトル演算部511は、符号化ユニットに含まれる予測ユニットの動きベクトルを規格で定められた方法により計算する(S1400)。次に、動きベクトル演算部511は、同じ符号化ユニットに含まれる変換ユニットの画面内座標およびサイズに基づいて、予測ユニットの矩形内に変換ユニットのエッジを含むか否かを判定する(S1401)。
予測ユニットの矩形内に変換ユニットのエッジが含まれない場合(S1401でNo)、動きベクトル演算部511は、動きベクトル、予測ユニットの座標、および、予測ユニットの大きさに基づいて、参照画像位置および参照画像サイズを算出する(S1402)。
予測ユニットの矩形内に変換ユニットのエッジが含まれる場合(S1401でYes)、予測ユニットを変換ユニットのエッジで分割する(S1405)。動きベクトル演算部511は、分割により得られた複数のブロックに対して、動き補償処理で必要な参照画像位置および参照画像サイズを算出する(S1406)。
次に、動きベクトル演算部511は、符号化ユニット内のすべての予測ユニットに対して、参照画像位置および参照画像サイズの算出の一連の処理(S1400、S1401、S1402、S1405、S1406)を行ったか否かを判定する(S1408)。未処理の予測ユニットがある場合(S1408でNo)、動きベクトル演算部511は、その予測ユニットについて動きベクトル計算を行う(S1400)。
次に、動きベクトル演算部511は、得られた参照画像位置および参照画像サイズをDMA制御部512にセットする。DMA制御部512は、フレームメモリ502から参照画像記憶部513に参照画像を転送する(S1403)。次に、動き補償部506は、参照画像記憶部513に転送された参照画像を用いて、動き補償の演算を行い(S1404)、結果を予測画像記憶部514に書き込む(S1407)。
次に、動きベクトル演算部511は、符号化ユニット内のすべての予測ユニットに対して、参照画像位置および参照画像サイズの算出の一連の処理(S1403、S1404、S1407)を行ったか否かを判定する(S1409)。未処理のブロックがある場合(S1409でNo)、動きベクトル演算部511は、そのブロックについての参照画像転送を行う(S1403)。未処理のブロックがない場合(S1409でYes)、処理は終了する。
動きベクトル演算部511、DMA制御部512および動き補償部506は、前述の処理(S1403、S1404、S1407)を、変換ユニットの処理順序で行う。
図16Aは、本実施の形態に係る符号化ユニットの構成例を示す図である。図16Aに示された符号化ユニットCU0は、64x64画素のサイズを有する。
図16Bは、図16Aに示された符号化ユニットCU0における予測ユニットの構成例を示す図である。符号化ユニットCU0は、2つの予測ユニットPU0、PU1を含む。
図16Cは、図16Aに示された符号化ユニットCU0における変換ユニットの構成例を示す図である。図16Cには、2つの変換ユニットTU0、TU1が示されている。そして、2つの変換ユニットTU0、TU1は、TU0、TU1の順で処理される。
図16Dは、図16Aに示された符号化ユニットCU0における2つの予測ユニットPU0、PU1の分割後のブロックの構成例を示す図である。図16Dには、4つのブロックPU0a、PU0b、PU1a、PU1bが示されている。そして、4つのブロックPU0a、PU0b、PU1a、PU1bは、PU0a、PU1a、PU0b、PU1bの順で処理される。
図16Dに示された4つのブロックPU0a、PU0b、PU1a、PU1bの処理順序は、図16Cに示された2つの変換ユニットTU0、TU1の処理順序である変換順序に従っている。すなわち、2つの予測ユニットPU0、PU1は、変換順序に従って、処理される。
図16Eは、図16Aに示された符号化ユニットCU0の分割後のブロックの構成例を示す図である。図16Eには、2つのブロックBK0、BK1が示されている。そして、2つのブロックBK0、BK1は、BK0、BK1の順で処理される。
図17Aは、図15の手順が適用されなかった場合のパイプライン処理の例を示すタイムチャートである。
図17Aの例では、まず、可変長復号処理が、符号化ユニットCU0に対して実行される。その後、逆量子化処理および逆周波数変換処理が、変換ユニットTU0、TU1に対して、TU0、TU1の順で実行される。同時に、動き補償処理が、予測ユニットPU0、PU1に対して、実行される。その後、再構成処理が、符号化ユニットCU0に対して実行される。その後、インループフィルタ処理が、符号化ユニットCU0に対して実行される。
図17Aの例では、動き補償処理が、予測ユニットPU0、PU1に対して終了し、かつ、逆量子化処理および逆周波数変換処理が、変換ユニットTU0、TU1に対して終了するまで、再構成処理は開始できない。
図17Bは、図15の手順が適用された場合のパイプライン処理の例を示すタイムチャートである。
図17Bの例では、まず、可変長復号処理が、符号化ユニットCU0に対して実行される。その後、逆量子化処理および逆周波数変換処理が、変換ユニットTU0、TU1に対して、TU0、TU1の順で実行される。同時に、動き補償処理が、ブロックPU0a、PU0b、PU1a、PU1bに対して、PU0a、PU1a、PU0b、PU1bの順で実行される。
また、再構成処理が、ブロックBK0、BK1に対して、BK0、BK1の順で実行される。ここで、変換ユニットTU0の逆量子化処理および逆周波数変換処理が終了し、ブロックPU0a、PU1aの動き補償処理が終了した後、ブロックBK0の再構成処理が開始する。同様に、変換ユニットTU1の逆量子化処理および逆周波数変換処理が終了し、ブロックPU0b、PU1bの動き補償処理が終了するタイミングで、ブロックBK1の再構成処理が開始する。
また、インループフィルタ処理が、ブロックBK0、BK1に対して、BK0、BK1の順で実行される。ここで、ブロックBK0の再構成処理が終了した後、ブロックBK0のインループフィルタ処理が開始する。同様に、ブロックBK1の再構成処理が終了するタイミングで、ブロックBK1のインループフィルタ処理が開始する。
図17Bの例では、分割後のブロックの予測画像は、変換ユニットと同じ順序で出力される。そのため、図17Aの場合に比べ、再構成処理に必要な、差分画像、および、差分画像と同じ領域の予測画像の両方が、早く揃う。したがって、再構成処理およびインループフィルタ処理の開始の遅延が小さくなる。よって、復号処理が高速化する。
また、参照画像のデータ転送が小さいデータ単位で行われ、小さいデータ単位で動き補償処理が実行される。そのため、参照画像を保持するための参照画像記憶部513の必要容量が小さくなる。また、画像処理装置は、予測ユニットの分割によって、参照画像の転送処理、動き補償処理、および、予測画像の出力処理をパイプライン処理によって並行して実行できる。したがって、画像処理装置は、動き補償に必要な処理時間を短くすることができる。
(2−4.効果)
これにより、本実施の形態に係る画像処理装置は、符号化ユニットに含まれるすべての予測ユニットに対して、変換ユニットと同じ処理順序で処理を行うことができる。そのため、本実施の形態に係る画像処理装置は、実施の形態1の場合よりも復号処理を高速化することができる可能性がある。
(2−5.補足)
なお、本実施の形態に係る画像処理装置は、符号化ユニットに含まれるすべての予測ユニットの分割後の複数のブロックに対して、変換ユニットの処理順序で1つずつ、参照画像転送、動き補償演算、および、予測画像出力を行う。しかし、画像処理装置は、複数のブロックに対する処理を2つずつ行ってもよいし、3つずつ行ってもよいし、256画素相当分のブロック毎に行ってもよい。
また、本実施の形態に係る画像処理装置は、動きベクトル算出後に予測ユニットを分割する。しかし、画像処理装置は、参照画像位置算出、参照画像サイズ算出および参照画像転送を符号化ユニットに含まれるすべての予測ユニットに対して行った後に、動き補償処理に必要な参照画像を複数のブロックに分割してもよい。そして、参照画像の分割後の複数のブロックに対して、変換ユニットの処理順序で、1つずつ、動き補償演算および予測画像出力を行ってもよい。
この場合、参照画像記憶部513の必要容量は、分割しない場合と同様になる。しかし、予測画像記憶部514の必要容量は小さくなる。また、画像処理装置は、再構成処理およびインループフィルタ処理を早く開始できる。したがって、復号処理全体が高速化する。また、フレームメモリ502へのアクセス頻度が減少する。
また、画像処理装置は、参照画像位置算出、参照画像サイズ算出、参照画像転送および動き補償処理を符号化ユニットに含まれるすべての予測ユニットに対して行った後、再構成処理に必要な予測画像を複数のブロックに分割してもよい。そして、画像処理装置は、予測画像の分割後の複数のブロックに対して、変換ユニットの処理順序で、1つずつ、予測画像出力、再構成処理およびインループフィルタ処理を行ってもよい。
この場合、参照画像記憶部513の必要容量は、小さくならない。しかし、予測画像記憶部514の必要容量が小さくなる。また、画像処理装置は、再構成処理およびインループフィルタ処理を早く開始できる。したがって、復号処理全体が高速化する。また、フレームメモリ502へのアクセス頻度が減少する。
また、各処理部の構成について、その一部あるいは全部が、専用ハードウェアによる回路で実現されてもよいし、プロセッサにより実行されるプログラムで実現されてもよい。
また、本実施の形態において、フレームメモリ502、参照画像記憶部513および予測画像記憶部514は、メモリまたは記憶部として示されている。しかし、これらは、データの記憶が可能な記憶素子であれば、フリップフロップまたはレジスタなどいずれの構成でもよい。さらに、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部が、フレームメモリ502、参照画像記憶部513および予測画像記憶部514として、用いられてもよい。
また、本実施の形態において、画像復号装置である画像処理装置が示されている。しかし、画像処理装置は、画像復号装置に限定されるものではない。復号処理を逆の手順で実行する画像符号化装置も、同様に、予測ユニットを分割して、動き補償処理を行うことが可能である。
また、本実施の形態では、動き補償が例として記載されている。しかし、画像処理装置は、面内予測の場合でも、同様の処理を実行することで、同様の効果を得ることができる。
また、本実施の形態で示された符号化ユニット、予測ユニットおよび変換ユニットについてのサイズおよび形状は、例であって、これらのサイズおよび形状は、いかなるサイズおよび形状でもかまわない。
(実施の形態3)
(3−1.概要)
まず、本実施の形態に係る画像処理装置の概要について説明する。本実施の形態に係る画像処理装置は、動き補償を含む符号化処理によって生成された符号化ストリームを復号する。符号化において、動き補償のサイズ、すなわち、予測ユニットのサイズは、可変であり、最大で64x64画素である。
画像処理装置は、予測ユニットの矩形内に変換ユニットのエッジが含まれていない場合、かつ、変換ユニットの処理順序と予測ユニットの処理順序とが異なる場合、変換ユニットの処理順序で、参照画像の転送処理、動き補償処理、および、予測画像の出力処理を行う。本実施の形態では、イントラ予測とインター予測のうち、インター予測が用いられる。
また、画像処理装置は、以後の再構成処理およびインループフィルタ処理についても変換ユニットの処理順序で処理を行う。
これにより、画像処理装置は、予測ユニットを分割することなく、変換ユニットと同じ処理順序で、予測ユニットの処理を行うことができる。したがって、復号処理が高速化する。
以上が本実施の形態に係る画像処理装置の概要についての説明である。
(3−2.構成)
図2は、本実施の形態に係る画像処理装置の構成図である。図3は、本実施の形態に係る動き補償部506の周辺の構成図である。本実施の形態に係る画像処理装置の構成は、実施の形態1と同様であるので、説明を省略する。
(3−3.動作)
本実施の形態では、実施の形態1と同様に、図4A〜図6Bに示された符号化ストリームの構造が用いられる。本実施の形態に係る画像処理装置の動作フローは、図7および図8に示された実施の形態1の動作フローと同様であるので、説明を省略する。
図18は、本実施の形態に係る予測ユニットと動きベクトルを示す図である。図18の例において、1つの符号化ユニットは、4つの予測ユニットPU0〜PU3を含む。予測ユニットPU0は、1つの動きベクトルv0を有する。同様に、予測ユニットPU1〜PU3は、動きベクトルv1〜v3を有する。
本実施の形態の画像処理装置は、符号化ユニットに含まれる複数の予測ユニットを分割することなく、変換ユニットの処理順序で、複数の予測ユニットに対して、参照画像の転送処理、動き補償処理、および、予測画像の出力処理を行う。
図19は、本実施の形態に係る動き補償の動作を示すフローチャートである。本実施の形態の動きベクトル演算部511および動き補償部506の動作について図19を用いて説明する。図19は、1つの符号化ユニットに対する動き補償の動作を示す。
まず、動きベクトル演算部511は、符号化ユニットに含まれる予測ユニットの動きベクトルを規格で定められた方法により計算する(S1800)。次に、動きベクトル演算部511は、動きベクトル、予測ユニットの座標、および、予測ユニットの大きさに基づいて、参照画像位置および参照画像サイズを算出する(S1802)。
次に、動きベクトル演算部511は、符号化ユニット内のすべての予測ユニットに対して、参照画像位置および参照画像サイズの算出の一連の処理(S1800、S1802)を行ったか否かを判定する(S1808)。未処理の予測ユニットがある場合(S1808でNo)、動きベクトル演算部511は、その予測ユニットについて動きベクトル計算を行う(S1800)。
次に、動きベクトル演算部511は、得られた参照画像位置および参照画像サイズをDMA制御部512にセットする。DMA制御部512は、フレームメモリ502から参照画像記憶部513に参照画像を転送する(S1803)。次に、動き補償部506は、参照画像記憶部513に転送された参照画像を用いて、動き補償の演算を行い(S1804)、結果を予測画像記憶部514に書き込む(S1807)。
次に、動きベクトル演算部511は、符号化ユニット内のすべての予測ユニットに対して、参照画像位置および参照画像サイズの算出の一連の処理(S1803、S1804、S1807)を行ったか否かを判定する(S1809)。未処理のブロックがある場合(S1809でNo)、動きベクトル演算部511は、そのブロックについての参照画像転送を行う(S1803)。未処理のブロックがない場合(S1809でYes)、処理は終了する。
動きベクトル演算部511、DMA制御部512および動き補償部506は、前述の処理(S1803、S1804、S1807)を、変換ユニットの処理順序で行う。
図20Aは、本実施の形態に係る符号化ユニットの構成例を示す図である。図20Aに示された符号化ユニットCU0は、64x64画素のサイズを有する。
図20Bは、図20Aに示された符号化ユニットCU0における予測ユニットの構成例を示す図である。符号化ユニットCU0は、4つの予測ユニットPU0〜PU3を含む。
図20Cは、図20Aに示された符号化ユニットCU0における変換ユニットの構成例を示す図である。図20Cには、2つの変換ユニットTU0、TU1が示されている。そして、2つの変換ユニットTU0、TU1は、TU0、TU1の順で処理される。
図20Dは、図16Aに示された符号化ユニットCU0における4つの予測ユニットPU0〜PU3の処理順序を示す図である。4つの予測ユニットPU0〜PU3は、PU0、PU2、PU1、PU3の順で処理される。
図20Dに示された4つの予測ユニットPU0〜PU3の処理順序は、図20Cに示された2つの変換ユニットTU0、TU1の処理順序である変換順序に従っている。すなわち、4つの予測ユニットPU0〜PU3は、変換順序に従って、処理される。
図20Eは、図20Aに示された符号化ユニットCU0の分割後のブロックの構成例を示す図である。図20Eには、2つのブロックBK0、BK1が示されている。そして、2つのブロックBK0、BK1は、BK0、BK1の順で処理される。
図21Aは、図19の手順が適用されなかった場合のパイプライン処理の例を示すタイムチャートである。
図21Aの例では、まず、可変長復号処理が、符号化ユニットCU0に対して実行される。その後、逆量子化処理および逆周波数変換処理が、変換ユニットTU0、TU1に対して、TU0、TU1の順で実行される。同時に、動き補償処理が、予測ユニットPU0〜PU3に対して、実行される。その後、再構成処理が、符号化ユニットCU0に対して実行される。その後、インループフィルタ処理が、符号化ユニットCU0に対して実行される。
図21Aの例では、動き補償処理が、予測ユニットPU0〜PU3に対して終了し、かつ、逆量子化処理および逆周波数変換処理が、変換ユニットTU0、TU1に対して終了するまで、再構成処理は開始できない。
図21Bは、図19の手順が適用された場合のパイプライン処理の例を示すタイムチャートである。
図21Bの例では、まず、可変長復号処理が、符号化ユニットCU0に対して実行される。その後、逆量子化処理および逆周波数変換処理が、変換ユニットTU0、TU1に対して、TU0、TU1の順で実行される。同時に、動き補償処理が、ブロックPU0〜PU3に対して、PU0、PU2、PU1、PU3の順で実行される。
また、再構成処理が、ブロックBK0、BK1に対して、BK0、BK1の順で実行される。ここで、変換ユニットTU0の逆量子化処理および逆周波数変換処理が終了し、ブロックPU0、PU2の動き補償処理が終了した後、ブロックBK0の再構成処理が開始する。同様に、変換ユニットTU1の逆量子化処理および逆周波数変換処理が終了し、ブロックPU1、PU3の動き補償処理が終了するタイミングで、ブロックBK1の再構成処理が開始する。
また、インループフィルタ処理が、ブロックBK0、BK1に対して、BK0、BK1の順で実行される。ここで、ブロックBK0の再構成処理が終了した後、ブロックBK0のインループフィルタ処理が開始する。同様に、ブロックBK1の再構成処理が終了するタイミングで、ブロックBK1のインループフィルタ処理が開始する。
図21Bの例では、予測画像は、変換ユニットと同じ順序で出力される。そのため、図21Aの場合に比べ、再構成処理に必要な、差分画像、および、差分画像と同じ領域の予測画像の両方が、早く揃う。したがって、再構成処理およびインループフィルタ処理の開始の遅延が小さくなる。よって、復号処理が高速化する。
(3−4.効果)
このように、画像処理装置は、予測ユニットを分割せずに、変換ユニットと同じ処理順序で、予測ユニットの処理を行う。したがって、復号処理が高速化する。
(3−5.補足)
なお、本実施の形態に係る画像処理装置は、符号化ユニットに含まれるすべての予測ユニットを変換ユニットの処理順序で1つずつ、参照画像転送、動き補償演算、および、予測画像出力を行う。しかし、画像処理装置は、複数の予測ユニットに対する処理を2つずつ行ってもよいし、3つずつ行ってもよいし、256画素相当分のブロック毎に行ってもよい。
また、各処理部の構成について、その一部あるいは全部が、専用ハードウェアによる回路で実現されてもよいし、プロセッサにより実行されるプログラムで実現されてもよい。
また、本実施の形態において、フレームメモリ502、参照画像記憶部513および予測画像記憶部514は、メモリまたは記憶部として示されている。しかし、これらは、データの記憶が可能な記憶素子であれば、フリップフロップまたはレジスタなどいずれの構成でもよい。さらに、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部が、フレームメモリ502、参照画像記憶部513および予測画像記憶部514として、用いられてもよい。
また、本実施の形態において、画像復号装置である画像処理装置が示されている。しかし、画像処理装置は、画像復号装置に限定されるものではない。復号処理を逆の手順で実行する画像符号化装置も、同様に、動き補償処理を行うことが可能である。
また、本実施の形態では、動き補償が例として記載されている。しかし、画像処理装置は、面内予測の場合でも、同様の処理を実行することで、同様の効果を得ることができる。
また、本実施の形態で示された符号化ユニット、予測ユニットおよび変換ユニットについてのサイズおよび形状は、例であって、これらのサイズおよび形状は、いかなるサイズおよび形状でもかまわない。
(実施の形態4)
(4−1.概要)
まず、本実施の形態に係る画像処理装置の概要について説明する。本実施の形態に係る画像処理装置は、動き補償を含む符号化処理によって生成された符号化ストリームを復号する。符号化において、面内予測のサイズ、すなわち、予測ユニットのサイズは、可変であり、最大で64x64画素である。
画像処理装置は、予測ユニットの矩形内に変換ユニットのエッジが含まれている場合、変換ユニットのエッジで予測ユニットを分割する。そして、画像処理装置は、分割により得られた複数のブロックに対して、変換ユニットの処理順序で、面内予測の処理、および、予測画像の出力を行う。また、画像処理装置は、以後の再構成処理およびインループフィルタ処理についても変換ユニットの処理順序で処理を行う。
例えば、画像処理装置は、予測ユニットのサイズが大きい場合でも、予測ユニットを分割して、変換ユニットの処理順序で、面内予測を実行する。これにより、予測画像の記憶に必要なメモリ容量が減少する。さらに、画像処理装置は、再構成処理およびインループフィルタ処理を早く開始することができる。したがって、復号処理全体が高速化する。
(4−2.構成)
次に、本実施の形態に係る画像処理装置の構成について説明する。図2は本実施の形態に係る画像処理装置の構成図である。本実施の形態に係る画像処理装置の全体構成は、実施の形態1と同様であるので、説明を省略する。
図22は、本実施の形態に係る面内予測部507の周辺の構成図である。図2と同様の構成要素には同じ符号を割り当て、説明を省略する。図22には、可変長復号部503、予測モード演算部515、面内予測部507、再構成画像メモリ509、再構成部508および予測画像記憶部514が示されている。予測モード演算部515および予測画像記憶部514は、面内予測部507に含まれていてもよい。
予測モード演算部515は、可変長復号部503で復号された復号情報に基づいて、面内予測の面内予測モードを算出する。面内予測部507は、面内予測モードに基づいて、面内予測を実行する。その際、面内予測部507は、変換ユニットについての変換順序を可変長復号部503から取得してもよい。
以上が、本実施の形態に係る画像処理装置の構成についての説明である。
(4−3.動作)
図23は、本実施の形態に係る面内予測の動作を示すフローチャートである。図22に示された予測モード演算部515および面内予測部507の動作について図23を用いて説明する。
まず、予測モード演算部515は、予測ユニットの面内予測モードを規格で定められた方法により計算する(S2200)。次に、面内予測部507は、変換ユニットの画面内座標およびサイズに基づいて、予測ユニットの矩形内に変換ユニットのエッジを含むか否かを判定する(S2201)。
予測ユニットの矩形内に変換ユニットのエッジが含まれない場合(S2201でNo)、面内予測部507は、面内予測モード、予測ユニットの座標、および、予測ユニットの大きさに基づいて、参照周辺画素位置を算出する(S2202)。面内予測部507は、得られた参照周辺画素位置の参照画素、および、面内予測モードを用いて、面内予測を行う(S2204)。そして、面内予測部507は、面内予測の結果を予測画像記憶部514に書き込む(S2210)。
予測ユニットの矩形内に変換ユニットのエッジが含まれる場合(S2201でYes)、面内予測部507は、予測ユニットを変換ユニットのエッジで分割する(S2205)。そして、面内予測部507は、分割により生成された複数のブロックに対し、面内予測モード、ブロックの座標、および、ブロックの大きさに基づいて、ブロックの参照周辺画素位置を算出する(S2206)。
面内予測部507は、得られた参照周辺画素位置における参照画素、および、面内予測モードを用いて、面内予測を行う(S2208)。そして、面内予測部507は、面内予測の結果を予測画像記憶部514に書き込む(S2211)。
さらに、予測ユニットに、未処理のブロックがあるか否かを判定する(S2209)。未処理のブロックがある場合(S2209でYes)、面内予測部507は、そのブロックの参照周辺画素位置を算出する(S2206)。未処理のブロックがない場合(S2209でNo)、処理は終了する。
面内予測部507は、前述の処理(S2206、S2208、S2211、S2209)を変換ユニットの処理順序で行う。
画像処理装置は、以上の処理により、面内予測についても、実施の形態1の場合と同様の効果を得ることができる。つまり、図13Bのように、予測画像が変換ユニットと同じ順序で出力される。そのため、再構成処理に必要な、差分画像と、差分画像と同じ領域の予測画像とが、早く揃う。したがって、図13Aの場合に比べ、再構成処理およびインループフィルタ処理の開始の遅延が小さくなる。よって、復号処理が高速化する。
また、面内予測処理、再構成処理およびインループフィルタ処理が小さいデータ単位で行われる。そのため、予測画像を保持するための予測画像記憶部514の必要容量が小さくなり、再構成処理およびインループフィルタ処理に用いるメモリの必要容量が小さくなる。
図24は、予測ユニット、および、予測ユニットの面内予測処理で必要な参照周辺画素の例を示す図である。予測ユニットの面内予測処理には、予測ユニットの周辺に位置する参照周辺画素2302、2303が用いられる。例えば、次の式1に従って、面内予測が実行される。
なお、式1のnSは、予測ユニットのサイズを表す。図24の場合、nSは64である。また、p[x’、−1]は、参照周辺画素2302を示し、x’は、予測ユニットの左端を原点とし、右方向を正の方向とする座標軸の値(x座標値)を示す。また、p[−1、y’]は、参照周辺画素2303を示し、y’は、予測ユニットの上端を原点とし、下方向を正の方向とする座標軸の値(y座標値)を示す。
kは、参照周辺画素から導出できる変数である。また、式1のpredSamples[x、y]は、面内予測を行った結果の予測画素値を示す。
式1では、予測ユニット内の任意の位置において、予測画素値が同じである。したがって、予測ユニットが任意の矩形に分割された場合でも、ブロック毎の面内予測処理は可能である。また、面内予測の処理後、任意の順序で、予測画像の出力が可能である。
(4−4.効果)
本実施の形態に係る画像処理装置は、予測ユニットのサイズが大きい場合でも、予測ユニットを分割して、変換ユニットの処理順序で、面内予測処理を実行する。これにより、必要なメモリ容量が小さくなる。また、再構成処理およびインループフィルタ処理のより早い開始が可能になる。よって、復号処理全体が高速化する。
(4−5.補足)
なお、本実施の形態に係る画像処理装置は、予測ユニットの分割後の複数のブロックに対して、変換ユニットの処理順序で1つずつ、参照周辺画素位置算出、面内予測演算、および、予測画像出力を行う。しかし、画像処理装置は、複数のブロックに対する処理を2つずつ行ってもよいし、3つずつ行ってもよいし、256画素相当分のブロック毎に行ってもよい。
また、本実施の形態に係る画像処理装置は、面内予測モード算出後に予測ユニットを分割する。しかし、画像処理装置は、参照周辺画像位置算出、および、予測ユニットの面内予測処理の後に、予測画像を変換ユニットのエッジで分割し、変換ユニットの処理順序に従って、予測画像出力を行ってもよい。
この場合、再構成処理用のメモリ容量、および、インループフィルタ処理用のメモリ容量が削減される。また、再構成処理およびインループフィルタ処理のより早い開始が可能になる。したがって、復号処理全体が高速化する。
また、各処理部の構成について、その一部あるいは全部が、専用ハードウェアによる回路で実現されてもよいし、プロセッサにより実行されるプログラムで実現されてもよい。
また、本実施の形態において、フレームメモリ502、参照画像記憶部513および予測画像記憶部514は、メモリまたは記憶部として示されている。しかし、これらは、データの記憶が可能な記憶素子であれば、フリップフロップまたはレジスタなどいずれの構成でもよい。さらに、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部が、フレームメモリ502、参照画像記憶部513および予測画像記憶部514として、用いられてもよい。
また、本実施の形態において、画像復号装置である画像処理装置が示されている。しかし、画像処理装置は、画像復号装置に限定されるものではない。復号処理を逆の手順で実行する画像符号化装置も、同様に、予測ユニットを分割して、面内予測処理を行うことが可能である。
また、本実施の形態で示された符号化ユニット、予測ユニットおよび変換ユニットについてのサイズおよび形状は、例であって、これらのサイズおよび形状は、いかなるサイズおよび形状でもかまわない。
また、本実施の形態において、DC(Direct Current)予測または平均値予測と呼ばれる面内予測モードが用いられているが、その他の面内予測モードが用いられてもよい。例えば、垂直予測と呼ばれる面内予測モードが用いられてもよいし、水平予測と呼ばれる面内予測モードが用いられてもよいし、非特許文献2に記載のその他の面内予測モードが用いられてもよい。
(実施の形態5)
以下、実施の形態5〜12において、上述の複数の実施の形態で示された特徴的な構成要素を備える画像処理装置を示す。
図25Aは、実施の形態5に係る画像処理装置の構成を示す図である。図25Aに示された画像処理装置2400は、符号化処理によって符号化された画像を復号する。この符号化処理は、1以上の予測ユニットに対する予測処理と、その1以上の予測ユニットを含む領域に含まれる複数の変換ユニットに対する周波数変換処理とを含む。
画像処理装置2400は、予測部2401を備える。予測部2401は、実施の形態1で示された動き補償部506および面内予測部507等に対応する。
図25Bは、図25Aに示された画像処理装置2400の動作を示すフローチャートである。予測部2401は、1以上の予測ユニットに対して予め定められている予測順序が複数の変換ユニットに対して予め定められている変換順序に従っていない場合、1以上の予測ユニットに対応する予測画像をブロック毎に変換順序に従って出力する(S2401)。例えば、予測部2401は、1以上の予測ユニットに対する予測処理によって、予測画像を生成する。そして、予測部2401は、予測画像を変換順序に従って出力する。
ここで、予め定められている予測順序は、例えば、ストリーム内での予測ユニットの順序であってもよいし、それ以外の順序でもよい。また、予め定められている変換順序は、例えば、ストリーム内での変換ユニットの順序であってもよいし、それ以外の順序でもよい。そして、変換ユニットの処理結果が出力される領域と、予測ユニットの処理結果が出力される領域とが同じになるように、予測部2401は予測ユニットの出力を制御する。
これにより、予測画像の出力のタイミングが、変換で得られる差分画像の出力のタイミングに近くなる。したがって、後段の再構成処理の早期開始が可能になる。よって、画像処理装置2400は、画像処理において発生する遅延を小さくすることができる。
なお、実施の形態5で示された画像処理装置2400に、他の実施の形態で示された構成要素が追加されてもよい。例えば、複数の変換ユニットに対して逆周波数変換を変換順序に従って実行する逆周波数変換部505が追加されてもよい。また、実施の形態5で示された画像処理装置2400が、他の実施の形態で示された構成に、組み込まれてもよい。
(実施の形態6)
実施の形態6に係る画像処理装置は、実施の形態5に係る画像処理装置2400の具体的な構成例である。
図26Aは、実施の形態6に係る画像処理装置の構成を示す図である。図26Aに示された画像処理装置2500は、実施の形態5に係る画像処理装置2400と同様に、符号化処理によって符号化された画像を復号する。この符号化処理は、実施の形態5と同様に、1以上の予測ユニットに対する予測処理と、その1以上の予測ユニットを含む領域に含まれる複数の変換ユニットに対する周波数変換処理とを含む。
画像処理装置2500は、予測部2501を備える。予測部2501は、実施の形態5で示された予測部2401に対応する。また、予測部2501は、情報取得部2511、予測画像生成部2512および予測画像出力部2513を備える。
図26Bは、図26Aに示された画像処理装置2500の動作を示すフローチャートである。まず、情報取得部2511は、予測画像を生成するための情報を取得する(S2501)。例えば、予測画像を生成するための情報には、動きベクトル、面内予測モード、参照画像および参照周辺画素等がある。次に、予測画像生成部2512は、取得された情報を用いて、予測処理を実行することにより、予測画像を生成する(S2502)。
次に、予測画像出力部2513は、予測画像を出力する(S2503)。この時、予測画像出力部2513は、予測順序が変換順序に従っていない場合、予測画像をブロック毎に変換順序に従って出力する。
これにより、予測画像の出力のタイミングが、変換で得られる差分画像の出力のタイミングに近くなる。したがって、後段の再構成処理の早期開始が可能になる。よって、画像処理装置2500は、画像処理において発生する遅延を小さくすることができる。
なお、予測画像生成部2512は、予測順序が変換順序に従っていない場合、予測画像をブロック毎に変換順序に従って生成してもよい。これにより、生成処理と出力処理とが、円滑に実行される。
また、情報取得部2511は、予測順序が変換順序に従っていない場合、予測画像を生成するための情報をブロック毎に変換順序に従って取得してもよい。これにより、情報取得処理、生成処理および出力処理が、円滑に実行される。また、予測に必要なメモリ容量が減少する。
予測画像生成部2512は、面内予測を実行することにより、予測画像を生成してもよいし、動き補償を実行することにより、予測画像を生成してもよい。
(実施の形態7)
図27Aは、実施の形態7に係る画像処理装置の構成を示す図である。図27Aに示された画像処理装置2600は、実施の形態5に係る画像処理装置2400と同様に、符号化処理によって符号化された画像を復号する。この符号化処理は、実施の形態5と同様に、1以上の予測ユニットに対する予測処理と、その1以上の予測ユニットを含む領域に含まれる複数の変換ユニットに対する周波数変換処理とを含む。
画像処理装置2600は、分割部2601および予測部2602を備える。予測部2602は、実施の形態5で示された予測部2401に対応する。
図27Bは、図27Aに示された画像処理装置2600の動作を示すフローチャートである。まず、分割部2601は、1以上の予測ユニットを複数の変換ユニットのエッジに沿って複数のブロックに分割する(S2601)。次に、予測部2602は、予測順序が変換順序に従っていない場合、1以上の予測ユニットを分割することにより得られたブロック毎に、予測画像を変換順序に従って出力する(S2602)。
これにより、大きい予測ユニットも、変換ユニットのエッジに沿って、分割される。したがって、大きい予測ユニットに対応する予測画像も変換順序に従って、適切に出力される。また、後段の再構成処理に必要なメモリ容量が減少する。
図28A〜図28Dに、予測順序が変換順序に従っているか否か、および、予測ユニットに適用される予測順序が示されている。図28A〜図28Dに示された数値は、順序を示す。また、図28A〜図28Dに示された変換ユニットおよび予測ユニットは、階層的に分割されている。なお、変換ユニットを階層的に分割することによって得られる各ブロックも変換ユニットである。また、予測ユニットを階層的に分割することによって得られる各ブロックも予測ユニットである。
図28Aは、図27Aの画像処理装置2600によって用いられる予測順序の第1例を示す図である。4番目の予測ユニットの予測順序が、4番目から7番目までの変換ユニットの変換順序に従っていない。したがって、4番目の予測ユニットは、分割され、変換ユニットの変換順序に従って処理される。
図28Bは、図27Aの画像処理装置2600によって用いられる予測順序の第2例を示す図である。2番目と3番目の予測ユニットが、1番目と2番目の変換ユニットの変換順序に従っていない。したがって、2番目と3番目の予測ユニットは、1番目と2番目の変換ユニットの変換順序に従って処理される。
図28Cは、図27Aの画像処理装置2600によって用いられる予測順序の第3例を示す図である。1番目から4番目までの変換ユニットの変換順序と、1番目から4番目までの予測ユニットの予測順序とが一致している。すなわち、予測順序が、変換順序に従っている。したがって、予測順序は、変更されなくてもよい。
図28Dは、図27Aの画像処理装置2600によって用いられる予測順序の第4例を示す図である。4番目から7番目までの予測ユニットの予測順序が、4番目の変換ユニットの変換順序に一致していない。しかし、4番目から7番目までの予測ユニットの予測順序は、4番目の変換ユニットの変換順序を細分化することにより得られる順序と同等である。したがって、4番目から7番目までの予測ユニットの予測順序は、4番目の変換ユニットの変換順序に従っている。よって、予測順序は、変更されなくてもよい。
上述のように、予測順序が変換順序に従っているか否かは、予測順序が変換順序に則しているか否か、または、予測順序が変換順序に沿っているか否かと同等である。
(実施の形態8)
図29Aは、実施の形態8に係る画像処理装置の構成を示す図である。図29Aに示された画像処理装置2800は、実施の形態5に係る画像処理装置2400と同様に、符号化処理によって符号化された画像を復号する。この符号化処理は、実施の形態5と同様に、1以上の予測ユニットに対する予測処理と、その1以上の予測ユニットを含む領域に含まれる複数の変換ユニットに対する周波数変換処理とを含む。
画像処理装置2800は、予測部2801および再構成処理部2802を備える。予測部2801は、実施の形態5で示された予測部2401に対応する。また、再構成処理部2802は、実施の形態1で示された再構成部508に対応する。
図29Bは、図29Aに示された画像処理装置2800の動作を示すフローチャートである。まず、予測部2801は、予測順序が変換順序に従っていない場合、予測画像を変換順序に従ってブロック毎に出力する(S2801)。次に、再構成処理部2802は、再構成処理を変換順序に従ってブロック毎に実行する(S2802)。
これにより、画像処理装置2800は、再構成処理を早く開始することができる。したがって、画像処理装置2800は、画像処理において発生する遅延を小さくすることができる。
(実施の形態9)
図30Aは、実施の形態9に係る画像処理装置の構成を示す図である。図30Aに示された画像処理装置2900は、実施の形態5に係る画像処理装置2400と同様に、符号化処理によって符号化された画像を復号する。この符号化処理は、実施の形態5と同様に、1以上の予測ユニットに対する予測処理と、その1以上の予測ユニットを含む領域に含まれる複数の変換ユニットに対する周波数変換処理とを含む。
画像処理装置2900は、予測部2901、再構成処理部2902およびインループフィルタ処理部2903を備える。予測部2901は、実施の形態5で示された予測部2401に対応する。また、再構成処理部2902は、実施の形態1で示された再構成部508に対応する。また、インループフィルタ処理部2903は、実施の形態1で示されたインループフィルタ部510に対応する。
図30Bは、図30Aに示された画像処理装置2900の動作を示すフローチャートである。まず、予測部2901は、予測順序が変換順序に従っていない場合、予測画像を変換順序に従ってブロック毎に出力する(S2901)。次に、再構成処理部2902は、再構成処理を変換順序に従ってブロック毎に実行する(S2902)。次に、インループフィルタ処理部2903は、インループフィルタ処理を変換順序に従ってブロック毎に実行する(S2903)。
これにより、画像処理装置2900は、インループフィルタ処理を早く開始することができる。したがって、画像処理装置2900は、画像処理において発生する遅延を小さくすることができる。
なお、インループフィルタ処理部2903は、インループフィルタ処理を実行することにより得られた画像データをブロック毎に変換順序に従ってフレームメモリに格納してもよい。これにより、画像処理装置2900は、インループフィルタ処理を早く完了することができる。したがって、画像処理装置2900は、一連のパイプライン処理を高速化できる。
(実施の形態10)
図31Aは、実施の形態10に係る画像処理装置の構成を示す図である。図31Aに示された画像処理装置3100は、符号化処理によって符号化された画像を復号する。この符号化処理は、1以上の予測ユニットに対する予測処理と、その1以上の予測ユニットを含む領域に含まれる複数の変換ユニットに対する周波数変換処理とを含む。
画像処理装置3100は、処理部3101を備える。例えば、処理部3101は、実施の形態1で示された動き補償部506および面内予測部507等に対応する。処理部3101は、実施の形態1で示された再構成部508に対応してもよい。
図31Bは、図31Aに示された画像処理装置3100の動作を示すフローチャートである。処理部3101は、複数の変換ユニットに対して予め定められている変換順序に依存させて、1以上の予測ユニットの予測画像に関する画像処理を実行する(S3101)。
これにより、パイプライン処理が円滑に実行される。すなわち、画像処理装置3100は、パイプライン処理における待ち時間を削減し、処理の遅延を小さくする。
なお、予測画像に関する画像処理は、予測画像を扱う処理であり、例えば、予測画像を生成するための情報を取得する処理、予測画像を生成する処理、予測画像を出力する処理、予測画像を用いて画像を再構成する処理、または、これらの処理の組み合わせ等である。処理部3101は、動き補償を実行することにより予測画像を生成してもよいし、面内予測を実行することにより予測画像を生成してもよい。
また、実施の形態10で示された処理部3101は、他の処理を実行してもよい。例えば、処理部3101は、複数の変換ユニットに対して逆周波数変換を変換順序に沿って実行してもよい。また、画像処理装置3100または処理部3101は、他の実施の形態で示された構成の一部または全部を有していてもよい。また、画像処理装置3100または処理部3101が、他の実施の形態で示された構成に、組み込まれてもよい。
また、処理部3101は、変換順序を取得し、取得された変換順序に沿って、画像処理を実行してもよい。この場合、例えば、処理部3101は、変換順序を示す情報を取得し、取得された情報によって示される変換順序に沿って、画像処理を実行する。また、処理部3101は、変換順序に従って、画像処理の順序を決定し、決定された順序に沿って、画像処理を実行してもよい。また、処理部3101は、変換ユニットに等しい、または、変換ユニットよりも小さいブロック毎に、画像処理を変換順序に沿って実行してもよい。
また、処理部3101は、1以上の予測ユニットに対して予め定められている予測順序が変換順序に沿っていない場合、画像処理を変換順序に沿って実行してもよい。また、処理部3101は、1以上の予測ユニットに対して予測順序が予め定められていない場合、画像処理を変換順序に沿って実行してもよい。また、処理部3101は、複数の変換ユニットのエッジの形式と、1以上の予測ユニットのエッジの形式とが異なる場合、画像処理を変換順序に沿って実行してもよい。
また、処理部3101は、再構成された画像に対するフィルタ処理であるインループフィルタ処理を変換順序に沿って実行してもよい。また、処理部3101は、インループフィルタ処理が実行された画像をフレームメモリに格納する処理を変換順序に沿って実行してもよい。
(実施の形態11)
図32Aは、実施の形態11に係る画像処理装置の構成を示す図である。図32Aに示された画像処理装置3200は、実施の形態10に係る画像処理装置3100と同様に、符号化処理によって符号化された画像を復号する。この符号化処理は、実施の形態10と同様に、1以上の予測ユニットに対する予測処理と、その1以上の予測ユニットを含む領域に含まれる複数の変換ユニットに対する周波数変換処理とを含む。
画像処理装置3200は、分割部3201および処理部3202を備える。処理部3202は、実施の形態10で示された処理部3101に対応する。
図32Bは、図32Aに示された画像処理装置3200の動作を示すフローチャートである。まず、分割部3201は、1以上の予測ユニットを複数の変換ユニットのエッジに沿って複数のブロックに分割する(S3201)。次に、処理部3202は、1以上の予測ユニットを分割することにより得られたブロック毎に、予測画像に関する画像処理を変換順序に沿って実行する(S3202)。
これにより、大きい予測ユニットが、変換ユニットのエッジに沿って分割される。したがって、大きい予測ユニットの予測画像に関する画像処理が変換順序に沿って、適切に実行される。
なお、分割部3201は、1つの予測ユニットを複数の変換ユニットのエッジに沿って複数のブロックに分割してもよい。分割部3201は、符号化ユニットに含まれる複数の予測ユニットを複数の変換ユニットのエッジに沿って複数のブロックに分割してもよい。
(実施の形態12)
図33Aは、実施の形態12に係る画像処理装置の構成を示す図である。図33Aに示された画像処理装置3000は、符号化処理によって符号化された画像を復号する。この符号化処理は、予測ユニットの予測モードに従って予測ユニットに対応する予測画像を生成する面内予測処理を含む。
画像処理装置3000は、分割部3001および処理部3002を備える。処理部3002は、実施の形態1で示された面内予測部507等に対応する。
図33Bは、図33Aに示された画像処理装置3000の動作を示すフローチャートである。まず、分割部3001は、予測ユニットを複数のブロックに分割する(S3001)。そして、処理部3002は、複数のブロックのそれぞれに対して、予測ユニットの予測モードに従って面内予測を実行する(S3002)。
これにより、画像処理装置3000は、小さいデータ単位で面内予測を実行することができる。したがって、画像処理装置3000は、パイプライン処理をより小さいデータ単位で円滑に実行することができる。よって、画像処理装置3000は、画像処理において発生する遅延を小さくすることができる。
なお、実施の形態12で示された画像処理装置3000に、他の実施の形態で示された構成要素が追加されてもよい。また、実施の形態12で示された画像処理装置3000が、他の実施の形態で示された構成に、組み込まれてもよい。
また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の画像処理装置などを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、コンピュータに、1以上の予測ユニットに対する予測処理と、前記1以上の予測ユニットを含む領域に含まれる複数の変換ユニットに対する周波数変換処理とを含む符号化処理によって符号化された画像を復号するための処理を実行する画像処理方法であって、前記複数の変換ユニットに対して予め定められている変換順序に依存させて、前記1以上の予測ユニットの予測画像に関する画像処理を実行する画像処理方法を実行させる。
以上、一つまたは複数の態様に係る画像処理装置について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
例えば、特定の処理部が実行する処理を別の処理部が実行してもよい。また、処理を実行する順番が変更されてもよいし、複数の処理が並行して実行されてもよい。
また、本発明は、画像処理装置として実現できるだけでなく、画像処理装置を構成する処理手段をステップとする方法として実現できる。例えば、それらのステップは、コンピュータによって実行される。そして、本発明は、それらの方法に含まれるステップを、コンピュータに実行させるためのプログラムとして実現できる。さらに、本発明は、そのプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体として実現できる。
また、本発明に係る画像処理装置および画像処理方法は、画像符号化装置、画像復号装置、画像符号化方法および画像復号方法にも適用可能である。
また、画像処理装置に含まれる複数の構成要素は、集積回路であるLSI(Large Scale Integration)として実現されてもよい。これらの構成要素は、個別に1チップ化されてもよいし、一部または全部を含むように1チップ化されてもよい。例えば、メモリ以外の構成要素が、1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC(Integrated Circuit)、システムLSI、スーパーLSIまたはウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。プログラムすることが可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて、画像処理装置に含まれる構成要素の集積回路化を行ってもよい。
(実施の形態13)
上記各実施の形態で示した画像符号化方法および画像復号方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらに、ここで、上記各実施の形態で示した画像符号化方法および画像復号方法の応用例とそれを用いたシステムを説明する。
図34は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106〜ex110が設置されている。
このコンテンツ供給システムex100では、電話網ex104、および、基地局ex106〜ex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が相互に接続される。また、各機器が、インターネットサービスプロバイダex102を介して、インターネットex101に接続されている。
しかし、コンテンツ供給システムex100は、図34のような構成に限定されず、いずれかの要素を組み合せて接続するようにしてもよい。また、固定無線局である基地局ex106〜ex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
カメラex113は、デジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116は、デジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(登録商標)(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband−Code Division Multiple Access)方式、LTE(Long Term Evolution)方式、若しくは、HSPA(High Speed Packet Access)方式の携帯電話、または、PHS(Personal Handyphone System)等であり、いずれでも構わない。
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して、上記各実施の形態で説明したように符号化処理を行い、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は、要求のあったクライアントに対して、送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号処理して再生する。
なお、撮影したデータの符号化処理は、カメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号処理は、クライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理は、カメラex116、コンピュータex111およびストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
また、これら符号化処理および復号処理は、一般的にコンピュータex111および各機器が有するLSI(Large Scale Integration)ex500において実行される。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、画像符号化用のソフトウェアまたは画像復号用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化処理または復号処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画像データを送信してもよい。このときの動画像データは、携帯電話ex114が有するLSIex500で符号化処理されたデータである。
また、ストリーミングサーバex103は、複数のサーバまたは複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号し、再生することができ、特別な権利および設備を有さないユーザでも個人放送を実現できる。
なお、コンテンツ供給システムex100の例に限らず、図35に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも画像符号化装置または画像処理装置のいずれかを組み込むことができる。具体的には、放送局ex201では映像情報のビットストリームが電波を介して通信または衛星ex202に伝送される。このビットストリームは、上記各実施の形態で説明した画像符号化方法により符号化された符号化ビットストリームである。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信したビットストリームを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号して再生する。
また、記録媒体であるCDおよびDVD等の記録メディアex214に記録したビットストリームを読み取り、復号する再生装置ex212にも上記実施の形態で示した画像処理装置を実装することが可能である。この場合、再生された映像信号はモニタex213に表示される。
また、DVD、BD等の記録メディアex215に記録した符号化ビットストリームを読み取り復号する、または、記録メディアex215に映像信号を符号化し書き込むリーダ/レコーダex218にも上記各実施の形態で示した画像処理装置または画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、符号化ビットストリームが記録された記録メディアex215により他の装置およびシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に画像処理装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に画像処理装置を組み込んでもよい。
図36は、上記各実施の形態で説明した画像復号方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像情報のビットストリームを取得または出力するチューナex301と、受信した符号化データを復調する、または外部に送信する符号化データに変調する変調/復調部ex302と、復調した映像データ、音声データを分離する、または符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。
また、テレビex300は、音声データ、映像データそれぞれを復号する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305を有する信号処理部ex306と、復号した音声信号を出力するスピーカex307、復号した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。
インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお、記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。
テレビex300の各部は、同期バスを介して互いに接続されている。
まず、テレビex300がアンテナex204等により外部から取得したデータを復号し、再生する構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、CPU等を有する制御部ex310の制御に基づいて、変調/復調部ex302で復調した映像データ、音声データを多重/分離部ex303で分離する。さらにテレビex300は、分離した音声データを音声信号処理部ex304で復号し、分離した映像データを映像信号処理部ex305で上記各実施の形態で説明した復号方法を用いて復号する。復号した音声信号、映像信号は、それぞれ出力部ex309から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex318、ex319等に一旦これらの信号を蓄積するとよい。また、テレビex300は、放送等からではなく、磁気/光ディスク、SDカード等の記録メディアex215、ex216から符号化された符号化ビットストリームを読み出してもよい。
次に、テレビex300が音声信号および映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、制御部ex310の制御に基づいて、音声信号処理部ex304で音声信号を符号化し、映像信号処理部ex305で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重/分離部ex303で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex320、ex321等に一旦これらの信号を蓄積するとよい。
なお、バッファex318〜ex321は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302および多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
また、テレビex300は、放送および記録メディア等から音声データおよび映像データを取得する以外に、マイクおよびカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号処理、外部出力のみが可能な構成であってもよい。
また、リーダ/レコーダex218で記録メディアから符号化ビットストリームを読み出す、または、書き込む場合には、上記復号処理または符号化処理はテレビex300とリーダ/レコーダex218とのいずれで行ってもよいし、テレビex300とリーダ/レコーダex218とが互いに分担して行ってもよい。
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図37に示す。情報再生/記録部ex400は、以下に説明する要素ex401〜ex407を備える。
光ヘッドex401は、光ディスクである記録メディアex215の記録面にレーザスポットを照射して情報を書き込み、記録メディアex215の記録面からの反射光を検出して情報を読み込む。変調記録部ex402は、光ヘッドex401に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex403は、光ヘッドex401に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex215に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex404は、記録メディアex215に記録するための情報および記録メディアex215から再生した情報を一時的に保持する。ディスクモータex405は、記録メディアex215を回転させる。サーボ制御部ex406は、ディスクモータex405の回転駆動を制御しながら光ヘッドex401を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。
システム制御部ex407は、情報再生/記録部ex400全体の制御を行う。上記の読み出しおよび書き込みの処理はシステム制御部ex407が、バッファex404に保持された各種情報を利用し、また必要に応じて新たな情報の生成および追加を行うと共に、変調記録部ex402、再生復調部ex403、サーボ制御部ex406を協調動作させながら、光ヘッドex401を通して、情報の記録再生を行うことにより実現される。システム制御部ex407は、例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図38に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録および再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。
情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した符号化データの読み書きを行う。
以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりするなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば図36に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111および携帯電話ex114等でも考えられる。また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器および復号器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号器のみの受信端末という3通りの実装形式が考えられる。
このように、上記各実施の形態で示した画像符号化方法あるいは画像復号方法を上述したいずれの機器またはシステムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態14)
本実施の形態では、実施の形態1に示した画像処理装置を、典型的には半導体集積回路であるLSIとして実現する。実現した形態を図39に示す。フレームメモリ502をDRAM上に実現し、その他の回路およびメモリをLSI上に構成している。符号化ストリームを格納するビットストリームバッファをDRAM上に実現してもよい。
これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されても良い。ここではLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適応などが可能性として有り得る。
さらに加えて、本実施の形態の画像処理装置を集積化した半導体チップと、画像を描画するためのディスプレイとを組み合せて、様々な用途に応じた描画機器を構成することができる。携帯電話、テレビ、デジタルビデオレコーダー、デジタルビデオカメラおよびカーナビゲーション等における情報描画手段として、本発明を利用することが可能である。ディスプレイとしては、ブラウン管(CRT)の他、液晶、PDP(プラズマディスプレイパネル)および有機ELなどのフラットディスプレイ、プロジェクターを代表とする投射型ディスプレイなどと組み合わせることが可能である。
また、本実施の形態におけるLSIは、符号化ストリームを蓄積するビットストリームバッファ、および、画像を蓄積するフレームメモリ等を備えるDRAM(Dynamic Random Access Memory)と連携することにより、符号化処理または復号処理を行ってもよい。また、本実施の形態におけるLSIは、DRAMではなく、eDRAM(embeded DRAM)、SRAM(Static Random Access Memory)、または、ハードディスクなど他の記憶装置と連携しても構わない。
(実施の形態15)
上記各実施の形態で示した画像符号化装置、画像処理装置、画像符号化方法および画像復号方法は、典型的には集積回路であるLSIで実現される。一例として、図40に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex502〜ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
例えば、符号化処理を行う場合には、LSIex500は、AV I/Oex509によりマイクex117およびカメラex113等からAV信号の入力を受け付ける。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。蓄積したデータは、処理量および処理速度に応じて適宜複数回に分けるなどされ、信号処理部ex507に送られる。信号処理部ex507は、音声信号の符号化および/または映像信号の符号化を行う。ここで映像信号の符号化処理は、上記実施の形態で説明した符号化処理である。信号処理部ex507では、さらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex504から外部に出力する。この出力されたビットストリームは、基地局ex107に向けて送信されたり、または、記録メディアex215に書き込まれたりする。
また、例えば、復号処理を行う場合には、LSIex500は、マイコン(マイクロコンピュータ)ex502の制御に基づいて、ストリームI/Oex504によって、基地局ex107から得られた符号化データ、または、記録メディアex215から読み出して得た符号化データを一旦メモリex511等に蓄積する。マイコンex502の制御に基づいて、蓄積したデータは処理量および処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声データの復号および/または映像データの復号が行われる。ここで映像信号の復号処理は上記各実施の形態で説明した復号処理である。さらに、場合により復号された音声信号と復号された映像信号を同期して再生できるようそれぞれの信号を一旦メモリex511等に蓄積するとよい。復号された出力信号はメモリex511等を適宜介しながら、AV I/Oex509からモニタex219等に出力される。メモリex511にアクセスする際にはメモリコントローラex503を介する構成である。
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。