以下、発明を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(画像符号化・復号システム)
4.第4の実施の形態(QALF)
5.第5の実施の形態(パーソナルコンピュータ)
6.第6の実施の形態(テレビジョン受像機)
7.第7の実施の形態(携帯電話機)
8.第8の実施の形態(ハードディスクレコーダ)
9.第9の実施の形態(カメラ)
<1.第1の実施の形態>
[デバイスの構成]
図1は、本発明を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
図1に示される画像符号化装置100は、例えば、H.264及びMPEG4 Part10(Advanced Video Coding)(以下H.264/AVCと記す)方式で画像を圧縮符号化する符号化装置であり、さらに、適応ループフィルタを採用している。
図1の例において、画像符号化装置100は、A/D(Analog / Digital)変換部101、画面並べ替えバッファ102、演算部103、直交変換部104、量子化部105、可逆符号化部106、および蓄積バッファ107を有する。また、画像符号化装置100は、逆量子化部108、逆直交変換部109、演算部110、およびデブロックフィルタ111を有する。さらに、画像符号化装置100は、制御情報生成部112、適応フィルタ処理部113、およびフレームメモリ114を有する。また、画像符号化装置100は、イントラ予測部115、動き補償部116、動き予測部117、および予測画像選択部118を有する。さらに、画像符号化装置100は、レート制御部119を有する。
A/D変換部101は、入力された画像をA/D変換し、画面並べ替えバッファ102に出力し、記憶させる。画面並べ替えバッファ102は、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)構造に応じて、符号化のためのフレームの順番に並べ替える。
演算部103は、画面並べ替えバッファ102から読み出された画像から、予測画像選択部118により選択されたイントラ予測部115からの予測画像または動き補償部116からの予測画像を減算し、その差分情報を直交変換部104に出力する。直交変換部104は、演算部103からの差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を出力する。量子化部105は、直交変換部104が出力する変換係数を量子化する。
量子化部105の出力となる、量子化された変換係数は、可逆符号化部106に入力される。可逆符号化部106は、その量子化された変換係数に対して、可変長符号化、算術符号化等の可逆符号化を施し、圧縮する。
可逆符号化部106は、イントラ予測を示す情報などをイントラ予測部115から取得し、インター予測モードを示す情報などを動き予測部117から取得する。なお、イントラ予測を示す情報は、以下、イントラ予測モード情報とも称する。また、インター予測を示す情報モードを示す情報は、以下、インター予測モード情報とも称する。
可逆符号化部106は、さらに、適応フィルタ処理部113において行われる適応フィルタ処理の制御情報を、制御情報生成部112から取得する。
可逆符号化部106は、量子化された変換係数を符号化するとともに、適応フィルタ処理の制御情報、イントラ予測を示す情報やインター予測モードを示す情報、および量子化パラメータなどを符号化し、圧縮画像におけるヘッダ情報の一部とする(多重化する)。可逆符号化部106は、符号化したデータを蓄積バッファ107に供給して蓄積させる。
例えば、可逆符号化部106においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などがあげられる。算術符号化としては、CABAC(Context-Adaptive Binary Arithmetic Coding)などがあげられる。
蓄積バッファ107は、可逆符号化部106から供給されたデータを、一時的に保持し、所定のタイミングにおいて、H.264/AVC方式で符号化された圧縮画像として、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
また、量子化部105において量子化された変換係数は、逆量子化部108にも入力される。逆量子化部108は、その量子化された変換係数を、量子化部105による量子化に対応する方法で逆量子化し、得られた変換係数を、逆直交変換部109に供給する。
逆直交変換部109は、供給された変換係数を、直交変換部104による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力は、演算部110に供給される。演算部110は、逆直交変換部109より供給された逆直交変換結果、すなわち、復元された差分情報に、予測画像選択部118から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。その加算結果は、デブロックフィルタ111に供給される。
デブロックフィルタ111は、復号画像のブロック歪を除去する。デブロックフィルタ111は、その歪除去結果を制御情報生成部112および適応フィルタ処理部113に供給する。
制御情報生成部112は、デブロックフィルタ111から供給される復号画像と、画面並べ替えバッファ102から読み出された現在の入力画像を取得し、それらから、適応フィルタ処理部113において行われる適応フィルタの制御情報を生成する。詳細については後述するが、制御情報には、フィルタ係数、ブロックサイズ、フィルタブロックフラグ、および境界制御フラグ等が含まれる。
制御情報生成部112は、生成した制御情報を適応フィルタ処理部113に供給する。また、制御情報生成部112は、生成した制御情報を可逆符号化部106にも供給する。上述したように制御情報は、可逆符号化部106により、可逆圧縮処理され、画像圧縮情報に含められる(多重化される)。つまり、制御情報は、画像圧縮情報とともに画像復号装置に送られる。
適応フィルタ処理部113は、制御情報生成部112から供給された制御情報のフィルタ係数、ブロックサイズ指定、およびフィルタブロックフラグ等を用いて、デブロックフィルタ111から供給される復号画像にフィルタ処理を行う。このフィルタとして、例えば、ウィナーフィルタ(Wiener Filter)が用いられる。もちろんウィナーフィルタ以外のフィルタを用いても良い。適応フィルタ処理部113は、フィルタ処理結果をフレームメモリ114に供給し、参照画像として蓄積させる。
フレームメモリ114は、所定のタイミングにおいて、蓄積されている参照画像を動き補償部116および動き予測部117に出力する。
この画像符号化装置100においては、例えば、画面並べ替えバッファ102からのIピクチャ、Bピクチャ、およびPピクチャが、イントラ予測(イントラ処理とも称する)する画像として、イントラ予測部115に供給される。また、画面並べ替えバッファ102から読み出されたBピクチャおよびPピクチャが、インター予測(インター処理とも称する)する画像として、動き予測部117に供給される。
イントラ予測部115は、画面並べ替えバッファ102から読み出されたイントラ予測する画像とフレームメモリ114から供給された参照画像に基づいて、候補となる全てのイントラ予測モードのイントラ予測処理を行い、予測画像を生成する。
イントラ予測部115において、当該ブロック/マクロブロックに対して適用されたイントラ予測モードに関する情報は、可逆符号化部106に伝送され、画像圧縮情報におけるヘッダ情報の一部として符号化される。H.264画像情報符号化方式において、輝度信号に対しては、イントラ4×4予測モード、イントラ8×8予測モード及びイントラ16×16予測モードが定義されており、また、色差信号に関しては、それぞれのマクロブロックごとに、輝度信号とは独立した予測モードを定義することが可能である。イントラ4×4予測モードについては、それぞれの4×4輝度ブロックに対して1つのイントラ予測モードが定義されることになる。イントラ8×8予測モードについては、それぞれの8×8輝度ブロックに対して1つのイントラ予測モードが定義されることになる。イントラ16×16予測モード、並びに、色差信号に対しては、1つのマクロブロックに対してそれぞれ1つの予測モードが定義されることになる。
イントラ予測部115は、予測画像を生成したイントラ予測モードに対してコスト関数値を算出し、算出したコスト関数値が最小値を与えるイントラ予測モードを、最適イントラ予測モードとして選択する。イントラ予測部115は、最適イントラ予測モードで生成された予測画像を、予測画像選択部118に供給する。
動き予測部117は、インター符号化が行われる画像について、画面並べ替えバッファ102から供給される画像情報(入力画像)とフレームメモリ114から供給される参照フレームとなる画像情報(復号画像)とを取得し、動きベクトルを算出する。動き予測部117は、算出した動きベクトルを示す動きベクトル情報を可逆符号化部106に供給する。この動きベクトル情報は、可逆符号化部106により、可逆圧縮処理され、画像圧縮情報に含められる。つまり、動きベクトル情報は、画像圧縮情報とともに画像復号装置に送られる。
また、動き予測部117は、動きベクトル情報を動き補償部116にも供給する。
動き補償部116は、動き予測部117から供給された動きベクトル情報に応じて動き補償処理を行い、インター予測画像情報を生成する。動き補償部116は、生成した予測画像情報を、予測画像選択部118に供給する。
予測画像選択部118は、イントラ符号化を行う画像の場合、イントラ予測部115の出力を演算部103に供給し、インター符号化を行う画像の場合、動き補償部116の出力を演算部103に供給する。
レート制御部119は、蓄積バッファ107に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
MPEG(Moving Picture Experts Group)2においては、動き予測・補償処理の単位は、動き補償ブロックであり、動き補償ブロック毎に独立した動きベクトル情報を持つことができる。その動き補償ブロックのサイズには、フレーム動き補償モードの場合は16×16画素、フィールド動き補償モードの場合には第一フィールド、第二フィールドのそれぞれに対し、16×8画素がある。
これに対し、AVC(Advanced Video Coding)においては、図2上側に示すように、16×16画素により構成される一つのマクロブロックを、16×16、16×8、8×16若しくは8×8のいずれかのパーティションに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。更に、8×8パーティションに関しては、図2下側に示されるとおり、8×8、8×4、4×8、4×4のいずれかのサブパーティションに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。この動き補償ブロックを単位として動き予測・補償処理が行なわれる。
図3は、制御情報生成部112の主な構成例を示すブロック図である。
制御情報生成部112は、上述したように、適応フィルタ処理部113において行われる、ループフィルタである適応フィルタ(ALF(Adaptive Loop Filter))に用いられる制御情報を生成する。制御情報生成部112は、その制御情報として、例えば、フィルタ係数、ALFブロックサイズ、フィルタブロックフラグ、および境界制御フラグを生成する。
制御情報生成部112は、フィルタ係数算出部131、境界制御フラグ生成部132、およびブロック情報生成部133を有する。
フィルタ係数算出部131は、デブロックフィルタ111から供給される復号画像と、画面並べ替えバッファ102から読み出された現在の入力画像を取得し、それらから、フレーム毎にALFのフィルタ係数を算出する。
境界制御フラグ生成部132は、フレームに複数形成されるスライスの境界付近の画素に対してどのようにフィルタ処理を行うかを制御する(フィルタ処理方法を指定する)境界制御フラグ(alf_enable_in_slice_boundary)を生成する。詳細については後述する。
ブロック情報生成部133は、デブロックフィルタ111から供給される復号画像と、フィルタ係数算出部131により算出されたフィルタ係数に基づいて、ALFブロックサイズを決定し、処理対象スライス内の各ALFブロックについてフィルタブロックフラグを生成する。
ここで、ALFブロックおよびフィルタブロックフラグについて説明する。図4は、ALFブロックおよびフィルタブロックフラグを説明する図である。
上述したように、適応フィルタは、フレーム毎にフィルタ係数が設定される。つまり、フレーム単位で最適なフィルタ処理が行われる。しかしながら、一般的に、フレーム画像は、全体が均一でなく、局所的に様々な特徴を有している。そのため、局所的には最適なフィルタ係数が異なる。したがって、上述したようにフレーム毎に決定されるフィルタ係数を用いたフィルタ処理では、フレーム全体では画質を改善するが、局所的には逆に悪化させてしまう恐れがあった。
そこで、局所的に画質が悪化する領域にはフィルタ処理を行わないようにするBALF(Block based Adaptive Loop Filter)が考えられた。
図4Aのフレーム151は、デブロックフィルタ処理後の復号画像を示す。ブロック情報生成部133は、図4Bに示されるように、それぞれが、局所的に行われる適応フィルタ処理の制御単位となる制御ブロックである、複数のALFブロック152を、このフレーム151の領域全体に敷き詰めるように隙間無く配置する。このALFブロック152が配置される領域は、フレーム151の領域と同一でなくても良いが、少なくともフレームの領域全体を含む。結果として、フレーム151の領域は、各ALFブロック152の領域(複数の領域)に分割される。
ブロック情報生成部133は、ALFブロック152の水平方向のサイズ(両矢印153)と、垂直方向のサイズ(両矢印154)とを決定する。ALFブロックのサイズは、例えば、8×8、16×16、24×24、32×32、48×48、64×64、96×96、あるいは128×128のいずれか1つをスライス毎に指定することができる。なお、そのALFブロックのサイズを指定する情報をブロックサイズインデックスと称する。
ブロックサイズが決まれば、フレームサイズは固定であるので、1フレーム当たりのALFブロック数も決定される。
ブロック情報生成部133は、図4Cに示されるように、ALFブロック152毎に、フィルタ処理を行うか否かを制御するフィルタブロックフラグ155を設定する。例えば、適応フィルタにより画質が改善される領域については、値が「1」のフィルタブロックフラグ155が生成され、適応フィルタにより画質が悪化する領域については、値が「0」のフィルタブロックフラグ155が生成される。フィルタブロックフラグ155において、値「1」は、フィルタ処理を行うことを示す値であり、値「0」は、フィルタ処理を行わないことを示す値である。
適応フィルタ処理部113は、このフィルタブロックフラグ155の値に基づいて適応フィルタ処理を制御する。例えば、適応フィルタ処理部113は、フィルタブロックフラグ155の値が「1」のALFブロック152の領域にのみフィルタ処理を行い、フィルタブロックフラグ155の値が「0」のALFブロック152の領域にはフィルタ処理を行わない。
また、上述したブロックサイズインデックスとフィルタブロックフラグは、画像圧縮情報のスライスヘッダに含められ、画像符号化装置100から画像復号化装置へ送られる。ALFブロックの数に応じた1個以上のフィルタブロックフラグは、例えばラスタ・スキャンの順序でスライスヘッダに含められる。
従って、ALFブロックのサイズが小さい程、より細かなフィルタ制御が可能になり、より適切なALFフィルタが可能となる。ただし、ALFブロックのサイズを小さくすると、フィルタブロックフラグのビット量が増加する。つまり、ALFブロックのサイズが小さい程、画像圧縮情報の符号化効率が低減する。このように、適応フィルタの性能と画像圧縮情報の符号化効率は、トレードオフの関係にある。
ALFブロックの数は次の式(1)のように算出される。
式(1)においてNALFBLOCKは、ALFブロックの数を示す。また、NMBwは、ピクチャの水平方向のマクロブロック数を示し、NMBhは、ピクチャの垂直方向のマクロブック数を示す。さらに、NSIZEは、ALFブロックの一辺のサイズを示す。また、floor[x]は、xの少数点以下を切り捨てて、整数にする関数である。
ところで、H.264/AVCでは、1フレームを複数スライスに分割し、そのスライス毎に画像圧縮情報を出力するようにすることができる。図5は、マルチスライスの例を説明する図である。図5の例の場合、フレーム151は、スライス0、スライス1、およびスライス2の3つのスライスに分割されている。
このようなフレームより細かなスライス単位で画像圧縮情報を出力することにより、画像符号化装置は、画像圧縮情報をより短い間隔で生成し、出力することができる。つまり、その画像圧縮情報を復号する画像復号装置は、より早期に画像圧縮情報の復号を開始することができる。つまり、画像が入力されてから、符号化処理および復号処理が行われ、画像が出力されるまでの遅延時間を短くすることができる。
BALFについて記載されている非特許文献2には、このマルチスライスについて開示されていない。つまり、ALFブロックをフレーム全体について設定することしか記載されていない。ところがマルチスライスの場合、スライスの境界付近の画素に対しては、フィルタ処理を通常のように行うことが出来ない場合がある。
図6は、スライスの境界付近の画素に対するフィルタ処理の様子を示す図である。適応フィルタ処理部113は、処理対象画素に対してフィルタ処理を行う場合、その処理対象画素周辺の所定の範囲内の画素(周辺画素)を用いて行う。例えば、図6の場合、処理対象画素161をフィルタ処理する場合、適応フィルタ処理部113は、斜線模様で示される9×9の周辺画素162を用いてそのフィルタ処理を行う。
ただし、図6に示されるように、処理対象画素161は、スライス境界163付近の画素である。ここで、スライス境界163は、現在、処理対象とされるスライス(当該スライス)と、その処理対象スライスに隣接するスライス(隣のスライス)との境界を示す。つまり、スライス境界163は、当該スライスの外枠を示す。
図6に示されるように、そのスライス境界163近傍の処理対象画素161に対するフィルタ処理に用いられる周辺画素162は、その一部がスライス境界163を超え、隣のスライスの領域に跨っている。つまり、この処理対象画素161に対して、例えば図7Aに示されるように、通常の場合と同様にフィルタ処理を行うためには、隣のスライスの画素値が必要になる。
図7Aの例の場合、適応フィルタ処理部113は、当該スライスと隣のスライスの両方の画素AA乃至画素JJを用いて処理対象画素である画素EEに対するフィルタ処理を行う。
しかしながら、そのためには、隣のスライスの復号画像が生成されるまで待機しなければならない。したがって、この場合、符号化処理の遅延時間が増大する恐れがあった。
これに対して、例えば図7Bに示されるように、ダミーデータを生成し、利用する方法がある。図7Bの例の場合、適応フィルタ処理部113は、矢印で示されるように、スライス境界163に接する画素EA乃至画素EJを複製することにより、周辺画素162の隣のスライス内の画素(ダミーデータ)を生成する。フィルタ処理部113は、生成したダミーデータを用いて画素EEに対するフィルタ処理を行う。
このようにすることにより、適応フィルタ処理部113は、隣のスライスの画素が生成されるのを待つ必要がなく、図7Aの場合よりも早期に画素EEをフィルタ処理することができる。
つまり、隣接スライスの画素を用いる図7Aの方法の場合、適応フィルタ処理部113は、実際のデータを用いるので、実際の画像の内容により適したフィルタ処理を行うことができる。すなわち、フィルタ処理による画質のより大きな改善を期待することができる。
これに対して図7Bの方法の場合、適応フィルタ処理部113は、フィルタ処理に隣のスライスのデータを必要とせず、当該スライスのデータのみで処理を行うことができるので、より早期にフィルタ処理を行うことができる。
どちらの方法が望ましいかは、システムの仕様やユーザ要求等によって異なる。例えば、画質重視のシステムであれば、図7Aに示される方法の方が望ましいが、図7Aの方法は、図7Bの方法よりもメモリ消費量が多く、かつ、遅延時間が増大する恐れがある。したがって、システムにおいて使用可能なメモリの容量や許容される遅延時間の長さによっては、図7Bの方法の方が望ましい場合も考えられる。
境界制御フラグは、このような境界付近の画素に対するフィルタ処理の方法を制御する。
図3に戻り、境界制御フラグ生成部132は、このような境界制御フラグを生成する。境界制御フラグ生成部132は、システム仕様管理部141、判定部142、および生成部143を有する。
システム仕様管理部141は、画像符号化装置100を含む、画像処理を行うシステムの仕様(ハードウェア資源や使用目的等)を管理する。例えば、システム仕様管理部141が、画像符号化装置100において符号化された画像復号装置の仕様(ハードウェア資源や使用目的等)も管理するようにしてもよい。
判定部142は、処理対象画素が境界付近の画素であるか否かを判定する。生成部143は、境界付近の画素と判定された処理対象画素について境界制御フラグを生成する。
図8は、図1の適応フィルタ処理部113の主な構成例を示すブロック図である。
適応フィルタ処理部113は、制御情報生成部112から供給される制御情報を用いて、デブロックフィルタ111から供給される復号画像にフィルタ処理を行う。
適応フィルタ処理部113は、図9に示されるように、制御部171、適応フィルタ172、および選択部173を有する。
制御部171は、適応フィルタ172および選択部173を制御する。例えば、制御部171は、制御情報生成部112から制御情報を取得し、その制御情報に基づいてフィルタ処理を制御する。
適応フィルタ172は、デブロックフィルタ111から供給される復号画像の、制御部171から処理対象ALFブロックとして指定される領域を、制御部171により設定されたフィルタ係数を用いてフィルタ処理する。
適応フィルタ172は、バッファ181、スライス内用適応フィルタ182、境界用第1適応フィルタ183、および境界用第2適応フィルタ184を有する。
バッファ181は、デブロックフィルタ111から供給される復号画像を一時的に保持する。バッファ181は、処理対象スライスだけでなく、処理対象スライスに隣接するスライス(隣のスライス)も保持することができる。
スライス内用適応フィルタ182は、制御部171に制御されて、周辺画素に隣のスライスの画素が含まれない、スライス境界付近でない処理対象画素に対するフィルタ処理を行う。つまり、スライス内用適応フィルタ182は、当該スライスの画素のみを用いてフィルタ処理を行う。
境界用第1適応フィルタ183は、制御部171に制御されて、周辺画素に隣のスライスの画素が含まれる、スライス境界付近の処理対象画素に対して、スライスを跨ぐフィルタ処理を行う。つまり、境界用第1適応フィルタ183は、図7Aに示されるような方法で、当該スライスと隣のスライスの画素を用いてフィルタ処理を行う。したがって、境界用第1適応フィルタ183は、バッファ181に隣のスライスの画素が蓄積されてからフィルタ処理を開始する。
境界用第2適応フィルタ184は、制御部171に制御されて、周辺画素に隣のスライスの画素が含まれる、スライス境界付近の処理対象画素に対して、当該スライスで閉じたフィルタ処理を行う。つまり、境界用第2適応フィルタ184は、図7Bに示されるような方法で、当該スライスの画素のみを用い、必要に応じてダミーデータを生成してフィルタ処理を行う。したがって、境界用第2適応フィルタ184は、バッファ181に当該スライスの画素が蓄積され次第フィルタ処理を開始する。
制御部171は、処理対象画素の位置と、制御情報に含まれる境界制御フラグの値とに従って、スライス内用適応フィルタ182、境界用第1適応フィルタ183、または境界用第2適応フィルタ184のうち、いずれか1つを選択し、選択した処理部に、各自の方法でフィルタ処理を実行させる。
また、制御部171は、バッファ181の画像の蓄積状況に応じて、選択した処理部(スライス内用適応フィルタ182、境界用第1適応フィルタ183、または境界用第2適応フィルタ184)のフィルタ処理開始タイミングを制御する。
適応フィルタ172(スライス内用適応フィルタ182、境界用第1適応フィルタ183、または境界用第2適応フィルタ184)は、フィルタ処理結果を選択部173に供給する。
選択部173は、制御部171に制御され、デブロックフィルタ111から供給された復号画像(適応フィルタ処理されていない復号画像)と、適応フィルタ172から供給された復号画像(適応フィルタ処理された復号画像)とのうち、いずれか一方を選択し、フレームメモリ114に供給し、参照画像として蓄積させる。
制御部171は、制御情報に含まれるフィルタブロックフラグの値に従って、選択部173を制御し、適応フィルタ処理されていない復号画像、若しくは、適応フィルタ処理された復号画像のいずれか一方を選択させる。
つまり、適応フィルタ処理部113は、デブロックフィルタ111から供給される復号画像の、フィルタブロックフラグによってフィルタ処理を行うことが示された領域(フィルタ処理によって画質が改善されると判定された領域)のみフィルタ処理を行う。
[処理の流れ]
次に、以上のように構成される各部を用いた処理の流れについて説明する。最初に、画像符号化装置100により行われる符号化処理の流れの例を、図9のフローチャートを参照して説明する。
ステップS101において、A/D変換部101は入力された画像をA/D変換する。ステップS102において、画面並べ替えバッファ102は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS103において、演算部103は、ステップS102の処理により並び替えられた画像と、予測画像との差分を演算する。予測画像は、インター予測する場合は動き補償部116から、イントラ予測する場合はイントラ予測部115から、それぞれ予測画像選択部118を介して演算部103に供給される。
差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS104において、直交変換部104は、ステップS103の処理により生成された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。ステップS105において、量子化部105は変換係数を量子化する。この量子化に際しては、後述するステップS119の処理で説明されるように、レートが制御される。
以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS106において、逆量子化部108は量子化部105により量子化された変換係数を量子化部105の特性に対応する特性で逆量子化する。ステップS107において、逆直交変換部109は逆量子化部108により逆量子化された変換係数を直交変換部104の特性に対応する特性で逆直交変換する。
ステップS108において、演算部110は、予測画像選択部118を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部103への入力に対応する画像)を生成する。ステップS109においてデブロックフィルタ111は、演算部110より出力された画像をフィルタリングする。これによりブロック歪みが除去される。
以上の処理が、1スライス分行われると、ステップS110において、制御情報生成部112は、適応フィルタ処理に用いられる制御情報を生成する。制御情報の生成処理の詳細については後述する。
ステップS110の処理により、フィルタ係数、ALFブロックサイズ、およびフィルタブロックフラグ等の制御情報が生成されると、適応フィルタ処理部113は、ステップS111において、その制御情報を用いて、ステップS109の処理によりデブロックフィルタ処理された復号画像に対して適応フィルタ処理を行う。この適応フィルタ処理の詳細については後述する。
ステップS112において、フレームメモリ114は、ステップS111において適応フィルタ処理された画像を記憶する。
ステップS113において、イントラ予測部115は、イントラ予測モードのイントラ予測処理を行う。ステップS114において、動き予測部117および動き補償部116は、インター予測モードのインター動き予測・補償処理を行う。
ステップS115において、予測画像選択部118は、処理対象フレームの予測モードに応じて、イントラ予測処理により生成された予測画像、または、インター動き予測・補償処理により生成された予測画像のうち、いずれか一方を選択する。予測画像選択部118は、選択した予測画像を演算部103および演算部110に供給する。この予測画像が、上述したように、ステップS103、およびステップS108の演算に利用される。
ステップS116において、可逆符号化部106は量子化部105より出力された量子化された変換係数を符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。このとき、可逆符号化部106は、ステップS110において生成された制御情報、ステップS113のイントラ予測処理のイントラ予測モード情報、および、ステップS114のインター動き予測・補償処理のインター予測モード等も符号化する。
ステップS117において、可逆符号化部106は、符号化した制御情報等のメタデータをスライスヘッダに埋め込む(記述する)。このメタデータは、画像復号時に読み出され利用される。このように復号処理に必要なメタデータをスライスヘッダに含める(多重化する)ことにより、フレーム単位より細かい単位での復号処理の実行が可能になり、遅延時間の増大を抑制することができる。
ステップS118において蓄積バッファ107は、差分画像を圧縮画像として蓄積する。蓄積バッファ107に蓄積された圧縮画像は、適宜読み出され、伝送路を介して復号側に伝送される。
ステップS119においてレート制御部119は、蓄積バッファ107に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
次に、図10のステップS110において制御情報生成部112により実行される制御情報生成処理の流れの例を、図11のフローチャートを参照して説明する。
制御情報生成処理が開始されると、制御情報生成部112のフィルタ係数算出部131は、ステップS131において、画面並べ替えバッファ102から供給される入力画像と、デブロックフィルタ111から供給されるデブロックフィルタ処理された復号画像を用いてフィルタ係数を算出する。例えば、フィルタ係数算出部131は、入力画像と復号画像の残差が最小となるようにフィルタ係数の値を決定する。
フィルタ係数が算出されると、境界制御フラグ生成部132は、ステップS132において、境界付近の画素に対する適応フィルタ処理方法を制御するための境界制御フラグを生成する。詳細については後述する。
境界制御フラグが生成されると、ブロック情報生成部133は、ステップS133において、ALFブロックサイズやフィルタブロックフラグを含むブロック情報を生成する。ALFブロックサイズは予め定められていてもよいし、画像内容に合わせて適宜設定されるようにしてもよい。その場合、ブロック情報生成部133は、例えば、コスト関数を用いてフィルタ処理結果を評価するコスト値を算出し、そのコスト値が最小となるようにALFブロックサイズを決定する。
また、ブロック情報生成部133は、フィルタブロックフラグの値を、処理対象ALFブロックにフィルタ処理を施した場合に画質が改善されるか否かによって決定する。例えば、ブロック情報生成部133は、フィルタ処理を施すことにより画質が改善されると判定された場合、フィルタブロックフラグの値を、フィルタ処理を行うことを示す値「1」に設定し、フィルタ処理を施すことにより画質が悪化すると判定された場合、フィルタブロックフラグの値を、フィルタ処理を行わないことを示す値「0」に設定する。
ブロック情報が生成されると、図9のステップS110に戻り、ステップS111以降の処理が実行される。
なお、ステップS131において行われるフィルタ係数の算出は、フレーム単位で行うようにしてもよい。その場合、ステップS131の処理は、フレーム内の所定のスライス(例えば、フレーム内で識別番号が所定の値の(例えば「0」の)スライス、若しくは、フレーム内で最初に処理されるスライス等)においてのみ行われ、その他のスライスにおいては、その値が流用されるようにしてもよい。また、フィルタ係数の算出には、任意の画像を利用することができる。例えば、過去のフレーム画像に基づいて算出するようにしてもよい。
次に、図11のフローチャートを参照して、図10のステップS132において実行される境界制御フラグ設定処理の流れの例を説明する。
境界制御フラグ設定処理が開始されると、境界制御フラグ生成部132のシステム仕様管理部141は、ステップS151において、システム仕様情報を取得する。
このシステム仕様情報は、例えば、画像符号化装置100を含むシステムのハードウェア資源や使用目的等を含む情報である。ハードウェア資源とは、システムを構成する各装置(画像符号化装置100を含む)のハードウェア資源のことであり、例えば、処理能力、使用可能なメモリ容量、バスの転送速度等を含む。また、使用目的とは、システム全体または各装置の動作モードのことであり、例えば画質重視で動作するか、速度重視で動作するか等を含む。もちろん、システム仕様情報がこれら以外の情報を含むようにしてもよい。
このシステム仕様情報は、システム仕様管理部141に内蔵されるメモリ等に予め格納されているようにしてもよい。この場合、システム仕様管理部141は、ステップS151の処理により、そのシステム仕様情報をメモリから読み出す。また、ステップS151の処理の際に、システム仕様管理部141が、画像符号化装置100の各部や他の装置等から、上述したような仕様情報を収集するようにしてもよい。
システム仕様管理部141は、システム仕様情報を取得すると、それを判定部142に供給する。
判定部142は、ステップS152において、供給されたシステム仕様情報(ハードウェア資源や使用目的等)に基づいて、境界付近のフィルタ処理に次のスライスを利用するか否かを判定する。すなわち、判定部142は、周辺画素に隣のスライスが含まれる境界付近の画素を処理対象画素とする場合に、スライスを跨ぐフィルタ処理を行うか、若しくは、当該スライスで閉じたフィルタ処理を行うかを判定する。
例えば、判定部142は、遅延時間の増大が許容され、かつ、画像符号化装置100や画像復号装置等において使用可能なメモリ容量が十分である場合、スライスを跨ぐフィルタ処理を選択する。また、例えば、判定部142は、遅延時間の増大が許容されなかったり、システムの各装置のハードウェア資源が十分でなかったりする場合、当該スライスで閉じたフィルタ処理を選択する。
次のスライスを利用する、つまり、スライスを跨ぐフィルタ処理を行うと判定された場合、ステップS153に進む。ステップS153において、生成部143は、値「1」の境界制御フラグを生成する。
また、次のスライスを利用しない、つまり、当該スライスで閉じたフィルタ処理を行うと判定された場合、ステップS154に進む。ステップS154において、生成部143は、値「0」の境界制御フラグを生成する。
生成部143は、境界制御フラグを生成すると、それを適応フィルタ処理部113や可逆符号化部106に供給する。可逆符号化部106は、生成部143から供給された境界制御フラグを制御情報として符号化し、当該スライスのスライスヘッダ等に埋め込む。適応フィルタ処理部113は、生成部143から供給された境界制御フラグを用いて適応フィルタ処理を制御する。
ステップS153またはステップS154の処理が終了されると、境界制御フラグ設定処理が終了され、図10のステップS132に戻り、ステップS133以降の処理が行われる。
次に、図12のフローチャートを参照して、図9のステップS111において実行される適応フィルタ処理の流れの例を説明する。
適応フィルタ処理が開始されると、バッファ181は、ステップS171において、デブロックフィルタ111から、処理対象スライスの復号画像を取得する。処理対象スライスが取得されると、ステップS172において、制御部171は、その処理対象スライスの領域を特定する。
処理対象である当該スライスの領域を知るためには、当該スライスに含まれているマクロブロックを知り、そこからそのマクロブロックに含まれる画素を知ることで分かる。制御部171は、スライスヘッダから当該スライスの先頭マクロブロックアドレスを得る。
ここで先頭マクロブロックアドレスとは、画面の左上からラスタ・スキャン順序でマクロブロックに対して付けられた番号である。図5に示されるように、画像(フレーム151)の左上のマクロブロックアドレスは0となる。スライス0は、フレーム151の左上から開始されているので、スライス0の先頭マクロブロック156−1のマクロブロックアドレスは0となる。この順序に従ってスライス0の最終マクロブロック156−2のマクロブロックアドレスをE0とする。また、このスライス0と同様に、スライス1の先頭マクロブロック157−1のマクロブロックアドレスをS1とし、最終マクロブロック157−2のマクロブロックアドレスをE1とする。さらに、スライス2の先頭マクロブロック158−1のマクロブロックアドレスをS2とし、最終マクロブロック158−2のマクロブロックアドレスをE2とする。
当該スライスをデコードしていくと、1つのマクロブロックのデコード処理が完了する毎にマクロブロックアドレスは1追加されてゆき、やがて当該スライスの最終マクロブックに到達する。最終マクロブロックにはスライスの最後のマクロブロックであるフラグがセットされている。これらによって、当該スライスが保有しているマクロブロックアドレスが全て分かる。すなわち、先頭マクロブロックアドレスから、最終マクロブロックアドレスまでとなる。
ところで、1フレームの画像サイズは、AVCストリーム(画像圧縮情報)のシーケンス・パラメータ・セット(SPS(Sequence Parameter Set))において、マクロブロックの数により示される。pic_height_in_map_units_minus1は、画像の縦方向のマクロブロック数を示す。pic_width_in_mbs_minus1は、画像の横方向のマクロブロック数を示す。
従って、マクロブロックアドレスからそのマクロブロックの位置は、以下の式(2)および式(3)で示される。
mbx=macro block address % pic_width_in_mbs_minus1 ・・・(2)
mby=floor[ macro block address / pic_width_in_mbs_minus1 ] ・・・(3)
式(2)および式(3)において、mbxは、マクロブロックが左から何番目かを示し、mbyは、マクロブロックが上から何番目かを示す。また、floor[z]は、zの小数点以下を切り捨てて整数にし、A%Bは、AをBで割った余りの数を示す。
マクロブロックのサイズは16×16画素と決められているとすると、マクロブロックの左上の画素の縦方向および横方向の位置は、(16×mbx,16×mby)となり、そのマクロブロックに含まれる画素は、その左上の画素位置から下方向に16画素および右方向に16画素の範囲に含まれる画素となる。ここまでで、当該スライスの画素が全て分かる。すなわち、処理対象スライスの領域が特定される。
ステップS173において、制御部171は、制御情報生成部112において生成されたフィルタブロックフラグを1つ取得する。
ステップS174において、制御部171は、未処理のALFブロックの中から1つを、処理対象ALFブロックに決定する。このALFブロックの選択順は、予め定められており、制御情報生成部112における選択順と共通である。さらに、制御部171は、決定した処理対象ALFブロックの領域を特定する。
フレームの画像サイズは予め定められているので、ALFブロックサイズが決定されると、フレームの左上を原点としてALFブロックを敷き詰めるために必要なALFブロックの数(フレーム内ALFブロック数)も算出することができる。ALFブロックの縦方向のサイズ(画素数)と横方向のサイズ(画素数)の設定値は予め用意されているので、制御部171は、その設定値に従って各ALFブロックのサイズとALFブロック数を決定し、ALFブロックを復号画像に対して配置する。
なお、ALFブロックの数は、以下の式(4)および式(5)により算出される。
num_alf_block_x=floor[(16×(pic_width_in_mbs_minus1+1)+(alf_block_size−1))
/alf_block_size] ・・・(4)
num_alf_block_y=floor[(16×(pic_height_in_map_units_minus1+1)
+(alf_block_size−1))/alf_block_size] ・・・(5)
式(4)および式(5)において、num_alf_block_xおよびnum_alf_block_yは、それぞれ、画像に含まれるALFブロックの横と縦の数である。また、alf_block_sizeは、ALFブロックの一辺のサイズを示す。ここでは説明の簡略化のため、ALFブロックは正方形であるものとする。もちろん、ALFブロックの縦方向のサイズと横方向のサイズとが互いに異なるようにしてもよい。
i番目のALFブロックの位置は、以下の式(6)および式(7)で示される。
alf_block_x=i % (num_alf_block_x−1) ・・・(6)
alf_block_y=floor[i/(num_alf_block_x−1)] ・・・(7)
式(6)および式(7)において、alf_block_xとalf_block_yは、それぞれ、i番目のALFブロックが横方向と縦方向に何番目であるかを示している。i番目のALFブロックの左上の画素の位置は、alf_block_xとalf_block_yのそれぞれに、alf_block_sizeを掛けた位置となる。すなわち、横方向は16×alf_block_xとなり、縦方向は16×alf_block_yとなる。従って、i番目のALFブロックの領域は、左上のその画素からalf_block_size×alf_block_sizeの範囲となる。
ステップS175において、制御部171は、以上のように特定された処理対象ALFブロックの領域内に、処理対象スライスの領域が含まれるか否かを判定する。処理対象スライスの領域を含むと判定された場合、ステップS176に進む。
ステップS176において、制御部171は、フィルタブロックフラグの値が1であるか否かを判定する。フィルタブロックフラグの値が1であり、処理対象ALFブロックの領域についてフィルタ処理を行うように指示されている場合、選択部173が適応フィルタ172の出力を選択するように制御し、ステップS177に進む。ステップS177において、制御部171は、未処理の画素から例えばラスタ・スキャン順等の所定順で処理対象画素を選択する。
ステップS178において、制御部171は、選択された処理対象画素のフィルタ処理に隣のスライスの画素が必要であるか否かを判定する。処理対象画素の周辺画素に隣のスライスの画素が含まれており、処理対象画素がスライス境界付近の画素であると判定された場合、ステップS179に進む。
ステップS179において、制御部171は、制御情報生成部112より取得した制御情報に含まれる境界制御フラグの値が「1」であるか否かを判定する。境界制御フラグの値が「1」であると判定された場合、ステップS180に進む。
ステップS180において、制御部171は、適応フィルタとして境界用第1適応フィルタ183を選択し、その境界用第1適応フィルタ183に、図7Aに示されるようにスライスを跨ぐフィルタ処理を実行させる。ステップS180の処理が終了すると、ステップS183に進む。
また、ステップS179において、境界制御フラグの値が「0」であると判定された場合、ステップS181に進む。
ステップS181において、制御部171は、適応フィルタとして境界用第2適応フィルタ184を選択し、その境界用第2適応フィルタ184に、図7Bに示されるように当該スライスで閉じたフィルタ処理を実行させる。ステップS181の処理が終了すると、ステップS183に進む。
さらに、ステップS178において、処理対象画素がスライス境界付近の画素でないと判定された場合、ステップS182に進む。
ステップS182において、制御部171は、適応フィルタとしてスライス内用適応フィルタ182を選択し、そのスライス内用適応フィルタ182に、通常の、当該スライスの画素のみを用いたフィルタ処理を実行させる。ステップS182の処理が終了すると、ステップS183に進む。
また、ステップS176において、フィルタブロックフラグの値が「0」であると判定された場合、ステップS183に進む。さらに、ステップS175において、処理対象ALFブロックが処理対象スライスの領域を含まないと判定された場合、ステップS183に進む。
ステップS183において、制御部171は、処理対象ALFブロック内の全ての画素を処理したか否かを判定する。未処理の画素が存在すると判定された場合、ステップS177に戻り、それ以降の処理が繰り返される。
また、ステップS183において、処理対象ALFブロック内の全ての画素が処理されたと判定された場合、ステップS184に進む。
ステップS184において、制御部171は、フレーム内の全てのALFブロックを処理したか否かを判定する。未処理のALFブロックが存在すると判定された場合、ステップS173に戻り、それ以降の処理が繰り返される。また、ステップS184において、全てのALFブロックが処理されたと判定された場合、適応フィルタ制御処理が終了され、図9のステップS111に戻り、ステップS112以降の処理が行われる。
なお、ステップS180乃至ステップS182において行われる、各処理対象画素に対するフィルタ処理は、それぞれ、適応フィルタ制御処理とは異なるタスクとして独立して実行される。すなわち、ステップS180乃至ステップS182において、適応フィルタ処理の実行が指定されると、その適応フィルタ処理は適宜実行される。つまり、これらの適応フィルタ処理は、適応フィルタ制御処理や他の画素に対する適応フィルタ処理と並行して実行することができる。
図13および図14のフローチャートを参照して、これらのフィルタ処理について説明する。まず、図13のフローチャートを参照して、境界用第1適応フィルタ183により実行されるフィルタ処理の流れの例を説明する。
図12のステップS180において実行が指示されるスライスを跨ぐフィルタ処理の実行が指示されると、境界用第1適応フィルタ183は、ステップS201において、バッファ181を監視し、処理対象画素の周辺領域の画素が全て揃ったか否かを判定し、揃うまで待機する。この周辺領域の画素(すなわち、周辺画素)とは、隣のスライスの画素も含む。バッファ181に周辺画素が全て揃ったと判定された場合、ステップS202に進む。
境界用第1適応フィルタ183は、ステップS202において、バッファ181から周辺領域の画素(周辺画素)を取得し、ステップS203において、その周辺画素と、制御部171に設定されたフィルタ係数を用いて、処理対象画素のフィルタ処理を行う。フィルタ処理が終了すると、境界用第1適応フィルタ183は、フィルタ処理結果を選択部173に供給し、フィルタ処理を終了する。
選択部173は、フィルタブロックフラグの値が「1」の場合、そのフィルタ処理結果を選択し、フィルタ処理された復号画像として、フレームメモリ114に供給し、蓄積させる。
次に、図14のフローチャートを参照して、境界用第2適応フィルタ184により実行されるフィルタ処理の流れの例を説明する。
図12のステップS181において実行が指示される当該スライスで閉じたフィルタ処理の実行が指示されると、境界用第2適応フィルタ184は、ステップS221において、バッファ181に既に保持されている当該スライスに位置する周辺画素を複製して、隣のスライスに位置する周辺画素のダミーデータを生成する。
ダミーデータを生成すると、境界用第2適応フィルタ184は、ステップS212において、ダミーデータを含む周辺画素と、制御部171に設定されたフィルタ係数を用いて、処理対象画素のフィルタ処理を行う。フィルタ処理が終了すると、境界用第2適応フィルタ184は、フィルタ処理結果を選択部173に供給し、フィルタ処理を終了する。
選択部173は、フィルタブロックフラグの値が「1」の場合、そのフィルタ処理結果を選択し、フィルタ処理された復号画像として、フレームメモリ114に供給し、蓄積させる。
以上のように境界制御フラグの値に基づいて、境界付近の画素に対するフィルタ処理の方法を複数の方法の中から適宜選択することにより、適応フィルタ処理部113は、符号化時のフィルタ処理の局所的な制御によるフィルタ処理の効果の低減を抑制することができる。例えば、スライスを跨ぐようにフィルタ処理を行うことにより、適応フィルタ処理部113は、フィルタ処理結果の画質を向上させることができる。また、例えば、当該スライスで閉じたフィルタ処理を行うことにより、適応フィルタ処理部113は、低遅延にフィルタ処理を行うことができる。
このとき、適応フィルタ処理部113は、システム仕様情報に基づいて定められた境界制御フラグに基づいてフィルタ処理方法を選択するので、処理を破綻させずにフィルタ処理を行うことができる。
また、境界制御フラグ生成部132は、システム仕様情報に基づいて境界制御フラグを設定することにより、適応フィルタ処理部113に、効果の低減を抑制するようにフィルタ処理を実行させることができる。
つまり、画像符号化装置100は、符号化時のフィルタ処理の局所的な制御によるフィルタ処理の効果の低減を抑制することができる。
なお、可逆符号化部106は、境界制御フラグを符号化し、画像圧縮情報に付加する(例えばスライスヘッダに埋め込む)。したがって、画像符号化装置100は、画像符号化装置100が出力する画像圧縮情報を復号する画像復号装置に、復号時に行われるフィルタ処理の局所的な制御によるフィルタ処理の効果の低減を抑制させることができる。
なお、ここで「付加する」とは、任意の形態で境界制御フラグを画像圧縮情報に関連付けることを示す。例えば、画像圧縮情報のシンタックスとして記述するようにしてもよいし、ユーザデータとして記述するようにしてもよい。また、境界制御フラグをメタデータとして画像圧縮情報とリンクされた状態にするようにしてもよい。つまり、「付加」は、「埋め込み」、「記述」、「多重化」、および「連結」等を含む。
また、以上においては、スライス境界付近の画素に対して、スライスを跨ぐフィルタ処理、若しくは、当該スライスで閉じたフィルタ処理を行うように説明したが、これ以外の方法でフィルタ処理を行うようにしてもよい。また、例えば、当該スライスで閉じたフィルタ処理の代わりに、フィルタ処理を省略するようにしてもよい。
さらに、スライス境界付近の画素に対するフィルタ処理方法は、複数用意されていればよく、3種類以上の方法が選択肢として用意されるようにしてもよい。その場合、境界制御フラグのビット数は2ビット以上必要である。なお、境界制御フラグのビット数は任意である。ただし、このビット数が少ないほど、画像圧縮情報の符号化効率の低減が抑制されるので、不要にビット数を増大させるのは望ましくない。
<2.第2の実施の形態>
[デバイスの構成]
次に、第1の実施の形態において説明した画像符号化装置100に対応する画像復号装置について説明する。図15は、本発明を適用した画像処理装置としての画像復号装置の一実施の形態の構成例を示すブロック図である。
画像復号装置200は、画像符号化装置100より出力される画像圧縮情報を復号し、復号画像を生成する。
画像復号装置200は、蓄積バッファ201、可逆復号部202、逆量子化部203、逆直交変換部204、演算部205、およびデブロックフィルタ206を有する。また、画像復号装置200は、適応フィルタ処理部207を有する。さらに、画像復号装置200は、画面並べ替えバッファ208、およびD/A(Digital / Analog l)変換部209を有する。また、画像復号装置200は、フレームメモリ210、イントラ予測部211、動き補償部212、および選択部213を有する。
蓄積バッファ201は、伝送されてきた画像圧縮情報を蓄積する。可逆復号部202は、蓄積バッファ201より供給された、図1の可逆符号化部106により符号化された情報を、可逆符号化部106の符号化方式に対応する方式で復号する。
当該マクロブロックがイントラ符号化されたものである場合、可逆復号部202は、画像圧縮情報のヘッダ部に格納されたイントラ予測モード情報を復号し、その情報をイントラ予測部211へ伝送する。また、当該マクロブロックがインター符号化されたものである場合、可逆復号部202は、画像圧縮情報のヘッダ部に格納された動きベクトル情報を復号し、その情報を動き補償部212へ転送する。
また、可逆復号部202は、画像圧縮情報のスライスヘッダから、適応フィルタ用の制御情報(制御情報生成部112により生成された制御情報)を抽出して復号し、その情報を適応フィルタ処理部207に供給する。
逆量子化部203は可逆復号部202により復号された画像を、図1の量子化部105の量子化方式に対応する方式で逆量子化する。逆直交変換部204は、図1の直交変換部104の直交変換方式に対応する方式で逆量子化部203の出力を逆直交変換する。
演算部205は、逆直交変換された差分情報に、選択部213から供給される予測画像を加算し、復号画像を生成する。デブロックフィルタ206は、その加算処理されて生成された復号画像のブロック歪を除去する。
適応フィルタ処理部207は、可逆復号部202より供給された制御情報に含まれるフィルタ係数、ALFブロックサイズ、フィルタブロックフラグ、および境界制御フラグ等の情報に基づいて、デブロックフィルタ206より供給される画像に対してフィルタ処理を行う。適応フィルタ処理部207は、図1の適応フィルタ処理部113と同様の適応フィルタ処理を行う。これにより、適応フィルタ処理部207は、デブロックフィルタ206では取りきれなかったブロック歪や量子化による歪を低減することができる。
適応フィルタ処理部207は、フィルタ処理後の画像をフレームメモリ210に供給し、参照画像情報として蓄積させるとともに、画面並べ替えバッファ208に出力する。
画面並べ替えバッファ208は、画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ102により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部209は、画面並べ替えバッファ208から供給された画像をD/A変換し、出力する。例えば、D/A変換部209は、D/A変換して得られた出力信号を図示せぬディスプレイに出力し、画像を表示させる。
イントラ予測部211は、当該フレームがイントラ符号化されたものである場合、可逆復号部202から供給される情報に基づいて、予測画像を生成し、生成した予測画像を、選択部213に出力する。
動き補償部212は、当該フレームがインター符号化されたものである場合、可逆復号部202から供給された動きベクトル情報に基づき、フレームメモリ210に格納された参照画像情報に対して動き補償処理を行う。
選択部213は、当該マクロブロックがイントラ符号化されたものである場合、イントラ予測部211に接続し、イントラ予測部211より供給される画像を予測画像として演算部205に供給する。また、当該マクロブロックがインター符号化されたものである場合、選択部213は、動き補償部212に接続し、動き補償部212から供給される画像を予測画像として演算部205に供給する。
[処理の流れ]
図16のフローチャートを参照して、この画像復号装置200が実行する復号処理の流れの例を説明する。
ステップS301において、蓄積バッファ201は伝送されてきた画像を蓄積する。可逆復号部202は、ステップS302において、画像圧縮情報のスライスヘッダから適応フィルタ処理用の制御情報を抽出し、ステップS303において復号する。復号された制御情報は、適応フィルタ処理部207に供給される。
また、ステップS303において、可逆復号部202は、蓄積バッファ201から供給される圧縮画像を復号する。すなわち、図1の可逆符号化部106により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。
このとき、動きベクトル情報、参照フレーム情報、予測モード情報(イントラ予測モード、またはインター予測モードを示す情報)なども復号される。
すなわち、予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部211に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル情報および参照フレーム情報は、動き補償部212に供給される。
ステップS304において、逆量子化部203は、ステップS302において復号された変換係数を、図1の量子化部105の特性に対応する特性で逆量子化する。ステップS305において逆直交変換部204は、ステップS204の処理により逆量子化された変換係数を、図1の直交変換部104の特性に対応する特性で逆直交変換する。これにより図1の直交変換部104の入力(演算部103の出力)に対応する差分情報が復号されたことになる。
ステップS306において、演算部205は、後述するステップS212の処理で選択される予測画像を差分情報と加算する。これにより元の画像が復号される。ステップS307において、デブロックフィルタ206は、演算部205より出力された画像をフィルタリングする。これによりブロック歪みが除去される。
ステップS308において、適応フィルタ処理部207は、デブロックフィルタ処理された画像に、さらに適応フィルタ処理を施すための適応フィルタ制御処理を行う。この適応フィルタ制御処理は、図1の適応フィルタ処理部113が行う処理と同様である。すなわち、この適応フィルタ制御処理は、可逆復号部202より供給された制御情報を用いること以外、図12のフローチャートを参照して説明した場合と同様に行われる。ただし、この可逆復号部202より供給される制御情報も、図1の制御情報生成部112が生成したものであり、実質的に図1の適応フィルタ処理部113が利用する、制御情報生成部112より供給される制御情報と同等である。
この適応フィルタ制御処理により、デブロッキングフィルタ処理により取りきれなかったブロック歪みや量子化による歪みを低減することができる。
ステップS309において、フレームメモリ210は、フィルタリングされた画像を記憶する。
イントラ予測モード情報が供給された場合、イントラ予測部211は、ステップS310において、イントラ予測モードのイントラ予測処理を行う。また、インター予測モード情報が供給された場合、動き補償部212は、ステップS311において、インター予測モードの動き補償処理を行う。
ステップS312において、選択部213は、予測画像を選択する。すなわち、イントラ予測部211により生成された予測画像、または動き補償部212により生成された予測画像のうちいずれか一方を選択し、選択した予測画像を演算部205に供給する。
例えば、イントラ符号化された画像の場合、選択部213は、イントラ予測部211により生成された予測画像を選択し、演算部205に供給する。また、インター符号化された画像の場合、選択部213は、動き補償部212により生成された予測画像を選択し、演算部205に供給する。
ステップS313において、画面並べ替えバッファ208は、並べ替えを行う。すなわち、図1の画像符号化装置100の画面並べ替えバッファ102により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS314において、D/A変換部209は、画面並べ替えバッファ208からの画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
このように、画像復号装置200は、可逆復号部202が、画像符号化装置100から供給された制御情報を抽出して復号し、適応フィルタ処理部207が、その制御情報を用いて、画像符号化装置100の適応フィルタ処理部113と同様に、適応フィルタ制御処理(およびフィルタ処理)を行う。
以上のように適応フィルタ制御処理を行うことにより、適応フィルタ処理部207は、復号時のフィルタ処理の局所的な制御によるフィルタ処理の効果の低減を抑制することができる。
したがって、画像復号装置200は、復号時に行われるフィルタ処理の局所的な制御によるフィルタ処理の効果の低減を抑制することができる。
<3.第3の実施の形態>
[画像処理システム]
なお、以上においては、制御情報生成部112のシステム仕様管理部141が、システム仕様情報を保持又は収集するように説明したが、このシステム仕様情報に画像復号装置の仕様情報を含めるようにしても良い。
この場合、画像復号装置の仕様情報を画像符号化装置が予め把握していないときは、例えば画像符号化装置と画像復号装置を通信可能に接続する際等、所定のタイミングにおいて、画像符号化装置が画像復号装置の仕様情報を収集する必要がある。このとき、画像符号化装置は、画像復号装置と通信を行い、画像復号装置から仕様情報を取得してもよいし、例えば、ユーザにより入力された仕様情報を取得するようにしてもよい。
ここで、図示せぬ画像処理システムは、図17に示される画像符号化装置300と図18に示される画像復号装置400とがネットワーク等の通信媒体を介して通信可能に接続されるシステムである。以下に、各装置の構成について説明する。
図17は、本発明を適用した画像処理装置としての画像符号化装置の他の例を示すブロック図である。
図17に示される画像符号化装置300は、基本的に図1の画像符号化装置100と同様の装置であり、画像符号化部301を有する。
画像符号化部301の構成は、画像符号化装置100の構成と同様であり、A/D変換部101乃至レート制御部119を有し、第1の実施の形態で説明した場合と同様に動作する。
画像符号化装置300は、この画像符号化部301の他に、さらに、入力部302、通信部303、および情報収集部304を有する。
入力部302は、ユーザ等の操作を受け付ける。通信部303は、画像復号装置400とネットワーク等を介して通信を行う。情報収集部304は、入力部302を介して入力された画像復号装置400の仕様情報、若しくは、通信部303を介して画像復号装置400から供給された仕様情報を収集する。情報収集部304は、収集した仕様情報を制御情報生成部112のシステム仕様管理部141に供給する。
図18は、本発明を適用した画像処理装置としての画像復号装置の他の例を示すブロック図である。
図18に示される画像復号装置400は、基本的に図15の画像復号装置200と同様の装置であり、画像復号部401を有する。
画像復号部401の構成は、画像復号装置200の構成と同様であり、蓄積バッファ201乃至選択部213を有し、第2の実施の形態で説明した場合と同様に動作する。
画像復号装置400は、この画像復号部401の他に、さらに、情報提供部402および通信部403を有する。
情報提供部402は、画像復号装置400の仕様情報を有しており、画像符号化装置300からの要求に基づいて、その仕様情報を提供する。通信部403は、画像符号化装置300とネットワーク等を介して通信を行う。通信部403は、画像符号化装置300からの要求を受け付け、情報提供部402に供給する。また、通信部403は、その要求に応じて情報提供部402から供給される画像復号装置400の仕様情報を、画像符号化装置300に供給する。
[処理の流れ]
このような画像処理システムにおける仕様情報の授受の流れの例を図19のフローチャートを参照して説明する。
ステップS401において、画像符号化装置300の情報収集部304は、通信部303を介して、画像復号装置400に対して、画像復号装置400の仕様情報を要求する。画像復号装置400の通信部403は、ステップS421において、その要求を取得すると、その要求を情報提供部402に供給する。
情報提供部402は、ステップS422において、その要求に対する応答として画像復号装置400の仕様情報を、通信部403を介して、要求元である画像符号化装置300に供給する。
画像符号化装置300の情報収集部304は、ステップS402において、通信部303を介して、その仕様情報を取得すると、それを制御情報生成部112のシステム仕様管理部141に供給する。
画像符号化部301は、ステップS403において、その仕様情報に基づいて符号化処理を行い、コードストリームを生成する。画像符号化部301は、ステップS404において、生成されたコードストリームを、画像復号装置400に供給する。
画像復号装置400の画像復号部401は、ステップS423において、画像符号化装置300から供給されたコードストリームを取得する。画像復号部401は、ステップS424において、そのコードストリームに対して復号処理を行う。
このように、画像符号化処理や画像復号処理の前に、画像復号装置400の仕様情報が授受されるようにすることにより、画像符号化装置300は、その画像復号装置400の仕様情報を含むシステム仕様情報に基づいて境界制御フラグを作成することができる。
これにより画像符号化装置300および画像復号装置400は、第1の実施の形態と第2の実施の形態とで説明したように、符号化時または復号時のフィルタ処理の局所的な制御によるフィルタ処理の効果の低減を抑制することができる。
<4.第4の実施の形態>
[QALFの説明]
非特許文献3に示されるように、ALFブロックをクアッドツリー構造としてもよい。この技術はQALF(Quad tree-based Adaptive Loop Filter)と称する。クアッドツリー構造とは、下位階層において1つ上位の階層の1つのALFブロックの領域が4分割される階層構造である。
図20にALFブロック分割を最大レイヤ数が3のクアッドツリー構造によって表現し、各ALFブロックにフィルタブロックフラグを指定する例を示す。
図20Aは、クアッドツリー構造の根になるALFブロックであるレイヤ0を示す。クアッドツリー構造において各ALFブロックは、下位の階層において4分割されるか否かを示すブロックパーティショニングフラグを有している。図20Aに示されるALFブロックのブロックパーティショニングフラグの値は「1」である。つまり、このALFブロックは、下位の階層(レイヤ1)において4分割される。図20Bは、そのレイヤ1を示す。すなわち、レイヤ1には、4つのALFブロックが形成される。
ブロックパーティショニングフラグが「0」の場合、これより下位の階層において4分割されない。すなわち、これ以上の分割は無く、そのALFブロックに対してフィルタブロックフラグが生成される。つまり、ブロックパーティショニングフラグが「0」のALFブロックは、フィルタブロックフラグも有する。図20Bに示される「0−1」の左の「0」が、そのALFブロックのブロックパーティショニングフラグを示し、右の「1」が、そのALFブロックのフィルタブロックフラグを示す。
レイヤ1のブロックパーティショニングフラグが「1」の2つのALFブロックは、さらに下位の階層(レイヤ2)において4分割される。図20Cは、そのレイヤ2を示す。すなわち、レイヤ2には、10個のALFブロックが形成される。
同様に、レイヤ2においてブロックパーティショニングフラグが「0」のALFブロックには、フィルタブロックフラグも割り当てられる。図20Cにおいては、1つのALFブロックのブロックパーティショニングフラグが「1」である。つまり、そのALFブロックは、さらに下位の階層(レイヤ3)において4分割される。図20Dは、そのレイヤ3を示す。すなわち、レイヤ3には、13個のALFブロックが形成される。
図20のようにクアッドツリー化することにより、ALFブロックの構成は、最終的に図21に示されるようになる。このように、クアッドツリー構造においては、ALFブロックのサイズは、その階層毎に異なる。つまり、ALFブロックは、クアッドツリー構造をとることにより、フレーム内においてその大きさを互いに異なるものとすることができる。
各ALFブロックにおけるフィルタブロックフラグの制御は、上述した他の実施の形態の場合と同様である。つまり、フィルタブロックフラグの値が「0」のALFブロックの領域(図21の斜線模様部分)は、フィルタ処理が行われない。
図22は、図5のスライス1の領域をQALFの技術を使って符号化する例を示している。ここで太線521の領域はスライス1の領域を示す。ALFの構成に関わらず、スライス境界付近の画素に対してフィルタ処理を行う場合、周辺画素が複数のスライスに跨る場合がある。したがって、スライス境界付近の画素に対するフィルタ処理の制御方法は、このQALFの場合も、上述した他の実施の形態の場合と同様に行うことができる。
つまり、クアッドツリー構造のALFブロックの場合であっても、画像符号化装置および画像復号装置は、符号化時または復号時のフィルタ処理の局所的な制御によるフィルタ処理の効果の低減を抑制することができる。
<5.第5の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図23に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
図23において、パーソナルコンピュータ600のCPU601は、ROM(Read Only Memory)602に記憶されているプログラム、または記憶部613からRAM(Random Access Memory)603にロードされたプログラムに従って各種の処理を実行する。RAM603にはまた、CPU601が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU601、ROM602、およびRAM603は、バス604を介して相互に接続されている。このバス604にはまた、入出力インタフェース610も接続されている。
入出力インタフェース610には、キーボード、マウスなどよりなる入力部611、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部612、ハードディスクなどより構成される記憶部613、モデムなどより構成される通信部614が接続されている。通信部614は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース610にはまた、必要に応じてドライブ615が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア621が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部613にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図23に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア621により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM602や、記憶部613に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、上述した画像符号化装置100、画像復号装置200、画像符号化装置300、および画像復号装置400は、任意の電子機器に適用することができる。以下にその例について説明する。
<6.第6の実施の形態>
[テレビジョン受像機]
図24は、本発明を適用した画像復号装置200または画像復号装置400を用いるテレビジョン受像機の主な構成例を示すブロック図である。
図24に示されるテレビジョン受像機1000は、地上波チューナ1013、ビデオデコーダ1015、映像信号処理回路1018、グラフィック生成回路1019、パネル駆動回路1020、および表示パネル1021を有する。
地上波チューナ1013は、地上アナログ放送の放送波信号を、アンテナを介して受信し、復調し、映像信号を取得し、それをビデオデコーダ1015に供給する。ビデオデコーダ1015は、地上波チューナ1013から供給された映像信号に対してデコード処理を施し、得られたデジタルのコンポーネント信号を映像信号処理回路1018に供給する。
映像信号処理回路1018は、ビデオデコーダ1015から供給された映像データに対してノイズ除去などの所定の処理を施し、得られた映像データをグラフィック生成回路1019に供給する。
グラフィック生成回路1019は、表示パネル1021に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成し、生成した映像データや画像データをパネル駆動回路1020に供給する。また、グラフィック生成回路1019は、項目の選択などにユーザにより利用される画面を表示するための映像データ(グラフィック)を生成し、それを番組の映像データに重畳したりすることによって得られた映像データをパネル駆動回路1020に供給するといった処理も適宜行う。
パネル駆動回路1020は、グラフィック生成回路1019から供給されたデータに基づいて表示パネル1021を駆動し、番組の映像や上述した各種の画面を表示パネル1021に表示させる。
表示パネル1021はLCD(Liquid Crystal Display)などよりなり、パネル駆動回路1020による制御に従って番組の映像などを表示させる。
また、テレビジョン受像機1000は、音声A/D(Analog/Digital)変換回路1014、音声信号処理回路1022、エコーキャンセル/音声合成回路1023、音声増幅回路1024、およびスピーカ1025も有する。
地上波チューナ1013は、受信した放送波信号を復調することにより、映像信号だけでなく音声信号も取得する。地上波チューナ1013は、取得した音声信号を音声A/D変換回路1014に供給する。
音声A/D変換回路1014は、地上波チューナ1013から供給された音声信号に対してA/D変換処理を施し、得られたデジタルの音声信号を音声信号処理回路1022に供給する。
音声信号処理回路1022は、音声A/D変換回路1014から供給された音声データに対してノイズ除去などの所定の処理を施し、得られた音声データをエコーキャンセル/音声合成回路1023に供給する。
エコーキャンセル/音声合成回路1023は、音声信号処理回路1022から供給された音声データを音声増幅回路1024に供給する。
音声増幅回路1024は、エコーキャンセル/音声合成回路1023から供給された音声データに対してD/A変換処理、増幅処理を施し、所定の音量に調整した後、音声をスピーカ1025から出力させる。
さらに、テレビジョン受像機1000は、デジタルチューナ1016およびMPEGデコーダ1017も有する。
デジタルチューナ1016は、デジタル放送(地上デジタル放送、BS(Broadcasting Satellite)/CS(Communications Satellite)デジタル放送)の放送波信号を、アンテナを介して受信し、復調し、MPEG-TS(Moving Picture Experts Group-Transport Stream)を取得し、それをMPEGデコーダ1017に供給する。
MPEGデコーダ1017は、デジタルチューナ1016から供給されたMPEG-TSに施されているスクランブルを解除し、再生対象(視聴対象)になっている番組のデータを含むストリームを抽出する。MPEGデコーダ1017は、抽出したストリームを構成する音声パケットをデコードし、得られた音声データを音声信号処理回路1022に供給するとともに、ストリームを構成する映像パケットをデコードし、得られた映像データを映像信号処理回路1018に供給する。また、MPEGデコーダ1017は、MPEG-TSから抽出したEPG(Electronic Program Guide)データを図示せぬ経路を介してCPU1032に供給する。
テレビジョン受像機1000は、このように映像パケットをデコードするMPEGデコーダ1017として、上述した画像復号装置200または画像復号装置400を用いる。なお、放送局等より送信されるMPEG-TSは、画像符号化装置100または画像符号化装置300によって符号化されている。
MPEGデコーダ1017は、画像復号装置200または画像復号装置400の場合と同様に、画像符号化装置100または画像符号化装置300から供給された制御情報を抽出して復号し、その制御情報を用いて適応フィルタ制御処理(およびフィルタ処理)を行う。これにより、MPEGデコーダ1017は、フィルタ処理の局所的な制御による効果の低減を抑制することができる。
MPEGデコーダ1017から供給された映像データは、ビデオデコーダ1015から供給された映像データの場合と同様に、映像信号処理回路1018において所定の処理が施され、グラフィック生成回路1019において、生成された映像データ等が適宜重畳され、パネル駆動回路1020を介して表示パネル1021に供給され、その画像が表示される。
MPEGデコーダ1017から供給された音声データは、音声A/D変換回路1014から供給された音声データの場合と同様に、音声信号処理回路1022において所定の処理が施され、エコーキャンセル/音声合成回路1023を介して音声増幅回路1024に供給され、D/A変換処理や増幅処理が施される。その結果、所定の音量に調整された音声がスピーカ1025から出力される。
また、テレビジョン受像機1000は、マイクロホン1026、およびA/D変換回路1027も有する。
A/D変換回路1027は、音声会話用のものとしてテレビジョン受像機1000に設けられるマイクロホン1026により取り込まれたユーザの音声の信号を受信し、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データをエコーキャンセル/音声合成回路1023に供給する。
エコーキャンセル/音声合成回路1023は、テレビジョン受像機1000のユーザ(ユーザA)の音声のデータがA/D変換回路1027から供給されている場合、ユーザAの音声データを対象としてエコーキャンセルを行い、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路1024を介してスピーカ1025より出力させる。
さらに、テレビジョン受像機1000は、音声コーデック1028、内部バス1029、SDRAM(Synchronous Dynamic Random Access Memory)1030、フラッシュメモリ1031、CPU1032、USB(Universal Serial Bus) I/F1033、およびネットワークI/F1034も有する。
A/D変換回路1027は、音声会話用のものとしてテレビジョン受像機1000に設けられるマイクロホン1026により取り込まれたユーザの音声の信号を受信し、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データを音声コーデック1028に供給する。
音声コーデック1028は、A/D変換回路1027から供給された音声データを、ネットワーク経由で送信するための所定のフォーマットのデータに変換し、内部バス1029を介してネットワークI/F1034に供給する。
ネットワークI/F1034は、ネットワーク端子1035に装着されたケーブルを介してネットワークに接続される。ネットワークI/F1034は、例えば、そのネットワークに接続される他の装置に対して、音声コーデック1028から供給された音声データを送信する。また、ネットワークI/F1034は、例えば、ネットワークを介して接続される他の装置から送信される音声データを、ネットワーク端子1035を介して受信し、それを、内部バス1029を介して音声コーデック1028に供給する。
音声コーデック1028は、ネットワークI/F1034から供給された音声データを所定のフォーマットのデータに変換し、それをエコーキャンセル/音声合成回路1023に供給する。
エコーキャンセル/音声合成回路1023は、音声コーデック1028から供給される音声データを対象としてエコーキャンセルを行い、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路1024を介してスピーカ1025より出力させる。
SDRAM1030は、CPU1032が処理を行う上で必要な各種のデータを記憶する。
フラッシュメモリ1031は、CPU1032により実行されるプログラムを記憶する。フラッシュメモリ1031に記憶されているプログラムは、テレビジョン受像機1000の起動時などの所定のタイミングでCPU1032により読み出される。フラッシュメモリ1031には、デジタル放送を介して取得されたEPGデータ、ネットワークを介して所定のサーバから取得されたデータなども記憶される。
例えば、フラッシュメモリ1031には、CPU1032の制御によりネットワークを介して所定のサーバから取得されたコンテンツデータを含むMPEG-TSが記憶される。フラッシュメモリ1031は、例えばCPU1032の制御により、そのMPEG-TSを、内部バス1029を介してMPEGデコーダ1017に供給する。
MPEGデコーダ1017は、デジタルチューナ1016から供給されたMPEG-TSの場合と同様に、そのMPEG-TSを処理する。このようにテレビジョン受像機1000は、映像や音声等よりなるコンテンツデータを、ネットワークを介して受信し、MPEGデコーダ1017を用いてデコードし、その映像を表示させたり、音声を出力させたりすることができる。
また、テレビジョン受像機1000は、リモートコントローラ1051から送信される赤外線信号を受光する受光部1037も有する。
受光部1037は、リモートコントローラ1051からの赤外線を受光し、復調して得られたユーザ操作の内容を表す制御コードをCPU1032に出力する。
CPU1032は、フラッシュメモリ1031に記憶されているプログラムを実行し、受光部1037から供給される制御コードなどに応じてテレビジョン受像機1000の全体の動作を制御する。CPU1032とテレビジョン受像機1000の各部は、図示せぬ経路を介して接続されている。
USB I/F1033は、USB端子1036に装着されたUSBケーブルを介して接続される、テレビジョン受像機1000の外部の機器との間でデータの送受信を行う。ネットワークI/F1034は、ネットワーク端子1035に装着されたケーブルを介してネットワークに接続し、ネットワークに接続される各種の装置と音声データ以外のデータの送受信も行う。
テレビジョン受像機1000は、MPEGデコーダ1017として画像復号装置200または画像復号装置400を用いることにより、アンテナを介して受信する放送波信号や、ネットワークを介して取得するコンテンツデータに対するフィルタ処理の、局所的な制御による効果の低減を抑制することができる。
<7.第7の実施の形態>
[携帯電話機]
図25は、本発明を適用した画像符号化装置および画像復号装置を用いる携帯電話機の主な構成例を示すブロック図である。
図25に示される携帯電話機1100は、各部を統括的に制御するようになされた主制御部1150、電源回路部1151、操作入力制御部1152、画像エンコーダ1153、カメラI/F部1154、LCD制御部1155、画像デコーダ1156、多重分離部1157、記録再生部1162、変復調回路部1158、および音声コーデック1159を有する。これらは、バス1160を介して互いに接続されている。
また、携帯電話機1100は、操作キー1119、CCD(Charge Coupled Devices)カメラ1116、液晶ディスプレイ1118、記憶部1123、送受信回路部1163、アンテナ1114、マイクロホン(マイク)1121、およびスピーカ1117を有する。
電源回路部1151は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話機1100を動作可能な状態に起動する。
携帯電話機1100は、CPU、ROMおよびRAM等でなる主制御部1150の制御に基づいて、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
例えば、音声通話モードにおいて、携帯電話機1100は、マイクロホン(マイク)1121で集音した音声信号を、音声コーデック1159によってデジタル音声データに変換し、これを変復調回路部1158でスペクトラム拡散処理し、送受信回路部1163でデジタルアナログ変換処理および周波数変換処理する。携帯電話機1100は、その変換処理により得られた送信用信号を、アンテナ1114を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(音声信号)は、公衆電話回線網を介して通話相手の携帯電話機に供給される。
また、例えば、音声通話モードにおいて、携帯電話機1100は、アンテナ1114で受信した受信信号を送受信回路部1163で増幅し、さらに周波数変換処理およびアナログデジタル変換処理し、変復調回路部1158でスペクトラム逆拡散処理し、音声コーデック1159によってアナログ音声信号に変換する。携帯電話機1100は、その変換して得られたアナログ音声信号をスピーカ1117から出力する。
更に、例えば、データ通信モードにおいて電子メールを送信する場合、携帯電話機1100は、操作キー1119の操作によって入力された電子メールのテキストデータを、操作入力制御部1152において受け付ける。携帯電話機1100は、そのテキストデータを主制御部1150において処理し、LCD制御部1155を介して、画像として液晶ディスプレイ1118に表示させる。
また、携帯電話機1100は、主制御部1150において、操作入力制御部1152が受け付けたテキストデータやユーザ指示等に基づいて電子メールデータを生成する。携帯電話機1100は、その電子メールデータを、変復調回路部1158でスペクトラム拡散処理し、送受信回路部1163でデジタルアナログ変換処理および周波数変換処理する。携帯電話機1100は、その変換処理により得られた送信用信号を、アンテナ1114を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(電子メール)は、ネットワークおよびメールサーバ等を介して、所定のあて先に供給される。
また、例えば、データ通信モードにおいて電子メールを受信する場合、携帯電話機1100は、基地局から送信された信号を、アンテナ1114を介して送受信回路部1163で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機1100は、その受信信号を変復調回路部1158でスペクトラム逆拡散処理して元の電子メールデータを復元する。携帯電話機1100は、復元された電子メールデータを、LCD制御部1155を介して液晶ディスプレイ1118に表示する。
なお、携帯電話機1100は、受信した電子メールデータを、記録再生部1162を介して、記憶部1123に記録する(記憶させる)ことも可能である。
この記憶部1123は、書き換え可能な任意の記憶媒体である。記憶部1123は、例えば、RAMや内蔵型フラッシュメモリ等の半導体メモリであってもよいし、ハードディスクであってもよいし、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアであってもよい。もちろん、これら以外のものであってもよい。
さらに、例えば、データ通信モードにおいて画像データを送信する場合、携帯電話機1100は、撮像によりCCDカメラ1116で画像データを生成する。CCDカメラ1116は、レンズや絞り等の光学デバイスと光電変換素子としてのCCDを有し、被写体を撮像し、受光した光の強度を電気信号に変換し、被写体の画像の画像データを生成する。CCDカメラ1116は、その画像データを、カメラI/F部1154を介して、画像エンコーダ1153で符号化し、符号化画像データに変換する。
携帯電話機1100は、このような処理を行う画像エンコーダ1153として、上述した画像符号化装置100または画像符号化装置300を用いる。したがって、画像エンコーダ1053は、画像符号化装置100または画像符号化装置300の場合と同様に、フィルタ処理の局所的な制御による効果の低減を抑制することができる。
なお、携帯電話機1100は、このとき同時に、CCDカメラ1116で撮像中にマイクロホン(マイク)1121で集音した音声を、音声コーデック1159においてアナログデジタル変換し、さらに符号化する。
携帯電話機1100は、多重分離部1157において、画像エンコーダ1153から供給された符号化画像データと、音声コーデック1159から供給されたデジタル音声データとを、所定の方式で多重化する。携帯電話機1100は、その結果得られる多重化データを、変復調回路部1158でスペクトラム拡散処理し、送受信回路部1163でデジタルアナログ変換処理および周波数変換処理する。携帯電話機1100は、その変換処理により得られた送信用信号を、アンテナ1114を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(画像データ)は、ネットワーク等を介して、通信相手に供給される。
なお、画像データを送信しない場合、携帯電話機1100は、CCDカメラ1116で生成した画像データを、画像エンコーダ1153を介さずに、LCD制御部1155を介して液晶ディスプレイ1118に表示させることもできる。
また、例えば、データ通信モードにおいて、簡易ホームページ等にリンクされた動画像ファイルのデータを受信する場合、携帯電話機1100は、基地局から送信された信号を、アンテナ1114を介して送受信回路部1163で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機1100は、その受信信号を変復調回路部1158でスペクトラム逆拡散処理して元の多重化データを復元する。携帯電話機1100は、多重分離部1157において、その多重化データを分離して、符号化画像データと音声データとに分ける。
携帯電話機1100は、画像デコーダ1156において符号化画像データをデコードすることにより、再生動画像データを生成し、これを、LCD制御部1155を介して液晶ディスプレイ1118に表示させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる動画データが液晶ディスプレイ1118に表示される。
携帯電話機1100は、このような処理を行う画像デコーダ1156として、上述した画像復号装置200または画像復号装置400を用いる。したがって、画像デコーダ1156は、画像復号装置200または画像復号装置400の場合と同様に、画像符号化装置100または画像符号化装置300から供給された制御情報を抽出して復号し、その制御情報を用いて適応フィルタ制御処理(およびフィルタ処理)を行う。これにより、画像デコーダ1156は、フィルタ処理の局所的な制御による効果の低減を抑制することができる。
このとき、携帯電話機1100は、同時に、音声コーデック1159において、デジタルの音声データをアナログ音声信号に変換し、これをスピーカ1117より出力させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる音声データが再生される。
なお、電子メールの場合と同様に、携帯電話機1100は、受信した簡易ホームページ等にリンクされたデータを、記録再生部1162を介して、記憶部1123に記録する(記憶させる)ことも可能である。
また、携帯電話機1100は、主制御部1150において、撮像されてCCDカメラ1116で得られた2次元コードを解析し、2次元コードに記録された情報を取得することができる。
さらに、携帯電話機1100は、赤外線通信部1181で赤外線により外部の機器と通信することができる。
携帯電話機1100は、画像エンコーダ1153として画像符号化装置100または画像符号化装置300を用いることにより、例えばCCDカメラ1116において生成された画像データを符号化して生成する符号化データに対するフィルタ処理の局所的な制御による効果の低減を抑制することができる。
例えば、携帯電話機1100は、スライスを跨ぐようにフィルタ処理を行うことにより、フィルタ処理結果の画質を向上させることができ、より高画質な符号化データを他の携帯電話機に供給することができる。また、例えば、携帯電話機1100は、当該スライスで閉じたフィルタ処理を行うことにより、低遅延にフィルタ処理を行うことができ、符号化データをより低遅延に他の携帯電話機に供給することができる。
また、携帯電話機1100は、画像デコーダ1156として画像復号装置200または画像復号装置400を用いることにより、例えば、簡易ホームページ等にリンクされた動画像ファイルのデータに対するフィルタ処理の、局所的な制御による効果の低減を抑制することができる。
例えば、携帯電話機1100は、スライスを跨ぐようにフィルタ処理を行うことにより、フィルタ処理結果の画質を向上させることができ、復号画像の高画質化を実現することができる。また、例えば、携帯電話機1100は、当該スライスで閉じたフィルタ処理を行うことにより、低遅延にフィルタ処理を行うことができ、符号化データをより低遅延に復号することができる。
なお、以上において、携帯電話機1100が、CCDカメラ1116を用いるように説明したが、このCCDカメラ1116の代わりに、CMOS(Complementary Metal Oxide Semiconductor)を用いたイメージセンサ(CMOSイメージセンサ)を用いるようにしてもよい。この場合も、携帯電話機1100は、CCDカメラ1116を用いる場合と同様に、被写体を撮像し、被写体の画像の画像データを生成することができる。
また、以上においては携帯電話機1100として説明したが、例えば、PDA(Personal Digital Assistants)、スマートフォン、UMPC(Ultra Mobile Personal Computer)、ネットブック、ノート型パーソナルコンピュータ等、この携帯電話機1100と同様の撮像機能や通信機能を有する装置であれば、どのような装置であっても携帯電話機1100の場合と同様に、画像符号化装置100および画像復号装置200を適用することができる。
<8.第8の実施の形態>
[ハードディスクレコーダ]
図26は、本発明を適用した画像符号化装置および画像復号装置を用いるハードディスクレコーダの主な構成例を示すブロック図である。
図26に示されるハードディスクレコーダ(HDDレコーダ)1200は、チューナにより受信された、衛星や地上のアンテナ等より送信される放送波信号(テレビジョン信号)に含まれる放送番組のオーディオデータとビデオデータを、内蔵するハードディスクに保存し、その保存したデータをユーザの指示に応じたタイミングでユーザに提供する装置である。
ハードディスクレコーダ1200は、例えば、放送波信号よりオーディオデータとビデオデータを抽出し、それらを適宜復号し、内蔵するハードディスクに記憶させることができる。また、ハードディスクレコーダ1200は、例えば、ネットワークを介して他の装置からオーディオデータやビデオデータを取得し、それらを適宜復号し、内蔵するハードディスクに記憶させることもできる。
さらに、ハードディスクレコーダ1200は、例えば、内蔵するハードディスクに記録されているオーディオデータやビデオデータを復号してモニタ1260に供給し、モニタ1260の画面にその画像を表示させ、モニタ1260のスピーカよりその音声を出力させることができる。また、ハードディスクレコーダ1200は、例えば、チューナを介して取得された放送波信号より抽出されたオーディオデータとビデオデータ、または、ネットワークを介して他の装置から取得したオーディオデータやビデオデータを復号してモニタ1260に供給し、モニタ1260の画面にその画像を表示させ、モニタ1260のスピーカよりその音声を出力させることもできる。
もちろん、この他の動作も可能である。
図26に示されるように、ハードディスクレコーダ1200は、受信部1221、復調部1222、デマルチプレクサ1223、オーディオデコーダ1224、ビデオデコーダ1225、およびレコーダ制御部1226を有する。ハードディスクレコーダ1200は、さらに、EPGデータメモリ1227、プログラムメモリ1228、ワークメモリ1229、ディスプレイコンバータ1230、OSD(On Screen Display)制御部1231、ディスプレイ制御部1232、記録再生部1233、D/Aコンバータ1234、および通信部1235を有する。
また、ディスプレイコンバータ1230は、ビデオエンコーダ1241を有する。記録再生部1233は、エンコーダ1251およびデコーダ1252を有する。
受信部1221は、リモートコントローラ(図示せず)からの赤外線信号を受信し、電気信号に変換してレコーダ制御部1226に出力する。レコーダ制御部1226は、例えば、マイクロプロセッサなどにより構成され、プログラムメモリ1228に記憶されているプログラムに従って、各種の処理を実行する。レコーダ制御部1226は、このとき、ワークメモリ1229を必要に応じて使用する。
通信部1235は、ネットワークに接続され、ネットワークを介して他の装置との通信処理を行う。例えば、通信部1235は、レコーダ制御部1226により制御され、チューナ(図示せず)と通信し、主にチューナに対して選局制御信号を出力する。
復調部1222は、チューナより供給された信号を、復調し、デマルチプレクサ1223に出力する。デマルチプレクサ1223は、復調部1222より供給されたデータを、オーディオデータ、ビデオデータ、およびEPGデータに分離し、それぞれ、オーディオデコーダ1224、ビデオデコーダ1225、またはレコーダ制御部1226に出力する。
オーディオデコーダ1224は、入力されたオーディオデータをデコードし、記録再生部1233に出力する。ビデオデコーダ1225は、入力されたビデオデータをデコードし、ディスプレイコンバータ1230に出力する。レコーダ制御部1226は、入力されたEPGデータをEPGデータメモリ1227に供給し、記憶させる。
ディスプレイコンバータ1230は、ビデオデコーダ1225またはレコーダ制御部1226より供給されたビデオデータを、ビデオエンコーダ1241により、例えばNTSC(National Television Standards Committee)方式のビデオデータにエンコードし、記録再生部1233に出力する。また、ディスプレイコンバータ1230は、ビデオデコーダ1225またはレコーダ制御部1226より供給されるビデオデータの画面のサイズを、モニタ1260のサイズに対応するサイズに変換し、ビデオエンコーダ1241によってNTSC方式のビデオデータに変換し、アナログ信号に変換し、ディスプレイ制御部1232に出力する。
ディスプレイ制御部1232は、レコーダ制御部1226の制御のもと、OSD(On Screen Display)制御部1231が出力したOSD信号を、ディスプレイコンバータ1230より入力されたビデオ信号に重畳し、モニタ1260のディスプレイに出力し、表示させる。
モニタ1260にはまた、オーディオデコーダ1224が出力したオーディオデータが、D/Aコンバータ1234によりアナログ信号に変換されて供給されている。モニタ1260は、このオーディオ信号を内蔵するスピーカから出力する。
記録再生部1233は、ビデオデータやオーディオデータ等を記録する記憶媒体としてハードディスクを有する。
記録再生部1233は、例えば、オーディオデコーダ1224より供給されるオーディオデータを、エンコーダ1251によりエンコードする。また、記録再生部1233は、ディスプレイコンバータ1230のビデオエンコーダ1241より供給されるビデオデータを、エンコーダ1251によりエンコードする。記録再生部1233は、そのオーディオデータの符号化データとビデオデータの符号化データとをマルチプレクサにより合成する。記録再生部1233は、その合成データをチャネルコーディングして増幅し、そのデータを、記録ヘッドを介してハードディスクに書き込む。
記録再生部1233は、再生ヘッドを介してハードディスクに記録されているデータを再生し、増幅し、デマルチプレクサによりオーディオデータとビデオデータに分離する。記録再生部1233は、デコーダ1252によりオーディオデータおよびビデオデータをデコードする。記録再生部1233は、復号したオーディオデータをD/A変換し、モニタ1260のスピーカに出力する。また、記録再生部1233は、復号したビデオデータをD/A変換し、モニタ1260のディスプレイに出力する。
レコーダ制御部1226は、受信部1221を介して受信されるリモートコントローラからの赤外線信号により示されるユーザ指示に基づいて、EPGデータメモリ1227から最新のEPGデータを読み出し、それをOSD制御部1231に供給する。OSD制御部1231は、入力されたEPGデータに対応する画像データを発生し、ディスプレイ制御部1232に出力する。ディスプレイ制御部1232は、OSD制御部1231より入力されたビデオデータをモニタ1260のディスプレイに出力し、表示させる。これにより、モニタ1260のディスプレイには、EPG(電子番組ガイド)が表示される。
また、ハードディスクレコーダ1200は、インターネット等のネットワークを介して他の装置から供給されるビデオデータ、オーディオデータ、またはEPGデータ等の各種データを取得することができる。
通信部1235は、レコーダ制御部1226に制御され、ネットワークを介して他の装置から送信されるビデオデータ、オーディオデータ、およびEPGデータ等の符号化データを取得し、それをレコーダ制御部1226に供給する。レコーダ制御部1226は、例えば、取得したビデオデータやオーディオデータの符号化データを記録再生部1233に供給し、ハードディスクに記憶させる。このとき、レコーダ制御部1226および記録再生部1233が、必要に応じて再エンコード等の処理を行うようにしてもよい。
また、レコーダ制御部1226は、取得したビデオデータやオーディオデータの符号化データを復号し、得られるビデオデータをディスプレイコンバータ1230に供給する。ディスプレイコンバータ1230は、ビデオデコーダ1225から供給されるビデオデータと同様に、レコーダ制御部1226から供給されるビデオデータを処理し、ディスプレイ制御部1232を介してモニタ1260に供給し、その画像を表示させる。
また、この画像表示に合わせて、レコーダ制御部1226が、復号したオーディオデータを、D/Aコンバータ1234を介してモニタ1260に供給し、その音声をスピーカから出力させるようにしてもよい。
さらに、レコーダ制御部1226は、取得したEPGデータの符号化データを復号し、復号したEPGデータをEPGデータメモリ1227に供給する。
以上のようなハードディスクレコーダ1200は、ビデオデコーダ1225、デコーダ1252、およびレコーダ制御部1226に内蔵されるデコーダとして画像復号装置200または画像復号装置400を用いる。したがって、ビデオデコーダ1225、デコーダ1252、およびレコーダ制御部1226に内蔵されるデコーダは、画像復号装置200または画像復号装置400の場合と同様に、画像符号化装置100または画像符号化装置300から供給された制御情報を抽出して復号し、その制御情報を用いて適応フィルタ制御処理(およびフィルタ処理)を行う。これにより、ビデオデコーダ1225、デコーダ1252、およびレコーダ制御部1226に内蔵されるデコーダは、フィルタ処理の局所的な制御による効果の低減を抑制することができる。
したがって、ハードディスクレコーダ1200は、例えば、チューナや通信部1235を介して受信されるビデオデータや、記録再生部1233のハードディスクに記録されるビデオデータに対するフィルタ処理の、局所的な制御による効果の低減を抑制することができる。
例えば、ハードディスクレコーダ1200は、スライスを跨ぐようにフィルタ処理を行うことにより、フィルタ処理結果の画質を向上させることができ、復号画像の高画質化を実現することができる。また、例えば、ハードディスクレコーダ1200は、当該スライスで閉じたフィルタ処理を行うことにより、低遅延にフィルタ処理を行うことができ、符号化データをより低遅延に復号することができる。
また、ハードディスクレコーダ1200は、エンコーダ1251として画像符号化装置100または画像符号化装置300を用いる。したがって、エンコーダ1251は、画像符号化装置100または画像符号化装置300の場合と同様に、フィルタ処理の局所的な制御による効果の低減を抑制することができる。
したがって、ハードディスクレコーダ1200は、例えば、ハードディスクに記録する符号化データに対するフィルタ処理の局所的な制御による効果の低減を抑制することができる。
例えば、ハードディスクレコーダ1200は、スライスを跨ぐようにフィルタ処理を行うことにより、フィルタ処理結果の画質を向上させることができ、より高画質な符号化データをハードディスクに記録することができる。また、例えば、ハードディスクレコーダ1200は、当該スライスで閉じたフィルタ処理を行うことにより、低遅延にフィルタ処理を行うことができ、より低遅延に符号化データを生成し、ハードディスクに記録することができる。
なお、以上においては、ビデオデータやオーディオデータをハードディスクに記録するハードディスクレコーダ1200について説明したが、もちろん、記録媒体はどのようなものであってもよい。例えばフラッシュメモリ、光ディスク、またはビデオテープ等、ハードディスク以外の記録媒体を適用するレコーダであっても、上述したハードディスクレコーダ1200の場合と同様に、画像符号化装置100および画像復号装置200を適用することができる。
<9.第9の実施の形態>
[カメラ]
図27は、本発明を適用した画像符号化装置および画像復号装置を用いるカメラの主な構成例を示すブロック図である。
図27に示されるカメラ1300は、被写体を撮像し、被写体の画像をLCD1316に表示させたり、それを画像データとして、記録メディア1333に記録したりする。
レンズブロック1311は、光(すなわち、被写体の映像)を、CCD/CMOS1312に入射させる。CCD/CMOS1312は、CCDまたはCMOSを用いたイメージセンサであり、受光した光の強度を電気信号に変換し、カメラ信号処理部1313に供給する。
カメラ信号処理部1313は、CCD/CMOS1312から供給された電気信号を、Y,Cr,Cbの色差信号に変換し、画像信号処理部1314に供給する。画像信号処理部1314は、コントローラ1321の制御の下、カメラ信号処理部1313から供給された画像信号に対して所定の画像処理を施したり、その画像信号をエンコーダ1341で符号化したりする。画像信号処理部1314は、画像信号を符号化して生成した符号化データを、デコーダ1315に供給する。さらに、画像信号処理部1314は、オンスクリーンディスプレイ(OSD)1320において生成された表示用データを取得し、それをデコーダ1315に供給する。
以上の処理において、カメラ信号処理部1313は、バス1317を介して接続されるDRAM(Dynamic Random Access Memory)1318を適宜利用し、必要に応じて画像データや、その画像データが符号化された符号化データ等をそのDRAM1318に保持させる。
デコーダ1315は、画像信号処理部1314から供給された符号化データを復号し、得られた画像データ(復号画像データ)をLCD1316に供給する。また、デコーダ1315は、画像信号処理部1314から供給された表示用データをLCD1316に供給する。LCD1316は、デコーダ1315から供給された復号画像データの画像と表示用データの画像を適宜合成し、その合成画像を表示する。
オンスクリーンディスプレイ1320は、コントローラ1321の制御の下、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを、バス1317を介して画像信号処理部1314に出力する。
コントローラ1321は、ユーザが操作部1322を用いて指令した内容を示す信号に基づいて、各種処理を実行するとともに、バス1317を介して、画像信号処理部1314、DRAM1318、外部インタフェース1319、オンスクリーンディスプレイ1320、およびメディアドライブ1323等を制御する。FLASH ROM1324には、コントローラ1321が各種処理を実行する上で必要なプログラムやデータ等が格納される。
例えば、コントローラ1321は、画像信号処理部1314やデコーダ1315に代わって、DRAM1318に記憶されている画像データを符号化したり、DRAM1318に記憶されている符号化データを復号したりすることができる。このとき、コントローラ1321は、画像信号処理部1314やデコーダ1315の符号化・復号方式と同様の方式によって符号化・復号処理を行うようにしてもよいし、画像信号処理部1314やデコーダ1315が対応していない方式により符号化・復号処理を行うようにしてもよい。
また、例えば、操作部1322から画像印刷の開始が指示された場合、コントローラ1321は、DRAM1318から画像データを読み出し、それを、バス1317を介して外部インタフェース1319に接続されるプリンタ1334に供給して印刷させる。
さらに、例えば、操作部1322から画像記録が指示された場合、コントローラ1321は、DRAM1318から符号化データを読み出し、それを、バス1317を介してメディアドライブ1323に装着される記録メディア1333に供給して記憶させる。
記録メディア1333は、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアである。記録メディア1333は、もちろん、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であっても良い。
また、メディアドライブ1323と記録メディア1333を一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
外部インタフェース1319は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタ1334と接続される。また、外部インタフェース1319には、必要に応じてドライブ1331が接続され、磁気ディスク、光ディスク、あるいは光磁気ディスクなどのリムーバブルメディア1332が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、FLASH ROM1324にインストールされる。
さらに、外部インタフェース1319は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。コントローラ1321は、例えば、操作部1322からの指示に従って、DRAM1318から符号化データを読み出し、それを外部インタフェース1319から、ネットワークを介して接続される他の装置に供給させることができる。また、コントローラ1321は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース1319を介して取得し、それをDRAM1318に保持させたり、画像信号処理部1314に供給したりすることができる。
以上のようなカメラ1300は、デコーダ1315として画像復号装置200または画像復号装置400を用いる。したがって、デコーダ1315は、画像復号装置200または画像復号装置400の場合と同様に、画像符号化装置100または画像符号化装置300から供給された制御情報を抽出して復号し、その制御情報を用いて適応フィルタ制御処理(およびフィルタ処理)を行う。これにより、デコーダ1315は、フィルタ処理の局所的な制御による効果の低減を抑制することができる。
したがって、カメラ1300は、例えば、CCD/CMOS1312において生成される画像データや、DRAM1318または記録メディア1333から読み出されるビデオデータの符号化データや、ネットワークを介して取得するビデオデータの符号化データに対するフィルタ処理の、局所的な制御による効果の低減を抑制することができる。
例えば、カメラ1300は、スライスを跨ぐようにフィルタ処理を行うことにより、フィルタ処理結果の画質を向上させることができ、復号画像の高画質化を実現することができる。また、例えば、カメラ1300は、当該スライスで閉じたフィルタ処理を行うことにより、低遅延にフィルタ処理を行うことができ、符号化データをより低遅延に復号することができる。
また、カメラ1300は、エンコーダ1341として画像符号化装置100または画像符号化装置300を用いる。したがって、エンコーダ1341は、画像符号化装置100または画像符号化装置300の場合と同様に、フィルタ処理の局所的な制御による効果の低減を抑制することができる。
したがって、カメラ1300は、例えば、DRAM1318や記録メディア1333に記録する符号化データや、他の装置に提供する符号化データに対するフィルタ処理の局所的な制御による効果の低減を抑制することができる。
例えば、カメラ1300は、スライスを跨ぐようにフィルタ処理を行うことにより、フィルタ処理結果の画質を向上させることができ、より高画質な符号化データをDRAM1318や記録メディア1333に記録したり、他の装置に提供したりすることができる。また、例えば、カメラ1300は、当該スライスで閉じたフィルタ処理を行うことにより、低遅延にフィルタ処理を行うことができ、より低遅延に符号化データをDRAM1318や記録メディア1333に記録したり、他の装置に提供したりすることができる。
なお、コントローラ1321が行う復号処理に画像復号装置200または画像復号装置400の復号方法を適用するようにしてもよい。同様に、コントローラ1321が行う符号化処理に画像符号化装置100または画像符号化装置300の符号化方法を適用するようにしてもよい。
また、カメラ1300が撮像する画像データは動画像であってもよいし、静止画像であってもよい。
もちろん、画像符号化装置100、画像復号装置200、画像符号化装置300、および画像復号装置400は、上述した装置以外の装置やシステムにも適用可能である。
また、マクロブロックの大きさも、16×16画素に限らない。例えば図28に示される32×32画素のような、あらゆる大きさのマクロブロックに対して適用することが可能である。
以上においては、フラグ情報等をビットストリームに多重化(記述)するものとして説明したが、多重化する以外にも、例えば、フラグと画像データ(又はビットストリーム)とを伝送(記録)してもよい。フラグと画像データ(又はビットストリーム)とを連結する(付加する)形態もありうる。
連結(付加)とは、画像データ(又はビットストリーム)とフラグとが互いにリンクされている状態(対応が取れている状態)を示すものであり、物理的な位置関係は任意である。例えば、画像データ(又はビットストリーム)とフラグとを、別の伝送路で伝送してもよい。また、画像データ(又はビットストリーム)とフラグとを、互いに別の記録媒体(又は同一の記録媒体内の別々の記録エリア)に記録してもよい。なお、画像データ(又はビットストリーム)とフラグとをリンクさせる単位は、任意であり、例えば、符号化処理単位(1フレーム、複数フレーム等)で設定してもよい。