以下、本発明の各実施形態について、添付図面を参照しながら説明する。なお、同一の符号を付した部分は同一の機能を有するものとして説明を省略するものとする。
<第1の実施形態>
図1は、本発明の第1の実施形態に係る動画像復号装置の構成例を示すブロック図で、図中、100は動画像復号装置(以下、動画像ストリーム復号装置という)を示す。この動画像ストリーム復号装置100に入力される動画像ストリームは、例えばMPEG−2やMPEG−4/AVCなど、直交変換とフレーム間予測を用いた所謂ハイブリッド符号化方式に従って符号化されたデータである。ここでは、MPEG−2ビデオ規格(ISO/IEC13818−2)によりエンコードされた動画像ストリームが入力されるものとして説明する。もちろん、符号化方式に直交変換を用いていればMPEG−2ビデオ以外の方式に対しても適用することが可能である。
図1に示すように、動画像ストリーム復号装置100は、可変長復号部101と、逆直交変換適応制御部102と、逆量子化部103と、サイズ可変逆直交変換部104と、縮小処理部105と、動き補償部106と、フレームメモリ部107と、切替部108〜110とを含んで構成される。またこのほかに、動画像ストリーム復号装置100の動作を制御するための制御部(図示しない)を含む。
以上のような構成により、動画像ストリーム復号装置100は、入力される動画像ストリームを復号し、元の動画像の解像度を縮小して動画サムネイル用の動画像を出力する。なお、元の動画像の解像度は、符号化された動画像ストリームをデコードすることで得られる。動画サムネイルの解像度は、外部のシステムから予め指定されているものとする。
可変長復号部101は、入力された動画像ストリームを復号し、復号データを得る。MPEG−2ビデオ規格における動画像ストリームの書式は階層的になっており、シーケンス、フレーム、マクロブロック(MB)といった階層構造となる。可変長復号部101は、このような書式に従って可変長(一部固定長のものを含む)の符号語を復号する。
逆直交変換適応制御部102は、可変長復号部101からの復号データ(つまり動画像ストリームに符号化された情報)に応じて、サイズ可変逆直交変換部104で実行される逆直交変換処理を適応的に制御する。直交変換には、例えば、離散コサイン変換(DCT)、ウォルシュ・アダマール変換(WHT)、離散フーリエ変換(DFT)、離散サイン変換(DST)、カルーネン/レーベ変換(KLT)、ハール変換、スラント変換などの方式を用いることができる。MPEG−2ビデオ規格ではDCTが採用されているため、以下の説明ではDCTを代表例として用いる。DCTの逆変換は、逆離散コサイン変換(IDCT)である。
すなわち、本実施形態の動画像ストリーム復号装置100は、入力された動画像ストリームの直交変換係数(以下、DCT係数)を復号する可変長復号部101と、復号したDCT係数に対してブロック毎に逆量子化処理を施す逆量子化部103と、逆量子化したDCT係数に対してブロック毎に逆直交変換処理を施す逆直交変換部に相当するサイズ可変逆直交変換部104と、可変長復号部101で復号されたブロック毎の直交変換係数の分布状態に応じて、サイズ可変逆直交変換部104における逆直交変換(IDCT)処理を適応的に制御する逆直交変換適応制御部102とを備える。
本実施形態では、制御対象となるのはIDCT処理の演算サイズである。演算サイズとは、ここでは2次元のDCTにおいて水平・垂直方向の演算するデータ数のことである。MPEG−2ビデオでは水平・垂直方向のデータ数がそれぞれ8であるブロックに対してDCT処理が施される。ここでは演算サイズを、水平方向データ数×垂直方向データ数により表記する(水平・垂直方向のデータ数がそれぞれ8の場合は、8×8となる)。逆直交変換適応制御部102において決定される演算サイズをNh×Nvとする(ここでNh、Nvは自然数である)。
逆量子化部103は、可変長復号部101で復号されたDCT係数に対して量子化ステップをかけて逆量子化処理を施す。復号されたDCTデータのうち、逆直交変換適応制御部102により決定されたIDCTの演算サイズNh×Nvの分だけ逆量子化を行う。
サイズ可変逆直交変換部104は、逆量子化が施されたDCT係数にIDCT処理を施す。逆直交変換適応制御部102により指定されたIDCTの演算サイズの処理を実行する。
縮小処理部105は、サイズ可変逆直交変換部104において異なる演算サイズが適用されることにより、演算結果が異なるサイズとなるところを一定のサイズとなるように縮小処理する。
フレームメモリ部107は、参照画像データを記憶するためのメモリである。
動き補償部106は、フレームメモリ部107に格納された参照画像データから、動きベクトルによって示される位置の予測データを選択する。参照画像データは整数画素が記憶されているため、動きベクトルが1/2精度の位置を示している場合には整数画素から1/2精度の画素を補間する。また、動き補償部106は、動き補償を実行する場合、切替部110を図中下側に切り替えて動き補償を実行し、そうでない場合、切替部110を図中上側に切り替える。
本実施形態において、可変長復号部101は、動画像ストリームから動画像ストリームの解像度情報を抽出する。逆直交変換適応制御部102は、可変長復号部101により抽出された動画像ストリームの解像度情報と、予め指定された動画サムネイルの解像度情報とにより算出される動画像の縮小比に基づいて、直交変換係数の低周波成分を含むように逆直交変換処理のデフォルトブロックサイズを決定し、決定したデフォルトブロックサイズの領域外に直交変換係数が存在すると判定した場合、領域外の直交変換係数を含むように逆直交変換処理の演算に使用する演算用ブロックサイズを決定する。サイズ可変逆直交変換部104は、逆直交変換適応制御部102により決定された演算用ブロックサイズに従って、逆直交変換処理を行う。
上記において、逆直交変換適応制御部102は、デフォルトブロックサイズの領域外に直交変換係数が存在すると判定した場合、切替部108及び109を縮小処理部105側(図中下側)に切り替え、そうでない場合、切替部108及び109を縮小処理部105でない側(図中上側)に切り替える。縮小処理部105は、逆直交変換適応制御部102により決定された演算用ブロックサイズとデフォルトブロックサイズとの比に基づいて、サイズ可変逆直交変換部104から出力されるブロックのブロックサイズを縮小する。
図2〜図4は、動画像ストリーム復号装置100による処理の流れの一例を説明するためのフロー図である。
図2において、動画像ストリーム復号装置100に動画像ストリームが供給されると処理が開始される。動画像ストリーム復号装置100は処理を開始すると、まず可変長復号部101が、図5に示すように、階層化された動画像ストリームのうち、シーケンスヘッダを復号する(ステップS1)。シーケンスヘッダには動画像ストリームの解像度の情報が含まれるため、この処理により動画像ストリームの解像度情報が得られる。
次に、逆直交変換適応制御部102は、動画像ストリームから復号した解像度情報と、システムから予め指定された動画サムネイルの解像度情報とにより算出される動画像の縮小比に基づいて、DCT係数の低周波成分が含まれるようにIDCTの演算サイズ(h0×v0、h0,v0はいずれも8以下の自然数である)を決定し、これをデフォルト値(デフォルトブロックサイズに相当)とする(ステップS2)。動画像ストリームから復号した解像度が1920×1080の場合における、動画サムネイルの解像度とIDCTの演算サイズとの関係を図6に示す。動画サムネイルの解像度が240×135までならば演算サイズは1×1とし、同じく480×270までならば2×2、960×540までならば4×4、これより大きければ8×8とする。演算サイズは8×8、4×4、2×2、1×1以外であってもよく、例えば、図6において点線で示したように動画サムネイルの解像度に応じて4×4と8×8の間で5×5、6×6、7×7を設定してもよい。
つまり符号化方式で規定される演算サイズ(MPEG−2ビデオならば8×8)に対して、動画像の縮小比(動画サムネイルの解像度/復号した動画像ストリームの解像度)を掛けた値を下回らない最も小さい自然数を演算サイズとする。演算サイズと8×8サイズのブロック内で使用するDCTデータの位置との関係を図7に示す。DCT係数は図7のように表すと左上が低周波成分で、右下へ向って高周波成分が配置される。したがって、11は左上のDC成分1つの要素からなる領域で演算サイズ1×1に対応する。領域11を含む領域12は演算サイズ2×2に対応する。同じく領域13は演算サイズ4×4に、領域14は演算サイズ8×8に対応する。このように小さい演算サイズに低周波成分が含まれ、演算サイズが大きくなるに連れてより多くの高周波成分が含まれるようにする。
次に、可変長復号部101は、図5に示す動画像ストリームの構成に従って、動画像ストリームのGOPヘッダ、ピクチャヘッダ、スライスヘッダをそれぞれ復号する(ステップS3,S4)。
次に、可変長復号部101は、MB(マクロブロック)階層に含まれるMB情報およびブロックを復号する(ステップS5)。このステップS5における処理の詳細例については後述の図3のフロー図で説明する。
上記ステップS5の処理の後に、可変長復号部101は、スライスに含まれる全MBの復号が終了したか否かを判定し(ステップS6)、全MBの復号が終了したと判定した場合(YESの場合)、スライス終了としてステップS7に進み、一方、全MBの復号が終了していないと判定した場合(NOの場合)、ステップS5に戻り処理を繰り返す。
そして、可変長復号部101は、ピクチャに含まれる全スライスの復号が終了したか否かを判定し(ステップS7)、全スライスの復号が終了したと判定した場合(YESの場合)、ピクチャ終了としてステップS8に進み、一方、全スライスの復号が終了していないと判定した場合(NOの場合)、ステップS4に戻り処理を繰り返す。
最後に、可変長復号部101は、シーケンスの復号が終了したか否かを判定し(ステップS8)、動画像シーケンス中からシーケンスの終了を示す符号語を検出してシーケンス終了と判定した場合(YESの場合)、そのまま復号処理を終了する。一方、シーケンスが続く場合(NOの場合)、ステップS3に戻り処理を繰り返す。
図3に基づいて、図2に示すステップS5におけるMB階層の復号処理例について説明する。
MB階層の復号処理において、可変長復号部101は、まずMBタイプ(ここでタイプとは符号化タイプのことであり、インター符号化あるいはイントラ符号化を示す)を復号する(ステップS11)。逆直交変換適応制御部102は、MBタイプにより復号対象のMBがインター符号化のものか、イントラ符号化のものかを判定し(ステップS12)、インター符号化MBであると判定した場合(YESの場合)、可変長復号部101は動きベクトル(MV)を復号する(ステップS13)。一方、ステップS12において、インター符号化MBでないと判定した場合(NOの場合)、ステップS14に進む。
逆直交変換適応制御部102は、復号対象のMBについてDCT係数が符号化されているか否かを判定し(ステップS14)、DCT係数が符号化されていると判定した場合(YESの場合)、ステップS15に進み、一方、DCT係数が符号化されていないと判定した場合(NOの場合)、ステップS17に進む。
次に、可変長復号部101は、ブロックを復号する(ステップS15)。このときの処理の流れを以下の図4のフロー図に基づいて具体的に説明する。
図4において、まず、可変長復号部101は、ブロックに含まれるDCT係数を復号する(ステップS21)。MPEG−2ビデオ規格では、DCT係数はRUNおよびLEVELの組で符号化されている。可変長復号部101はこのようにRUN、LEVELの組で符号化されたDCT係数を復号する。DCT係数の復号処理の例を図8に示す。
図8は、動画像ストリーム中の符号語が00100の場合におけるDCT係数の復号処理の例を示す図である。このとき復号されるRUN、LEVELは、RUNが7、LEVELが1である。RUNは値が0のDCT係数が続いて現れる個数を表し、LEVELは0の次に現れる0でないDCT係数を表す。可変長復号部101は、8×8の計64個のDCT係数を格納するメモリ上のバッファに、順に0を7個、1を1個格納する。このような動作を繰り返して8×8ブロックのDCT係数を復号する。
図8に示した1次元のバッファに格納されたDCT係数が、8×8ブロックでどこに位置するかを示すのがスキャンパターンである。図9(A),(B)に符号化方式で主に使用される3つのスキャンパターンを示す(MPEG−2ビデオ規格では、スキャンパターン0、1を用いる)。いずれのスキャンパターンでも左上の位置が図8のバッファ0に相当し、バッファ7はスキャンパターン0,1では2行3列目、スキャンパターン2では3行2列目に相当する。
次に、ステップS22において、可変長復号部101がDCT係数を復号した結果に基づきブロックに適用する演算サイズ(h1×v1)を決定する。この演算ブロックは演算用ブロックサイズに相当する。逆直交変換適応制御部102は、非ゼロのDCT係数が8×8サイズのブロック内にどのように係数が分布するか(分布状態)を判定する。前述のように、2次元のブロック内におけるDCT係数の位置は、スキャンパターンにより決まる。逆直交変換適応制御部102は、まず演算サイズのデフォルト値(h0×v0)の領域外にDCT係数が存在するか否かを判定する。デフォルトの演算サイズの領域外にDCT係数が存在しなければ高周波成分を演算する必要がないので、演算サイズを大きくすることはせずにデフォルト値に決定する(すなわちNh=h0、Nv=v0である)。一方、デフォルトの演算サイズの領域外にDCT係数が存在すれば、h0×v0のサイズ外の領域をカバーする演算サイズ(演算用ブロックサイズ)h1×v1を決定する(Nh=h1、Nv=v1とする)。
ここで、デフォルトの演算サイズの領域外にDCT係数が存在するか否かの判定方法としては、領域外に1つ以上の非ゼロのDCT係数が存在すれば、DCT係数が存在すると判定してもよく、あるいは、領域外に非ゼロのDCT係数が所定割合以上存在すれば、DCT係数が存在すると判定してもよい。
図10は、ステップS22で決定される演算サイズとデフォルトの演算サイズとの対応関係の一例を示す図である。本例は2のべき乗に限定した場合について示したものであり、このステップS22で決定される演算サイズは、デフォルトサイズの周辺の高周波成分を含むように決定されるために、必ずデフォルトサイズ以上となる。
例えば、演算サイズのデフォルト値が2×2の場合、図7に示す領域12の範囲外(図9(B)で示す位置では、スキャンパターン0のときの0,1,2,4以外、スキャンパターン1および2のときの0,1,4,5以外)にDCT係数が存在するか否かを判定し、存在しなければ演算サイズを2×2とする。また、DCT係数が存在するときは、さらに領域13、14にDCT係数が存在するか否かを判定し、領域13にのみDCT係数が存在すれば演算サイズは4×4(h1=4、v1=4)に、領域14にDCT係数が存在すれば演算サイズを8×8(h1=8、v1=8)に決定する。演算サイズ決定後、逆直交変換適応制御部102は、パラメータとしてNhおよびNvを逆量子化部103およびサイズ可変逆直交変換部104へ、また演算サイズの比h0/h1、v0/v1を縮小処理部105へ出力する。
次に、逆量子化部103は、可変長復号部101が復号したDCT係数のうち、Nh×Nvサイズに対して逆量子化処理を施す(ステップS23)。したがって、逆量子化部103への入力は8×8サイズで、出力はNh×Nvサイズとなる。
次に、サイズ可変逆直交変換部104は、逆量子化部103の出力に対してIDCT処理を施す(ステップS24)。Nh=Nv=8とするとき、2次元のIDCT処理は下記の式1に示す演算式により定義される。
2次元IDCTを実行すると、1つの画素を求めるのにN×N回の乗算とN×N−1回の加算が必要となる(N=8のとき、乗算64回、加算63回)。演算量を削減するために、2次元IDCTを1次元IDCTに置き換えて演算してもよい。この場合、2次元のブロックに対して、行(水平)方向と列(垂直)方向の2回の1次元IDCTを下記の式2に基づいて実行する。1つの画素を求めるのに2・N回の乗算と2・(N−1)回の加算が必要となる(N=8のとき、乗算16回、加算14回)。IDCT処理後のサイズは入力サイズと同じNh×Nvサイズである。
次に、逆直交変換適応制御部102は、演算サイズがデフォルト値(h0×v0)か否かを判定し(ステップS25)。演算サイズNh×Nvがデフォルト値であると判定した場合(YESの場合)、ブロック復号処理を終了し、図3に示したステップS16に進む。一方、演算サイズNh×Nvがデフォルト値でないと判定した場合(NOの場合)、ステップS26に進む。
上記ステップS26において、Nh×Nvサイズをデフォルトのh0×v0サイズに縮小する。縮小処理部105は、逆直交変換適応制御部102からの演算サイズの比h0/h1、v0/v1により、サイズ可変逆直交変換部104から入力されたIDCT処理結果を縮小する。
なお、縮小処理部105において、演算サイズの異なるブロックは全てデフォルトサイズ(h0×v0)に縮小され、最終的に出力されるブロックサイズはデフォルトサイズとなり、その解像度は最初に指定された動画サムネイルの解像度となる。
図11は、8×8サイズのブロックを2×2サイズに縮小する際の処理例を示す図である。図11において、丸印は縮小処理部105に入力される8×8サイズのブロックにおける画素データ(入力画素データ)を表し、×印は1次補間画素データを表し、*印は縮小処理部105から出力される2×2サイズのブロックにおける画素データ(出力画素データ)を表す。縮小処理後の出力画素データを、その周囲の入力画素データを用いて算出する。算出する方法としては、例えばバイキュービック補間、バイリニア補間、ニアレストネイバー補間などの手法がある。補間アルゴリズムは処理量と画質のバランスを考慮して選択する。バイリニア補間の場合、出力画素データを直接入力画素データから算出してもよいし、×印で示したように周囲4点から1次補間画素データを算出し、さらに4点の1次補間画素データを算出してもよい。
以下、図3のフローに戻ってステップS16以降の処理について説明する。
逆直交変換適応制御部102は、MBに対する復号が終了したか否かを判定し(ステップS16)、MB内の全ブロックの復号が終了したと判定した場合(YESの場合)、ステップS17に進み、MB内の全ブロックの復号が終了していないと判定した(NOの場合)、ステップS15に戻りさらにブロックを復号する。
次に、ステップS17において、復号したMBに対して動き補償を実行するか否かを判定する。動き補償部106は、可変長復号部101の復号結果に基づき動き補償の有無を判定する(ステップS17)。MBがスキップされる場合も参照ピクチャのMBをコピーする必要があるため、動き補償とみなしてもよい。動き補償を実行する場合(YESの場合)、ステップS18に進み、動き補償を実行しない場合(NOの場合)、MB復号を終了する。
ステップS18において動き補償を実行する場合、動き補償部106は復号されたMVとその修正値MV’の比が、規定のブロックサイズ8×8と演算サイズh0×v0との比となるように、修正後のMV’を算出する。ただし、修正後のMV’をMPEG−2で規定されている1/2画素精度となるように補正してもよい。例えば、演算サイズが2×2ならばMVを水平・垂直方向とも1/4に修正する。MV=(3.0,5.5)とすると、MV’=(0.75,1.375)であり、さらに補正を行った結果はMV’=(0.5,1.0)となる。
ここで、図4に示すステップS22において逆直交変換の演算サイズを決める上では、DCT係数が存在するだけでなく、そのDCT係数が復号後のブロックの画質にどの程度の影響を及ぼすかを考慮することで、影響の大きいDCT係数のみを逆直交変換処理の対象とし、演算量を削減することができる。図12に示すように、8×8サイズのブロックをさらに4×4の4つの領域に分割する(左上が領域21、右上が領域22、左下が領域23、右下が領域24である)。これらの4つの領域21〜24別に、当該領域が優位か否かを判定する。
ここで優位とは、復号画像への影響が大きいということである。優位か否かは、例えば次の2つのステップにより判定する。まず、各領域におけるDCT係数Ci(0≦i≦63)が閾値T1を越えるか否かを判定する。ここでは、Ci≦T1ならば0、T1<Ciならば1を出力する。次に、閾値T1を越えるDCT係数Ciの個数、すなわち1の個数をカウントし、各領域でカウントした1の個数が閾値T2を越えた場合にその領域を優位と判定する。その結果に基づき領域21〜24の中から優位な領域を決定し、優位な領域を含む最小の演算サイズを選択する。例えば領域21が優位ならば低周波成分のみを用いた4×4サイズのIDCT処理を、領域22が優位ならば領域0を含んだ4×8サイズを選択する。なお、DCT係数と閾値T1とを比較するにあたり、DCT係数は逆量子化後のものであってもよい。この場合には、逆量子化部103において復号した全DCT係数について逆量子化処理が施された結果が、逆直交変換適応制御部102に供給される。
優位な領域を含む最小の演算サイズは、以上のように動画像ストリーム復号装置で決定してもよいが、符号化時にエンコーダ側で事前に解析した情報を動画像ストリームに追加して、または別途供給して、サイズ可変逆直交変換部104で参照するようにしてもよい。例えば、8×8に1、4×4に2、4×8に3、8×4に4、2×2に5、2×4に6、4×2に7、1×1に8を割当て、これを可変長(または固定長)符号化する。
以上のように、入力された動画像ストリームを元の解像度よりも小さいサイズで出力する際に、一律にDCT(直交変換)係数の低周波成分を処理するだけでなく、DCT係数の分布状態により適宜IDCT(逆直交変換)の演算サイズを変更することで、演算量を削減しつつ、高周波成分の欠落による画質劣化の少ない復号画像を得ることができる。
<第2の実施形態>
図13は、本発明の第2の実施形態に係る動画像ストリーム復号装置の構成例を示すブロック図で、図中、200は動画像ストリーム復号装置を示す。図13において、第1の実施形態の図1に示した構成要素と同一の機能を持つ構成要素は同一符号としている。動画像ストリーム復号装置200に入力される動画像ストリームは、第1の実施形態と同じくハイブリッド符号化方式に従って符号化されたデータである。
図13に示すように、動画像ストリーム復号装置200は、可変長復号部101と、逆直交変換適応制御部201と、逆量子化部103と、サイズ可変逆直交変換部104と、補正処理部202と、動き補償部106と、フレームメモリ部107と、切替部108〜110とを含んで構成される。動画像ストリーム復号装置200は、入力される動画像ストリームを復号し、元の動画像の解像度を縮小して動画サムネイル用の動画像を出力する。
逆直交変換適応制御部201は、可変長復号部101からの復号データによりサイズ可変逆直交変換部104で実行される逆直交変換の演算サイズを決定し、さらに補正値を算出するための補正インデックスを復号データに応じて適応的に決定する。
補正処理部202は、逆直交変換適応制御部201から入力された補正インデックスに基づき、IDCT処理結果に対する補正値を算出する。補正値とは、IDCT処理を実行した8×8サイズのブロックを演算サイズであるh0×v0サイズに縮小した際の演算結果と、演算サイズh0×v0でIDCT処理を実行した際の演算結果との誤差に相当し、縮小した演算サイズによるIDCT処理の誤差を補正するためのデータである。
以上のような構成で、動画像ストリーム復号装置200は、元の動画像の解像度を縮小した動画サムネイル用の動画像を出力するにあたり、入出力となる動画像の解像度の比に応じて縮小した演算サイズでIDCT処理を実行しつつ、DCT係数のうち使用されない高周波成分による演算結果を補正することで画質を改善する。
本実施形態において、可変長復号部101は、動画像ストリームから動画像ストリームの解像度情報を抽出する。逆直交変換適応制御部102は、可変長復号部101により抽出された動画像ストリームの解像度情報と、予め指定された動画サムネイルの解像度情報とにより算出される動画像の縮小比に基づいて、直交変換係数の低周波成分を含むように逆直交変換処理のデフォルトブロックサイズを決定し、決定したデフォルトブロックサイズの領域外に直交変換係数が存在すると判定した場合、領域外の任意の直交変換係数に対して、直交変換係数の位置と大きさを含む補正インデックスを算出する。
上記において、逆直交変換適応制御部102は、デフォルトブロックサイズの領域外に直交変換係数が存在すると判定した場合、切替部108及び109を補正処理部202側(図中下側)に切り替え、そうでない場合、切替部108及び109を補正処理部202でない側(図中上側)に切り替える。補正処理部202は、逆直交変換適応制御部201により算出された補正インデックスに基づいて、サイズ可変逆直交変換部104から出力されるデフォルトブロックの直交変換係数に対して補正値を算出する。なお、この補正インデックスについては後述する。
動画像ストリーム復号装置200による処理の流れは、ブロック復号処理を除き、前述の図2〜図4に示した第1の実施形態の動画像ストリーム復号装置100による処理の流れと同様である。以下、動画像ストリーム復号装置200によるブロック復号処理の例について説明する。
図14は、本発明の第2の実施形態に係る動画像ストリーム復号装置200によるブロック復号処理の一例を説明するためのフロー図である。まず、可変長復号部101がRUN、LEVELの組で符号化されたDCT係数を復号する(ステップS31)。このステップS31における処理は図4に示したステップS21と同様である。
次に、逆量子化部103は、可変長復号部101が復号したDCT係数に対して逆量子化処理を施す(ステップS32)。このステップS32における処理は演算サイズが8×8固定である点を除けば、図4に示したステップS23と同様である。
次に、ステップS33において、逆直交変換適応制御部201は、IDCT処理の演算結果に対する補正値を算出するための補正インデックスを決定する。演算サイズh0×v0の領域外に存在するDCT係数の高周波成分毎に、対応する補正値を定義(補正ブロックと呼ぶ)すると、最終的な補正値はこれら補正ブロックの和として得られる。そのため、逆直交変換適応制御部201は、補正値を算出するために使用するDCT係数の高周波成分を決定し、8×8ブロック内での位置とそのDCT係数の大きさとを補正インデックスとして出力する。8×8ブロックのDCT係数の大きさをCi(0≦i≦63)として、補正インデックスを(i、Ci)と標記する。ここで、使用する補正インデックスの個数には特に制限を設けず、演算サイズh0×v0に含まれないDCT係数の全てを補正インデックスとしてもよいし、値の大きい順または任意の順に任意の個数を選択してもよい。
図15は、演算サイズが4×4のときの8×8ブロック内のDCT係数位置と補正インデックスとの関係を示す図である。図中の数字が補正インデックスの要素となる。31はIDCT処理が施されるDCT係数の領域である。そのため補正インデックスとしては使用されない。32〜34までが補正インデックスの領域である。例えば1行5列目のDCT係数に基づき補正値を算出する場合、DCT係数C5とその場所を表す5とが補正インデックスとなる。なお、図15に示すように、補正値の算出を行わない領域(領域31外で、各領域32〜34のいずれにも含まれない部分)を設けてもよいし、このような領域を設けなくともよい。
ここでステップS34での処理は、図4に示したステップS24と同様であるため、ここでの説明は省略する。
次に、逆直交変換適応制御部201は、補正処理を行うか否かを判定し(ステップS35)、演算サイズh0×v0外にDCT係数が存在せず補正処理を行わないと判定した場合(NOの場合)、ブロック復号処理を終了し、図3に示したステップS16に進み、一方、演算サイズh0×v0外にDCT係数が存在し補正処理を行うと判定した場合(YESの場合)、ステップS36に進む。
上記ステップS36において、h0×v0サイズのIDCT処理結果に対する補正値を算出する。補正処理部202は、逆直交変換適応制御部201から入力された補正インデックス(i、Ci)に従って、h0×v0サイズのブロックに適用する補正値を算出する。ここで、各補正インデックスに対応する補正ブロックはh0×v0サイズの大きさを持つ。また、補正インデックスiに対する補正ブロックをAiと表記する。補正ブロックAiに含まれるh0×v0個の数値はDCT係数の大きさCiに依存する。これらの数値は、IDCT処理と同等の演算により算出することができる。したがって、DCT係数値から都度算出するようにしてもよいし、予めメモリに記憶した演算結果を読み出して使用してもよい。ここでは、予めDCT係数の大きさに関する基準値Sを設定し、その基準値Sによる補正ブロックAiをメモリに記憶する。補正インデックスにより与えられるDCT係数Ciと基準値Sとの比に応じて、メモリから読み出したAiの値を修正することで補正値を算出する。
図16は、補正値の演算例を示す図である。この例では、i=5,6,7のDCT係数に基づき補正値を算出する。補正インデックスとして(5,C5)、(6,C6)、(7,C7)が補正処理部202に入力される。補正処理部202は、補正インデックスから補正ブロックA5,A6,A7をメモリから読み出す。次に、ki=Ci/Sとして、補正ブロックにかける係数k5,k6,k7を算出する。修正後の補正ブロックの和k5・A5+k6・A6+k7・A7により、最終的な補正値を得る。
図17は、補正インデックスと補正ブロックとの対応関係を説明するための図である。
DCT係数に関する基準値Sは、任意の値でよく、設計時に1つ決めればよい。また、補正インデックスと補正ブロックの対応関係について、補正ブロックはブロック中のDCT係数CiをCi=Sとし、それ以外を0(図17(A)に示す)として、IDCT処理(図17(B)に示す)+縮小処理(図17(C)に示す)をした結果に相当する。8x8ブロックにおいてS=128とし、i=5に対応する補正ブロックA5(4x4サイズ)は図17に示すように計算することができる。
このように、補正ブロックを予め計算する場合には8×8ブロック内の各位置(64パターン)について計算する(つまりA0〜A63を計算しておく)。また、演算サイズ(4×4、2×2)毎に計算しておく。
図16において、S=128としたときにC5=64ならば、k5=C5/S=0.5となるため、補正ブロックの各値に0.5を乗算することになる。また、演算サイズが2×2、1×1の場合には、4×4サイズの補正ブロックを用いて4×4サイズで補正値を計算した後、縮小処理により補正すると精度があがることが期待される。
以上のように、DCT(直交変換)係数の分布状態により適宜IDCT(逆直交変換)の演算結果を補正することで、演算量を削減しつつ、高周波成分の欠落による画質劣化の少ない復号画像を得ることができる。
<第3の実施形態>
図18は、本発明の第3の実施形態に係る動画像ストリーム復号装置の構成例を示すブロック図で、図中、300は動画像ストリーム復号装置を示す。図18において、第1,第2の実施形態の図1に示した構成要素と同一の機能を持つ構成要素は同一符号としている。動画像ストリーム復号装置300に入力される動画像ストリームは、第1,2の実施形態と同じくハイブリッド符号化方式に従って符号化されたデータである。
図18に示すように、動画像ストリーム復号装置300は、可変長復号部101と、逆直交変換適応制御部301と、逆量子化部103と、基底可変逆直交変換部302と、動き補償部106と、フレームメモリ部107と、切替部110とを含んで構成される。
逆直交変換適応制御部301は、可変長復号部101からの復号データにより基底可変逆直交変換部302で実行される逆直交変換の演算サイズと演算に使用するコサイン基底関数を復号データに応じ適応的に決定する。
基底可変逆直交変換部302は、逆直交変換適応制御部301から入力される演算サイズとコサイン基底関数とに基づき、IDCT処理を実行する。
以上のような構成で、動画像ストリーム復号装置300は、元の動画像の解像度を縮小した動画サムネイル用の動画像を出力するにあたり、入出力となる動画像の解像度の比に応じた縮小した演算サイズでIDCT処理を実行しつつ、DCT係数の高周波成分が存在する場合には規定サイズのブロックに対してコサイン基底関数を変更したIDCT処理を行うことで画質を改善する。
本実施形態において、可変長復号部101は、動画像ストリームから動画像ストリームの解像度情報を抽出する。逆直交変換適応制御部102は、可変長復号部101により抽出された動画像ストリームの解像度情報と、予め指定された動画サムネイルの解像度情報とにより算出される動画像の縮小比に基づいて、直交変換係数の低周波成分を含むように逆直交変換処理のデフォルトブロックサイズを決定し、決定したデフォルトブロックサイズの領域外に直交変換係数が存在すると判定した場合、領域外の直交変換係数を含むように逆直交変換処理の演算に使用する演算用ブロックサイズ及び基底関数を決定する。基底可変逆直交変換部302は、逆直交変換部に相当し、逆直交変換適応制御部102により決定された演算用ブロックサイズ及び基底関数に従って、逆直交変換処理を行う。逆直交変換適応制御部301は、演算用ブロックサイズとデフォルトブロックサイズとの比に基づいて、逆直交変換処理の演算に使用する基底関数を決定する。
動画像ストリーム復号装置300による処理の流れは、ブロック復号処理を除き、前述の図2〜図4に示した第1の実施形態の動画像ストリーム復号装置100による処理の流れと同様である。以下、動画像ストリーム復号装置300によるブロック復号処理の例について説明する。
図19は、本発明の第3の実施形態に係る動画像ストリーム復号装置300によるブロック復号処理の一例を説明するためのフロー図である。このフローの中でステップS41、S43はそれぞれ図4に示したステップS21、S23と同様であるため、ここでの説明は省略する。
ステップS41におけるDCT係数の復号後に、逆直交変換適応制御部301は、可変長復号部101がDCT係数を復号した結果に基づきブロックに適用する演算サイズおよびコサイン基底関数を決定する(ステップS42)。逆直交変換適応制御部301は、図4に示したステップS22の処理と同様にしてブロックに適用する演算サイズ(Nh×Nv)を決定する。ここでNh=h0、Nv=v0であれば、コサイン基底関数を変更せず、前述の式1または式2で示したようにcos{(2x+1)uπ/2N}を選択する(これを基底0と呼ぶ)。一方、Nh=h1、Nv=v1、すなわちデフォルトの演算サイズ以外であれば、基底0のコサイン基底関数の代わりに別のコサイン基底関数を選択する。ここでコサイン基底関数は、h0とh1(またはv0とv1)との比に応じて、以下のように決定する。なお、この例は水平方向の場合であるが垂直方向も同様である。
h0:h1=1:2のとき、[cos{(2x+1)uπ/2Nh}+cos{(2x+3)uπ/2Nh}]/2(基底1)
h0:h1=1:4のとき、[cos{(2x+1)uπ/2Nh}+cos{(2x+3)uπ/2Nh}+cos{(2x+5)uπ/2Nh}+cos{(2x+7)uπ/2Nh}]/4(基底2)
同様に、h0:h1=1:8のときのコサイン基底関数を基底3とする。コサイン基底関数の決定方法は、解像度を1/2にする縮小処理においてバイリニア補間の式により補間点f’(x)がf’(x)={f(x)+f(x+1)}/2によって計算され、この式に、式2に示したIDCTの計算式を適用すると、式3となることに由来する。
1つの画素を求めるのにNh+Nv回の乗算と、Nh+Nv−2回の加算が必要となるが、Nh(またはNv)点の画素のうちの半数について計算することになるため、高周波成分の演算しつつ、処理量を削減することができる。
逆直交変換適応制御部301は、以上のようにして決定したIDCT処理における演算サイズとコサイン基底関数とを基底可変逆直交変換部302に対して出力する。
ステップS43における逆量子化処理後に、逆直交変換適応制御部301は、演算サイズ(Nh×Nv)がデフォルト値(h0×v0)であるか否かを判定し(ステップS44)、演算サイズがデフォルト値であると判定した場合(YESの場合)、ステップS45に進み、一方、演算サイズがデフォルト値でない場合(NOの場合)、ステップS46に進む。
ステップS45において、基底可変逆直交変換部302は、逆直交変換適応制御部301からの指示に基づいて、デフォルトの演算サイズ、コサイン基底関数によりIDCT処理を実行する(ステップS45)。一方、ステップS46において、基底可変逆直交変換部302は、逆直交変換適応制御部301からの入力に基づいて、デフォルトの演算サイズ、コサイン基底関数を変更してIDCT処理を実行する(ステップS46)。
以上のように、DCT(直交変換)係数の分布状態により適宜IDCT(逆直交変換)の演算サイズおよびコサイン基底関数を変更することで、演算量を削減しつつ、高周波成分の欠落による画質劣化の少ない復号画像を得ることができる。
以上説明した第1〜第3の実施形態についてまとめると下記の通りとなる。
(1)第1の実施形態
DCT係数の分布に応じて、サイズ可変逆直交変換部における演算サイズを変化させ、出力ブロックサイズ(演算サイズ)を縮小処理で一定(デフォルト)サイズとする。
(2)第2の実施形態
サイズ可変逆直交変換部における演算サイズ及び出力ブロックサイズは一定(デフォルト)サイズであり、DCT係数の分布に応じて、補正値を変化させて、デフォルトブロックの直交変換係数に対して補正処理を行う。
(3)第3の実施形態
基底可変逆直交変換部から出力されるブロックサイズは一定(デフォルト)サイズであり、DCT係数の分布に応じて、IDCT演算における演算サイズ及びコサイン基底関数を切り替える。
<第4の実施形態>
図20は、本発明による動画像ストリーム復号装置を利用したマルチ表示のためのハードウェア構成を示すブロック図である。図中、401は複数の放送を受信可能なチューナ部、402は通信回線経由で映像コンテンツのデータ(映像ストリーム)を受信する受信部、403は外部機器から映像ストリームを供給するための外部映像入力部、404は複数の映像ストリームデータを一時的に記憶するためのデータバッファ部、405は複数のメディアデータ(動画像、音声、テキストなど)により構成される映像ストリームから各メディアデータを分離するストリーム分離部、406は本発明による動画像ストリーム復号装置にて構成される動画像復号処理部、407はマルチ表示画面を構成するための合成処理部、408はマルチ表示画面における各動画像の配置・表示サイズを制御する出力画面制御部である。以上のような構成により、チューナ部401、受信部402、及び外部映像入力部403から供給される複数の映像ストリームから分離された複数の動画像ストリームを動画像復号処理部406において並列または時分割に処理し、マルチ表示を実現することができる。
ここで、マルチ表示の表示形態、つまりディスプレイ画面にどのように表示するかは、出力画面制御部408が決定する。ディスプレイ画面への表示形態の例を下記の図21,図22に示す。
図21(A)は、動画サムネイルを同じ表示サイズでタイル上に複数表示した場合の表示例、図21(B)は、動画サムネイルをグループ化した上で、各グループで重なりを持たせて同じ表示サイズで複数表示した場合の表示例、図21(C)は行ごとの表示数を異ならせて動画サムネイルの表示サイズが上から下に行くほど大きくなるように複数表示した場合の表示例、図21(D)は動画サムネイルを一列にならべ中央以外は遠近感を持たせるように変形して複数表示する場合の表示例である。
また、図22(A)に示すように、動画サムネイルをタイル状に複数表示したマルチ表示において、ユーザが選択した動画サムネイルを周囲のものよりも拡大して表示することで、選択対象をわかりやすくすることができる。また、図22(B)に示すように、選択された動画サムネイルを時間の経過と共に拡大し、最終的には全画面における再生へと変化させることで、操作結果をわかりやすくすることができる。
図21や図22に示したように、様々な表示サイズの動画サムネイルを表示する上で、本発明における動画像ストリーム復号装置は、動画サムネイルの表示サイズに応じて逆直交変換における演算サイズを適応的に変更し、表示サイズに最も近い解像度で動画像ストリームを復号するため、通常のデコーダと比べて処理量およびメモリ使用量を低減することが可能である。
動画像ストリーム復号装置に相当する動画像復号処理部406は、出力画面制御部408の制御のもと、逆直交変換における演算サイズを変化させることで出力となる動画サムネイルのサイズを変化させる。これは前述の図6において、左上に示した240×135から1920×1080までの拡大に相当し、このとき演算サイズは1×1から拡大され8×8となる。このとき、高周波成分の含有に応じて逆直交変換を適応的に制御するため、処理量を削減しつつ画質劣化を抑えることができる。
以上のような利用シーンにおいて、動画像ストリームの復号中に逆直交変換における演算サイズを変更する場合、フレームメモリ部107に記憶されている参照画像と、復号中の画像とでは、解像度が異なることになる(ただし、演算サイズの切り替えタイミングは、少なくともピクチャ単位、つまり1ピクチャの復号終了後で次のピクチャの符号化開始前の時点とする)。例えば、入力となる動画像ストリームの解像度が1920×1080の場合で、演算サイズを2×2から4×4に変更したとき、参照画像の解像度は480×270、復号画像の解像度は960×540となる。この問題を防ぐために、参照画像が不要なIピクチャのタイミングで切り替えてもよいし、以下に説明するように動き補償部106において、この差異を吸収するようにしてもよい。
MPEG−2ビデオ規格では動き補償はMB単位で行うため、輝度成分における動き補償のサイズ(以下、MCサイズと呼ぶ)は16×16である。MCサイズは、逆直交変換の演算サイズを4×4にすると8×8、2×2にすると4×4となる。動き補償部106では、動きベクトルによって指し示される位置から予測データ選択する際に、参照画像の解像度に基づいたMCサイズで選択した後、復号画像に適したMCサイズにリサイズする。
図23は、動き補償部106におけるリサイズ処理の一例を示す図である。逆直交変換の演算サイズを2×2から4×4に変更した場合、MCサイズは4×4から8×8に適合する。図23において、白丸は予測画素を、黒丸は予測画素の上および左の画素、×印は補間画素である。このように、予測画素とその隣接画素を使い、例えばバイリニア補間により補間画素を計算することで、MCサイズを復号画像に適合させる。
なお、本発明の実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を装置に供給し、マイクロプロセッサまたはDPSによりプログラムコードが実行されることによっても本発明の目的が達成される。この場合、ソフトウェアのプログラムコード自体が本実施形態の機能を実現することになり、プログラムコードを記録した記録媒体は本発明を構成することになる。
以上、本発明の実施形態について説明したが、本発明の動画像ストリーム復号装置、その方法、プログラム、及び記録媒体は、上記の実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々の変更を加えうることは勿論である。
100,200,300…動画像ストリーム処理装置、101…可変長復号部、102,201,301…逆直交変換適応制御部、103…逆量子化部、104…サイズ可変逆直交変換部、105…縮小処理部、106…動き補償部、107…フレームメモリ部、108〜110…切替部、202…補正処理部、302…基底可変逆直交変換部。