トップ :: H 電気 :: H04 電気通信技術




【発明の名称】 ウェーブレットを使用したビデオ圧縮方法
【発明者】 【氏名】クラーク、 デレク ランド

【氏名】ロバーツ、 テディ ポール

【氏名】シェイファー、 ルシンダ エレン

【氏名】ストッカー、 ケネス アラン

【要約】 【課題】計算上の複雑さを軽減し、低コストなウェーブレット埋め込み型ストリーム生成方法を提供する。

【構成】好ましくはビデオデータを代表するデータ要素は、論理的にブロックに分割される。ビット毎に、各ブロックはそのブロックのデータ要素が高緻密化形式で表わされる。あるブロックがこの方法で表現できないなら、それはより小さな寸法をもったブロックに副分割される。適切なブロックの識別と副分割は、最小のブロック寸法に達するまで再帰的に繰り返される。同じ結果が、減少したデータ要素のテーブルを繰り返し形成することによって構築された複数の昇順テーブル206を使用することで達成できる。複数の昇順テーブルは横断され、減少したデータ要素に基づいて、データのブロックが高緻密化形式になりやすいことを確認する。ウェーブレット変換204は圧縮されるビデオデータを提供するために好ましく使用される。
【特許請求の範囲】
【請求項1】
圧縮用ビデオデータを処理する方法であって、
(A) 各データ要素が所定のビット数によって表わされる入力データとして、
ビデオデータを提供するステップと、
(B) 前記所定のビット数の複数のビット位置代表の少なくとも1つのビット位置に対して、
(i) 前記入力データより小さなブロック寸法を持つ複数のデータ・ブロックを提供するために前記入力データのデータ要素をグループ化するステップと、
(ii) 前記データ・ブロックの全データ要素が前記ビット位置に第1のビット値を含むとき、前記ビット位置の前記データ・ブロックの全データ要素の代表として前記第1のビット値を出力するステップと、
(iii)前記データ・ブロックのいずれかのデータ要素が前記ビット位置に第2のビット値を含むとき、前記第2のビット値を出力し、最小のブロック寸法に達するまでステップ(i)から(iii)に従って、前記複数のデータ・ブロックの各データ・ブロックを前記入力データとして再帰的に扱うステップ
とを含むことを特徴とする方法。
【請求項2】
ステップ(B)が、
(iv) 前記最小のブロック寸法に達したとき、前記複数のデータ・ブロックの各データ・ブロックに対して、前記ビット位置の前記データ・ブロックの各データ要素を代表するのデータ・ビットを出力するステップ
をさらに含むことを特徴とする請求項1記載の方法。
【請求項3】
ステップ(B)の(iv)が、
(a) 前記データ要素を代表するデータ・ビットが前記第2のビット値を含み、前記データ要素に対応するタグビットが設定されていないとき、前記データ・ブロックの各データ要素に対して、前記データ要素に対応するサインビットを出力するステップと、
(b) 前記データ要素に対応する前記タグビットを設定するステップ
とをさらに含むことを特徴とする請求項2記載の方法。
【請求項4】
(C) ビデオデータで最大の大きさを持つ最大のデータ要素を識別するステップと、
(D) ログビット位置を識別するために、前記第2のビット値として設定する前記最大のデータ要素の最も重要なビットを決定するステップと、
(E) 前記ログビット位置を代表するデータを出力するステップ
とをさらに含むことを特徴とする請求項1記載の方法。
【請求項5】
前記複数のビット位置を、前記ログビット位置から最も重要でないビット位置まで順番に処理することを特徴とする請求項4記載の方法。
【請求項6】
最小ブロック寸法が2×2に対応することを特徴とする請求項1記載の方法。
【請求項7】
前記ビデオデータが、輝度データ、色度赤データ、および色度青データのうちの任意の1つのウェーブレット変換に起因するウェーブレット係数を含むことを特徴とする請求項1記載の方法。
【請求項8】
前記データ要素が符号付き大きさフォーマットで表わされることを特徴とする請求項1記載の方法。
【請求項9】
前記第1のビット値が2進数の0で、前記第2のビット値が2進数の1であることを特徴とする請求項1記載の方法。
【請求項10】
伸長されたビデオデータを生成するための伸長のためにデータを処理する方法で、
(A) 各データ要素が所定のビット数によって表わされるデータ格納エリアを、出力格納エリアとして提供するステップと、
(B) 提供される受信ビットへ圧縮したビデオデータを受け取るステップと、
(C) 前記所定のビット数の複数のビット位置を代表する少なくとも1つのビット位置に対して、
(i) 前記出力格納エリアより小さなブロック寸法をもつ複数のデータ・ブロックを提供するために、前記出力格納エリアのデータ要素をグループ化するステップと、
(ii) 前記複数のデータ・ブロックのデータ・ブロックに対応する受信ビットの1つが第1のビット値を含むとき、前記ビット位置で前記データ・ブロックの各データ要素に前記第1のビット値を格納するステップと、
(iii) 前記複数のデータ・ブロックのデータ・ブロックに対応する受信ビットの1つが第2のビット値を含むとき、最小のブロック寸法に達するまでステップ(i)から(iii)に従って、前記データ・ブロックを前記出力格納エリアとして再帰的に扱うステップ
とを含むことを特徴とする方法。
【請求項11】
ステップ(C)が、
(iv) 前記複数のデータ・ブロックの1つのデータ・ブロックが最小のブロック寸法をもつとき、前記データ・ブロックの各要素において、前記ビット位置に受信ビットのうちの対応する1つを格納するステップをさらに含むことを特徴とする請求項10記載の方法。
【請求項12】
ステップ(C)の(iv)が、
(a) データ・ブロックの各データ要素に対して、前記受信したビットのうちの前記対応する1つが前記第2のビット値を含み、前記データ要素に対応するタグビットが設定されていないとき、前記データ要素に対応するサインビットとして前記受信ビットに続いて受信する1つを設定するステップと、
(b) 前記データ要素に対応するタグビットを設定するステップ
とをさらに含むことを特徴とする請求項11記載の方法。
【請求項13】
前記受信したビットが、前記第2のビット値に設定されるべき前記データ格納エリアの前記データ要素の最も重要なビットを示すログビット位置を代表するデータを含むことを特徴とする請求項10記載の方法。
【請求項14】
前記複数のビット位置を、前記ログビット位置から最も重要でないビット位置まで順番に処理することを特徴とする請求項13記載の方法。
【請求項15】
最小ブロック寸法が2×2に対応することを特徴とする請求項10記載の方法。
【請求項16】
前記ビデオデータが、輝度データ、色度赤データ、および色度青データのうちの任意の1つのウェーブレット変換に起因するウェーブレット係数を含むことを特徴とする請求項10記載の方法。
【請求項17】
前記データ要素が符号付き大きさフォーマットで表わされることを特徴とする請求項10記載の方法。
【請求項18】
前記第1のビット値が2進数の0で、前記第2のビット値が2進数の1であることを特徴とする請求項10記載の方法。
【請求項19】
ウェーブレット係数を提供するために離散ウェーブレット変換によってビデオデータを処理する、圧縮のためのビデオデータ処理方法で、
(A) 所定のビット数と複数の昇順テーブルの部分を形成するレベル0のテーブルによって表わされる前記各ウェーブレット係数を、前記レベル0のテーブル中のデータ要素として格納するステップと、
(B) J=1からKの間、前記複数の昇順テーブルの他のテーブルを構築する、
(i) 複数のデータ要素ブロックを提供するためにレベル(J−1)テーブルからの前記データ要素をグループ化するステップと、
(ii) 前記データ要素ブロックの前記データ要素が減少されたデータ要素の子であるように、前記複数のデータ要素ブロックの各データ要素ブロックに対して、前記データ要素ブロックを形成している前記データ要素のビット毎の論理的なORをとることによって、前記減少されたデータ要素を形成するステップと、
(iii) 前記複数の昇順テーブルのレベル(J)テーブルに前記減少されたデータ要素を格納するステップ
とを含むことを特徴とする方法。
【請求項20】
前記複数のデータ要素ブロックの各データ要素ブロックが、2×2ブロックを含むことを特徴とする請求項19記載の方法。
【請求項21】
前記ビデオデータが、輝度データ、色度赤データおよび色度青データの少なくとも1つを含むことを特徴とする請求項19記載の方法。
【請求項22】
前記ウェーブレット係数が、符号付き大きさフォーマットで表わされることを特徴とする請求項19記載の方法。
【請求項23】
前記ウェーブレット係数が、タグビットを含むことを特徴とする請求項19記載の方法。
【請求項24】
(C) 前記レベル0のテーブルで最大の大きさを持っている最大ウェーブレット係数を識別するステップと、
(D) ログビット位置を識別するため、2進数の1に設定される前記最大ウェーブレット係数の最も重要なビットを決定するステップと、
(E) 前記ログビット位置を代表するデータを出力するステップ
とをさらに含むことを特徴とする請求項19記載の方法。
【請求項25】
(F) 各降順木検索が前記ログビット位置と最も重要でないビット位置の間に包括される複数のビット位置の1つのビット位置に特有に対応し、前記複数の昇順テーブルについて、少なくとも1つの前記降順木検索を実施するステップをさらに含むことを特徴とする請求項24記載の方法。
【請求項26】
前記各降順木検索が、
(i) 前記複数の昇順テーブルを横断し、前記ビット位置で前記複数の昇順テーブルの各データ要素の2進値を識別し、圧縮したデータを出力するために、
(a) 2進数の0が前記レベル0のテーブル中のデータ要素に識別されるとき、前記ビット位置で前記データ要素の代表として2進数の0を出力するステップと、
(b) 2進数の1が前記レベル0のテーブル中のデータ要素に識別されるとき、前記ビット位置で前記データ要素の代表として2進数の1を出力するステップと、
(c) 2進数の0がJ=1からKの間の前記レベル(J)のテーブル中のデータ要素に識別されるとき、前記ビット位置で前記データ要素の全子孫の代表として2進数の0を出力し、その後前記ビット位置で前記データ要素の全子孫を識別するステップをスキップするステップと、
(d) 2進数の1がJ=1からKの間の前記レベル(J)のテーブル中のデータ要素に識別されるとき、2進数の1を出力し、ステップ(a)から(d)に従って、前記データ要素の前記子を再帰的に処理するステップ
とをさらに含むことを特徴とする請求項25記載の方法。
【請求項27】
ステップ(i)の(b)が、
(l) 前記データ要素に対応するタグビットが設定されていないとき、前記データ要素に対応するサインビットを出力するステップと、
(2) 前記データ要素に対応する前記タグビットを設定するステップ
とをさらに含むことを特徴とする請求項26記載の方法。
【請求項28】
前記ビット位置が最初は前記ログビット位置であり、個々の連続降順木検索によって降下することを特徴とする請求項25記載の方法。
【請求項29】
(G) 複数のデコードされた昇順テーブルの各データ要素が所定のビット数によって表される、J=0からKの間のデコードされたレベル(J)のテーブルからなる前記複数のデコードされた昇順テーブルを提供するステップと、
(H) 前記圧縮したデータと前記ログビット位置を代表するデータを受け取るステップと、
(I) 各降順木デコードが、前記ログビット位置と最も重要でないビット位置の間に包括する複数のビット位置のデコードされたビット位置に特有に対応し、前記圧縮データに基づいた少なくとも1つの前記降順木デコードの実行により、前記複数のデコードされた昇順テーブルを生成するステップ
とをさらに含むことを特徴とする請求項27記載の方法。
【請求項30】
前記各降順木デコードが、
(J) 前記複数のデコードされた昇順テーブルを横断し、前記複数のデコードされた昇順テーブルの各データ要素の前記デコードされたビット位置で、前記圧縮したデータの2進値を格納するために、
(i) 2進数の0が、前記圧縮したデータと生成される前記レベル0のテーブルのデータ要素から識別されるとき、前記デコードされたビット位置でデータ要素中に2進数の0を格納するステップと、
(ii) 2進数の1が、前記圧縮したデータと生成される前記レベル0のテーブルのデータ要素から識別されるとき、前記デコードされたビット位置でデータ要素中に2進数の1を格納するステップと、
(iii) 2進数の0が、前記圧縮したデータと生成されるJ=1からKの間の前記デコードされたレベル(J)のテーブルのデータ要素から識別されるとき、前記データ要素のデコードされたレベル0のテーブルの全子孫に、前記デコードされたビット位置で、2進数の0を格納して、その後前記データ要素の前記全子孫に対して、前記デコードされたビット位置で格納するステップをスキップするステップと、
(iv) 2進数の1が、前記圧縮したデータと生成されるJ=1からKの間の前記デコードされたレベル(J)のテーブルのデータ要素から識別されるとき、前記データ要素に、前記デコードされたビット位置で、2進数の1を格納して、ステップ(i)から(iv)に従って前記データ要素の前記子を再帰的に処理するステップ
とをさらに含むことを特徴とする請求項29記載の方法。
【請求項31】
各データ要素が複数のビット位置を占める複数のデータ要素を含むデータを圧縮する方法において、
前記複数のビット位置から1つのビット位置を選ぶステップと、
前記ビット位置で、前記データの部分を構成する前記データ要素を検査するステップと、
前記データの前記部分を構成する前記データ要素の各々が前記ビット位置で第1のビット値を含む場合に、前記ビット位置で前記データの前記部分を構成する前記データ要素を代表する少なくとも1ビットを出力するステップ
とを含むことを特徴とする方法。
【請求項32】
前記データの前記部分を構成する前記データ要素のうちのいずれかが前記ビット位置で第2のビット値を含む場合に、再帰指標を出力するステップと、
前記データの前記部分を構成する前記データ要素のうちのいずれかが前記ビット位置で前記第2のビット値を含む場合に、前記データの前記部分の少なくとも1つの細分化部に関して、前記検査するステップと両方の前記出力するステップを再帰的に繰り返すステップ
とをさらに含むことを特徴とする請求項31記載の方法。
【請求項33】
前記再帰的に繰り返すステップが、前記データの前記部分の前記細分化部が最小寸法になるまで再帰的に繰り返すことを含み、
前記データの前記部分の前記細分化部が最小寸法になる場合、前記ビット位置で前記データの前記部分の前記細分化部の前記各データ要素について、データ・ビットを出力するステップをさらに含むことを特徴とする請求項31記載の方法。
【請求項34】
前記ビット位置で前記データの前記部分の前記細分化部の前記各データ要素について、前記データ・ビットを出力するステップが、
前記データ要素を代表する前記データ・ビットが前記第2のビット値を含み、前記データ要素に対応するタグビットが設定されていない場合、前記データの前記部分の前記細分化部の前記各データ要素について、前記データ要素に対応するサインビットを出力するステップと、
前記データ要素に対応する前記タグビットを設定するステップ
とをさらに含むことを特徴とする請求項33記載の方法。
【請求項35】
前記ビット位置を選ぶステップが、
前記複数のデータ要素から最大の大きさを持つ最大のデータ要素を識別するステップと、
ログビット位置を識別するために、前記第2のビット値として設定する前記最大のデータ要素の最も重要なビットを決定するステップと、
前記ログビット位置に相当する前記ビット位置を設定するステップと、
前記ログビット位置を代表するデータを出力するステップ
とをさらに含むことを特徴とする請求項31記載の方法。
【請求項36】
最も重要なビット位置から最も重要でないビット位置まで順番に、前記複数のビット位置から別のビット位置を選び、
前記別のビット位置に関して前記以前のステップを繰り返す
ことをさらに含むことを特徴とする請求項34記載の方法。
【請求項37】
前記データが、輝度データ、色度赤データ、および色度青データのうちの任意の1つのウェーブレット変換に起因するウェーブレット係数を含むことを特徴とする請求項31記載の方法。
【請求項38】
前記データ要素が符号付き大きさフォーマットで表わされることを特徴とする請求項31記載の方法。
【請求項39】
前記第1のビット値が2進数の0で、前記第2のビット値が2進数の1であることを特徴とする請求項32記載の方法。
【発明の詳細な説明】【技術分野】
【0001】
本発明はビデオ圧縮装置および方法に関するものであり、特に、実質的に一定のデータ出力レートを提供する間に画像品質を著しく下げずに、デジタル形式中のビデオ画像情報を著しく圧縮するための方法及び機器に関するものである。
【背景技術】
【0002】
ビデオ画像は、多数の個々の画素で構成され、一般的にはピクセルと呼ばれる。ビデオ画像のピクセルは小さな色、そして、あるいは、黒い点および白い点であり、緊密に電子表示装置上に配置されるので、ピクセルの集合体が遠くから見られる場合、それらは互いと事実上判別不能で、画像であるように見える。例えば、十分な分解能を持つNTSC(National Television Systems Committee)のフレームは何千ものピクセルで構成される。NTSCビデオフレームを形成するピクセルは、数的に、画像の輝度(Y)、色度赤(Cr)および色度青(Cb)含量を指定する2進数データ値によって表されることができる。十分な分解能を持つNTSCビデオフレームは、一般にそのような画像の輝度含量用デジタルデータを720×480バイト含む。NTSCフレームの色度赤および色度青の含量は、各々、データを360×480バイト含む。毎秒30フレーム(fps)のフレームレートで、無線で送信されたリアルタイムのNTSCビデオ信号は、トランスミッターと受信器間で転送されるデータの本質的な量(約166Mbits/秒)を要求する。
【0003】
ビデオデータを送信するのに必要な帯域幅を最小限にするために、ビデオデータがよく圧縮されることはよく知られている。これは、画像あるいは転送されている画像に関して、ほとんどあるいは全く認知できない情報を持つデータを処分することにより一般的に行われる。ビデオデータを圧縮する方法の1つの種類は、ウェーブレット変換の使用を組込むことである。例えば、シャピロ(Shapiro)に発行された米国特許番号5,315,670、5,412,741、5,321,776、5,315,670および5,563,960は、ウェーブレット変換に基づいたビデオ圧縮の様々な技術について記述する。簡潔に、ウェーブレット係数に帰着するビデオデータのウェーブレット変換は、周波数および空間の特性が維持されるウェーブレット領域へビデオピクセル情報の転化に基づいたビデオ画像をコード化するおよび解読する方法を提供する。さらに、シャピロは、出力として埋込み型ストリームを提供する圧縮スキームの利点を認識する。埋込み型ストリームは、ストリームの初めのより低いデータレートをすべて含む。すなわち、圧縮スキームがデータを圧縮するとともに、最も大きいか最も重要である情報の含量を含むそのデータは最初に出力される。圧縮が継続するとともに、補足情報量は圧縮したビデオデータの全体的性能をさらに精製して、出力ストリームに加えられる。これにより、出力ストリームのためのどんな目標データレートに到達しても、圧縮エンコーダがエンコードすることを停止することができ、従って、一定の出力データレートが見込める。同様に、出力ストリームを伸長している圧縮デコーダーは、先を切られたストリームのデータレートで生産されていた質がある画像に帰着するどの時点でも解読して停止することができる。埋め込み型ストリームのこれらの特質は全面的な方式設計を単純化することができる。
【0004】
シャピロ(上記参照)および他のものがビデオデータの圧縮のためにウェーブレット変換技術を示していた一方、これらの先行技術技術の多くはビデオ伝送速度を強調していない。より正確に言えば、多くの先行技術技術が複写精度を強調し、膨大な量の処理能力を要求するため、このような先行技術技術はすべて計算上複雑だった。その結果、これらの先行技術圧縮スキームは、できるだけ低いコストに抑えなければならない消費製品に使用するには一般的にふさわしくない。消費使用に経済的に役に立つように有能な計算上効レート的なビデオ圧縮技術は、先行技術上の改良になるだろう。さらに、そのような技術は埋込み型ストリームとして出力を提供するべきである。
【0005】
発明の要約
一般に、本発明は、埋込み型ストリームとして圧縮したビデオデータを提供するために計算上単純な技術を提供する。これは、高度に画像を圧縮するために論理上縮小されるかもしれないデータのブロックを階層的に認識することにより達成される。本発明の1つの実施の形態では、データ要素が、ブロックに論理上分割される。ビット毎方式では、各ブロックは、そのブロックのデータ要素が高度な圧縮形式で表わされるかどうか判断するために検査される。そうであれば、その後、与えられたビット位置での全ブロックのシングルビット代表が出力される。与えられたブロックがこの方法で表わされないかもしれない場合、それはより小さな寸法を持つブロックに細分される。必要なときに、適切なブロックおよび再分割を識別するこの過程は、必要な最小のブロック寸法に到達するまで再帰的に繰り返される。
【0006】
本発明の他の実施の形態では、複数の上昇するテーブルが、下位レベルテーブルからの個々のデータ要素を論理上、論理和をとる(OR)ことにより、反復して縮小されたデータ要素のテーブルを成形することにより構築される。この方法では、連続的により高いレベルテーブルがデータ要素のより大きなブロックの代表となる。最高レベルテーブルに再帰的に伝わり、そして、ビット・ワイズ方式において、複数の上昇するテーブルが横断される。すなわち、縮小されたデータ要素に基づいて、データのブロックは高度な圧縮形式が可能であるか識別される。
【0007】
本発明は、本発明に従って有利に圧縮されるビデオデータを提供するために有益にウェーブレット変換を使用する。初期のピクセルの条件付けの後に、ウェーブレット係数は計算され、マルチビット2進数値として表現される。本発明の実施の形態では、ウェーブレット係数が符号付き大きさ方式で表現される。ウェーブレット係数は2寸法の行列に格納され、それらが表わす画像の周波数成分によって階層的にともに集束される。その後、ここに示されるように、ウェーブレット係数は入力として圧縮処理に供給される。
【0008】
他の先行技術システムに対照して、埋め込み型出力ストリームという長所をいまだ提供している一方で、ここに開示され主張された発明は、容認できないピクセルの劣化なしに、ビデオデータを高度に圧縮することができる、計算上効レート的な手段を提供する。さらに、本発明は、ビデオデータへの適用という点で特に記述されるが、ここで開示した原理はデータの多くの形式に有益に適用され得る。
【0009】
好ましい実施形態の詳細な説明
図1−12を参照し、より詳細に本発明を説明する。
【0010】
図1は、ビデオトランスミッター101およびビデオ受信器103を含む、無線のビデオシステム100のブロック図を示す。ビデオトランスミッター101は、画像センサー104、例えば参照数字102によって識別されたオブジェクトによって捕らえられた画像を表わすビデオ信号106を提供するカメラあるいは他の画像センサー104を含む。ビデオ信号106は設計選択の問題として、デジタルまたはアナログ信号を含む。他のフレームレートが使用されてもよいが、好ましい実施の形態では、ビデオ信号106が毎秒30フレームで生成されたNTSCビデオ信号を含む。さらに、もしそれらがフレームに基づいた、ピクセルに基づいたフォーマットに変換することができれば、他のビデオ信号フォーマットが使用されてもよい。
【0011】
ビデオ画像センサー104は、以下に記述された技術を使用して、今度はビデオ信号106を変形し圧縮するビデオ圧縮器200にビデオ信号106を転送する。変形され圧縮した情報(圧縮したビデオ)110は、アンテナ114によって伝送用の無線のキャリヤー115上に圧縮したビデオ110を調整する無線のトランスミッター112に供給される。使用される無線のキャリヤーあるいは変調の特別の形式は本発明に重大ではない。本発明が無線のシステムに制限されていないことはさらに認識される。確かに、キャリヤー115および関連する無線通信トランスミッター112、無線受信器118によって作成された無線のパスは、技術として知られているように、有線のパス、あるいは無線と有線の運搬要素の連結に代替されるかもしれない。
【0012】
ビデオ受信器103は、アンテナ116によって受け取られた無線のキャリヤー115を検知し復調する無線受信器118を含む。無線受信器118は無線のキャリヤー115を復調し、そこから受信した圧縮したビデオ120を生産する。受信された圧縮ビデオ120は、受信ビデオ信号124を生成するためにビデオ伸長器300によって処理される。受信ビデオ信号124は次には、TVまたはコンピュータのモニタのような表示装置126上のディスプレイのためにビデオ画像128を供給するために使用される。表示された画像128はカメラ検出部104によって検知されたオブジェクト102の一部の画像である。ビデオ圧縮器200およびビデオ伸長器300は、特に図2および図3に関して、一層に詳細に以下に説明する。
【0013】
図2は図1の中で示されるビデオ圧縮器200のブロック図である。事実上、どんな適切に速いマイクロプロセッサもビデオ圧縮器200として機能しているかもしれない一方、技術に熟練している人々はほとんどの信号処理プロセッサ(DSP)がウェーブレット変換計算のような計算上複雑な操作用の多目的マイクロプロセッサより本質的に優秀であることを認識するだろう。さらに、プログラム可能なロジック配列あるいは他の同様のハードウェア装置を使用して、ビデオ圧縮器200を実行することができることは予想される。
【0014】
ビデオ信号202は、好ましくはYCrbの形をして、個別のウェーブレット変換204ブロックへの入力として適用される。好ましい実施の形態では、ビデオ信号が、ウェーブレット変換204へのアプリケーションに先立って条件付けられる(図2では図示せず)。例えば、ビデオ画像中で処理されるデータ量を縮小するために、ビデオ画像の他のすべてのピクセルは反別名フィルタリング(デシメーションとして参照された処理)の後に廃棄される。
【0015】
受信器では、各ピクセルごとの改造に際して、廃棄された介在するピクセルが、保持されたピクセルを使用して、廃棄されたピクセルの値を改ざんすることにより改造される。一旦オリジナルの画像のピクセルが水平・鉛直面の両方の中で10分の1にされれば、残りのピクセルからの画像情報量は、適宜、3つの異なるセットを産する輝度色度赤および色度青成分へ分離される。そのような実施の形態では、ウェーブレット変換204への入力が、輝度情報の360×240バイト、色度画像のそれぞれが180×120バイトを含む。
【0016】
ウェーブレット変換204は信号画像のすべての3つ、つまり、ウェーブレット係数の3セットの計算に帰着する輝度および色度赤と色度青の両方のために計算される。個別のウェーブレット変換の計算は、一般に良く知られた技術である。好ましい実施の形態では、ウェーブレット変換204が次のステップを実行する。
【0017】
1.ビデオ信号データは、ウェーブレット変換中に生じるデータの分割を単純化するために画像データのサイズを増加させるための“伸長されたピクセル”である。例えば、輝度データの360×240バイトは、384×256バイトに伸長される。
【0018】
2.各画像は、低いパス・フィールドおよび高いパス・フィールドへ画像を分割して、Y寸法でウェーブレットフィルターを通して渡される。
【0019】
3.その後、これらのフィールドは、X寸法でウェーブレットフィルターを通して渡され、さらに、4つのフィールドに有効に帰着する低いパスおよび高いパス・フィールドへフィールドを分割する。
【0020】
4.XとYの両方の寸法でフィルターされた低いパスであるフィールドは、(1)から(3)に従って再び処理され、そのために、そのフィールドは4つの新しいフィールドに分割される。
【0021】
5.この処理は、輝度情報の6レベルが作成され、色度赤および色度青情報のそれぞれ5レベルが作成されるまで繰り返される。もちろん、より大きいかより小さいレベルの数が輝度および(または)色度情報のために作成されるかもしれない。
【0022】
上記の記述されたウェーブレット変換の全面的な影響は、図4の中で示される複合レベルサブバンド分解である。入力域エリア206に格納されて、データはウェーブレットにフィルターされた輝度ブロック404、ウェーブレットにフィルターされた色度青ブロック406およびウェーブレットにフィルターされた色度赤408を含む。図4の垂直の軸および軸に沿って表示された寸法は、模範的なものである。他の寸法を使用し得るし、設計選択の問題である。さらに、入力域エリア206は、理解を助けるために2寸法で表わされるが、実際上、それは技術中で知られているように、メモリに格納されたテーブルを含む。各ブロック404、406、408は、オリジナルの画像の様々な成分の空間周波数含量の複合レベルサブバンド分解を含む。最低の周波数を表すサブバンドは、各ブロックの左上コーナーに格納され、最高の周波数が右下コーナーに格納される。技術中で知られているように、与えられた画像のほとんどの情報量は、より低い周波数に含まれ(例えば滑らかな遷移および(または)連続的な色のエリア)、一方、より高い周波数データ(オブジェクト間の境界設定の鋭い端)は、画像にあるより鋭い細部に寄与する。その結果、より低い周波数ブロックに格納された係数は、最も高い値を持つ傾向がある。例えば、輝度ブロック404の極端な左上コーナー中の参照数字412によって識別されたサブバンドは、変形された画像の最低周波数含量の代表である。反対に、輝度ブロック404の極端な右下コーナー中の参照数字410によって識別されたサブバンドは、変形された画像の最高周波数含量の代表である。それが埋め込み型ストリームを生産するのに役立つので、示された多層のサブバンド分解の階層的性質は本発明で使用するために奨励される。
【0023】
図2を再び参照して、上述したように、入力域エリア206に、ウェーブレット変換204は、ウェーブレット係数を作成し、それらを格納する。一旦ウェーブレット係数が格納されれば、昇順/降順キー(ADK)圧縮器208は、圧縮したデータ212を提供するために圧縮処理を始めることができる。実際上、ウェーブレット変換204およびADK圧縮器208処理の順番に並べることは、それぞれの機能で制御信号216、218を無線通話する制御機能214によって監督される。好ましい実施の形態では、制御機能214がフレームごとの基板上で処理を維持する。例えば、ビデオデータ202(1つのフレーム)の処理を完成しており、入力域エリア206で新しいウェーブレット係数を作成した場合、ウェーブレットフィルター204は制御機能214に通知する。これを受けて、制御機能214は、新しく格納されたウェーブレット係数を処理して始めることができるADK圧縮器208に通知する。以下に、詳細に説明するように、制御機能214は、ADK圧縮器208がどのくらいの量のデータを出力すべきか通知するために使用されるフレーム・サイズ・データを、フレーム基板ごとに、ADK圧縮器208に供給することが予想される。一旦、ADK圧縮器208がその処理を完成したならば、ADK圧縮器208は、制御機能214に通知し、今度は、ビデオデータの新しいフレームを処理し始めることができるウェーブレットフィルター204に通知する。
【0024】
ビデオ圧縮器200はさらに符号付き大きさ変換器210を含む。実際上、ウェーブレット係数は最も伝導力のある単純な演算操作、例えば1の補数または2の補数のデータ表現を使用して、入力域エリア206に格納される。しかしながら、以下の記述から明白であるように、圧縮されたデータ内の2進数“1”桁の発生回数が最小化されたとき、ADK圧縮器208は最も効レート的に作動する。この目的のために、図5の中で示されるように、符号付き大きさ変換器210はADK圧縮器208と共に、入力域エリア206に格納されたデータを符号付き大きさフォーマットに変換する。図5は、N-ビット大きさ表現502を含む好ましいデータ表現、サインビット504およびタグビット506を示す。例として、N=14が示されている。実際のデータが大きさとして表わされるので、最上位ビットが2進数“0”桁になる見込みが最大化される。技術中で知られているように、サインビット504は、全体値が正か負かどうかを表す。最下位ビット位置の中で示されたが、サインビット504は設計検討で規定されたどんなビット位置も占めるかもしれない。同様に、タグビット506は設計選択の問題としてどんなビット位置も占めるかもしれない。タグビット506の使用は、特に図6と図11に関して、より詳しく以下に記述されるだろう。
【0025】
図3は図1の中で示されるビデオ伸長器300のブロック図である。事実上、どんな適切に速いマイクロプロセッサもビデオ伸長器300として機能しているかもしれない一方、技術に熟練している人々はほとんどの信号処理プロセッサ(DSP)が逆のウェーブレット変換計算のような計算上複雑な操作用の多目的マイクロプロセッサより本質的に優秀であることを認識するだろう。さらに、プログラマブル・ロジック・アレイあるいは他の同様のハードウェア装置を使用して、ビデオ伸長器300を実行することができることは予想される。概して言えば、ビデオ伸長器300は、もとは入力ビデオ信号の複写を提供するためにビデオ圧縮器200に補足的な操作を実行する。
【0026】
ビデオ伸長器300は、本発明に従ってビデオ圧縮器によって提供されるような圧縮したデータ302を受け取る。圧縮したデータ302は、ADK伸長器304に送られる。以下に詳細に記述されるように、ADK伸長器304は最初に符号付き大きさフォーマットでのウェーブレット係数を再作成して、出力格納エリア306にそれらを格納する。さらに、符号付き大きさ変換器308と共に、受信ウェーブレット係数は、ADK伸長器304によって、逆ウェーブレット変換処理、例えば、1の補数または2の補数のデータ表現で使用するに、よりふさわしいデータ表現と変換される。これが終わると、逆ウェーブレット変換310は圧縮されていないデータ312を提供するために受信ウェーブレット係数上で作動する。逆ウェーブレット変換用技術は知られた技術である。ビデオ圧縮器200に似ているやり方で、ビデオ伸長器300は、ADK伸長器304と逆ウェーブレット変換310間の操作を順番に配列するための制御信号316、318を受信する制御機能314を含む。すなわち、フレームのデータ値を伸長し終わり、これを受けて、制御機能314が逆ウェーブレット変換310にその処理を始められることを通知するとき、ADK伸長器304は、制御機能314に通知する。逆ウェーブレット変換314がその操作を終える場合、逆ウェーブレット変換314は、制御機能314に通知し、今度は、ADK伸長器により多くの伸長されたデータをもう一度提供することができることを通知する。ADK圧縮器およびADK伸長器の様々な実施の形態は、図6−12を参照して、以下に説明する。
【0027】
図6は圧縮したデータを提供する第1の方法を示すフローチャートである。図6に示されたステップは、上述したビデオ圧縮器200、特にADK圧縮器208によって実行される。ステップ601で、複数の要素を含むビデオデータは、入力データとして提供される。好ましい実施の形態では、ビデオデータが、上述された複合サブバンド分解に起因するウェーブレット係数(ビデオフレームの輝度、色度赤および色度青成分のそれぞれ)を含む。各ウェーブレット係数は入力データの別個の要素と考えられる。もちろん、入力データは、ウェーブレット係数以外のデータ型を含むかもしれない。ステップ602で、成分のうちの任意の1つに対応するデータ要素は、解析される初期の成分としてアクセスされる。好ましい実施の形態では、輝度成分が初期の成分である。
【0028】
ステップ603で、ログビット位置は、Y、CrおよびCb 成分の各々のために自由に識別される。図5を再び参照して、N-ビット大きさデータ502は、複数のビット位置(サインビット504およびタグビット506以外)を占めることと見なされるかもしれない。図5の中で示されるように、データ502は、最上位ビット位置(“データビット13”と名付けられた)から、最下位ビット位置(“データビット0”と名付けられた)まで、14の異なるビット位置を含む。本発明のコンテキストでは、与えられた成分のログビット位置が、最大の大きさを持つ要素の最上位ビット(つまり、2進数“1”値を持って)に対応するビット位置である。したがって、輝度データのログビット位置を決定するために、輝度データは最大の大きさ価値を見つけるように探索される。例えば、輝度データ(さらに、N=14で、N-ビット大きさを仮定する)のすべての最大の大きさが、“00110111010010”であると仮定する。この例において、輝度データのログビット位置は、図5でLBPと示されているように、“データビット11”と名付けられたビット位置になるだろう。それから、この処理は、色度赤および色度青が3つのログビット位置を提供するために繰り返されるだろう。好ましい実施の形態では、その後、各々は出力として提供されるかもしれないが、これらの3つのログビット位置の最大値が圧縮処理の出力として提供される。
【0029】
さらに以下に詳細に記述するように、本発明は、与えられたビット位置で2進数“0”値を持つデータ要素の最大可能ブロックを配置することにより圧縮を提供する。その後、与えられたビット位置でのデータのブロックは、出力データストリームの中のシングルビットによって簡潔に表される。与えられたビット位置でのデータ内で見つけられた2進数“1”値は、別々に送られなければならない。したがって、ログビット位置は2進数“1”値を探す開始位置を表す。ログビット位置よりも大きいビットでのすべてのデータ要素、全てのビット値が2進数“0”値を含むことが知られているので、それらを送信することは不必要になる。これは、例を通して、一層よく理解されるかもしれない。
【0030】
図7を参照すると、“AAx”と名付けられたデータ要素を構成すると表されたブロック704Aがあり、ここで、xは“A”、“B”、“C”、あるいは“D”のどれかであり得る。単純化のために、最上位ビット位置が最左端のビット位置(ビット位置2)で、最下位ビット位置が最右端のビット位置(ビット位置0)で、間に一つだけビット位置があり(ビット位置1)、それぞれのデータ要素は3ビットの大きさの値からなるものとする。さらに、データ要素のそれぞれの値は、“AAA”が“010”、“AAB”が“001”、“AAC”が“011”、そして“AAD”が“000”であるとする。明らかに、これらの値の最大の大きさは、“011”であり、この値の最上位ビットは、ビット位置1で起こる2進数“1”値を持つ。したがって、ビット位置1はログビット位置として識別される。より高いビット位置(つまりビット位置2)のビットのすべてが2進数“0”値を持つので、それらを送信する必要はない。受信器がログビット位置を受け取る時、すべてのデータ要素(この例では“AAx”要素に限定する)にとって、ログビット位置よりも高いビット位置でのビット値が“0”であると自動的に仮定する。この例において、ログビット位置の使用は、4ビットの値を送信する必要を除去した。もちろん、可能な場合、この同じ概念はさらに多くのビット位置を含むデータ表現に適用し、そのために、より大きな伝達効レートさえ提供することができる。
【0031】
図6に再び返って、解析ビット位置はステップ604で初期化される。ログビット位置が決定された場合、任意のビット位置に解析ビット位置を初期化することができるかもしれないが、解析ビット位置はログビット位置価値にむしろ初期化される。それでも、技術における通常の熟練があるものが認識するだろうとして、埋め込み型ストリームの生産はより高く重要なビット位置に解析ビット位置を初期化し、解析手続きが継続するとともに、より低く重要なビット位置に解析ビット位置を減少することにより促進される。ステップ604で示されるように、再帰指標(j)はその最大の値Jに初期化される。ここに記述された再帰指標は、実例目的だけのために使用される。技術における通常の熟練があるものが認識するように、多くの技術が再帰的手続きの実行のために存在する。図6の中で示される実行では、所定の時間に再帰指標の値が、現在考慮中のサイズブロックを示す。最大の値Jは、次第により小さな値が次第により小さなブロック寸法に相当している一方、できるだけ大きなブロックが考慮されていることを示す。
【0032】
ステップ605で、入力データ(このポイントでのビデオデータのすべて)は、ブロックへ論理上細分される。入力データが論理上細分される方法は設計選択の問題であるが、好ましい実施の形態では、入力データは4つの等しい大きさのブロックへ細分される。例えば、図7を再び参照すると、個別のブロック702A―Dに分割されたビデオデータ700が示される。示された例において、最初のブロック702Aは、“Axy”と名付けられた16のデータ要素を含む。ここで、xとyの両方が、“A”、“B”、“C”、あるいは“D”であり得る。同様の規則はブロック702B−Dに当てはまる。ステップ606で、処理されるべきブロックが残っているかどうか決定される。図7で示された例におけるこの点で、処理されるべきブロックが残っている場合、ステップ607で、処理される次の利用可能なブロック、例えば第1のブロック702Aが選択される。
【0033】
ステップ608で、現在処理中のブロックが最小のブロック寸法を持っているかどうか判断する。好ましい実施の形態では、最小のブロック寸法が12×8、つまり、96のデータ要素を含むブロックに相当する。一旦、最小のブロック寸法に到達すると、コンパクトな表現のためのブロックの細分化はなされない。事実、以下の説明から明らかなように、最小のブロック寸法は、“最も深い”再帰可能レベルを表示する。現在処理中のブロックが最小のブロック寸法を持っている場合、処理はステップ612で継続する。
【0034】
ステップ612で、現在処理中の最小の寸法のブロックは、M=2でオーバーラップしないブロック、むしろ複数のM×Mへ細分される。最小のブロック寸法が12×8である場合、これは24の2×2のブロックに帰着するだろう。Mの他の値も使用され、また、ステップ612で確立されたブロックが正方形である必要がないことはさらに理解される。それでも、その後、最小寸法ブロック内の各サブブロックは解析される。すなわち、各サブブロックについては、各データ要素の解析ビット位置のビット値が、次のステップに従って決定され扱われる:
1)“0”ビット値にあったとき、“0”を出力し、次のデータ要素へ進む;
2)“1”にあったとき、“1”を出力し、そのデータ要素に関連するタグビットをチェックする。そのデータ要素に対するタグビットがセットされたら、そのとき、そのデータ要素に対するサインビットは既に出力され、また、処理は次のデータ要素で継続することができる。タグビットがセットされない場合は、そのデータ要素のサインビットを出力して、タグビットをセットして、次の要素に進む(この処理は、タグビットが最初に取り除かれると仮定する。タグビットの極性は、同じ機能を達成するために、容易に反転させられ、その場合、タグビットは最初にセットされる。)。
【0035】
それぞれのサブブロック中の各データ要素のビット位置のビット値が出力されるまで、この処理が繰り返される。与えられたデータ要素用のタグビットは、そのデータ要素に対する第1の“1”ビット値は出力され、その要素のみのためのサインビットが以前送られたことを保証するとき、その要素のためのサインビットが出力されることを保証する。各サブブロック中の要素を横断するために使用される特別なパターンは、設計選択の問題である。1つの例を図7に示す。第1のブロック702Aが最小のブロック寸法を含むと仮定する。この場合、サブブロック704A―Dは、サブブロックとサブブロック内の両方の“z”パターン(矢印によって示されたように)を使用して解析される(上述したように)。したがって、個々のデータ要素の処理は以下のように進むだろう。“AAA”、“AAB”、“AAC”、“AAD”、“ABA”、“ABB”、“ABC”、“ABD”、“ACA”、“ACB”、“ACC”、“ACD”、“ADA”、“ADB”、“ADC”そして“ADD”。もちろん、サブブロック間あるいはサブブロック内で他のパターンが、ちょうど容易に使用されるかもしれない。その後、処理は、現在のビデオフレームのビット限界にまだ到達していないかどうかを決定するステップ613に続く。提供される出力が埋込み型ストリーム(解析ビット位置を減少することおよび構造中の要素の横断の順序による)であるので、つまり、圧縮したビデオデータ出力に分配されたビットの前もって定義した数が到達した場合、処理はどの時点でも中止することができる。ビット限界がまだ到達していない場合、j番目のレベルでの追加ブロックの処理はステップ606で継続する。
【0036】
ステップ608で、処理中のブロックが最小のブロック寸法を持っていない場合、処理はステップ609で継続する。ステップ609で、現在のブロックの各データ要素が解析ビット位置で最初のビット値を含むかどうか判断する。(好ましい実施の形態で、図6に示すように、第1のビット値は“0”ビット値であるのに対し、第2のビット値は“1”ビット値である。)その場合、ステップ614で、現在処理中のブロックの解析ビット位置のデータ要素のすべての代表として、第1のビット値(つまり“0”ビット値)が出力される。例えば、第1のブロック702A内の各データ要素(つまり、xとyの両方が、“A”、“B”、“C”、あるいは“D”のどれかである要素“Axy”)が、解析ビット位置で“0”ビット値を含むと仮定する。その後、一つの“0”ビットが解析ビット位置でのそれらのデータ要素のすべての出力代表として提供される。その後、処理は、現在のビデオフレームのビット限界がまだ到達していないかどうか再び判断するステップ613に続く。そうでなければ、処理はステップ606で継続する。
【0037】
しかしながら、ステップ609で、現在のブロックのどんなデータ要素も、解析ビット位置で、第2のビット値(つまり“1”ビット)を含むことが決定された場合、その後、第2のビット値がステップ610で出力される。この時点での第2のビット値出力は、再帰が生じており、処理がより小さなブロックサイズ方式を継続するだろうことを受信体に示すだろう。この目的のために、さらにステップ610で、現在のブロック(例えば第1のブロック702A)は、入力ブロック(ステップ605においてさらに細分化されることが予想される)と指示され、また、再帰指標jは回帰の少なくとも1レベルが生じたことを示して減少される。ステップ611で、解析されている現在のフレームの出力ビット限界を超過していない場合、処理はステップ605で継続する。ステップ605で、入力データ(今は第1のブロック702A)は、例えば、704A―Dと名付けられたブロックに帰着する図7に示されたようなブロックに再び論理上分割される。この点で、最高レベル(つまりブロック702B−D)でのより大きなブロックがまだ処理されていないことに注意する。その後、新しいレベルでの処理は上述したステップ606−614に従って進む。
【0038】
ステップ606および615は、接続して、いつ回帰の与えられたレベルが完成されるか決定し、処理を続けるために、(i)全フレームの処理が完する、あるいは(ii)処理は次の最高回帰レベル(つまり次の最大のブロックサイズ)に返らなければならないことを指し示す。例えば、現在、j<Jであり、704A―Dと名付けられたブロックが現在処理中であり、704Dと名付けられたブロックがちょうどステップ612あるいはステップ614のどちらかに従って処理が終わったと仮定する。ステップ606で、処理するために残されたブロックはこのレベルにはこれ以上なく、したがって、ステップ615は、j≠Jなので、処理が最も高い回帰レベルをまだ完成していないことを決めるだろう。ステップ616で、再帰指標は増加され、そして、ステップ606で、処理されるべき残された新しいj番目のレベルで、追加ブロックがあるかどうか決定される。したがって、704Dと名付けられたブロックが終了したとき、再帰指標は次の最高レベルに増加されるだろう。このレベルでは、702B−Dと名付けられたブロックがまだ処理される必要があり、また、全手続きが繰り返されるだろう。
【0039】
現在の解析ビット位置のすべてのデータ要素の圧縮が、現在解析されている成分のために実行された場合(つまり、ステップ615の「はい」の分岐)、処理はステップ617に続くだろう。ステップ617で、現在の解析ビット位置で、解析されるべき残っている成分がさらにあるかどうか判断する。好ましい実施の形態では、輝度値は、第1のビット位置で色度成分の各々に続けられて、第1の解析ビット位置で最初に解析される。ビット限界に遭遇するか、すべての成分がすべてのビット位置で処理されるまで、この順番は後のビット位置のために繰り返される。より多くの成分が現在の解析ビット位置でこれから解析される場合、次の成分に対応するデータ要素はステップ618でアクセスされ、また、処理は現在の解析ビット位置で新しい成分の解析のためにステップ605に戻る。
【0040】
しかしながら、現在の解析ビット位置でこれ以上解析される成分が残っていない場合、処理は、これから解析されるビット位置が残っているかどうか判断するステップ619に続く。そうでなければ、その後、すべての成分はあらゆるビット位置で解析され、また、フレームの処理が終わる。(ビット限界に到達する前にすべてのビット位置ですべての成分が解析された場合、ビット限界までの残されたビット幅は、ビット限界を維持するためにダミーデータビットが詰め込まれる。)しかしながら、解析される追加のビット位置が残っている場合、初期の成分に対応するデータ要素(つまり、ステップ602で選択されるのと同じ成分)は、ステップ620でアクセスされる。ステップ621で、次のビット位置は解析ビット位置として指示される。好ましい実施の形態では、ステップ621が、次の最上位ビット位置への解析ビット位置を減少する1ステップを含む。その後、処理はステップ605で再開されるかもしれない。
【0041】
図8は伸長されたビデオデータを提供する最初の方法を例証する流れ図である。図8の中で示されているステップは、上述したビデオ伸長器300、とりわけADK伸長器304により実行されることができる。図8の中で示されている方法は、図6に関連して上述された方法に対し補完的である。ステップ801で、少なくとも1つのフレームに相当する伸長されたビデオデータを格納するのにふさわしいデータ格納領域が、出力格納エリアとして指定される。実施の形態では、伸長されたビデオデータは、個々のデータ成分を考慮した各ウェーブレット係数について、輝度、色度赤および色度青のビデオ成分の多重サブバンド伸長に起因するウェーブレット係数よりなる。ステップ802で、図6の中で示されている方法によって提供されているような圧縮されたデータが受信される。実施の形態では、圧縮されたデータは、圧縮されたビデオデータよりなり、上述したようなログビット位置を表示するデータを含んでいる。ステップ803で、成分(Y、C、C)のうちの任意の1つに対応する伸長されたデータを格納するための出力格納エリアのその部分は、合成される最初の成分としてアクセスされる。実施の形態では、輝度成分が最初の成分である。
【0042】
ステップ804で、合成ビット位置が初期化される。ログビット位置が提供された場合、図6に関連して上述したように、それが解析ビット位置の進行を同様に追跡する限り、どんなビット位置の値も使用することができるが、合成ビット位置はログビット位置と同じ値に初期化される。さらに、ステップ804で、再帰標識、jは最大のJに初期化される。図6に関して上述された再帰標識と同様に、図8の再帰標識は、再帰手続きの実行に利用可能な多くの方法の1つであり、図示する目的だけのためにここに記述されている。
【0043】
ステップ805で、出力格納エリアは、論理上ブロックに細分される。特に、このステップで作成されたブロック構造は、空間的な方位及び寸法において、上に議論したステップ605の第1の再帰に起因するブロック構造と望ましくは同一である。このように、図8の処理に起因する伸長されたビデオデータは、もとの圧縮したビデオデータと同一になるはずである(修復不可能なエラーが伝送中に圧縮したビデオデータ中で招かれなかったと仮定して)。ビデオデータを伸長する過程中に、圧縮したデータを伸長する場合ビデオデータを解析するために使用される同じ空間パターンに従う。
【0044】
ステップ806で、現在のレベルで処理されるべき(つまり再構成/伸長されたビデオデータを受信すること)ブロックが残されているかどうかが、決定される。図8の処理による第1の通過は第Jレベルにあるため、処理されるブロックは可能な最大のブロックサイズに相当するだろう。ステップ807で、次の利用可能なブロック(最初の繰り返しでは、これが最初の利用可能なブロックになるだろう)は選択され、そして、ステップ808で、選択されたブロックが最小の寸法のブロックを備えているかが決定される。上で述べたように、最小の寸法のブロックは再帰の最も深いレベルに相当する。現在選択されたブロックが最小の寸法のブロックでない場合、処理はステップ809で継続する。
【0045】
ステップ809で、検討中のブロックに対応する受信した圧縮データのビットは、そのビット値を決定するために解析される。ビットが第1のビット値(望ましくは“0”ビット値)を備えるならば、処理は、第1のビット値を有するビットが現在選択されたブロックを形成する各データ要素に合成ビット位置で格納されるステップ814で継続する。このように、本発明は、ブロックのサイズが比較的大きいところで特に、かなりの量のデータに対して非常に簡便な表現を提供することができる。その後、ステップ813で、現在のビデオフレームに対するビット限界が既に到達されたかどうかは随意的に決定される。上に述べたように、圧縮したビデオデータ出力に分配されたビットの所定の数が到達された場合、圧縮処理はどの時点でも中止することができる。同様に、受信圧縮したビデオビットの所定の数が処理された後、伸長処理は中止することができる。これは再び、圧縮したビデオデータの埋込み型ストリームの本質の結果である。ビット限界がまだ到達されていない場合、第jレベルでの追加のブロックの処理はステップ806で継続する。
【0046】
しかしながら、ステップ809で解析されたビットが第2のビット値(望ましくは“1”ビット値)を備えるならば、処理は、現在選択されたブロックが出力格納エリアとして指定され、再帰指標、jが減少されるところのステップ810で継続する。本質的には、現在選択されたブロックに対応し、第2のビット値を持っている受信ビットは、少なくとも1つのデータ要素が第2のビット値(合成ビット位置で)を含み、さらに合成が現在選択されたブロック内のより小さなブロックの基で進むべきであることを示すフラグの役割をする。ステップ811で、合成されている現在のフレームに対するビット限界が超えられてないならば、処理はステップ805で継続する。ステップ805で、出力格納エリア(今のステップ806(以下参照)より前のパス中の検討しているブロック)は、再び論理的にブロックに分割される。このポイントでは、最高レベル(つまり前のレベル)でのより大きなブロックは完全には処理されていないことに注意する必要がある。その後、新しいレベルで処理はステップ806(以下参照)に従って進む。
【0047】
再帰の処理が継続するとともに、ポイントは、ステップ808で決定されるように、考慮中のもたらされるブロックが最小のブロック寸法を持つところに到達される。これが生じる場合、ステップ812での処理は、ステップ612に関して上述された処理と実質的に逆のものである。ステップ812で、現在考慮中の最小の寸法のブロックは、複数のM×Mブロックへ再分割される。ここで、M=2である。もう一度、最小のブロック寸法が12×8である場合、これは24の2×2ブロックに帰着するだろう。Mの他の値を使用することができ、さらに、ステップ612で確立されたブロックが正方形である必要がないことが理解される。それにもかかわらず、最小寸法のブロック内の各サブブロックの各データ要素に対する合成ビット位置のビット値は合成される。すなわち各サブブロックについては、各データ要素の合成ビット位置のビット値が、次のステップに従って、圧縮したビデオデータからの受信ビットに基づいて決定される:
1)“0”ビット値に遭遇したら、“0”を格納し、次のデータ要素に行く;
2)“1”に遭遇したら、“1”を格納し、そのデータ要素に関連したタグビットをチェックする。そのデータ要素に対するタグビットがセットされる場合、そのデータ要素に対する符号ビットは既に格納され、処理は次のデータ要素で継続することができる。タグビットがセットされない場合は、そのデータ要素に対して符号ビットとして次の受信ビットを保管して、タグビットをセットして、次の元素に行く(この処理は、タグビットが最初にクリアされると仮定する。タグビットの極性は、タグビットが最初にセットされるところの、ちょうど同じ機能を達成するために同じように容易に逆にされ得る。)。
【0048】
この処理は、それぞれのサブブロック中の各データ要素のビット位置でビット値が格納されるまで、繰り返される。与えられたデータ要素用のタグビットは、そのデータ要素に対する第1の“1”ビット値が格納され、また、その要素に対する符号ビットがいったん単に格納されることを保証する場合に、その要素に対する符号ビットが格納されることを保証する。各サブブロック中の要素を横断するために使用される特別のパターンは、設計選択の問題であるが、解析/圧縮処理の間に使用されるものと少なくとも同一であるべきである。
【0049】
ステップ806および815は、合わせて、再帰の与えられたレベルがいつ終了したか、次のどちらか一方を示して決定する。(i)全フレームに対する処理は終了した、あるいは、(ii)処理は処理し続けるために次の最も高い再帰レベル(つまり次の最大のブロックサイズ)に返らなければならない。例えば、現在j<Jで、レベル(j)の最後のブロックはたった今処理(例えばステップ812あるいはステップ814のいずれかに従い)を終了したと仮定する。ステップ806で、処理するために残されたレベル(j)にブロックはこれ以上なく、したがって、ステップ815は、j≠Jであるから、処理は最も高い再帰レベルをまだ終了していないことを決定される。ステップ816で、再帰指標は増加され、そして、ステップ806で、これから処理される追加のブロックが新しい第jレベルに残っているか決定される。新しい第jレベルに処理されるブロックがある場合、ステップ806−814は上述したように実行される。
【0050】
最新の合成ビット位置でのすべてのデータ要素の再構成が、現在合成(つまりステップ815を外れ“はい”分岐)されている成分に対して実行された場合、処理はステップ817で継続するだろう。ステップ817で、最新の合成ビット位置でそれ以上の成分が残ってこれから合成されるかどうか決定される。実施の形態では、輝度成分が第1の合成ビット位置で最初に合成され、続いて第1のビット位置で色度成分の各々が合成される。ビット限界に遭遇するか、すべての成分がすべてのビット位置で処理されるまで、この順番は後のビット位置について繰り返される。より多くの成分が最新の合成ビット位置で残ってこれから合成される場合、次の成分に対応するデータ要素の格納用の出力格納エリアの部分は、ステップ818でアクセスされる。その後、処理は最新の合成ビット位置で新しい成分の再構成のためにステップ805に返る。
【0051】
しかしながら、これ以上の成分が最新の合成ビット位置でこれから合成されるために残ってない場合、いずれかのより多くのビット位置がこれから合成されるかどうかが決定されるところのステップ819で、処理は継続する。そうでなければ、その後、成分はすべてあらゆるビット位置で合成され、また、フレームのための処理が決定される。(成分がすべてあらゆるビット位置でビット限界に達する前に合成された場合、圧縮したデータからの残される受信ビットはビット境界を保存するために提供されるむしろダミーのデータビットであり、無視することができることに注意する必要がある。)しかしながら、追加のビット位置がこれから合成される場合、初期の成分(つまりステップ803で選択されるのと同じ成分)に対応するデータ要素の格納用の格納エリアのその部分は、ステップ820でアクセスされる。その後、ステップ821で、次のビット位置は合成ビット位置として指定される。実施の形態では、ステップ821は、次の最も有効な位置への合成ビット位置を減少するステップよりなる。その後、処理はステップ805で再開するかもしれない。
【0052】
図6および図8に関して記述した方法は、ともに、データの圧縮および伸長に効率的な技術、特に、階層的な多重のサブバンド分解から生じるウェーブレット係数を提供する。簡潔に表わすことができるデータの最大の可能なブロックの識別によって、本発明は比較的小さな計算量でよい圧縮比を提供する。さらに、本発明の他の実施例が、図9−12によって以下に記載される。特に、図9−12は複数の昇順テーブルに基づいた、ADK圧縮/伸長に対する方法を示す。昇順のテーブルは、高度にコンパクトな表現に最も影響されやすいデータのそれらの部分が容易に特定可能であるようなウェーブレット係数の要約表現をますます供給する。
【0053】
図9は、昇順のテーブルを構成する方法を例示する。ビデオ圧縮器200、好ましくはウェーブレット係数が計算された後にウェーブレット変換204によって、あるいはウェーブレットデータの実際の圧縮に先立ったADK圧縮器208によって、図9の中で示される方法は実施することができる。それがどのように実施されるかにかかわらず、ウェーブレット係数が入力として提供されるステップ901で方法は始まる。好ましくは、ウェーブレット係数は、ウェーブレット変換204に関して上に議論されたような方法で提供される。以下の議論から明白にされるように、分離昇順テーブルは、それらが入力として供給される場合、輝度、色度赤および色度青成分の各々に対して作成される。その後、得られたウェーブレット係数(Y、CあるいはCのうちの1つに対応する)は、好ましくは図4に関して上述した配置に従って、レベル0のテーブルとして、ステップ902で、格納される。さらに、ステップ903で、レベル指数、k、は1に初期化される。レベル指数、k、は、しかし、以下に記述されるように、当業者が複数の上昇するテーブルの構成に有用であると認識する多くの方法の1つである。
【0054】
ステップ904で、レベル(k−1)テーブルは複数のブロックへ再分割される。ステップ902の最初の通過に対しては、レベル(k−1)テーブルがレベル0のテーブルに相当する。レベル(k−1)テーブルが論理的に再分割される方法は設計選択の問題である。実施の形態では、レベル(k−1)テーブルが複数のM×M、オーバーラップしないブロックに、再分割される。ここで、M=2である。もちろん、他のブロック寸法を使用することができる;非正方形ブロック寸法も使用可能であることはさらに予想される。ステップ905で、どれだけのブロックが、これから処理されるレベル(k−1)テーブルにあるかどうか決定される。そうならば、次の利用可能なブロックはステップ906で選択される。ステップ907で、現在選択されたブロックのデータ要素は、減少されたデータ要素を提供するためにともにビット毎のORである。(図示のために、ORオペレーションはシンボル“・”で表わしている)。この処理は、図10A及び10Bの中でさらに図示されている。
【0055】
図10Aは、各々データ要素を形成する複数の2×2ブロックを示す。単純化のために、各データ要素は、図10Aで示されるような値で、データのシングルビットを形成する。4つの2×2ブロックは、参照数表示1002によって示される。ステップ907に従って、最初のブロック(ラベルが付けられた“AAx”データ要素よりなる、ここでxは“A”、“B”、“C”、又は“D”の任意の一つである)の要素は、ビット値“1”(“AAA”・“AAB”・“AAC”・“AAD”=0・1・1・0=1)を有する減少されたデータ要素“AA”にともに帰着するORである。データ要素“AAA”、“AAB”、“AAC”及び“AAD”は、減少されたデータ要素の“AA”の“子”と呼ばれる。同じ手続きは第2、第3及び第4ブロック(各々、ラベルが付けられたデータ要素“ABx”、“ACx”及び“ADx”よりなる、ここでxは“A”、“B”、“C”、又は“D”の任意の一つである)のデータ要素上で実行され、減少されたデータ要素“AB”、“AC”及び“AD”に帰着する。事実、減少されたデータ要素の各々の値は、その関連する子のうちのどれかの“1”ビット値の存在か欠如を示す。実際上、データ要素の各々は、シングルビット値ではなくむしろ、例えば、図5の中で図示されたデータ表現に関連した、所定の数のビットを形成する。その場合では、対応するビット位置の各々でデータ要素のビット値が、その対応する子と同じ長さ(所定の数のビット)の減少されたデータ要素にともに(ビット毎にOR)帰着するORである。各減少されたデータ要素は、ステップ908で、レベル(k)テーブル中の対応する位置に格納される。現在のレベル(k)でブロックを処理しなければならない限り、ステップ905−908が繰り返される。2×2ブロックが、減少されたデータ要素の生成の中で使用されるところでは、生じるレベル(k)テーブルは、図10A及び10Bに示すように、レベル(k−1)テーブルの2分の1のサイズ(各寸法で)である。
【0056】
ステップ905で、レベル(k−1)で処理されるブロックがこれ以上ないことが決定される場合、処理は、ちょうど終了した減少された要素のテーブルが、最高レベル(K)テーブルに一致するところのステップ909を継続する。すなわち、図9に示される処理は、処理された各成分(Y、C又はC)に対するK+1テーブルに帰着するだろう。表1は、図9に従って構成された昇順のテーブルに対する好ましいパラメーターを示している。表1に示されるように、好ましい値は輝度成分に対してはK=5、及び色度成分の各々に対してK=4である。もちろん、Kの他の値が要求に応じて使用されてもよい。
【表1】


【0057】
最高レベル(K)テーブルがまだ形成されていない場合、レベル指数、k、はステップ910で増加され、処理はステップ904で継続する。そのあと、新しいk番目のレベルで減少されたデータ要素のテーブルが生成されるまで、ステップ904−908は実行される。例えば、図10B及び10Cを参照して、参照数表示1004によって識別される2×2ブロックのデータ要素は、減少されたデータ要素1006(“A”)を提供するために上述したように減少される。参照数表示1004によって識別されたブロック中のデータ要素が減少されたデータ要素1006の子であり;参照数表示1002によって識別されたデータ要素は減少されたデータ要素1006の子孫であることに注意する。ラベルが付けられたデータ要素“Bx”、“Cx”及び“Dx”、ここでxは“A”、“B”、“C”、又は“D”の任意の一つである、よりなるそれらのブロックは、上述されるような同様の子/子孫関係を持っている減少されたデータ要素“B”、“C”、又は“D”を、各々提供するために同様に処理される。
【0058】
結局、任意の与えられた各成分(Y、C又はC)について、ステップ909で決定されるように、減少された係数のレベル(K)テーブルは終了する。これが生じる場合、さらに、なにか成分がこれから処理されため残っているか、ステップ911で決定される。そうであれば、処理は上述したようにステップ901で継続する。そうでなければ、昇順のテーブルが図11を特に参照して下に記述されるように、圧縮したデータを提供するために横断される場合、処理はステップ912で継続する。より詳しく下に議論されるように、昇順のテーブルはウェーブレット係数の簡潔な表現を提供し、そのために圧縮解析を促進する。
【0059】
図11は、図9に関して上述した昇順のテーブルの使用に特に基づいた圧縮したデータを提供する別の方法を図示する。図11に示すステップは、上述したビデオ圧縮器200により、特に、ADK圧縮器208により実行することができる。図11の方法の実行に先立って、上述したように、昇順のテーブルは、圧縮されるビデオフレームの各成分(Y、C又はC)について作成されたと仮定されている。ステップ1101で、ログビット位置は、ステップ602に関して上述したのと同じ方法で、Y、C又はC成分の各々に対して随意的に識別される。再び、これらの3つのログビット位置の最大値は、各々は出力として別々に提供されるかもしれないが、好ましくは圧縮処理の出力として提供される。ステップ1102で、成分のうちのいずれか任意の1つに対する昇順のテーブルは、輝度成分に対する昇順のテーブルが初期の成分として好まれるが、解析される初期の成分としてアクセスされる。
【0060】
解析ビット位置はステップ1103で初期化される。解析ビット位置は任意のビット位置で初期化することができるが、解析ビット位置は、好ましくはログビット位置値(ログビット位置が提供された場合)で初期化され、圧縮処理の残りの全体にわたって減少される。更に、ステップ1103で、再帰指標、j、は、その最大の値Jに初期化される。ここに記述された再帰指標は、図示の目的だけのために使用される。当業者が認識するように、多くの技術が再帰的手続きの実施のために存在する。図11に示す実施例では、所定の時間に再帰指標の値は、昇順のテーブルのどのレベルが現在考慮中であるかを示す。最大の値Jは、最高レベルのテーブルが現在考慮されていることを示し、一方、次第により小さな値は次第により低いテーブルレベルに相当している。
【0061】
ステップ1104で、レベル(j)テーブルはアクセスされる。ここでj=Jであれば、アクセスされたテーブルは、現在解析中の成分に対する最高レベルのテーブルである。図10に示した例を参照して、図10Cの減少された係数のテーブルは最高レベルのテーブルである。ステップ1105で、現在横断されているテーブルがレベル0テーブルであるかどうか、決定される。そうでなければ、その後、ステップ1106で、これから解析されるために残っているデータ要素がレベル(j)テーブルにあるかどうかが決定される。そうであれば、次のデータ要素はステップ1107でアクセスされ、ステップ1108で、解析ビット位置で、そこでは第1のビット値は、実施の形態においては“0”ビット値であるが、減少されたデータ要素が第1のビット値を形成するかどうか決定される。(ステップ1108で解析されたどんなデータ要素もステップ1105に照らして減少されたデータ要素であることに注意すべきである。)第1のビット値がステップ1108で検知される場合、それでは、ステップ1110で、第1のビット値は解析ビット位置で、そのデータ要素の子孫のすべての出力代表として提供される。図10を再び参照して、示されたビット値がすべてP番目のビット位置に相当し、解析ビット位置も同様にP番目のビット位置に現在セットされると仮定されている。今考慮中のデータ要素が、図10Bのラベル“AB”が付けられたデータ要素であるとさらに仮定する。“AB”データ要素はP番目のビット位置で“0”ビット値を形成すると決定したとすると、“0”ビット値は“AB”の子孫の各々を表わすための出力である。別の方法で記載すると、“ABx”とラベルが付けられたデータ要素(ここでxは“A”、“B”、“C”、又は“D”の任意の一つである)はすべて、P番目のビット位置で“0”ビット値を形成するため、4つのデータ要素すべてを代表する単一の“0”ビット値を出力すれば十分である。受信実体が、“0”ビット値出力が“ABx”とラベルが付けられた4つのデータ要素すべてを代表すると認識するので、圧縮はそれにより提供される。単一の出力ビットが解析ビット位置でできるだけ多くの子孫を表わすため、最高レベルテーブル(レベルJ)のデータ要素が解析ビット位置で“0”ビット値を形成する場合に、最大の圧縮が提供される。ステップ1
111では、現在のフレームに対するビット限界が到達され、また、そうでなければ、追加のデータ要素の処理は、もしあれば、ステップ1106で継続するかどうか決定される。
【0062】
第2のビット値がステップ1108で任意のデータに減少されたデータ要素に対して検知される場合、第2のビット値はステップ1109で出力として提供される。この時点での第2のビット値出力は、再帰が生じており、処理が次の最低のテーブルレベルで継続するだろうことを受信実体に示すであろう。この目的のために、再帰指標jは減少される。ステップ1112では、解析されている現在のフレームに対する出力ビット限界が超過されていない場合、ステップ1108で考慮されているデータ要素の子が、ステップ1104−1111に関して上述されている方法で解析されるステップ1104で、処理は継続する。
【0063】
特別な処理が、レベル0テーブルに属するデータ要素に供給される。図10を再び参照して、“A”とラベルが付けられたデータ要素は、“AA”とラベルが付けられたデータ要素まで再帰する処理を招くことになる。同様に、処理は、再び“AA”の子孫、つまりデータ要素“AAx”まで再帰することになる。したがって、ステップ1105で、j=0に対するテストは真となり、処理はステップ1113で継続することになる。ステップ1113では、要素の各々は、どんなパターンも使用することができるかもしれないが、図7に関して上述したように“z”パターンのような所定の順に別々に処理される。各データ要素に対して、解析ビット位置でのビット値は次のステップに従って決定され扱われる:
1)“0”ビット値に遭遇した場合、“0”を出力し、次のデータ要素に進む;
2)“1”に遭遇した場合、“1”を出力し、そのデータ要素に関連したタグビットをチェックする。そのデータ要素に対するタグビットがセットされる場合、そのデータ要素に対する符号ビットは既に出力されて、処理は次のデータ要素で継続することができる。タグビットがセットされない場合は、そのデータ要素に対する符号ビットを出力し、タグビットをセットし、次の元素に進む。(この処理は、タグビットが最初にクリアされると仮定する。タグビットの極性は、同じ機能を達成するために容易に逆にされ、その場合には、タグビットは最初にセットされることになる。)一旦レベル0のデータ要素がこの方法で処理されたならば、現在のフレームに対するビット限界が超過されていないことを保証するために、ステップ1114でチェックがなされる。そうでなければ、再帰指標、j、はステップ1115で増加され、それにより、そのレベルで、もしあれば、追加の要素を処理するために次の最高レベル(レベル1)に処理を返す。
【0064】
ステップ1106で、与えられたレベル(レベル0以外の)で処理する要素がこれ以上残されていないと決定される場合、処理は、ちょうど終了した現在のレベルが最高レベル(J)であるかどうかを決定するステップlIl6で継続する。そうでなければ、再帰指標、j、はステップ1115で増加され、それにより、そのレベルで、もしあれば、追加の要素を処理するために次の最高レベル(レベル1)に処理を返す。例えば、図10を参照して、図10Aに示されるように“ADx”とラベルが付けられたデータ要素が、ステップ1113に従って処理を終了した場合、その処理は、ステップ1116及び1115を経由して、図10Bに示されるテーブルに後退し再帰するであろう。このレベルで処理される要素がもう残っていないので(データ要素“AD”が、このレベルで処理されるデータ要素の最後の子だった)、処理は再び、図10Aに示されるテーブルに後退し再帰するであろう。このレベルでは、ステップ1116でのテストが真で(データ要素“D”が、このレベルで処理されるデータ要素の最後の子だった)、処理はステップ1117で継続するであろう。
【0065】
本質的に、図11の方法は、これまで記述されたポイントに、昇順テーブルの最高レベルテーブルで見つかった各データ要素を検査し、また、必要なところで、最も簡潔に表わされてもよいそれらのデータ要素を識別するために木構造(つまり各データ要素の子孫)へと横断する。再び図10を参照して、“A”とラベルが付けられた、減少されたデータ要素に対応する木の横断は、以下のように(サインビットがまだ出力されてないと仮定して)進むだろう。“A”減少されたデータ要素から始めて、ビット値“1”が遭遇され、したがって、“1”が出力され、そして“A”の子孫(“AA”、“AB”、“AC”、“AD”)が考慮される。“AA”減少されたデータ要素もまた“1”値を持ち、したがって、“1”が出力され、そして“AA”の子孫(“AAA”、“AAB”、“AAC”、“AAD”)が考慮される。“AA”の子孫は、この例ではすべてレベル“0”のデータ要素であることに注意する。“AAA”データ要素は“0”であり、したがって、“0”が出力される。“AAB”データ要素は“1”であり、対応するタグビットはまだセットされてなく(例規則につき)、したがって、“AAB”に対する符号ビットに従って“1”が出力され、そして対応するタグビットがセットされる。“AAC”データ要素は“1”であり、したがって、“AAC”に対する符号ビットに従って“1”が出力され、そして対応するタグビットがセットされる。“AAD”データ要素は“0”であり、したがって、“0”が出力される。これは、“AA”の子孫の処理を終了し、したがって、“A”のもう一つの子孫の“AB”データ要素について処理は継続する。“AB”データ要素は“0”であり、したがって、“0”が出力される。“AC”データ要素もまた“0”であり、したがって、“0”がもう一つ出力される。“AD”データ要素は“1”であり、したがって、“1”が出力され、処理は、“AD”の子孫(“ADA”、“ADB”、“ADC”、“ADD”)の考慮のためレベル0で継続する。“ADA”データ要素は“1”であり、したがって、“ADA”に対する符号ビットに従って“1”が出力され、そして対応するタグビットがセットされる。“ADB”データ要素は“0”であり、したがって、“0”が出力される。“ADC”データ要素は“1”であり、したがって、“ADC
”に対する符号ビットに従って“1”が出力され、そして対応するタグビットがセットされる。最後に、“ADD”データ要素は“0”であり、したがって、“0”が出力される。これは、“A”データ要素とその子孫のすべてに対する処理を終了する。符号ビットがシンボル“s”によって表わされる場合、“A”データ要素とその子孫の横断に起因する出力は、次のビットストリームを招く:1、1、0、1、s、1、s、0、0、0、1、1、s、0、1、s、0。“B”データ要素とその子孫の横断は、次のビットストリームを招く:1、1、1、s、0、0、0、0、0、1、0、1、s、0、0。“C”データ要素とその子孫の横断は、次のビットストリームを招く:1、0、1、1、s、0、0、0、0、1、1、s、0、1、s、0。最後に、“D”データ要素とその子孫の横断は、次のビットストリームを招く:1、1、0、0、1、s、0、0、1、1、s、0、1、s、0、0。
【0066】
したがって、“A”、“B”、“C”及び“D”データ要素の子孫を表すために使用されるビットの合計数は、この例では、符号ビットを含めて64ビットである。対照的に、もし“A”、“B”、“C”及び“D”データ要素の子孫のすべて(そして同じ規則による対応する符号ビット)は、本発明の効用なしで出力されるならば、合計76ビットが必要になるだろう。これは、この例において、必要なデータ量の15%以上のロスのない減量に相当する。もちろん、より高いテーブルレベルでの“0”値の発生は、データ圧縮にたいするより大きな機会も与える。実際上、より高い空間周波数のウェーブレット係数はしばしば、相当数の“0”ビット値を含む(画像中のほとんどの情報がより低い空間周波数で見つかるという事実に従う)。その結果、実質的な圧縮比は、比較的適度の計算上の資源を使用して、ウェーブレット係数データ上で実現される。例えば、100:1の圧縮比は、実時間において許容範囲のビデオ品質で実現される。
【0067】
図11に再び返り、現在の解析ビット位置でのすべてのデータ要素の圧縮が、現在解析されている成分に対して実行された(即ち、ステップ1116からの分岐“はい”)場合に、その処理はステップ1117で継続するだろう。ステップ1117で、現在の解析ビット位置で解析されるべき成分がまだ残っているかどうかが決定される。実施の形態では、輝度成分が第1の解析ビット位置で最初に解析され、次いで第1のビット位置で色度成分の各々が解析される。この順番は、ビット限界に遭遇するか、すべての成分がすべてのビット位置で処理されるまで、それに続くビット位置に対して繰り返される。より多くの成分が残って現在の解析ビット位置でこれから解析される場合、次の成分に対する昇順テーブルはステップ1118でアクセスされ、処理は現在の解析ビット位置で新しい成分の解析のためにステップ1104に返る。
【0068】
しかしながら、成分が残ってなく現在の解析ビット位置でこれから解析されない場合、いずれかのビット位置がこれから解析されるかどうか決定されるところのステップ1119で処理は継続する。そうでなければ、その後、すべての成分はすべての可能なビット位置で解析され、そしてフレームに対する処理が決定される。(もし、ビット限界に達する前に、すべての成分がすべてのビット位置で解析された場合、ビット限界までの残っているビット量はビット境界を保存するためにダミーのデータビットを詰めることができることに注意する。)しかしながら、追加のビット位置がこれから解析される場合、初期の成分(即ち、ステップ1102で選択されるような成分)に対する昇順テーブルは、ステップ1120でアクセスされ、ステップ1121で次のビット位置が、解析ビット位置として指定される。実施の形態では、ステップ1121は、解析ビット位置を次の最上位のビット位置へ減少するステップを含む。その後、処理はステップ1104で再開してもよい。
【0069】
図12は伸長されたビデオデータを提供する別の方法を例証するフローチャートである。上に記述されたビデオ伸長器200、特にADK伸長器304によって、図12に示されたステップを実行することができる。図12に示された方法は、図11に関して上に記述した方法に補足的である。ステップ1201で、図11で示された方法によって提供されるような圧縮したデータが受け取られる。好ましい実施の形態では、圧縮したデータが圧縮したビデオデータを含み、上に記述されるようなログビット位置を表示するデータを含んでいる。
【0070】
ステップ1202で、成分(Y、Cr、Cb)のうちの任意の1つに対応する昇順テーブルへの格納は、合成される初期の成分としてアクセスされる。好ましい実施の形態では、輝度成分が初期の成分である。
【0071】
合成ビット位置はステップ1203で初期化される。任意のビット位置に合成ビット位置を初期化することができるかもしれないが、合成ビット位置は、ログビット位置の値(ログビット位置が提供された場合)にむしろ初期化され、伸長処理の残りの全体にわたって降下される。更に、ステップ1203で、再帰指標(j)はその最大の値Jに初期化される。ここに記述された再帰指標は、実例目的だけのために使用され、通常の熟練した当業者が認識するように、多くの技術が再帰的手続きの実装のために存在する。図12に示す実装では、所定の時間に再帰指標の値は、昇順のテーブルのどのレベルが現在再構築されているかを示し、最大の値Jは、次第により小さな値が次第により低いテーブルのレベルに相当する一方、最高レベルのテーブルが現在合成されていることを示す。
【0072】
ステップ1204で、レベル(j)の昇順テーブル用の格納エリアにアクセスする。j=Jでは、格納エリアは現在再構築されている成分に対して最高レベルのテーブルに相当する。ステップ1206で、データ要素が、現在の合成ビット位置でこれから合成されるレベル(j)のテーブルにあるかどうかが決定される。そうならば、次のデータ要素はステップ1207でアクセスされる。また、ステップ1208で、現在再構築されているテーブルがレベル0のテーブルである場合、それは確定的である。そうでなければ、受信した圧縮データからの次の受信ビットが解析される場合、処理はステップ1208に継続する。不正エラーが通過の間に受信した圧縮データに生じていないと仮定して、ステップ1208で解析された受信ビットは、現在考慮中でデータ要素に相当するべきである。ステップ1209で、受信ビットが好ましい実施の形態では“0”である、第1のビット値を含むかどうかは決定する。(ステップ1209で熟慮したどんなデータ要素もステップ1207に照らして減少されたデータ要素であることに注意する。)第1のビット値がステップ1208で検知される場合、次に、ステップ1212で、第1のビット値は現在の減少されたデータ要素の子孫のすべての中の合成ビット位置に格納される。例えば、図10を参照して、現在考慮中のデータ要素が図10Bの中で“AB”とラベルが付けられたデータ要素であると仮定する。“AB”データ要素に対応する受信ビットが、“0”ビット値を含むと決定した場合、“AB”の子孫(“ABA”,“ABB”,“ABC”と“ABD”)の各々の合成ビット位置に“0”ビット値を格納する。実際、データ要素はすべてに“0”ビット値に初期化され、そのために“0”ビット値をメモリの中へ現実に書く必要を除去する。ステップ1213で、現在のフレームのためのビット限界に到達しているかどうか決定し、そうでなければ、追加のデータ要素の処理をし、もしあれば、ステップ1205に継続する。
【0073】
第2のビット値がステップ1209で検知される場合、それは次の最低のテーブルレベルへの再帰が生じるに違いないという指標である。この終了へ、再帰指標jはステップ1210で減少される。図12で示した処理の全面的な目標が、圧縮したデータ、つまりレベル0のテーブルを提供するためにもともと圧縮されたデータ要素を再生成させることであることは注目されるべきである。その結果、より高いレベルの昇順テーブル(レベル1からJ)を再構築するかもしれないが、それは厳密に必要とされない。より高いレベルの昇順テーブルが再構築されている場合、第2のビット値も、ステップ1210にレベル(j)のテーブル(再帰指数を減少する前に)中の対応するデータ要素に格納することができる。ステップ1211では、現在のフレームのためのビット限界を超過していない場合、ステップ1209で熟慮したデータ要素の子が、ステップ1204−1213に関連のある上に記述した方法で解析される場合、処理はステップ1204で継続する。レベル0のテーブルに存在するデータ要素を再構築する場合、特別な扱いが提供される。ステップ1207で、考慮中の現在のレベルがテストj=0を満たすことが決定された場合、処理はステップ1214で継続する。ステップ1214で、生成されるデータ要素の各々は、任意のそのようなパターンが使用できるかもしれないが、図7に関連して上に議論した“z”パターンのような、所定の順に別々に扱われる。各データ要素については、合成ビット位置のビット値が、次のステップに従って圧縮したデータからの受信ビットに基づいて決定される:
1)“0”ビット値に遭遇した場合、“0”を格納し、次のデータ要素に移る;
2)“1”に遭遇した場合、“1”を格納し、そのデータ要素に関連したタグビットをチェックする。そのデータ要素のためのタグビットが設定されている場合、そのデータ要素のためのサインビットは既に格納され、処理は次のデータ要素に継続することができる。タグビットが設定されていない場合は、そのデータ要素のサインビットとして次の受信ビットを格納し、タグビットを設定し、次の要素に移る(この処理は、タグビットが最初に取り除かれると仮定する。タグビットの極性は同じ機能を達成するために容易に逆にすることができる。その場合には、タグビットが最初に設定される。)。
【0074】
それぞれのサブブロック中の各データ要素のビット位置のビット値が格納されるまで、この処理が繰り返される。与えられたデータ要素のタグビットは、そのデータ要素に対して第1の“1”ビット値が格納される場合、その要素のためのサインビットが格納されることを保証し、その要素のためのサインビットのみが送られることを保証する。データ要素を横断するために使用される特別のパターンは設計選択の問題であるが、解析/圧縮処理の間に使用されるものとどんな場合も同一であるべきである。再帰指標jはステップ1215で増加され、そのために、そのレベルで、もしあれば、追加の要素の処理のために次の最高レベル(レベル1)に処理を返す。しかしながら、これに先立って、現在のフレームのためのビット限界を超過していないことを保証するためにステップ1211でチェックが行われる。そうでなければ、処理はステップ1204に継続する。
【0075】
ステップ1205で、与えられたレベル(レベル0以外)で処理するための要素がこれ以上残されていないとを決定した場合、処理は、完了した現在のレベルが最高レベル(J)であるかどうか決定するためにステップ1216に継続する。そうでなければ、再帰指標jはステップ1217で増加され、そのために、そのレベルで、もしあれば、追加の要素の処理のために次の最高レベルに処理を返す。現在の合成ビット位置のすべてのデータ要素の再構築が、現在合成されている成分のために実行された場合(つまり、ステップ1216の“はい”の分岐)、その処理ははステップ1217に継続する。ステップ1217で、現在の合成ビット位置でより多くの成分がこれから合成されるために残っているかどうか決定する。好ましい実施の形態では、輝度成分が第1の合成ビット位置で最初に合成され、続いて第1のビット位置で色度成分の各々が合成される。ビット限界に遭遇するか、全成分がすべてのビット位置で処理されるまで、この命令は後のビット位置のために繰り返される。より多くの成分が現在の合成ビット位置で合成のために残っているなら、次に昇順テーブルに対応する格納エリアで次の成分が、ステップ1218でアクセスされ、現在の合成ビット位置で新しい成分の再構築のためにステップ1204に返る。
【0076】
しかしながら、現在の合成ビット位置でこれ以上の成分が合成されない場合、これ以上のビット位置が合成されるために残っているかどうかが決定するため、処理はステップ1219に継続する。そうでなければ、その後、成分はすべてあらゆるビット位置で合成され、フレームのための処理が終わる。(ビット限界に到達する前に成分がすべてすべてのビット位置で合成された場合、圧縮データから受信する残りのビットは、ビット境界を保存するために提供されるむしろダミーのデータ・ビットであるので無視することができる。)しかしながら、合成するための追加のビット位置がある場合、初期の成分(つまりステップ1202で選択されるのと同じ成分)のために昇順テーブルに対応する格納エリアが、ステップ1220でアクセスされ、そして、ステップ1221で、次のビット位置が合成ビット位置として指標される。好ましい実施の形態では、ステップ1221が、次の最も重要なビット位置へ合成ビット位置を減少するステップを含む。その後、処理はステップ1204で再開するかもしれない。
【0077】
記述されたものは、本発明の原理のアプリケーションの単なる例証に過ぎない。本発明の精神および概念から外れることのない技術に熟練している当業者は他の配置および方法を実行することができる。
【図面の簡単な説明】
【0078】
【図1】本発明に係る無線のビデオ転送システムのブロック図である。
【図2】本発明に係るビデオデータを圧縮するための機器のブロック図である。
【図3】本発明に係るビデオデータを伸長するための機器のブロック図である。
【図4】本発明に係る複合レベルサブバンド分解を示す図である。
【図5】本発明に係るデータ表現形式を示す図である。
【図6】本発明に係る圧縮されたビデオデータを提供する第1の方法を示すフローチャートである。
【図7】図6の方法に従って解析されている典型的なビデオデータを示す図である。
【図8】本発明に係る伸長されたビデオデータを提供する第1の方法を示すフローチャートである。
【図9】本発明に係る昇順のテーブルを構築する方法を示すフローチャートである。
【図10A】図9の方法に従って構築された昇順のテーブルを示す図である。
【図10B】図9の方法に従って構築された昇順のテーブルを示す図である。
【図10C】図9の方法に従って構築された昇順のテーブルを示す図である。
【図11】本発明に係る圧縮されたビデオデータを提供する第2の方法を示すフローチャートである。
【図12】本発明に係る伸長されたビデオデータを提供する第2の方法を示すフローチャートである。
【出願人】 【識別番号】502027411
【氏名又は名称】メモリーリンク コーポレイション
【出願日】 平成19年5月22日(2007.5.22)
【代理人】 【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和


【公開番号】 特開2008−11511(P2008−11511A)
【公開日】 平成20年1月17日(2008.1.17)
【出願番号】 特願2007−135859(P2007−135859)