JP4559632B2 - 可変長対可変長エントロピー符号化 - Google Patents

可変長対可変長エントロピー符号化 Download PDF

Info

Publication number
JP4559632B2
JP4559632B2 JP2000588900A JP2000588900A JP4559632B2 JP 4559632 B2 JP4559632 B2 JP 4559632B2 JP 2000588900 A JP2000588900 A JP 2000588900A JP 2000588900 A JP2000588900 A JP 2000588900A JP 4559632 B2 JP4559632 B2 JP 4559632B2
Authority
JP
Japan
Prior art keywords
series
variable
symbols
codebook
length code
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.)
Expired - Lifetime
Application number
JP2000588900A
Other languages
English (en)
Other versions
JP2002533006A (ja
JP2002533006A5 (ja
Inventor
チェン ウエイ−ジ
リー ミン−チエフ
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2002533006A publication Critical patent/JP2002533006A/ja
Publication of JP2002533006A5 publication Critical patent/JP2002533006A5/ja
Application granted granted Critical
Publication of JP4559632B2 publication Critical patent/JP4559632B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Vehicle Body Suspensions (AREA)

Description

【0001】
(発明の分野)
本発明は、一般に、データ圧縮に関し、より詳細には、一形式のエントロピー符号化に関する。
【0002】
(背景)
通常のオーディオ符号化環境では、データは、エンコーダに入力されるシンボルの長いシーケンスとして表される。この入力データが、エンコーダによって符号化されて、通信チャネルを介して伝送され(または単に記憶され)、デコーダによって復号化される。符号化中、入力は、事前処理され、サンプリングされ、変換され、圧縮され、または別な方法で操作されて、伝送または記憶のための形式になる。伝送または記憶の後、デコーダが、元の入力を再構成しようとする。
【0003】
オーディオ符号化技術は、一般に、2つのクラス、すなわち、時間領域技術および周波数領域技術に分類することができる。時間領域技術、例えば、ADPCM、LPCは、時間領域内で直接的に動作し、他方、周波数領域技術は、オーディオ信号をそこで実際の圧縮が行われる周波数領域に変換する。周波数領域コーデック(CODEC)は、さらに、サブバンドコーダまたは変換コーダのいずれかに分けられる。ただし、この2つの間の区別は、常に明確なわけではない。オーディオ信号を周波数領域において処理することは、従来の信号処理理論と人間知覚モデル(例えば、音響心理学)の両方によって動機づけられている。内耳、詳細には、基底膜は、スペクトルアナライザのように動作して、オーディオ信号を、さらなる神経処理が行われるまえに、スペクトルデータに変換する。
【0004】
周波数領域オーディオコーデックは、元の信号を変更し相当に多くの詳細/冗長性を除去するのに、人間の聴覚システムで行われている多くの種類の聴覚マスキングをしばしば利用する。人間の耳は、それらの変更を知覚することができないので、効率的な圧縮が得られる。マスキングは、通常、量子化ノイズを都合よく「マスク」できるように、量子化と併せて行われる。最近のオーディオ符号化技術では、量子化されたスペクトルデータは、通常、エントロピー符号化、例えば、ハフマン符号化を適用してさらに圧縮する。
【0005】
通信モデルの基本的限界は、伝送チャネルが、通常、限られた容量または帯域幅を有するので、圧縮は必要とされる。したがって、入力データが通信チャネルを介して確実に伝送される、または単に伝送され得るようにするために、入力データの情報内容を削減することが、しばしば、必要である。長い間、伝送または記憶するデータのサイズを縮小するための可逆的圧縮と不可逆的圧縮の技術を開発するのに、相当な努力が注がれてきた。1つの一般的な可逆技法は、ハフマン符号化であり、これは、特定の形式のエントロピー符号化である。
【0006】
エントロピー符号化は、符号ワードを異なる入力シーケンスに割り当てて、すべての入力シーケンスをコードブック内に記憶する。エントロピー符号化の複雑さは、入力シーケンスXが取り得る可能な値の数mに依存する。小さなmの場合、可能な入力の組合せは、ほとんど存在せず、したがって、そのメッセージに対するコードブックは、非常に小さいものであり得る(例えば、すべての可能な入力シーケンスを明確に表すのに、数ビットしか必要ない)。デジタルのアプリケーションの場合、符号アルファベットは、一連の2進数{0,1}である可能性が非常に高く、符号ワード長は、ビットで計られる。
【0007】
入力が等しい生起確率を有するシンボルから構成されていることが既知である場合、最適符号化は、等長符号ワードを使用することである。しかし、入力ストリームが、任意の特定メッセージを等確率で受信する可能性を有することは、通常ではない。実際、あるメッセージは、他のメッセージよりも確率が高く、エントロピー符号化は、これを利用して、予期される入力の間での符号ワードの平均長を最小化する。ただし、従来、固定長入力シーケンスには、可変長符号が割り当てられている(または、逆に、可変長シーケンスには、固定長符号が割り当てられる)。
【0008】
(概要)
本発明は、任意の入力ストリームを符号化するのに、可変対可変エントロピーエンコーダを使用することに関する。可変対可変エントロピーエンコーダは、可変長符号を使用して可変長入力シーケンスを符号化する。コードブックサイズを制限するため、エントロピー型符号は、確率の高い入力にだけ割り当て、それほど確率の高くないシーケンスを識別するのに、代替符号を使用してもよい。
【0009】
コードブックの検索を最適化するために、それを別々に検索されるセクションに編成してもよい。例えば、1つの構成は、ブック内のすべての記憶済み入力シーケンスをその入力シーケンスの第1シンボルによってグループ化することである。ハッシュ符号化関数、ポインタの集合、または他の方法を使用して、コードブックの任意のセクションに即時にジャンプすることが可能である。各セクションは、さらに、そのエントリと関連する確率によってソートすることが可能である。例えば、最高確率の入力をそのセクションの先頭に配置して、各セクションをソートし、これによって、突合せ(match)が迅速に見つかる可能性を高めることが可能である。
【0010】
マッチする(matching)コードブックエントリは、そのブックの内部表現に依存する。例えば、ツリー構造では、リーフに到達することが入力シンボルの特定グループの終端と識別を意味するように、ノードが入力の各文字を表すことが可能である。テーブル構造では、パターンマッチングアルゴリズムを適当なセクション内の各テーブルエントリに適用することが可能である。テーブルおよびマッチングアルゴリズムの実施次第で、コードブックセクション内の最長グループと同じ数だけの入力シンボルを考慮すればよいという認識によって、検索は、容易になり得る。コードブックマッチ(match)を見つけた後、対応するエントロピー型符号を出力することができ、マッチした入力に続く新しいシンボルを使用して、検索を繰り返すことが可能である。
【0011】
例示した実施形態は、オーディオデータを符号化することを中心に扱っているが、入力ストリームは、オーディオ、ビデオ、または他の型のデータを、符号化する数、文字、または2進データなどの任意のデータストリームであることを予期している。単純にするため、入力ストリームは、本明細書では、一連のシンボルと呼び、各「シンボル」は、特定の入力に関する適切な測定単位を指す。入力ストリームは、ローカルストレージから、あるいはイントラネット、インターネット、またはストリーミングデータ(例えば、Microsoftの「NETSHOW」(商標)クライアント/サーバストリーミングアーキテクチャ)から発することが可能である。
【0012】
(詳細な説明)
本発明は、オーディオ/ビジュアルコーデック(圧縮器/圧縮解除器)内で実施されている。これは、どのように本発明を実施することが可能であるかの一例に過ぎない。本発明は、エントロピー型符号化が利用可能なところではどこでも利用できるように設計されており、任意の型のデータの圧縮に適用可能である。簡単に説明すれば、最適エントロピー符号化は、過大なリソースを必要とし、例示する実施形態は、必要とするリソースがはるかに少ないほぼ最適な符号化の解決法を提供する。
【0013】
例としての動作環境
図1および下記の解説は、本発明を実施することが可能である適切なコンピュータ環境の、簡単な一般的説明を提供することを目的とする。パーソナルコンピュータ上で動作するコンピュータプログラムの、コンピュータ実行可能命令の一般的状況で、本発明を説明するが、当業者には、他のプログラムモジュールとの組合せでも、本発明を実施できることが理解されよう。一般的に、プログラムモジュールには、特定のタスクを実行する、または特定の抽象的なデータ型を実施する、ルーチン、プログラム、構成要素、データ構造などが含まれる。さらに、当業者には、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む、他のコンピュータシステム構成を使用しても本発明を実行できることが理解されよう。本発明の例示する実施形態は、通信ネットワークを介してリンクされているリモード処理装置によってタスクが実行される分散コンピュータ環境でも実行される。ただし、本発明のいくつかの実施形態は、スタンドアロンコンピュータ上でも実行することが可能である。分散コンピュータ環境では、プログラムモジュールは、ローカルとリモートの両方のメモリ記憶装置に配置することが可能である。
【0014】
図1を参照すると、本発明を実施するための例としてのシステムは、コンピュータ20を含み、これは、処理装置21、システムメモリ22、および処理装置21に対するシステムメモリを含んだ様々なシステム構成要素を結合するシステムバス23を含んでいる。処理装置は、Intel x86、Pentium、Intelおよび他社からの互換マイクロプロセッサ、DigitalによるAlphaプロセッサ、ならびにIBMおよびMotorolaからのPowerPCを含む、様々な市販のプロセッサのうちの任意のものでよい。デュアルマイクロプロセッサおよび他のマルチプロセッサのアーキテクチャも、処理装置21として使用することができる。
【0015】
システムバスは、いくつかの型のバス構造のうちの任意のものでよく、それの型としては、メモリバスまたはメモリコントローラ、周辺バス、ならびに、そのいくつかを挙げれば、PCI、AGP、VESA、Microchannel、ISA、EISAなどの様々な従来バスアーキテクチャのうちの任意のものを使用するローカルバスを含む。システムメモリは、読取り専用メモリ(ROM)24およびランダムアクセスメモリ(RAM)25を含む。スタートアップ時などに、コンピュータ20内の要素間で情報を転送するのを助ける基本ルーチンを含んだ基本入出力システム(BIOS)は、ROM24内に記憶されている。
【0016】
コンピュータ20は、さらに、例えば、リムーバルディスク29から読み取る、またはそれに書き込むために、ハードディスクドライブ27、磁気ディスクドライブ28を、また、例えば、CD−ROMディスク31を読み取るため、あるいは他の光学式媒体から読み取る、またはそれに書き込むために、光ディスクドライブ30をさらに含む。ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30は、それぞれ、ハードディスクドライブインタフェース32、磁気ディスクドライブインタフェース33、および光ディスクドライブインタフェース34によって、システムバス23に接続されている。これらのドライブおよびその関連するコンピュータ読み取り可能な媒体は、コンピュータ20のためのデータ、データ構造、コンピュータ実行可能命令などの不揮発性ストレージを提供する。上記のコンピュータ読み取り可能な媒体の説明は、ハードディスク、リムーバル磁気ディスク、およびCDに関連するが、当業者には、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジなど、コンピュータによって読取り可能な他の型の媒体も、例としての動作環境内で使用できることが理解されよう。
【0017】
オペレーティングシステム35、1つまたは複数のアプリケーションプログラム(例えば、インターネットブラウザソフトウェア)36、他のプログラムモジュール37、およびプログラムデータ38を含む、いくつかのプログラムモジュールをドライブおよびRAM25内に記憶することが可能である。
【0018】
ユーザは、キーボード40、およびマウス42などのポインティングデバイスを介して、コマンドおよび情報をコンピュータ20に入力することができる。他の入力装置(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、またはそれらに類するものが含まれてもよい。これらの入力装置および他の入力装置は、しばしば、システムバスに結合されたシリアルポートインタフェース46を介して処理装置21に接続するが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの、他のインタフェースによって接続することも可能である。モニタ47または他の型の表示装置も、ビデオアダプタ48などのインタフェースを介してシステムバス23に接続されている。モニタに加えて、パーソナルコンピュータは、通常、スピーカまたはプリンタなどの、他の周辺出力装置(図示せず)を含む。
【0019】
コンピュータ20は、リモートコンピュータリモートコンピュータ49などの、1つまたは複数のリモートコンピュータに対する論理接続を使用するネットワークされた環境内で動作するものと予期されている。リモートコンピュータ49は、ウェブサーバ、ルータ、ピア装置、または他の一般のネットワークノードで、図1ではメモリ記憶装置50だけを図示しているが、通常、コンピュータ20に関して記載した多くのまたはすべての要素を含む。コンピュータ20は、ゲートウェイ55(例えば、ルータ、専用回線、または他のネットワークリンク)、モデム54のリンクを介して、あるいは自局内ローカルエリアネットワーク(LAN)51またはワイドエリアネットワーク(WAN)52によって確立されたインターネット接続を介して、リモートコンピュータ49に接触することができる。図示したネットワーク接続は、例としてのものであり、コンピュータ間に通信リンクを確立する他の手段も使用できることが理解されよう。
【0020】
コンピュータプログラミングの当業者の慣行により、本発明は、別な方法で指示されない限り、コンピュータ20によって実行される動作およびオペレーションの記号表現を参照して、以下説明される。そのような動作およびオペレーションは、時として、コンピュータ実行されているとして、参照される。この動作および記号で表されるオペレーションには、処理装置21による、データビットを表す電気信号の操作が含まれ、これは、電気信号表現について結果としての変換および変形を引き起こすことが理解されるであろう。またそれによって、メモリシステム(システムメモリ22、ハードドライブ27、フロッピーディスク29、CD−ROM31を含む)内のメモリロケーションでのデータビットの維持は、コンピュータシステムのオペレーションならびに信号の他の処理を再構成し、さもなければ変更する。データビットが維持されているメモリロケーションは、そのデータビットに対応する特定の電気特性、磁気特性、または光特性を有する物理ロケーションである。
【0021】
図2は、基本通信モデルを示している。基本通信モデルでは、データソースまたはセンダ200、通信チャネル204、およびデータのレシーバ208が存在する。このソースは、電話機上で電話回線を介して他の人と話している人物でよい。または、ソースは、無線方法によってテレビジョンまたはラジオ受信機に対して送信されるテレビジョン放送またはラジオ放送でよい。または、ソースは、オーディオであれ、ビジュアルであれ、または他のものであれ、その情報のための対応するデコーダに配線式または無線の通信リンク(例えば、LANまたはインターネット)を介して伝送される、何らかのデータのデジタル符号化でよい。
【0022】
データの送信および受信を円滑にするため、エンコーダ202を使用して、通信チャネル204を介する伝送のためのデータソースを準備する。このエンコーダは、ソースデータをチャネル204に対して適切な形式に変換することを担う。例えば、通常の電話呼び出し状況では、自身の音声は、通常、電話機の受話器によって、音声サウンドから、ローカル電話受信装置に対するアナログデータとして送信されるアナログインパルスに変換される。このアナログ信号は、次に、デジタル形式に変換され、同様に符号化された他の多くの会話とともに多重化されて、共通回線を介してレシーバに伝送される。したがって、図2で、チャネル204は、複数のセンダとレシーバによって共用される共通経路に大部分対応する。ネットワーク用途の場合、チャネル204は普通イントラネットまたはインターネットである。受信端208で、デコーダ206は、レシーバに理解できるデータを渡すように、符号化プロセスを元に戻すことを要求されている。
【0023】
ただし、この単純なモデルは、アプリケーションプログラムの実環境の要求を考慮に入れていない。例えば、クライアント(例えば、アプリケーションプログラム)は、一般に、受信データをリアルタイムで、それがネットワークリンクを介してリトリーブ(retrieve)されるのにつれて、処理し、表示し、再生したい。それを行うために、ストリーミング送達システム、すなわち、データストリームに対するアプリケーションレベルの帯域幅予約を可能にする、適応データ伝送システムが必要とされる。ストリーミング環境は、ウェブページコンテンツを優先順位付けなしにダウンロードするあるバージョンのインターネットブラウザなどの、従来のネットワークプログラムと対照的で、ネットワークリンク204を介するデータ内容の送達を、特定のリトリーブの必要性(遅いダイヤルアップリンクなど)のために調整する(そして最適化する)ことを可能にする。
【0024】
例としてのストリーミング形式(SF)は、Microsoft Active Streaming Formatである。一般に、SFは、複雑な同期オブジェクトデータストリームの構造を定義する。オブジェクトは、オーディオとビデオのデータオブジェクト、スクリプト、ActiveXコントロール、およびHTML(Hyper-Text Markup Language)文書を含むSFデータストリームに入れることができる。SFデータは、ファイル内に記憶可能であり、またはオーディオとビデオのキャプチャハードウェアを使用して、リアルタイムで作成することが可能である。SFの実施に対応するアプリケーションプログラミングインタフェース(API)は、ストリーミング内容を送達し、受信するためのサポートをアプリケーションに提供する。1つのそのようなAPIは、Microsoft Audio Compression Manger(ACM)であり、これは、オーディオデータを処理する(例えば、圧縮および送達)ための機能を提供する。SFをサポートするために使用できる他のネットワーク機能APIには、Microsoft Win32 Internet Extensions(Winlnet)、WinSock、およびTCP/IP APIが含まれる。(さらなる情報に関しては、1998 Visual Studio 6.0MSDN Libraryを参照されたい。これは、参照により、本明細書に組み込まれている。)処理済データは、クライアントによる後のリトリーブのために記憶することができ、そのようなリトリーブは、非ストリーミング形式で(例えば、小さな再生器具によって)実行され得ることに留意されたい。
【0025】
ストリーミングデータまたは非ストリーミングデータを伝送するため、インターネットなどのネットワークは、ソースデータをネットワークに適したパケット形式に変換する。パケットは、一般に、ルーティング情報ならびに実際のデータを含む。SFデータストリームは、好ましくは、それらを1つずつネットワークパケットのデータフィールド内に挿入することによって、任意のデジタルネットワークを介して伝送することが可能なデータパケットで構成されている。各SFパケットは、ストリーム内の異なるオブジェクトからのデータの優先順位付き混合を含むことが可能であり、帯域幅を高い優先順位のオブジェクトに集中する(またはスループットを最適化するように編成する)ことができる。このデータは、リアルタイムでキャプチャされ、不揮発性ストレージに記憶され、既存のオーディオ形式またはビデオ形式から変換され、ピクチャおよびスクリプトとオーディオとを組み合わせることによって作成され、またはネットワークを介してクライアントのプログラムまたはビューアに送達することが可能である。ストリーミングデータのクライアントレシーバ208は、従来の「ヘルパ」アプリケーション(古いウェブ発行手法との互換性のため)、またはウェブページ内に埋め込まれたより新しいウェブページコントロール(例えば、ActiveXオブジェクト)であり得る。
【0026】
SFデータストリームは、クライアントがそれを受信するにつれてリアルタイムで漸次、見られるので、従来のネットワークコンテンツと区別される。残念ながら、ストリーム化された内容の再生は、伝送遅延に影響されるようになる。データが確実に到着しない場合、または伝送速度が、許容可能な最小限より低下する場合、内容の再生は、許容可能な速度で継続することができない。クライアントでのスムーズなストリーミング再生は、その伝送が、クライアントの利用可能な帯域幅(例えば、リンク204の速度からネットワーク機能オーバーヘッドを引いたもの)より小さい帯域幅を要することが必要である。通常、インターネットへのダイアルアップ接続は、28〜34Kbpsの帯域幅を提供する。したがって、オーディオビジュアルソースデータ(帯域幅を多く使用するものである)は、低いビット伝送速度での接続を介してのその伝送を可能にするために、相当に圧縮されなければならない。圧縮の程度は、再構成された信号の品質に必然的に影響する。好ましくは、サーバは、様々なネットワーキング速度に対して最適化された複数のソースを提供する、または適合フィードバックシステムを利用して、クライアントの実際のスループットのリアルタイム分析を行う。
【0027】
SFデータパケットが符号化されて(202)、ネットワークパケット内に入れられ、ネットワーク204を介して送信されると、ネットワークのルーティング技術が、そのネットワークパケットをレシーバ208に送達することを処理する。好ましくは、UDP、TCP、RTP、IP Multicast、IPX、およびHTTPなどの様々なネットワークプロトコルおよびアプリケーションプロトコルが、ブロードキャスト(同報通信;broadcast)センダ200によってサポートされる。
【0028】
前述のとおり、帯域幅は限られており、エンコーダ202は、一般に、伝送に先立ってデータを圧縮しなければならない。通信チャネルを介する確実な伝送を保証する、ソースデータ周波数係数を符号化するための特に有効な方法が、エントロピー符号化である。エントロピー符号化は、データコヒーレンシー(coherency)を十分に利用し、シンボルが一様でない確率分布を有するとき、有効である。
【0029】
図3は、エントロピーエンコーダのコードブックを生成するための好適な方法を示すフローチャートである。詳細には、従来技術の技法とは対照的に、図3は、どのように、可変長シンボルグループに対する可変長符号割当てを有するコードブックを作成するかを図示している。前述のとおり、従来技術の技法は、固定長符号の入力または固定ブロックの入力のいずれかを必要とする。好適実施態様は、可変長Xシーケンスを符号化するのに可変長符号ワードを使用するエントロピーベースの可変対可変符号を提供することによって、大きい次元のベクトル符号化のリソース要件と、等長のワードへの符号化の非実用性とを克服する。
【0030】
1≦j≦Niについて、入力ストリーム(図2のチャネル204)内で発生する確率Piを有する各ソースシンボルグループ{xj}を、yiが表すものとして、各グループにLiビットを有する対応する符号ワードを割り当てるものとする。各xjは、所定サイズの固定アルファベットから選び出すものと想定する。目的は、
【0031】
【数1】
Figure 0004559632
【0032】
を最小化することである。
【0033】
この問題に対する一般的な解を見つけ出す代わりに、問題を2つの異なるタスクに分離する。第1タスクは、後述の経験的手法を介して入力シンボル{xi}のセットの(部分最適)グループの識別である。第2タスクは、グループ化されたシンボル{yi}に対してエントロピー型符号を割り当てることである。ソースがコヒーレント(coherent)ではない(すなわち、入力が、独立であるかまたは記憶が無い)場合、{Nj}という同一構成を有するどのグループも、同一の符号化効率を達することができることが知られていることに留意されたい。この状況では、第1タスクは、重要ではなくなる。
【0034】
第1タスクを実行するため、{yi}={xi}などの、初期の単純シンボルグループ300が準備される。この初期構成は、コードブックの作成を扱うために、例としての入力ストリームが使用されていることを想定している。コンピュータは、入力からの各シンボルの受信を追跡するために、データ構造などのソフトウェア構造を使用してプログラムすることができることが理解されよう。そのようなデータ構造は、バイナリタイプのツリー構造、ハッシュテーブル、またはこの2つの何らかの組合せとして実施することが可能である。他の等価の構造を使用することも可能である。
【0035】
単純グループを決定した後、各yiごとの生起確率を計算する302。そのような確率は、コードブック生成を扱うために使用する任意の例としての入力に対して判定する。さらにシンボルがシンボルデータ構造に追加されるのにつれて、この確率は、動的に調整される。
【0036】
次に、最高確率のグループyi(ympと表す)を識別する(304)。最高確率のシンボルが、前により低い確率であったシンボルのグループである場合(306)には、そのグループをそれを構成するシンボルに分割して(308)、ステップ302から処理を再開する。(シンボルを結合することはできるけれども、シンボルを抽出することができるように、グループは、その中にあるすべてのシンボルの記憶を保持する。)
【0037】
そのシンボルがグループではない場合には、処理は、ステップ310で継続し、そこで、最高確率のグループを単一シンボル拡張xi´で試験的に拡張する(310)。好ましくは、ympは、使用されるXアルファベットからの各シンボルで拡張する。ただし、アルファベットが非常に大きく、多くの拡張は確率が低いことが既知である場合、予測子を使用して、確率の高い拡張だけを含んだ拡張セットのみを生成することが可能である。例えば、そのような予測子は、推測的に非常に確率の低い拡張を無視できるように、意味構造上の意味または文脈的意味に基づいたものでよい。
【0038】
次に、ympの各試験的拡張に関する確率を計算して(312)、最高確率の拡張だけを保持する(314)。残りのより低い確率の拡張は、結合グループとしてまとめてつぶし(316)、結合グループを示す特別シンボルを付けて、コードブック内に記憶する。このワイルドカードシンボルは、ympをプレフィックスとして有する任意のシンボルグループを表すが、最高確率の拡張とは異なる拡張(サフィックス)が付いている。つまり、ymp+xmpが最高確率のルートと拡張である場合には、他のそれほど確率の高くない拡張は、ymp≠xmpとして表される。(この解説は、明確にするために、単一シンボル拡張の逐次処理を想定するが、複数のシンボル拡張の並列実行が考慮されることに留意されたい。)
【0039】
単一シンボル拡張を適用し、1つの最高確率グループだけを保持することは、解説を明確にするために課した制約であることが、当業者には理解されよう。解説は逐次処理を中心的に扱うが、コードブック構成は、並列方式でも行い得ることをさらに理解されたい。
【0040】
コードブック構成は、すべての拡張が作成されるまで、またはコードブックエントリが所定の限界に達するまで、ステップ302〜316を繰り返すこと(318)によって完了する。つまり、コードブックセット{Y}が、ここでは、ymp+xmpを含み、各現行のyiごとに確率を計算すること(302)、最高確率の拡張および最低確率の拡張をそれぞれ選択して(304)、グループ化することを繰り返すことである。前述のオペレーションを繰り返し適用することの効果は、高い相関を有するシンボルグループを自動的に集めて、グループ間相関が最小化されるようにすることである。これは、Lの分子を最小化し、他方、同時に、Lの分母が最大化されるように、最高確率であるyiの長さを最大化する。
【0041】
図4〜10は、アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を図示する。この解説のために、コードブックは、例としての入力ストリーム「A A A B B A A C A B A B B A B」に対して定義される。前述のとおり、1つまたは複数の例としての入力を使用して、コードブックを生成することが可能であり、コードブックは、次に、エンコーダおよびデコーダによって使用されて、任意の入力を処理する。明確にするため、このコードブックは、ツリー構造として提示されている。ただし、これは、実際には、線形テーブル、ハッシュテーブル、データベースなどとして実施することが可能である。図示するとおり、ツリーは、左から右に向いており、そこで左列(例えば、「A」および「X0」)は、ツリー型構造の一番上の行を表し、順次、字下げされている行が、前の行のノードの「子」を表す(例えば、図5のトップダウンツリー内で、ノード「A」は、第2行の中間の子ノード「B」に対する第1行の親ノードである。)。
【0042】
コードブックを準備する上で、一般的規則は、最高確率のリーフノードを選出し、それを拡張し、最高確率のリーフノードを判定するために確率を再計算し、次に、残りの兄弟ノードを単一Xnノード(n=0..N、ノードが結合されるたびに毎回、追跡する)に縮小することである。最高確率ノードがグループノードであると判明した場合には、そのグループを分割し、確率を再計算して、最高確率のメンバノードを保持する(すなわち、残りのグループメンバは、再グループ化する)。処理は、所定サイズを有するコードブックのように、ストップ状態に達するまで、反復する。
【0043】
図4は、入力ストリーム「A A A B B A A C A B A B B A B」に対する初期グループを図示している。この入力の初期構文解析は、A=8/15、B=6/15、C=1/15の生起確率を示す。この初期単純グループは、異なる基準に基づいて作成することが可能であり、その最も単純なものは、アルファベット内の各文字に対する第1レベルノードを有する。ただし、入力アルファベットが大きい場合、単純グループは、最高確率を有するシンボルの何らかのサブセットに制限してもよく、残りのシンボルはXグループに結合される。図4は、2つの初期グループだけで開始することによってこの手法を図示し、グループA 400は、確率8/15を有し、グループX0 402は、確率7/15を有し、ここで、X0は、アルファベット内のすべての残りの低確率のシンボル、例えば、BおよびCを表す。
【0044】
初期単純グループを準備した後、最高確率を有するリーフノードを拡張のために選択する(処理シーケンスに関する図3の解説も参照)。したがって、図5で示すとおり、グループA 400は、アルファベット内の各文字によって試験的に拡張される(または、初期グループの作成に関して述べたとおり、その何らかのサブセットにこの拡張を制限してもよい)。次に、入力ストリーム「A A A B B A A C A B A B B A B」に関して確率を再計算して、試験的拡張A 406、B 408、およびC 410に対する値を判定する。この結果は、9つの構文解析グループであり、ここで「A A」は2/9出現し、「A B」は4/9出現し、「A C」は0/9出現する。したがって、最高確率の拡張「A B」を保持し、他の拡張をX1=A,Cにつぶす。この解説では、すべての確率を再計算するが、より効率的な手法は、ノード内の各ノードに対する確率とシンボル関連を保持して、必要となる情報だけを計算することである。
【0045】
図6は、図5のX1 412への縮小を示す。処理は、最高確率を有するノード、例えば、確率4/9のノードB 408の識別で繰り返す。
【0046】
図7に示すとおり、このノード408は、前述のとおり、シンボルA 414、B 416、C 418で試験的に拡張され、最高確率を有する試験的グループが保持される。確率を再計算した後、その結果は、8つの構文解析グループであり、そこでは、シンボルシーケンス「A B A」414が一度、出現し、「A B B」416が一度、出現し、「A B C」418は全く出現しない。試験的拡張A 414と試験的拡張B 416は、同一の生起確率を有するので、どちらのシンボルを保持するかを選択する規則を定義する必要がある。この解説の場合、等確率が存在するときはいつでも、一番高い行のノード(例えば、トップダウンツリー内の一番左の子ノード)が保持される。同様に、ツリーの行の間に競合が存在する場合、一番左の行のノード(例えば、トップダウンツリーのルートに一番近いノード)が保持される。
【0047】
例としての入力の前述の構文解析は、その入力の末尾の2つのシンボル「A B」を考慮しないことに留意されたい。図7に図示するとおり、その構成が「A B A」、「A B B」、「A B C」に拡張されているので、「A B」に対応するリーフは、存在しない。これを補正するため、コードブックエントリを作成して、入力シーケンスのそのような終端を考慮に入れることができ、あるいは、エントリを有さない入力を特殊な文字を使用して回避して、符号化済み出力ストリームに挿入することが可能である。例えば、特殊シンボルを使用して入力の終了を示すことができ、したがって、復号化時に、末尾の文字をどのように扱うかを暗黙指定する。
【0048】
したがって、図8に示すとおり、ノードA 414が保持され、ノードB 416とノードC 418が結合されて、1/8+0/8という結合確率を有するノードX2=B,C 420になる。ここで、次のステップは、入力ストリームに関して現行で最高確率を有するノードを拡張することである。図示するとおり、ノードX1=A,C 412とX0=B,C 402は、同一の生起確率(3/8)を有する。前述のとおり、ツリー内の最高ノード(X0 402)が拡張される。(整合的であることだけが必要であるが、より高いレベルのノードを拡張することが望ましい。なぜならば、そうすることが、長い符号ワードの数を増加させることによって、符号化効率を向上させ得るからである。)
【0049】
ただし、X0 402は、結合ノードであり、したがって、これは拡張するのではなく、分割しなければならない。図9は、ノードX0をその構成シンボルB422とC424に分割した結果を図示している。確率を再計算すると、シンボルシーケンス「A B A」は1/8出現し、「A B X2」は1/8出現し、「A X1」は3/8出現し、「B」 422は2/8出現し、「C」は1/8出現する。これは、分割オペレーションであるので、最高確率を有する分割ノード、例えば、ノードB 422が保持され、残りのノードは、再結合されてX0=C 424に戻る。
【0050】
図10は、高確率ノードB 422を保持することの結果を示している。グループX0は、この場合、単一シンボル「C」だけを表すことに留意されたい。確率を改訂した後、最高確率を有するノードを識別して、分割または拡張しなければならない。図示するとおり、シンボルシーケンス「A B A」は1/8出現し、「A B X2」は1/8出現し、「A X1」は3/8出現し、「B」は2/8出現し、「X0」は1/8出現する。したがって、ノードX1 412は、結合ノードであるので、分割しなければならない。
【0051】
分割は前述の手順で行われ、コードブックの処理は図3に図示するとおり反復して、停止状態に達する(例えば、コードブックが最大サイズに達する)まで、最高確率ノードが拡張または分割される。コードブックが停止状態に達すると、これは、通信チャネルを介して伝送するデータを符号化するために利用可能である。図10の構成の場合、入力シンボル当たりの平均ビットは、「理想的な」スカラーハフマン符号化の元でのフラクショナル(fractional)ビットを想定すると、およそ0.8ビット/シンボル(どのように末尾入力「A B」を扱うかに依存して変化する)である。これは、前の可逆的圧縮技術に対する相当な(およそ10%)節約を表している。
【0052】
図11は、チャネル460を介してオーディオデータを伝送するための伝送モデルを示している。チャネル460は、限られた帯域幅のものであると想定され、したがって、データを確実に送信できるようにするには、ソースデータ450の何らかの圧縮が必要とされる。この解説は、オーディオデータの伝送を中心的に扱うが、本発明は、埋め込まれたオーディオデータ(例えば、MPEGデータストリーム内で多重化された)を有するオーディオビジュアル情報、または圧縮可能データパターン(例えば、コヒーレントデータ)を有する他のデータソースなどの、他のデータの転送に適用されることに留意されたい。
【0053】
図示するとおり、ソースデータ450は、フィルタバンクまたは離散コサイン型変換などの時間/周波数変換エンコーダ452に入力される。変換エンコーダ452は、オーディオデータソースなどの連続の、またはサンプリングした時間領域入力を所定の(多分、異なるものであるが)帯域幅の複数の周波数帯域に変換するように設計されている。次に、これらの帯域は、可聴な影響なしに安全に低下させてよい信号の成分を決定するために、人間聴覚知覚モデル454(例えば、音響心理学モデル)に関して分析することができる。例えば、ある他の音または周波数が入力信号内に存在するとき、ある周波数が不可聴であることがよく知られている(同時マスキング)。したがって、こうした不可聴信号は、入力信号から安全に除去することができる。人間可聴モデルの使用は、よく知られており、これは、例えば、MPEG1、2、および4の規格である。(そのようなモデルを量子化456のオペレーションに結合することが可能なことに留意されたい。)
【0054】
時間/周波数変換を実行した後、各範囲内での周波数係数を量子化して(456)、各係数(振幅レベル)を有限セットの可能な値から取った値に変換する。ここで、各値は、周波数範囲を表すように割振られたビットに基づくサイズを有する。量子化器は、メモリを有する(または有さない)ミッドライザ(midriser)量子化器またはミッドトレッダ(midtreader)量子化器などの、従来の一様または非一様の量子化器でよい。一般的な量子化の目的は、入力信号データを表すのに最適のビット割振りを識別すること、すなわち、ソースデータの(聴覚上)重要な部分を確実に符号化するために、利用可能な符号化ビットの使用を割り当てることである。所望のビット伝送速度(一定のビット伝送速度を想定する)を満たすために、量子化ステップサイズ予測など、様々な量子化方法を使用することができる。ソース450を量子化した後(456)、結果のデータを図3のコードブックに従ってエントロピー符号化する(458)。
【0055】
図12は、図3のコードブックの量子化データへの適用を通して、図11のエントロピーエンコーダ458を実施するための一方法を示している。可変対可変符号化のためのコードブックは、他の型のデータを符号化するのにも使用することができる。図示するとおり、量子化データは、図11のエントロピーエンコーダ458に対する入力として受信される(480)。この入力は、何らかの形式の離散信号またはデータパケット中にあり、解説を単純にするために、すべての入力は、単に、長いシリーズ(series)の離散シンボルであると想定されていることを理解されたい。受信された入力480は、図3のコードブック内の対応するコードブックキーを探し出す(484)ために、走査される(482)。こうした走査は、データルックアップ(look-up)に対応し、コードブックを実施するのに使用されているデータ構造に依存するので、ルックアップの正確な方法は異なる。
【0056】
コードブックを記憶し、操作するための様々な手法が利用可能である。コードブック用の1つの構造は、N進(例えば、2進、3進など)ツリーの走査とストレージであり、そこでは、シンボルグループが、ツリー構造の走査をガイドする。ツリーのリーフノードへのパスは、認識済みシンボルシーケンスの終了を表し、そこで、エントロピー型符号がそのシーケンスと関連付けられている。(コードブックは、テーブルエントリが入力シーケンス全体、例えば、ノードに対するパスを含んだテーブルとして実施することが可能であることに留意されたい。)ノードは、ノードと関連付けられた1つまたは複数のシンボルの記憶を可能にする構造体、クラス定義、または他の構造として、および対応するエントロピー型符号486の関連付けとして、ソフトウェア内に符号化することができる。
【0057】
別法では、コードブックは、入力シンボルの各ストリングが生起確率によってソートされているテーブルとして構造化することが可能であり、最高確率の入力がテーブルの一番上に来る。大きなテーブルの場合、テーブルは、第1のシンボルによってソート可能であり、すなわち、「A」で開始するすべてのシンボルシリーズがグループにまとめられ、それに「B」で開始するシリーズが続くといったことが可能である。この構成を使用すると、グループ内のすべてのエントリが、その生起確率に応じてソートされる。各セクションの開始の位置は、ハッシュ型関数(例えば、第1のシンボルに基づくルックアップ)を使用してコードブックテーブルの正しい部分を探し出せるように、マーク付け/追跡される。コードブックの記憶に対するこのルックアップテーブル手法では、第1のシンボルをハッシュした後、マッチするエントリが探し出されるまで、対応するテーブルセクションが徹底的に検索される。次に、マッチするエントリと関連する符号484が、符号化済み置換として出力される(486)。
【0058】
次に、引き続き図11を参照すると、出力486が分かるとすぐに、この出力が、通信チャネル460を介して伝送される。次に、受信端470が、逆符号化処理、すなわち、ソースデータ450の符号化を解除する一連のステップを実施する。つまり、符号化済みデータ486が、エントロピーデコーダ462に対する入力として受信され、このデコーダが、逆コードブックルックアップを実行して、符号化済み出力486を元の入力シンボルシリーズ480(図12)に変換して戻す。次に、回復された入力データ480は、量子化解除器464および時間/周波数変換デコーダ466によって処理されて、元の符号化オペレーションが反転され、結果として元のソースデータ450に類似した再構成データ468となる。再構成データ468は、本明細書で想定するように不可逆的システムを使用したとき、元のソースデータ450を近似するに過ぎないことに留意すべきである。
【0059】
例示の実施形態を参照して、本発明の原理を説明し図示してきたが、例示の実施形態は、そのような原理を逸脱しなければ、その構成および詳細を変更可能であることがわかるであろう。したがって、特許請求の範囲およびそれに等価なものの範囲および趣旨に入り得るすべてのそのような変更形態は、本発明として請求するものである。
【図面の簡単な説明】
【図1】 可変対可変エントロピー符号化を実施するのに使用可能なコンピュータシステムのブロック図である。
【図2】 ストリーミングデータおよび非ストリーミングデータを伝送するための基本通信モデルを示す図である。
【図3】 可変長シンボルグループに対する可変長エントリを有するコードブックの作成を示すフローチャートである。
【図4】 アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を図示する図である。
【図5】 アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を図示する図である。
【図6】 アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を図示する図である。
【図7】 アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を図示する図である。
【図8】 アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を図示する図である。
【図9】 アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を図示する図である。
【図10】 アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を図示する図である。
【図11】 オーディオデータの符号化を示す図である。
【図12】 エントロピーエンコーダを図示する図である。

Claims (16)

  1. 処理装置および記憶手段を備えたコンピュータによって実行される、入力チャネルからのデジタルオーディオデータシンボルのシーケンスを符号化する方法であって
    前記デジタルオーディオデータシンボルのシーケンスにおいて、シンボルの第1の可変サイズシリーズを識別するステップと、
    前記シンボルの第1の可変サイズシリーズに対応する可変長符号ワードを出力として生成する符号化構成を使用して、前記シンボルの第1の可変サイズシリーズを符号化するステップであって、符号化は、可変シンボルシリーズサイズから可変長符号への圧縮のために、オーディオデータシンボルの異なる可変サイズシリーズを対応する可変長符号ワードに関係付ける複数のエントリを有する、事前構成されたコードブックを利用して行われ、前記複数のエントリはそれぞれ、前記異なる可変サイズシリーズのいずれか1つを前記可変長符号ワードのいずれか1つと関連付けるステップと、
    前記デジタルオーディオデータシンボルのシーケンスにおいて、各々のシリーズ内のシンボル数において異なるサイズを有する少なくとも2つのシンボルのシリーズが識別されるように、後続のシンボルの可変サイズシリーズを繰り返し識別して符号化するステップであって、識別される少なくとも2つのシリーズはそれぞれ、前記コードブック内の異なる可変長符号ワードを有するステップ
    を備えたことを特徴とする方法。
  2. 前記コードブックは、該コードブック内の各シリーズの第1のシンボルにしたがって複数のセクションに編成され、各セクションは、各セクション内の前記複数のエントリ間における各エントリの生起確率によりさらにソートされ、前記第1の可変サイズシリーズ符号化するステップは、
    前記第1の可変サイズシリーズの第1のシンボルによって、セクションを識別するステップと、
    突合せが見つかるまで、各セクションエントリに対して、前記第1の可変サイズシリーズをマッチングするステップと
    を備えたことを特徴とする請求項1に記載の方法。
  3. 前記突合せがサイズを有し、当該サイズは、シンボルの第2の可変サイズシリーズを識別するための、前記デジタルオーディオデータシンボルのシーケンス内における新しい位置を指示することを特徴とする請求項2に記載の方法。
  4. 前記符号化するステップは、前記コードブックのツリーを走査するステップを含み、前記コードブック内の前記複数のエントリは、該ツリー内のノードであることを特徴とする請求項に記載の方法。
  5. 前記入力チャネルはネットワーク接続であることを特徴とする請求項1に記載の方法。
  6. 前記ネットワーク接続はインターネットに対するものであり、ストリーミングネットワーキングプロトコルが前記ネットワーク接続を介して通信を行うために利用されることを特徴とする請求項5に記載の方法。
  7. デジタルデータシンボルのシーケンスを符号化する方法は、HTMLプロトコルを実施するアプリケーションプログラムにより実行されることを特徴とする請求項1に記載の方法。
  8. 前記入力チャネルディスクストレージと通信を行い、前記方法は、
    前記デジタルデータシンボルのシーケンスを前記ディスクストレージから読み取るステップ
    をさらに備えたことを特徴とする請求項1に記載の方法。
  9. デジタルデータシンボルのシーケンスを符号化する方法は、ファイル転送プロトコルを実施するアプリケーションプログラムにより実行されることを特徴とする請求項1に記載の方法。
  10. 前記入力チャネルはコンピュータ読み取り可能な不揮発性データストレージと通信を行うことを特徴とする請求項1に記載の方法。
  11. 前記コードブックは、複数のセクションを有するテーブルとして編成され、該複数のセクションは、シンボルの各可変サイズシリーズの第1のシンボルにより定義され、
    セクション内の前記複数のエントリのうちのテーブルエントリは、各セクション内のシンボルの各可変サイズシリーズの生起確率によって、ソートされることを特徴とする請求項1に記載の方法。
  12. 処理装置と記憶手段とを備えたコンピュータによって実施される圧縮オーディオデータストリームを復号化するための方法であって、
    可変長符号ワードを受信するステップと、
    可変長符号から可変シンボルシリーズサイズへの圧縮解除のために、異なる可変長符号ワードと異なる可変サイズシリーズのシンボルとの間の対応を含む事前構成されたコードブックにおいて前記可変長符号ワードをルックアップするステップであって、前記コードブックの複数のエントリはそれぞれ、前記異なる可変長符号ワードのいずれか1つを前記異なる可変サイズシリーズのシンボルのいずれか1つと関係付けるステップと、
    前記コードブックにおいてルックアップされた前記可変長符号ワードに対応する、可変サイズシリーズのオーディオデータシンボルを出力するステップと、
    シンボル数においてそれぞれ異なるサイズを有する少なくとも2つのシリーズのシンボルが出力されるように後続の可変長符号ワードを繰り返し受信してルックアップするステップであって、出力される少なくとも2つのシリーズはそれぞれ、前記コードブック内の異なる可変長符号ワードを有するステップと
    を備えたことを特徴とする方法。
  13. 前記可変長符号ワードをルックアップするステップは、前記可変長符号ワードをハッシュ符号化して、ハッシュテーブル内のエントリに対するインデックスを得ることを特徴とする請求項12に記載の方法。
  14. 圧縮オーディオビジュアルデータストリームを、サーバネットワークサービスからクライアントネットワークサービスに、ネットワークリンクを介して伝送するためのシステムであって、前記圧縮オーディオビジュアルデータストリームは、オーディオビジュアルデータの入力シンボルの可変サイズシーケンスを、出力の可変長符号で置き換えることにより形成されており、該システムは、
    圧縮して前記クライアントネットワークサービスに伝送するための一連の未圧縮オーディオビジュアルデータシンボルを記憶するための入力バッファと、
    前記入力バッファ内の前記一連の未圧縮オーディオビジュアルデータシンボルの圧縮バージョンを表す可変長符号ワードを記憶するための出力メモリと、
    可変サイズシリーズのシンボルに対する可変長符号ワードを含む事前構成されたコードブックを記憶するためのコードブックメモリであって、前記コードブック、可変シンボルシリーズサイズから可変長符号への圧縮のために、異なる可変サイズシリーズのシンボルを対応する可変長符号ワードに関連付け、前記コードブック内の複数のエントリは、それぞれ前記異なる可変サイズシリーズのシンボルのいずれか1つを前記か変調符号ワードのいずれか1つに関連付けて、前記コードブックは、前記異なる可変サイズシリーズのシンボルに異なる可変長符号ワードを割り当て、前記異なる可変サイズシリーズの少なくとも2つは、該2つのシリーズ内のシンボル数において各々異なるサイズを有する、コードブックメモリと、
    前記コードブック内の特定シリーズのシンボルに対する可変長符号ワードをルックアップするための検索構成と、
    前記入力バッファと通信を行う入力および前記出力メモリと通信を行う出力を有する符号化構成と
    を備え、
    前記符号化構成は、前記検索構成を適用して、前記出力メモリ内記憶するために前記一連の未圧縮オーディオビジュアルデータシンボルに対する可変長符号ワードを、ルックアップすることを特徴とするシステム。
  15. 前記出力メモリの内容を前記クライアントネットワークサービス前記ネットワークリンクを介して伝送するための伝送手段をさらに備えたことを特徴とする請求項14に記載のシステム。
  16. ネットワークリンクから受信した圧縮オーディオビジュアルデータを復号化するためのシステムであって、
    可変長符号ワードを記憶するための入力メモリと、
    前記入力メモリ内の可変長符号ワードに対応する、シリーズの未圧縮オーディオビジュアルデータシンボルを記憶するための出力バッファと、
    可変長符号ワードに対する可変サイズシリーズのシンボルを含む事前構成されたコードブックを記憶するためのコードブックメモリであって、前記コードブック、可変長符号から可変シンボルシリーズサイズへの圧縮解除のために、異なる可変長符号ワードを対応する異なる可変サイズシリーズのシンボルに関連付け、前記コードブック内の複数のエントリはそれぞれ、前記異なる可変長符号ワードのいずれか1つを前記異なる可変サイズシリーズのシンボルのいずれか1つに関連付け、前記異なる可変サイズシリーズの少なくとも2つは、該2つのシリーズ内のシンボル数において各々異なるサイズを有する、コードブックメモリと、
    前記コードブック内で特定シリーズのシンボルに対する可変長符号ワードをルックアップするための検索構成と、
    前記入力メモリと通信を行う入力および前記出力バッファと通信を行う出力を有する復号化構成とを備え、
    前記復号化構成が前記検索構成を適用して、可変長符号ワードに対応するシリーズの未圧縮オーディオビジュアルデータシンボルをルックアップし、該シリーズを出力バッファ内に記憶することを特徴とするシステム。
JP2000588900A 1998-12-14 1999-12-07 可変長対可変長エントロピー符号化 Expired - Lifetime JP4559632B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/211,294 US6377930B1 (en) 1998-12-14 1998-12-14 Variable to variable length entropy encoding
US09/211,294 1998-12-14
PCT/US1999/029108 WO2000036752A1 (en) 1998-12-14 1999-12-07 Variable to variable length entropy encoding

Publications (3)

Publication Number Publication Date
JP2002533006A JP2002533006A (ja) 2002-10-02
JP2002533006A5 JP2002533006A5 (ja) 2007-02-01
JP4559632B2 true JP4559632B2 (ja) 2010-10-13

Family

ID=22786310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000588900A Expired - Lifetime JP4559632B2 (ja) 1998-12-14 1999-12-07 可変長対可変長エントロピー符号化

Country Status (6)

Country Link
US (1) US6377930B1 (ja)
EP (1) EP1142129B1 (ja)
JP (1) JP4559632B2 (ja)
AT (1) ATE269605T1 (ja)
DE (1) DE69918172T2 (ja)
WO (1) WO2000036752A1 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7440993B1 (en) 1998-09-11 2008-10-21 Lv Partners, L.P. Method and apparatus for launching a web browser in response to scanning of product information
US6745234B1 (en) 1998-09-11 2004-06-01 Digital:Convergence Corporation Method and apparatus for accessing a remote location by scanning an optical code
US7379901B1 (en) 1998-09-11 2008-05-27 Lv Partners, L.P. Accessing a vendor web site using personal account information retrieved from a credit card company web site
US7392945B1 (en) 1998-09-11 2008-07-01 Lv Partners, L.P. Portable scanner for enabling automatic commerce transactions
US6704864B1 (en) * 1999-08-19 2004-03-09 L.V. Partners, L.P. Automatic configuration of equipment software
US6636896B1 (en) 1998-09-11 2003-10-21 Lv Partners, L.P. Method and apparatus for utilizing an audibly coded signal to conduct commerce over the internet
US7191247B1 (en) 1998-09-11 2007-03-13 Lv Partners, Lp Method for connecting a wireless device to a remote location on a network
US7386600B1 (en) 1998-09-11 2008-06-10 Lv Partners, L.P. Launching a web site using a personal device
US6868433B1 (en) 1998-09-11 2005-03-15 L.V. Partners, L.P. Input device having positional and scanning capabilities
US6823388B1 (en) 1998-09-11 2004-11-23 L.V. Parners, L.P. Method and apparatus for accessing a remote location with an optical reader having a programmable memory system
DE19907729C2 (de) * 1999-02-23 2001-02-22 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Erzeugen eines Datenstroms aus Codeworten variabler Länge und Verfahren und Vorrichtung zum Lesen eines Datenstroms aus Codeworten variabler Länge
DE19907964C1 (de) * 1999-02-24 2000-08-10 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Erzeugen eines verschlüsselten Datenstroms und Vorrichtung und Verfahren zum Erzeugen eines entschlüsselten Audio- und/oder Videosignals
US6687663B1 (en) * 1999-06-25 2004-02-03 Lake Technology Limited Audio processing method and apparatus
US8464302B1 (en) 1999-08-03 2013-06-11 Videoshare, Llc Method and system for sharing video with advertisements over a network
WO2001067772A2 (en) 2000-03-09 2001-09-13 Videoshare, Inc. Sharing a streaming video
US6961011B2 (en) * 2001-08-27 2005-11-01 Freescale Semiconductor, Inc. Data compression system
US6934677B2 (en) * 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
US7016547B1 (en) 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
ES2334934T3 (es) 2002-09-04 2010-03-17 Microsoft Corporation Codificacion de entropia por adaptacion de codificacion entre modalidades de nivel y de longitud de sucesion y nivel.
US7123774B2 (en) * 2002-11-27 2006-10-17 General Electric Company System and method for coding data
JP4165298B2 (ja) * 2003-05-29 2008-10-15 株式会社日立製作所 端末装置、及び通信網の切替え方法
US7313817B2 (en) * 2003-06-17 2007-12-25 Lockheed Martin Corporation Data transmission system utilizing efficient complexity estimation of the kolmogorov complexity for data transmission
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7688894B2 (en) * 2003-09-07 2010-03-30 Microsoft Corporation Scan patterns for interlaced video content
US7782954B2 (en) * 2003-09-07 2010-08-24 Microsoft Corporation Scan patterns for progressive video content
US7684981B2 (en) * 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7599840B2 (en) * 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
US7693709B2 (en) * 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
US7933337B2 (en) * 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
US7565018B2 (en) * 2005-08-12 2009-07-21 Microsoft Corporation Adaptive coding and decoding of wide-range coefficients
US8599925B2 (en) * 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
US8184710B2 (en) * 2007-02-21 2012-05-22 Microsoft Corporation Adaptive truncation of transform coefficient data in a transform-based digital media codec
US7774205B2 (en) * 2007-06-15 2010-08-10 Microsoft Corporation Coding of sparse digital media spectral data
KR101449434B1 (ko) * 2008-03-04 2014-10-13 삼성전자주식회사 복수의 가변장 부호 테이블을 이용한 멀티 채널 오디오를부호화/복호화하는 방법 및 장치
US8179974B2 (en) * 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
GB2466666B (en) * 2009-01-06 2013-01-23 Skype Speech coding
KR20110011357A (ko) * 2009-07-28 2011-02-08 삼성전자주식회사 비트의 순서를 변경한 데이터의 부호화, 복호화 방법 및 장치
US8572042B2 (en) * 2011-01-25 2013-10-29 Andrew LEPPARD Manipulating the actual or effective window size in a data-dependant variable-length sub-block parser
US8824598B2 (en) * 2012-12-18 2014-09-02 Telefonaktiebolaget L M Ericsson (Publ) System and method for communicating information in a wireless network
US10049140B2 (en) * 2015-08-28 2018-08-14 International Business Machines Corporation Encoding system, method, and recording medium for time grams
US10069519B1 (en) * 2018-01-23 2018-09-04 Mitsubishi Electric Research Laboratories, Inc. Partition based distribution matcher for probabilistic constellation shaping

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4122440A (en) * 1977-03-04 1978-10-24 International Business Machines Corporation Method and means for arithmetic string coding
US4464650A (en) 1981-08-10 1984-08-07 Sperry Corporation Apparatus and method for compressing data signals and restoring the compressed data signals
US4558302A (en) 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
JPS61107818A (ja) 1984-10-30 1986-05-26 Nec Corp エントロピ−符号化方式とその装置
JPH0821863B2 (ja) 1985-04-13 1996-03-04 キヤノン株式会社 データ処理方法
JPS62247626A (ja) 1986-04-19 1987-10-28 Fuji Photo Film Co Ltd 符号化方法
US4862167A (en) 1987-02-24 1989-08-29 Hayes Microcomputer Products, Inc. Adaptive data compression method and apparatus
US5003307A (en) 1989-01-13 1991-03-26 Stac, Inc. Data compression apparatus with shift register search means
US5532694A (en) 1989-01-13 1996-07-02 Stac Electronics, Inc. Data compression apparatus and method using matching string searching and Huffman encoding
US5479562A (en) 1989-01-27 1995-12-26 Dolby Laboratories Licensing Corporation Method and apparatus for encoding and decoding audio information
DE3943880B4 (de) 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
US5254990A (en) 1990-02-26 1993-10-19 Fujitsu Limited Method and apparatus for compression and decompression of data
US5049881A (en) 1990-06-18 1991-09-17 Intersecting Concepts, Inc. Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique
US5530866A (en) * 1991-07-30 1996-06-25 Tera Computer Company Register allocation methods having upward pass for determining and propagating variable usage information and downward pass for binding; both passes utilizing interference graphs via coloring
US5227789A (en) 1991-09-30 1993-07-13 Eastman Kodak Company Modified huffman encode/decode system with simplified decoding for imaging systems
US5229768A (en) * 1992-01-29 1993-07-20 Traveling Software, Inc. Adaptive data compression system
US5227788A (en) * 1992-03-02 1993-07-13 At&T Bell Laboratories Method and apparatus for two-component signal compression
US5406279A (en) * 1992-09-02 1995-04-11 Cirrus Logic, Inc. General purpose, hash-based technique for single-pass lossless data compression
US5442350A (en) 1992-10-29 1995-08-15 International Business Machines Corporation Method and means providing static dictionary structures for compressing character data and expanding compressed data
JP2505980B2 (ja) 1993-04-16 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション 静的辞書作成方法及びコンピュ―タ実行システム
JP3210996B2 (ja) 1993-07-30 2001-09-25 三菱電機株式会社 高能率符号化装置及び高能率復号化装置
US5550541A (en) 1994-04-01 1996-08-27 Dolby Laboratories Licensing Corporation Compact source coding tables for encoder/decoder system
JP3278297B2 (ja) 1994-07-20 2002-04-30 富士通株式会社 データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
US5623262A (en) * 1994-08-17 1997-04-22 Apple Computer, Inc. Multi-word variable length encoding and decoding
JPH08167852A (ja) * 1994-12-13 1996-06-25 Fujitsu Ltd データ圧縮方法及び装置
JPH08205169A (ja) * 1995-01-20 1996-08-09 Matsushita Electric Ind Co Ltd 動画像符号化装置及び復号装置
DE69619002T2 (de) 1995-03-10 2002-11-21 Kabushiki Kaisha Toshiba, Kawasaki Bildkodierungs-/-dekodierungsvorrichtung
US5884269A (en) 1995-04-17 1999-03-16 Merging Technologies Lossless compression/decompression of digital audio data
JP3181809B2 (ja) 1995-05-31 2001-07-03 シャープ株式会社 データ圧縮のための圧縮コードの復元回路
US5825830A (en) 1995-08-17 1998-10-20 Kopf; David A. Method and apparatus for the compression of audio, video or other data
US5819215A (en) * 1995-10-13 1998-10-06 Dobson; Kurt Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data
US5933104A (en) 1995-11-22 1999-08-03 Microsoft Corporation Method and system for compression and decompression using variable-sized offset and length fields
US5831559A (en) 1996-01-24 1998-11-03 Intel Corporation Encoding/decoding video signals using multiple run-val mapping tables
JP3566441B2 (ja) 1996-01-30 2004-09-15 シャープ株式会社 テキスト圧縮用辞書作成装置
JP3277792B2 (ja) 1996-01-31 2002-04-22 株式会社日立製作所 データ圧縮方法および装置
JP3267142B2 (ja) 1996-02-23 2002-03-18 ケイディーディーアイ株式会社 可変長符号生成装置
US5790706A (en) 1996-07-03 1998-08-04 Motorola, Inc. Method and apparatus for scanning of transform coefficients
US5959560A (en) 1997-02-07 1999-09-28 Said; Amir Data compression via alphabet partitioning and group partitioning
US5999949A (en) 1997-03-14 1999-12-07 Crandall; Gary E. Text file compression system utilizing word terminators
US6100824A (en) 1998-04-06 2000-08-08 National Dispatch Center, Inc. System and method for data compression
US6029126A (en) 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US6223162B1 (en) * 1998-12-14 2001-04-24 Microsoft Corporation Multi-level run length coding for frequency-domain audio coding
US6300888B1 (en) * 1998-12-14 2001-10-09 Microsoft Corporation Entrophy code mode switching for frequency-domain audio coding

Also Published As

Publication number Publication date
ATE269605T1 (de) 2004-07-15
DE69918172D1 (de) 2004-07-22
DE69918172T2 (de) 2009-10-01
JP2002533006A (ja) 2002-10-02
US6377930B1 (en) 2002-04-23
EP1142129A1 (en) 2001-10-10
EP1142129B1 (en) 2004-06-16
WO2000036752A1 (en) 2000-06-22

Similar Documents

Publication Publication Date Title
JP4559632B2 (ja) 可変長対可変長エントロピー符号化
JP4786796B2 (ja) 周波数領域オーディオ符号化のためのエントロピー符号モード切替え
US11044495B1 (en) Systems and methods for variable length codeword based data encoding and decoding using dynamic memory allocation
US6223162B1 (en) Multi-level run length coding for frequency-domain audio coding
JP4559631B2 (ja) 可変長から可変長へのエントロピー符号化のためのコードブック構成
US6985965B2 (en) Static information knowledge used with binary compression methods
US9363309B2 (en) Systems and methods for compressing packet data by predicting subsequent data
US6883035B2 (en) System and method for communicating with temporary compression tables
US20020109615A1 (en) Method and apparatus for adaptive data compression
CA2428788C (en) Static information knowledge used with binary compression methods
US6668092B1 (en) Memory efficient variable-length encoding/decoding system
US6750791B1 (en) Method and device for text data compression
Govindan et al. An intelligent text data encryption and compression for high speed and secure data transmission over internet
Rincy et al. Preprocessed text compression method for Malayalam text files
Abate Tefera et al. Compressed Amharic Text: A Prediction by Partial Match Context-Modeling Algorithm
Garba et al. Analysing Forward Difference Scheme on Huffman to Encode and Decode Data Losslessly
Topaloglu et al. Polymorphic compression
Shoham Variable-size vector entropy coding of speech and audio
JP2005283692A (ja) オーディオ信号圧縮方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061207

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20061207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091009

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100107

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100115

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100209

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100217

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100309

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100409

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100716

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100723

R150 Certificate of patent or registration of utility model

Ref document number: 4559632

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130730

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term