JP2005102125A - 画像復号方法、画像復号装置 - Google Patents

画像復号方法、画像復号装置 Download PDF

Info

Publication number
JP2005102125A
JP2005102125A JP2004052126A JP2004052126A JP2005102125A JP 2005102125 A JP2005102125 A JP 2005102125A JP 2004052126 A JP2004052126 A JP 2004052126A JP 2004052126 A JP2004052126 A JP 2004052126A JP 2005102125 A JP2005102125 A JP 2005102125A
Authority
JP
Japan
Prior art keywords
decoding
frame
time
image data
decoded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2004052126A
Other languages
English (en)
Inventor
Hiroshi Kajiwara
浩 梶原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2004052126A priority Critical patent/JP2005102125A/ja
Priority to US10/823,612 priority patent/US7903734B2/en
Publication of JP2005102125A publication Critical patent/JP2005102125A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】 動画像符号化データの全部または一部を、処理能力に応じて効率良く復号し、視覚的な妨害の少ない良好な再生画質を得ること。
【解決手段】 各フレームから、サンプルフレームの符号化画像データを抽出して所定の復号単位で復号し、この復号に係る時間を計測する(S1901)。計測した時間が所定時間以下となるように、復号する復号単位の数を決定する(S1902)。与えられた復号単位の数に従って、各フレームの符号化画像データ復号する(S1904)。各フレームを復号する際に、各フレーム毎の復号に要する時間を計測する(S1905)。上記所定時間とS1905で計測された時間との差分を、各フレームを復号する毎に累計していき、この累計値が所定値以上となった場合に、S1902で決定した復号単位の数を更新する(S1907)。S1904では、S1902で決定した復号単位の数、もしくはS1907で更新した復号単位の数に従って、各フレームの符号化画像データ復号する。
【選択図】 図12

Description

本発明は、各フレームの画像が符号化された動画像データを入力して、各フレームの符号化画像データを復号する技術に関するものである。
一般に、動画像データの符号化方式は、フレーム間の相関を利用するものとしないものとに大別することができる。それぞれの方式には長所及び短所が存在し、どちらの方式が適しているかということは使用するアプリケーション次第である。例えば、Motion JPEGは、動画像データの各フレームを一枚の静止画像としてとらえて独立に符号化する方式であり、フレーム間の相関を用いない符号化方式の一例である。フレーム毎に独立に符号化することによって、動画像の分割、連結、部分的な書き換えなどの動画編集が容易であることや、復号側の処理能力に応じて復号フレーム数を選択して復号することが可能であるという利点がある。
近年、動画像データをフレーム毎独立に符号化する符号化方式において、各フレームをウェーブレット変換とビットプレーン符号化とを組み合わせて符号化する方式が注目を集めている。このような動画像符号化方式には、ウェーブレット変換におけるサブバンド分解の仕組みを利用して空間解像度を段階的に変えた復号が可能であること、また、復号ビットプレーン数を変えることにより、復号画素精度を段階的に変更することが可能である等の大きな特徴がある。
ISO/IEC JTC1/SC29/WG1で標準化作業が進められている画像符号化方式であるJPEG2000(ISO/IEC 15444)もウェーブレット変換とビットプレーン符号化との組み合わせにより構成されている。同標準のPart3では、Motion JPEG2000の名称で、動画像の各フレームの符号化に適用した場合のファイルフォーマットの規定を行っている。
Motion JPEG2000に代表されるこのような動画像符号化方式は、前述のように復号解像度、復号画素精度の柔軟性といった利点がある一方で、ビットプレーン符号化による符号化・復号処理の負荷が高いという欠点がある。特に、専用の動画像記録装置で記録した映像をパーソナルコンピュータで再生する場合に、コンピュータの性能によっては、全データを実時間で復号・表示することはできないという問題が起こる。
このような問題に対して従来から、フレームを復号するのに所望の復号処理時間を定めて符号化処理単位に復号処理時間を割り振り、割り振られた復号処理時間でビットプレーン単位に復号する方法が開示されている(例えば特許文献1を参照)。
特開2001−112004号公報
しかしながら、上記方法によると、所定の時間で復号処理を打ち切る動画像復号装置では、フレーム毎に復号処理打ち切りのポイント(復号ビットプレーン数)が変化しやすいため、動画像として再生した場合に歪みの形状の時間変化を生じ、これがフリッカ(ちらつき)として視覚上の妨害要因となるという問題がある。
本発明は以上の問題に鑑みて成されたものであり、動画像符号化データの全部または一部を、処理能力に応じて効率良く復号し、視覚的な妨害の少ない良好な再生画質を得る技術を提供することを目的とする。
本発明の目的を達成するために、例えば本発明の画像復号方法は以下の構成を備える。
即ち、各フレームの画像が符号化された動画像データを入力して、各フレームの符号化画像データを復号する画像復号方法であって、
前記各フレームから、サンプルフレームの符号化画像データを抽出して所定の復号単位で復号するサンプルフレーム復号工程と、
前記サンプルフレームの符号化画像データの復号に係る時間を計測する第1の計測工程と、
前記第1の計測工程で計測した時間が所定時間以下となるように、復号する復号単位の数を決定する決定工程と、
与えられた復号単位の数に従って、各フレームの符号化画像データ復号する復号工程と、
前記復号工程で前記各フレームを復号する際に、各フレーム毎の復号に要する時間を計測する第2の計測工程と、
前記所定時間と前記第2の計測工程で計測された時間との差分を、各フレームを復号する毎に累計していき、当該累計値が所定値以上となった場合に、前記決定工程で決定した復号単位の数を更新する更新工程とを備え、
前記復号工程では、前記決定工程で決定した復号単位の数、もしくは前記更新工程で更新した復号単位の数に従って、各フレームの符号化画像データ復号することを特徴とする。
本発明の目的を達成するために、例えば本発明の画像復号装置は以下の構成を備える。
即ち、各フレームの画像が符号化された動画像データを入力して、各フレームの符号化画像データを復号する画像復号装置であって、
前記各フレームから、サンプルフレームの符号化画像データを抽出して所定の復号単位で復号するサンプルフレーム復号手段と、
前記サンプルフレームの符号化画像データの復号に係る時間を計測する第1の計測手段と、
前記第1の計測手段が計測した時間が所定時間以下となるように、復号する復号単位の数を決定する決定手段と、
与えられた復号単位の数に従って、各フレームの符号化画像データ復号する復号手段と、
前記復号手段によって前記各フレームを復号する際に、各フレーム毎の復号に要する時間を計測する第2の計測手段と、
前記所定時間と前記第2の計測手段により計測された時間との差分を、各フレームを復号する毎に累計していき、当該累計値が所定値以上となった場合に、前記決定手段が決定した復号単位の数を更新する更新手段とを備え、
前記復号手段は、前記決定手段が決定した復号単位の数、もしくは前記更新手段が更新した復号単位の数に従って、各フレームの符号化画像データ復号することを特徴とする。
本発明の構成によれば、動画像符号化データの全部または一部を、処理能力に応じて効率良く復号し、視覚的な妨害の少ない良好な再生画質を得ることができる。
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
本発明の画像復号装置の好適な実施形態について説明する前に先ず、本発明の画像復号装置において復号対象となる動画像符号化データについて説明する。
図1は、以下の実施形態で用いる画像復号装置が復号する対象となる動画像符号化データを生成する動画像符号化装置の機能構成を示す図である。
本動画像符号化装置は、ウェーブレット変換とビットプレーン符号化とを組み合わせた符号化方式を用いて、動画像を構成する各フレームを独立に符号化する。図1を用いて、動画像符号化装置における符号化処理の流れについて簡単に説明する。図1に示すようにこの動画像符号化装置は、動画像データ入力部201、離散ウェーブレット変換部202、係数量子化部203、ビットプレーン符号化部204、符号列形成部205、そして2次記憶装置206、信号線207を備えている。
次に、図1に示される動画像符号化装置の各構成要素の動作について説明する。尚、ここで扱う動画像は、1秒あたり30フレームであって、各フレームの画像は各画素の輝度値が8ビットのモノクロ動画像データであるとする。よってこのような動画像のデータを、4秒分(合計120フレーム)動画像符号化装置に取り込み、符号化するものとして説明する。すなわち、本動画像符号化装置では、動画像データ入力部201から入力される1秒あたり30フレームの動画像データをフレーム単位に符号化し、最終的に2次記憶装置206に符号化データを格納するものである。
まず、動画像データ入力部201から1秒あたり30フレームであって、4秒分の動画像データが入力される。動画像データ入力部201は、例えばディジタルカメラ等の撮像部分であって、CCD等の撮像デバイスとガンマ補正、シェーディング補正等の各種画像調整回路とによって実現することが可能である。動画像データ入力部201は、入力された動画像データを1フレームずつ離散ウェーブレット変換部202に送る。尚、以降の説明において、便宜上各フレームデータには、入力された順に1から番号を与えて、例えばフレーム1、フレーム2、…というような番号で各フレームを識別するようにする。また、各フレームにおける水平方向の画素位置(座標)をx、垂直方向の画素位置をyとし、画素位置(x,y)の画素値をP(x,y)で表す。
動画像データ入力部201から入力された1フレームの画像データは、離散ウェーブレット変換部202でそれぞれ不図示の内部バッファに適宜格納され、2次元離散ウェーブレット変換が行われる。2次元離散ウェーブレット変換は、1次元の離散ウェーブレット変換を水平及び垂直方向それぞれに適用することにより実現するものである。図2は、1フレームの画像データに対して2次元離散ウェーブレット変換を施して4つのサブバンドを生成する処理を説明する図である。
図2(a)は符号化対象の画像データを示す図である。同図に示されるような符号化対象画像に対して、まず垂直方向に1次元離散ウェーブレット変換を適用し、図2(b)に示されるように低周波サブバンドLと高周波サブバンドHとに分解する。
次に、それぞれのサブバンドに対して水平方向の1次元離散ウェーブレット変換を適用することにより、図2(c)に示されるようなLL、HL、LH、HHの4つのサブバンドに分解する。
本動画像符号化装置の離散ウェーブレット変換部202では、上述した2次元離散ウェーブレット変換により得られたサブバンドLLに対して、さらに繰り返し2次元離散ウェーブレット変換を適用する。これによって、符号化対象画像をLL、LH1、HL1、HH1、LH2、HL2、HH2の7つのサブバンドに分解することができる。図3は、2回の2次元離散ウェーブレット変換によって得られる7つのサブバンドを示す図である。
尚、本動画像符号化装置では、各サブバンド内の係数をC(Sb,x,y)と表す。ここで、Sbはサブバンドの種類を表し、LL、LH1、HL1、HH1、LH2、HL2、HH2のいずれかである。また、(x,y)は各サブバンド内の左上隅の係数位置を(0,0)としたときの水平方向及び垂直方向の係数位置(座標)を表す。
本動画像符号化装置は、離散ウェーブレット変換部202におけるN個の1次元信号x(n)(但し、nは0〜N−1の整数)に対する1次元離散ウェーブレット変換として2つの方法を備える。一つは式(1)、(2)に示す整数型5x3フィルタによる変換であり、もう一つは式(3)、(4)に示す実数型5x3フィルタによる変換である。
h(n)=x(2n+1)
−floor{(x(2n)+x(2n+2))/2} (1)
l(n)=x(2n)
+floor{(h(n−1)+h(n)+2)/4} (2)
h(n)=x(2n+1)
−(x(2n)+x(2n+2))/2 (3)
l(n)=x(2n)
+(h(n−1)+h(n))/4 (4)
また、h(n)は高周波サブバンドの係数、l(n)は低周波サブバンドの係数、floor{R}は実数Rを超えない最大の整数値を表す。尚、式(1)、(2)及び式(3)、(4)の計算において必要となる1次元信号x(n)の両端(n<0及びn>N−1)におけるx(n)は、公知の方法により1次元信号x(n)(n=0〜N−1)の値から求めておく。
整数型5x3フィルタと実数型5x3フィルタのいずれを適用するかは、信号線207を介して装置外部から入力されるフィルタ選択信号によって、フレーム単位に指定することができる。例えば、信号線207から入力されるフィルタ選択信号が‘0’である場合、着目するフレームを整数型5x3フィルタによって分解し、フィルタ選択信号が‘1’である場合、着目するフレームを実数型5x3フィルタによって分解するといった具合である。
係数量子化部203では、離散ウェーブレット変換部202で生成された各サブバンドの係数C(S,x,y)を、各サブバンド毎に定めた量子化ステップdelta(S)を用いて量子化する。ここで、量子化された係数値をQ(S,x,y)と表す場合、係数量子化部203で行われる量子化処理は式(5)により表すことができる。
Q(S,x,y)=sign{C(S,x,y)}
×floor{|C(S,x,y)|/delta(S)} (5)
ここで、sign{I}は整数Iの正負符号を表す関数であり、Iが正の場合は1を、負の場合は−1を返す。また、floor{R}は実数Rを超えない最大の整数値を表す。但し、上述の量子化処理は離散ウェーブレット変換部202において実数型5x3フィルタが選択され、使用された場合にのみ適用されるものであり、信号線207から入力されるフィルタ選択信号により整数型5x3フィルタが選択されている場合には係数C(S,x,y)を量子化された係数値として出力する。即ちこの場合、Q(S,x,y)=C(S,x,y)となる。
ビットプレーン符号化部204は、係数量子化部203において量子化された係数値Q(S,x,y)を符号化する。尚、各サブバンドの係数をブロック分割し、別々に符号化することによりランダムアクセスを容易にする方法など符号化手法として様々な手法が提案されているが、ここでは説明を簡単にするためにサブバンド単位に符号化する。
各サブバンドの量子化された係数値Q(S,x,y)(以降、単に「係数値」と称す。)の符号化は、サブバンド内の係数値Q(S,x,y)の絶対値を自然2進数で表現し、上位の桁から下位の桁へとビットプレーン方向を優先して二値算術符号化することにより行われる。各サブバンドの係数値Q(S,x,y)を自然2進表記した場合の下からn桁目のビットをQn(x,y)と表記して説明する。尚、2進数の桁を表す変数nをビットプレーン番号と呼ぶこととし、ビットプレーン番号nはLSB(最下位ビット)を0桁目とする。
図4は、ビットプレーン符号化部204でサブバンドSを符号化する処理手順を説明するためのフローチャートである。図4に示すように、まず、符号化対象となるサブバンドS内の係数の絶対値を調べ、その最大値Mabs(S)を求める(ステップS601)。次に、サブバンド内の係数の絶対値を表すためにMabs(S)を2進数で表現する場合に必要となる桁数NBP(S)を式(6)を用いて求める(ステップS602)。
BP(S)=ceil{log2(Mabs(S+1))} (6)
但し、ceil{R}は実数R以上の最小の整数値を表すものとする。
次に、ビットプレーン番号nに有効桁数NBP(S)を代入する(ステップS603)。そして、ビットプレーン番号nから1を引いてn−1を求めてnに代入する(ステップS604)。
さらに、n桁目のビットプレーンを二値算術符号を用いて符号化する(ステップS605)。ビットプレーン内の各ビットを符号化する際には、符号化済みの情報からいくつかの状態(コンテクスト)に分類し、それぞれ異なる出現確率予測モデルで符号化する。本動画像符号化装置においては、使用する算術符号としてMQ−Coderを用いる。このMQ−Coderを用いて、ある状態(コンテクスト)Sで発生した二値シンボルを符号化する手順、或いは、算術符号化処理のための初期化手順、終端手順については、静止画像の国際標準ISO/IEC15444−1勧告等に詳細に説明されているのでここでは説明を省略する。
また、本動画像符号化装置では、各ビットプレーンの符号化の開始時に算術符号化器を初期化し、終了時に算術符号化器の終端処理を行うものとする。また、個々の係数の最初に符号化される「1」の直後に、その係数の正負符号を0、1で表し、算術符号化する。ここでは、正の場合は0、負の場合は1とする。例えば、係数が−5で、この係数の属するサブバンドSの有効桁数NBP(S)が6の場合、係数の絶対値は2進数000101で表され、各ビットプレーンの符号化により上位桁から下位桁へと符号化される。そして、2番目のビットプレーンの符号化時(この場合、上から4桁目)に最初の「1」が符号化され、この直後に正負符号「1」を算術符号化する。
次に、ビットプレーン番号nが0であるか否かを判定する(ステップS606)。その結果、nが0、すなわちステップS605においてLSBプレーンの符号化を行った場合、サブバンドの符号化処理を終了する。また、それ以外の場合、ステップS604に処理を移す。
上述した処理によって、サブバンドSの全係数を符号化することができ、各ビットプレーンnに対応する符号列CS(S,n)を生成することができる。生成した符号列CS(S,n)は、符号列形成部205に送られ、符号列形成部205内の不図示のバッファに一時的に格納される。
符号列形成部205では、ビットプレーン符号化部204により全サブバンドの係数の符号化が終了して全符号列が内部バッファに格納されると、所定の順序で内部バッファに格納される符号列を読み出す。そして、必要な付加情報を挿入して、1枚のフレームに対応する符号列を形成し、2次記憶装置206へと出力する。
符号列形成部205で生成される最終的な符号列は、ヘッダと、レベル0、レベル1及びレベル2の3つに階層化された符号化データとにより構成される。ヘッダには画像の水平方向、垂直方向の画素数や、2次元離散ウェーブレット変換の適用回数、選択されたフィルタを指定する情報、各サブバンドの量子化ステップdelta(S)など、復号に必要となる付加情報が格納される。
レベル0の符号化データは、サブバンドLLの係数を符号化して得られるCS(LL,NBP(LL)−1)からCS(LL,0)の符号列で構成される。
また、レベル1は、LH1、HL1、HH1の各サブバンドの係数を符号化して得られる符号列CS(LH1,NBP(LH1)−1)からCS(LH1,0)、CS(HL1,NBP(HL1)−1)からCS(HL1,0)、CS(HH1,NBP(HH1)−1)からCS(HH1,0)で構成される。
さらに、レベル2は、LH2、HL2、HH2の各サブバンドの係数を符号化して得られる符号列CS(LH2,NBP(LH2)−1)からCS(LH2,0)、CS(HL2,NBP(HL2)−1)からCS(HL2,0)、CS(HH2,NBP(HH2)−1)からCS(HH2,0)で構成される。
図5は、符号列形成部205において生成される1枚のフレームデータに対応する符号列の細部構造を示す図である。
このようにして構成された符号列は、復号側でヘッダとレベル0の符号化データを復号することにより元の1/4の解像度の復元画像を得ることができる。また、レベル1の符号化データを加えて復号することにより元の1/2の解像度の復元画像を得ることができる。さらに、レベル2の符号化データまで加えて復号した場合には、元の解像度の復元画像を得ることができるというように、徐々に解像度を上げて画像を復号することができる。
一方、各レベルのビットプレーン符号化データの、上位のいくつかのビットプレーンのみを復号した場合には荒い復号画像を、下位のビットプレーンへと復号対象を増やしていった場合には、徐々に精度を上げて各サブバンドの変換係数を復元することができ、復号画質を向上させることが可能となる。
2次記憶装置206は、例えば、ハードディスクやメモリといった記憶装置であり、符号列形成部205で生成された符号列を内部に格納する。2次記憶装置206では符号列形成部205から出力される各フレームの符号列が連結され、動画像データの符号化データが構成される。
以上の動画像符号化装置によって符号化された各フレームの符号化データを復号する、本発明の画像復号装置の好適な実施形態について以下に説明する。
[第1の実施形態]
図14は本実施形態に係る画像復号装置の基本構成を示す図である。
1401はCPUで、RAM1402やROM1403に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する画像復号処理を実行する。
1402はRAMで、外部記憶装置1407や記憶媒体ドライブ1408、若しくはI/F1409を介して外部装置からダウンロードされたプログラムやデータを記憶する為のエリアを備えると共に、CPU1401が各種の処理を実行する際に使用するワークエリアも備える。
1403はROMで、ブートプログラムや本装置の設定プログラムやデータを格納する。
1404、1405は夫々キーボード、マウスで、CPU1401に対して各種の指示を入力することができる。
1406は表示装置で、CRTや液晶画面などにより構成されており、画像や文字などの情報を表示することができる。
1407は外部記憶装置で、ハードディスクドライブ装置等の大容量情報記憶装置であって、ここにOSや後述する画像復号処理の為のプログラム、復号対象の画像を各フレームとする動画像の符号化データなどが保存されており、CPU1401による制御によって、これらのプログラムやデータはRAM1402上の所定のエリアにロードされる。
1408は記憶媒体ドライブで、CD−ROMやDVD−ROMなどの記憶媒体に記録されたプログラムやデータを読み出してRAM1402や外部記憶装置1407に出力するものである。なお、この記憶媒体に後述する画像復号処理の為のプログラム、復号対象の画像を各フレームとする動画像のデータなどを記録しておいても良く、その場合、記憶媒体ドライブ1408は、CPU1401による制御によって、これらのプログラムやデータをRAM1402上の所定のエリアにロードする。
1409はI/Fで、このI/F1409によって外部装置を本装置に接続し、本装置と外部装置との間でデータ通信を可能にするものである。例えは上記動画図符号化装置をI/F1409に接続し、上記動画像符号化装置によって生成された動画像の符号化データを本装置のRAM1402や外部記憶装置1407に入力することもできる。
1410は上述の各部を繋ぐバスである。
図9は、本実施形態に係る画像復号装置の機能構成を示すブロック図である。図1と同じ部分については同じ番号を付けている。図9に示すように、本実施形態に係る画像復号装置は、符号列読み出し部101、ビットプレーン復号部102、逆離散ウェーブレット変換部104、動画像データ出力部105、復号処理時間計測部106、非復号サブバンド決定部107とを備える。なお、図9に示す構成はハードウェアにより実現しても良いが、本実施形態では図9に示す各部は、各部の機能をコンピュータに実現させるプログラムにより実現するものとし、このプログラムは上記外部記憶装置1407や記憶媒体ドライブ1408、もしくはI/F1409を介して外部装置からRAM1402にロードされるものとする。
また、同図において205は前述の2次記憶装置であって、ここから動画像の符号化データを本装置に入力するのであるが、この2次記憶装置206は例えば上記外部記憶装置1407や記憶媒体ドライブ1408、もしくはI/F1409を介して本装置に接続される外部装置であって、これらの何れかから動画像の符号化データをRAM1402にロードするものとする。なお、この動画像の符号化データは上述の通り、上記動画像符号化装置によって生成されたものである。
以下、図9を参照して、本実施形態に係る画像復号装置が行う処理について説明する。
本実施形態に係る画像復号装置の復号対象とする動画像符号化データは、前述の動画像符号化装置により生成されたものであるが、この動画像符号化データの生成にあたっては、全てのフレームで整数型5x3フィルタを使用する。すなわち、前述した動画像符号化装置の信号線207から整数型5x3フィルタを選択する信号を入力して動画像データの符号化を行う。
本実施形態に係る画像復号装置はまず最初に、復号対象となる動画像符号化データから任意のフレームの符号化画像データをサンプルとして取り出して復号し、各サブバンドの復号処理に要する時間を測定して復号処理時間の見積もりを行う。
一般に動画像符号化データの復号は、動画像符号化データ中のフレームを単位に行われる。図9に示した符号列読み出し部101は、2次記憶装置206に格納されている動画像符号化データから着目するフレームの符号化データを読み出し、RAM1402に格納する。読み出しは基本的にフレーム1、フレーム2というように順番に行われるが、本実施形態では、各サブバンドの復号処理に要する時間を測定して復号処理時間の見積もりを行う為に、復号処理の開始時にはまず、任意のフレームの符号化データをサンプルとして読み出してRAM1402に格納する。以下の説明では復号処理時間の見積もりを行うために復号するフレーム(以下、サンプルフレーム)を便宜上60フレーム目とするが、これに限定されるものではない。
ビットプレーン復号部102は、RAM1402に格納された符号化データをサブバンド順に読み出して、量子化された変換係数データQ(S,x,y)を復号する。ビットプレーン復号部102における処理は、図2に示されるビットプレーン符号化部204が行った処理の逆の処理である。
すなわち、ビットプレーン符号化部204では、上位のビットプレーンから下位のビットプレーンへと係数の絶対値の各ビットを所定のコンテクストにより二値算術符号化していた。これに対しビットプレーン復号部102では、同様に上位のビットプレーンから下位のビットプレーンへと符号化時と同じコンテクストにより二値算術符号化データの復号を行い、係数の各ビットを復元する。また、係数の正負符号については符号化時と同じタイミングで、同じコンテクストを用いて算術符号の復号を行うようにする。
但し、このとき非復号サブバンド決定部107からは各サブバンド毎に復号するか否かを表すデータF(S)が入力され、ビットプレーン復号部102はこのデータF(S)を参照し、F(S)=1であるサブバンドSについては各ビットプレーンの復号を行い、F(S)=0のサブバンドSについては復号しない。このF(S)のデータは非復号サブバンド決定部107によって生成されるのであるが、この生成については後述する。
なお、本実施形態に係る画像復号装置が最初に復号するサンプルフレームについては全てのサブバンドSに対してF(S)=1とし、全てのサブバンドの復号を行う。サンプルフレームについてのF(S)のデータはRAM1402に予めロードされているものとする。
逆離散ウェーブレット変換部104では、図1の離散ウェーブレット変換部202が行うウェーブレット変換処理の逆変換が行われ、フレームのデータを復元する。本実施形態では上述の通り、全てのフレームで整数型5x3フィルタを使用して生成される動画像符号化データを復号対象とするので、式(1)、(2)に対応する逆変換を行う。
そして、動画像データ出力部105は、逆離散ウェーブレット変換部104から出力される復元画像データを、I/F1409を介して外部の装置に出力したり、表示装置1460に出力したりする。但し、本実施形態に係る画像復号装置で最初に復号されるサンプルフレームのデータは復号処理時間の推定のために復号したものであるため、復号フレームデータを破棄し、出力しない。
動画像の再生表示を行う場合には、各フレームデータは所定の時間に表示される。逆離散ウェーブレット変換104からの出力は、復号処理に掛かる時間により左右されるので表示すべき時間と同期するものではない。このため、復号したフレームデータをバッファに格納して表示時間との調整が必要になる。例えば、動画像データ出力部105で復元画像データをI/F1409を介して外部の装置に出力し、表示時間との調整のためのバッファ格納処理を本第1の実施形態の動画像復号装置の外部で行うようにしても良いし、動画像データ出力部105の内部で行うようにしても良い。
動画像データ出力部105の具体例として、動画像データ出力部105にディスプレイを接続し、動画像表示を行う場合について説明する。図15は動画像データ出力部105の一形態と、ディスプレイへの接続を示す図である。
同図において1601は複数のフレームデータを格納することが可能なバッファ、1602はディスプレイインターフェース、1603はディスプレイである。ディスプレイ1603は図14の表示装置1406に相当し、ディスプレイインターフェース1602とディスプレイ1406との接続線はバス1410に相当する。バッファ1601は逆離散ウェーブレット変換部104から可変の時間間隔で出力される復元画像データを、順番に格納する。復元画像データ格納の際には格納する復元画像データのフレーム番号と格納するアドレスを保持し、後から順番に取り出せるようにしておく。ディスプレイインターフェース1602は動画像データのフレームレートに応じて一定の時間間隔(例えば秒あたり30フレームの動画像であるならば1/30秒おき)でバッファ1601から復元画像データを順番に取り出し、ディスプレイ1603へと表示する。取り出したフレームデータはバッファ1601から消去される。バッファ1601は、逆離散ウェーブレット変換部104からの復元画像データの入力と、ディスプレイインターフェースによるデータ取り出しの時間間隔の違いを調整する役割を果たす。
本実施形態の動画像復号装置では、後述する処理によって、1フレームの復号処理時間の平均が目標復号時間Tとなるように制御を行う。しかしながら、各フレームのデータ復元に掛かる時間にはばらつきがあるため、バッファ1601に格納されるフレームデータの枚数が変化する。表示時間にフレームデータがバッファに準備されていない状態にならないように、動画復号の開始から所定時間後に再生表示を開始する、あるいは所定のフレーム枚数がバッファに蓄積されてから再生開始するなど、動画再生開始のタイミングを調整する。また、バッファ容量に制約のある場合には、バッファに所定枚数以上のフレームデータが格納されている場合には、フレームデータの復号処理を休止するよう制御することも必要となる。
復号処理時間計測部106は、ビットプレーン復号部102によってサンプルフレームの各サブバンドの係数を復号する時間(復号時間Dt(SI))を測定する。ここでSIはサブバンドを特定するインデックス値である。即ち、復号処理時間計測部106は、ビットプレーン復号部102による復号処理の復号単位を「サブバンド」とした場合に、復号単位毎の復号時間Dt(SI)を測定する。そして復号処理時間計測部106はこの測定により、図10に示すようなテーブルを構築し、RAM1402にこのテーブルのデータを格納する。
図10はサブバンドインデックスSIとサブバンドSの係数復号時間(復号所要時間)との関係を表すテーブルの構成例を示す図である。Dt(0)からDt(6)の部分には実際の計測時間が格納される。このテーブルを参照すれば、例えばサブバンドHH1(SI=3)の係数復号時間はDt(3)であると特定することができる。
また復号処理時間計測部106は、符号列読み出し部101が2次記憶装置206から1フレーム分の符号化画像データを読み出す開始時から、このフレームの復元された画像データが動画像データ出力部105から出力されるまでにかかる時間Dtを「1つのフレームの符号化画像データの復号に係る時間」として計測し、非復号サブバンド決定部107へと出力する。本実施形態では復号処理時間計測部106は先ずサンプルフレームの符号化画像データの復号に係る時間Dtを計測する。
復号処理時間計測部106は、上記動画像において最初のフレーム以外については上記時間Dtを測定し、非復号サブバンド決定部107へと出力する。
非復号サブバンド決定部107は、復号処理時間計測部106から出力されるサンプルフレームの復号処理時間Dtが、1フレームの画像データを復元して出力するまでに要する時間の上限値として予めRAM1402に格納されている値以下となるように、1フレームの符号化画像データを構成する各サブバンドのうち、復号しないサブバンドを決定する処理を行う。より具体的には各サブバンドを復号するか否かを決定する。
ここでRAM1402には本処理の前段で予め、非復号サブバンド数を表す変数Mと、各サブバンドを復号するか否かを示す(初期化状態の)復号フラグF(S)のデータと、1フレームの画像データを復元して出力するまでに要する時間の上限値(目標復号処理時間)を表す変数T、時間差分を表す変数ΔTが保持されているものとする。
そして後述する処理によって、復号しないサブバンドを決定し、この旨を反映した復号フラグF(S)のデータを生成する。
図11は各サブバンドSに対する復号フラグF(S)を表すテーブルの構成例を示す図である。同図は非復号サブバンド数M=3である場合のテーブルであり、同図のサブバンドの並びで上から順にM個のサブバンドが非復号サブバンドに設定されている。後述する処理では図11に示すテーブルを作成し、作成したテーブルのデータをRAM1402に格納することを行う。
図12は、本実施形態に係る画像復号装置による動画像符号化データの復号処理の流れを示すフローチャートである。なお同図に従ったプログラムはRAM1402にロードされており、CPU1401がこれを実行することで、本実施形態に係る画像復号装置は図12に示したフローチャートに従った処理を行うことができる。以下、図12に示したフローチャートを参照して、本実施形態に係る画像復号装置が行う画像復号処理についてより詳細に説明する。
まず、符号列読み出し部101によって2次記憶装置206から読み出されたサンプルフレームの符号化画像データをビットプレーン復号部102、逆離散ウェーブレット変換部104によって復号し、復号処理時間計測部106によりサンプルフレームの符号化画像データを構成する各サブバンドの復号時間Dt(SI)、及びサンプルフレームの符号化画像データを構成する全てのサブバンドの復号を行い、出力するまでに要する時間である復号処理時間Dtを計測する(ステップS1900)。
次に、ステップS1900で求めた各時間を元に、非復号サブバンド決定部107にて非復号サブバンド数Mを決定する(ステップS1901)。目標復号処理時間Tに対して実際の復号処理時間DtがDt≦Tの場合には、各フレームを構成する全てのサブバンドを復号しても1フレームの復号時間が目標復号処理時間内で収まるので、M=0(非復号サブバンド数は0、即ち全てのサブバンドを復号する)と設定する。
一方、Dt>Tの場合、1フレームを構成する全てのサブバンドを復号していては、1フレームの画像データを復元して出力するまでに要する時間が目標復号処理時間内には収まらない。そこで、1フレームを構成する各サブバンドのうち、低解像度のサブバンドから順次非復号サブバンドに含めていく処理を行う。このようにすることで、復号するサブバンドの数を減らすことができるので、1フレームの画像データを復元して出力するまでに要する時間を目標復号処理時間内に納めることができる。
具体的には、Dt≦Tとなるまで、サブバンド番号0から6の順で復号サブバンド数Mを減らす。即ち、以下の式を満たす最小のMを求め、これを非復号サブバンド数Mとする(ステップS1901)。
Figure 2005102125
以上の処理により、各フレームを目標復号処理時間内に復号して出力することができるであろう非復号サブバンド数Mを決定する。なお、以上の処理は非復号サブバンド、即ち復号しないサブバンドの数を決定しているが、これは換言すれば復号するサブバンドの数を決定していることに等価である。
次に、各フレームの先頭(ここではフレーム1とする)から順次、各フレームの符号化画像データの復号処理を行うのであるが、その前に、時間差分ΔTを0に設定する(ステップS1902)。
次に、非復号サブバンド決定部107で、ステップS1901で決定した非復号サブバンド数Mに基づいて復号フラグF(S)を決定する(ステップS1903)。ステップS1903における処理を図11のテーブルを例に取り説明すると、例えばステップS1901でM=3と決定した場合、S=HH2,LH2,HL2に対応するF(S)、即ち上から3つのF(S)が0となり、それ以外のF(S)は1となる。このようにして生成したテーブルのデータは上述の通りRAM1402に格納する。
続いて、符号列読み出し部101は2次記憶装置206から各フレームの符号化画像データを読み出して後段のビットプレーン復号部102に出力し、ビットプレーン復号部102はF(S)のテーブルのデータを参照して、符号列読み出し部101から入力される各フレームの符号化画像データにおいて、復号すべきサブバンドにおけるビットプレーンのみを復号し、更に、その復号結果を用いて逆離散ウェーブレット変換部104は逆離散ウェーブレット変換を行い、各フレームの復号結果、即ち各フレームの画像データが動画像データ出力部105に出力される(ステップS1904)。
復号処理時間計測部106はステップS1904における一連の処理に係った時間(ステップS1904で行われた、1フレームの画像データを復元して出力するまでに要する時間)Dtを計測し、非復号サブバンド決定部107に通知する(ステップS1905)。
非復号サブバンド決定部107は、1フレームの目標復号時間Tと実際にかかった復号処理時間Dtの差分を求め、保持している時間差分ΔTに加算する(ステップS1906)。この時間差分Δtには1フレームの符号化画像データを復号する毎に、「1フレームの目標復号時間Tと実際にかかった復号処理時間Dtとの差分」が累計されていく。
次に、ΔTの値に応じて非復号サブバンド数Mを更新する(ステップS1907)。即ち、予め求められ、RAM1402に格納されている値Dt(M−1)×nよりもΔTが大きければ、変数Mが保持する値、即ち非復号サブバンド数から1を減じ、変数Mの値を小さくする。
nはあらかじめ定めた任意の数であり、大きい値ほど復号サブバンド数の変化は起こりにくくなる。ΔTが所定の閾値(本実施形態ではDt(M−1)×n)よりも大きくなるのは、目標復号処理時間Tの総和(これまでの復号処理の回数をGとおくとT×G)に対して実際にかかった復号時間Dtの総和(これまでの復号処理の回数をGとおくとDt×G)が小さい場合であり、その場合、まだいくつか余分にサブバンドを復号する時間の余裕があると判断することができる。
よって、復号画質を向上させるために非復号サブバンド数Mの値を1つ小さくする(換言すれば、復号するサブバンドの数を1つ増やす)。なお、非復号サブバンド数を減じる数は「1」に限定されるものではなく、閾値の値によっては、「2」以上の数を用いても良い。
ここで、本実施形態において閾値として用いるDt(M−1)×nは非復号サブバンド数Mを一つ少なくしたことにより、新たに復号対象となるであろうサブバンドの復号所要時間の目安である。
また、反対に、予め求められ、RAM1402に格納されている値Lq(Lq<0)よりもΔTが小さければ、Mに1を加えて、値を大きくする。
ΔTが所定の閾値(本実施形態ではLq)よりも小さくなるのは、目標復号処理時間Tの総和(これまでの復号処理の回数をGとおくとT×G)に対して実際にかかった復号時間Dtの総和(これまでの復号処理の回数をGとおくとDt×G)が大きい場合であり、その場合、全体の処理に遅れが生じていると判断することができる。
従って、1フレームの復号時間を短縮するために非復号サブバンド数を増やす。但しMの値の範囲は0から7までとし、上述の更新処理により0より小さくなった場合には0、7より大きくなった場合には7とする。
以上のステップS1904からステップS1908までの処理は上記動画像の全てのフレーム(若しくはキーボード1402やマウス1405等により指定されたフレーム数分)について行い、全てのフレームについて行った場合には、本処理を終了し、全てのフレームについて行っていない場合には処理をステップS1904に戻し、以降の処理を繰り返す。
以上の処理によって、復号単位であるサブバンドの数を決めて復号処理を行うことができる。
以上の説明により、本実施形態に係る画像復号装置によって、予めサブバンドの復号所要時間を見積もっておき、この復号所要時間と、1フレームの復号処理にかかる時間と目標復号時間の差分から、非復号サブバンド数Mを決めることで、再生画像の視覚上の不具合をできるだけ抑制して、復号処理時間を制御することができる。
[第2の実施形態]
第1の実施形態では1フレームの復号時間を所定時間内に納めるためにサブバンド毎の復号所要時間を見積もり、非復号サブバンド数を決定した。即ち復号単位をサブバンドとした。本実施形態では同様の目的を達成するために、この復号単位を「ビットプレーン」とし、復号画質を段階的に制御するパラメータ(以降、Qファクタと呼ぶ)を設定して、各Qファクタの復号所要時間を見積もり、非復号ビットプレーン数を決定する。本実施形態の画像復号装置では0から9までの10段階のQファクタとし、あらかじめ各Qファクタ毎に各サブバンドの非復号ビットプレーン数を定める。Qファクタの例については後述する。
また、本実施形態の画像復号装置では、実数型5x3フィルタを使用してサブバンド分解を行った画像符号化データを復号対象とする。即ち、前述した動画像符号化装置において信号線207から実数型5x3フィルタを選択する信号を入力して、動画像の各フレームを符号化する。また、各フレームの画像を符号化する際に用いた、各サブバンドの量子化ステップDelta(S)を全フレームで同一とする。
また、本実施形態に係る画像復号装置の基本構成については第1の実施形態と同じ、即ち、図14に示した構成と同じものとする。
図7は、本実施形態に係る画像復号装置の機能構成を示すブロック図である。図1、9と同じ部分については同じ番号を付けている。図7に示すように、本実施形態に係る画像復号装置は、符号列読み出し部904、ビットプレーン復号部102、係数逆量子化部901、逆離散ウェーブレット変換部902、動画像データ出力部105、復号処理時間計測部106、非復号ビットプレーン決定部903とを備える。なお、図7に示す構成はハードウェアにより実現しても良いが、本実施形態では図7に示す各部は、各部の機能をコンピュータに実現させるプログラムにより実現するものとし、このプログラムは上記外部記憶装置1407や記憶媒体ドライブ1408、もしくはI/F1409を介して外部装置からRAM1402にロードされるものとする。
また、同図において205は前述の2次記憶装置であって、ここから動画像の符号化データを本装置に入力するのであるが、この2次記憶装置206は例えば上記外部記憶装置1407や記憶媒体ドライブ1408、もしくはI/F1409を介して本装置に接続される外部装置であって、これらの何れかから動画像の符号化データをRAM1402にロードするものとする。なお、この動画像の符号化データは上述の通り、上記動画像符号化装置によって生成されたものである。
以下、図7を参照して、本実施形態に係る画像復号装置が行う処理について説明する。
本実施形態に係る画像復号装置はまず最初に、復号対象となる動画像符号化データから任意のフレームの符号化画像データをサンプルとして取り出して、様々な値のQファクタで復号し、夫々のQファクタの値に応じた復号時間を測定する。
一般に動画像符号化データの復号は、動画像符号化データ中のフレームを単位に行われる。図7に示した符号列読み出し部904は、2次記憶装置206に格納されている動画像符号化データから着目するフレームの符号化データを読み出し、RAM1402に格納する。読み出しは基本的にフレーム1、フレーム2というように順番に行われるが、本実施形態では、各フレームの復号処理を行う前に、上記サンプルとしてのフレームの符号化画像データを様々な値のQファクタで復号し、夫々のQファクタの値に応じた復号時間を測定するために、任意のフレームの符号化データをサンプルとして読み出してRAM1402に格納する。以下の説明ではこのフレーム(以下、サンプルフレーム)を便宜上60フレーム目とするが、これに限定されるものではない。
また、符号列読み出し部904はフレームの符号化画像データを読み出した際には、この符号化画像データのヘッダを参照し、ここから各サブバンドの符号化時の量子化ステップdelta(S)を読み出し、RAM1402に格納する処理も行う。
ビットプレーン復号部102は、RAM1402に格納された符号化データをサブバンド順に読み出し、第1の実施形態と同様の処理を行って、量子化された変換係数データQ(S,x,y)を復号する。ビットプレーン復号部102における処理は、図2に示されるビットプレーン符号化部204が行った処理の逆の処理である。
ここで、第1の実施形態では、非復号サブバンド決定部107が各サブバンド毎に復号するか否かを示すデータF(S)を決定し、ビットプレーン復号部102は各フレームについてビットプレーン復号処理を行う際に、F(S)に従って、各サブバンド毎に復号/非復号を切り替えていた。
本実施形態では、非復号ビットプレーン決定部903が各サブバンド毎に、下位何ビットのビットプレーンの復号を行わないかを示す「非復号ビットプレーン数ND(S)」を決定する。ND(S)は、サブバンドSの下位ND(S)ビット分のビットプレーンについては復号処理を行わないことを示すデータである。
従って、ビットプレーン復号部102は各フレームについてビットプレーンの復号処理を行う際に、このデータND(S)を参照することで、サブバンドSの下位ND(S)ビット分のビットプレーンの復号処理は行わないようにすることができる。このようなND(S)を求める処理については後述する。
なお、本実施形態に係る画像復号装置が最初に復号するサンプルフレームについては全てのサブバンドSに対してND(S)=0とし、全てのサブバンドのビットプレーンの復号を行う。サンプルフレームについてのND(S)のデータはRAM1402に予めロードされているものとする。
係数逆量子化部901では、各サブバンド毎に定めた量子化ステップdelta(S)とビットプレーン復号部102で復号された量子化された係数値Q(S,x,y)とから、各サブバンドの係数C(S,x,y)を復元する。
逆離散ウェーブレット変換部902では、図1の離散ウェーブレット変換部202が行うウェーブレット変換処理の逆変換が行われ、フレームのデータを復元する。本実施形態では上述の通り、全てのフレームで実数型5x3フィルタを使用して生成される動画像符号化データを復号対象とするので、式(3)、(4)に対応する逆変換を行う。
そして、動画像データ出力部105は、逆離散ウェーブレット変換部902から出力される復元画像データを、I/F1409を介して外部の装置に出力したり、表示装置1460に出力したりする。但し、本実施形態に係る画像復号装置で最初に複数回復号されるサンプルフレームのデータは復号処理時間の推定のために復号したものであるため、復号フレームデータを破棄し、出力しない。
復号処理時間計測部106は、符号列読み出し部904が2次記憶装置206から1フレーム分の符号か画像データを読み出す開始時から、ビットプレーン復号部102、係数逆量子化部901、逆離散ウェーブレット変換部902が1フレームの符号化画像データを復号処理して、動画像データ出力部105へと画像データが出力されるまでの時間を、Qファクタの値を0から9まで変化させて、夫々の場合についての1フレーム分の復号時間を計測する。即ち、Qファクタの値が0である場合の1フレーム分の復号時間、Qファクタの値が1である場合の1フレーム分の復号時間、、、、Qファクタの値が9である場合の1フレーム分の復号時間を求める。
本実施形態では先ずサンプルフレームの復号を行うので、復号処理時間計測部106はQファクタの値が0である場合のサンプルフレームの復号時間、Qファクタの値が1である場合のサンプルフレームの復号時間、、、、Qファクタの値が9である場合のサンプルフレームの復号時間を求める。
図8は、各Qファクタの値に対するサンプルフレームの復号時間Dt’(Q)を示す図である。Dt’(0)からDt’(9)の部分には実際の計測時間が格納される。復号処理時間計測部106は上記各復号時間を求める処理を行うことにより、各Qファクタの値に対して求めたサンプルフレームの復号時間Dt’(Q)のデータを生成し、RAM1402に格納する。
そして復号処理時間計測部106は図8に示したDt’(0)〜Dt’(9)までの復号時間のデータを求め、RAM1402に格納する処理を終えると、次に、Qファクタの値の変化に対する復号処理時間の増分Dt(Q)を求める処理を行う。
具体的には、以下の式(7)に従って、Dt(Q)を求める。
Dt(Q)=Dt’(Q+1)−Dt’(Q) (7)
ただし、0≦Q≦8である。
そして、復号処理時間計測部106は求めたDt(0)〜Dt(8)のデータをRAM1402に格納する。
また復号処理時間計測部106は、符号列読み出し部101が2次記憶装置206から1フレーム分の符号化画像データを読み出す開始時から、このフレームの復元された画像データが動画像データ出力部105から出力されるまでにかかる時間を「1つのフレームの符号化画像データの復号に係る時間」として求めるのであるが、これは上記Dt’(0)に等価であるため、これを非復号サブバンド決定部107へと出力する。
復号処理時間計測部106は、上記動画像において最初のフレーム以外については上記時間Dt(即ちDt’(Q))を測定し、非復号サブバンド決定部107へと出力する。
非復号サブバンド決定部107は、復号処理時間計測部106から出力されるサンプルフレームの復号処理時間Dtが、1フレームの画像データを復元して出力するまでに要する時間の上限値として予めRAM1402に格納されている値以下となるように、1フレームの符号化画像データを構成する各サブバンドの各ビットプレーンのうち、復号しないビットプレーンを決定する処理を行う。
ここでRAM1402には本処理の前段で予め、インデックスとして用いる変数Qと、1フレームの復号時間の上限値である目標復号処理時間を表す変数T、時間差分を表す変数ΔT、そして、Qファクタの値に応じた、各サブバンドの非復号ビットプレーン数が登録されたテーブルのデータが保持されているものとする。
図6はQファクタの値に応じた、各サブバンドの非復号ビットプレーン数が登録されたテーブルの構成例を示す図である。同図のテーブルは予め作成され、RAM1402に格納されるものである。同図のテーブルを参照すれば、例えばQファクタの値として「4」を用いる場合、サブバンドS=HH2,HL2(LH2)、HH1については上記ND(S)=4,即ち、下位4ビット分のビットプレーンは復号しないものとし、サブバンドS=HL1(LH1)については上記ND(S)=3,即ち、下位3ビット分のビットプレーンは復号しないものとし、サブバンドS=LLについては上記ND(S)=1,即ち、下位1ビット分のビットプレーンは復号しないものとすることが分かる。
よって、以下説明する処理では復号処理で用いるQファクタの値を求め、求めたQファクタの値に応じて各サブバンド毎の非復号ビットプレーンの数を求める。
図13は、本実施形態に係る画像復号装置による動画像符号化データの復号処理の流れを示すフローチャートである。なお同図に従ったプログラムはRAM1402にロードされており、CPU1401がこれを実行することで、本実施形態に係る画像復号装置は図13に示したフローチャートに従った処理を行うことができる。以下、図13に示したフローチャートを参照して、本実施形態に係る画像復号装置が行う画像風号処理についてより詳細に説明する。
まず、符号列読み出し部904によって2次記憶装置206からサンプルフレームの符号化画像データを読み出す(ステップS2001)。次に復号処理時間計測部106は、上記変数Qに値9を代入して初期化する(ステップS2002)。そして復号処理時間計測部106は以下説明するステップS2003からステップS2006までの処理を、変数Qの値が負になるまで行う。
まず、符号列読み出し部904によってステップS2001で読み出されたサンプルフレームの符号化画像データをビットプレーン復号部102、係数逆量子化部901、逆離散ウェーブレット変換部902によって復号する(ステップS2003)。この復号処理はQファクタの値(即ち変数Qが保持する値)が9である場合の復号処理である。
復号処理時間計測部106はステップS2003における処理に要する時間を計測する(ステップS2004)。この時点で変数Qの値は「9」であるので、ステップS2004で計測した時間は上述のDt’(9)に相当する。次に、復号処理時間計測部106はステップS2004で計測したDt’(9)のデータをRAM1402に格納する(ステップS2005)。
次に、復号処理時間計測部106は変数Qが保持する値から1を引いた結果を再び変数Qに代入する処理を行う(ステップS2006)。ステップS2006の処理後、変数Qが保持する値は「8」となる。
次に、復号処理時間計測部106は変数Qが保持する値が負であるか否かを判定し(ステップS2007)、負でない場合には処理をステップS2003に戻し、上記処理を繰り返す。ここで変数Qが保持する値は「8」であり、8>0であるので、処理をステップS2003に戻す。
ステップS2003ではQ=8の場合について復号処理を行い、ステップS2004ではその復号時間を計測する。この時点で変数Qの値は「8」であるので、ステップS2004で計測した時間は上述のDt’(8)に相当する。
そしてステップS2005では式(7)に従ってQファクタの値の変化に対する復号処理時間の増分Dt(Q)を求める処理を行う。この増分を求める処理については上記式(7)に従って以下のようにして行う。
Dt(8)=Dt’(9)−Dt’(8)
即ちDt(8)は、今回ステップS2004で求めたDt’(8)と、前回ステップS2004で求めたDt’(9)とを用いて求める。これはQ<9の場合について全て同じで、一般に、Dt(Q)は、今回ステップS2004で求めたDt’(Q)と、前回ステップS2004で求めたDt’(Q+1)とを用いて求める。
即ち、ステップS2005ではQ=9の場合には上記増分Dt(Q)を求める処理は行わずに、Dt’(9)のデータをRAM1402に格納する処理を行い、Q<9の場合には式(7)に従って上記増分Dt(Q)を求める。
以上のステップS2003〜ステップS2006までの処理をQ<0となるまで行うのであるが、Q<0となったときは即ち、Dt(0)〜Dt(8)が求まったということなので、次に、非復号ビットプレーン決定部903は、これらDt(0)〜Dt(8)を用いて、動画像データの各フレームを復号するのに用いるQファクタの値を求める(ステップS2208)。
目標復号処理時間Tに対して、ステップS2004でQ=0の場合に求めたDt’(0)がDt’(0)≦Tの場合には、各フレームを構成する全てのサブバンドの全てのビットプレーンを復号しても1フレームの復号時間が目標復号処理時間内で収まるので、Q=0(非復号ビットプレーン数は0、即ち全てのビットプレーンを復号する)と設定する。
一方、Dt’(0)>Tの場合、1フレームを構成する全てのサブバンドの全てのビットプレーンを復号していては、1フレームの画像データを復元して出力するまでに要する時間が目標復号処理時間内には収まらない。そこで、1フレームの画像データを復元して出力するまでに要する時間が目標復号処理時間内に収まるようなQファクタの値を求め、図6に示したテーブルを参照して、求めたQファクタの値で規定される非復号ビットプレーン以外を復号することにより、1フレームの画像データを復元して出力するまでに要する時間を目標復号処理時間内に納めることができる。
具体的には、以下の式を満たす最小のQを求め、これを以下用いるべきQファクタの値とする。
Figure 2005102125
以上の処理により、各フレームを目標復号処理時間内に復号して出力するためのQファクタの値を求めることができる。
次に、各フレームの先頭(ここではフレーム1とする)から順次、各フレームの符号化画像データの復号処理を行うのであるが、その前に、時間差分ΔTを0に設定する(ステップS2209)。
次に、非復号サブバンド決定部903で、ステップS2208で求めたQファクタの値に基づいて非復号ビットプレーン数を決定する(ステップS2210)。これは上述の通り、図6に例示したテーブルのデータを参照し、ステップS2208で求めたQの値に応じた各サブバンドにおける非復号ビットプレーンの数を取得することにより行われる処理である。
なお、ステップS2210における処理は非復号ビットプレーン、即ち復号しないビットプレーンの数を決定しているが、これは換言すれば復号するビットプレーンの数を決定していることに等価である。なお、決定した各サブバンド毎の非復号ビットプレーンの数は上記ND(S)のデータとしてRAM1402に格納される。
続いて、符号列読み出し部101は2次記憶装置206から各フレームの符号化画像データを読み出して後段のビットプレーン復号部102に出力し、ビットプレーン復号部102は上記ND(S)のデータを参照して、符号列読み出し部101から入力される各フレームの符号化画像データにおいて、各サブバンドで復号すべきビットプレーンのみを復号し、更に、その復号結果を用いて逆離散ウェーブレット変換部104は逆離散ウェーブレット変換を行い、各フレームの復号結果、即ち各フレームの画像データが動画像データ出力部105に出力される(ステップS2211)。
復号処理時間計測部106はステップS2211における一連の処理に係った時間(ステップS2211で行われた、1フレームの画像データを復元して出力するまでに要する時間)Dtを計測し、非復号サブバンド決定部903に通知する(ステップS2212)。
非復号サブバンド決定部903は、1フレームの目標復号時間Tと実際にかかった復号処理時間Dtの差分を求め、保持している時間差分ΔTに加算する(ステップS2213)。この時間差分Δtには1フレームの符号化画像データを復号する毎に、「1フレームの目標復号時間Tと実際にかかった復号処理時間Dtとの差分」が累計されていく。
次に、ΔTの値に応じてQファクタの値(変数Qが保持する値)を更新する(ステップS2214)。即ち、予め求められ、RAM1402に格納されている値Dt(Q−1)×nよりもΔTが大きければ、変数Qが保持する値から1を減じ、変数Qの値を小さくする。
nはあらかじめ定めた任意の数であり、大きい値ほどQファクタの値の変化は起こりにくくなる。ΔTが所定の閾値(本実施形態ではDt(Q−1)×n)よりも大きくなるのは、目標復号処理時間Tの総和(これまでの復号処理の回数をGとおくとT×G)に対して実際にかかった復号時間Dtの総和(これまでの復号処理の回数をGとおくとDt×G)が小さい場合であり、その場合、まだいくつか余分にビットプレーンを復号する時間の余裕があると判断することができる。
よって、復号画質を向上させるためにQファクタの値を1つ小さくする(換言すると、図6のテーブルに基づき、非復号ビットプレーンの数を少なくする)。なお、Qファクタの値を減じる数は「1」に限定されるものではなく、閾値の値によっては、「2」以上の数を用いても良い。
また、反対に、予め求められ、RAM1402に格納されている値Lq(Lq<0)よりもΔTが小さければ、Qが保持する値に1を加えて、値を大きくする。
ΔTが所定の閾値(本実施形態ではLq)よりも小さくなるのは、目標復号処理時間Tの総和(これまでの復号処理の回数をGとおくとT×G)に対して実際にかかった復号時間Dtの総和(これまでの復号処理の回数をGとおくとDt×G)が大きい場合であり、その場合、全体の処理に遅れが生じていると判断することができる。
従って、1フレームの復号時間を短縮するためにQファクタの値を大きくし、その結果非復号ビットプレーンの数を増やす。但しQの値の範囲は0から9までとし、上述の更新処理により0より小さくなった場合には0、9より大きくなった場合には9とする。
以上のステップS2210からステップS2214までの処理は上記動画像の全てのフレーム(若しくはキーボード1402やマウス1405等により指定されたフレーム数分)について行い、全てのフレームについて行った場合には、本処理を終了し、全てのフレームについて行っていない場合には処理をステップS2210に戻し、以降の処理を繰り返す。
以上の処理によって、復号単位であるビットプレーンの数を決めて復号処理を行うことができる。
以上の説明により、本実施形態に係る画像復号装置によって、サンプルフレームについて画質のパラメータを変えて復号し、各画質のパラメータ変更による復号所要時間を見積もり、この復号所要時間と、1フレームの復号処理にかかる時間と目標復号時間の差分から、この画質のパラメータを決定することで、再生画像の視覚上の不具合をできるだけ抑制して、復号処理時間を制御することができる。
<変形例>
例えば、上記第1,2の実施形態ではサブバンドを単位にビットプレーン符号化を行ったが、サブバンドをブロックに分割し、ブロックごとにビットプレーン符号化を行ってもよい。また、一つのビットプレーンを複数のパスで符号化するようにしても構わない。
また、復号単位として第1の実施形態ではサブバンド、第2の実施形態ではビットプレーンとしたが、これ以外にもコードブロックを用いても良いし、第1,2の実施形態に限定されるものではない。
また上記第1,2の実施形態では二値算術符号化の方法としてMQ-Coderを用いる例について述べたが、これに限定されるものではなく、例えば、QM-Coder等、MQ-Coder以外の算術符号化方法を適用しても構わないし、マルチコンテクストの情報源を符号化するに適する方式であればその他の2値符号化方式を適用しても構わない。
また、サブバンド分解のためのフィルタは上記第1,2の実施形態に限定されるものではなく、実数型9x7フィルタなど、その他のフィルタを使用しても構わない。さらに、その適用回数についても第1,2の実施形態に限定されるものではない。また上記第1,2の実施形態では水平方向、垂直方向に同回数の1次元離散ウェーブレット変換を施したが、同一回数でなくてもよい。
さらに、動画像符号化データの構造についても上記第1,2の実施形態に限定されるものではなく、符号列の順序、付加情報の格納形態など、変えても構わない。例えばフレームデータの符号化方式としてISO/IEC15444−1に定めるJPEG2000を用いる場合に好適なものであり、JPEG2000の規格に記される符号化データ、あるいは同規格のPart3に規定するMotion JPEG2000の符号化データとしても良い。
また、上記第1,2の実施形態では復号処理に先立ち、任意の1枚のフレームを復号して処理時間の見積もりを行ったが、複数のフレームをサンプルとして復号処理時間の見積もりを行っても良いし、復号処理の途中で復号処理時間の見積もりを更新するような構成としても良い。
[その他の実施形態]
尚、本発明は、複数の機器(例えば、ホストコンピュータ、インタフェース機器、リーダ、プリンタ等)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置等)に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
本発明の実施形態で用いる画像復号装置が復号する対象となる動画像符号化データを生成する動画像符号化装置の機能構成を示す図である。 1フレームの画像データに対して2次元離散ウェーブレット変換を施して4つのサブバンドを生成する処理を説明する図である。 2回の2次元離散ウェーブレット変換によって得られる7つのサブバンドを示す図である。 ビットプレーン符号化部204でサブバンドSを符号化する処理手順を説明するためのフローチャートである。 符号列形成部205において生成される1枚のフレームデータに対応する符号列の細部構造を示す図である。 Qファクタの値に応じた、各サブバンドの非復号ビットプレーン数が登録されたテーブルの構成例を示す図である。 本発明の第2の実施形態に係る画像復号装置の機能構成を示すブロック図である。 各Qファクタの値に対するサンプルフレームの復号時間Dt’(Q)を示す図である。 本発明の第1の実施形態に係る画像復号装置の機能構成を示すブロック図である。 サブバンドインデックスSIとサブバンドSの復号時間(復号所要時間)との関係を表すテーブルの構成例を示す図である。 各サブバンドSに対する復号フラグF(S)を表すテーブルの構成例を示す図である。 本発明の第1の実施形態に係る画像復号装置による動画像符号化データの復号処理の流れを示すフローチャートである。 本発明の第2の実施形態に係る画像復号装置による動画像符号化データの復号処理の流れを示すフローチャートである。 本発明の第1の実施形態に係る画像復号装置の基本構成を示す図である。 動画像データ出力部105の一形態と、ディスプレイへの接続を示す図である。

Claims (12)

  1. 各フレームの画像が符号化された動画像データを入力して、各フレームの符号化画像データを復号する画像復号方法であって、
    前記各フレームから、サンプルフレームの符号化画像データを抽出して所定の復号単位で復号するサンプルフレーム復号工程と、
    前記サンプルフレームの符号化画像データの復号に係る時間を計測する第1の計測工程と、
    前記第1の計測工程で計測した時間が所定時間以下となるように、復号する復号単位の数を決定する決定工程と、
    与えられた復号単位の数に従って、各フレームの符号化画像データ復号する復号工程と、
    前記復号工程で前記各フレームを復号する際に、各フレーム毎の復号に要する時間を計測する第2の計測工程と、
    前記所定時間と前記第2の計測工程で計測された時間との差分を、各フレームを復号する毎に累計していき、当該累計値が所定値以上となった場合に、前記決定工程で決定した復号単位の数を更新する更新工程とを備え、
    前記復号工程では、前記決定工程で決定した復号単位の数、もしくは前記更新工程で更新した復号単位の数に従って、各フレームの符号化画像データ復号することを特徴とする画像復号方法。
  2. 更に、前記サンプルフレーム復号工程で前記サンプルフレームの符号化画像データを復号する際に、復号単位毎の復号に要する時間を計測する第3の計測工程を備え、
    前記決定工程では、
    前記第1の計測工程で計測した時間が前記所定時間よりも大きい場合に、前記第1の計測工程で計測した時間から、前記第3の計測工程で計測した夫々の復号単位の復号に要する復号時間を順次引いていき、引いた結果が前記所定値以下となった時点で前記第1の計測工程で計測した時間から前記第3の計測工程で計測した時間を引いた回数に基づいて、1フレームを構成する全ての復号単位を所定の順番に並べて一方から数えた場合の、復号しない復号単位に含められる数を決定することで、前記復号する復号単位の数を決定することを特徴とする請求項1に記載の画像復号方法。
  3. 前記決定工程では更に、1フレームを構成する復号単位のうち、復号する/復号しない復号単位を決定することを特徴とする請求項1に記載の画像復号方法。
  4. 前記更新工程では、前記累計値が所定値以上となった場合に、前記決定工程で決定した復号単位の数を増加させることを特徴とする請求項1に記載の画像復号方法。
  5. 更に、画質に係るパラメータの値と、復号する復号単位の数とのセットを複数種登録したテーブルのデータをメモリに格納しておき、
    前記サンプルフレーム復号工程では、前記パラメータを用いた前記サンプルフレームの符号化画像データの復号処理を、前記パラメータの値を夫々異ならせて、夫々異なる値の前記パラメータ毎に行い、
    前記第1の計測工程では、前記夫々の値のパラメータ毎に、前記サンプルフレーム復号工程による復号時間を計測し、
    前記決定工程では、
    所定の値の前記パラメータを用いて前記サンプルフレーム復号工程で前記サンプルフレームを復号した際に前記第1の計測工程で計測した第1の時間が前記所定時間よりも大きい場合に、
    夫々の前記復号時間において、隣接する時間同士の差分を前記第1の時間から順次引いていき、引いた結果が前記所定値以下となった時点で前記引いた回数に基づいて、前記パラメータの値を決定し、更に、前記テーブルを参照して、当該決定したパラメータの値に対応する、復号する復号単位の数を決定することを特徴とする請求項1に記載の画像復号方法。
  6. 前記更新工程では、前記累計値が所定値以上となった場合に、前記前記決定工程で決定した前記パラメータの値を増加させ、更に、前記テーブルのデータを参照することで、前記復号単位の数を増加させることを特徴とする請求項5に記載の画像復号方法。
  7. 前記画質に係るパラメータは、Qファクタであることを特徴とする請求項5又は6に記載の画像復号方法。
  8. 前記復号単位はビットプレーン、若しくはサブバンドの何れかを含むことを特徴とする請求項1乃至7の何れか1項に記載の画像復号方法。
  9. 更に、前記復号工程で復号された各フレームの画像を所定フレーム数保持し、所定のフレームレートで表示を行う表示装置に対して当該フレームレートに応じた所定の時間間隔で復号された各フレームの画像を順次前記表示装置に出力する工程を備えることを特徴とする請求項1に記載の画像復号方法。
  10. 各フレームの画像が符号化された動画像データを入力して、各フレームの符号化画像データを復号する画像復号装置であって、
    前記各フレームから、サンプルフレームの符号化画像データを抽出して所定の復号単位で復号するサンプルフレーム復号手段と、
    前記サンプルフレームの符号化画像データの復号に係る時間を計測する第1の計測手段と、
    前記第1の計測手段が計測した時間が所定時間以下となるように、復号する復号単位の数を決定する決定手段と、
    与えられた復号単位の数に従って、各フレームの符号化画像データ復号する復号手段と、
    前記復号手段によって前記各フレームを復号する際に、各フレーム毎の復号に要する時間を計測する第2の計測手段と、
    前記所定時間と前記第2の計測手段により計測された時間との差分を、各フレームを復号する毎に累計していき、当該累計値が所定値以上となった場合に、前記決定手段が決定した復号単位の数を更新する更新手段とを備え、
    前記復号手段は、前記決定手段が決定した復号単位の数、もしくは前記更新手段が更新した復号単位の数に従って、各フレームの符号化画像データ復号することを特徴とする画像復号装置。
  11. コンピュータに請求項1乃至9に何れか1項に記載の画像復号方法を実行させることを特徴とするプログラム。
  12. 請求項11に記載のプログラムを格納し、コンピュータ読み取り可能な記憶媒体。
JP2004052126A 2003-04-24 2004-02-26 画像復号方法、画像復号装置 Withdrawn JP2005102125A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004052126A JP2005102125A (ja) 2003-08-19 2004-02-26 画像復号方法、画像復号装置
US10/823,612 US7903734B2 (en) 2003-04-24 2004-04-14 Moving image decoding apparatus, moving image decoding method, image decoding method, and image decoding apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003295528 2003-08-19
JP2004052126A JP2005102125A (ja) 2003-08-19 2004-02-26 画像復号方法、画像復号装置

Publications (1)

Publication Number Publication Date
JP2005102125A true JP2005102125A (ja) 2005-04-14

Family

ID=34466964

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004052126A Withdrawn JP2005102125A (ja) 2003-04-24 2004-02-26 画像復号方法、画像復号装置

Country Status (1)

Country Link
JP (1) JP2005102125A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008011337A (ja) * 2006-06-30 2008-01-17 Fujitsu Ltd 再生装置及び再生方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008011337A (ja) * 2006-06-30 2008-01-17 Fujitsu Ltd 再生装置及び再生方法
JP4579877B2 (ja) * 2006-06-30 2010-11-10 富士通セミコンダクター株式会社 再生装置及び再生方法

Similar Documents

Publication Publication Date Title
JP4702928B2 (ja) 動画像符号化装置及び復号装置及びその制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
US6041143A (en) Multiresolution compressed image management system and method
JP4511788B2 (ja) タイル型ウェーブレット状変換及び希薄データコード化に基づく多解像度像データ管理システム及び方法
KR100971835B1 (ko) 화상 복호 방법 및 장치
JP4768728B2 (ja) 値のブロックをエンコードする方法および装置
US6950471B2 (en) Coding device, coding method and storage medium
US7903734B2 (en) Moving image decoding apparatus, moving image decoding method, image decoding method, and image decoding apparatus
JP2007142614A (ja) 画像処理装置、画像処理方法、プログラム及び情報記録媒体
JP2004104347A (ja) 画像処理装置、画像処理方法、プログラム及び記録媒体
JP2004153751A (ja) 画像処理装置及び画像処理方法
JP2004242290A (ja) 画像処理装置および画像処理方法、画像編集処理システム、画像処理プログラム及び記憶媒体
JP5817125B2 (ja) 画像処理装置および方法
US8428381B2 (en) Image compression method with variable quantization parameter
KR102250088B1 (ko) 비디오 스트림을 복호화하는 방법 및 장치
JP4593720B2 (ja) 剰余数係数の動的表示方法および装置
JP2008017472A (ja) 超音波映像の圧縮方法
JP2005102125A (ja) 画像復号方法、画像復号装置
JP4514666B2 (ja) 動画像符号化装置
JP4489474B2 (ja) 画像処理装置、プログラムおよび記録媒体
JP4247088B2 (ja) ノンインターレース画像の処理装置及び処理方法
JP4247089B2 (ja) ノンインターレース画像の処理装置及び処理方法
JP4077706B2 (ja) インターレース画像の処理装置及び処理方法
JP2004343710A (ja) 動画像復号装置及び方法
JP4194311B2 (ja) 動画像符号化装置及び動画像復号装置並びにそれらの方法
JP4594425B2 (ja) 画像処理装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070501