以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
0.概要
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(多視点画像符号化・多視点画像復号装置)
4.第4の実施の形態(階層画像符号化・階層画像復号装置)
5.第5の実施の形態(コンピュータ)
6.応用例
7.スケーラブル符号化の応用例
8.第6の実施の形態(セット・ユニット・モジュール・プロセッサ)
9.第7の実施の形態(MPEG-DASHのコンテンツ再生システムの応用例)
10.第8の実施の形態(Wi-Fi規格の無線通信システムの応用例)
<0.概要>
<符号化方式>
以下においては、HEVC(High Efficiency Video Coding)方式の画像符号化・復号に適用する場合を例に、本技術を説明する。
<コーディングユニット>
AVC(Advanced Video Coding)方式においては、マクロブロックとサブマクロブロックによる階層構造が規定されている。しかしながら、16画素×16画素のマクロブロックでは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対して最適ではない。
これに対して、HEVC方式においては、図1に示されるように、コーディングユニット(CU(Coding Unit))が規定されている。
CUは、Coding Tree Block(CTB)とも呼ばれ、AVC方式におけるマクロブロックと同様の役割を果たす、ピクチャ単位の画像の部分領域である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ(SCU(Smallest Coding Unit))が規定される。
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。図1の例では、LCUの大きさが128であり、最大階層深度が5となる。2N×2Nの大きさのCUは、split_flagの値が「1」である時、1つ下の階層となる、N×Nの大きさのCUに分割される。
更に、CUは、イントラ若しくはインター予測の処理単位となる領域(ピクチャ単位の画像の部分領域)であるプレディクションユニット(Prediction Unit(PU))に分割され、また、直交変換の処理単位となる領域(ピクチャ単位の画像の部分領域)である、トランスフォームユニット(Transform Unit(TU))に分割される。現在、HEVC方式においては、4×4及び8×8に加え、16×16及び32×32直交変換を用いることが可能である。
以上のHEVC方式のように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、AVC方式におけるマクロブロックはLCUに相当し、ブロック(サブブロック)はCUに相当すると考えることができる。また、AVC方式における動き補償ブロックは、PUに相当すると考えることができる。ただし、CUは、階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、AVC方式のマクロブロックより大きく設定されることが一般的である。
よって、以下、LCUは、AVC方式におけるマクロブロックをも含むものとし、CUは、AVC方式におけるブロック(サブブロック)をも含むものとする。つまり、以下の説明に用いる「ブロック」は、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。つまり、「ブロック」には、例えば、TU、PU、SCU、CU、LCU、サブブロック、マクロブロック、またはスライス等任意の領域(処理単位)が含まれる。もちろん、これら以外の部分領域(処理単位)も含まれる。サイズや処理単位等を限定する必要がある場合は、適宜説明する。
<モード選択>
ところで、AVCそしてHEVC符号化方式において、より高い符号化効率を達成するには、適切な予測モードの選択が重要である。
かかる選択方式の例として、JM (Joint Model) と呼ばれるH.264/MPEG-4 AVCの参照ソフトウエア (http://iphome.hhi.de/suehring/tml/index.htm において公開されている) に実装されている方法を挙げることが出来る。
JMにおいては、以下に述べる、High Complexity Modeと、Low Complexity Modeの2通りのモード判定方法を選択することが可能である。どちらも、それぞれの予測モードModeに関するコスト関数値を算出し、これを最小にする予測モードを当該ブロック乃至マクロブロックに対する最適モードとして選択する。
High Complexity Modeにおけるコスト関数は、以下の式(1)のように示される。
ここで、Ωは、当該ブロック乃至マクロブロックを符号化するための候補モードの全体集合、Dは、当該予測モードで符号化した場合の、復号画像と入力画像の差分エネルギーである。λは、量子化パラメータの関数として与えられるLagrange未定乗数である。Rは、直交変換係数を含んだ、当該モードで符号化した場合の総符号量である。
つまり、High Complexity Modeでの符号化を行うには、上記パラメータD及びRを算出するため、全ての候補モードにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
Low Complexity Modeにおけるコスト関数は、以下の式(2)のように示される。
ここで、Dは、High Complexity Modeの場合と異なり、予測画像と入力画像の差分エネルギーとなる。QP2Quant(QP)は、量子化パラメータQPの関数として与えられ、HeaderBitは、直交変換係数を含まない、動きベクトルや、モードといった、Headerに属する情報に関する符号量である。
すなわち、Low Complexity Modeにおいては、それぞれの候補モードに関して、予測処理を行う必要があるが、復号画像までは必要ないため、符号化処理まで行う必要はない。このため、High Complexity Modeより低い演算量での実現が可能である。
<イントラ予測>
AVCではイントラ4×4予測、イントラ8×8予測、並びに、イントラ16×16予測が存在するのに対し、HEVCでは、4×4乃至64×64画素ブロックについて、図2に示されるような、アンギュラー(Angular)予測が適用される。
すなわち、AVCでは、図2のAに示されるように、8方向+直流予測によりイントラ予測処理が行われるのに対し、HEVCでは図2のBに示されるように、32方向+直流予測によりイントラ予測が行なわれる。これにより、予測精度が向上する。
また、HEVCにおいては、図3に示されるような、プレイナー(Planar)予測が規定されている。
プレイナー(Planar)予測処理においては、処理対象であるカレントブロックの周辺画素(既に符号化済みの画素)から、バイリニアインターポレーション(bi-linear interpolation)により、カレントブロックに含まれる予測画素が生成される。プレイナー(Planar)予測処理は、グラデーション(gradation)のあるような領域の符号化効率を向上させることができる。
HEVCにおいては、図4に示されるように、3つのモストプロバブルモード(MostProbableMode)を用いたイントラ予測モードの符号化処理が行われる。すなわち、カレントブロックの上に隣接する周辺ブロックのイントラ予測モード(Above)、カレントブロックの左に隣接する周辺ブロックのイントラ予測モード(Left)、および、それらの周辺ブロック(AboveおよびLeft)におけるイントラ予測モードの組み合わせにより決定されるモードを、イントラ予測モードの候補(候補モードとも称する)とし、この3つの候補モードの中から、最適なものをカレントブロックのイントラ予測モードとして採用する。
カレントブロックの予測モードと、モストプロバブルモード(MostProbableMode)のどれかが同一である場合には、そのインデックス(index)番号を伝送する。そうでない場合には、予測ブロックのモード情報を、5ビットの固定長により伝送する。
<イントラ予測におけるフィルタ処理>
図5は、HEVCにおいて規定されているMDIS(Mode Dependent Intra Smoothing)を説明する図である。
AVCの場合、イントラ8×8予測モードにおいて、カレントブロックの周辺画素に対して、図5に示されるように、[1 2 1]/4フィルタ処理が行われる。これに対して、HEVCにおいては、ブロックサイズと予測モードに応じて、このフィルタ処理のオン・オフ(on/off)(すなわち、このフィルタ処理を適用するか否か)が決定される。
より具体的には、カレントブロックのブロックサイズが4×4の場合、このフィルタ処理は適用されない。カレントブロックのブロックサイズが8×8の場合、45度方向の予測モードに対して、このフィルタ処理が適用される。カレントブロックのブロックサイズが16×16の場合、水平(horizontal)に近い3方向、並びに、垂直(vertical)に近い3方向以外の方向の予測モードに対して、このフィルタ処理が適用される。カレントブロックのブロックサイズが32×32の場合、水平(horizontal)および垂直(vertical)以外の方向の予測モードに対して、このフィルタ処理が適用される。
更に、また、HEVCにおいては、予測モードが直流(DC)モード、水平(Horizontal)モード、垂直(Vertical)モードである場合のブロック歪の低減を目的として、図6に示されるようなバウンダリバリュースムージング(Boundary Value Smoothing)処理が規定されている。
例えば、予測モードが直流(DC)モードである予測(DC予測)の場合、処理対象であるカレントブロックの上辺(Top)に隣接する周辺画素、および、カレントブロックの左辺(Left)に隣接する周辺画素の両方について、図6に示されるフィルタ処理(スムージング(Smoothing)処理)を行う。また、予測モードが水平(Horizontal)モードである予測(Horizontal予測)の場合、カレントブロックの上辺(Top)に隣接する周辺画素について、図6に示されるフィルタ処理(スムージング(Smoothing)処理)を行う。予測モードが垂直(Vertical)モードである予測(Vertical予測)の場合、カレントブロックの左辺(Left)に隣接する周辺画素について、図6に示されるフィルタ処理(スムージング(Smoothing)処理)を行う。
このようなインター予測により画像を符号化・復号すると、得られる復号画像において、図7の領域11に示されるような明度・色彩・濃度等の変化が平坦な部分において、帯状の濃度ムラ(所謂バンディング)が発生し、輪郭が見えてしまう現象が発生する恐れがあった。
そこで、非特許文献2に記載される輪郭ノイズ対策処理が提案された。この非特許文献2に記載の輪郭ノイズ対策処理を行うことにより、復号画像の領域11において発生していたバンディングは、図8に示されるように抑えられ、滑らかなグラデーションが得られるようになった。
この非特許文献2に記載の輪郭ノイズ対策処理について、より具体的に説明する。図9は、この輪郭ノイズ対策処理の様子の例を示す図である。輪郭ノイズ対策処理においては、まず、図9に示されるようなカレントブロックの周辺画素を用いて、以下の式(3)および式(4)に示されるような閾値判定処理が行われる。
式(3)において、閾値THRESHOLDの値は8に固定されている。このような閾値判定処理により、カレントブロックの周辺画素の特徴が判定される。つまり、カレントブロック周辺が、バンディングが発生し得る明度・色彩・濃度等の変化が平坦な部分であるか否かが判定される。この閾値判定処理の結果が真である場合、すなわち、カレントブロック周辺が、バンディングが発生し得る明度・色彩・濃度等の変化が平坦な部分であると判定された場合、図9に示されるようなカレントブロックの周辺画素に対して、図5を参照して説明したフィルタ処理の代わりに、以下の式(5)乃至式(9)に示されるようなバイリニアインターポレーション(bi-linear interpolation)処理が行われる。
この処理は、32×32ブロックに対してのみ適用され、また、シーケンスパラメータセット(SPS(Sequence Parameter Set))において、この処理を適用するか否か(on/off)を示すフラグ(flag)が規定されている。
しかしながら、非特許文献2に記載の方法では、閾値が固定されていた。そのため、イントラ予測における周辺画素に対するフィルタ処理の選択において、適切な選択を行うことができずに不要に画質を低減させてしまう恐れがあった。
閾値判定処理においては、式(3)および式(4)に示されるように、カレントブロックの周辺画素の画素値より算出される値と閾値とが比較される。しかしながら、この閾値が固定値であるとすると、例えば画像データのビット深度に対してその値が適切でない場合が考えられる。その場合、上述した閾値判定処理の結果として正しい判定結果が得られず、適切なフィルタが選択されずに不要に復号画像の画質を低減させてしまう恐れがあった。
また、例えば、符号化・復号の際の内部演算において画像データのビット深度を変更する場合も考えられる。このような場合においても、同様に、固定値の閾値が内部演算におけるビット深度に対して適切でなく、不適切な閾値判定処理結果が得られ、不要に復号画像の画質を低減させてしまう恐れがあった。
さらに、例えば、ユーザ等が、この閾値を調整することによって復号画像の画質を調整することができなかった。
そこで、本技術は、この閾値を可変とする。例えば、画像データのビット深度に応じてこの閾値を設定することができるようにする。このようにすることにより、画質の低減を抑制することができる。また、閾値を可変とすることにより、復号画像の画質を調整することができる。
次に、以上のような本技術について、具体的な装置への適用例について説明する。
<1.第1の実施の形態>
<画像符号化装置>
図10は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図10に示される画像符号化装置100は、例えば、HEVCの予測処理、またはそれに準ずる方式の予測処理を用いて動画像の画像データを符号化する。
図10に示されるように画像符号化装置100は、A/D変換部101、画面並べ替えバッファ102、演算部103、直交変換部104、量子化部105、可逆符号化部106、蓄積バッファ107、逆量子化部108、および逆直交変換部109を有する。また、画像符号化装置100は、演算部110、ループフィルタ111、フレームメモリ112、イントラ予測部113、インター予測部114、予測画像選択部115、およびレート制御部116を有する。
A/D変換部101は、入力された画像データをA/D変換し、変換後の画像データ(デジタルデータ)を、画面並べ替えバッファ102に供給し、記憶させる。画面並べ替えバッファ102は、記憶した表示の順番のフレームの画像を、GOP(Group Of Picture)に応じて、符号化のためのフレームの順番に並べ替え、フレームの順番を並び替えた画像を、演算部103に供給する。また、画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、イントラ予測部113およびインター予測部114にも供給する。
演算部103は、画面並べ替えバッファ102から読み出された画像から、予測画像選択部115を介してイントラ予測部113若しくはインター予測部114から供給される予測画像を減算し、その差分情報を直交変換部104に出力する。例えば、イントラ符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、イントラ予測部113から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、インター予測部114から供給される予測画像を減算する。
直交変換部104は、演算部103から供給される差分情報に対して、離散コサイン変換やカルーネン・レーベ変換等の直交変換を施す。直交変換部104は、その変換係数を量子化部105に供給する。
量子化部105は、直交変換部104から供給される変換係数を量子化する。量子化部105は、レート制御部116から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。量子化部105は、量子化された変換係数を可逆符号化部106に供給する。
可逆符号化部106は、量子化部105において量子化された変換係数を任意の符号化方式で符号化する。係数データは、レート制御部116の制御の下で量子化されているので、この符号量は、レート制御部116が設定した目標値となる(若しくは目標値に近似する)。
また、可逆符号化部106は、イントラ予測のモードを示す情報などをイントラ予測部113から取得し、インター予測のモードを示す情報や差分動きベクトル情報などをインター予測部114から取得する。
可逆符号化部106は、これらの各種情報を任意の符号化方式で符号化し、符号化データ(符号化ストリームとも称する)のヘッダ情報の一部とする(多重化する)。可逆符号化部106は、符号化して得られた符号化データを蓄積バッファ107に供給して蓄積させる。
可逆符号化部106の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
蓄積バッファ107は、可逆符号化部106から供給された符号化データを、一時的に保持する。蓄積バッファ107は、所定のタイミングにおいて、保持している符号化データを、画像符号化装置100の外部に出力する。すなわち、蓄積バッファ107は、符号化データを伝送する伝送部でもある。
また、量子化部105において量子化された変換係数は、逆量子化部108にも供給される。逆量子化部108は、その量子化された変換係数を、量子化部105による量子化に対応する方法で逆量子化する。逆量子化部108は、得られた変換係数を、逆直交変換部109に供給する。
逆直交変換部109は、逆量子化部108から供給された変換係数を、直交変換部104による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力(復元された差分情報)は、演算部110に供給される。
演算部110は、逆直交変換部109から供給された逆直交変換結果である、復元された差分情報に、予測画像選択部115を介してイントラ予測部113若しくはインター予測部114からの予測画像を加算し、局所的に再構成された画像(以下、再構成画像と称する)を得る。その再構成画像は、ループフィルタ111またはイントラ予測部113に供給される。
ループフィルタ111は、デブロックフィルタや適応ループフィルタ等を含み、演算部110から供給される再構成画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ111は、再構成画像に対してデブロックフィルタ処理を行うことにより再構成画像のブロック歪を除去する。また、例えば、ループフィルタ111は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ111が、再構成画像に対してさらに、他の任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ111は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部106に供給し、それを符号化させるようにすることもできる。
ループフィルタ111は、フィルタ処理結果(以下、復号画像と称する)をフレームメモリ112に供給する。
フレームメモリ112は、供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像としてインター予測部114に供給する。
イントラ予測部113は、演算部110から参照画像として供給される再構成画像である処理対象ピクチャ内の画素値を用いて予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部113は、予め用意された複数のイントラ予測モードでこのイントラ予測を行う。
イントラ予測部113は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ102から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。イントラ予測部113は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部115に供給する。
また、上述したように、イントラ予測部113は、採用されたイントラ予測モードを示すイントラ予測モード情報等を、適宜可逆符号化部106に供給し、符号化させる。
インター予測部114は、画面並べ替えバッファ102から供給される入力画像と、フレームメモリ112から供給される参照画像とを用いてインター予測処理(動き予測処理および補償処理)を行う。より具体的には、インター予測部114は、インター予測処理として、動き予測を行って検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。インター予測部114は、予め用意された複数のインター予測モードでこのようなインター予測を行う。
インター予測部114は、候補となる全てのインター予測モードで予測画像を生成する。インター予測部114は、画面並べ替えバッファ102から供給される入力画像と、生成した差分動きベクトルの情報などを用いて、各予測画像のコスト関数値を評価し、最適なモードを選択する。インター予測部114は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部115に供給する。
インター予測部114は、採用されたインター予測モードを示す情報や、符号化データを復号する際に、そのインター予測モードで処理を行うために必要な情報等を可逆符号化部106に供給し、符号化させる。必要な情報としては、例えば、生成された差分動きベクトルの情報や、予測動きベクトル情報として、予測動きベクトルのインデックスを示すフラグなどがある。
予測画像選択部115は、演算部103や演算部110に供給する予測画像の供給元を選択する。例えば、イントラ符号化の場合、予測画像選択部115は、予測画像の供給元としてイントラ予測部113を選択し、そのイントラ予測部113から供給される予測画像を演算部103や演算部110に供給する。また、例えば、インター符号化の場合、予測画像選択部115は、予測画像の供給元としてインター予測部114を選択し、そのインター予測部114から供給される予測画像を演算部103や演算部110に供給する。
レート制御部116は、蓄積バッファ107に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
画像符号化装置100は、さらに、閾値設定部121およびフィルタ処理部122を有する。
閾値設定部121は、フィルタ処理部122において行われる、イントラ予測のカレントブロックの周辺画素に対するフィルタ処理に用いられる閾値を設定し、設定した閾値(更新後の閾値)を示す閾値情報をフィルタ処理部122に供給する。
例えば、閾値設定部121が、符号化対象である画像データのビット深度に応じて閾値を設定するようにしてもよい。
この場合、例えば、閾値設定部121が、可逆符号化部106から、シーケンスパラメータセット(SPS)等として復号側に伝送されるパラメータである、画像データのビット深度に関する情報を取得し、そのビット深度に関する情報に基づいて、画像データのビット深度を判定し、そのビット深度に応じた閾値を設定するようにしてもよい。また、例えば、閾値設定部121が、画面並べ替えバッファ102から画像情報(画像データや画像データに関する情報を含む)を取得し、その画像情報に基づいて(画像情報を解析することにより)、画像データのビット深度を判定し、そのビット深度に応じた閾値を設定するようにしてもよい。
また、この場合、例えば、閾値設定部121が、判定したビット深度に応じて、予め定められた閾値の初期値(例えば8)をビットシフトすることにより閾値を更新するようにしてもよい。その際、例えば、初期値として、ビット深度が8ビットの場合に適した値が予め設定されており、閾値設定部121が、画像データの実際のビット深度と8ビットとのビット数の差に応じて、初期値をビットシフトするようにしてもよい。
さらに、この場合、例えば、閾値設定部121が、その更新後の閾値を示す閾値情報を、可逆符号化部106に供給し、シーケンスパラメータセット(SPS)やピクチャパラメータセット(PPS(Picture Parameter Set))等として、復号側に伝送させるようにしてもよい。その際、例えば、閾値設定部121が、その閾値情報を符号化(例えば、ゴロム(golomb)符号化)し、閾値符号化情報として供給するようにしてもよい。また、例えば、閾値設定部121が、画像情報に基づいて画像データのビット深度を判定する場合、そのビット深度に関する情報を、可逆符号化部106に供給し、シーケンスパラメータセット(SPS)やピクチャパラメータセット(PPS)等として、復号側に伝送させるようにしてもよい。その際、例えば、閾値設定部121が、そのビット深度に関する情報を符号化(例えば、ゴロム(golomb)符号化)し、ビット深度符号化情報として供給するようにしてもよい。
また、この場合、例えば、閾値設定部121が、閾値を更新(変更)したか否かを示すフラグ情報(閾値変更フラグ)を生成し、その閾値変更フラグを、可逆符号化部106に供給し、復号側に伝送させるようにしてもよい。このようにすることにより、復号側(例えば画像復号装置)においては、その閾値変更フラグの値に基づいて、閾値が更新(変更)されたか否かを容易に識別することができる。つまり、復号側(例えば画像復号装置)が、閾値を符号化側(例えば画像符号化装置100)と同様に更新(変更)する処理を行うか否かを容易に制御することができる。
また、例えば、閾値設定部121が、ユーザ等の外部の指示に従って、この閾値を設定するようにしてもよい。この場合、ユーザ等により指定された値が、上述した更新後の値に対応する。つまり、その値の閾値がフィルタ処理部122に供給される。
この場合、例えば、閾値設定部121が、その設定された閾値を示す閾値情報を、可逆符号化部106に供給し、シーケンスパラメータセット(SPS)やピクチャパラメータセット(PPS)等として、復号側に伝送させるようにしてもよい。その際、例えば、閾値設定部121が、その閾値情報を符号化(例えば、ゴロム(golomb)符号化)し、閾値符号化情報として供給するようにしてもよい。
また、この場合、例えば、閾値設定部121が、閾値変更フラグを生成し、可逆符号化部106に供給し、復号側に伝送させるようにしてもよい。
さらに、例えば、閾値設定部121が、ユーザ等の外部により指定された閾値を、符号化対象である画像データのビット深度に応じて更新(変更)するようにしてもよい。
この場合、例えば、閾値設定部121が、可逆符号化部106から画像データのビット深度に関する情報を取得し、そのビット深度に関する情報に基づいて画像データのビット深度を判定するようにしてもよい。また、例えば、閾値設定部121が、画面並べ替えバッファ102から画像情報を取得し、その画像情報に基づいて画像データのビット深度を判定するようにしてもよい。
また、この場合、例えば、閾値設定部121が、判定したビット深度に応じて、ユーザ等の外部により指定された閾値をビットシフトすることにより閾値を更新するようにしてもよい。その際、例えば、ビット深度が8ビットの場合に適した閾値が指定されるようにし、閾値設定部121が、画像データの実際のビット深度と8ビットとのビット数の差に応じて、その指定された閾値をビットシフトするようにしてもよい。
例えば、ユーザ等の外部により指定される閾値をcontouring_artefact_thresholdとする。このcontouring_artefact_thresholdは、符号化対象の画像データのビット深度が8ビットの場合に相当する値として指定される。画像データの実際のビット深度がnビット(n≧8)の場合、閾値設定部121は、contouring_artefact_thresholdを、以下の式(10)のようにビットシフトする。
さらに、この場合、例えば、閾値設定部121が、その更新後の閾値を示す閾値情報を、可逆符号化部106に供給し、シーケンスパラメータセット(SPS)やピクチャパラメータセット(PPS)等として、復号側に伝送させるようにしてもよい。その際、例えば、閾値設定部121が、その閾値情報を符号化(例えば、ゴロム(golomb)符号化)し、閾値符号化情報として供給するようにしてもよい。
また、この場合、例えば、閾値設定部121が、更新前の閾値(ユーザ等の外部により指定された閾値)を示す閾値情報を、可逆符号化部106に供給し、シーケンスパラメータセット(SPS)やピクチャパラメータセット(PPS)等として、復号側に伝送させるようにしてもよい。その際、例えば、閾値設定部121が、その閾値情報を符号化(例えば、ゴロム(golomb)符号化)し、閾値符号化情報として供給するようにしてもよい。
その際、さらに、閾値設定部121が、ビット深度に関する情報を可逆符号化部106に供給し、シーケンスパラメータセット(SPS)やピクチャパラメータセット(PPS)等として、復号側に伝送させるようにしてもよい。その際、例えば、閾値設定部121が、そのビット深度に関する情報を符号化(例えば、ゴロム(golomb)符号化)し、ビット深度符号化情報として供給するようにしてもよい。
また、この場合、例えば、閾値設定部121が、閾値変更フラグを生成し、可逆符号化部106に供給し、シーケンスパラメータセット(SPS)やピクチャパラメータセット(PPS)等として、復号側に伝送させるようにしてもよい。
なお、閾値設定部121が、ビット深度以外の任意のパラメータに基づいて、閾値の設定(更新)を行うことができるようにしてもよい。また、上述した閾値の初期値は、任意であるが、例えば、「8」としてもよい。なお、閾値設定部121は、閾値として「0」を設定することにより、バイリニアインターポレーション処理の適用を禁止し、図5を参照して説明したフィルタ処理が適用されるようにすることができる。つまり、閾値が「0」である場合、非特許文献2に記載の方法がdisableとされる。
フィルタ処理部122は、閾値設定部121から閾値情報を取得し、その閾値を用いて、イントラ予測の処理対象であるカレントブロックの周辺画素に対するフィルタ処理を行う。例えば、フィルタ処理部122が、閾値設定部121から取得した閾値を用いて、式(3)および式(4)に示されるような閾値判定処理を行い、カレントブロックの周辺画素の特徴を識別するようにしてもよい。
また、例えば、その判定結果が偽である場合、すなわち、カレントブロック周辺が、明度・色彩・濃度等の変化が平坦な部分でないと判定された場合、フィルタ処理部122が、周辺画素に対して、図5を参照して説明したフィルタ処理(ローパスフィルタ処理とも称する)を行うようにしてもよい。
さらに、例えば、その判定結果が真である場合、すなわち、カレントブロック周辺が、明度・色彩・濃度等が平坦な部分であると判定された場合、フィルタ処理部122が、ローパスフィルタ処理に代えて、式(5)乃至式(9)に示されるようなバイリニアインターポレーション処理(バイリニアフィルタ処理とも称する)を行うようにしてもよい。
フィルタ処理部122は、イントラ予測部113から、イントラ予測の処理対象であるカレントブロックの周辺画素を取得すると、その周辺画素に対して、以上のようなフィルタ処理を行う。そして、フィルタ処理部122は、そのフィルタ処理後の周辺画素をイントラ予測部113に供給する。イントラ予測部113は、そのフィルタ処理後の周辺画素を用いてイントラ予測を行う。このようにすることにより、イントラ予測部113は、フィルタ処理結果を反映させた予測画像を生成することができる。
つまり、上述したように、閾値設定部121が、画像データを符号化する際のイントラ予測処理におけるカレントブロックの周辺画素の特徴を識別するための閾値を、画像データのビット深度等に応じて設定することができるので、イントラ予測部113は、画像データに対して適切なフィルタ処理結果を反映させた予測画像を生成することができる。つまり、画像符号化装置100は、復号画像におけるバンディング等のノイズの発生を抑制することができ、復号画像の画質の低減を抑制することができる。
また、上述したように、閾値設定部121が、ユーザ等の外部の指定に従ってこの閾値を設定することができるので、イントラ予測部113は、そのユーザ等の外部による画質の指定を予測画像に反映させることができる。つまり、画像符号化装置100は、復号画像の画質を制御することができる。
なお、図5や式(5)乃至式(9)等を参照して説明したように、フィルタ処理部322によるカレントブロックの周辺画素に対するフィルタ処理のかけ方は、イントラ予測モード(すなわち、カレントブロックのブロックサイズ)に応じて制御されるようにしてもよい。
なお、図7に示されたようなバンディング(輪郭歪)は、画像データのビット深度が例えば8ビットのように少ない場合に顕著に観測されるが、ビット深度が例えば10ビットのように多い場合は抑制される(視覚的に目立たない)。そこで、非特許文献2に記載のバイリニアフィルタ処理を適用するビット深度の上限を設けるようにしてもよい。例えば、非特許文献2に記載のバイリニアフィルタ処理は、ビット深度が8ビットの場合のみ適用され、それ以外の場合には適用されないようにしてもよい。
また、非特許文献2に記載のバイリニアフィルタ処理は、輝度信号の処理に対してのみ適用されるようにすることもできるが、色差信号の処理に対しても適用されるようにしてもよい。つまり、本技術は、輝度信号だけでなく、色差信号にも適用することができる。
また、入力信号が4:4:4やRGBであり、それぞれの色成分チャネルを独立に処理する場合、それぞれのチャネルに独立に本技術を適用することもできる。
更に、また、階層画像符号化(スケーラブル符号化)・階層画像復号(スケーラブル復号)を行う場合、ベースレイヤ(baselayer)のみにおいて、例えば閾値やビット深度等のパラメータやフラグ等を伝送するようにし、ノンベースレイヤ(エンハンスメントレイヤ(enhancementlayer))においては、ベースレイヤにおいて伝送されたパラメータやフラグが参照されるようにしても良い。
<閾値設定部・フィルタ処理部>
図11は、図10の閾値設定部121が符号化対象である画像データのビット深度に応じて閾値を設定する場合の、閾値設定部121およびフィルタ処理部122の主な構成例を示すブロック図である。
図11の例の場合、閾値設定部121は、ビット深度判定部131、閾値ビットシフト部132、および符号化部133を有する。
ビット深度判定部131は、符号化対象の画像データのビット深度を判定し、そのビット深度を示す情報を閾値ビットシフト部132に供給する。
例えば、ビット深度判定部131は、可逆符号化部106から、画像データのビット深度に関する情報を取得し、そのビット深度に関する情報に基づいて、画像データのビット深度を判定する。また、例えば、ビット深度判定部131は、画面並べ替えバッファ102から画像情報を取得し、その画像情報に基づいて画像データのビット深度を判定する。
なお、判定したビット深度を示す情報を復号側に伝送する場合、ビット深度判定部131は、そのビット深度を示す情報を符号化部133にも供給する。
閾値ビットシフト部132は、ビット深度判定部131から供給されたビット深度を示す情報に応じて、予め定められた所定の閾値(初期値)をビットシフトすることにより、閾値の更新(変更)を行う。
例えば、閾値ビットシフト部132には、ビット深度が8ビットの場合に適した値が、閾値の初期値として予め設定されている。閾値ビットシフト部132は、ビット深度判定部131からビット深度を示す情報を取得すると、その情報が示す画像データのビット深度と、8ビットとのビット数の差分だけ、初期値をビットシフトする。
閾値ビットシフト部132は、更新(変更)後の閾値を示す情報(閾値情報)をフィルタ処理部122の周辺画素判定部142に供給する。
また、更新(変更)後の閾値を示す閾値情報を復号側に伝送する場合、閾値ビットシフト部132は、その閾値情報を符号化部133にも供給する。
符号化部133は、供給された情報をゴロム(golomb)符号化し、得られたゴロム符号を可逆符号化部106に供給し、復号側に伝送させる。例えば、ビット深度を示す情報を復号側に伝送する場合、符号化部133は、ビット深度判定部131からビット深度を示す情報を取得し、そのビット深度を示す情報をゴロム符号化する。符号化部133は、得られたビット深度を示す情報のゴロム符号(ビット深度符号化情報とも称する)を可逆符号化部106に供給し、復号側に伝送させる。
また、例えば、更新(変更)後の閾値を示す閾値情報を復号側に伝送する場合、符号化部133は、閾値ビットシフト部132から更新(変更)後の閾値を示す閾値情報を取得し、その閾値情報をゴロム符号化する。符号化部133は、得られた閾値情報のゴロム符号(閾値符号化情報とも称する)を可逆符号化部106に供給し、復号側に伝送させる。
なお、符号化部133が、閾値を更新(変更)したか否かを示す閾値変更フラグを生成し、可逆符号化部106に供給し、復号側に伝送させるようにしてもよい。
また、図11に示されるように、フィルタ処理部122は、モード・ブロックサイズバッファ141、周辺画素判定部142、フィルタ決定部143、ローパスフィルタ部144、およびバイリニアフィルタ部145を有する。
モード・ブロックサイズバッファ141は、イントラ予測部113から、候補となる予測モードに関する、カレントブロックのブロックサイズおよびモードに関する情報(モード・ブロックサイズ)を取得し、保持する。
モード・ブロックサイズバッファ141は、所定のタイミングにおいて、若しくは、他からの要求に基づいて、保持しているブロックサイズに関する情報(ブロックサイズ)を周辺画素判定部142に供給する。また、モード・ブロックサイズバッファ141は、所定のタイミングにおいて、若しくは、他からの要求に基づいて、保持しているモードに関する情報(モード)およびブロックサイズに関する情報(ブロックサイズ)をフィルタ決定部143に供給する。
周辺画素判定部142は、イントラ予測部113から、候補となる予測モードに関する、カレントブロックの上辺および左辺に隣接する周辺画素を取得する。また、周辺画素判定部142は、閾値ビットシフト部132から閾値情報を取得する。さらに、周辺画素判定部142は、モード・ブロックサイズバッファ141からブロックサイズに関する情報(ブロックサイズ)を取得する。
周辺画素判定部142は、モード・ブロックサイズバッファ141から取得したブロックサイズに関する情報に基づいて、カレントブロックが所定のサイズ(例えば32×32)(若しくは、所定の範囲内のサイズ)のモードである場合、閾値ビットシフト部132から取得した閾値情報を用いて、イントラ予測部113から取得した周辺画素に対するフィルタ処理に用いるフィルタの選択のための閾値判定処理を行う。つまり、周辺画素判定部142は、周辺画素の特徴(例えば、明度・色彩・濃度等の変化が平坦な部分の画素であるか否か)を判定する。
周辺画素判定部142は、その判定結果をフィルタ決定部143に供給する。また、周辺画素判定部142は、イントラ予測部113から取得したカレントブロックの周辺画素を、ローパスフィルタ部144およびバイリニアフィルタ部145に供給する。
フィルタ決定部143は、モード・ブロックサイズバッファ141からモードに関する情報(モード)およびブロックサイズに関する情報(ブロックサイズ)を取得する。また、フィルタ決定部143は、周辺画素判定部142から閾値判定処理の判定結果を取得する。フィルタ決定部143は、それらを用いて、実行するフィルタ処理の種類やそのかけ方を決定する。例えば、フィルタ決定部143は、ローパスフィルタ処理およびバイリニアフィルタ処理のいずれを、カレントブロックの周辺画素に対してかけるか、さらに、どのようにそのフィルタ処理を行うか等を決定する。
フィルタ決定部143は、その決定に従って、フィルタ処理の実行を制御する制御情報を、ローパスフィルタ部144およびバイリニアフィルタ部145に供給する。つまり、フィルタ決定部143は、ローパスフィルタ部144およびバイリニアフィルタ部145の内、選択した処理部に、そのフィルタ処理をどのように実行するかを指示する制御情報を供給し、選択しなかった処理部に、フィルタ処理の停止を指示する制御情報(すなわち、フィルタ処理を実行させないようにする制御情報)を供給する。
ローパスフィルタ部144は、フィルタ決定部143から供給される制御情報に従って、周辺画素判定部142から供給されるカレントブロックの周辺画素に対して、図5を参照して説明したようなローパスフィルタ処理を行う。ローパスフィルタ部144は、ローパスフィルタ処理を施した周辺画素(フィルタ処理後周辺画素)をイントラ予測部113に供給する。
バイリニアフィルタ部145は、フィルタ決定部143から供給される制御情報に従って、周辺画素判定部142から供給されるカレントブロックの周辺画素に対して、式(5)乃至式(9)を参照して説明したようなバイリニアフィルタ処理を行う。バイリニアフィルタ部145は、バイリニアフィルタ処理を施した周辺画素(フィルタ処理後周辺画素)をイントラ予測部113に供給する。
以上のようにすることにより、閾値設定部121は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができ、フィルタ処理部122は、画像データのビット深度に対して適切なフィルタを選択し、周辺画素に対して、そのフィルタを用いてフィルタ処理を行うことができ、イントラ予測部113は、画像データのビット深度に対して適切なフィルタ処理が施された周辺画素を用いて予測画像を生成することができる。つまり、このようにすることにより、画像符号化装置100は、復号画像の画質の低減を抑制することができる。
<符号化処理の流れ>
次に、図10に示される画像符号化装置100により実行される符号化処理の流れの例を、図12のフローチャートを参照して説明する。
ステップS101において、A/D変換部101は入力された画像をA/D変換する。ステップS102において、画面並べ替えバッファ102は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS103において、閾値設定部121は、画像データを符号化する際のイントラ予測処理におけるカレントブロックの周辺画素の特徴を識別するための閾値を設定する。
ステップS104において、イントラ予測部113は、イントラ予測モードのイントラ予測処理を行う。ここで、フィルタ処理部122が、ステップS103において設定された閾値を用いて、カレントブロックの周辺画素に対するフィルタ処理を行う場合もある。このフィルタ処理が行われた場合、イントラ予測部113は、そのフィルタ処理された周辺画素を用いてイントラ予測を行う。
ステップS105において、インター予測部114は、インター予測モードでの動き予測や動き補償を行うインター予測処理を行う。
ステップS106において、予測画像選択部115は、イントラ予測部113およびインター予測部114から出力された各コスト関数値に基づいて、最適なモードを決定する。つまり、予測画像選択部115は、イントラ予測部113により生成された予測画像と、インター予測部114により生成された予測画像のいずれか一方を選択する。
ステップS107において、演算部103は、ステップS102の処理により並び替えられた画像と、ステップS106の処理により選択された予測画像との差分を演算する。差分データは元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS108において、直交変換部104は、ステップS106の処理により生成された差分情報を直交変換する。ステップS109において、量子化部105は、レート制御部116により算出された量子化パラメータを用いて、ステップS108の処理により得られた直交変換係数を量子化する。
ステップS110において、逆量子化部108は、ステップS109の処理により生成された量子化された係数(量子化係数とも称する)を、量子化部105の特性に対応する特性で逆量子化する。ステップS111において、逆直交変換部109は、ステップS110の処理により得られた直交変換係数を逆直交変換する。
ステップS112において、演算部110は、予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部103への入力に対応する画像)を生成する。
ステップS113においてループフィルタ111は、ステップS112の処理により生成された画像をフィルタリングする。これによりブロック歪み等が除去される。
ステップS114において、フレームメモリ112は、ステップS113の処理によりループフィルタ処理が施された復号画像を記憶する。
ステップS115において、可逆符号化部106は、ステップS109の処理により量子化された係数を符号化する。すなわち、差分画像に対応するデータに対して、可変長符号化や算術符号化等の可逆符号化が行われる。
また、このとき、可逆符号化部106は、ステップS106の処理により選択された予測画像の予測モードに関する情報を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部106は、イントラ予測部113から供給される最適イントラ予測モード情報、または、インター予測部114から供給される最適インター予測モードに応じた情報なども符号化し、符号化データに付加する。
ステップS116において蓄積バッファ107は、ステップS115の処理により得られた符号化データを蓄積する。蓄積バッファ107に蓄積された符号化データは、適宜読み出され、伝送路や記録媒体を介して復号側に伝送される。
ステップS117においてレート制御部116は、ステップS116の処理により蓄積バッファ107に蓄積された符号化データの符号量(発生符号量)に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。また、レート制御部116は、量子化パラメータに関する情報を、量子化部105に供給する。
ステップS117の処理が終了すると、符号化処理が終了される。
<閾値設定処理の流れ>
次に、図13のフローチャートを参照して、図11の例の閾値設定部121が、ビット深度に関する情報に基づいて画像データのビット深度を判定する例について、図12のステップS103において実行される閾値設定処理の流れの例を説明する。なお、図13においては、更新後の閾値を示す閾値符号化情報および閾値変更フラグが復号側に伝送される場合について説明する。
閾値設定処理が開始されると、ステップS131において、閾値ビットシフト部132は、予め用意されている初期値を閾値として設定するか否かを判定する。閾値を更新すると判定された場合、処理はステップS132に進む。
ステップS132において、ビット深度判定部131は、可逆符号化部106からビット深度に関する情報を取得する。
ステップS133において、ビット深度判定部131は、ステップS132において取得したビット深度に関する情報に基づいて、符号化対象である画像データのビット深度を判定する。
ステップS134において、閾値ビットシフト部132は、ステップS133の判定結果(判定されたビット深度)に応じて、閾値(初期値)をビットシフトする。閾値ビットシフト部132は、更新された閾値をフィルタ処理部122の周辺画素判定部142に供給する。
ステップS135において、符号化部133は、ステップS134において生成されたビットシフト後(更新後)の閾値を示す閾値情報を符号化する。
ステップS136において、符号化部133は、ステップS135の処理により得られた、更新後の閾値を示す閾値符号化情報を可逆符号化部106に供給し、復号側に伝送させる。
ステップS136の処理が終了すると、処理は、ステップS137に進む。また、ステップS131において、閾値として初期値を設定すると判定された場合、処理はステップS137に進む。
ステップS137において、符号化部133は、閾値が更新(変更)されたか否かを示す閾値変更フラグを設定する。つまり、例えば、ステップS131乃至ステップS136の処理が行われた場合、符号化部133は、閾値が更新(変更)されたことを示す値の閾値変更フラグを設定する。また、例えば、ステップS131において閾値として初期値を設定すると判定された場合、符号化部133は、閾値が更新(変更)されていないことを示す値の閾値変更フラグを設定する。
ステップS138において、符号化部133は、ステップS137において設定された閾値変更フラグを、可逆符号化部106に供給し、復号側に伝送させる。
ステップS138の処理が終了すると、閾値設定処理が終了し、処理は、図12に戻る。
以上のように閾値設定処理を実行することにより、閾値設定部121は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができる。
なお、閾値変更フラグが復号側に伝送されない(つまり、閾値変更フラグを生成しない)ようにする場合、上述したステップS137およびステップS138の処理を省略することができる。
また、更新後の閾値を示す閾値符号化情報が復号側に伝送されない(つまり、閾値符号化情報を生成しない)ようにする場合、上述したステップS135およびステップS136の処理を省略することができる。
<イントラ予測処理の流れ>
次に、図14のフローチャートを参照して、図12のステップS104において実行されるイントラ予測処理の流れの例を説明する。
イントラ予測処理が開始されると、ステップS151において、周辺画素判定部142は、モード・ブロックサイズバッファ141から取得したブロックサイズ、および、閾値ビットシフト部132から取得した閾値情報に基づいて、イントラ予測部113から取得したカレントブロックの周辺画素の特徴(例えば、カレントブロック周辺が、明度・色彩・濃度等が平坦な部分であるか否か)を判定する。
ステップS152において、フィルタ決定部143は、モード・ブロックサイズバッファ141から取得したモードおよびブロックサイズ、並びに、ステップS151の判定結果に基づいて、カレントブロックの周辺画素に対して使用するフィルタを決定する。
ステップS153において、ローパスフィルタ部144およびバイリニアフィルタ部145の内、ステップS152の処理により選択された方は、カレントブロックの周辺画素に対してフィルタ処理を行う。例えば、ステップS152においてローパスフィルタが選択された場合、ステップS153において、ローパスフィルタ部144は、フィルタ決定部143により決定されたかけ方で、周辺画素に対してローパスフィルタ処理を行う。また、例えば、ステップS152においてバイリニアフィルタが選択された場合、ステップS153において、バイリニアフィルタ部145は、フィルタ決定部143により決定されたかけ方で、周辺画素に対してバイリニアフィルタ処理を行う。
なお、これらのフィルタ処理は、一部のモードに対して省略することもできる。
ステップS154において、イントラ予測部113は、ステップS153においてフィルタ処理された周辺画素(省略された場合は、フィルタ処理されていない周辺画素)を用いて、各モードでイントラ予測を行う。
ステップS155において、イントラ予測部113は、ステップS154において行った各モードのイントラ予測結果についてコスト関数値を算出する。
ステップS156において、イントラ予想部113は、ステップS155において算出した各モードのコスト関数値に基づいて、最適イントラ予測モードを決定する。
ステップS157において、イントラ予測部113は、ステップS156において決定した最適イントラ予測モードで予測画像を生成する。
ステップS157の処理が終了すると、イントラ予測処理が終了し、処理は、図12に戻る。
以上のようにイントラ予測処理を実行することにより、フィルタ処理部122は、画像データのビット深度に対して適切なフィルタを選択し、周辺画素に対して、そのフィルタを用いてフィルタ処理を行うことができ、イントラ予測部113は、画像データのビット深度に対して適切なフィルタ処理が施された周辺画素を用いて予測画像を生成することができる。
つまり、以上のように各処理を実行することにより、画像符号化装置100は、復号画像の画質の低減を抑制することができる。
<閾値設定処理の流れ>
次に、図15のフローチャートを参照して、図11の例の閾値設定部121が、画像情報に基づいて画像データのビット深度を判定する例について、図12のステップS103において実行される閾値設定処理の流れの例を説明する。なお、図15においては、更新後の閾値を示す閾値符号化情報および閾値変更フラグが復号側に伝送される場合について説明する。
図15の例の場合、ステップS171、ステップS174乃至ステップS178の各処理は、図13の例の、ステップS131、ステップS134乃至ステップS138の各処理と同様に実行される。
図15のステップS171において閾値を更新すると判定された場合、処理はステップS172に進む。
ステップS172において、ビット深度判定部131は、画面並べ替えバッファ102から画像情報を取得する。
ステップS173において、ビット深度判定部131は、ステップS172において取得した画像情報に基づいて、符号化対象である画像データのビット深度を判定する。ステップS173の処理が終了すると、処理は、ステップS174に進む。
ステップS178の処理が終了すると、閾値設定処理が終了し、処理は、図12に戻る。
このようにしても、閾値設定部121は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができる。したがって、この場合も、画像符号化装置100は、復号画像の画質の低減を抑制することができる。
なお、閾値変更フラグが復号側に伝送されない(つまり、閾値変更フラグを生成しない)ようにする場合、ステップS177およびステップS178の処理を省略することができる。
また、更新後の閾値を示す閾値符号化情報が復号側に伝送されない(つまり、閾値符号化情報を生成しない)ようにする場合、ステップS175およびステップS176の処理を省略することができる。
<閾値設定処理の流れ>
次に、図16のフローチャートを参照して、図11の例の閾値設定部121が、画像情報に基づいて画像データのビット深度を判定し、さらに、その判定したビット深度を復号側に伝送する例について、図12のステップS103において実行される閾値設定処理の流れの例を説明する。なお、図16においては、さらに、閾値変更フラグが復号側に伝送される場合について説明する。
図16の例の場合、ステップS191乃至ステップS194、ステップS197、ステップS198の各処理は、図15の例の、ステップS171乃至ステップS174、ステップS177、ステップS178の各処理と同様に実行される。
図16のステップS194の処理が終了すると、処理はステップS195に進む。
ステップS195において、符号化部133は、ステップS193において判定されたビット深度を示す情報を符号化する。
ステップS196において、符号化部133は、ステップS195の処理により得られたビット深度符号化情報を可逆符号化部106に供給し、復号側に伝送させる。
ステップS196の処理が終了すると、処理は、ステップS197に進む。
このようにしても、閾値設定部121は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができる。したがって、この場合も、画像符号化装置100は、復号画像の画質の低減を抑制することができる。
なお、閾値変更フラグが復号側に伝送されない(つまり、閾値変更フラグを生成しない)ようにする場合、ステップS197およびステップS198の処理を省略することができる。
また、ビット深度符号化情報が復号側に伝送されない(つまり、ビット深度符号化情報を生成しない)ようにする場合、ステップS195およびステップS196の処理を省略することができる。
<閾値設定部・フィルタ処理部>
図17は、図10の閾値設定部121がユーザ等の外部の指示に従って閾値を設定する場合の、閾値設定部121およびフィルタ処理部122の主な構成例を示すブロック図である。
図17の例の場合、閾値設定部121は、閾値設定部151および符号化部133を有する。
閾値設定部151は、例えばユーザ等の外部からの、閾値の指定を受け付け、その指定に従って閾値を設定する。閾値設定部151は、設定した閾値を示す情報(閾値情報)を、フィルタ処理部122の周辺画素判定部142に供給する。
また、その閾値情報を復号側に伝送する場合、閾値ビットシフト部132は、その閾値情報を符号化部133にも供給する。
符号化部133は、図11の場合と同様に、供給された情報をゴロム(golomb)符号化し、得られたゴロム符号を可逆符号化部106に供給し、復号側に伝送させる。例えば、設定された閾値を示す閾値情報を復号側に伝送する場合、符号化部133は、閾値設定部151から供給された閾値情報を取得し、その閾値情報をゴロム符号化する。符号化部133は、このようにして得られた閾値符号化情報を可逆符号化部106に供給し、復号側に伝送させる。
なお、図11の場合と同様に、符号化部133が、閾値を更新(変更)したか否かを示す閾値変更フラグを生成し、可逆符号化部106に供給し、復号側に伝送させるようにしてもよい。
なお、フィルタ処理部122は、図11の場合と同様の構成を有し、図11の場合と同様の処理を行う。
以上のようにすることにより、閾値設定部121は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができ、フィルタ処理部122は、画像データのビット深度に対して適切なフィルタを選択し、周辺画素に対して、そのフィルタを用いてフィルタ処理を行うことができ、イントラ予測部113は、画像データのビット深度に対して適切なフィルタ処理が施された周辺画素を用いて予測画像を生成することができる。つまり、このようにすることにより、画像符号化装置100は、復号画像の画質の低減を抑制することができる。
また、図17の例の場合、閾値設定部121が、ユーザ等の外部の指定に従ってこの閾値を設定することができるので、イントラ予測部113は、そのユーザ等の外部による画質の指定を予測画像に反映させることができる。つまり、画像符号化装置100は、復号画像の画質を制御することができる。
<閾値設定処理の流れ>
次に、図18のフローチャートを参照して、図17の例の閾値設定部121が、図12のステップS103において実行される閾値設定処理の流れの例を説明する。なお、図18においては、設定された閾値を示す閾値符号化情報および閾値変更フラグが復号側に伝送される場合について説明する。
図18の例の場合、ステップS211、ステップS216、ステップS217の各処理は、図13の例の、ステップS131、ステップS137、ステップS138の各処理と同様に実行される。
図18のステップS211において閾値を更新すると判定された場合、処理はステップS212に進む。
ステップS212において、閾値設定部151は、例えばユーザ等の外部からの値の指定を受け付ける。
ステップS213において、閾値設定部151は、ステップS212において受け付けられた指定により指定される値を閾値として設定する。
ステップS214において、符号化部133は、ステップS213において設定された閾値を符号化する。
ステップS215において、符号化部133は、ステップS214の処理により得られた閾値符号化情報を可逆符号化部106に供給し、復号側に伝送させる。
ステップS215の処理が終了すると、処理は、ステップS216に進む。また、ステップS211において、閾値として初期値を設定すると判定された場合、処理はステップS216に進む。
そして、ステップS217の処理が終了すると、閾値設定処理が終了し、処理は、図12に戻る。
以上のように閾値設定処理を実行することにより、閾値設定部121は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができる。したがって、画像符号化装置100は、復号画像の画質の低減を抑制することができる。
また、図18の例の場合、閾値設定部121が、ユーザ等の外部の指定に従ってこの閾値を設定することができる。つまり、画像符号化装置100は、復号画像の画質を制御することができる。
<閾値設定部・フィルタ処理部>
図19は、図10の閾値設定部121がユーザ等の外部により指定された閾値を、符号化対象である画像データのビット深度に応じて更新(変更)する場合の、閾値設定部121およびフィルタ処理部122の主な構成例を示すブロック図である。
図19の例の場合、閾値設定部121は、ビット深度判定部131、閾値ビットシフト部132、符号化部133、および閾値設定部151を有する。
この場合、ビット深度判定部131および符号化部133は、図11の場合と同様の処理を行う。また、この場合、閾値設定部151は、図17の場合と同様の処理を行う。ただし、閾値設定部151は、設定した閾値を閾値ビットシフト部132に供給する。
この場合、閾値ビットシフト部132は、図11の場合と同様に、ビット深度判定部131から供給されたビット深度を示す情報に応じて閾値をビットシフトすることにより、閾値の更新(変更)を行う。ただし、この場合、閾値ビットシフト部132は、閾値設定部151から供給される閾値、つまり、例えばユーザ等の外部の指定に基づいて設定された閾値をビットシフトする。
閾値ビットシフト部132は、更新(変更)後の閾値を示す情報(閾値情報)をフィルタ処理部122の周辺画素判定部142に供給する。
なお、更新(変更)後の閾値(つまり、閾値ビットシフト部132によりビットシフトされた後の閾値)を示す閾値情報を復号側に伝送する場合、閾値ビットシフト部132は、その閾値情報を符号化部133にも供給する。
また、更新(変更)前の閾値(つまり、閾値設定部151により設定された閾値)を示す閾値情報を復号側に伝送することもできる。その場合、閾値ビットシフト部132は、その更新(変更)前の閾値(つまり、閾値設定部151により設定された閾値)を示す閾値情報を符号化部133に供給する。この場合、符号化部133は、その更新(変更)前の閾値(つまり、閾値設定部151により設定された閾値)を示す閾値情報を符号化し、得られた閾値符号化情報を可逆符号化部106に供給して伝送させる。
なお、フィルタ処理部122は、図11の場合と同様の構成を有し、図11の場合と同様の処理を行う。
以上のようにすることにより、閾値設定部121は、ユーザ等の外部の指定に従ってこの閾値を設定することができるだけでなく、その閾値を、画像データのビット深度に応じた(ビット深度に対して適切な)値に更新することができる。つまり、フィルタ処理部122は、画像データのビット深度に対して適切なフィルタを選択し、周辺画素に対して、そのフィルタを用いてフィルタ処理を行うことができ、イントラ予測部113は、画像データのビット深度に対して適切なフィルタ処理が施された周辺画素を用いて予測画像を生成することができる。すなわち、画像符号化装置100は、復号画像の画質を制御することができるとともに、復号画像の画質の低減を抑制することができる。
<閾値設定処理の流れ>
次に、図20のフローチャートを参照して、図19の例の閾値設定部121が、ビット深度に関する情報に基づいて画像データのビット深度を判定し、さらに、更新前の閾値を示す閾値符号化情報を復号側に伝送させる例について、図12のステップS103において実行される閾値設定処理の流れの例を説明する。なお、図20においては、閾値変更フラグも復号側に伝送させる場合について説明する。
図20の例の場合、ステップS231乃至ステップS233の各処理は、図18の例の、ステップS211乃至ステップS213の各処理と同様に実行される。
また、図20の例の場合、ステップS234およびステップS235の各処理は、図13のステップS132およびステップS133の各処理と同様に実行される。
ステップS236において、閾値ビットシフト部132は、ステップS133の判定結果(判定されたビット深度)に応じて、ステップS233において設定された閾値をビットシフトする。閾値ビットシフト部132は、更新された閾値をフィルタ処理部122の周辺画素判定部142に供給する。
ステップS237において、符号化部133は、ステップS233において設定された閾値、すなわち、ビットシフト前(更新前)の閾値を示す閾値情報を符号化する。
ステップS238において、符号化部133は、ステップS237において得られた、更新前の閾値を示す閾値符号化情報を可逆符号化部106に供給し、復号側に伝送させる。
ステップS238の処理が終了すると、処理は、ステップS239に進む。また、ステップS231において、閾値として初期値を設定すると判定された場合、処理はステップS239に進む。
図20の例の場合、ステップS239およびステップS240の各処理は、図13の例の、ステップS137およびステップS138の各処理と同様に実行される。
ステップS240の処理が終了すると、閾値設定処理が終了し、処理は、図12に戻る。
以上のように閾値設定処理を実行することにより、閾値設定部121は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができる。また、閾値設定部121は、ユーザ等の外部の指定に従って閾値を設定することができる。
なお、閾値変更フラグが復号側に伝送されない(つまり、閾値変更フラグを生成しない)ようにする場合、上述したステップS239およびステップS240の処理を省略することができる。
なお、閾値設定部121が、ビット深度に関する情報の代わりに画像情報に基づいて画像データのビット深度を判定する場合、図20のステップS234およびステップS235の各処理を、図15のステップS172およびステップS173の各処理に置き換えればよい。
<閾値設定処理の流れ>
次に、図21のフローチャートを参照して、図19の例の閾値設定部121が、画像情報に基づいて画像データのビット深度を判定し、さらに、更新前の閾値を示す閾値符号化情報とともに、そのビット深度を示す情報も復号側に伝送させる例について、図12のステップS103において実行される閾値設定処理の流れの例を説明する。なお、図21においては、閾値変更フラグも復号側に伝送される場合について説明する。
図21の例の場合、ステップS251乃至ステップS253の各処理は、図20の例の、ステップS231乃至ステップS233の各処理と同様に実行される。
また、図21の例の場合、ステップS254およびステップS255の各処理は、図15のステップS172およびステップS173の各処理と同様に実行される。
さらに、図21の例の場合、ステップS256乃至ステップS258の各処理は、図21の例の、ステップS236乃至ステップS238の各処理と同様に実行される。
また、図21の例の場合、ステップS259およびステップS260の各処理は、図16のステップS195およびステップS196の各処理と同様に実行される。
ステップS260の処理が終了すると、処理は、ステップS261に進む。また、ステップS251において、閾値として初期値を設定すると判定された場合、処理はステップS261に進む。
さらに、図20の例の場合、ステップS261およびステップS262の各処理は、図20の例の、ステップS239およびステップS240の各処理と同様に実行される。
ステップS262の処理が終了すると、閾値設定処理が終了し、処理は、図12に戻る。
以上のように閾値設定処理を実行することにより、閾値設定部121は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができる。また、閾値設定部121は、ユーザ等の外部の指定に従って閾値を設定することができる。
なお、閾値変更フラグが復号側に伝送されない(つまり、閾値変更フラグを生成しない)ようにする場合、上述したステップS261およびステップS262の処理を省略することができる。
<閾値設定処理の流れ>
次に、図22のフローチャートを参照して、図19の例の閾値設定部121が、ビット深度に関する情報に基づいて画像データのビット深度を判定し、さらに、更新後の閾値を示す閾値符号化情報を復号側に伝送させる例について、図12のステップS103において実行される閾値設定処理の流れの例を説明する。なお、図22においては、閾値変更フラグも復号側に伝送させる場合について説明する。
図22の例の場合、ステップS281乃至ステップS286の各処理は、図20の例の、ステップS231乃至ステップS236の各処理と同様に実行される。
ステップS287において、閾値ビットシフト部132は、ステップS286において得られたビットシフト後(更新後)の閾値を示す閾値情報を符号化する。
ステップS288において、符号化部133は、ステップS287において得られた、更新後の閾値を示す閾値符号化情報を可逆符号化部106に供給し、復号側に伝送させる。
ステップS288の処理が終了すると、処理は、ステップS289に進む。また、ステップS281において、閾値として初期値を設定すると判定された場合、処理はステップS289に進む。
図22の例の場合、ステップS289およびステップS290の各処理は、図20の例の、ステップS239およびステップS240の各処理と同様に実行される。
ステップS290の処理が終了すると、閾値設定処理が終了し、処理は、図12に戻る。
以上のように閾値設定処理を実行することにより、閾値設定部121は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができる。また、閾値設定部121は、ユーザ等の外部の指定に従って閾値を設定することができる。
なお、閾値変更フラグが復号側に伝送されない(つまり、閾値変更フラグを生成しない)ようにする場合、上述したステップS289およびステップS290の処理を省略することができる。
なお、閾値設定部121が、ビット深度に関する情報の代わりに画像情報に基づいて画像データのビット深度を判定する場合、図22のステップS284およびステップS285の各処理を、図15のステップS172およびステップS173の各処理に置き換えればよい。
<2.第2の実施の形態>
<画像復号装置>
次に、以上のように符号化された符号化データ(符号化ストリーム)の復号について説明する。図23は、本技術を適用した画像処理装置の一態様である、図10の画像符号化装置100に対応する画像復号装置の主な構成例を示すブロック図である。
図23に示される画像復号装置300は、画像符号化装置100が生成した符号化データを、その符号化方法に対応する復号方法で復号する。
図23に示されるように画像復号装置300は、蓄積バッファ301、可逆復号部302、逆量子化部303、逆直交変換部304、演算部305、ループフィルタ306、画面並べ替えバッファ307、およびD/A変換部308を有する。また、画像復号装置300は、フレームメモリ309、イントラ予測部310、インター予測部311、および予測画像選択部312を有する。
蓄積バッファ301は、伝送されてきた符号化データを受け取る受け取り部でもある。蓄積バッファ301は、伝送されてきた符号化データを受け取って、蓄積し、所定のタイミングにおいてその符号化データを可逆復号部302に供給する。符号化データには、予測モード情報などの復号に必要な情報が付加されている。可逆復号部302は、蓄積バッファ301より供給された、図10の可逆符号化部106により符号化された情報を、その符号化方式に対応する復号方式で復号する。可逆復号部302は、復号して得られた差分画像の量子化された係数データを、逆量子化部303に供給する。
また、可逆復号部302は、最適な予測モードにイントラ予測モードが選択されたかインター予測モードが選択されたかを判定し、その最適な予測モードに関する情報を、イントラ予測部310およびインター予測部311の内、選択されたと判定したモードの方に供給する。つまり、例えば、画像符号化装置100において最適な予測モードとしてイントラ予測モードが選択された場合、その最適な予測モードに関する情報がイントラ予測部310に供給される。また、例えば、画像符号化装置100において最適な予測モードとしてインター予測モードが選択された場合、その最適な予測モードに関する情報がインター予測部311に供給される。
さらに、可逆復号部302は、例えば、量子化行列や量子化パラメータ等の、逆量子化に必要な情報を逆量子化部303に供給する。
逆量子化部303は、可逆復号部302により復号されて得られた量子化された係数データを、図10の量子化部105の量子化方式に対応する方式で逆量子化する。なお、この逆量子化部303は、図10の画像符号化装置100の逆量子化部108と同様の処理部である。つまり、逆量子化部303の説明は、逆量子化部108にも準用することができる。ただし、データの入出力先等は、装置に応じて適宜、変えて読む必要がある。
逆量子化部303は、得られた係数データを逆直交変換部304に供給する。
逆直交変換部304は、逆量子化部303から供給される直交変換係数を、必要に応じて、図10の直交変換部104の直交変換方式に対応する方式で逆直交変換する。なお、この逆直交変換部304は、図10の画像符号化装置100の逆直交変換部109と同様の処理部である。つまり、逆直交変換部304の説明は、逆直交変換部109にも準用することができる。ただし、データの入出力先等は、装置に応じて適宜、変えて読む必要がある。
逆直交変換部304は、この逆直交変換処理により、画像符号化装置100において直交変換される前の残差データに対応する復号残差データを得る。逆直交変換されて得られた復号残差データは、演算部305に供給される。また、演算部305には、予測画像選択部312を介して、イントラ予測部310若しくはインター予測部311から予測画像が供給される。
演算部305は、差分画像と予測画像とを加算し、画像符号化装置100の演算部103により予測画像が減算される前の画像に対応する再構成画像を得る。演算部305は、その再構成画像をループフィルタ306およびイントラ予測部310に供給する。
ループフィルタ306は、供給された再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜施して復号画像を生成する。例えば、ループフィルタ306は、再構成画像に対してデブロックフィルタ処理を行うことにより、ブロック歪を除去する。また、例えば、ループフィルタ306は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ306が行うフィルタ処理の種類は任意であり、上述した以外のフィルタ処理を行ってもよい。また、ループフィルタ306が、図10の画像符号化装置100から供給されたフィルタ係数を用いてフィルタ処理を行うようにしてもよい。
ループフィルタ306は、フィルタ処理結果である復号画像を画面並べ替えバッファ307およびフレームメモリ309に供給する。
画面並べ替えバッファ307は、画像の並べ替えを行う。すなわち、図10の画面並べ替えバッファ102により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部308は、画面並べ替えバッファ307から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
フレームメモリ309は、供給される復号画像を記憶し、所定のタイミングにおいて、若しくは、インター予測部311等の外部の要求に基づいて、記憶している復号画像を参照画像として、インター予測部311に供給する。
イントラ予測部310には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部302から適宜供給される。イントラ予測部310は、図10のイントラ予測部113において用いられたイントラ予測モードで、フレームメモリ309から取得した参照画像を用いてイントラ予測を行い、予測画像を生成する。イントラ予測部310は、生成した予測画像を予測画像選択部312に供給する。
インター予測部311は、ヘッダ情報を復号して得られた情報(最適予測モード情報、参照画像情報等)を可逆復号部302から取得する。
インター予測部311は、可逆復号部302から取得された最適予測モード情報が示すインター予測モードで、フレームメモリ309から取得した参照画像を用いてインター予測を行い、予測画像を生成する。
予測画像選択部312は、イントラ予測部310からの予測画像またはインター予測部311からの予測画像を、演算部305に供給する。そして、演算部305においては、動きベクトルが用いられて生成された予測画像と逆直交変換部304からの復号残差データ(差分画像情報)とが加算されて元の画像が復号される。すなわち、インター予測部311、可逆復号部302、逆量子化部303、逆直交変換部304、演算部305は、動きベクトルを用いて、符号化データを復号し、元の画像を生成する復号部でもある。
画像復号装置300は、さらに、閾値設定部321およびフィルタ処理部322を有する。
閾値設定部321は、基本的に閾値設定部121と同様の処理を行う。つまり、閾値設定部321は、画像データが符号化された符号化データを復号する際のイントラ予測処理におけるカレントブロックの周辺画素の特徴を識別するための閾値、すなわち、フィルタ処理部322において行われる、イントラ予測のカレントブロックの周辺画素に対するフィルタ処理に用いられる閾値を、画像データのビット深度に応じて設定する。
ただし、閾値設定部321は、可逆復号部302から供給される、符号化側から伝送される情報を用いて、その閾値を設定することもできる。閾値設定部321は、設定した閾値(更新後の閾値)を示す閾値情報をフィルタ処理部322に供給する。
例えば、閾値設定部321が、符号化対象である画像データのビット深度に応じて閾値を設定するようにしてもよい。
この場合、例えば、閾値設定部321が、可逆復号部302から、シーケンスパラメータセット(SPS)等として符号化側から伝送されるパラメータである、画像データのビット深度に関する情報を取得し、そのビット深度に関する情報に基づいて、画像データのビット深度を判定し、そのビット深度に応じた閾値を設定するようにしてもよい。また、例えば、閾値設定部321が、フレームメモリ309等から復号画像の画像情報(画像データや画像データに関する情報を含む)を取得し、その画像情報に基づいて(画像情報を解析することにより)、画像データのビット深度を判定し、そのビット深度に応じた閾値を設定するようにしてもよい。
また、この場合、例えば、閾値設定部321が、判定したビット深度に応じて、予め定められた閾値の初期値(例えば8)をビットシフトすることにより閾値を更新するようにしてもよい。その際、例えば、初期値として、ビット深度が8ビットの場合に適した値が予め設定されており、閾値設定部321が、画像データの実際のビット深度と8ビットとのビット数の差に応じて、初期値をビットシフトするようにしてもよい。
また、この場合、例えば、閾値設定部321が、符号化側から伝送された閾値変更フラグを取得し、その閾値変更フラグの値に基づいて、閾値が更新されたか否かを判定するようにしてもよい。このようにすることにより、画像復号装置300は、その閾値変更フラグの値に基づいて、閾値が更新(変更)されたか否かを容易に識別することができる。つまり、画像復号装置300は、閾値を符号化側(例えば画像符号化装置100)と同様に更新(変更)する処理を行うか否かを容易に制御することができる。
また、例えば、閾値設定部321が、符号化側から伝送される情報に従って、この閾値を設定するようにしてもよい。
この場合、例えば、閾値設定部321が、符号化側から供給されたビット深度符号化情報を可逆復号部302から取得し、それを復号して得られるビット深度に応じて、閾値を更新するようにしてもよい。その際、例えば、閾値設定部321が、符号化側から伝送された情報により示されるビット深度に応じて、予め定められた閾値の初期値(例えば8)をビットシフトすることにより閾値を更新するようにしてもよい。
また、この場合、例えば、閾値設定部321が、符号化側から供給された更新前の閾値を示す閾値符号化情報を、可逆復号部302からさらに取得し、それを復号して得られる閾値を、同様に得たビット深度に応じて、更新するようにしてもよい。その際も、閾値の更新は、同様にビットシフトにより行うようにしてもよい。
さらに、この場合も、閾値設定部321が、符号化側から伝送された閾値変更フラグの値に基づいて、閾値が更新されたか否かを判定するようにしてもよい。
また、この場合、例えば、閾値設定部321が、符号化側から供給された更新後の閾値を示す閾値符号化情報を、可逆復号部302から取得するようにし、それを復号して得られる閾値を設定するようにしてもよい。
さらに、この場合も、閾値設定部321が、符号化側から伝送された閾値変更フラグの値に基づいて、閾値が更新されたか否かを判定するようにしてもよい。
さらに、例えば、閾値設定部321が、符号化対象である画像データのビット深度を判定し、そのビット深度に応じて、符号化側から伝送された閾値を更新(変更)するようにしてもよい。
この場合、例えば、閾値設定部321が、符号化側から供給された更新前の閾値を示す閾値符号化情報を可逆復号部302から取得し、それを復号して更新前の閾値を示す閾値情報を取得し、さらに、上述したように符号化側から伝送されたビット深度に関する情報や、フレームメモリ309より得た復号画像の画像情報等からビット深度を判定し、そのビット深度に応じて、閾値を更新するようにしてもよい。その際も、閾値の更新は、同様にビットシフトにより行うようにしてもよい。
さらに、この場合も、閾値設定部321が、符号化側から伝送された閾値変更フラグの値に基づいて、閾値が更新されたか否かを判定するようにしてもよい。
閾値のビットシフトは、閾値設定部121の場合と同様に、例えば、上述した式(10)のように行われるようにしてもよい。
さらに、閾値設定部321が、ゴロム符号として伝送されるパラメータやフラグを、ゴロム(golomb)復号するようにしてもよい。
なお、閾値設定部321が、ビット深度以外の任意のパラメータに基づいて、閾値の設定(更新)を行うことができるようにしてもよい。また、上述した閾値の初期値は、任意であるが、例えば、「8」としてもよい。なお、閾値設定部321は、閾値として「0」が設定されている場合、バイリニアインターポレーション処理の適用を禁止し、図5を参照して説明したフィルタ処理が適用されるようにしてもよい。つまり、閾値が「0」である場合、非特許文献2に記載の方法がdisableとされるようにしてもよい。
フィルタ処理部322は、イントラ予測部310によるイントラ予測、すなわち、画像データが符号化された符号化データを復号する際のイントラ予測処理に対して、フィルタ処理部122と同様の処理を行う。つまり、フィルタ処理部322は、閾値設定部321から閾値情報を取得し、その閾値を用いて、イントラ予測部310によるイントラ予測の処理対象であるカレントブロックの周辺画素に対するフィルタ処理を行う。例えば、フィルタ処理部322が、閾値設定部321から取得した閾値を用いて、式(3)および式(4)に示されるような閾値判定処理を行い、カレントブロックの周辺画素の特徴を識別するようにしてもよい。
また、例えば、その判定結果が偽である場合、すなわち、カレントブロック周辺が、明度・色彩・濃度等の変化が平坦な部分でないと判定された場合、フィルタ処理部322が、周辺画素に対して、図5を参照して説明したフィルタ処理(ローパスフィルタ処理とも称する)を行うようにしてもよい。
さらに、例えば、その判定結果が真である場合、すなわち、カレントブロック周辺が、明度・色彩・濃度等が平坦な部分であると判定された場合、フィルタ処理部322が、ローパスフィルタ処理に代えて、式(5)乃至式(9)に示されるようなバイリニアインターポレーション処理(バイリニアフィルタ処理とも称する)を行うようにしてもよい。
フィルタ処理部322は、イントラ予測部310から、イントラ予測の処理対象であるカレントブロックの周辺画素を取得すると、その周辺画素に対して、以上のようなフィルタ処理を行う。そして、フィルタ処理部322は、そのフィルタ処理後の周辺画素をイントラ予測部310に供給する。その場合、イントラ予測部310は、そのフィルタ処理後の周辺画素を用いてイントラ予測を行う。このようにすることにより、イントラ予測部310は、フィルタ処理結果を反映させた予測画像を生成することができる。
つまり、上述したように、閾値設定部321が、画像データを復号する際のイントラ予測処理におけるカレントブロックの周辺画素の特徴を識別するための閾値を、画像データのビット深度等に応じて設定することができるので、イントラ予測部310は、画像データに対して適切なフィルタ処理結果を反映させた予測画像を生成することができる。つまり、画像復号装置300は、復号画像におけるバンディング等のノイズの発生を抑制することができ、復号画像の画質の低減を抑制することができる。
なお、図5や式(5)乃至式(9)等を参照して説明したように、フィルタ処理部322によるカレントブロックの周辺画素に対するフィルタ処理のかけ方は、イントラ予測モード(すなわち、カレントブロックのブロックサイズ)に応じて制御されるようにしてもよい。
なお、画像復号装置300においても、非特許文献2に記載のバイリニアフィルタ処理を適用するビット深度の上限を設けるようにしてもよい。例えば、非特許文献2に記載のバイリニアフィルタ処理は、ビット深度が8ビットの場合のみ適用され、それ以外の場合には適用されないようにしてもよい。
同様に、画像復号装置300においても、非特許文献2に記載のバイリニアフィルタ処理は、輝度信号の処理に対してのみ適用されるようにすることもできるが、色差信号の処理に対しても適用されるようにしてもよい。つまり、本技術は、輝度信号だけでなく、色差信号にも適用することができる。
また、画像復号装置300においても、入力信号が4:4:4やRGBであり、それぞれの色成分チャネルを独立に処理する場合、それぞれのチャネルに独立に本技術を適用することもできる。
更に、また、画像復号装置300においても、階層画像符号化(スケーラブル符号化)・階層画像復号(スケーラブル復号)を行う場合、ベースレイヤ(baselayer)のみにおいて、例えば閾値やビット深度等のパラメータやフラグ等を伝送するようにし、ノンベースレイヤ(エンハンスメントレイヤ(enhancementlayer))においては、ベースレイヤにおいて伝送されたパラメータやフラグが参照されるようにしても良い。
<閾値設定部・フィルタ処理部>
図24は、図23の閾値設定部321が復号された画像データのビット深度に応じて閾値を設定する場合の、閾値設定部321およびフィルタ処理部322の主な構成例を示すブロック図である。
図24の例の場合、閾値設定部321は、ビット深度判定部331および閾値ビットシフト部332を有する。
ビット深度判定部331は、画像データのビット深度を判定し、そのビット深度を示す情報を閾値ビットシフト部332に供給する。
例えば、ビット深度判定部331は、符号化側(例えば画像符号化装置100)から、例えばシーケンスパラメータセット等として伝送された画像データのビット深度に関する情報を可逆復号部302から取得し、そのビット深度に関する情報に基づいて、画像データのビット深度を判定する。また、例えば、ビット深度判定部331は、フレームメモリ309から復号画像の画像情報を取得し、その画像情報に基づいて画像データのビット深度を判定する。
閾値ビットシフト部332は、ビット深度判定部331から供給されたビット深度を示す情報に応じて、予め定められた所定の閾値(初期値)をビットシフトすることにより、閾値の更新(変更)を行う。
例えば、閾値ビットシフト部332には、ビット深度が8ビットの場合に適した値(符号化側(例えば画像符号化装置100)に設定された初期値と同じ値)が、閾値の初期値として予め設定されている。閾値ビットシフト部332は、ビット深度判定部331からビット深度を示す情報を取得すると、その情報が示す画像データのビット深度と、8ビットとのビット数の差分だけ、初期値をビットシフトする。
閾値ビットシフト部332は、更新(変更)後の閾値を示す情報(閾値情報)をフィルタ処理部322の周辺画素判定部342に供給する。
また、図11に示されるように、フィルタ処理部322は、モード・ブロックサイズバッファ341、周辺画素判定部342、フィルタ決定部343、ローパスフィルタ部344、およびバイリニアフィルタ部345を有する。
フィルタ処理部322は、フィルタ処理部122と同様の処理部であり、同様の処理を行う。つまり、モード・ブロックサイズバッファ341、周辺画素判定部342、フィルタ決定部343、ローパスフィルタ部344、およびバイリニアフィルタ部345は、それぞれ、周辺画素判定部142、フィルタ決定部143、ローパスフィルタ部144、およびバイリニアフィルタ部145と同様の処理部である。
モード・ブロックサイズバッファ341は、イントラ予測部310から、候補となる予測モードに関する、カレントブロックのブロックサイズおよびモードに関する情報(モード・ブロックサイズ)を取得し、保持する。
モード・ブロックサイズバッファ341は、所定のタイミングにおいて、若しくは、他からの要求に基づいて、保持しているブロックサイズに関する情報(ブロックサイズ)を周辺画素判定部342に供給する。また、モード・ブロックサイズバッファ341は、所定のタイミングにおいて、若しくは、他からの要求に基づいて、保持しているモードに関する情報(モード)およびブロックサイズに関する情報(ブロックサイズ)をフィルタ決定部343に供給する。
周辺画素判定部342は、イントラ予測部310から、候補となる予測モードに関する、カレントブロックの上辺および左辺に隣接する周辺画素を取得する。また、周辺画素判定部342は、閾値ビットシフト部332から閾値情報を取得する。さらに、周辺画素判定部342は、モード・ブロックサイズバッファ341からブロックサイズに関する情報(ブロックサイズ)を取得する。
周辺画素判定部342は、モード・ブロックサイズバッファ341から取得したブロックサイズに関する情報に基づいて、カレントブロックが所定のサイズ(例えば32×32)(若しくは、所定の範囲内のサイズ)のモードである場合、閾値ビットシフト部332から取得した閾値情報を用いて、イントラ予測部310から取得した周辺画素に対するフィルタ処理に用いるフィルタの選択のための閾値判定処理を行う。つまり、周辺画素判定部342は、周辺画素の特徴(例えば、明度・色彩・濃度等の変化が平坦な部分の画素であるか否か)を判定する。
周辺画素判定部342は、その判定結果をフィルタ決定部343に供給する。また、周辺画素判定部342は、イントラ予測部310から取得したカレントブロックの周辺画素を、ローパスフィルタ部344およびバイリニアフィルタ部345に供給する。
フィルタ決定部343は、モード・ブロックサイズバッファ341からモードに関する情報(モード)およびブロックサイズに関する情報(ブロックサイズ)を取得する。また、フィルタ決定部343は、周辺画素判定部342から閾値判定処理の判定結果を取得する。フィルタ決定部343は、それらを用いて、実行するフィルタ処理の種類やそのかけ方を決定する。例えば、フィルタ決定部343は、ローパスフィルタ処理およびバイリニアフィルタ処理のいずれを、カレントブロックの周辺画素に対してかけるか、さらに、どのようにそのフィルタ処理を行うか等を決定する。
フィルタ決定部343は、その決定に従って、フィルタ処理の実行を制御する制御情報を、ローパスフィルタ部344およびバイリニアフィルタ部345に供給する。つまり、フィルタ決定部343は、ローパスフィルタ部344およびバイリニアフィルタ部345の内、選択した処理部に、そのフィルタ処理をどのように実行するかを指示する制御情報を供給し、選択しなかった処理部に、フィルタ処理の停止を指示する制御情報(すなわち、フィルタ処理を実行させないようにする制御情報)を供給する。
ローパスフィルタ部344は、フィルタ決定部343から供給される制御情報に従って、周辺画素判定部342から供給されるカレントブロックの周辺画素に対して、図5を参照して説明したようなローパスフィルタ処理を行う。ローパスフィルタ部344は、ローパスフィルタ処理を施した周辺画素(フィルタ処理後周辺画素)をイントラ予測部310に供給する。
バイリニアフィルタ部345は、フィルタ決定部343から供給される制御情報に従って、周辺画素判定部342から供給されるカレントブロックの周辺画素に対して、式(5)乃至式(9)を参照して説明したようなバイリニアフィルタ処理を行う。バイリニアフィルタ部345は、バイリニアフィルタ処理を施した周辺画素(フィルタ処理後周辺画素)をイントラ予測部310に供給する。
以上のようにすることにより、閾値設定部321は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができ、フィルタ処理部322は、画像データのビット深度に対して適切なフィルタを選択し、周辺画素に対して、そのフィルタを用いてフィルタ処理を行うことができ、イントラ予測部310は、画像データのビット深度に対して適切なフィルタ処理が施された周辺画素を用いて予測画像を生成することができる。つまり、このようにすることにより、画像復号装置300は、復号画像の画質の低減を抑制することができる。
<復号処理の流れ>
次に、以上のような画像復号装置300により実行される復号処理の流れの例を、図25のフローチャートを参照して説明する。
復号処理が開始されると、ステップS301において、蓄積バッファ301は、伝送されてきたビットストリームを蓄積する。ステップS302において、可逆復号部302は、蓄積バッファ301から供給されるビットストリーム(符号化された差分画像情報)を復号する。すなわち、図10の可逆符号化部106により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。このとき、ヘッダ情報などのビットストリームに含められた差分画像情報以外の各種情報も復号される。
ステップS303において、閾値設定部321は、画像データが符号化された符号化データを復号する際のイントラ予測処理におけるカレントブロックの周辺画素の特徴を識別するための閾値を設定する。
ステップS304において、逆量子化部303は、ステップS302の処理により得られた、量子化された係数を逆量子化する。
ステップS305において、逆直交変換部304は、ステップS304において逆量子化された係数を逆直交変換する。
ステップS306において、イントラ予測部310若しくはインター予測部311は、予測処理を行い、予測画像を生成する。つまり、可逆復号部302において判定された、符号化の際に適用された予測モードで予測処理が行われる。より具体的には、例えば、符号化の際にイントラ予測が適用された場合、イントラ予測部310が、符号化の際に最適とされたイントラ予測モードで予測画像を生成する。また、例えば、符号化の際にインター予測が適用された場合、インター予測部311が、符号化の際に最適とされたインター予測モードで予測画像を生成する。
ここで、イントラ予測部310がイントラ予測を行う場合、フィルタ処理部322が、ステップS303において設定された閾値を用いて、カレントブロックの周辺画素に対するフィルタ処理を行う場合もある。このフィルタ処理が行われた場合、イントラ予測部310は、そのフィルタ処理された周辺画素を用いてイントラ予測を行う。
ステップS307において、演算部305は、ステップS305において逆直交変換されて得られた差分画像情報に、ステップS306において生成された予測画像を加算する。これにより元の画像が復号される。
ステップS308において、ループフィルタ306は、ステップS307の処理により得られた再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行う。
ステップS309において、画面並べ替えバッファ307は、ステップS308においてフィルタ処理された画像の並べ替えを行う。すなわち画像符号化装置100の画面並べ替えバッファ102により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS310において、D/A変換部308は、ステップS309においてフレームの順序が並べ替えられた画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
ステップS311において、フレームメモリ309は、ステップS308においてフィルタ処理された画像を記憶する。
ステップS311の処理が終了すると、復号処理が終了される。
<閾値設定処理の流れ>
次に、図26のフローチャートを参照して、図24の例の閾値設定部321が、シーケンスパラメータセット等として符号化側から伝送されたビット深度に関する情報に基づいて画像データのビット深度を判定する例について、図25のステップS303において実行される閾値設定処理の流れの例を説明する。なお、図26においては、閾値変更フラグが符号化側から伝送される場合について説明する。
閾値設定処理が開始されると、ステップS331において、ビット深度判定部331は、符号化側(例えば画像符号化装置100)から伝送された閾値変更フラグを可逆復号部302から取得する。
ステップS332において、ビット深度判定部331は、ステップS331において取得した閾値変更フラグの値に基づいて、予め用意されている初期値を閾値として設定するか否かを判定する。閾値を更新すると判定された場合、処理はステップS333に進む。
ステップS333において、ビット深度判定部331は、例えばシーケンスパラメータセット(SPS)等として符号化側から伝送されたビット深度に関する情報を可逆復号部302から取得する。
ステップS334において、ビット深度判定部331は、ステップS333において取得したビット深度に関する情報に基づいて、画像データのビット深度を判定する。
ステップS335において、閾値ビットシフト部332は、ステップS334の判定結果(判定されたビット深度)に応じて、閾値(初期値)をビットシフトする。閾値ビットシフト部332は、更新された閾値をフィルタ処理部322の周辺画素判定部342に供給する。
ステップS335の処理が終了すると、閾値設定処理が終了し、処理は、図25に戻る。また、ステップS331において、閾値として初期値を設定すると判定された場合、閾値設定処理が終了し、処理は、図25に戻る。
以上のように閾値設定処理を実行することにより、閾値設定部321は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができる。
なお、閾値変更フラグが符号化側から伝送されない場合、上述したステップS331の処理を省略することができる。その場合、ステップS332の判定は、例えば、ビット深度に関する情報等、閾値変更フラグ以外の情報に基づいて行われる。
<予測処理の流れ>
次に、図27のフローチャートを参照して、図25のステップS306において実行される予測処理の流れの例を説明する。
予測処理が開始されると、可逆復号部302は、ステップS351において、符号化側から伝送された最適予測モード情報等に基づいて、最適予測モードがイントラ予測モードであるか否かを判定する。最適予測モードがイントラ予測であると判定された場合、処理は、ステップS352に進む。
ステップS352において、イントラ予測部310は、イントラ予測を行い、予測画像を生成する。その際、フィルタ処理部322は、図25のステップS303において設定された閾値を用いて、カレントブロックの周辺画素に対するフィルタ処理を行う場合もある。そのフィルタ処理が行われた場合、イントラ予測部310は、そのフィルタ処理された周辺画素を用いてイントラ予測を行う。ステップS352の処理が終了すると、予測処理が終了し、処理は、図25に戻る。
また、ステップS351において、最適予測モードがインター予測であると判定された場合、処理は、ステップS353に進む。
ステップS353において、インター予測部311は、インター予測を行い、予測画像を生成する。つまり、インター予測部311は、符号化側から伝送された動きベクトル情報等を用いて補償処理を行う等して予測画像を生成する。ステップS353の処理が終了すると、予測処理が終了し、処理は、図25に戻る。
<イントラ予測処理の流れ>
次に、図28のフローチャートを参照して、図27のステップS352において実行されるイントラ予測処理の流れの例を説明する。
イントラ予測処理が開始されると、ステップS371において、イントラ予測部310は、符号化側から最適予測モード情報として伝送された、最適イントラ予測モード(採用されたイントラ予測モード)を示すイントラモード情報を可逆復号部302から取得する。
ステップS372において、周辺画素判定部342は、モード・ブロックサイズバッファ341から取得したブロックサイズ、および、閾値ビットシフト部332から取得した閾値情報に基づいて、イントラ予測部310から取得したカレントブロックの周辺画素の特徴(例えば、カレントブロック周辺が、明度・色彩・濃度等が平坦な部分であるか否か)を判定する。
ステップS373において、フィルタ決定部343は、モード・ブロックサイズバッファ341から取得したモードおよびブロックサイズ、並びに、ステップS372の判定結果に基づいて、カレントブロックの周辺画素に対して使用するフィルタを決定する。
ステップS374において、ローパスフィルタ部344およびバイリニアフィルタ部345の内、ステップS373の処理により選択された方は、カレントブロックの周辺画素に対してフィルタ処理を行う。例えば、ステップS373においてローパスフィルタが選択された場合、ステップS374において、ローパスフィルタ部344は、フィルタ決定部343により決定されたかけ方で、周辺画素に対してローパスフィルタ処理を行う。また、例えば、ステップS373においてバイリニアフィルタが選択された場合、ステップS374において、バイリニアフィルタ部345は、フィルタ決定部343により決定されたかけ方で、周辺画素に対してバイリニアフィルタ処理を行う。
なお、これらのフィルタ処理は、一部のモードに対して省略することもできる。
ステップS375において、イントラ予測部310は、ステップS374においてフィルタ処理された周辺画素(省略された場合は、フィルタ処理されていない周辺画素)を用いて、ステップS351において取得したイントラモード情報において指定される最適イントラ予測モードでイントラ予測を行い、予測画像を生成する。
ステップS375の処理が終了すると、イントラ予測処理が終了し、処理は、図27に戻る。
以上のようにイントラ予測処理を実行することにより、フィルタ処理部322は、画像データのビット深度に対して適切なフィルタを選択し、周辺画素に対して、そのフィルタを用いてフィルタ処理を行うことができ、イントラ予測部310は、画像データのビット深度に対して適切なフィルタ処理が施された周辺画素を用いて予測画像を生成することができる。
つまり、以上のように各処理を実行することにより、画像復号装置300は、復号画像の画質の低減を抑制することができる。
<閾値設定処理の流れ>
次に、図29のフローチャートを参照して、図24の例の閾値設定部321が、画像情報に基づいて画像データのビット深度を判定する例について、図25のステップS303において実行される閾値設定処理の流れの例を説明する。なお、図29においては、閾値変更フラグが符号化側から伝送される場合について説明する。
図29の例の場合、ステップS391、ステップS392、およびステップS395の各処理は、図26の例の、ステップS331、ステップS332、およびステップS335の各処理と同様に実行される。
図29のステップS392において閾値を更新すると判定された場合、処理はステップS393に進む。
ステップS393において、ビット深度判定部331は、フレームメモリ309から復号画像の画像情報を取得する。
ステップS394において、ビット深度判定部331は、ステップS393において取得した画像情報に基づいて画像データのビット深度を判定する。ステップS394の処理が終了すると、処理は、ステップS395に進む。
そのステップS395の処理が終了すると、閾値設定処理が終了し、処理は、図25に戻る。また、ステップS392において、閾値として初期値を設定すると判定された場合、閾値設定処理が終了し、処理は、図25に戻る。
このようにしても、閾値設定部321は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができる。したがって、この場合も、画像復号装置300は、復号画像の画質の低減を抑制することができる。
なお、閾値変更フラグが符号化側から伝送されない場合、上述したステップS391の処理を省略することができる。その場合、ステップS392の判定は、例えば、画像情報等、閾値変更フラグ以外の情報に基づいて行われる。
<閾値設定部・フィルタ処理部>
図30は、図23の閾値設定部321が符号化側から伝送されたビット深度に基づいて閾値を設定する場合の、閾値設定部321およびフィルタ処理部322の主な構成例を示すブロック図である。
図30の例の場合、閾値設定部321は、復号部351および閾値ビットシフト部332を有する。
復号部351は、符号化側から伝送されるビット深度符号化情報を取得し、それを復号してビット深度を示す情報を得る。例えば、復号部351は、ゴロム符号であるビット深度符号化情報をゴロム復号してビット深度を示す情報を得る。復号部351は、得たビット深度を示す情報を閾値ビットシフト部332に供給する。
閾値ビットシフト部332は、復号部351から供給されたビット深度を示す情報に応じて、予め定められた閾値(初期値)をビットシフトする。閾値ビットシフト部332は、ビットシフト後の閾値(更新後の閾値)を示す閾値情報を周辺画素判定部342に供給する。
なお、復号部351が、符号化側から伝送される閾値変更フラグを可逆復号部302からさらに取得し、その値に応じて、閾値を更新するか否かを決定するようにしてもよい。
また、復号部351が、符号化側から伝送される閾値符号化情報をさらに取得し、それを復号して、更新前の閾値を示す閾値情報を得るようにしてもよい。例えば、復号部351は、ゴロム符号である閾値符号化情報をゴロム復号して、符号化側において設定された更新前の閾値を示す閾値情報を得るようにしてもよい。その場合、復号部351は、得た閾値情報を閾値ビットシフト部332に供給する。
その場合、閾値ビットシフト部332は、復号部351から供給されたビット深度を示す情報に応じて、復号部351から供給された閾値情報が示す更新前の閾値をビットシフトする。閾値ビットシフト部332は、ビットシフト後の閾値(更新後の閾値)を示す閾値情報を周辺画素判定部342に供給する。
なお、フィルタ処理部322は、図24の場合と同様の構成を有し、図24の場合と同様の処理を行う。
以上のようにすることにより、閾値設定部321は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができ、フィルタ処理部122は、画像データのビット深度に対して適切なフィルタを選択し、周辺画素に対して、そのフィルタを用いてフィルタ処理を行うことができ、イントラ予測部310は、画像データのビット深度に対して適切なフィルタ処理が施された周辺画素を用いて予測画像を生成することができる。つまり、このようにすることにより、画像復号装置300は、復号画像の画質の低減を抑制することができる。
また、図30の例の場合、閾値設定部321が、符号化側において設定された閾値を用いることができるので、イントラ予測部310は、その符号化側による画質の指定を予測画像に反映させることができる。つまり、画像復号装置300は、符号化側による画質の制御を復号画像に反映させることができる。
<閾値設定処理の流れ>
次に、図31のフローチャートを参照して、図30の例の閾値設定部321が、符号化側において指定されるビット深度に基づいて閾値を更新する例について、図25のステップS303において実行される閾値設定処理の流れの例を説明する。なお、図31においては、閾値変更フラグが符号化側から伝送される場合について説明する。
図31の例の場合、ステップS411およびステップS412の各処理は、図26の例の、ステップS331およびステップS332の各処理と同様に実行される。
図31のステップS412において閾値を更新すると判定された場合、処理はステップS413に進む。
ステップS413において、復号部351は、可逆復号部302からビット深度符号化情報を取得する。
ステップS414において、復号部351は、ステップS413において取得したビット深度符号化情報を復号する。
ステップS415において、閾値ビットシフト部332は、ステップS414において得られたビット深度に応じて、予め用意された閾値(初期値)をビットシフトする。
そのステップS415の処理が終了すると、閾値設定処理が終了し、処理は、図25に戻る。また、ステップS412において、閾値として初期値を設定すると判定された場合、閾値設定処理が終了し、処理は、図25に戻る。
このようにしても、閾値設定部321は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができる。したがって、この場合も、画像復号装置300は、復号画像の画質の低減を抑制することができる。
なお、閾値変更フラグが符号化側から伝送されない場合、上述したステップS411の処理を省略することができる。その場合、ステップS412の判定は、例えば、ビット深度符号化情報等、閾値変更フラグ以外の情報に基づいて行われる。
<閾値設定処理の流れ>
次に、図32のフローチャートを参照して、図30の例の閾値設定部321が、符号化側において指定されるビット深度に基づいて、符号化側において設定された閾値を更新する例について、図25のステップS303において実行される閾値設定処理の流れの例を説明する。なお、図32においては、閾値変更フラグが符号化側から伝送される場合について説明する。
図32の例の場合、ステップS431乃至ステップS434の各処理は、図31の例の、ステップS411乃至ステップS414の各処理と同様に実行される。
図32のステップS434の処理が終了すると、処理はステップS435に進む。
ステップS435において、復号部351は、可逆復号部302から閾値符号化情報を取得する。
ステップS436において、復号部351は、ステップS435において取得した閾値符号化情報を復号し、更新前の閾値を示す閾値情報を得る。
ステップS437において、閾値ビットシフト部332は、ステップS434において得られたビット深度に応じて、ステップS436において得られた更新前の閾値をビットシフトする。
そのステップS437の処理が終了すると、閾値設定処理が終了し、処理は、図25に戻る。また、ステップS432において、閾値として初期値を設定すると判定された場合、閾値設定処理が終了し、処理は、図25に戻る。
このようにしても、閾値設定部321は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができる。したがって、この場合も、画像復号装置300は、復号画像の画質の低減を抑制することができる。
また、閾値設定部321は、符号化側において設定された閾値を用いることができる。したがって、画像復号装置300は、符号化側による画質の制御を復号画像に反映させることができる。
なお、閾値変更フラグが符号化側から伝送されない場合、上述したステップS431の処理を省略することができる。その場合、ステップS432の判定は、例えば、ビット深度符号化情報や閾値符号化情報等、閾値変更フラグ以外の情報に基づいて行われる。
<閾値設定部・フィルタ処理部>
図33は、図23の閾値設定部321が符号化側から伝送された更新後の閾値を、フィルタ処理部322において用いられる閾値として設定する場合の、閾値設定部321およびフィルタ処理部322の主な構成例を示すブロック図である。
図33の例の場合、閾値設定部321は、復号部361を有する。
復号部361は、符号化側から伝送される閾値符号化情報を取得し、それを復号して更新後の閾値を示す閾値情報を得る。例えば、復号部361は、ゴロム符号である閾値符号化情報をゴロム復号して閾値情報を得る。復号部361は、このようにして得た更新後の閾値を示す閾値情報を周辺画素判定部342に供給する。
なお、復号部361が、符号化側から伝送される閾値変更フラグを可逆復号部302からさらに取得し、その値に応じて、閾値を更新するか否かを決定するようにしてもよい。
なお、フィルタ処理部322は、図24の場合と同様の構成を有し、図24の場合と同様の処理を行う。
以上のようにすることにより、閾値設定部321は、符号化側において設定された閾値を、フィルタ処理部322が用いる閾値として設定することができるので、イントラ予測部310は、その符号化側による画質の指定を予測画像に反映させることができる。つまり、画像復号装置300は、符号化側による画質の制御を復号画像に反映させることができる。
<閾値設定処理の流れ>
次に、図34のフローチャートを参照して、図30の例の閾値設定部321が、符号化側において更新された閾値を、フィルタ処理部322が用いる閾値として設定する例について、図25のステップS303において実行される閾値設定処理の流れの例を説明する。なお、図34においては、閾値変更フラグが符号化側から伝送される場合について説明する。
図34の例の場合、ステップS451およびステップS452の各処理は、図32の例の、ステップS431およびステップS432の各処理と同様に実行される。
図34のステップS452において更新後の閾値を設定すると判定された場合、処理はステップS453に進む。
ステップS453において、復号部361は、可逆復号部302から閾値符号化情報を取得する。
ステップS454において、復号部361は、ステップS453において取得した閾値符号化情報を復号し、符号化側において更新された閾値を示す閾値情報を取得する。
ステップS454の処理が終了すると、閾値設定処理が終了し、処理は、図25に戻る。また、ステップS452において、閾値として初期値を設定すると判定された場合、閾値設定処理が終了し、処理は、図25に戻る。
このようにしても、閾値設定部321は、符号化側において設定された閾値を用いることができる。したがって、画像復号装置300は、符号化側による画質の制御を復号画像に反映させることができる。
なお、閾値変更フラグが符号化側から伝送されない場合、上述したステップS451の処理を省略することができる。その場合、ステップS452の判定は、例えば、閾値符号化情報等、閾値変更フラグ以外の情報に基づいて行われる。
<閾値設定部・フィルタ処理部>
図35は、図23の閾値設定部321が復号された画像データのビット深度に応じて、符号化側から伝送された更新前の閾値を更新する場合の、閾値設定部321およびフィルタ処理部322の主な構成例を示すブロック図である。
図35の例の場合、閾値設定部321は、ビット深度判定部331、閾値ビットシフト部332、および復号部351を有する。
ビット深度判定部331は、符号化側(例えば画像符号化装置100)から、例えばシーケンスパラメータセット等として伝送された画像データのビット深度に関する情報を可逆復号部302から取得し、そのビット深度に関する情報に基づいて、画像データのビット深度を判定する。また、例えば、ビット深度判定部331は、フレームメモリ309から復号画像の画像情報を取得し、その画像情報に基づいて画像データのビット深度を判定する。ビット深度判定部331は、以上のようにして判定したビット深度を示す情報を閾値ビットシフト部332に供給する。
復号部351は、符号化側から伝送される閾値符号化情報を取得し、それを復号して更新前の閾値を示す閾値情報を得る。例えば、復号部351は、ゴロム符号である閾値符号化情報をゴロム復号して閾値情報を得る。復号部351は、このようにして得た更新前の閾値を示す閾値情報を閾値ビットシフト部332に供給する。
閾値ビットシフト部332は、ビット深度判定部331から供給されたビット深度を示す情報に応じて、復号部351から供給される更新前の閾値をビットシフトすることにより、符号化側において設定された閾値の更新(変更)を行う。
例えば、閾値ビットシフト部332には、符号化側において設定された更新前の閾値として、ビット深度が8ビットの場合に適した値の閾値が復号部351から供給される。閾値ビットシフト部332は、ビット深度判定部331からビット深度を示す情報を取得すると、その情報が示す画像データのビット深度と、8ビットとのビット数の差分だけ、更新前の閾値をビットシフトする。
閾値ビットシフト部332は、更新(変更)後の閾値を示す情報(閾値情報)をフィルタ処理部322の周辺画素判定部342に供給する。
なお、ビット深度判定部331が、符号化側から伝送される閾値変更フラグを可逆復号部302からさらに取得し、その値に応じて、閾値を更新するか否かを決定するようにしてもよい。
なお、フィルタ処理部322は、図24の場合と同様の構成を有し、図24の場合と同様の処理を行う。
以上のようにすることにより、閾値設定部321は、符号化側において設定された閾値を、画像データのビット深度に応じて更新することができ、フィルタ処理部122は、画像データのビット深度に対して適切なフィルタを選択し、周辺画素に対して、そのフィルタを用いてフィルタ処理を行うことができ、イントラ予測部310は、画像データのビット深度に対して適切なフィルタ処理が施された周辺画素を用いて予測画像を生成することができる。つまり、このようにすることにより、画像復号装置300は、復号画像の画質の低減を抑制することができる。
<閾値設定処理の流れ>
次に、図36のフローチャートを参照して、図35の例の閾値設定部321が、画像データのビット深度に基づいて、符号化側において設定された閾値を更新する例について、図25のステップS303において実行される閾値設定処理の流れの例を説明する。なお、図36においては、閾値変更フラグが符号化側から伝送される場合について説明する。
図36の例の場合、ステップS471乃至ステップS474の各処理は、図26の例の、ステップS331乃至ステップS334の各処理と同様に実行される。
また、図36の例の場合、ステップS475およびステップS476の各処理は、図32の例の、ステップS435およびステップS436の各処理と同様に実行される。
図36のステップS476の処理が終了すると、処理はステップS477に進む。
ステップS477において、閾値ビットシフト部332は、ステップS474において得られたビット深度に応じて、ステップS476において得られた更新前の閾値をビットシフトする。
そのステップS477の処理が終了すると、閾値設定処理が終了し、処理は、図25に戻る。また、ステップS472において、閾値として初期値を設定すると判定された場合、閾値設定処理が終了し、処理は、図25に戻る。
このようにしても、閾値設定部321は、画像データのビット深度に応じた(ビット深度に対して適切な)閾値を設定することができる。したがって、この場合も、画像復号装置300は、復号画像の画質の低減を抑制することができる。
また、閾値設定部321は、符号化側において設定された閾値を用いることができる。したがって、画像復号装置300は、符号化側による画質の制御を復号画像に反映させることができる。
なお、閾値変更フラグが符号化側から伝送されない場合、上述したステップS471の処理を省略することができる。その場合、ステップS472の判定は、例えば、ビット深度に関する情報や閾値符号化情報等、閾値変更フラグ以外の情報に基づいて行われる。
なお、ビット深度判定部331が画像情報に基づいてビット深度を判定する場合、ステップS473およびステップS474の処理の代わりに、図29のステップS393およびステップS394の処理を実行すればよい。
以上のように、本技術の適用範囲は、イントラ予測を用いて画像を符号化・復号するあらゆる画像符号化装置及び画像復号装置に適用することができる。
また、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本技術は、それらの画像符号化装置および画像復号装置などに含まれるイントラ予測装置にも適用することができる。
<3.第3の実施の形態>
<多視点画像符号化・多視点画像復号への適用>
上述した一連の処理は、多視点画像符号化・多視点画像復号に適用することができる。図37は、多視点画像符号化方式の一例を示す。
図37に示されるように、多視点画像は、複数の視点(ビュー(view))の画像を含む。この多視点画像の複数のビューは、他のビューの画像を利用せずに自身のビューの画像のみを用いて符号化・復号を行うベースビューと、他のビューの画像を利用して符号化・復号を行うノンベースビューとによりなる。ノンベースビューは、ベースビューの画像を利用するようにしても良いし、他のノンベースビューの画像を利用するようにしてもよい。
図37のような多視点画像を符号化・復号する場合、各ビューの画像を符号化・復号するが、この各ビューの符号化・復号に対して、第1の実施の形態および第2の実施の形態において上述した方法を適用するようにしてもよい。このようにすることにより、各ビューの画質の低減を抑制することができる。
さらに、各ビューの符号化・復号において、第1の実施の形態および第2の実施の形態において上述した方法において使用されるフラグやパラメータを共有するようにしてもよい。このようにすることにより、冗長な情報の伝送を抑制し、伝送する情報量(符号量)を低減することができる(つまり、符号化効率の低減を抑制することができる)。
より具体的には、例えば、イントラ予測におけるカレントブロックの周辺画素に対するフィルタ処理の選択に利用する閾値、画像データのビット深度、または、閾値を変更したことを示す閾値変更フラグ等を、各ビューの符号化・復号において共有するようにしてもよい。
もちろん、これら以外の必要な情報も、各ビューの符号化・復号において共有するようにしてもよい。
<多視点画像符号化装置>
図38は、上述した多視点画像符号化を行う多視点画像符号化装置を示す図である。図38に示されるように、多視点画像符号化装置600は、符号化部601、符号化部602、および多重化部603を有する。
符号化部601は、ベースビュー画像を符号化し、ベースビュー画像符号化ストリームを生成する。符号化部602は、ノンベースビュー画像を符号化し、ノンベースビュー画像符号化ストリームを生成する。多重化部603は、符号化部601において生成されたベースビュー画像符号化ストリームと、符号化部602において生成されたノンベースビュー画像符号化ストリームとを多重化し、多視点画像符号化ストリームを生成する。
この多視点画像符号化装置600の符号化部601および符号化部602に対して、画像符号化装置100(図10)を適用することができる。つまり、各ビューに対する符号化において、イントラ予測のフィルタ処理の選択に利用する閾値を制御することができ、各ビューの画質の低減を抑制することができる。また、符号化部601および符号化部602は、互いに同一のフラグやパラメータ(例えば、閾値やビット深度等)を用いて、イントラ予測のフィルタ処理の制御等を行うことができる(すなわち、フラグやパラメータを共有することができる)ので、符号化効率の低減を抑制することができる。
<多視点画像復号装置>
図39は、上述した多視点画像復号を行う多視点画像復号装置を示す図である。図39に示されるように、多視点画像復号装置610は、逆多重化部611、復号部612、および復号部613を有する。
逆多重化部611は、ベースビュー画像符号化ストリームとノンベースビュー画像符号化ストリームとが多重化された多視点画像符号化ストリームを逆多重化し、ベースビュー画像符号化ストリームと、ノンベースビュー画像符号化ストリームとを抽出する。復号部612は、逆多重化部611により抽出されたベースビュー画像符号化ストリームを復号し、ベースビュー画像を得る。復号部613は、逆多重化部611により抽出されたノンベースビュー画像符号化ストリームを復号し、ノンベースビュー画像を得る。
この多視点画像復号装置610の復号部612および復号部613に対して、画像復号装置300(図23)を適用することができる。つまり、各ビューに対する復号において、イントラ予測のフィルタ処理の選択に利用する閾値を制御することができ、各ビューの画質の低減を抑制することができる。また、復号部612および復号部613は、互いに同一のフラグやパラメータ(例えば、閾値やビット深度等)を用いて、イントラ予測のフィルタ処理の制御等を行うことができる(すなわち、フラグやパラメータを共有することができる)ので、符号化効率の低減を抑制することができる。
<4.第4の実施の形態>
<階層画像符号化・階層画像復号への適用>
上述した一連の処理は、階層画像符号化・階層画像復号(スケーラブル符号化・スケーラブル復号)に適用することができる。図40は、階層画像符号化方式の一例を示す。
階層画像符号化(スケーラブル符号化)は、画像データを、所定のパラメータについてスケーラビリティ(scalability)機能を有するように、画像を複数レイヤ化(階層化)し、レイヤ毎に符号化するものである。階層画像復号は、その階層画像符号化(スケーラブル復号)は、その階層画像符号化に対応する復号である。
図40に示されるように、画像の階層化においては、スケーラビリティ機能を有する所定のパラメータを基準として1の画像が複数の画像(レイヤ)に分割される。つまり、階層化された画像(階層画像)は、その所定のパラメータの値が互いに異なる複数の階層(レイヤ)の画像を含む。この階層画像の複数のレイヤは、他のレイヤの画像を利用せずに自身のレイヤの画像のみを用いて符号化・復号を行うベースレイヤと、他のレイヤの画像を利用して符号化・復号を行うノンベースレイヤ(エンハンスメントレイヤとも称する)とによりなる。ノンベースレイヤは、ベースレイヤの画像を利用するようにしても良いし、他のノンベースレイヤの画像を利用するようにしてもよい。
一般的に、ノンベースレイヤは、冗長性が低減されるように、自身の画像と、他のレイヤの画像との差分画像のデータ(差分データ)により構成される。例えば、1の画像をベースレイヤとノンベースレイヤ(エンハンスメントレイヤとも称する)に2階層化した場合、ベースレイヤのデータのみで元の画像よりも低品質な画像が得られ、ベースレイヤのデータとノンベースレイヤのデータを合成することで、元の画像(すなわち高品質な画像)が得られる。
このように画像を階層化することにより、状況に応じて多様な品質の画像を容易に得ることができる。例えば携帯電話のような、処理能力の低い端末に対しては、ベースレイヤ(base layer)のみの画像圧縮情報を伝送し、空間時間解像度の低い、或いは、画質の良くない動画像を再生し、テレビやパーソナルコンピュータのような、処理能力の高い端末に対しては、ベースレイヤ(base layer)に加えて、エンハンスメントレイヤ(enhancement layer)の画像圧縮情報を伝送し、空間時間解像度の高い、或いは、画質の高い動画像を再生するといったように、トランスコード処理を行うことなく、端末やネットワークの能力に応じた画像圧縮情報を、サーバから送信することが可能となる。
図40の例のような階層画像を符号化・復号する場合、各レイヤの画像を符号化・復号するが、この各レイヤの符号化・復号に対して、第1の実施の形態および第2の実施の形態において上述した方法を適用するようにしてもよい。このようにすることにより、各レイヤの画質の低減を抑制することができる。
さらに、各レイヤの符号化・復号において、第1の実施の形態および第2の実施の形態において上述した方法において使用されるフラグやパラメータを共有するようにしてもよい。このようにすることにより、冗長な情報の伝送を抑制し、伝送する情報量(符号量)を低減することができる(つまり、符号化効率の低減を抑制することができる)。
より具体的には、例えば、イントラ予測におけるカレントブロックの周辺画素に対するフィルタ処理の選択に利用する閾値、画像データのビット深度、または、閾値を変更したことを示す閾値変更フラグ等を、各レイヤの符号化・復号において共有するようにしてもよい。
もちろん、これら以外の必要な情報も、各レイヤの符号化・復号において共有するようにしてもよい。
<スケーラブルなパラメータ>
このような階層画像符号化・階層画像復号(スケーラブル符号化・スケーラブル復号)において、スケーラビリティ(scalability)機能を有するパラメータは、任意である。例えば、図41に示されるような空間解像度をそのパラメータとしてもよい(spatial scalability)。このスペーシャルスケーラビリティ(spatial scalability)の場合、レイヤ毎に画像の解像度が異なる。つまり、図41に示されるように、各ピクチャが、元の画像より空間的に低解像度のベースレイヤと、ベースレイヤの画像と合成することにより元の画像(元の空間解像度)が得られるエンハンスメントレイヤの2階層に階層化される。もちろん、この階層数は一例であり、任意の階層数に階層化することができる。
また、このようなスケーラビリティ性を持たせるパラメータとして、他には、例えば、図42に示されるような、時間解像度を適用しても良い(temporal scalability)。このテンポラルスケーラビリティ(temporal scalability)の場合、レイヤ毎にフレームレートが異なる。つまり、この場合、図42に示されるように、互いに異なるフレームレートのレイヤに階層化されており、低フレームレートのレイヤに、高フレームレートのレイヤを加えることで、より高フレームレートの動画像を得ることができ、全てのレイヤを加えることで、元の動画像(元のフレームレート)を得ることができる。この階層数は一例であり、任意の階層数に階層化することができる。
さらに、このようなスケーラビリティ性を持たせるパラメータとして、例えば、信号雑音比(SNR(Signal to Noise ratio))を適用しても良い(SNR scalability)。このSNRスケーラビリティ(SNR scalability)の場合、レイヤ毎にSN比が異なる。つまり、図43に示されるように、各ピクチャが、元の画像よりSNRの低いベースレイヤと、ベースレイヤの画像と合成することにより元の画像(元のSNR)が得られるエンハンスメントレイヤの2階層に階層化される。すなわち、ベースレイヤ(base layer)画像圧縮情報においては、低PSNRの画像に関する情報が伝送されており、これに、エンハンスメントレイヤ(enhancement layer)画像圧縮情報を加えることで、高PSNR画像を再構築することが可能である。もちろん、この階層数は一例であり、任意の階層数に階層化することができる。
スケーラビリティ性を持たせるパラメータは、上述した例以外であっても、もちろんよい。例えば、ベースレイヤ(base layer)が8ビット(bit)画像よりなり、これにエンハンスメントレイヤ(enhancement layer)を加えることにより、10ビット(bit)画像が得られるビット深度スケーラビリティ(bit-depth scalability)がある。
また、ベースレイヤ(base layer)が4:2:0フォーマットのコンポーネント画像よりなり、これにエンハンスメントレイヤ(enhancement layer)を加えることにより、4:2:2フォーマットのコンポーネント画像が得られるクロマスケーラビリティ(chroma scalability)がある。
<階層画像符号化装置>
図44は、上述した階層画像符号化を行う階層画像符号化装置を示す図である。図44に示されるように、階層画像符号化装置620は、符号化部621、符号化部622、および多重化部623を有する。
符号化部621は、ベースレイヤ画像を符号化し、ベースレイヤ画像符号化ストリームを生成する。符号化部622は、ノンベースレイヤ画像を符号化し、ノンベースレイヤ画像符号化ストリームを生成する。多重化部623は、符号化部621において生成されたベースレイヤ画像符号化ストリームと、符号化部622において生成されたノンベースレイヤ画像符号化ストリームとを多重化し、階層画像符号化ストリームを生成する。
この階層画像符号化装置620の符号化部621および符号化部622に対して、画像符号化装置100(図10)を適用することができる。つまり、各レイヤに対する符号化において、イントラ予測のフィルタ処理の選択に利用する閾値を制御することができ、各レイヤの画質の低減を抑制することができる。また、符号化部621および符号化部622は、互いに同一のフラグやパラメータ(例えば、閾値やビット深度等)を用いて、イントラ予測のフィルタ処理の制御等を行うことができる(すなわち、フラグやパラメータを共有することができる)ので、符号化効率の低減を抑制することができる。
<階層画像復号装置>
図45は、上述した階層画像復号を行う階層画像復号装置を示す図である。図45に示されるように、階層画像復号装置630は、逆多重化部631、復号部632、および復号部633を有する。
逆多重化部631は、ベースレイヤ画像符号化ストリームとノンベースレイヤ画像符号化ストリームとが多重化された階層画像符号化ストリームを逆多重化し、ベースレイヤ画像符号化ストリームと、ノンベースレイヤ画像符号化ストリームとを抽出する。復号部632は、逆多重化部631により抽出されたベースレイヤ画像符号化ストリームを復号し、ベースレイヤ画像を得る。復号部633は、逆多重化部631により抽出されたノンベースレイヤ画像符号化ストリームを復号し、ノンベースレイヤ画像を得る。
この階層画像復号装置630の復号部632および復号部633に対して、画像復号装置300(図23)を適用することができる。つまり、各レイヤに対する復号において、イントラ予測のフィルタ処理の選択に利用する閾値を制御することができ、各レイヤの画質の低減を抑制することができる。また、復号部612および復号部613は、互いに同一のフラグやパラメータ(例えば、閾値やビット深度等)を用いて、イントラ予測のフィルタ処理の制御等を行うことができる(すなわち、フラグやパラメータを共有することができる)ので、符号化効率の低減を抑制することができる。
また、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本技術は、それらの画像符号化装置および画像復号装置などに含まれる量子化装置若しくは逆量子化装置にも適用することができる。
<5.第5の実施の形態>
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
図46は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
図46に示されるコンピュータ800において、CPU(Central Processing Unit)801、ROM(Read Only Memory)802、RAM(Random Access Memory)803は、バス804を介して相互に接続されている。
バス804にはまた、入出力インタフェース810も接続されている。入出力インタフェース810には、入力部811、出力部812、記憶部813、通信部814、およびドライブ815が接続されている。
入力部811は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部812は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部813は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部814は、例えば、ネットワークインタフェースよりなる。ドライブ815は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア821を駆動する。
以上のように構成されるコンピュータでは、CPU801が、例えば、記憶部813に記憶されているプログラムを、入出力インタフェース810およびバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。RAM803にはまた、CPU801が各種の処理を実行する上において必要なデータなども適宜記憶される。
コンピュータ(CPU801)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア821に記録して適用することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア821をドライブ815に装着することにより、入出力インタフェース810を介して、記憶部813にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部814で受信し、記憶部813にインストールすることができる。その他、プログラムは、ROM802や記憶部813に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<6.応用例>
<第1の応用例:テレビジョン受像機>
図47は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
外部インタフェース909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
制御部910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
ユーザインタフェース911は、制御部910と接続される。ユーザインタフェース911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース909及び制御部910を相互に接続する。
このように構成されたテレビジョン装置900において、デコーダ904は、上述した実施形態に係る画像復号装置300(図23)の機能を有する。それにより、テレビジョン装置900での画像の復号に際して、画質の低減を抑制することができる。
<第2の応用例:携帯電話機>
図48は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929の記憶媒体に記憶させる。
記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Universal Serial Bus)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記憶再生部929の記憶媒体に記憶させる。
また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
このように構成された携帯電話機920において、画像処理部927は、上述した実施形態に係る画像符号化装置100(図10)及び画像復号装置300(図23)の機能を有する。それにより、携帯電話機920での画像の符号化及び復号に際して、画質の低減を抑制することができる。
<第3の応用例:記録再生装置>
図49は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
記録再生装置940は、チューナ941、外部インタフェース942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)948、制御部949、及びユーザインタフェース950を備える。
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送部としての役割を有する。
外部インタフェース942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース942を介して受信される映像データ及び音声データは、エンコーダ943へ入力される。即ち、外部インタフェース942は、記録再生装置940における伝送部としての役割を有する。
エンコーダ943は、外部インタフェース942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
HDD944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)又はBlu-ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD948へ出力する。また、デコーダ947は、生成した音声データを外部のスピーカへ出力する。
OSD948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
ユーザインタフェース950は、制御部949と接続される。ユーザインタフェース950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置100(図10)の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置300(図23)の機能を有する。それにより、記録再生装置940での画像の符号化及び復号に際して、画質の低減を抑制することができる。
<第4の応用例:撮像装置>
図50は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、制御部970、ユーザインタフェース971、及びバス972を備える。
光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、及び制御部970を相互に接続する。
光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース966又はメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース966又はメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
OSD969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
外部インタフェース966は、例えばUSB入出力端子として構成される。外部インタフェース966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース966は、撮像装置960における伝送部としての役割を有する。
メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース971から入力される操作信号に応じて、撮像装置960の動作を制御する。
ユーザインタフェース971は、制御部970と接続される。ユーザインタフェース971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
このように構成された撮像装置960において、画像処理部964は、上述した実施形態に係る画像符号化装置100(図10)及び画像復号装置300(図23)の機能を有する。それにより、撮像装置960での画像の符号化及び復号に際して、画質の低減を抑制することができる。
<7.スケーラブル符号化の応用例>
<第1のシステム>
次に、スケーラブル符号化(階層(画像)符号化)されたスケーラブル符号化データの具体的な利用例について説明する。スケーラブル符号化は、例えば、図51に示される例のように、伝送するデータの選択のために利用される。
図51に示されるデータ伝送システム1000において、配信サーバ1002は、スケーラブル符号化データ記憶部1001に記憶されているスケーラブル符号化データを読み出し、ネットワーク1003を介して、パーソナルコンピュータ1004、AV機器1005、タブレットデバイス1006、および携帯電話機1007等の端末装置に配信する。
その際、配信サーバ1002は、端末装置の能力や通信環境等に応じて、適切な品質の符号化データを選択して伝送する。配信サーバ1002が不要に高品質なデータを伝送しても、端末装置において高画質な画像を得られるとは限らず、遅延やオーバフローの発生要因となる恐れがある。また、不要に通信帯域を占有したり、端末装置の負荷を不要に増大させたりしてしまう恐れもある。逆に、配信サーバ1002が不要に低品質なデータを伝送しても、端末装置において十分な画質の画像を得ることができない恐れがある。そのため、配信サーバ1002は、スケーラブル符号化データ記憶部1001に記憶されているスケーラブル符号化データを、適宜、端末装置の能力や通信環境等に対して適切な品質の符号化データとして読み出し、伝送する。
例えば、スケーラブル符号化データ記憶部1001は、スケーラブルに符号化されたスケーラブル符号化データ(BL+EL)1011を記憶するとする。このスケーラブル符号化データ(BL+EL)1011は、ベースレイヤとエンハンスメントレイヤの両方を含む符号化データであり、復号することにより、ベースレイヤの画像およびエンハンスメントレイヤの画像の両方を得ることができるデータである。
配信サーバ1002は、データを伝送する端末装置の能力や通信環境等に応じて、適切なレイヤを選択し、そのレイヤのデータを読み出す。例えば、配信サーバ1002は、処理能力の高いパーソナルコンピュータ1004やタブレットデバイス1006に対しては、高品質なスケーラブル符号化データ(BL+EL)1011をスケーラブル符号化データ記憶部1001から読み出し、そのまま伝送する。これに対して、例えば、配信サーバ1002は、処理能力の低いAV機器1005や携帯電話機1007に対しては、スケーラブル符号化データ(BL+EL)1011からベースレイヤのデータを抽出し、スケーラブル符号化データ(BL+EL)1011と同じコンテンツのデータであるが、スケーラブル符号化データ(BL+EL)1011よりも低品質なスケーラブル符号化データ(BL)1012として伝送する。
このようにスケーラブル符号化データを用いることにより、データ量を容易に調整することができるので、遅延やオーバフローの発生を抑制したり、端末装置や通信媒体の負荷の不要な増大を抑制したりすることができる。また、スケーラブル符号化データ(BL+EL)1011は、レイヤ間の冗長性が低減されているので、各レイヤの符号化データを個別のデータとする場合よりもそのデータ量を低減させることができる。したがって、スケーラブル符号化データ記憶部1001の記憶領域をより効率よく使用することができる。
なお、パーソナルコンピュータ1004乃至携帯電話機1007のように、端末装置には様々な装置を適用することができるので、端末装置のハードウエアの性能は、装置によって異なる。また、端末装置が実行するアプリケーションも様々であるので、そのソフトウエアの能力も様々である。さらに、通信媒体となるネットワーク1003も、例えばインターネットやLAN(Local Area Network)等、有線若しくは無線、またはその両方を含むあらゆる通信回線網を適用することができ、そのデータ伝送能力は様々である。さらに、他の通信等によっても変化する恐れがある。
そこで、配信サーバ1002は、データ伝送を開始する前に、データの伝送先となる端末装置と通信を行い、端末装置のハードウエア性能や、端末装置が実行するアプリケーション(ソフトウエア)の性能等といった端末装置の能力に関する情報、並びに、ネットワーク1003の利用可能帯域幅等の通信環境に関する情報を得るようにしてもよい。そして、配信サーバ1002が、ここで得た情報を基に、適切なレイヤを選択するようにしてもよい。
なお、レイヤの抽出は、端末装置において行うようにしてもよい。例えば、パーソナルコンピュータ1004が、伝送されたスケーラブル符号化データ(BL+EL)1011を復号し、ベースレイヤの画像を表示しても良いし、エンハンスメントレイヤの画像を表示しても良い。また、例えば、パーソナルコンピュータ1004が、伝送されたスケーラブル符号化データ(BL+EL)1011から、ベースレイヤのスケーラブル符号化データ(BL)1012を抽出し、記憶したり、他の装置に転送したり、復号してベースレイヤの画像を表示したりするようにしてもよい。
もちろん、スケーラブル符号化データ記憶部1001、配信サーバ1002、ネットワーク1003、および端末装置の数はいずれも任意である。また、以上においては、配信サーバ1002がデータを端末装置に伝送する例について説明したが、利用例はこれに限定されない。データ伝送システム1000は、スケーラブル符号化された符号化データを端末装置に伝送する際、端末装置の能力や通信環境等に応じて、適切なレイヤを選択して伝送するシステムであれば、任意のシステムに適用することができる。
そして、以上のような図51のようなデータ伝送システム1000においても、図40乃至図45を参照して上述した階層符号化・階層復号への適用と同様に本技術を適用することにより、図40乃至図45を参照して上述した効果と同様の効果を得ることができる。
<第2のシステム>
また、スケーラブル符号化は、例えば、図52に示される例のように、複数の通信媒体を介する伝送のために利用される。
図52に示されるデータ伝送システム1100において、放送局1101は、地上波放送1111により、ベースレイヤのスケーラブル符号化データ(BL)1121を伝送する。また、放送局1101は、有線若しくは無線またはその両方の通信網よりなる任意のネットワーク1112を介して、エンハンスメントレイヤのスケーラブル符号化データ(EL)1122を伝送する(例えばパケット化して伝送する)。
端末装置1102は、放送局1101が放送する地上波放送1111の受信機能を有し、この地上波放送1111を介して伝送されるベースレイヤのスケーラブル符号化データ(BL)1121を受け取る。また、端末装置1102は、ネットワーク1112を介した通信を行う通信機能をさらに有し、このネットワーク1112を介して伝送されるエンハンスメントレイヤのスケーラブル符号化データ(EL)1122を受け取る。
端末装置1102は、例えばユーザ指示等に応じて、地上波放送1111を介して取得したベースレイヤのスケーラブル符号化データ(BL)1121を、復号してベースレイヤの画像を得たり、記憶したり、他の装置に伝送したりする。
また、端末装置1102は、例えばユーザ指示等に応じて、地上波放送1111を介して取得したベースレイヤのスケーラブル符号化データ(BL)1121と、ネットワーク1112を介して取得したエンハンスメントレイヤのスケーラブル符号化データ(EL)1122とを合成して、スケーラブル符号化データ(BL+EL)を得たり、それを復号してエンハンスメントレイヤの画像を得たり、記憶したり、他の装置に伝送したりする。
以上のように、スケーラブル符号化データは、例えばレイヤ毎に異なる通信媒体を介して伝送させることができる。したがって、負荷を分散させることができ、遅延やオーバフローの発生を抑制することができる。
また、状況に応じて、伝送に使用する通信媒体を、レイヤ毎に選択することができるようにしてもよい。例えば、データ量が比較的多いベースレイヤのスケーラブル符号化データ(BL)1121を帯域幅の広い通信媒体を介して伝送させ、データ量が比較的少ないエンハンスメントレイヤのスケーラブル符号化データ(EL)1122を帯域幅の狭い通信媒体を介して伝送させるようにしてもよい。また、例えば、エンハンスメントレイヤのスケーラブル符号化データ(EL)1122を伝送する通信媒体を、ネットワーク1112とするか、地上波放送1111とするかを、ネットワーク1112の利用可能帯域幅に応じて切り替えるようにしてもよい。もちろん、任意のレイヤのデータについて同様である。
このように制御することにより、データ伝送における負荷の増大を、より抑制することができる。
もちろん、レイヤ数は任意であり、伝送に利用する通信媒体の数も任意である。また、データ配信先となる端末装置1102の数も任意である。さらに、以上においては、放送局1101からの放送を例に説明したが、利用例はこれに限定されない。データ伝送システム1100は、スケーラブル符号化された符号化データを、レイヤを単位として複数に分割し、複数の回線を介して伝送するシステムであれば、任意のシステムに適用することができる。
そして、以上のような図52のようなデータ伝送システム1100においても、図40乃至図45を参照して上述した階層符号化・階層復号への適用と同様に本技術を適用することにより、図40乃至図45を参照して上述した効果と同様の効果を得ることができる。
<第3のシステム>
また、スケーラブル符号化は、例えば、図53に示される例のように、符号化データの記憶に利用される。
図53に示される撮像システム1200において、撮像装置1201は、被写体1211を撮像して得られた画像データをスケーラブル符号化し、スケーラブル符号化データ(BL+EL)1221として、スケーラブル符号化データ記憶装置1202に供給する。
スケーラブル符号化データ記憶装置1202は、撮像装置1201から供給されるスケーラブル符号化データ(BL+EL)1221を、状況に応じた品質で記憶する。例えば、通常時の場合、スケーラブル符号化データ記憶装置1202は、スケーラブル符号化データ(BL+EL)1221からベースレイヤのデータを抽出し、低品質でデータ量の少ないベースレイヤのスケーラブル符号化データ(BL)1222として記憶する。これに対して、例えば、注目時の場合、スケーラブル符号化データ記憶装置1202は、高品質でデータ量の多いスケーラブル符号化データ(BL+EL)1221のまま記憶する。
このようにすることにより、スケーラブル符号化データ記憶装置1202は、必要な場合のみ、画像を高画質に保存することができるので、画質劣化による画像の価値の低減を抑制しながら、データ量の増大を抑制することができ、記憶領域の利用効率を向上させることができる。
例えば、撮像装置1201が監視カメラであるとする。撮像画像に監視対象(例えば侵入者)が写っていない場合(通常時の場合)、撮像画像の内容は重要でない可能性が高いので、データ量の低減が優先され、その画像データ(スケーラブル符号化データ)は、低品質に記憶される。これに対して、撮像画像に監視対象が被写体1211として写っている場合(注目時の場合)、その撮像画像の内容は重要である可能性が高いので、画質が優先され、その画像データ(スケーラブル符号化データ)は、高品質に記憶される。
なお、通常時であるか注目時であるかは、例えば、スケーラブル符号化データ記憶装置1202が、画像を解析することにより判定しても良い。また、撮像装置1201が判定し、その判定結果をスケーラブル符号化データ記憶装置1202に伝送するようにしてもよい。
なお、通常時であるか注目時であるかの判定基準は任意であり、判定基準とする画像の内容は任意である。もちろん、画像の内容以外の条件を判定基準とすることもできる。例えば、収録した音声の大きさや波形等に応じて切り替えるようにしてもよいし、所定の時間毎に切り替えるようにしてもよいし、ユーザ指示等の外部からの指示によって切り替えるようにしてもよい。
また、以上においては、通常時と注目時の2つの状態を切り替える例を説明したが、状態の数は任意であり、例えば、通常時、やや注目時、注目時、非常に注目時等のように、3つ以上の状態を切り替えるようにしてもよい。ただし、この切り替える状態の上限数は、スケーラブル符号化データのレイヤ数に依存する。
また、撮像装置1201が、スケーラブル符号化のレイヤ数を、状態に応じて決定するようにしてもよい。例えば、通常時の場合、撮像装置1201が、低品質でデータ量の少ないベースレイヤのスケーラブル符号化データ(BL)1222を生成し、スケーラブル符号化データ記憶装置1202に供給するようにしてもよい。また、例えば、注目時の場合、撮像装置1201が、高品質でデータ量の多いベースレイヤのスケーラブル符号化データ(BL+EL)1221を生成し、スケーラブル符号化データ記憶装置1202に供給するようにしてもよい。
以上においては、監視カメラを例に説明したが、この撮像システム1200の用途は任意であり、監視カメラに限定されない。
そして、以上のような図53のような撮像システム1200においても、図40乃至図45を参照して上述した階層符号化・階層復号への適用と同様に本技術を適用することにより、図40乃至図45を参照して上述した効果と同様の効果を得ることができる。
なお、本技術は、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択して使用する、例えばMPEG DASH等のようなHTTPストリーミングにも適用することができる。つまり、このような複数の符号化データ間で、符号化や復号に関する情報を共有することもできる。
<8.第6の実施の形態>
<実施のその他の例>
以上において本技術を適用する装置やシステム等の例を説明したが、本技術は、これに限らず、このような装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
<ビデオセット>
本技術をセットとして実施する場合の例について、図54を参照して説明する。図54は、本技術を適用したビデオセットの概略的な構成の一例を示している。
近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、1機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する1セットとして実施を行う場合も多く見られるようになってきた。
図54に示されるビデオセット1300は、このような多機能化された構成であり、画像の符号化や復号(いずれか一方でもよいし、両方でも良い)に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
図54に示されるように、ビデオセット1300は、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314等のモジュール群と、コネクティビティ1321、カメラ1322、およびセンサ1323等の関連する機能を有するデバイスとを有する。
モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
図54の例の場合、ビデオモジュール1311は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ1331、ビデオプロセッサ1332、ブロードバンドモデム1333、およびRFモジュール1334を有する。
プロセッサは、所定の機能を有する構成をSoC(System On a Chip)により半導体チップに集積したものであり、例えばシステムLSI(Large Scale Integration)等と称されるものもある。この所定の機能を有する構成は、論理回路(ハードウエア構成)であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム(ソフトウエア構成)であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路(ハードウエア構成)により実現し、その他の機能をCPUにおいて実行されるプログラム(ソフトウエア構成)により実現するようにしてもよい。
図54のアプリケーションプロセッサ1331は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ1331において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ1332等、ビデオモジュール1311内外の構成を必要に応じて制御することもできる。
ビデオプロセッサ1332は、画像の符号化・復号(その一方若しくは両方)に関する機能を有するプロセッサである。
ブロードバンドモデム1333は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線(またはその両方)の広帯域通信により送信するデータ(デジタル信号)をデジタル変調する等してアナログ信号に変換したり、その広帯域通信により受信したアナログ信号を復調してデータ(デジタル信号)に変換したりする。ブロードバンドモデム1333は、例えば、ビデオプロセッサ1332が処理する画像データ、画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報を処理する。
RFモジュール1334は、アンテナを介して送受信されるRF(Radio Frequency)信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール1334は、ブロードバンドモデム1333により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール1334は、フロントエンドモジュール1314を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
なお、図54において点線1341に示されるように、アプリケーションプロセッサ1331とビデオプロセッサ1332を、一体化し、1つのプロセッサとして構成されるようにしてもよい。
外部メモリ1312は、ビデオモジュール1311の外部に設けられた、ビデオモジュール1311により利用される記憶デバイスを有するモジュールである。この外部メモリ1312の記憶デバイスは、どのような物理構成により実現するようにしてもよいが、一般的にフレーム単位の画像データのような大容量のデータの格納に利用されることが多いので、例えばDRAM(Dynamic Random Access Memory)のような比較的安価で大容量の半導体メモリにより実現するのが望ましい。
パワーマネージメントモジュール1313は、ビデオモジュール1311(ビデオモジュール1311内の各構成)への電力供給を管理し、制御する。
フロントエンドモジュール1314は、RFモジュール1334に対してフロントエンド機能(アンテナ側の送受信端の回路)を提供するモジュールである。図54に示されるように、フロントエンドモジュール1314は、例えば、アンテナ部1351、フィルタ1352、および増幅部1353を有する。
アンテナ部1351は、無線信号を送受信するアンテナおよびその周辺の構成を有する。アンテナ部1351は、増幅部1353から供給される信号を無線信号として送信し、受信した無線信号を電気信号(RF信号)としてフィルタ1352に供給する。フィルタ1352は、アンテナ部1351を介して受信されたRF信号に対してフィルタ処理等を行い、処理後のRF信号をRFモジュール1334に供給する。増幅部1353は、RFモジュール1334から供給されるRF信号を増幅し、アンテナ部1351に供給する。
コネクティビティ1321は、外部との接続に関する機能を有するモジュールである。コネクティビティ1321の物理構成は、任意である。例えば、コネクティビティ1321は、ブロードバンドモデム1333が対応する通信規格以外の通信機能を有する構成や、外部入出力端子等を有する。
例えば、コネクティビティ1321が、Bluetooth(登録商標)、IEEE 802.11(例えばWi-Fi(Wireless Fidelity、登録商標))、NFC(Near Field Communication)、IrDA(InfraRed Data Association)等の無線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した信号を送受信するアンテナ等を有するようにしてもよい。また、例えば、コネクティビティ1321が、USB(Universal Serial Bus)、HDMI(登録商標)(High-Definition Multimedia Interface)等の有線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した端子を有するようにしてもよい。さらに、例えば、コネクティビティ1321が、アナログ入出力端子等のその他のデータ(信号)伝送機能等を有するようにしてもよい。
なお、コネクティビティ1321が、データ(信号)の伝送先のデバイスを含むようにしてもよい。例えば、コネクティビティ1321が、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等の記録媒体に対してデータの読み出しや書き込みを行うドライブ(リムーバブルメディアのドライブだけでなく、ハードディスク、SSD(Solid State Drive)、NAS(Network Attached Storage)等も含む)を有するようにしてもよい。また、コネクティビティ1321が、画像や音声の出力デバイス(モニタやスピーカ等)を有するようにしてもよい。
カメラ1322は、被写体を撮像し、被写体の画像データを得る機能を有するモジュールである。カメラ1322の撮像により得られた画像データは、例えば、ビデオプロセッサ1332に供給されて符号化される。
センサ1323は、例えば、音声センサ、超音波センサ、光センサ、照度センサ、赤外線センサ、イメージセンサ、回転センサ、角度センサ、角速度センサ、速度センサ、加速度センサ、傾斜センサ、磁気識別センサ、衝撃センサ、温度センサ等、任意のセンサ機能を有するモジュールである。センサ1323により検出されたデータは、例えば、アプリケーションプロセッサ1331に供給されてアプリケーション等により利用される。
以上においてモジュールとして説明した構成をプロセッサとして実現するようにしてもよいし、逆にプロセッサとして説明した構成をモジュールとして実現するようにしてもよい。
以上のような構成のビデオセット1300において、後述するようにビデオプロセッサ1332に本技術を適用することができる。したがって、ビデオセット1300は、本技術を適用したセットとして実施することができる。
<ビデオプロセッサの構成例>
図55は、本技術を適用したビデオプロセッサ1332(図54)の概略的な構成の一例を示している。
図55の例の場合、ビデオプロセッサ1332は、ビデオ信号およびオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータおよびオーディオデータを復号し、ビデオ信号およびオーディオ信号を再生出力する機能とを有する。
図55に示されるように、ビデオプロセッサ1332は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、フレームメモリ1405、およびメモリ制御部1406を有する。また、ビデオプロセッサ1332は、エンコード・デコードエンジン1407、ビデオES(Elementary Stream)バッファ1408Aおよび1408B、並びに、オーディオESバッファ1409Aおよび1409Bを有する。さらに、ビデオプロセッサ1332は、オーディオエンコーダ1410、オーディオデコーダ1411、多重化部(MUX(Multiplexer))1412、逆多重化部(DMUX(Demultiplexer))1413、およびストリームバッファ1414を有する。
ビデオ入力処理部1401は、例えばコネクティビティ1321(図54)等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第1画像拡大縮小部1402は、画像データに対してフォーマット変換や画像の拡大縮小処理等を行う。第2画像拡大縮小部1403は、画像データに対して、ビデオ出力処理部1404を介して出力する先でのフォーマットに応じて画像の拡大縮小処理を行ったり、第1画像拡大縮小部1402と同様のフォーマット変換や画像の拡大縮小処理等を行ったりする。ビデオ出力処理部1404は、画像データに対して、フォーマット変換やアナログ信号への変換等を行って、再生されたビデオ信号として例えばコネクティビティ1321(図54)等に出力する。
フレームメモリ1405は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、およびエンコード・デコードエンジン1407によって共用される画像データ用のメモリである。フレームメモリ1405は、例えばDRAM等の半導体メモリとして実現される。
メモリ制御部1406は、エンコード・デコードエンジン1407からの同期信号を受けて、アクセス管理テーブル1406Aに書き込まれたフレームメモリ1405へのアクセススケジュールに従ってフレームメモリ1405に対する書き込み・読み出しのアクセスを制御する。アクセス管理テーブル1406Aは、エンコード・デコードエンジン1407、第1画像拡大縮小部1402、第2画像拡大縮小部1403等で実行される処理に応じて、メモリ制御部1406により更新される。
エンコード・デコードエンジン1407は、画像データのエンコード処理、並びに、画像データが符号化されたデータであるビデオストリームのデコード処理を行う。例えば、エンコード・デコードエンジン1407は、フレームメモリ1405から読み出した画像データを符号化し、ビデオストリームとしてビデオESバッファ1408Aに順次書き込む。また、例えば、ビデオESバッファ1408Bからビデオストリームを順次読み出して復号し、画像データとしてフレームメモリ1405に順次書き込む。エンコード・デコードエンジン1407は、これらの符号化や復号において、フレームメモリ1405を作業領域として使用する。また、エンコード・デコードエンジン1407は、例えばマクロブロック毎の処理を開始するタイミングで、メモリ制御部1406に対して同期信号を出力する。
ビデオESバッファ1408Aは、エンコード・デコードエンジン1407によって生成されたビデオストリームをバッファリングして、多重化部(MUX)1412に供給する。ビデオESバッファ1408Bは、逆多重化部(DMUX)1413から供給されたビデオストリームをバッファリングして、エンコード・デコードエンジン1407に供給する。
オーディオESバッファ1409Aは、オーディオエンコーダ1410によって生成されたオーディオストリームをバッファリングして、多重化部(MUX)1412に供給する。オーディオESバッファ1409Bは、逆多重化部(DMUX)1413から供給されたオーディオストリームをバッファリングして、オーディオデコーダ1411に供給する。
オーディオエンコーダ1410は、例えばコネクティビティ1321(図54)等から入力されたオーディオ信号を例えばデジタル変換し、例えばMPEGオーディオ方式やAC3(AudioCode number 3)方式等の所定の方式で符号化する。オーディオエンコーダ1410は、オーディオ信号が符号化されたデータであるオーディオストリームをオーディオESバッファ1409Aに順次書き込む。オーディオデコーダ1411は、オーディオESバッファ1409Bから供給されたオーディオストリームを復号し、例えばアナログ信号への変換等を行って、再生されたオーディオ信号として例えばコネクティビティ1321(図54)等に供給する。
多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化する。この多重化の方法(すなわち、多重化により生成されるビットストリームのフォーマット)は任意である。また、この多重化の際に、多重化部(MUX)1412は、所定のヘッダ情報等をビットストリームに付加することもできる。つまり、多重化部(MUX)1412は、多重化によりストリームのフォーマットを変換することができる。例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームに変換する。また、例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、記録用のファイルフォーマットのデータ(ファイルデータ)に変換する。
逆多重化部(DMUX)1413は、多重化部(MUX)1412による多重化に対応する方法で、ビデオストリームとオーディオストリームとが多重化されたビットストリームを逆多重化する。つまり、逆多重化部(DMUX)1413は、ストリームバッファ1414から読み出されたビットストリームからビデオストリームとオーディオストリームとを抽出する(ビデオストリームとオーディオストリームとを分離する)。つまり、逆多重化部(DMUX)1413は、逆多重化によりストリームのフォーマットを変換(多重化部(MUX)1412による変換の逆変換)することができる。例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321やブロードバンドモデム1333等(いずれも図54)から供給されたトランスポートストリームを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。また、例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321により(図54)各種記録媒体から読み出されたファイルデータを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。
ストリームバッファ1414は、ビットストリームをバッファリングする。例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図54)等に供給する。
また、例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321(図54)等に供給し、各種記録媒体に記録させる。
さらに、ストリームバッファ1414は、例えばコネクティビティ1321やブロードバンドモデム1333等(いずれも図54)を介して取得したトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
また、ストリームバッファ1414は、例えばコネクティビティ1321(図54)等において各種記録媒体から読み出されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
次に、このような構成のビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321(図54)等からビデオプロセッサ1332に入力されたビデオ信号は、ビデオ入力処理部1401において4:2:2Y/Cb/Cr方式等の所定の方式のデジタル画像データに変換され、フレームメモリ1405に順次書き込まれる。このデジタル画像データは、第1画像拡大縮小部1402または第2画像拡大縮小部1403に読み出されて、4:2:0Y/Cb/Cr方式等の所定の方式へのフォーマット変換および拡大縮小処理が行われ、再びフレームメモリ1405に書き込まれる。この画像データは、エンコード・デコードエンジン1407によって符号化され、ビデオストリームとしてビデオESバッファ1408Aに書き込まれる。
また、コネクティビティ1321(図54)等からビデオプロセッサ1332に入力されたオーディオ信号は、オーディオエンコーダ1410によって符号化され、オーディオストリームとして、オーディオESバッファ1409Aに書き込まれる。
ビデオESバッファ1408Aのビデオストリームと、オーディオESバッファ1409Aのオーディオストリームは、多重化部(MUX)1412に読み出されて多重化され、トランスポートストリーム若しくはファイルデータ等に変換される。多重化部(MUX)1412により生成されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図54)等を介して外部ネットワークに出力される。また、多重化部(MUX)1412により生成されたファイルデータは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321(図54)等に出力され、各種記録媒体に記録される。
また、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図54)等を介して外部ネットワークからビデオプロセッサ1332に入力されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。また、例えばコネクティビティ1321(図54)等において各種記録媒体から読み出され、ビデオプロセッサ1332に入力されたファイルデータは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。つまり、ビデオプロセッサ1332に入力されたトランスポートストリームまたはファイルデータは、逆多重化部(DMUX)1413によりビデオストリームとオーディオストリームとに分離される。
オーディオストリームは、オーディオESバッファ1409Bを介してオーディオデコーダ1411に供給され、復号されてオーディオ信号が再生される。また、ビデオストリームは、ビデオESバッファ1408Bに書き込まれた後、エンコード・デコードエンジン1407により順次読み出されて復号されてフレームメモリ1405に書き込まれる。復号された画像データは、第2画像拡大縮小部1403によって拡大縮小処理されて、フレームメモリ1405に書き込まれる。そして、復号された画像データは、ビデオ出力処理部1404に読み出されて、4:2:2Y/Cb/Cr方式等の所定の方式にフォーマット変換され、さらにアナログ信号に変換されて、ビデオ信号が再生出力される。
このように構成されるビデオプロセッサ1332に本技術を適用する場合、エンコード・デコードエンジン1407に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、エンコード・デコードエンジン1407が、上述した各実施形態に係る画像符号化装置や画像復号装置の機能を有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図36を参照して上述した効果と同様の効果を得ることができる。
なお、エンコード・デコードエンジン1407において、本技術(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
<ビデオプロセッサの他の構成例>
図56は、本技術を適用したビデオプロセッサ1332(図54)の概略的な構成の他の例を示している。図56の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能とを有する。
より具体的には、図56に示されるように、ビデオプロセッサ1332は、制御部1511、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、および内部メモリ1515を有する。また、ビデオプロセッサ1332は、コーデックエンジン1516、メモリインタフェース1517、多重化・逆多重化部(MUX DMUX)1518、ネットワークインタフェース1519、およびビデオインタフェース1520を有する。
制御部1511は、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516等、ビデオプロセッサ1332内の各処理部の動作を制御する。
図56に示されるように、制御部1511は、例えば、メインCPU1531、サブCPU1532、およびシステムコントローラ1533を有する。メインCPU1531は、ビデオプロセッサ1332内の各処理部の動作を制御するためのプログラム等を実行する。メインCPU1531は、そのプログラム等に従って制御信号を生成し、各処理部に供給する(つまり、各処理部の動作を制御する)。サブCPU1532は、メインCPU1531の補助的な役割を果たす。例えば、サブCPU1532は、メインCPU1531が実行するプログラム等の子プロセスやサブルーチン等を実行する。システムコントローラ1533は、メインCPU1531およびサブCPU1532が実行するプログラムを指定する等、メインCPU1531およびサブCPU1532の動作を制御する。
ディスプレイインタフェース1512は、制御部1511の制御の下、画像データを例えばコネクティビティ1321(図54)等に出力する。例えば、ディスプレイインタフェース1512は、デジタルデータの画像データをアナログ信号に変換し、再生されたビデオ信号として、またはデジタルデータの画像データのまま、コネクティビティ1321(図54)のモニタ装置等に出力する。
ディスプレイエンジン1513は、制御部1511の制御の下、画像データに対して、その画像を表示させるモニタ装置等のハードウエアスペックに合わせるように、フォーマット変換、サイズ変換、色域変換等の各種変換処理を行う。
画像処理エンジン1514は、制御部1511の制御の下、画像データに対して、例えば画質改善のためのフィルタ処理等、所定の画像処理を施す。
内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516により共用される、ビデオプロセッサ1332の内部に設けられたメモリである。内部メモリ1515は、例えば、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516の間で行われるデータの授受に利用される。例えば、内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516から供給されるデータを格納し、必要に応じて(例えば、要求に応じて)、そのデータを、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516に供給する。この内部メモリ1515は、どのような記憶デバイスにより実現するようにしてもよいが、一般的にブロック単位の画像データやパラメータ等といった小容量のデータの格納に利用することが多いので、例えばSRAM(Static Random Access Memory)のような比較的(例えば外部メモリ1312と比較して)小容量だが応答速度が高速な半導体メモリにより実現するのが望ましい。
コーデックエンジン1516は、画像データの符号化や復号に関する処理を行う。このコーデックエンジン1516が対応する符号化・復号の方式は任意であり、その数は1つであってもよいし、複数であってもよい。例えば、コーデックエンジン1516は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化若しくは符号化データの復号を行うようにしてもよい。
図56に示される例において、コーデックエンジン1516は、コーデックに関する処理の機能ブロックとして、例えば、MPEG-2 Video1541、AVC/H.2641542、HEVC/H.2651543、HEVC/H.265(Scalable)1544、HEVC/H.265(Multi-view)1545、およびMPEG-DASH1551を有する。
MPEG-2 Video1541は、画像データをMPEG-2方式で符号化したり復号したりする機能ブロックである。AVC/H.2641542は、画像データをAVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.2651543は、画像データをHEVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.265(Scalable)1544は、画像データをHEVC方式でスケーラブル符号化したりスケーラブル復号したりする機能ブロックである。HEVC/H.265(Multi-view)1545は、画像データをHEVC方式で多視点符号化したり多視点復号したりする機能ブロックである。
MPEG-DASH1551は、画像データをMPEG-DASH(MPEG-Dynamic Adaptive Streaming over HTTP)方式で送受信する機能ブロックである。MPEG-DASHは、HTTP(HyperText Transfer Protocol)を使ってビデオのストリーミングを行う技術であり、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択し伝送することを特徴の1つとする。MPEG-DASH1551は、規格に準拠するストリームの生成やそのストリームの伝送制御等を行い、画像データの符号化・復号については、上述したMPEG-2 Video1541乃至HEVC/H.265(Multi-view)1545を利用する。
メモリインタフェース1517は、外部メモリ1312用のインタフェースである。画像処理エンジン1514やコーデックエンジン1516から供給されるデータは、メモリインタフェース1517を介して外部メモリ1312に供給される。また、外部メモリ1312から読み出されたデータは、メモリインタフェース1517を介してビデオプロセッサ1332(画像処理エンジン1514若しくはコーデックエンジン1516)に供給される。
多重化・逆多重化部(MUX DMUX)1518は、符号化データのビットストリーム、画像データ、ビデオ信号等、画像に関する各種データの多重化や逆多重化を行う。この多重化・逆多重化の方法は任意である。例えば、多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、複数のデータを1つにまとめるだけでなく、所定のヘッダ情報等をそのデータに付加することもできる。また、逆多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、1つのデータを複数に分割するだけでなく、分割した各データに所定のヘッダ情報等を付加することもできる。つまり、多重化・逆多重化部(MUX DMUX)1518は、多重化・逆多重化によりデータのフォーマットを変換することができる。例えば、多重化・逆多重化部(MUX DMUX)1518は、ビットストリームを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームや、記録用のファイルフォーマットのデータ(ファイルデータ)に変換することができる。もちろん、逆多重化によりその逆変換も可能である。
ネットワークインタフェース1519は、例えばブロードバンドモデム1333やコネクティビティ1321(いずれも図54)等向けのインタフェースである。ビデオインタフェース1520は、例えばコネクティビティ1321やカメラ1322(いずれも図54)等向けのインタフェースである。
次に、このようなビデオプロセッサ1332の動作の例について説明する。例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図54)等を介して外部ネットワークからトランスポートストリームを受信すると、そのトランスポートストリームは、ネットワークインタフェース1519を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、例えば、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321(図54)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてファイルデータに変換され、ビデオインタフェース1520を介して例えばコネクティビティ1321(図54)等に出力され、各種記録媒体に記録される。
さらに、例えば、コネクティビティ1321(図54)等により図示せぬ記録媒体から読み出された、画像データが符号化された符号化データのファイルデータは、ビデオインタフェース1520を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321(図54)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてトランスポートストリームに変換され、ネットワークインタフェース1519を介して例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図54)等に供給され図示せぬ他の装置に伝送される。
なお、ビデオプロセッサ1332内の各処理部の間での画像データやその他のデータの授受は、例えば、内部メモリ1515や外部メモリ1312を利用して行われる。また、パワーマネージメントモジュール1313は、例えば制御部1511への電力供給を制御する。
このように構成されるビデオプロセッサ1332に本技術を適用する場合、コーデックエンジン1516に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、コーデックエンジン1516が、上述した各実施形態に係る画像符号化装置や画像復号装置を実現する機能ブロックを有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図36を参照して上述した効果と同様の効果を得ることができる。
なお、コーデックエンジン1516において、本技術(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
以上にビデオプロセッサ1332の構成を2例示したが、ビデオプロセッサ1332の構成は任意であり、上述した2例以外のものであってもよい。また、このビデオプロセッサ1332は、1つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する3次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
<装置への適用例>
ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図47)、携帯電話機920(図48)、記録再生装置940(図49)、撮像装置960(図50)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図36を参照して上述した効果と同様の効果を得ることができる。
また、ビデオセット1300は、例えば、図51のデータ伝送システム1000におけるパーソナルコンピュータ1004、AV機器1005、タブレットデバイス1006、および携帯電話機1007等の端末装置、図52のデータ伝送システム1100における放送局1101および端末装置1102、並びに、図53の撮像システム1200における撮像装置1201およびスケーラブル符号化データ記憶装置1202等にも組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図36を参照して上述した効果と同様の効果を得ることができる。
なお、上述したビデオセット1300の各構成の一部であっても、ビデオプロセッサ1332を含むものであれば、本技術を適用した構成として実施することができる。例えば、ビデオプロセッサ1332のみを本技術を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線1341により示されるプロセッサやビデオモジュール1311等を本技術を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314を組み合わせ、本技術を適用したビデオユニット1361として実施することもできる。いずれの構成の場合であっても、図1乃至図36を参照して上述した効果と同様の効果を得ることができる。
つまり、ビデオプロセッサ1332を含むものであればどのような構成であっても、ビデオセット1300の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ1332、点線1341により示されるプロセッサ、ビデオモジュール1311、または、ビデオユニット1361を、テレビジョン装置900(図47)、携帯電話機920(図48)、記録再生装置940(図49)、撮像装置960(図50)、図51のデータ伝送システム1000におけるパーソナルコンピュータ1004、AV機器1005、タブレットデバイス1006、および携帯電話機1007等の端末装置、図52のデータ伝送システム1100における放送局1101および端末装置1102、並びに、図53の撮像システム1200における撮像装置1201およびスケーラブル符号化データ記憶装置1202等に組み込むことができる。そして、本技術を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット1300の場合と同様に、図1乃至図36を参照して上述した効果と同様の効果を得ることができる。
<9.第7の実施の形態>
<MPEG-DASHの応用例>
なお、本技術は、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択して使用する、例えば、後述するMPEG DASH等のようなHTTPストリーミングのコンテンツ再生システムやWi-Fi規格の無線通信システムにも適用することができる。
<コンテンツ再生システムの概要>
まず、図57乃至図59を参照し、本技術を適用可能なコンテンツ再生システムについて概略的に説明する。
以下では、まず、このような各実施形態において共通する基本構成について図57および図58を参照して説明する。
図57は、コンテンツ再生システムの構成を示した説明図である。図57に示したように、コンテンツ再生システムは、コンテンツサーバ1610、1611と、ネットワーク1612と、コンテンツ再生装置1620(クライアント装置)とを備える。
コンテンツサーバ1610、1611とコンテンツ再生装置1620は、ネットワーク1612を介して接続されている。このネットワーク1612は、ネットワーク1612に接続されている装置から送信される情報の有線、または無線の伝送路である。
例えば、ネットワーク1612は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、ネットワーク1612は、IP-VPN(Internet Protocol-Virtual Private Network)などの専用回線網を含んでもよい。
コンテンツサーバ1610は、コンテンツデータを符号化し、符号化データおよび符号化データのメタ情報を含むデータファイルを生成して記憶する。なお、コンテンツサーバ1610がMP4形式のデータファイルを生成する場合、符号化データは「mdat」に該当し、メタ情報は「moov」に該当する。
また、コンテンツデータは、音楽、講演およびラジオ番組などの音楽データや、映画、テレビジョン番組、ビデオプログラム、写真、文書、絵画および図表などの映像データや、ゲームおよびソフトウエアなどであってもよい。
ここで、コンテンツサーバ1610は、同一コンテンツに関し、異なるビットレートで複数のデータファイルを生成する。またコンテンツサーバ1611は、コンテンツ再生装置1620からのコンテンツの再生要求に対して、コンテンツサーバ1610のURLの情報に、コンテンツ再生装置1620で当該URLに付加させるパラメータの情報を含めてコンテンツ再生装置1620に送信する。以下、図58を参照して当該事項について具体的に説明する。
図58は、図57のコンテンツ再生システムにおけるデータの流れを示した説明図である。コンテンツサーバ1610は、同一のコンテンツデータを異なるビットレートで符号化し、図58に示したように例えば2MbpsのファイルA、1.5MbpsのファイルB、1MbpsのファイルCを生成する。相対的に、ファイルAはハイビットレートであり、ファイルBは標準ビットレートであり、ファイルCはロービットレートである。
また、図58に示したように、各ファイルの符号化データは複数のセグメントに区分されている。例えば、ファイルAの符号化データは「A1」、「A2」、「A3」、・・・「An」というセグメントに区分されており、ファイルBの符号化データは「B1」、「B2」、「B3」、・・・「Bn」というセグメントに区分されており、ファイルCの符号化データは「C1」、「C2」、「C3」、・・・「Cn」というセグメントに区分されている。
なお、各セグメントはMP4のシンクサンプル(たとえば、AVC/H.264の映像符号化ではIDR−ピクチャ)で始まる単独で再生可能な1または2以上の映像符号化データおよび音声符号化データより構成サンプルで構成されてもよい。例えば、一秒30フレームのビデオデータが15フレーム固定長のGOP(Group of Picture)にて符号化されていた場合、各セグメントは、4GOPに相当する2秒分の映像ならびに音声符号化データであっても、20GOPに相当する10秒分の映像ならびに音声符号化データであってもよい。
また、各ファイルにおける配置順番が同一のセグメントによる再生範囲(コンテンツの先頭からの時間位置の範囲)は同一である。例えば、セグメント「A2」、セグメント「B2」、およびセグメント「C2」の再生範囲は同一であり、各セグメントが2秒分の符号化データである場合、セグメント「A2」、セグメント「B2」、およびセグメント「C2」の再生範囲は、いずれもコンテンツの2秒乃至4秒である。
コンテンツサーバ1610は、このような複数のセグメントから構成されるファイルA乃至ファイルCを生成すると、ファイルA乃至ファイルCを記憶する。そして、コンテンツサーバ1610は、図58に示したように、異なるファイルを構成するセグメントをコンテンツ再生装置1620に順次に送信し、コンテンツ再生装置1620は、受信したセグメントをストリーミング再生する。
ここで、本実施形態によるコンテンツサーバ1610は、各符号化データのビットレート情報およびアクセス情報を含むプレイリストファイル(以下、MPD:Media Presentation Description)をコンテンツ再生装置1620に送信し、コンテンツ再生装置1620は、MPDに基づき、複数のビットレートのうちのいずれかのビットレートを選択し、選択したビットレートに対応するセグメントの送信をコンテンツサーバ1610に要求する。
図57では、1つのコンテンツサーバ1610のみが図示されているが、本開示は係る例に限定されないことは言うまでもない。
図59は、MPDの具体例を示した説明図である。図59に示したように、MPDには、異なるビットレート(BANDWIDTH)を有する複数の符号化データに関するアクセス情報が含まれる。例えば、図59に示したMPDは、256Kbps、1.024Mbps、1.384Mbps、1.536Mbps、2.048Mbpsの各々の符号化データが存在することを示す共に、各符号化データに関するアクセス情報を含む。コンテンツ再生装置1620は、かかるMPDに基づき、ストリーミング再生する符号化データのビットレートを動的に変更することが可能である。
なお、図57にはコンテンツ再生装置1620の一例として携帯端末を示しているが、コンテンツ再生装置1620はかかる例に限定されない。例えば、コンテンツ再生装置1620は、PC(Personal Computer)、家庭用映像処理装置(DVDレコーダ、ビデオデッキなど)、PDA(Personal Digital Assistants)、家庭用ゲーム機器、家電機器などの情報処理装置であってもよい。また、コンテンツ再生装置1620は、携帯電話、PHS(Personal Handyphone System)、携帯用音楽再生装置、携帯用映像処理装置、携帯用ゲーム機器などの情報処理装置であってもよい。
<コンテンツサーバ1610の構成>
以上、図57乃至図59を参照し、コンテンツ再生システムの概要を説明した。続いて、図60を参照し、コンテンツサーバ1610の構成を説明する。
図60は、コンテンツサーバ1610の構成を示した機能ブロック図である。図60に示したように、コンテンツサーバ1610は、ファイル生成部1631と、記憶部1632と、通信部1633とを備える。
ファイル生成部1631は、コンテンツデータを符号化するエンコーダ1641を備え、同一のコンテンツでビットレートが異なる複数の符号化データ、および上述したMPDを生成する。例えば、ファイル生成部1631は、256Kbps、1.024Mbps、1.384Mbps、1.536Mbps、2.048Mbpsの各々の符号化データを生成した場合、図59に示したようなMPDを生成する。
記憶部1632は、ファイル生成部1631により生成されたビットレートが異なる複数の符号化データおよびMPDを記憶する。この記憶部1632は、不揮発性メモリ、磁気ディスク、光ディスク、およびMO(Magneto Optical)ディスクなどの記憶媒体であってもよい。不揮発性メモリとしては、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)、EPROM(Erasable Programmable ROM)があげられる。また、磁気ディスクとしては、ハードディスクおよび円盤型磁性体ディスクなどがあげられる。また、光ディスクとしては、CD(Compact Disc)、DVD-R(Digital Versatile Disc Recordable)およびBD(Blu-Ray Disc(登録商標))などがあげられる。
通信部1633は、コンテンツ再生装置1620とのインタフェースであって、ネットワーク1612を介してコンテンツ再生装置1620と通信する。より詳細には、通信部1633は、HTTPに従ってコンテンツ再生装置1620と通信するHTTPサーバとしての機能を有する。例えば、通信部1633は、MPDをコンテンツ再生装置1620に送信し、HTTPに従ってコンテンツ再生装置1620からMPDに基づいて要求された符号化データを記憶部1632から抽出し、HTTPレスポンスとしてコンテンツ再生装置1620に符号化データを送信する。
<コンテンツ再生装置1620の構成>
以上、本実施形態によるコンテンツサーバ1610の構成を説明した。続いて、図61を参照し、コンテンツ再生装置1620の構成を説明する。
図61は、コンテンツ再生装置1620の構成を示した機能ブロック図である。図61に示したように、コンテンツ再生装置1620は、通信部1651と、記憶部1652と、再生部1653と、選択部1654と、現在地取得部1656とを備える。
通信部1651は、コンテンツサーバ1610とのインタフェースであって、コンテンツサーバ1610に対してデータを要求し、コンテンツサーバ1610からデータを取得する。より詳細には、通信部1651は、HTTPに従ってコンテンツ再生装置1620と通信するHTTPクライアントとしての機能を有する。例えば、通信部1651は、HTTP Rangeを利用することにより、コンテンツサーバ1610からMPDや符号化データのセグメントを選択的に取得することができる。
記憶部1652は、コンテンツの再生に関する種々の情報を記憶する。例えば、通信部1651によりコンテンツサーバ1610から取得されるセグメントを順次にバッファリングする。記憶部1652にバッファリングされた符号化データのセグメントは、FIFO(First In First Out)で再生部1653へ順次に供給される。
また記憶部1652は、後述のコンテンツサーバ1611から要求された、MPDに記述されているコンテンツのURLへのパラメータの付加指示に基づき、通信部1651でURLにパラメータを付加して、そのURLへアクセスするための定義を記憶する。
再生部1653は、記憶部1652から供給されるセグメントを順次に再生する。具体的には、再生部1653は、セグメントのデコード、DA変換、およびレンダリングなどを行う。
選択部1654は、MPDに含まれるいずれのビットレートに対応する符号化データのセグメントを取得するかを同一コンテンツ内で順次に選択する。例えば、選択部1654がネットワーク1612の帯域に応じてセグメント「A1」、「B2」、「A3」を順次に選択すると、図58に示したように、通信部1651がコンテンツサーバ1610からセグメント「A1」、「B2」、「A3」を順次に取得する。
現在地取得部1656は、コンテンツ再生装置1620の現在の位置を取得するものであり、例えばGPS(Global Positioning System)受信機などの現在地を取得するモジュールで構成されていても良い。また現在地取得部1656は、無線ネットワークを使用してコンテンツ再生装置1620の現在の位置を取得するものであってもよい。
<コンテンツサーバ1611の構成>
図62は、コンテンツサーバ1611の構成例を示す説明図である。図62に示したように、コンテンツサーバ1611は、記憶部1671と、通信部1672とを備える。
記憶部1671は、MPDのURLの情報を記憶する。MPDのURLの情報は、コンテンツの再生を要求するコンテンツ再生装置1620からの求めに応じ、コンテンツサーバ1611からコンテンツ再生装置1620へ送信される。また記憶部1671は、コンテンツ再生装置1620へのMPDのURLの情報を提供する際に、当該MPDに記述されているURLにコンテンツ再生装置1620でパラメータを付加させる際の定義情報を記憶する。
通信部1672は、コンテンツ再生装置1620とのインタフェースであって、ネットワーク1612を介してコンテンツ再生装置1620と通信する。すなわち通信部1672は、コンテンツの再生を要求するコンテンツ再生装置1620から、MPDのURLの情報の要求を受信し、コンテンツ再生装置1620へMPDのURLの情報を送信する。通信部1672から送信されるMPDのURLには、コンテンツ再生装置1620でパラメータを付加させるための情報が含まれる。
コンテンツ再生装置1620でMPDのURLに付加させるパラメータについては、コンテンツサーバ1611およびコンテンツ再生装置1620で共有する定義情報で様々に設定することが出来る。一例を挙げれば、コンテンツ再生装置1620の現在位置、コンテンツ再生装置1620を使用するユーザのユーザID、コンテンツ再生装置1620のメモリサイズ、コンテンツ再生装置1620のストレージの容量などの情報を、コンテンツ再生装置1620でMPDのURLに付加させることが出来る。
以上のような構成のコンテンツ再生システムにおいて、図1乃至図36を参照して上述したような本技術を適用することにより、図1乃至図36を参照して上述した効果と同様の効果を得ることができる。
すなわち、コンテンツサーバ1610のエンコーダ1641は、上述した実施形態に係る画像符号化装置の機能を有する。また、コンテンツ再生装置1620の再生部1653は、上述した実施形態に係る画像復号装置の機能を有する。それにより、符号化・復号に必要な記憶容量の増大を抑制することができる。
また、コンテンツ再生システムにおいて、本技術により符号化されたデータを送受信することにより、符号化・復号に必要な記憶容量の増大を抑制することができる。
<10.第8の実施の形態>
<Wi-Fi規格の無線通信システムの応用例>
本技術を適用可能な無線通信システムにおける無線通信装置の基本動作例について説明する。
<無線通信装置の基本動作例>
最初に、P2P(Peer to Peer)接続を確立して特定のアプリケーションを動作させるまでの無線パケット送受信がなされる。
次に、第2層で接続する前に、使用する特定のアプリケーションを指定してからP2P接続を確立して特定のアプリケーションを動作させるまでの無線パケット送受信がなされる。その後、第2層での接続後に、特定のアプリケーションを起動する場合の無線パケット送受信がなされる。
<特定のアプリケーション動作開始時における通信例>
図63および図64は、上述したP2P(Peer to Peer)接続を確立して特定のアプリケーションを動作させるまでの無線パケット送受信の例であり、無線通信の基礎となる各装置による通信処理例を示すシーケンスチャートである。具体的には、Wi-Fi Allianceにおいて標準化されているWi-Fiダイレクト(Direct)規格(Wi-Fi P2Pと呼ばれることもある)での接続に至るダイレクト接続の確立手順の一例を示す。
ここで、Wi-Fiダイレクトでは、複数の無線通信装置が互いの存在を検出する(Device Discovery、Service Discovery)。そして、接続機器選択を行うとその選択された機器間において、WPS(Wi-Fi Protected Setup)で機器認証を行うことによりダイレクト接続を確立する。また、Wi-Fiダイレクトでは、複数の無線通信装置が親機(Group Owner)または子機(Client)の何れとしての役割を担うかを決定して通信グループを形成する。
ただし、この通信処理例では、一部のパケット送受信については省略して示す。例えば、初回接続時には、上述したように、WPSを使うためのパケット交換が必要であり、AuthenticationRequest/Responseのやり取り等においてもパケット交換が必要となる。しかしながら、図63および図64では、これらのパケット交換についての図示を省略し、2回目以降の接続についてのみを示す。
なお、図63および図64では、第1無線通信装置1701および第2無線通信装置1702間における通信処理例を示すが、他の無線通信装置間における通信処理についても同様である。
最初に、第1無線通信装置1701および第2無線通信装置1702間においてDevice Discoveryが行われる(1711)。例えば、第1無線通信装置1701は、Probe request(応答要求信号)を送信し、このProbe requestに対するProbe response(応答信号)を第2無線通信装置1702から受信する。これにより、第1無線通信装置1701および第2無線通信装置1702は、互いの存在を発見することができる。また、Device Discoveryにより、相手のデバイス名や種類(TV、PC、スマートフォン等)を取得することができる。
続いて、第1無線通信装置1701および第2無線通信装置1702間においてService Discoveryが行われる(1712)。例えば、第1無線通信装置1701は、Device Discoveryで発見した第2無線通信装置1702が対応しているサービスを問い合わせるService Discovery Queryを送信する。そして、第1無線通信装置1701は、Service Discovery Responseを第2無線通信装置1702から受信することにより、第2無線通信装置1702が対応しているサービスを取得する。すなわち、Service Discoveryにより、相手が実行可能なサービス等を取得することができる。相手が実行可能なサービスは、例えば、service、protocol(DLNA(Digital Living Network Alliance) DMR(Digital Media Renderer)等)である。
続いて、ユーザにより接続相手の選択操作(接続相手選択操作)が行われる(1713)。この接続相手選択操作は、第1無線通信装置1701および第2無線通信装置1702の何れか一方のみに発生することもある。例えば、第1無線通信装置1701の表示部に接続相手選択画面が表示され、この接続相手選択画面において接続相手として第2無線通信装置1702がユーザ操作により選択される。
ユーザにより接続相手選択操作が行われると(1713)、第1無線通信装置1701および第2無線通信装置1702間においてGroup Owner Negotiationが行われる(1714)。図63および図64では、Group Owner Negotiationの結果により、第1無線通信装置1701がグループオーナー(Group Owner)1715になり、第2無線通信装置1702がクライアント(Client)1716になる例を示す。
続いて、第1無線通信装置1701および第2無線通信装置1702間において、各処理(1717乃至1720)が行われることにより、ダイレクト接続が確立される。すなわち、Association(L2(第2層) link確立)(1717)、Secure link確立(1718)が順次行われる。また、IP Address Assignment(1719)、SSDP(Simple Service Discovery Protocol)等によるL3上でのL4 setup(1720)が順次行われる。なお、L2(layer2)は、第2層(データリンク層)を意味し、L3(layer3)は、第3層(ネットワーク層)を意味し、L4(layer4)は、第4層(トランスポート層)を意味する。
続いて、ユーザにより特定のアプリケーションの指定または起動操作(アプリ指定・起動操作)が行われる(1721)。このアプリ指定・起動操作は、第1無線通信装置1701および第2無線通信装置1702の何れか一方のみに発生することもある。例えば、第1無線通信装置1701の表示部にアプリ指定・起動操作画面が表示され、このアプリ指定・起動操作画面において特定のアプリケーションがユーザ操作により選択される。
ユーザによりアプリ指定・起動操作が行われると(1721)、このアプリ指定・起動操作に対応する特定のアプリケーションが第1無線通信装置1701および第2無線通信装置1702間において実行される(1722)。
ここで、Wi-Fi Direct規格以前の仕様(IEEE802.11で標準化された仕様)の範囲内で、AP(Access Point)−STA(Station)間の接続を行う場合を想定する。この場合には、第2層で接続する前(IEEE802.11用語ではassociation前)には、どのようなデバイスと繋ごうとしているのかを事前に知ることができなかった。
これに対して、図63および図64に示すように、Wi-Fi Directでは、Device discoveryやService Discovery(option)において、接続候補相手を探す際に、接続相手の情報を取得することができる。この接続相手の情報は、例えば、基本的なデバイスのタイプや、対応している特定のアプリケーション等である。そして、その取得された接続相手の情報に基づいて、ユーザに接続相手を選択させることができる。
この仕組みを拡張して、第2層で接続する前に特定のアプリケーションを指定して、接続相手を選択し、この選択後に、自動的に特定のアプリケーションを起動させる無線通信システムを実現することも可能である。このような場合の接続に至るシーケンスの一例を、図66に示す。また、この通信処理において送受信されるフレームフォーマット(frame format)の構成例を図65に示す。
<フレームフォーマットの構成例>
図65は、本技術の基礎となる各装置による通信処理において送受信されるフレームフォーマット(frame format)の構成例を模式的に示す図である。すなわち、図65には、第2層での接続を確立するためのMAC frameの構成例を示す。具体的には、図66に示すシーケンスを実現するためのAssociation Request/Response(1787)のフレームフォーマットの一例である。
図65に示されるように、MAC frameは、Frame Control(1751)乃至FCS(1758)よりなり、その内、Frame Control(1751)からSequence Control(1756)までは、MACヘッダである。また、Association Requestを送信する際には、Frame Control(1751)において、B3B2="0b00"、かつ、B7B6B5B4="0b0000"が設定される。また、Association Responseをencapsulateする際には、Frame Control(1751)において、B3B2="0b00"、かつ、B7B6B5B4="0b0001"が設定される。なお、「0b00」は、2進法で「00」であることを示し、「0b0000」は、2進法で「0000」であることを示し、「0b0001」は、2進法で「0001」であることを示す。
ここで、図63に示すMAC frame(Frame body(1757))は、基本的には、IEEE802.11-2007仕様書section7.2.3.4節と7.2.3.5節に記載のAssociation Request/Responseframe formatである。ただし、IEEE802.11仕様書内で定義されているInformation Element(以下、IEと省略)(1759)だけでなく、独自に拡張したIEを含めている点が異なる。
また、Vendor Specific IE(1760)であることを示すため、IE Type(Information Element ID(1761))には、10進数で127がセットされる。この場合、IEEE802.11−2007仕様7.3.2.26節により、Lengthフィールド(1762)と、OUIフィールド(1763)が続き、この後にvendor specific content(1764)が配置される。
Vendor specific content(1764)の内容としては、最初にvendor specific IEのtypeを示すフィールド(IE type(1765))を設ける。そして、この後に、複数のsubelement(1766)を格納することができる構成とすることが考えられる。
subelement(1766)の内容として、使われるべき特定のアプリケーションの名称(1767)や、その特定のアプリケーション動作時のデバイスの役割(1768)を含めることが考えられる。また、特定のアプリケーション、または、その制御のために使われるポート番号等の情報(L4セットアップのための情報)(1769)や、特定のアプリケーション内でのCapabilityに関する情報(Capability情報)(1770)を含めることが考えられる。ここで、Capability情報は、例えば、指定する特定のアプリケーションがDLNAの場合に、音声送出/再生に対応している、映像送出/再生に対応している等を特定するための情報である。
以上のような構成の無線通信システムにおいて、図1乃至図36を参照して上述したような本技術を適用することにより、図1乃至図36を参照して上述した効果と同様の効果を得ることができる。すなわち、符号化・復号に必要な記憶容量の増大を抑制することができる。また、上述した無線通信システムにおいて、本技術により符号化されたデータを送受信することにより、符号化・復号に必要な記憶容量の増大を抑制することができる。
また、本明細書では、各種情報が、符号化ストリームに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1) 画像データが符号化された符号化データを復号する際のイントラ予測処理におけるカレントブロックの周辺画素の特徴を識別するための閾値を、前記画像データのビット深度に応じて設定する閾値設定部と、
前記閾値設定部により設定された前記閾値を利用して識別される前記周辺画素の特徴に応じたフィルタを用いて、前記周辺画素をフィルタ処理するフィルタ処理部と
を備える画像処理装置。
(2) 前記閾値設定部は、初期値として予め定められた前記閾値を、前記ビット深度に応じてビットシフトする
(1)、(3)乃至(8)のいずれかに記載の画像処理装置。
(3) 前記閾値設定部は、前記画像データのビット深度が8ビットの場合、前記閾値を8に設定する
(1)、(2)、(4)乃至(8)のいずれかに記載の画像処理装置。
(4) 前記画像データのビット深度を判定する判定部をさらに備え、
前記閾値設定部は、前記判定部により判定されたビット深度に応じて、前記閾値を設定する
(1)乃至(3)、(5)乃至(8)のいずれかに記載の画像処理装置。
(5) 前記画像データのビット深度を受け取る受け取り部をさらに備え、
前記閾値設定部は、前記受け取り部により受け取られた前記ビット深度に応じて、前記閾値を設定する
(1)乃至(4)、(6)乃至(8)のいずれかに記載の画像処理装置。
(6) 伝送された、前記画像データのビット深度に応じて設定された閾値を受け取る受け取り部をさらに備え、
前記フィルタ処理部は、前記受け取り部により受け取られた前記閾値を利用して識別される前記周辺画素の特徴に応じたフィルタを用いて、前記周辺画素をフィルタ処理する
(1)乃至(5)、(7)、(8)のいずれかに記載の画像処理装置。
(7) 前記フィルタ処理部は、前記周辺画素の特徴を表す値が前記閾値設定部により設定された前記閾値を超える場合、前記周辺画素をローパスフィルタ処理する
(1)乃至(6)、(8)のいずれかに記載の画像処理装置。
(8) 前記フィルタ処理部は、前記周辺画素の特徴を表す値が前記閾値設定部により設定された前記閾値を超えない場合、前記周辺画素をバイリニアフィルタ処理する
(1)乃至(7)のいずれかに記載の画像処理装置。
(9) 画像データが符号化された符号化データを復号する際のイントラ予測処理におけるカレントブロックの周辺画素の特徴を識別するための閾値を、前記画像データのビット深度に応じて設定し、
設定された前記閾値を利用して識別される前記周辺画素の特徴に応じたフィルタを用いて、前記周辺画素をフィルタ処理する
画像処理方法。