説明

画像処理装置および方法

【課題】画像の画質劣化を抑制する低遅延データ伝送を、より容易に実現することができるようにする。
【解決手段】送受信システム100の送信装置101は、画像データを、即時的かつ低遅延に、符号化し、伝送路102を介して受信装置103に伝送する。受信装置103は、受信したデータを復号し、復号画像データを出力する。また、送信装置101若しくは受信装置103は、符号化コードストリームを、所定のデータ長毎にアライメントする。さらに、送信装置101若しくは受信装置103は、符号化コードストリームを、アライン・ユニット毎に、低域成分から高域成分に向かう順に伝送する。本発明は、例えば、画像処理装置に適用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置および方法に関し、特に、データ伝送の際のパケットロスに対する耐性を向上させ、画像の画質劣化を抑制する低遅延データ伝送を、より容易に実現することができるようにした画像処理装置および方法に関する。
【背景技術】
【0002】
従来の代表的な画像圧縮方式として、ISO(International Standards Organization)によって標準化されたJPEG(Joint Photographic Experts Group)やJPEG2000がある。
【0003】
近年では画像をフィルタバンクと呼ばれるハイパス・フィルタとローパス・フィルタとを組み合わせたフィルタによって複数の帯域に分割し、帯域毎に符号化を行う方式の研究が盛んになっている。その中でも、ウェーブレット変換符号化は、DCT(Discrete Cosine Transform)変換で問題になる高圧縮でのブロック歪みが無いことから、DCTに代わる新たな技術として有力視されている。
【0004】
2001年1月に国際標準化が完了したJPEG2000は、このウェーブレット変換に高能率なエントロピ符号化(ビットプレーン単位のビット・モデリングと算術符号化)を組み合わせた方式を採用しており、JPEGに比べて符号化効率の大きな改善を実現している。
【0005】
このJPEG2000はデジタルシネマ規格(DCI(Digital Cinema Initiative)規格)用の標準コーデックとしても選定されており、映画の様な動画像用の圧縮にも使われ始めている。また各メーカからJPEG2000を監視カメラや放送局用の取材カメラ、セキュリティ・レコーダなどに応用した製品も出始めている。
【0006】
しかしながら、JPEG2000は基本的にピクチャ単位の符号化・復号を行うため、リアルタイム送受信に使うために低遅延を実現しようとした場合、エンコード(符号化)で最低1ピクチャ分、デコード(復号)でも最低1ピクチャ分の遅延が生じる。
【0007】
これはJPEG2000のみならず、AVC(Advanced Video Coding)イントラ、JPEG等どのコーデックについても同様である。但し、最近になって、画面を幾つかの矩形スライスまたはタイルに分けて、それらを独立にエンコード・デコードを行うことで遅延時間を短縮する手段が提案されている(例えば、特許文献1参照)。
【0008】
ところで、JPEG2000は、解像度や画質のスケラビリティを有している。この機能は、JPEG2000において採用されているウェーブレット変換によるものである。例えば解像度スケラビリティに関して説明すると、ウェーブレット変換では、画像を低域方向に繰り返し分解していく過程において複数のサブバンドが生成される。これらのサブバンドを、低域成分のサブバンドから順に合成することで、複数サイズの画像が得られる。
【0009】
このようなJPEG2000の特徴は、例えばインターネットのような不安定な伝送路を介した通信に利用することができる。上述したような、JPEG2000の解像度スケラビリティに関する特徴から、低域のサブバンドほど、復号画像の画質に与える影響が大きく、重要であると言える。したがって、例えば画質に影響度の大きい低域成分のサブバンドを早い時間に(優先的に)伝送するようにすると、ネットワーク上でロスが発生した際の再送制御に許容される時間を、低域成分ほど長く確保することができる。
【0010】
つまり、低域成分のサブバンドほど、より確実に伝送することができるようになる。低域成分のサブバンドだけでも画像の全体の特徴は復元可能であるので、仮に高域成分のサブバンドの伝送を失敗しても、従来のコーデックのように全画面が表示できなくなることはない。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2006−311327号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、この場合、受信側においては、合成したり切り捨てたりする等、受信データをサブバンド毎に処理する必要がある。すなわち、受信側において、各サブバンドの境界を検知する必要があるが、従来の方法においては、このサブバンドの境界を検知することは困難であった。
【0013】
本発明は、このような状況に鑑みて提案されたものであり、データ伝送の際のパケットロスに対する耐性を向上させ、画像の画質劣化を抑制する低遅延データ伝送を、より容易に実現することができるようにすることを目的とする。
【課題を解決するための手段】
【0014】
本発明の一側面は、階層的に分析フィルタ処理を行い、少なくとも最低域成分のサブバンドの1ライン分の係数データを生成するのに必要なライン数分の画像データを含むラインブロックを、周波数帯域毎に分解された係数データに変換する分析フィルタ手段と、前記分析フィルタ手段により生成された前記係数データを符号化する符号化手段と、前記符号化手段により前記係数データが符号化されて得られる符号化データを、所定のデータ長を単位としてアライメントするアライメント手段とを備える画像処理装置である。
【0015】
前記符号化データの並びを、前記分析フィルタ手段による前記分析フィルタ処理の出力順から、低域成分から高域成分に向かう順に並び替える符号化データ並び替え手段をさらに備えることができる。
【0016】
本発明の一側面は、また、画像処理装置の画像処理方法であって、前記画像処理装置の分析フィルタ手段が、階層的に分析フィルタ処理を行い、少なくとも最低域成分のサブバンドの1ライン分の係数データを生成するのに必要なライン数分の画像データを含むラインブロックを、周波数帯域毎に分解された係数データに変換し、前記画像処理装置の符号化手段が、生成された前記係数データを符号化し、前記画像処理装置のアライメント手段が、前記係数データが符号化されて得られる符号化データを、所定のデータ長を単位としてアライメントする画像処理方法である。
【0017】
本発明の他の側面は、階層的な分析フィルタ処理により所定ライン数の画像データが周波数帯域毎に分解された、少なくとも最低域成分のサブバンドの係数データを1ライン以上含む、各サブバンドの係数データ群からなるラインブロックが符号化されて生成された符号化データをアライメントする単位データ長であるデータアライメント長を決定する決定手段と、前記決定手段により決定された前記データアライメント長を単位として、前記符号化データをアライメントするアライメント手段と、前記アライメント手段によりアライメントされた前記符号化データを記憶する記憶手段と、前記記憶手段により記憶されている前記符号化データの、前記分析フィルタ処理の分割レベル毎に区分するデータ単位であるアライン・ユニットの切れ目を検出し、必要なアライン・ユニットの符号化データのみ、前記記憶手段から前記データアライメント長毎に読み出す読み出し手段と、前記読み出し手段により前記記憶手段から読みだされた前記符号化データを復号する復号手段とを備える画像処理装置である。
【0018】
階層的に合成フィルタ処理を行い、前記復号手段により復号されて得られた各サブバンドの前記係数データを前記画像データに変換する合成フィルタ手段をさらに備えることができる。
【0019】
前記復号手段により復号されて得られた各サブバンドの前記係数データのピクセル数をカウントするカウント手段をさらに備え、前記復号手段は、前記カウント手段によりカウントされた前記ピクセル数に従って検出された前記アライン・ユニットの切れ目に基づいて、各サブバンドの前記係数データを前記画像データに変換することができる。
【0020】
前記決定手段は、前記データアライメント長を、前記符号化データに前記アライン・ユニットが存在するか否か、既に前記符号化データにアライメントが行われているか否か、および、前記符号化データが伝送される伝送路のビット幅に基づいて決定することができる。
【0021】
前記決定手段は、前記符号化データに前記アライン・ユニットが存在し、かつ、既に前記符号化データにアライメントが行われている場合、前記アライメントにおけるデータアライメント長を、前記データアライメント長とすることができる。
【0022】
前記決定手段は、前記符号化データに前記アライン・ユニットが存在し、かつ、前記符号化データにアライメントが行われていない場合、前記伝送路のビット幅を前記データアライメント長とすることができる。
【0023】
前記決定手段は、前記符号化データに前記アライン・ユニットが存在ない場合、前記データアライメント長を0ビットとすることができる。
【0024】
本発明の他の側面は、また、画像処理装置の画像処理方法であって、前記画像処理装置の決定手段が、階層的な分析フィルタ処理により所定ライン数の画像データが周波数帯域毎に分解された、少なくとも最低域成分のサブバンドの係数データを1ライン以上含む、各サブバンドの係数データ群からなるラインブロックが符号化されて生成された符号化データをアライメントする単位データ長であるデータアライメント長を決定し、前記画像処理装置のアライメント手段が、決定された前記データアライメント長を単位として、前記符号化データをアライメントし、前記画像処理装置の記憶手段が、アライメントされた前記符号化データを記憶し、前記画像処理装置の読み出し手段が、記憶されている前記符号化データの、前記分析フィルタ処理の分割レベル毎に区分するデータ単位であるアライン・ユニットの切れ目を検出し、必要なアライン・ユニットの符号化データのみ、前記データアライメント長毎に読み出し、前記画像処理装置の復号手段が、読みだされた前記符号化データを復号する画像処理方法である。
【0025】
本発明の一側面においては、階層的に分析フィルタ処理が行われ、少なくとも最低域成分のサブバンドの1ライン分の係数データを生成するのに必要なライン数分の画像データを含むラインブロックが、周波数帯域毎に分解された係数データに変換され、生成された係数データが符号化され、係数データが符号化されて得られる符号化データが、所定のデータ長を単位としてアライメントされる。
【0026】
本発明の他の側面においては、階層的な分析フィルタ処理により所定ライン数の画像データが周波数帯域毎に分解された、少なくとも最低域成分のサブバンドの係数データを1ライン以上含む、各サブバンドの係数データ群からなるラインブロックが符号化されて生成された符号化データをアライメントする単位データ長であるデータアライメント長が決定され、決定されたデータアライメント長を単位として、符号化データがアライメントされ、アライメントされた符号化データが記憶され、記憶されている符号化データの、分析フィルタ処理の分割レベル毎に区分するデータ単位であるアライン・ユニットの切れ目が検出され、必要なアライン・ユニットの符号化データのみ、データアライメント長毎に読み出され、読みだされた符号化データが復号される。
【発明の効果】
【0027】
本発明によれば、画像を処理することができる。特に、データ伝送時の不具合の発生による画質劣化を抑制する低遅延データ伝送を、より容易に実現することができる。
【図面の簡単な説明】
【0028】
【図1】本発明を適用した送受信システムの主な構成例を示すブロック図である。
【図2】図1の送信装置の主な構成例を示すブロック図である。
【図3】サブバンドおよびラインブロックを説明する図である。
【図4】5×3フィルタの例を示す図である。
【図5】リフティング演算例を説明する図である。
【図6】係数データの出力順の例を説明する図である。
【図7】アライン・ユニットの構成例を説明する図である。
【図8】アライメントの様子の例を説明する図である。
【図9】送信処理の流れの例を説明するフローチャートである。
【図10】図1の受信装置の主な構成例を示すブロック図である。
【図11】バッファからの読み出しの様子の例を説明する図である。
【図12】受信処理の流れの例を説明するフローチャートである。
【図13】受信処理の流れの例を説明する、図12に続くフローチャートである。
【図14】データアライメント長決定処理の流れの例を説明するフローチャートである。
【図15】本発明を適用したパーソナルコンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【0029】
以下、発明を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(送受信システム)
2.第2の実施の形態(パーソナルコンピュータ)
【0030】
<1.第1の実施の形態>
[送受信システムの構成]
図1は、本発明を適用した送受信システムの一実施の形態の構成を表している。
【0031】
図1に示されるように、送受信システム100は、送信装置101、伝送路102、受信装置103を有する。送受信システム100は、送信装置101および受信装置103が、画像データを、伝送路102を介して送受信するシステムである。送信装置101においてキャプチャされたビデオデータは、即時的(リアルタイム)に符号化され、伝送路102を介して受信装置103に伝送され、即時的(リアルタイム)に復号されて再生される。
【0032】
より具体的には、送信装置101は、入力(生成)される画像データ(矢印111)を符号化し、符号化コードストリームをパケット化し、そのパケットを、伝送路102を介して受信装置103に送信する(矢印112)。受信装置103は、伝送路102を介して供給されるパケットを受信し(矢印113)、パケットから符号化コードストリームを抽出し、符号化コードストリームを復号し、復号画像データを出力する(矢印114)。
【0033】
送受信システム100の送信装置101および受信装置103は、このようなデータ伝送を、即時的(リアルタイム)に行う。なお、送受信システム100は、様々な用途のシステムに適用することができるように、送信装置101において画像データがキャプチャされてから、受信装置103において復号画像データが出力されるまでの時間(遅延時間)ができるだけ短く(低遅延に)なるようにデータ伝送を行う。
【0034】
伝送路102は、例えばインターネットに代表されるネットワークであり、送信装置101から受信装置103に伝送されるパケットの伝送路となる。この伝送路102は、パケットロスが発生する可能性がある不安定な伝送路である。
【0035】
そこで、後述するように、送信装置101は、低域成分のサブバンドの符号化データを時間的に早く(優先的に)送信する。これは、低域成分のサブバンドほど、画質に与える影響が大きく、重要であるからである。つまり送信装置101は、低域成分のサブバンドをより早期に(優先的に)送信することにより、パケットロスの発生に対する再送処理に許容される時間をより長く確保することができるようにする。
【0036】
受信装置103は、このように伝送されるパケットを受信し、受信されたパケットから抽出された符号化データを、サブバンド毎に合成したり切り捨てたりして、復号画像を得る。
【0037】
このとき、受信装置103は、送信装置101若しくは受信装置103自身が符号化コードストリームをアライメントすることにより、より容易に、サブバンドの切れ目を検出し、サブバンド毎の処理を行うことができる。
【0038】
以下に、各装置や方法等についてより具体的に説明する。
【0039】
[送信装置の構成]
図2は、図1の送信装置101の主な構成例を示すブロック図である。
【0040】
図2に示されるように、送信装置101は、例えば、画像ライン入力部121、ラインバッファ122、ウェーブレット変換部123、係数処理部124、レート制御部125、エントロピ符号化部126、ラインブロックメモリ127、データアライメント部128、および送信部129を有する。
【0041】
画像ライン入力部121は、入力される画像データ(矢印141)を、ライン毎にラインバッファ122に供給し(矢印142)、ラインバッファ122に蓄積させる。ラインバッファ122は、画像ライン入力部121から供給される画像データや、ウェーブレット変換部123から供給される係数データを保持し、所定のタイミングにおいてその画像データや係数データをウェーブレット変換部123に供給する(矢印143)。
【0042】
ウェーブレット変換部123は、ラインバッファ122から供給される画像データや係数データに対してウェーブレット変換を行い、次の階層の低域成分と高域成分の係数データを生成する。ウェーブレット変換の詳細については後述する。
【0043】
ウェーブレット変換部123は、生成した係数データの、垂直方向および水平方向に低域な成分をラインバッファ122に供給して保持させ(矢印144)、その他の成分を係数処理部124(係数ライン並び替え部131)に供給する(矢印145)。なお、ウェーブレット変換部123は、生成した係数データが最上位層である場合、垂直方向および水平方向に低域な成分も係数処理部124に供給する。
【0044】
係数処理部124は、ウェーブレット変換部123から出力される係数データに対する処理を行う。係数処理部124は、係数ライン並び替え部131および量子化部132を有する。
【0045】
係数ライン並び替え部131には、ウェーブレット変換部123から係数データ(係数ライン)が供給される(矢印145)。係数ライン並び替え部131は、その係数データ(係数ライン)を送信順に並び替える。
【0046】
なお、係数ライン並び替え部131は、例えば、係数ラインを保持するバッファとその読み出し部により構成される。つまり、その読み出し部が、バッファに保持された係数ラインを送信順に読み出すことにより、係数データの並び替えを行う。
【0047】
係数ライン並び替え部131は、係数データを量子化部132に供給する(矢印146)。
【0048】
量子化部132は、係数ライン並び替え部131から供給された係数データに対して、量子化を行う。この量子化の方法としてはどのようなものを用いても良く、例えば、一般的な手段、つまり、以下の式(1)に示されるような、係数データWを量子化ステップサイズQで除算する手法を用いれば良い。
【0049】
量子化係数=W/Q ・・・(1)
【0050】
なお、この量子化ステップサイズQは、レート制御部125により指定される。レート制御部125は、例えば、エントロピ符号化部126において生成される符号量に基づいて、画像の符号化難易度を推定し、その符号化難易度に応じて量子化部132により用いられる量子化ステップサイズQを指定する(矢印147)。つまり、レート制御部125は、量子化ステップサイズQを指定することにより、符号化データのレート制御を行う。
【0051】
量子化部132は、量子化された係数データをエントロピ符号化部126に供給する(矢印148)。
【0052】
エントロピ符号化部126は、量子化部132から供給される係数データを、例えばハフマン符号化や算術符号化といった所定のエントロピ符号化方式で符号化する。エントロピ符号化部126は、生成した符号ラインをラインブロックメモリ127に供給する(矢印149)。
【0053】
ラインブロックメモリ127は、エントロピ符号化部126から供給される符号化データを符号ライン毎に保持する。
【0054】
データアライメント部128は、そのラインブロックメモリ127に保持されている符号化データを、適宜、所定のデータ長毎にアライメントしながら読み出し(矢印150)、送信部129に供給する(矢印151)。
【0055】
送信部129は、データアライメント部128から供給された符号化データをパケット化し、そのパケットを、伝送路102を介して受信装置103に送信する(矢印152)。
【0056】
[サブバンドの説明]
次に、ウェーブレット変換部123が行うウェーブレット変換について説明する。ウェーブレット変換は、画像データを空間周波数の高い成分(高域成分)と低い成分(低域成分)とに分割する分析フィルタリングを、再帰的に繰り返すことにより、画像データを、階層的に構成される周波数成分毎の係数データに変換する処理である。なお、以下において、分割レベルは、高域成分の階層ほど下位とし、低域成分の階層ほど上位とする。
【0057】
1つの階層(分割レベル)において、分析フィルタリングは、水平方向と垂直方向の両方について行われる。最初に水平方向の分析フィルタリングが行われ、次に垂直方向の分析フィルタリングが行われる。したがって、1つの階層の係数データ(画像データ)は、1階層分の分析フィルタリングにより4つのサブバンド(LL、LH、HL、およびHH)に分割される。そして、次の階層の分析フィルタリングは、生成された4つのサブバンドのうち、水平方向および垂直方向の両方について低域な成分(LL)に対して行われる。
【0058】
このように分析フィルタリングを再帰的に繰り返すことにより、空間周波数の低い帯域の係数データをより小さな領域に追い込むことができる。したがって、このようにウェーブレット変換された係数データを符号化するようにすることにより、効率的な符号化が可能となる。
【0059】
図3は、分析フィルタリングを4回繰り返して生成される係数データの構成について説明する図である。
【0060】
ベースバンドの画像データに対して分割レベル1の分析フィルタリングが行われると、画像データは、分割レベル1の4つのサブバンド(1LL、1LH、1HL、および1HH)に変換される。この分割レベル1の、水平方向および垂直方向の両方に対して低域成分のサブバンド1LLに対して、分割レベル2の分析フィルタリングが行われ、分割レベル2の4つのサブバンド(2LL、2LH、2HL、および2HH)に変換される。この分割レベル2の、水平方向および垂直方向の両方に対して低域成分のサブバンド2LLに対して、分割レベル3の分析フィルタリングが行われ、分割レベル3の4つのサブバンド(3LL、3LH、3HL、および3HH)に変換される。この分割レベル3の、水平方向および垂直方向の両方に対して低域成分のサブバンド3LLに対して、分割レベル4の分析フィルタリングが行われ、分割レベル4の4つのサブバンド(4LL、4LH、4HL、および4HH)に変換される。
【0061】
図3は、このようにして、13個のサブバンドに分割された係数データの構成を示している。
【0062】
以上のような分析フィルタリングにより、処理対象となる2ラインの画像データまたは係数データから、1階層上の4つのサブバンドの係数データが1ラインずつ生成される。したがって、図2の斜線部分で示されるように、分割レベル4のサブバンドの係数データが1ラインずつ生成されるのに、サブバンド3LLは2ライン必要であり、サブバンド2LLは4ライン必要であり、サブバンド1LLは8ライン必要である。つまり、16ラインの画像データが必要になる。
【0063】
このような最低域成分のサブバンドの1ライン分の係数データを生成するために必要なライン数の画像データをラインブロック(またはプレシンクト)と称する。また、ラインブロックは、その1ラインブロックの画像データをウェーブレット変換して得られる各サブバンドの係数データの集合のことも示す。
【0064】
例えば、図3の例の場合、図示せぬ16ラインの画像データが1ラインブロックとなる。また、ラインブロックは、その16ラインの画像データから生成される、分割レベル1の各サブバンドの8ラインの係数データ、分割レベル2の各サブバンドの4ラインの係数データ、分割レベル3の各サブバンドの2ラインの係数データ、および分割レベル4の各サブバンドの1ラインの係数データのことを示す場合もある。
【0065】
ウェーブレット変換部123は、ウェーブレット変換をこのようなラインブロック毎に行うとも言える。このようにすることにより、ウェーブレット変換部123が画像全体をウェーブレット変換する前に、係数処理部124等が後段の処理を開始することができる。すなわち、送信装置101は、より低遅延に画像データを符号化し、送信することができる。
【0066】
なお、受信装置103は、このウェーブレット変換部123によるウェーブレット変換処理に対応する方法でウェーブレット逆変換を行う。つまり、受信装置103においても、画像全体がエントロピ復号される前にウェーブレット逆変換を開始することができる。すなわち、受信装置103は、より低遅延に符号化データを復号し、復号画像データを出力することができる。
【0067】
したがって、送受信システム100は、より低遅延なデータ伝送が可能になる。
【0068】
なお、上述したラインブロックは、所望の分割レベルのウェーブレット変換を行うのに必要なライン数であるので、ウェーブレット変換(ウェーブレット逆変換)による遅延時間を最小にすることができる。
【0069】
ここでラインとは、ウェーブレット変換前の画像データに対応するピクチャ若しくはフィールド内、各分割レベル内、または各サブバンド内において形成される1行のことを示す。
【0070】
この1ライン分の係数データ(画像データ)を係数ラインとも称する。より詳細に区別して説明する必要がある場合、適宜表現を変える。例えば、あるサブバンドのある1ラインを「あるサブバンドの係数ライン」と称し、1つ下位の階層の同じ2係数ラインから生成された、ある階層(分割レベル)の全サブバンド(LH,HL、およびHH(最上位層の場合LLも含む))の1ラインを「ある分割レベル(または階層)の係数ライン」と称する。
【0071】
図3の例の場合、「分割レベル4(最上位層)の係数ライン」は、サブバンド4LL,4LH,4HL、および4HHの、互いに対応する(1つ下位の分割レベルの同じ係数ラインから生成された)ある1ラインを示す。また、「分割レベル3の係数ライン」は、サブバンド3LH,3HL、および3HHの、互いに対応するある1ラインを示す。さらに、「サブバンド2HHの係数ライン」は、サブバンド2HHのある1ラインを示す。
【0072】
なお、1係数ライン(1ライン分の係数データ)が符号化された1ライン分の符号化データを符号ラインとも称する。
【0073】
図3においては、分割レベル4のウェーブレット変換について説明した。以下においても、基本的に、ウェーブレット変換は分割レベル4まで行われるものとして説明するが、実際には、ウェーブレット変換の階層数(分割レベル)は任意である。
【0074】
[5×3フィルタ]
次に、分析フィルタリングについて説明する。
【0075】
ウェーブレット変換処理は、通常、低域フィルタと高域フィルタとから構成されるフィルタバンクを用いて行われる。
【0076】
このウェーブレット変換の具体的な例として、5×3フィルタを用いる方法について説明する。
【0077】
5×3フィルタのインパルス応答(Z変換表現)は、次の式(2)および式(3)に示すように、低域フィルタH(z)と、高域フィルタH(z)とから構成される。式(2)および式(3)から、低域フィルタH(z)は、5タップで、高域フィルタH(z)は、3タップであることが分かる。
【0078】
(z)=(−1+2z−1+6z−2+2z−3−z−4)/8 ・・・(2)
(z)=(−1+2z−1−z−2)/2 ・・・(3)
【0079】
これら式(2)および式(3)によれば、低域成分および高域成分の係数を、直接的に算出することができる。ここで、リフティング(Lifting)技術を用いることで、フィルタ処理の計算を減らすことができる。
【0080】
図4は、5×3フィルタをリフティング表現した図である。図中、最上部の一列が入力信号列である。データ処理は画面上から下方向に流れ、以下の式(4)および式(5)により、高域成分の係数(高域係数)と、低域成分の係数(低域係数)とが出力される。
【0081】
=d−1/2(s+si+1) ・・・(4)
=s+1/4(di−1+d) ・・・(5)
【0082】
[リフティング演算]
次に、このリフティング演算について説明する。図5は、5×3分析フィルタを用いて、縦方向のラインに対して行われるフィルタリングをリフティング表現した図である。
【0083】
横方向は、演算過程とそれによって生成される低域・高域係数を図示したものである。図4の場合と照らし合わせて見れば水平が垂直に変わっただけであり、演算の方法は全く同様であることがわかる。
【0084】
画像の上端においては、矢印161に示されるように、Line-1から最上位ラインが点線の様に対称拡張され、1ラインが補填される。枠162で示されるように、これとLine-0、Line-1の合計3ラインを用いてリフティング演算が行われ、Step-1の演算で係数aが生成される。これは高域係数(H0)である。
【0085】
Line-1,Line-2,Line-3が入力されると、この3ラインを用いて次の高域係数aが算出される。これは高域係数(H1)である。そして、上記の1番目の高域係数a(H0)と2番目高域係数a(H1)、及びLine-1の係数の合計3つの係数を用いて係数bが生成される。これは低域係数(L1)である。つまり、枠163で示されるように、Line-1,Line-2,Line-3の3ラインと、高域係数(H0)とを用いて、低域係数(L1)および高域係数(H1)が生成される。
【0086】
その後、2ラインが入力される毎に、上記のリフティング演算が後続のラインに対しても同様に繰り返され、低域係数と高域係数とが出力される。そして、枠164に示されるように、低域係数(L(N−1))および高域係数(H(N−1))が生成されると、高域係数(H(N−1))が矢印165のように対称拡張され、枠166のように演算が行われ、低域成分(L(N))が生成される。
【0087】
なお、図5は垂直方向のラインに対してフィルタリングを行った例であるが、水平方向のフィルタリングの場合でも全く同様に考えることができることは自明である。
【0088】
以上のリフティング演算は、各階層について行われる。ただし、分析フィルタリングは、上述したように、より低域な成分をより優先的に生成するような順序で行われる。図5を参照して説明した順序は、分析フィルタリングされるデータ間の依存関係を示すものであり、実際の処理実行順とは異なる。
【0089】
[1ラインブロックの処理]
次に、この分析フィルタリングの実行手順について説明する。
【0090】
処理対象の画像データ(係数データ)は、ピクチャ(サブバンド)の上のラインから順に処理される。分析フィルタリングのリフティング演算は、処理対象の画像データ(係数データ)が2ライン準備される毎に(つまり、実行可能となり次第)実行される。ただし、より低域のサブバンドを優先的に処理対象とする。
【0091】
以下に説明するように、分析フィルタリングは、ラインブロック毎に同じ手順で繰り返し実行される。そこで、2ライン準備される毎に分析フィルタリングが実行されるラインブロック(定常状態のラインブロック)における分析フィルタリングの手順を以下に説明する。
【0092】
なお、初期状態となるピクチャやサブバンドの上端を含むラインブロック(初期状態のラインブロック)においては、分析フィルタリングに必要なライン数が他のラインブロック(定常状態のラインブロック)と異なる。しかしながら、この初期状態のラインブロックの場合も、分析フィルタリングの処理手順は、基本的には他のラインブロックと同様のであるので、その説明は省略する。
【0093】
図6は、定常状態における係数データの出力順を説明する図である。図6においては、ウェーブレット変換された係数データが、図中、上から下に向かう方向に時系列順に並べられている。
【0094】
定常状態のラインブロックにおいて、まず、ベースバンドの画像データの、そのラインブロック内において上から2ラインが分析フィルタリングされ、分割レベル1のラインL(上からL番目の係数ライン)が生成される。1ライン分の係数データでは分析フィルタリングできないので、その次のタイミングにおいて、ベースバンドの画像データの次の2ラインが分析フィルタリングされ、分割レベル1のライン(L+1)(上から(L+1)番目の係数ライン)が生成される。
【0095】
この時点で分割レベル1の係数データが2ライン分用意されたので、次に、その分割レベル1の係数データの2ラインに対して分割レベル1の分析フィルタリングが行われ、分割レベル2のラインM(上からM番目の係数ライン)が生成される。しかしながら、1ライン分なので分割レベル2の分析フィルタリングはまだ実行できない。また、このとき、分割レベル1の係数データが用意されていないので、分割レベル1の分析フィルタリングも実行できない。
【0096】
そこで、ベースバンドの画像データの次の2ラインが分析フィルタリングされ、分割レベル1のライン(L+2)(上から(L+2)番目の係数ライン)が生成される。1ライン分の係数データでは分析フィルタリングできないので、続いて、ベースバンドの画像データの次の2ラインが分析フィルタリングされ、分割レベル1のライン(L+3)(上から(L+3)番目の係数ライン)が生成される。
【0097】
分割レベル1の係数データが2ライン分用意されたので、次に、その分割レベル1の係数データの2ラインに対して分割レベル1の分析フィルタリングが行われ、分割レベル2のライン(M+1)(上から(M+1)番目の係数ライン)が生成される。
【0098】
すると、分割レベル2の係数データが2ライン分用意されたので、次に、その分割レベル2の係数データの2ラインに対して分割レベル2の分析フィルタリングが行われ、分割レベル3のラインN(上からN番目の係数ライン)が生成される。
【0099】
以下、同様にして、分割レベル1のライン(L+4)(上から(L+4)番目の係数ライン)およびライン(L+5)(上から(L+5)番目の係数ライン)、分割レベル2のライン(M+2)(上から(M+2)番目の係数ライン)、分割レベル1のライン(L+6)(上から(L+6)番目の係数ライン)およびライン(L+7)(上から(L+7)番目の係数ライン)、分割レベル2のライン(M+3)(上から(M+3)番目の係数ライン)、並びに、分割レベル3のライン(N+1)(上から(N+1)番目の係数ライン)が、順次、生成される。
【0100】
すると、分割レベル3の係数データが2ライン分用意されたので、次に、その分割レベル3の係数データの2ラインに対して分割レベル3の分析フィルタリングが行われ、分割レベル4のラインP(上からP番目の係数ライン)が生成される。
【0101】
以上のように1ラインブロック分の分析フィルタリングが行われる。つまり、ラインブロック毎に、以上のような手順が繰り返される。このように処理することにより、ウェーブレット変換部123は、1ラインブロック分の分析フィルタリングをより低遅延に行うことができる。つまり、ウェーブレット変換部123は、ウェーブレット変換処理による遅延時間の増大をより抑制することができる。
【0102】
[アライン・ユニット]
以上のように画像データがウェーブレット変換されて生成された係数ラインは、その生成順にウェーブレット変換部123から出力されるが、係数ライン並び替え部131において、図7に示されるような順に並び替えられる。
【0103】
図中上から下に向かう向きに時系列が示されている。つまり、図7に示される各係数ラインは、図中上から順に出力される。つまり、係数ライン並び替え部131は、低域成分の係数ラインから出力するような順に並び替える。
【0104】
つまり、定常状態の1ラインブロックの各係数ラインは、係数ライン並び替え部131から、分割レベル4のラインPのサブバンド4LLの部分、分割レベル4のラインPのサブバンド4HH,4HL、および4LHの部分、分割レベル3のラインN、分割レベル3のライン(N+1)、分割レベル2のラインM、分割レベル2のライン(M+1)、分割レベル2のライン(M+2)、分割レベル2のライン(M+3)、分割レベル1のラインL、分割レベル1のライン(L+1)、分割レベル1のライン(L+2)、分割レベル1のライン(L+3)、分割レベル1のライン(L+4)、分割レベル1のライン(L+5)、分割レベル1のライン(L+6)、分割レベル1のライン(L+7)の順に出力される。
【0105】
なお、これらの1つまたは複数の係数ラインをアライン・ユニットと定義する。つまり、分割レベル4のラインPのサブバンド4LLの部分をアライン・ユニット1と定義し、分割レベル4のラインPのサブバンド4HH,4HL、および4LHの部分をアライン・ユニット2と定義する。また、分割レベル3のラインNおよび分割レベル3のライン(N+1)をアライン・ユニット3と定義し、分割レベル2のラインM乃至ライン(M+3)をアライン・ユニット4と定義する。さらに、分割レベル1のラインL乃至ライン(L+7)をアライン・ユニット5と定義する。
【0106】
つまり、アライン・ユニットは、各分割レベルの係数ラインにより構成される。換言すれば、アライン・ユニットは、係数ラインを、分割レベル毎に区分するデータ単位である。ただし、最低域成分のサブバンド(例えば4LL)の係数ラインのみで、1つのアライン・ユニットを構成する。
【0107】
これらのアライン・ユニットを組み合わせることで、原画像の2のべき乗分の1の解像度の画像を復元することができる。
【0108】
例えば、パケット伝送時にパケットロスが発生したり、データ伝送の遅延時間が増大したりする等して、送信前の原画像と同じ解像度の画像の復元がその画像の再生時刻に間に合わなくなってしまった場合、受信装置103は、データの準備が間に合わなかった高域成分をアライン・ユニット毎に切り捨てて画像の復元を行う。
【0109】
このようにすることにより、その画像の解像度は低下するものの、画像再生速度を維持することができる。動画再生において各ピクチャの再生速度が変化すると、例えばカクカクしたような動きが不自然な映像となり、視覚的に違和感の大きな不具合となる恐れがある。これに対して、各ピクチャの表示時間は短いので、1ピクチャの解像度が低減する程度では、その視覚的な影響は小さい。
【0110】
つまり、受信装置103は、このような制御を行うことにより、広義においてより高画質に画像を復元することができる。
【0111】
以上のように並び替えられた各係数ラインは、量子化部132により量子化され、エントロピ符号化部126により符号化される。
【0112】
このように、係数ラインを、分解レベルの大きいもの(低域)から分解レベルの小さいもの(高域)の順番に並べてから量子化や符号化を行うことにより、送信装置101は、伝送路102の不安定さ(例えば帯域幅の変動やパケットロスの発生等)に対する耐性を向上させるようにデータ伝送を行うことができる。
【0113】
図1の送受信システム100のように低遅延データ転送を行うシステムの場合、受信装置103から出力される復号画像データは、例えばその復号画像をモニタに表示する等、即時的(リアルタイム)に処理される。つまり、データ伝送と復号画像データの処理とが並行して行われる。
【0114】
このような低遅延データ伝送システムにおいては、遅延が増大すると、復号画像データに対する処理において不具合が発生する恐れがある。例えば、復号画像をモニタに表示する場合、コマ落ちが発生したり、動きがカクカクする等不自然となったりする恐れがある。したがって、データ伝送に許容される時間が短時間に制限される。
【0115】
このような時間的制限がある場合、パケットロスの発生時等におけるパケットの再送処理に許容される時間にも制限が生じる。このような場合、時間的に後に送信されるデータほど、パケットロス発生時に必要な再送処理に許容される時間が短くなる。つまり、このようなデータほど、データ伝送の確実性が低減し、復元が失敗する可能性が増大する。
【0116】
換言すれば、時間的に先に送信されるデータほど、パケットロス発生時に必要な再送処理に許容される時間を長く確保することができる。すなわち、このようなデータほど、より確実に伝送することができ、復元が成功する可能性が増大する。
【0117】
上述したように、ウェーブレット変換においては、低域成分にエネルギーが集中するため、より低域成分ほど、画質に与える影響が大きい。
【0118】
送信装置101は、上述したように、各符号ラインを、画質に重要な低域成分(図3の例の場合分割レベル4)から時間的に先に送信し、画質に与える影響度の小さい高域成分ほど時間的に後に送信する。
【0119】
このようにすることにより、送信装置101は、より重要なデータ(低域成分の符号ライン)を所定時間内に再送することが出来る可能性を高めることができ、復号画像の画質をより向上させることができる。
【0120】
また、例えば、伝送路102において伝送可能レートが急激に低下し、送信装置101における符号化処理のビットレート制御がその変化に追従できなかった場合、送信バッファがオーバフローしてしまう恐れがある。
【0121】
しかしながら、上述したように低域成分から時間的に先に(優先的に)送信することにより、送信装置101は、このような場合に、高域成分の符号ラインを切り捨てる(送信しないようにする)ことで、バッファオーバフローの発生を抑制することができる。結果として送信装置101は、ネットワーク混雑を助長せずに伝送することができる。
【0122】
なお、量子化処理と符号化処理を伝送順と同順に行うことにより、つまり、低域成分の係数ラインから時間的に先に処理することにより、送信装置101は、上述したような伝送可能レートが急激な変化に対して、単にバッファのデータを破棄するだけでなく、不要な高域成分の係数ラインに対する量子化処理や符号化処理を省略する(例えば係数ライン並び替え部131から出力される高域成分の係数ラインを破棄する)こともできる。これにより消費電力の不要な増大を抑制することができる。
【0123】
エントロピ符号化部126において生成された符号ラインは、ラインブロックメモリ127に蓄積される。
【0124】
[アライメント]
次にアライメントについて説明する。
【0125】
図11はそのアライメントの様子の例を示したものである。ラインブロックメモリ127には、各アライン・ユニットのデータが書きこまれる。低域成分のアライン・ユニットほど時間的に先に書き込まれる。各アライン・ユニットは、その先頭が分かるように(各アライン・ユニットのデータを識別することができるように)、ラインブロックメモリ127に格納される。
【0126】
データアライメント部128は、このように蓄積されている各アライン・ユニットのデータを、Nビット毎に読み出す。このNビットをデータアライメント長と称する。データアライメント部128は、読みだしたデータがNビットに満たない場合、その不足分を追加し、読みだしたデータのデータ長がNビットになるように調整する。
【0127】
例えば、ラインブロックメモリ127の記憶領域の横幅が128ビット長である場合、データアライメント部128は、このデータアライメント長を32ビットとすることができる。なお、このデータアライメント長Nの値は任意である。
【0128】
アライメントされたデータ(追加されたデータ)は、不要なダミーデータであり、無駄になる。つまり、データアライメント長Nのビット数が大きいと、その分だけ不要なデータ量が増大し、データ転送の負荷が増大する恐れがある。しかしながら、データアライメント長Nのビット数が大きいほど、メモリアクセス数を低減させることができ、負荷を低減させることができる。
【0129】
したがって、データアライメント長Nのビット数は、システムに応じた適切な値に設定するのが望ましく、大きすぎても小さすぎても効率が悪くなり好ましくない。
【0130】
なお、このデータアライメント長Nのビット数を、伝送路102の帯域幅Wビットとすることもできる。ここで、帯域幅Wビットとは、伝送路102が、所定の時間毎に、符号化コードストリームを伝送可能なデータ量を示すものとする。つまり、帯域幅Wビットは、符号化コードストリームに関する帯域幅とし、パケットのヘッダ部のデータ量は含まれないものとする。
【0131】
このようにすることにより、送信部129は、データアライメント部128から供給されるデータ長Nビットの各符号化データを、所定の単位時間に送信することができる。したがって、送信部129は、符号化データを蓄積するバッファのデータ量を低減させることができ、より効率よくデータを送信することができる。
【0132】
[処理の流れ]
以上のような送信装置101により実行される送信処理の流れの例を図9のフローチャートを参照して説明する。
【0133】
送信処理が開始されると、送信装置101の画像ライン入力部121乃至ウェーブレット変換部123は、ステップS101において、ライン入力しながらウェーブレット変換を行う。
【0134】
ステップS102において、送信装置101は、1ラインブロック分のウェーブレット変換処理を行ったか否かを判定し、1ラインブロック分の処理を行っていないと判定された場合、ステップS101に処理を戻し、それ以降の処理を繰り返す。また、ステップS102において、1ラインブロック分の処理が行われたと判定された場合、送信装置101は、処理をステップS103に進める。
【0135】
ステップS103において、係数ライン並び替え部131は、生成された係数データを、その生成順から、低域成分から高域成分に向かう順に並び替える。
【0136】
ステップS104において、量子化部132は、並び替えられた係数データを量子化する。
【0137】
ステップS105において、エントロピ符号化部126は、ライン毎にエントロピ符号化を行う。
【0138】
ステップS106において、ラインブロックメモリ127は、生成された符号化データを保持し、アライン・ユニット毎に管理する。
【0139】
ステップS107において、データアライメント部128は、ラインブロックメモリ127に蓄積されている符号化データをデータアライメント長Nビット毎に読み出し、アライメントする。送信部129は、読みだされた符号化データをパケット化して受信装置103に送信する。
【0140】
ステップS108において、レート制御部125は、レート制御を行う。
【0141】
ステップS109において、送信装置101は、最終ラインブロックまで処理したか否かを判定し、最終ラインブロックまで処理されていないと判定された場合、ステップS101に処理を戻し、それ以降の処理を繰り返す。ステップS109において、最終ラインブロックまで処理されたと判定された場合、送信装置101は、送信処理を終了する。
【0142】
以上のように、送信装置101は、符号化データを所定のデータアライメント長Nビット毎にアライメントしてから送信することにより、後述するように、受信装置103がより容易にアライン・ユニットの切れ目を検出し、アライン・ユニット単位の制御処理を適切に行うことができるようにすることができる。
【0143】
なお、送信装置101は、アライメントを行わずに符号化データを送信することもできる。その場合、データアライメント部128は、データアライメント長N=0ビットとして符号化データの読み出しを行う。
【0144】
[受信装置の構成]
図10は、図1の受信装置103の主な構成例を示すブロック図である。
【0145】
図10に示されるように、受信装置103は、例えば、受信部200、データアライメント長決定部201、書き込み制御部202、ラインバッファメモリ203、読み出し制御部204、符号語解読部205、エントロピ復号部206、ピクセルカウンタ207、アラインユニットバッファ208、逆量子化部209、ウェーブレット逆変換部210、およびバッファ211を有する。
【0146】
受信部200は、伝送路102を介して送信装置101から供給されるパケット(矢印220)を受信し、そのパケットから符号化コードストリームを抽出し、それをデータアライメント長決定部201に供給する(矢印221)。
【0147】
データアライメント長決定部201は、受信部200から符号化コードストリームを取得すると、その符号化コードストリームについてデータアライメント長Nを決定する。
【0148】
なお、データアライメント長決定部201は、このデータアライメント長の決定に際して、必要に応じて伝送路102の帯域幅Wを取得する(矢印222)。この帯域幅Wの情報は、伝送路102を監視する等して伝送路102の帯域幅Wを把握しているところであれば、どこから取得しても良い。例えば、受信部200から取得するようにしてもよいし、帯域幅Wの情報が格納される図示せぬ記憶部から取得するようにしてもよいし、ユーザ等による指定を受け付けるようにしてもよい。
【0149】
データアライメント長決定部201は、送信装置101において、アライン・ユニットが形成されたか否か、データアライメントが行われたか否か、または、伝送路102の帯域幅W等によってデータアライメント長Nの値を決定する。
【0150】
例えば、データアライメント長決定部201は、送信装置101においてアライン・ユニットが形成されなかった場合、データアライメント長Nを0ビットとする。例えば、解像度スケーラブルの機能を必要としない場合、アライン・ユニットが不要になる可能性もある。例えば、送信装置101や受信装置103の能力等による制限によって、解像度をスケーラブルに取り扱うことが好ましくない場合も考えられる。
【0151】
このようにアライン・ユニットが存在しない場合、アライン・ユニットの切れ目を検出する必要がないので、データアライメントの必要性もなくなる。したがって、データアライメント長決定部201は、不要にデータ量を増大させないように、データアライメント長Nを0ビットとする。
【0152】
また、データアライメント長決定部201は、例えば、アライン・ユニットが存在するが、送信装置101においてアライメントが行われていない場合、書き込み制御部202にアライメントを行わせるように、データアライメント長Nをセットする。このとき、データアライメント長決定部201は、受信した各パケットより抽出された符号化コードストリームをより効率よくラインバッファメモリ203に格納させることができるように、データアライメント長Nを伝送路102の帯域幅Wビットにセットする。
【0153】
なお、帯域幅Wビットとは、伝送路102が、所定の時間毎に、符号化コードストリームを伝送可能なデータ量を示すものとする。つまり、帯域幅Wビットは、符号化コードストリームに関する帯域幅とし、パケットのヘッダ部のデータ量は含まれないものとする。
【0154】
このように、伝送路102の帯域幅Wをデータアライメント長Nとすることにより、単位時間に受信されるパケットから抽出された符号化コードストリームのデータ長がそのままデータアライメント長Nビットとなる。したがって、書き込み制御部202は、その単位時間を処理単位としてアライメントを行うことができる。
【0155】
例えば、アライン・ユニットの最後においては、単位時間に得られる符号化コードストリームのデータ長が、Wビットより短くなる場合が考えられる。データアライメント長NがWビットであるので、書き込み制御部202は、その単位時間に得られる符号化コードストリームのデータ長がWビットになるようにアライメントしてやればよい。
【0156】
つまり、データアライメント長Nを伝送路102の帯域幅Wとすることにより、書き込み制御部202は、より効率よくアライメントを行うことができる。
【0157】
なお、データアライメント長Nを伝送路102の帯域幅Wより短くする(N<W)ことも可能であるが、他に不具合が生じない範囲であれば、できる限り長いデータ長でアライメントするようにした方が、バッファへのアクセス回数を低減させることができ、処理の効率を向上させることができる。
【0158】
逆に、データアライメント長Nを伝送路102の帯域幅Wより長くすると、アライメントの演算が複雑になるので好ましくない。
【0159】
また、データアライメント長決定部201は、例えば、アライン・ユニットが存在し、かつ、送信装置101においてアライメントが行われた場合、データアライメント長Nを、その送信装置101におけるデータアライメント長N’にセットする。
【0160】
つまり、送信装置101においてアライメントが行われている場合、データアライメント長Nをそのときのデータアライメント長N’に合わせることにより、書き込み制御部202は、各アライン・ユニットの符号化コードストリームを、実質的にアライメントせずに、ラインバッファメモリ203に書き込むことができる。つまり、書き込み制御部202がより効率よく書き込みを行うことができる。
【0161】
データアライメント長決定部201は、決定したデータアライメント長Nを書き込み制御部202および読み出し制御部204に供給する(矢印223および矢印224)。また、データアライメント長決定部201は、符号化コードストリームを書き込み制御部202に供給する(矢印225)。
【0162】
書き込み制御部202は、供給された符号化コードストリームを、必要に応じて、データアライメント長決定部201において決定されたデータアライメント長Nビットでアライメントしながら、ラインバッファメモリ203に書き込む(矢印226)。
【0163】
図11は、ラインバッファメモリ203に格納されるアライン・ユニットの様子の例を示す図である。
【0164】
図11に示されるように、アライン・ユニット(AU)毎の符号化コードストリームは、先頭から順にラインバッファメモリ203に格納される。この符号化コードストリームが、送信装置101においてアライメントされている場合、アライン・ユニットの符号化コードストリームのデータ長は、Nビットの整数倍となっている。
【0165】
例えば、図11に示されるアライン・ユニット1の符号化コードストリーム(AU-1)、アライン・ユニット2の符号化コードストリーム(AU-2)、アライン・ユニット4の符号化コードストリーム(AU-4)、および、アライン・ユニット5の符号化コードストリーム(AU-5)のデータ長は、Nビット(例えば32ビット)の整数倍である。
【0166】
このような符号化コードストリームは、書き込み制御部202においてアライメントする必要がない。
【0167】
また、送信装置101においてアライメントされていない場合、例えば、図11のアライン・ユニット3の符号化コードストリーム(AU-3)のように、データ長がNビットの整数倍となっていない場合がある。
【0168】
このような場合、書き込み制御部202は、符号化コードストリームをNビットでアライメントしてから、ラインバッファメモリ203に格納する。
【0169】
つまり、アライン・ユニットが存在する場合、そのアライン・ユニット毎の符号化コードストリームのデータ長は、データアライメント長Nビットの整数倍となっている。
【0170】
図10に戻り、読み出し制御部204は、データアライメント長決定部201により決定されたデータアライメント長N毎に、符号化コードストリームをラインバッファメモリ203から読み出す(矢印227)。
【0171】
このように読み出し制御部204は、データアライメント長N毎に符号化コードストリームを読み出せばよいので、ラインバッファメモリ203へのアクセス回数を低減させ、より効率よく符号化コードストリームを読み出すことができる。また、各アライン・ユニットの切れ目が、この読み出し単位と一致するので、各アライン・ユニットの切れ目の検出が容易になる。
【0172】
読み出し制御部204は、読みだした符号化コードストリームを符号語解読部205に供給する(矢印228)。なお、例えば、遅延時間の増大やパケットロスの発生等により高域成分のアライン・ユニットを破棄する必要が生じた場合、読み出し制御部204は、データアライメント長Nに基づいてアライン・ユニットの切れ目を検出し、アライン・ユニット毎に符号化コードストリームの取捨選択を行う。
【0173】
つまり、読み出し制御部204は、必要なアライン・ユニットの符号化コードストリームのみ符号語解読部205に供給し、不要なアライン・ユニットの符号化コードストリームは破棄する(符号語解読部205に供給しない)。
【0174】
符号語解読部205は、符号化コードストリームを解読して、量子化ステップサイズやウェーブレット変換の分解レベル数等の情報を抽出し、各々を逆量子化部209やウェーブレット逆変換部210に供給する(矢印229および矢印230)。
【0175】
また、符号語解読部205は、解読が終わると、その符号化コードストリームをエントロピ復号部206に供給する(矢印231)。
【0176】
エントロピ復号部206は、送信装置101のエントロピ符号化部126による可変長符号化方法に対応する所定の可変長復号方法によって、符号化コードストリームをエントロピ復号する。エントロピ復号部206は、エントロピ復号されて得られた係数データをピクセルカウンタ207に供給する(矢印232)。
【0177】
上述したようなアライン・ユニットが存在する場合、ウェーブレット逆変換部210は、各アライン・ユニットを識別しながら、合成フィルタリングを行う。つまり、エントロピ復号されて得られた係数データにおいても、各アライン・ユニットの識別が必要である。
【0178】
ピクセルカウンタ207は、各アライン・ユニットの係数データ数をカウントする。ピクセルカウンタ207は、各アライン・ユニット(AU)のピクセル数を予め把握している。ピクセルカウンタ207は、アライン・ユニット1(AU-1)の最初のピクセルが入力されるとピクセルのカウントを開始し、そのカウント値から、各アライン・ユニットの切れ目を検出する。
【0179】
アライン・ユニットの切れ目を検出すると、ピクセルカウンタ207は、それまでにカウントしたピクセルの係数データを、アラインユニットバッファ208に供給し、蓄積させる(矢印233)。
【0180】
逆量子化部209は、所定のタイミングにおいて、アラインユニットバッファ208に格納されている係数データを、アライン・ユニット毎に読み出す(矢印234)。
【0181】
アラインユニットバッファ208は、係数データを、アライン・ユニット毎に識別することができるように格納する。つまり、アラインユニットバッファ208に蓄積されている係数データは、各アライン・ユニットが識別可能に管理されている。
【0182】
従って、逆量子化部209は、容易に、アラインユニットバッファ208から係数データをアライン・ユニット毎に読み出すことができる(所望のアライン・ユニットの係数データのみ読み出すことができ、最初の係数データから読みだす必要がない)。
【0183】
逆量子化部209は、取得したアライン・ユニット単位の係数データを逆量子化し、それをウェーブレット逆変換部210に供給する(矢印235)。
【0184】
ウェーブレット逆変換部210は、供給された係数データを用いて合成フィルタによる合成フィルタ処理を行う。ウェーブレット逆変換部210は、バッファ211を利用しながら、この合成フィルタ処理を再帰的に繰り返し(矢印236および矢印237)、復号画像データを得ると、それを外部に出力する(矢印238)。
【0185】
[処理の流れ]
以上のような受信装置103により実行される受信処理の流れの例を図12および図13のフローチャートを参照して説明する。
【0186】
パケットが受信され、受信処理が開始されると、ステップS201において、データアライメント長決定部201は、データアライメント長Nを決定する。
【0187】
ステップS202において、受信装置103は、データアライメント長Nの値が「0」でないか否かを判定し、「0」でないと判定した場合、処理をステップS203に進め、「0」であると判定した場合、処理をステップS205に進める。
【0188】
データアライメント長N=0でない場合、ステップS203において、書き込み制御部202は、必要に応じてアライメントを行いながら、符号化コードストリームをアライン・ユニット毎にラインバッファメモリ203に書き込む。ステップS204において、読み出し制御部204は、ラインバッファメモリ203に格納されている符号化コードストリームを、Nビット毎に読み出す。
【0189】
また、データアライメント長N=0である場合、ステップS205において、書き込み制御部202は、供給される符号化コードストリームを順次ラインバッファメモリ203に書き込む。ステップS206において、読み出し制御部204は、ラインバッファメモリ203に格納されている符号化コードストリームをその書き込み順に読み出す。
【0190】
受信装置103は、ステップS204またはステップS206の処理が終了すると、ステップS207に処理を進める。
【0191】
ステップS207において、符号語解読部205は、符号語を解読する。ステップS208において、エントロピ復号部206は、符号化コードストリームを復号し、処理を図13のステップS210に進める。
【0192】
図13のステップS210において、ピクセルカウンタ207は、符号化コードストリームに含まれる情報等に基づいて、アライン・ユニットが存在するか(ONされているか)否かを判定し、存在する(ONされている)と判定された場合、処理をステップS211に進める。
【0193】
ステップS211において、ピクセルカウンタ207は、係数データのピクセルをカウントする。ステップS212において、ピクセルカウンタ207は、カウントしたピクセルがアライン・ユニットの切れ目であるか否かを判定し、切れ目でないと判定された場合、処理をステップS211に戻し、それ以降の処理を行う。
【0194】
また、ステップS212において、アライン・ユニットの切れ目であると判定された場合、ピクセルカウンタ207は、処理をステップS213に進める。
【0195】
また、ステップS210において、アライン・ユニットが存在しない(ONされていない)と判定された場合、ピクセルカウンタ207は、処理をステップS213に進める。
【0196】
ステップS213において、ピクセルカウンタ207は、ピクセルをカウントした係数データ若しくは供給された係数データをアラインユニットバッファ208に書き込む。
【0197】
ステップS214において、逆量子化部209は、係数データの読み出しタイミングであるか否かを判定する。読み出しタイミングであると判定された場合、逆量子化部209は、ステップS215に処理を進め、アラインユニットバッファ208に格納されている係数データを、アライン・ユニット毎に読み出す。ステップS216において、逆量子化部209は、読みだした係数データを逆量子化する。
【0198】
ステップS217において、ウェーブレット逆変換部210は、逆量子化された係数データをウェーブレット逆変換する。ウェーブレット逆変換処理が終了すると、受信処理が終了される。
【0199】
また、ステップS214において、読み出しタイミングでないと判定された場合、逆量子化部209は、処理を図12のステップS207に戻し、それ以降の処理を実行させる。
【0200】
次に、図12のステップS201において実行されるデータアライメント長決定処理の流れの例を図14のフローチャートを参照して説明する。
【0201】
データアライメント長決定処理が開始されると、データアライメント長決定部201は、アライン・ユニットが存在するか否か(ONされているか否か)を判定する。データアライメント長決定部201は、アライン・ユニットが存在しない(ONされていない)と判定された場合、ステップS232において、データアライメント長Nの値を0に設定する。データアライメント長Nが設定されると、処理は、図12のステップS201に戻り、それ以降の処理が行われる。
【0202】
また、図14のステップS231において、アライン・ユニットが存在する(ONされている)と判定された場合、データアライメント長決定部201は、ステップS233において、送信側でアライメントが行われたか否かを判定する。
【0203】
アライメントが行われていないと判定された場合、データアライメント長決定部201は、ステップS234において、データアライメント長Nの値を伝送路102の帯域幅Wに設定する。データアライメント長Nが設定されると、処理は、図12のステップS201に戻り、それ以降の処理が行われる。
【0204】
さらに、図14のステップS233において、アライメントが行われたと判定された場合、データアライメント長決定部201は、ステップS235において、データアライメント長Nの値を、送信装置101において設定されたデータアライメント長N’に設定する。データアライメント長Nが設定されると、処理は、図12のステップS201に戻り、それ以降の処理が行われる。
【0205】
以上のように、受信装置103は、所定のデータ長毎にアライメントを行うことにより、より容易に、アライン・ユニットの切れ目を検出し、アライン・ユニット毎の処理を行うことができる。これにより、受信装置103は、データ伝送の際のパケットロスに対する耐性を向上させ、画像の画質劣化を抑制する低遅延データ伝送を、より容易に実現することができる。
【0206】
<2.第2の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。この場合、例えば、図15に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
【0207】
図15において、パーソナルコンピュータ400のCPU(Central Processing Unit)401は、ROM(Read Only Memory)402に記憶されているプログラム、または記憶部413からRAM(Random Access Memory)403にロードされたプログラムに従って各種の処理を実行する。RAM403にはまた、CPU401が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0208】
CPU401、ROM402、およびRAM403は、バス404を介して相互に接続されている。このバス404にはまた、入出力インタフェース410も接続されている。
【0209】
入出力インタフェース410には、キーボード、マウスなどよりなる入力部411、CRT(Cathode Ray Tube)ディスプレイやLCD(Liquid Crystal Display)等のディスプレイ、並びにスピーカなどよりなる出力部412、フラッシュメモリ等SSD(Solid State Drive)やハードディスクなどよりなる記憶部413、有線LAN(Local Area Network)や無線LANのインタフェースやモデムなどよりなる通信部414が接続されている。通信部414は、インターネットを含むネットワークを介しての通信処理を行う。
【0210】
入出力インタフェース410にはまた、必要に応じてドライブ415が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア421が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部413にインストールされる。
【0211】
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【0212】
この記録媒体は、例えば、図15に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア421により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM402や、記憶部413に含まれるハードディスクなどにより構成される。
【0213】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0214】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0215】
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
【0216】
また、以上において、1つの装置(または処理部)として説明した構成が、複数の装置(または処理部)として構成されるようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成が、まとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成が付加されるようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部が他の装置(または他の処理部)の構成に含まれるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【0217】
本発明は、例えば、動画像信号やビデオ信号や静止画像を圧縮して伝送、受信して伸長して画像を出力する装置に好適である。具体的には、モバイル通信機、TV会議システム、監視カメラ・レコーダシステム、医用遠隔医療診断、放送局内のビデオ圧縮・伝送、ライブ映像の配信、生徒と教師間のインタラクティブ通信、無線での静止画・動画伝送、対話型ゲームアプリケーション等に適用することができる。
【符号の説明】
【0218】
100 送受信システム, 101 送信装置, 102 伝送路, 103 受信装置, 121 画像ライン入力部, 122 ラインバッファ, 123 ウェーブレット変換部, 124 係数処理部, 125 レート制御部, 126 エントロピ符号化部, 127 ラインブロックメモリ, 128 データアライメント部, 129 送信部, 131 係数ライン並び替え部, 132 量子化部, 200 受信部, 201 データアライメント長決定部, 202 書き込み制御部, 203 ラインバッファメモリ, 204 読み出し制御部, 205 符号語解読部, 206 エントロピ復号部, 207 ピクセルカウンタ, 208 アラインユニットバッファ, 209 逆量子化部, 210 ウェーブレット逆変換部, 211 バッファ

【特許請求の範囲】
【請求項1】
階層的に分析フィルタ処理を行い、少なくとも最低域成分のサブバンドの1ライン分の係数データを生成するのに必要なライン数分の画像データを含むラインブロックを、周波数帯域毎に分解された係数データに変換する分析フィルタ手段と、
前記分析フィルタ手段により生成された前記係数データを符号化する符号化手段と、
前記符号化手段により前記係数データが符号化されて得られる符号化データを、所定のデータ長を単位としてアライメントするアライメント手段と
を備える画像処理装置。
【請求項2】
前記符号化データの並びを、前記分析フィルタ手段による前記分析フィルタ処理の出力順から、低域成分から高域成分に向かう順に並び替える符号化データ並び替え手段をさらに備える
請求項1に記載の画像処理装置。
【請求項3】
画像処理装置の画像処理方法であって、
前記画像処理装置の分析フィルタ手段が、階層的に分析フィルタ処理を行い、少なくとも最低域成分のサブバンドの1ライン分の係数データを生成するのに必要なライン数分の画像データを含むラインブロックを、周波数帯域毎に分解された係数データに変換し、
前記画像処理装置の符号化手段が、生成された前記係数データを符号化し、
前記画像処理装置のアライメント手段が、前記係数データが符号化されて得られる符号化データを、所定のデータ長を単位としてアライメントする
画像処理方法。
【請求項4】
階層的な分析フィルタ処理により所定ライン数の画像データが周波数帯域毎に分解された、少なくとも最低域成分のサブバンドの係数データを1ライン以上含む、各サブバンドの係数データ群からなるラインブロックが符号化されて生成された符号化データをアライメントする単位データ長であるデータアライメント長を決定する決定手段と、
前記決定手段により決定された前記データアライメント長を単位として、前記符号化データをアライメントするアライメント手段と、
前記アライメント手段によりアライメントされた前記符号化データを記憶する記憶手段と、
前記記憶手段により記憶されている前記符号化データの、前記分析フィルタ処理の分割レベル毎に区分するデータ単位であるアライン・ユニットの切れ目を検出し、必要なアライン・ユニットの符号化データのみ、前記記憶手段から前記データアライメント長毎に読み出す読み出し手段と、
前記読み出し手段により前記記憶手段から読みだされた前記符号化データを復号する復号手段と
を備える画像処理装置。
【請求項5】
階層的に合成フィルタ処理を行い、前記復号手段により復号されて得られた各サブバンドの前記係数データを前記画像データに変換する合成フィルタ手段をさらに備える
請求項4に記載の画像処理装置。
【請求項6】
前記復号手段により復号されて得られた各サブバンドの前記係数データのピクセル数をカウントするカウント手段をさらに備え、
前記復号手段は、前記カウント手段によりカウントされた前記ピクセル数に従って検出された前記アライン・ユニットの切れ目に基づいて、各サブバンドの前記係数データを前記画像データに変換する
請求項5に記載の画像処理装置。
【請求項7】
前記決定手段は、前記データアライメント長を、前記符号化データに前記アライン・ユニットが存在するか否か、既に前記符号化データにアライメントが行われているか否か、および、前記符号化データが伝送される伝送路のビット幅に基づいて決定する
請求項4に記載の画像処理装置。
【請求項8】
前記決定手段は、前記符号化データに前記アライン・ユニットが存在し、かつ、既に前記符号化データにアライメントが行われている場合、前記アライメントにおけるデータアライメント長を、前記データアライメント長とする
請求項7に記載の画像処理装置。
【請求項9】
前記決定手段は、前記符号化データに前記アライン・ユニットが存在し、かつ、前記符号化データにアライメントが行われていない場合、前記伝送路のビット幅を前記データアライメント長とする
請求項7に記載の画像処理装置。
【請求項10】
前記決定手段は、前記符号化データに前記アライン・ユニットが存在ない場合、前記データアライメント長を0ビットとする
請求項7に記載の画像処理装置。
【請求項11】
画像処理装置の画像処理方法であって、
前記画像処理装置の決定手段が、階層的な分析フィルタ処理により所定ライン数の画像データが周波数帯域毎に分解された、少なくとも最低域成分のサブバンドの係数データを1ライン以上含む、各サブバンドの係数データ群からなるラインブロックが符号化されて生成された符号化データをアライメントする単位データ長であるデータアライメント長を決定し、
前記画像処理装置のアライメント手段が、決定された前記データアライメント長を単位として、前記符号化データをアライメントし、
前記画像処理装置の記憶手段が、アライメントされた前記符号化データを記憶し、
前記画像処理装置の読み出し手段が、記憶されている前記符号化データの、前記分析フィルタ処理の分割レベル毎に区分するデータ単位であるアライン・ユニットの切れ目を検出し、必要なアライン・ユニットの符号化データのみ、前記データアライメント長毎に読み出し、
前記画像処理装置の復号手段が、読みだされた前記符号化データを復号する
画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2011−147050(P2011−147050A)
【公開日】平成23年7月28日(2011.7.28)
【国際特許分類】
【出願番号】特願2010−7807(P2010−7807)
【出願日】平成22年1月18日(2010.1.18)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】