(57)【要約】【課題】記憶空間または出力帯域幅を効率的に利用し、残ったブロック領域へのＥＯＢ配置またはゼロ埋め込みによりデータフローが停止することのない、可変長圧縮を使用した固定長圧縮データブロックの作成。【解決手段】固定長圧縮ブロックデータに応答する可変長データ圧縮解除システムであって、システムが、圧縮データワードを受信する入力装置と、入力装置と連結され、いくらかの埋め込みビットを含む圧縮データワードに含まれているビット数をカウントするビットカウンタと、ビットカウンタがカウントしたビット数に応じて埋め込まれた圧縮データワードから１つまたは複数の埋め込みビットを取り除く埋め込み解除器と、ビットカウンタまたは埋め込み解除器から転送された前記圧縮データワードを受信し圧縮データワードを圧縮解除する可変長データ圧縮解除器とを含む。【選択図】図３
2008113458.tif 000002
【特許請求の範囲】
【請求項１】
固定長圧縮ブロックデータに応答する可変長データ圧縮解除システムであって、前記システムが、
圧縮データワードを受信する入力装置と、
前記入力装置と連結され、いくらかの埋め込みビットを含む圧縮データワードに含まれているビット数をカウントするビットカウンタと、
前記ビットカウンタがカウントした前記ビット数に応じて埋め込まれた圧縮データワードから１つまたは複数の埋め込みビットを取り除く埋め込み解除器と、
前記ビットカウンタまたは前記埋め込み解除器から転送された前記圧縮データワードを受信し前記圧縮データワードを圧縮解除する可変長データ圧縮解除器と
を含むことを特徴とする可変長圧縮解除システム。
【請求項２】
前記ビットカウンタが、前記圧縮データワードから埋め込み解除するビット数を前記埋め込み解除器に指示することを特徴とする請求項１に記載のシステム。
【請求項３】
前記可変長データ圧縮解除器が量子化解除器であることを特徴とする請求項１に記載のシステム。
【請求項４】
前記可変長データ圧縮解除器が、予測エラー値を圧縮解除することを特徴とする請求項１に記載のシステム。
【請求項５】
固定長圧縮データブロックから受信した圧縮データワードを圧縮解除する方法であっで、各ブロックが複数の可変ビット長圧縮データワードを含み、前記圧縮データブロックが埋め込まれた圧縮データワードを含み、
圧縮データワードを表すのに用いられている合計ビット数を計測するステップ（８０）と、
前記合計ビット数を取り出すステップ（８２）と、
前記合計ビット数のどれに埋め込みビットがあるかを判定するステップ（８４）と、
埋め込みがある場合には、前記圧縮データワードから前記判定した埋め込みビットを取り除くステップ（８６）と、
前記圧縮データワードを圧縮解除するステップ（８８）とを含むことを特徴とするデータ圧縮解除方法。
【請求項６】
拡張解像度ビデオイメージ情報を示す固定長データブロックの受信デジタルデータストリームを処理し、各ブロックが複数の可変ビット長データワードを含むシステムにおける、信号処理方法であって、
前記ビデオ情報を復号化および圧縮解除して画素データを作成するステップと、
前記画素データを固定長データブロックに再圧縮するステップと、
前記画素データの再圧縮により作成されたビット数をカウントするステップと、
前記カウントステップにおいてカウントされたビット数に応じて、前記固定長データブロックを満たすように、選択した再圧縮画素データを埋め込むステップとを含むことを特徴とする信号処理方法。
【請求項７】
前記再圧縮ステップからの再圧縮データをフレームメモリに格納するステップをさらに含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記デジタルデータストリームが高精細度テレビジョン信号を表すことを特徴とする請求項６に記載の方法。
【請求項９】
前記再圧縮ステップが、最後に復号化および圧縮解除される出力を生成するＭＰＥＧ動き補償ネットワークで行われることを特徴とする請求項６に記載の方法。
【請求項１０】
前記再圧縮ステップの可変長が前記画素データを圧縮することを特徴とする請求項６に記載の方法。
【請求項１１】
固定長データブロックを満たすのに必要とする前記埋め込みが、画素間に散在していることを特徴とする請求項６に記載の方法。
【請求項１２】
前記埋め込みがＮＵＬＬ埋め込みであることを特徴とする請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、固定長の出力ブロックによる効率的なデータのコーディングに関する。
【背景技術】
【０００２】
データ圧縮は、データの伝送および記憶の重要な側面である。既知の圧縮方法を使用することで、データ損失なしにまたは許容範囲内のデータ損失で、データが占有する帯域幅または記憶空間を少なくすることができる。損失なしのものも損失のあるものも含めて、データ圧縮には、ハフマンコーディング、量子化、直接コサイン変換などいくつかの方法がある。通常は個々のアプリケーションによって、使用する圧縮方式が決まる。
【０００３】
高速のデータ転送速度を必要とするイメージデータを同報通信する場合、ＪＰＥＧおよびＭＰＥＧの２種類がよく知られており、これらはよく使用されているデータ圧縮方式である。一般に、これらの形式で伝送または記憶されるデータは変換および量子化され、その後システムの帯域幅または必要記憶量に合わせて可変長圧縮される。圧縮されたデータブロックは、特定の長さに制限されるものではない。データブロックの終端が発生すると、現行データブロックの終端および次のデータブロックの先頭をシステムに知らせるために、データにブロック終結（ＥＯＢ）コードまたはフラグが付けられる。
【０００４】
ただし、イメージデータなどのデータを固定長ブロックで記憶または伝送する必要が生じる場合もある。可変長圧縮方式を使用する既知のシステムでは、各データブロックに割り振られた領域内に十分に収まるようにデータを圧縮するように保証している。通常は、割り振られた領域や帯域幅よりも小さく圧縮する。この場合既知のシステムは、残った領域はそのままにしてＥＯＢコードを配置するか、残った領域にゼロまたはその他の予測ビットパターンを埋め込む。ＥＯＢコードの配置またはゼロの埋め込みを行うと、残ったブロック領域の処理の間システムはデータのスループット（処理能力）を停止し、システム効率を低下させることになる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
データ転送速度がシステムのスループットの限界まで上がると、ＥＯＢコードの配置またはゼロの埋め込みによってバッファ内でデータのオーバーフローが発生し、その結果データのスキップが生じることがある。同様の問題は圧縮解除の際にも発生する可能性があり、データスループットの停止および同様の好ましくない結果を招く。したがって、記憶空間または出力帯域幅を効率的に利用し、残ったブロック領域へのＥＯＢ配置またはゼロ埋め込みによりデータフローが停止することのない、可変長圧縮を使用した固定長圧縮データブロックの作成システムを実現すると都合が良い。
【課題を解決するための手段】
【０００６】
本発明の原理によれば、固定長出力データを作成する圧縮システムは、可変長圧縮により入力データを圧縮する。可変長圧縮では、入力データブロックが、固定長出力ブロックに割り振られた数よりも少ないビット数に圧縮されることがある。このような場合、圧縮システムは圧縮時に残りの出力空間があることを認識し、最終的な圧縮データブロック長さが割り振られた出力ブロック長さと等しくなるように、選択した圧縮データワードにゼロを埋め込む。
【発明を実施するための最良の形態】
【０００７】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【０００８】
以下の説明は、固定長再圧縮データブロックをフレームメモリ内に格納する必要のある、ＭＰＥＧ圧縮システムについて行われる。ＭＰＥＧシステムを選択したが、これに限定することを意図したものではない。本発明は、固定長圧縮出力データのブロックにフォーマットできる入力データを有する任意の圧縮システムに適用可能である。
【０００９】
図１は、所定の固定長圧縮データブロックを出力する圧縮システムを示した図である。可変長圧縮器（ＶＬＣ）１０は、ソース（図示せず）からのブロックデータを受け入れる。このデータは、おそらく離散コサイン変換などによってすでにある程度圧縮されていることがある。ＶＬＣ１０は、差分パルス符号変調（ＤＰＣＭ）値を代表する予測データを圧縮するか、または類似する公知の方法で圧縮する。ＤＰＣＭ処理は当技術分野では周知のものであり、本説明の範囲外である。
【００１０】
ＶＬＣ１０は、可変長圧縮データを生成する。たとえばＶＬＣ１０は、入力データを８ビットから３、４、５、または６ビットワードに量子化する。圧縮量は、出力ネットワークおよびシステムが受け入れ可能なデータ損失量などの変数によって決められる。たとえば３ビット圧縮は、圧縮用に示された値が比較的小さい値の場合に使用される。これに対してたとえば６ビット圧縮は、圧縮用に示された値が比較的大きい値の場合に使用される。通常圧縮用に示される値は、たとえば予測ネットワークのコンテキスト内における着信データの値の相対変化によって決められる。
【００１１】
イメージデータの場合、ごくわずかな動きおよび／または対象物を含むフレームは、通常圧縮用に小さな予測エラー値を作成する。たくさんの動きおよび／または複数の対象を含むフレームは、圧縮用に大きな予測エラー値を作成することが多いが、同様に小さな予測エラー値も作成する。
【００１２】
ＶＬＣ１０が可変長圧縮データを作成している間、着信データブロック全体および各ワードごとに使用されているビット数をビットカウンタ２０が常時監視する。たとえば、出力ブロックが各データブロックについて１ワード当たり平均４ビットしか使用しておらず、各ブロックが８×８マトリックスの８ビットワードで構成されている場合、固定長圧縮データブロック出力は、２５６ビットになるはずである。長いまたは短い出力ブロックはシステムを混乱させ、再構成時にデータ汚染の原因となることがある。ワード当たり４ビットが、所与の圧縮システムで許容可能なデータ損失を典型的に示す設計パラメータである。
【００１３】
ビットカウンタ２０は、圧縮ワード当たり平均４ビットを維持するだけの十分なビット数が出力ブロック内に残っていないことを確認すると、着信ワードを３ビットで圧縮するようにＶＬＣ１０に伝える。またビットカウンタ２０は、所与のデータブロックに３ビット圧縮が頻繁に発生するようになった場合も確認し、所与のブロックの残りのデータワードがそれぞれ４ビットより大きいビットで圧縮される。この場合、それ以降のデータワードを４ビットよりも大きいビットで圧縮すると、データ損失パラメータの観点から許容可能な結果を提供できると圧縮システムが判断すれば、ビットカウンタはゼロ埋め込み器（zero padder：ゼロ・パダー）３０に制御信号を送信して、圧縮ワードの終端にゼロを埋め込ませ、ビットカウンタ２０が決定した幾つかの追加的なビットで１ワード当たり平均４ビットを超えて圧縮され埋め込みされたブロックが固定長になるようにする。本例示システムでは、埋め込まれた圧縮ワードは５または６ビットになる。ビットカウンタ２０が使用しデコーダで反復される内部アルゴリズムが、終端に埋め込むビット数を決定する。
【００１４】
ただし、埋め込まれた圧縮ワード全体の長さが、出力レジスタ、シフトレジスタ、またはその他圧縮器外にある実装ハードウェアの転送圧縮データの長さを超えることはない。各圧縮ワードの最大長さを出力レジスタ、たとえばバレルシフタの長さに維持すれば、散在するゼロ埋め込みによってデータフローが中断または停止することはない。これに対して、データ終端のゼロ詰めが使用された場合、またはＥＯＢが出力データブロックの終端に付加された場合、データフローの中断または停止が発生しやすい。ブロック終端へのゼロ詰めをシフトオフするため、またはＥＯＢに遭遇した場合にポインタをリセットするためにデータフローを停止するには、追加のハードウェアおよびソフトウェアが必要であるが、これらはデータスループットが連続していれば不要である。
【００１５】
デコーダ／圧縮解除器で着信データを処理するデータレジスタは、圧縮器の出力レジスタと同じ長さである。現行の例では、最大圧縮ワードの長さが６ビットなので、どちらのレジスタも６ビット長さである。たとえば最大圧縮ワード長さが５ビットであれば、レジスタが処理する圧縮データもそれぞれ５ビットになる。一般的な最大ワード長さは、システムの複雑さを緩和するものである。
【００１６】
圧縮システムは各圧縮データワードの長さを追跡し、ビットカウンタ２０から直接またはゼロ埋め込み器３０から、バッファ／Ｍｕｘ（マルチプレクサ）４０へワードを転送する。ここでデータワードは、必要に応じてオーバヘッド情報で連結またはオーバヘッド情報へ追加される。ビットカウンタ２０は、必要であればデータ圧縮時に必要なビット数を保存することで、オーバヘッド情報を補償する。バッファ／Ｍｕｘ４０は、圧縮した固定長データブロックをメモリ５０に転送して格納する。代わって、所望により、固定長ブロックを伝送するか、または他の装置またはデータパスに出力して、固定データ長または固定帯域幅にすることもできる。
【００１７】
代替実施形態として、ＶＬＣ１０においてのゼロ埋め込みの実施、または別々に分離している場合で、図１に示した素子３０をバイパスしないで、ゼロ埋め込みの不要な圧縮ワードの、ゼロ埋め込み器３０を通るゼロの追加なしでの受け渡しが含まれる。
メモリ５０に存在する圧縮データの再構成が必要な場合は、上記で説明した方法とおおむね逆の方法で圧縮解除が行われる。したがって、その関連装置についてはここで説明しない。ただし、上記のゼロ埋め込みは利用可能であり、そのように圧縮されたデータを圧縮解除器が受信する際に必要であると理解される。ビットの利用状況を追跡し、ＶＬＣ１０およびゼロ埋め込み器３０に制御信号を送信する際に使用するアルゴリズムには、圧縮解除器が使用するものと逆向きのものもある。
【００１８】
図２および図３は、選択したワードにゼロを埋め込んで固定長圧縮データブロックを作成する場合の、データの圧縮および圧縮解除のステップ（処理工程）を示すフローチャートである。初めに図１の各要素を引用して図２について説明する。
ステップ６０において、ＮビットのデータワードをＶＬＣ１０が受信する。ステップ６２では、受信したワードの圧縮に使用するビット数の数値を求めてからデータワードを圧縮する。そのビット数は、システム依存パラメータを記録するアルゴリズムにより、ならびに圧縮ワード当たりの平均ビット数および現行のデータワードが属しているデータブロックにすでに使用されたビット数により決定される。圧縮長さが決まると、ワードが圧縮される。ステップ６４の圧縮アルゴリズムで決定した通りに、ビットカウンタ２０によって、圧縮に使用されるビット数が様々なカウンタに入れられる。次に、ワードが最大長さよりも短い場合、システムはステップ６６でゼロ埋め込みが必要かどうかを判定する。それが必要であれば、ステップ６８で適切なビット数がワードに追加され、それらカウンタが更新される。ステップ７０では、埋め込まれるかどうかにかかわらず圧縮したワードを出力する。
【００１９】
図３は、上記の圧縮器から受信したデータワードを、それがゼロ埋め込みしているものか否かにかかわらず圧縮解除するステップについて示す。ステップ８０において、システムは、固定長データブロックから圧縮解除されるべき次のワードに使用された合計ビット数を計測する。これ（合計ビット数）には埋め込まれたビットも含まれる。ステップ８２ではワードが取り出され、使用されているビット数が圧縮解除アルゴリズムに従って圧縮解除プロセスを追跡する様々なカウンタに入れられる。埋め込まれているビットがあればその数がステップ８４で計測され、必要に応じてステップ８６で埋め込み解除される。ステップ８８では、埋め込みが除かれた圧縮ワードは埋め込み解除器から、または埋め込みが行われていないワードは入力（部）から、圧縮解除器へ渡される。このワードは元のＮビット長さに圧縮解除される。最後にステップ９０で、圧縮解除されたワードが出力ネットワークに渡される。
【００２０】
本発明の原理に従った圧縮／圧縮解除システムを使用すると、データのスループットおよび処理を停止させることなく、固定長圧縮データブロックを継続して作成することができる。ＥＯＢが各圧縮ブロックの終端に配置されている場合、ポインタを調整するためおよび他のオーバヘッド機能を実行するために、データ処理が停止することがある。データブロックの終端にゼロを埋め込んで未使用領域をなくす場合、システムは十分な数のクロックサイクルを使用し、追加したゼロをシフトレジスタの長さに応じてシフトアウトする必要がある。シフトレジスタを適切な長さにする代替方法もあり得るが、この方法を使用するとシステムが複雑かつ高価なものになってしまう。
【００２１】
図４は、本発明によって解決される問題を図示している。圧縮ネットワークからメモリへ出力され、このメモリから圧縮解除ネットワークへ入力される、２つのデータストリームを示す。データストリーム１００は、固定長データブロックの終端に埋め込まれたゼロを含んでいる。データストリーム１０２は、前述の本発明の原理に従った、散在するゼロ埋め込みを図示している。たとえば圧縮データストリームは、５０％まで圧縮できる。８×８データブロックで各ワードが８ビットを有する場合、５０パーセントに圧縮すると各固定長ブロックは２５６ビットに変換される。このデータはさらにマルチプレクサによって８ビット単位でメモリ内およびメモリ外へシフトされる。したがって、５０パーセント圧縮ネットワークでは、メモリへおよびメモリからのデータ転送に３２クロックサイクルが必要である。データストリーム１００および１０２には、１クロックサイクルにシフトされるビット数ではなく、個々の圧縮データワードを表すビットを示す区切り(demarcations)が含まれる。
【００２２】
圧縮解除する場合、データを可変ビット形式から元の８ビットのデータワードに圧縮解除する必要がある。データストリーム１００では、最初の２７クロックサイクルにすべてのデータ情報が含まれ、最後の５クロックサイクルには固定ブロック長要件を満たすためのゼロが充足されている。圧縮解除器は、２７の入力クロックサイクルからのデータについて、６４×８ビット値を６４クロックサイクルで出力する。ゼロを含む残りの５入力クロックサイクルは、次のデータブロックが得られるまでにバッファからシフトアウトする必要がある。ゼロをシフトアウトする代わりに、バッファポインタが次のデータブロックを指すようにリセットしてもよい。どちらもデータのスループットを停止する必要があり、有効なデータを取得するためにはより複雑なハードウェアおよびソフトウェアが必要である。さらに、圧縮解除側のデータフローがかなりの時間停止すると、処理を維持するために使用できる十分なバッファ／メモリ領域がない限り、圧縮ネットワークもデータ処理を停止する。
【００２３】
データストリーム１０２には、選択したデータ上に散在するゼロ埋め込みが含まれる。ゼロ埋め込みにより、３２クロックサイクル全体に渡って有効なデータが広がる。前述のように、システム制御装置は、ゼロ埋め込みがある場合はいくつのビットがゼロ埋め込みされているかということを含めて、圧縮解除される現在のデータワードを表わすビット数はいくつであるかを認識している。この点により、ゼロ埋め込みは、システムの速度を落とさずに簡単に読み捨てられる。そのため、固定長データブロックが連続して流れ、圧縮および圧縮解除の両ネットワークを通じて途切れることがないこととなる。システムが既存のシフトレジスタ／バレルシフタを使用して、個々の可変ビット長圧縮データワードを移動させるため、システムの複雑さは軽減されている。２５６ビットの１圧縮データブロックが圧縮解除されるとすぐに、後続の圧縮データブロックの１ビットが次にデータパスに用意され取り出される。
【００２４】
図５は、本発明が使用される例示システムを図示する。このシステムは、高精細度放送信号をたとえばＭＰＥＧ形式で受信し、復号し、および表示することの可能な高精細度テレビ（ＨＤＴＶ）受像機である。ＨＤＴＶ信号入力１１０は復調信号を受信し、これを素子１１２によってＭＰＥＧ復号化および圧縮解除するために供給する。部分的および完全に復号化されたビデオデータが再圧縮器１１４に渡され、ここでフレームメモリ１１６のサイズを縮小するために、空間領域内でデータを再圧縮する。部分的に復号化されたデータはフレームメモリ１１６に格納され、続いて発生するデータは復号化され、かつ圧縮解除される。次に部分的にデコードされたデータがメモリ１１６から取り出され、圧縮解除器１１８によって圧縮解除され、動き補償ユニット１２０によって処理され、最後に復号化されたデータを再構成するために加算機１２２内で素子１１２からのデータと結合される。動き補償プロセスは周知のように、前回に復号化されかつ圧縮解除された画像（ピクチャ）から予測を形成し、最後に復号化されたデータサンプルを作成する。この動き補償はＩ、Ｐ、およびＢフレームに関連するＭＰＥＧ標準の一部であるので、ここではこれ以上説明しない。
【００２５】
最後に復号化されたデータは、再圧縮器１１４で再圧縮され、前述のように後続フレームの再構成用に必要になるまで、および表示用に必要になるまで、フレームメモリ１１６に格納される。再圧縮されたデータは表示用に必要になると、圧縮解除器１２４に渡されてフル・ビット長のピクセルデータに復元される。その後ピクセルデータは表示フォーマット処理のために表示プロセッサ１２６に渡され、表示装置（図示せず）に出力される。ピクセルデータは前述のように８×８ピクセルブロック以上で処理される。図１および図２に係る本発明は、再圧縮器１１４の圧縮側ならびに圧縮解除器１１８および１２４（図３）の圧縮解除側に存在している。どちらの圧縮解除器もほぼ同じ動作を行う。
【図面の簡単な説明】
【００２６】
【図１】本発明による圧縮システムの具体例としての実施形態を示す図である。
【図２】図１のシステムにおけるデータ圧縮を示すフローチャートである。
【図３】図１および図２のシステムで実施されるデータ圧縮に関連したデータの圧縮解除を示すフローチャートである。
【図４】本発明に従ってシステムが生成するデータストリームを示す図である。
【図５】本発明を適用することのできる具体的なデータプロセッサを示す図である。
【符号の説明】
【００２７】
１０可変長圧縮器（ＶＬＣ）
２０  ビットカウンタ
３０  ゼロ埋め込み器
４０  バッファ／Ｍｕｘ（マルチプレクサ）
５０  メモリ
【図１】
2008113458.tif 000003
【図２】
2008113458.tif 000004
【図３】
2008113458.tif 000005
【図４】
2008113458.tif 000006
【図５】
2008113458.tif 000007