(57)【特許請求の範囲】
【請求項１】
処理装置および記憶手段を備えたコンピュータによって実行される、入力チャネルからのデジタルオーディオデータシンボルのシーケンスを符号化する方法であって、
前記デジタルオーディオデータシンボルのシーケンスにおいて、シンボルの第１の可変サイズシリーズを識別するステップと、
前記シンボルの第１の可変サイズシリーズに対応する可変長符号ワードを出力として生成する符号化構成を使用して、前記シンボルの第１の可変サイズシリーズを符号化するステップであって、該符号化は、可変シンボルシリーズサイズから可変長符号への圧縮のために、オーディオデータシンボルの異なる可変サイズシリーズを対応する可変長符号ワードに関係付ける複数のエントリを有する、事前構成されたコードブックを利用して行われ、前記複数のエントリはそれぞれ、前記異なる可変サイズシリーズのいずれか１つを前記可変長符号ワードのいずれか１つと関連付けるステップと、
前記デジタルオーディオデータシンボルのシーケンスにおいて、各々のシリーズ内のシンボル数において異なるサイズを有する少なくとも２つのシンボルのシリーズが識別されるように、後続のシンボルの可変サイズシリーズを繰り返し識別して符号化するステップであって、識別される少なくとも２つのシリーズはそれぞれ、前記コードブック内の異なる可変長符号ワードを有するステップと
を備えたことを特徴とする方法。
【請求項２】
前記コードブックは、該コードブック内の各シリーズの第１のシンボルにしたがって複数のセクションに編成され、各セクションは、各セクション内の前記複数のエントリ間における各エントリの生起確率によりさらにソートされ、前記第１の可変サイズシリーズを符号化するステップは、
前記第１の可変サイズシリーズの第１のシンボルによって、セクションを識別するステップと、
突合せが見つかるまで、各セクションエントリに対して、前記第１の可変サイズシリーズをマッチングするステップと
を備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記突合せがサイズを有し、当該サイズは、シンボルの第２の可変サイズシリーズを識別するための、前記デジタルオーディオデータシンボルのシーケンス内における新しい位置を指示することを特徴とする請求項２に記載の方法。
【請求項４】
前記符号化するステップは、前記コードブックのツリーを走査するステップを含み、前記コードブック内の前記複数のエントリは、該ツリー内のノードであることを特徴とする請求項１に記載の方法。
【請求項５】
前記入力チャネルはネットワーク接続であることを特徴とする請求項１に記載の方法。
【請求項６】
前記ネットワーク接続はインターネットに対するものであり、ストリーミングネットワーキングプロトコルが前記ネットワーク接続を介して通信を行うために利用されることを特徴とする請求項５に記載の方法。
【請求項７】
該デジタルデータシンボルのシーケンスを符号化する方法は、ＨＴＭＬプロトコルを実施するアプリケーションプログラムにより実行されることを特徴とする請求項１に記載の方法。
【請求項８】
前記入力チャネルはディスクストレージと通信を行い、前記方法は、
前記デジタルデータシンボルのシーケンスを前記ディスクストレージから読み取るステップ
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項９】
該デジタルデータシンボルのシーケンスを符号化する方法は、ファイル転送プロトコルを実施するアプリケーションプログラムにより実行されることを特徴とする請求項１に記載の方法。
【請求項１０】
前記入力チャネルはコンピュータ読み取り可能な不揮発性データストレージと通信を行うことを特徴とする請求項１に記載の方法。
【請求項１１】
前記コードブックは、複数のセクションを有するテーブルとして編成され、該複数のセクションは、シンボルの各可変サイズシリーズの第１のシンボルにより定義され、
各セクション内の前記複数のエントリのうちのテーブルエントリは、各セクション内のシンボルの各可変サイズシリーズの生起確率によって、ソートされることを特徴とする請求項１に記載の方法。
【請求項１２】
処理装置と記憶手段とを備えたコンピュータによって実施される圧縮オーディオデータストリームを復号化するための方法であって、
可変長符号ワードを受信するステップと、
可変長符号から可変シンボルシリーズサイズへの圧縮解除のために、異なる可変長符号ワードと異なる可変サイズシリーズのシンボルとの間の対応を含む事前構成されたコードブックにおいて、前記可変長符号ワードをルックアップするステップであって、前記コードブックの複数のエントリはそれぞれ、前記異なる可変長符号ワードのいずれか１つを前記異なる可変サイズシリーズのシンボルのいずれか１つと関係付けるステップと、
前記コードブックにおいてルックアップされた前記可変長符号ワードに対応する、可変サイズシリーズのオーディオデータシンボルを出力するステップと、
シンボル数においてそれぞれ異なるサイズを有する少なくとも２つのシリーズのシンボルが出力されるように後続の可変長符号ワードを繰り返し受信してルックアップするステップであって、出力される少なくとも２つのシリーズはそれぞれ、前記コードブック内の異なる可変長符号ワードを有するステップと
を備えたことを特徴とする方法。
【請求項１３】
前記可変長符号ワードをルックアップするステップは、前記可変長符号ワードをハッシュ符号化して、ハッシュテーブル内のエントリに対するインデックスを得ることを特徴とする請求項１２に記載の方法。
【請求項１４】
圧縮オーディオビジュアルデータストリームを、サーバネットワークサービスからクライアントネットワークサービスに、ネットワークリンクを介して伝送するためのシステムであって、前記圧縮オーディオビジュアルデータストリームは、オーディオビジュアルデータの入力シンボルの可変サイズシーケンスを、出力の可変長符号で置き換えることにより形成されており、該システムは、
圧縮して前記クライアントネットワークサービスに伝送するための一連の未圧縮オーディオビジュアルデータシンボルを記憶するための入力バッファと、
前記入力バッファ内の前記一連の未圧縮オーディオビジュアルデータシンボルの圧縮バージョンを表す可変長符号ワードを記憶するための出力メモリと、
可変サイズシリーズのシンボルに対する可変長符号ワードを含む事前構成されたコードブックを記憶するためのコードブックメモリであって、前記コードブックは、可変シンボルシリーズサイズから可変長符号への圧縮のために、異なる可変サイズシリーズのシンボルを対応する可変長符号ワードに関連付け、前記コードブック内の複数のエントリは、それぞれ前記異なる可変サイズシリーズのシンボルのいずれか１つを前記か変調符号ワードのいずれか１つに関連付けて、前記コードブックは、前記異なる可変サイズシリーズのシンボルに異なる可変長符号ワードを割り当て、前記異なる可変サイズシリーズの少なくとも２つは、該２つのシリーズ内のシンボル数において各々異なるサイズを有する、コードブックメモリと、
前記コードブック内の特定シリーズのシンボルに対する可変長符号ワードをルックアップするための検索構成と、
前記入力バッファと通信を行う入力および前記出力メモリと通信を行う出力を有する符号化構成と
を備え、
前記符号化構成は、前記検索構成を適用して、前記出力メモリ内に記憶するために前記一連の未圧縮オーディオビジュアルデータシンボルに対する可変長符号ワードを、ルックアップすることを特徴とするシステム。
【請求項１５】
前記出力メモリの内容を前記クライアントネットワークサービスに前記ネットワークリンクを介して伝送するための伝送手段をさらに備えたことを特徴とする請求項１４に記載のシステム。
【請求項１６】
ネットワークリンクから受信した圧縮オーディオビジュアルデータを復号化するためのシステムであって、
可変長符号ワードを記憶するための入力メモリと、
前記入力メモリ内の可変長符号ワードに対応する、シリーズの未圧縮オーディオビジュアルデータシンボルを記憶するための出力バッファと、
可変長符号ワードに対する可変サイズシリーズのシンボルを含む事前構成されたコードブックを記憶するためのコードブックメモリであって、前記コードブックは、可変長符号から可変シンボルシリーズサイズへの圧縮解除のために、異なる可変長符号ワードを対応する異なる可変サイズシリーズのシンボルに関連付け、前記コードブック内の複数のエントリはそれぞれ、前記異なる可変長符号ワードのいずれか１つを前記異なる可変サイズシリーズのシンボルのいずれか１つに関連付け、前記異なる可変サイズシリーズの少なくとも２つは、該２つのシリーズ内のシンボル数において各々異なるサイズを有する、コードブックメモリと、
前記コードブック内で特定シリーズのシンボルに対する可変長符号ワードをルックアップするための検索構成と、
前記入力メモリと通信を行う入力および前記出力バッファと通信を行う出力を有する復号化構成とを備え、
前記復号化構成が前記検索構成を適用して、可変長符号ワードに対応するシリーズの未圧縮オーディオビジュアルデータシンボルをルックアップし、該シリーズを出力バッファ内に記憶することを特徴とするシステム。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、一般に、データ圧縮に関し、より詳細には、一形式のエントロピー符号化に関する。
【０００２】
（背景）
通常のオーディオ符号化環境では、データは、エンコーダに入力されるシンボルの長いシーケンスとして表される。この入力データが、エンコーダによって符号化されて、通信チャネルを介して伝送され（または単に記憶され）、デコーダによって復号化される。符号化中、入力は、事前処理され、サンプリングされ、変換され、圧縮され、または別な方法で操作されて、伝送または記憶のための形式になる。伝送または記憶の後、デコーダが、元の入力を再構成しようとする。
【０００３】
オーディオ符号化技術は、一般に、２つのクラス、すなわち、時間領域技術および周波数領域技術に分類することができる。時間領域技術、例えば、ＡＤＰＣＭ、ＬＰＣは、時間領域内で直接的に動作し、他方、周波数領域技術は、オーディオ信号をそこで実際の圧縮が行われる周波数領域に変換する。周波数領域コーデック（ＣＯＤＥＣ）は、さらに、サブバンドコーダまたは変換コーダのいずれかに分けられる。ただし、この２つの間の区別は、常に明確なわけではない。オーディオ信号を周波数領域において処理することは、従来の信号処理理論と人間知覚モデル（例えば、音響心理学）の両方によって動機づけられている。内耳、詳細には、基底膜は、スペクトルアナライザのように動作して、オーディオ信号を、さらなる神経処理が行われるまえに、スペクトルデータに変換する。
【０００４】
周波数領域オーディオコーデックは、元の信号を変更し相当に多くの詳細／冗長性を除去するのに、人間の聴覚システムで行われている多くの種類の聴覚マスキングをしばしば利用する。人間の耳は、それらの変更を知覚することができないので、効率的な圧縮が得られる。マスキングは、通常、量子化ノイズを都合よく「マスク」できるように、量子化と併せて行われる。最近のオーディオ符号化技術では、量子化されたスペクトルデータは、通常、エントロピー符号化、例えば、ハフマン符号化を適用してさらに圧縮する。
【０００５】
通信モデルの基本的限界は、伝送チャネルが、通常、限られた容量または帯域幅を有するので、圧縮は必要とされる。したがって、入力データが通信チャネルを介して確実に伝送される、または単に伝送され得るようにするために、入力データの情報内容を削減することが、しばしば、必要である。長い間、伝送または記憶するデータのサイズを縮小するための可逆的圧縮と不可逆的圧縮の技術を開発するのに、相当な努力が注がれてきた。１つの一般的な可逆技法は、ハフマン符号化であり、これは、特定の形式のエントロピー符号化である。
【０００６】
エントロピー符号化は、符号ワードを異なる入力シーケンスに割り当てて、すべての入力シーケンスをコードブック内に記憶する。エントロピー符号化の複雑さは、入力シーケンスＸが取り得る可能な値の数ｍに依存する。小さなｍの場合、可能な入力の組合せは、ほとんど存在せず、したがって、そのメッセージに対するコードブックは、非常に小さいものであり得る（例えば、すべての可能な入力シーケンスを明確に表すのに、数ビットしか必要ない）。デジタルのアプリケーションの場合、符号アルファベットは、一連の２進数｛０，１｝である可能性が非常に高く、符号ワード長は、ビットで計られる。
【０００７】
入力が等しい生起確率を有するシンボルから構成されていることが既知である場合、最適符号化は、等長符号ワードを使用することである。しかし、入力ストリームが、任意の特定メッセージを等確率で受信する可能性を有することは、通常ではない。実際、あるメッセージは、他のメッセージよりも確率が高く、エントロピー符号化は、これを利用して、予期される入力の間での符号ワードの平均長を最小化する。ただし、従来、固定長入力シーケンスには、可変長符号が割り当てられている（または、逆に、可変長シーケンスには、固定長符号が割り当てられる）。
【０００８】
（概要）
本発明は、任意の入力ストリームを符号化するのに、可変対可変エントロピーエンコーダを使用することに関する。可変対可変エントロピーエンコーダは、可変長符号を使用して可変長入力シーケンスを符号化する。コードブックサイズを制限するため、エントロピー型符号は、確率の高い入力にだけ割り当て、それほど確率の高くないシーケンスを識別するのに、代替符号を使用してもよい。
【０００９】
コードブックの検索を最適化するために、それを別々に検索されるセクションに編成してもよい。例えば、１つの構成は、ブック内のすべての記憶済み入力シーケンスをその入力シーケンスの第１シンボルによってグループ化することである。ハッシュ符号化関数、ポインタの集合、または他の方法を使用して、コードブックの任意のセクションに即時にジャンプすることが可能である。各セクションは、さらに、そのエントリと関連する確率によってソートすることが可能である。例えば、最高確率の入力をそのセクションの先頭に配置して、各セクションをソートし、これによって、突合せ（match）が迅速に見つかる可能性を高めることが可能である。
【００１０】
マッチする（matching）コードブックエントリは、そのブックの内部表現に依存する。例えば、ツリー構造では、リーフに到達することが入力シンボルの特定グループの終端と識別を意味するように、ノードが入力の各文字を表すことが可能である。テーブル構造では、パターンマッチングアルゴリズムを適当なセクション内の各テーブルエントリに適用することが可能である。テーブルおよびマッチングアルゴリズムの実施次第で、コードブックセクション内の最長グループと同じ数だけの入力シンボルを考慮すればよいという認識によって、検索は、容易になり得る。コードブックマッチ（match）を見つけた後、対応するエントロピー型符号を出力することができ、マッチした入力に続く新しいシンボルを使用して、検索を繰り返すことが可能である。
【００１１】
例示した実施形態は、オーディオデータを符号化することを中心に扱っているが、入力ストリームは、オーディオ、ビデオ、または他の型のデータを、符号化する数、文字、または２進データなどの任意のデータストリームであることを予期している。単純にするため、入力ストリームは、本明細書では、一連のシンボルと呼び、各「シンボル」は、特定の入力に関する適切な測定単位を指す。入力ストリームは、ローカルストレージから、あるいはイントラネット、インターネット、またはストリーミングデータ（例えば、Ｍｉｃｒｏｓｏｆｔの「ＮＥＴＳＨＯＷ」（商標）クライアント／サーバストリーミングアーキテクチャ）から発することが可能である。
【００１２】
（詳細な説明）
本発明は、オーディオ／ビジュアルコーデック（圧縮器／圧縮解除器）内で実施されている。これは、どのように本発明を実施することが可能であるかの一例に過ぎない。本発明は、エントロピー型符号化が利用可能なところではどこでも利用できるように設計されており、任意の型のデータの圧縮に適用可能である。簡単に説明すれば、最適エントロピー符号化は、過大なリソースを必要とし、例示する実施形態は、必要とするリソースがはるかに少ないほぼ最適な符号化の解決法を提供する。
【００１３】
例としての動作環境
図１および下記の解説は、本発明を実施することが可能である適切なコンピュータ環境の、簡単な一般的説明を提供することを目的とする。パーソナルコンピュータ上で動作するコンピュータプログラムの、コンピュータ実行可能命令の一般的状況で、本発明を説明するが、当業者には、他のプログラムモジュールとの組合せでも、本発明を実施できることが理解されよう。一般的に、プログラムモジュールには、特定のタスクを実行する、または特定の抽象的なデータ型を実施する、ルーチン、プログラム、構成要素、データ構造などが含まれる。さらに、当業者には、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む、他のコンピュータシステム構成を使用しても本発明を実行できることが理解されよう。本発明の例示する実施形態は、通信ネットワークを介してリンクされているリモード処理装置によってタスクが実行される分散コンピュータ環境でも実行される。ただし、本発明のいくつかの実施形態は、スタンドアロンコンピュータ上でも実行することが可能である。分散コンピュータ環境では、プログラムモジュールは、ローカルとリモートの両方のメモリ記憶装置に配置することが可能である。
【００１４】
図１を参照すると、本発明を実施するための例としてのシステムは、コンピュータ２０を含み、これは、処理装置２１、システムメモリ２２、および処理装置２１に対するシステムメモリを含んだ様々なシステム構成要素を結合するシステムバス２３を含んでいる。処理装置は、Ｉｎｔｅｌ  ｘ８６、Ｐｅｎｔｉｕｍ、Ｉｎｔｅｌおよび他社からの互換マイクロプロセッサ、ＤｉｇｉｔａｌによるＡｌｐｈａプロセッサ、ならびにＩＢＭおよびＭｏｔｏｒｏｌａからのＰｏｗｅｒＰＣを含む、様々な市販のプロセッサのうちの任意のものでよい。デュアルマイクロプロセッサおよび他のマルチプロセッサのアーキテクチャも、処理装置２１として使用することができる。
【００１５】
システムバスは、いくつかの型のバス構造のうちの任意のものでよく、それの型としては、メモリバスまたはメモリコントローラ、周辺バス、ならびに、そのいくつかを挙げれば、ＰＣＩ、ＡＧＰ、ＶＥＳＡ、Ｍｉｃｒｏｃｈａｎｎｅｌ、ＩＳＡ、ＥＩＳＡなどの様々な従来バスアーキテクチャのうちの任意のものを使用するローカルバスを含む。システムメモリは、読取り専用メモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５を含む。スタートアップ時などに、コンピュータ２０内の要素間で情報を転送するのを助ける基本ルーチンを含んだ基本入出力システム（ＢＩＯＳ）は、ＲＯＭ２４内に記憶されている。
【００１６】
コンピュータ２０は、さらに、例えば、リムーバルディスク２９から読み取る、またはそれに書き込むために、ハードディスクドライブ２７、磁気ディスクドライブ２８を、また、例えば、ＣＤ−ＲＯＭディスク３１を読み取るため、あるいは他の光学式媒体から読み取る、またはそれに書き込むために、光ディスクドライブ３０をさらに含む。ハードディスクドライブ２７、磁気ディスクドライブ２８、および光ディスクドライブ３０は、それぞれ、ハードディスクドライブインタフェース３２、磁気ディスクドライブインタフェース３３、および光ディスクドライブインタフェース３４によって、システムバス２３に接続されている。これらのドライブおよびその関連するコンピュータ読み取り可能な媒体は、コンピュータ２０のためのデータ、データ構造、コンピュータ実行可能命令などの不揮発性ストレージを提供する。上記のコンピュータ読み取り可能な媒体の説明は、ハードディスク、リムーバル磁気ディスク、およびＣＤに関連するが、当業者には、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジなど、コンピュータによって読取り可能な他の型の媒体も、例としての動作環境内で使用できることが理解されよう。
【００１７】
オペレーティングシステム３５、１つまたは複数のアプリケーションプログラム（例えば、インターネットブラウザソフトウェア）３６、他のプログラムモジュール３７、およびプログラムデータ３８を含む、いくつかのプログラムモジュールをドライブおよびＲＡＭ２５内に記憶することが可能である。
【００１８】
ユーザは、キーボード４０、およびマウス４２などのポインティングデバイスを介して、コマンドおよび情報をコンピュータ２０に入力することができる。他の入力装置（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、またはそれらに類するものが含まれてもよい。これらの入力装置および他の入力装置は、しばしば、システムバスに結合されたシリアルポートインタフェース４６を介して処理装置２１に接続するが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの、他のインタフェースによって接続することも可能である。モニタ４７または他の型の表示装置も、ビデオアダプタ４８などのインタフェースを介してシステムバス２３に接続されている。モニタに加えて、パーソナルコンピュータは、通常、スピーカまたはプリンタなどの、他の周辺出力装置（図示せず）を含む。
【００１９】
コンピュータ２０は、リモートコンピュータリモートコンピュータ４９などの、１つまたは複数のリモートコンピュータに対する論理接続を使用するネットワークされた環境内で動作するものと予期されている。リモートコンピュータ４９は、ウェブサーバ、ルータ、ピア装置、または他の一般のネットワークノードで、図１ではメモリ記憶装置５０だけを図示しているが、通常、コンピュータ２０に関して記載した多くのまたはすべての要素を含む。コンピュータ２０は、ゲートウェイ５５（例えば、ルータ、専用回線、または他のネットワークリンク）、モデム５４のリンクを介して、あるいは自局内ローカルエリアネットワーク（ＬＡＮ）５１またはワイドエリアネットワーク（ＷＡＮ）５２によって確立されたインターネット接続を介して、リモートコンピュータ４９に接触することができる。図示したネットワーク接続は、例としてのものであり、コンピュータ間に通信リンクを確立する他の手段も使用できることが理解されよう。
【００２０】
コンピュータプログラミングの当業者の慣行により、本発明は、別な方法で指示されない限り、コンピュータ２０によって実行される動作およびオペレーションの記号表現を参照して、以下説明される。そのような動作およびオペレーションは、時として、コンピュータ実行されているとして、参照される。この動作および記号で表されるオペレーションには、処理装置２１による、データビットを表す電気信号の操作が含まれ、これは、電気信号表現について結果としての変換および変形を引き起こすことが理解されるであろう。またそれによって、メモリシステム（システムメモリ２２、ハードドライブ２７、フロッピーディスク２９、ＣＤ−ＲＯＭ３１を含む）内のメモリロケーションでのデータビットの維持は、コンピュータシステムのオペレーションならびに信号の他の処理を再構成し、さもなければ変更する。データビットが維持されているメモリロケーションは、そのデータビットに対応する特定の電気特性、磁気特性、または光特性を有する物理ロケーションである。
【００２１】
図２は、基本通信モデルを示している。基本通信モデルでは、データソースまたはセンダ２００、通信チャネル２０４、およびデータのレシーバ２０８が存在する。このソースは、電話機上で電話回線を介して他の人と話している人物でよい。または、ソースは、無線方法によってテレビジョンまたはラジオ受信機に対して送信されるテレビジョン放送またはラジオ放送でよい。または、ソースは、オーディオであれ、ビジュアルであれ、または他のものであれ、その情報のための対応するデコーダに配線式または無線の通信リンク（例えば、ＬＡＮまたはインターネット）を介して伝送される、何らかのデータのデジタル符号化でよい。
【００２２】
データの送信および受信を円滑にするため、エンコーダ２０２を使用して、通信チャネル２０４を介する伝送のためのデータソースを準備する。このエンコーダは、ソースデータをチャネル２０４に対して適切な形式に変換することを担う。例えば、通常の電話呼び出し状況では、自身の音声は、通常、電話機の受話器によって、音声サウンドから、ローカル電話受信装置に対するアナログデータとして送信されるアナログインパルスに変換される。このアナログ信号は、次に、デジタル形式に変換され、同様に符号化された他の多くの会話とともに多重化されて、共通回線を介してレシーバに伝送される。したがって、図２で、チャネル２０４は、複数のセンダとレシーバによって共用される共通経路に大部分対応する。ネットワーク用途の場合、チャネル２０４は普通イントラネットまたはインターネットである。受信端２０８で、デコーダ２０６は、レシーバに理解できるデータを渡すように、符号化プロセスを元に戻すことを要求されている。
【００２３】
ただし、この単純なモデルは、アプリケーションプログラムの実環境の要求を考慮に入れていない。例えば、クライアント（例えば、アプリケーションプログラム）は、一般に、受信データをリアルタイムで、それがネットワークリンクを介してリトリーブ（retrieve）されるのにつれて、処理し、表示し、再生したい。それを行うために、ストリーミング送達システム、すなわち、データストリームに対するアプリケーションレベルの帯域幅予約を可能にする、適応データ伝送システムが必要とされる。ストリーミング環境は、ウェブページコンテンツを優先順位付けなしにダウンロードするあるバージョンのインターネットブラウザなどの、従来のネットワークプログラムと対照的で、ネットワークリンク２０４を介するデータ内容の送達を、特定のリトリーブの必要性（遅いダイヤルアップリンクなど）のために調整する（そして最適化する）ことを可能にする。
【００２４】
例としてのストリーミング形式（ＳＦ）は、Microsoft Active Streaming Formatである。一般に、ＳＦは、複雑な同期オブジェクトデータストリームの構造を定義する。オブジェクトは、オーディオとビデオのデータオブジェクト、スクリプト、ＡｃｔｉｖｅＸコントロール、およびＨＴＭＬ（Hyper-Text Markup Language）文書を含むＳＦデータストリームに入れることができる。ＳＦデータは、ファイル内に記憶可能であり、またはオーディオとビデオのキャプチャハードウェアを使用して、リアルタイムで作成することが可能である。ＳＦの実施に対応するアプリケーションプログラミングインタフェース（ＡＰＩ）は、ストリーミング内容を送達し、受信するためのサポートをアプリケーションに提供する。１つのそのようなＡＰＩは、Microsoft Audio Compression Manger（ＡＣＭ）であり、これは、オーディオデータを処理する（例えば、圧縮および送達）ための機能を提供する。ＳＦをサポートするために使用できる他のネットワーク機能ＡＰＩには、Microsoft Win32 Internet Extensions（Ｗｉｎｌｎｅｔ）、WinSock、およびＴＣＰ／ＩＰ  ＡＰＩが含まれる。（さらなる情報に関しては、１９９８  Visual Studio  ６．０ＭＳＤＮ  Libraryを参照されたい。これは、参照により、本明細書に組み込まれている。）処理済データは、クライアントによる後のリトリーブのために記憶することができ、そのようなリトリーブは、非ストリーミング形式で（例えば、小さな再生器具によって）実行され得ることに留意されたい。
【００２５】
ストリーミングデータまたは非ストリーミングデータを伝送するため、インターネットなどのネットワークは、ソースデータをネットワークに適したパケット形式に変換する。パケットは、一般に、ルーティング情報ならびに実際のデータを含む。ＳＦデータストリームは、好ましくは、それらを１つずつネットワークパケットのデータフィールド内に挿入することによって、任意のデジタルネットワークを介して伝送することが可能なデータパケットで構成されている。各ＳＦパケットは、ストリーム内の異なるオブジェクトからのデータの優先順位付き混合を含むことが可能であり、帯域幅を高い優先順位のオブジェクトに集中する（またはスループットを最適化するように編成する）ことができる。このデータは、リアルタイムでキャプチャされ、不揮発性ストレージに記憶され、既存のオーディオ形式またはビデオ形式から変換され、ピクチャおよびスクリプトとオーディオとを組み合わせることによって作成され、またはネットワークを介してクライアントのプログラムまたはビューアに送達することが可能である。ストリーミングデータのクライアントレシーバ２０８は、従来の「ヘルパ」アプリケーション（古いウェブ発行手法との互換性のため）、またはウェブページ内に埋め込まれたより新しいウェブページコントロール（例えば、ＡｃｔｉｖｅＸオブジェクト）であり得る。
【００２６】
ＳＦデータストリームは、クライアントがそれを受信するにつれてリアルタイムで漸次、見られるので、従来のネットワークコンテンツと区別される。残念ながら、ストリーム化された内容の再生は、伝送遅延に影響されるようになる。データが確実に到着しない場合、または伝送速度が、許容可能な最小限より低下する場合、内容の再生は、許容可能な速度で継続することができない。クライアントでのスムーズなストリーミング再生は、その伝送が、クライアントの利用可能な帯域幅（例えば、リンク２０４の速度からネットワーク機能オーバーヘッドを引いたもの）より小さい帯域幅を要することが必要である。通常、インターネットへのダイアルアップ接続は、２８〜３４Ｋｂｐｓの帯域幅を提供する。したがって、オーディオビジュアルソースデータ（帯域幅を多く使用するものである）は、低いビット伝送速度での接続を介してのその伝送を可能にするために、相当に圧縮されなければならない。圧縮の程度は、再構成された信号の品質に必然的に影響する。好ましくは、サーバは、様々なネットワーキング速度に対して最適化された複数のソースを提供する、または適合フィードバックシステムを利用して、クライアントの実際のスループットのリアルタイム分析を行う。
【００２７】
ＳＦデータパケットが符号化されて（２０２）、ネットワークパケット内に入れられ、ネットワーク２０４を介して送信されると、ネットワークのルーティング技術が、そのネットワークパケットをレシーバ２０８に送達することを処理する。好ましくは、ＵＤＰ、ＴＣＰ、ＲＴＰ、ＩＰ  Ｍｕｌｔｉｃａｓｔ、ＩＰＸ、およびＨＴＴＰなどの様々なネットワークプロトコルおよびアプリケーションプロトコルが、ブロードキャスト（同報通信；broadcast）センダ２００によってサポートされる。
【００２８】
前述のとおり、帯域幅は限られており、エンコーダ２０２は、一般に、伝送に先立ってデータを圧縮しなければならない。通信チャネルを介する確実な伝送を保証する、ソースデータ周波数係数を符号化するための特に有効な方法が、エントロピー符号化である。エントロピー符号化は、データコヒーレンシー（ｃｏｈｅｒｅｎｃｙ）を十分に利用し、シンボルが一様でない確率分布を有するとき、有効である。
【００２９】
図３は、エントロピーエンコーダのコードブックを生成するための好適な方法を示すフローチャートである。詳細には、従来技術の技法とは対照的に、図３は、どのように、可変長シンボルグループに対する可変長符号割当てを有するコードブックを作成するかを図示している。前述のとおり、従来技術の技法は、固定長符号の入力または固定ブロックの入力のいずれかを必要とする。好適実施態様は、可変長Ｘシーケンスを符号化するのに可変長符号ワードを使用するエントロピーベースの可変対可変符号を提供することによって、大きい次元のベクトル符号化のリソース要件と、等長のワードへの符号化の非実用性とを克服する。
【００３０】
１≦ｊ≦Ｎｉについて、入力ストリーム（図２のチャネル２０４）内で発生する確率Ｐｉを有する各ソースシンボルグループ｛ｘｊ｝を、ｙｉが表すものとして、各グループにＬｉビットを有する対応する符号ワードを割り当てるものとする。各ｘｊは、所定サイズの固定アルファベットから選び出すものと想定する。目的は、
【００３１】
【数１】
0004559632.tif 000002
【００３２】
を最小化することである。
【００３３】
この問題に対する一般的な解を見つけ出す代わりに、問題を２つの異なるタスクに分離する。第１タスクは、後述の経験的手法を介して入力シンボル｛ｘｉ｝のセットの（部分最適）グループの識別である。第２タスクは、グループ化されたシンボル｛ｙｉ｝に対してエントロピー型符号を割り当てることである。ソースがコヒーレント（coherent）ではない（すなわち、入力が、独立であるかまたは記憶が無い）場合、｛Ｎｊ｝という同一構成を有するどのグループも、同一の符号化効率を達することができることが知られていることに留意されたい。この状況では、第１タスクは、重要ではなくなる。
【００３４】
第１タスクを実行するため、｛ｙｉ｝＝｛ｘｉ｝などの、初期の単純シンボルグループ３００が準備される。この初期構成は、コードブックの作成を扱うために、例としての入力ストリームが使用されていることを想定している。コンピュータは、入力からの各シンボルの受信を追跡するために、データ構造などのソフトウェア構造を使用してプログラムすることができることが理解されよう。そのようなデータ構造は、バイナリタイプのツリー構造、ハッシュテーブル、またはこの２つの何らかの組合せとして実施することが可能である。他の等価の構造を使用することも可能である。
【００３５】
単純グループを決定した後、各ｙｉごとの生起確率を計算する３０２。そのような確率は、コードブック生成を扱うために使用する任意の例としての入力に対して判定する。さらにシンボルがシンボルデータ構造に追加されるのにつれて、この確率は、動的に調整される。
【００３６】
次に、最高確率のグループｙｉ（ｙｍｐと表す）を識別する（３０４）。最高確率のシンボルが、前により低い確率であったシンボルのグループである場合（３０６）には、そのグループをそれを構成するシンボルに分割して（３０８）、ステップ３０２から処理を再開する。（シンボルを結合することはできるけれども、シンボルを抽出することができるように、グループは、その中にあるすべてのシンボルの記憶を保持する。）
【００３７】
そのシンボルがグループではない場合には、処理は、ステップ３１０で継続し、そこで、最高確率のグループを単一シンボル拡張ｘｉ´で試験的に拡張する（３１０）。好ましくは、ｙｍｐは、使用されるＸアルファベットからの各シンボルで拡張する。ただし、アルファベットが非常に大きく、多くの拡張は確率が低いことが既知である場合、予測子を使用して、確率の高い拡張だけを含んだ拡張セットのみを生成することが可能である。例えば、そのような予測子は、推測的に非常に確率の低い拡張を無視できるように、意味構造上の意味または文脈的意味に基づいたものでよい。
【００３８】
次に、ｙｍｐの各試験的拡張に関する確率を計算して（３１２）、最高確率の拡張だけを保持する（３１４）。残りのより低い確率の拡張は、結合グループとしてまとめてつぶし（３１６）、結合グループを示す特別シンボルを付けて、コードブック内に記憶する。このワイルドカードシンボルは、ｙｍｐをプレフィックスとして有する任意のシンボルグループを表すが、最高確率の拡張とは異なる拡張（サフィックス）が付いている。つまり、ｙｍｐ＋ｘｍｐが最高確率のルートと拡張である場合には、他のそれほど確率の高くない拡張は、ｙｍｐ＊、＊≠ｘｍｐとして表される。（この解説は、明確にするために、単一シンボル拡張の逐次処理を想定するが、複数のシンボル拡張の並列実行が考慮されることに留意されたい。）
【００３９】
単一シンボル拡張を適用し、１つの最高確率グループだけを保持することは、解説を明確にするために課した制約であることが、当業者には理解されよう。解説は逐次処理を中心的に扱うが、コードブック構成は、並列方式でも行い得ることをさらに理解されたい。
【００４０】
コードブック構成は、すべての拡張が作成されるまで、またはコードブックエントリが所定の限界に達するまで、ステップ３０２〜３１６を繰り返すこと（３１８）によって完了する。つまり、コードブックセット｛Ｙ｝が、ここでは、ｙｍｐ＋ｘｍｐを含み、各現行のｙｉごとに確率を計算すること（３０２）、最高確率の拡張および最低確率の拡張をそれぞれ選択して（３０４）、グループ化することを繰り返すことである。前述のオペレーションを繰り返し適用することの効果は、高い相関を有するシンボルグループを自動的に集めて、グループ間相関が最小化されるようにすることである。これは、Ｌの分子を最小化し、他方、同時に、Ｌの分母が最大化されるように、最高確率であるｙｉの長さを最大化する。
【００４１】
図４〜１０は、アルファベット｛Ａ，Ｂ，Ｃ｝に対する、図３に準拠するコードブックの作成を図示する。この解説のために、コードブックは、例としての入力ストリーム「Ａ  Ａ  Ａ  Ｂ  Ｂ  Ａ  Ａ  Ｃ  Ａ  Ｂ  Ａ  Ｂ  Ｂ  Ａ  Ｂ」に対して定義される。前述のとおり、１つまたは複数の例としての入力を使用して、コードブックを生成することが可能であり、コードブックは、次に、エンコーダおよびデコーダによって使用されて、任意の入力を処理する。明確にするため、このコードブックは、ツリー構造として提示されている。ただし、これは、実際には、線形テーブル、ハッシュテーブル、データベースなどとして実施することが可能である。図示するとおり、ツリーは、左から右に向いており、そこで左列（例えば、「Ａ」および「Ｘ０」）は、ツリー型構造の一番上の行を表し、順次、字下げされている行が、前の行のノードの「子」を表す（例えば、図５のトップダウンツリー内で、ノード「Ａ」は、第２行の中間の子ノード「Ｂ」に対する第１行の親ノードである。）。
【００４２】
コードブックを準備する上で、一般的規則は、最高確率のリーフノードを選出し、それを拡張し、最高確率のリーフノードを判定するために確率を再計算し、次に、残りの兄弟ノードを単一Ｘｎノード（ｎ＝０．．Ｎ、ノードが結合されるたびに毎回、追跡する）に縮小することである。最高確率ノードがグループノードであると判明した場合には、そのグループを分割し、確率を再計算して、最高確率のメンバノードを保持する（すなわち、残りのグループメンバは、再グループ化する）。処理は、所定サイズを有するコードブックのように、ストップ状態に達するまで、反復する。
【００４３】
図４は、入力ストリーム「Ａ  Ａ  Ａ  Ｂ  Ｂ  Ａ  Ａ  Ｃ  Ａ  Ｂ  Ａ  Ｂ  Ｂ  Ａ  Ｂ」に対する初期グループを図示している。この入力の初期構文解析は、Ａ＝８／１５、Ｂ＝６／１５、Ｃ＝１／１５の生起確率を示す。この初期単純グループは、異なる基準に基づいて作成することが可能であり、その最も単純なものは、アルファベット内の各文字に対する第１レベルノードを有する。ただし、入力アルファベットが大きい場合、単純グループは、最高確率を有するシンボルの何らかのサブセットに制限してもよく、残りのシンボルはＸグループに結合される。図４は、２つの初期グループだけで開始することによってこの手法を図示し、グループＡ  ４００は、確率８／１５を有し、グループＸ０  ４０２は、確率７／１５を有し、ここで、Ｘ０は、アルファベット内のすべての残りの低確率のシンボル、例えば、ＢおよびＣを表す。
【００４４】
初期単純グループを準備した後、最高確率を有するリーフノードを拡張のために選択する（処理シーケンスに関する図３の解説も参照）。したがって、図５で示すとおり、グループＡ  ４００は、アルファベット内の各文字によって試験的に拡張される（または、初期グループの作成に関して述べたとおり、その何らかのサブセットにこの拡張を制限してもよい）。次に、入力ストリーム「Ａ  Ａ  Ａ  Ｂ  Ｂ  Ａ  Ａ  Ｃ  Ａ  Ｂ  Ａ  Ｂ  Ｂ  Ａ  Ｂ」に関して確率を再計算して、試験的拡張Ａ  ４０６、Ｂ  ４０８、およびＣ  ４１０に対する値を判定する。この結果は、９つの構文解析グループであり、ここで「Ａ  Ａ」は２／９出現し、「Ａ  Ｂ」は４／９出現し、「Ａ  Ｃ」は０／９出現する。したがって、最高確率の拡張「Ａ  Ｂ」を保持し、他の拡張をＸ１＝Ａ，Ｃにつぶす。この解説では、すべての確率を再計算するが、より効率的な手法は、ノード内の各ノードに対する確率とシンボル関連を保持して、必要となる情報だけを計算することである。
【００４５】
図６は、図５のＸ１  ４１２への縮小を示す。処理は、最高確率を有するノード、例えば、確率４／９のノードＢ  ４０８の識別で繰り返す。
【００４６】
図７に示すとおり、このノード４０８は、前述のとおり、シンボルＡ  ４１４、Ｂ  ４１６、Ｃ  ４１８で試験的に拡張され、最高確率を有する試験的グループが保持される。確率を再計算した後、その結果は、８つの構文解析グループであり、そこでは、シンボルシーケンス「Ａ  Ｂ  Ａ」４１４が一度、出現し、「Ａ  Ｂ  Ｂ」４１６が一度、出現し、「Ａ  Ｂ  Ｃ」４１８は全く出現しない。試験的拡張Ａ  ４１４と試験的拡張Ｂ  ４１６は、同一の生起確率を有するので、どちらのシンボルを保持するかを選択する規則を定義する必要がある。この解説の場合、等確率が存在するときはいつでも、一番高い行のノード（例えば、トップダウンツリー内の一番左の子ノード）が保持される。同様に、ツリーの行の間に競合が存在する場合、一番左の行のノード（例えば、トップダウンツリーのルートに一番近いノード）が保持される。
【００４７】
例としての入力の前述の構文解析は、その入力の末尾の２つのシンボル「Ａ  Ｂ」を考慮しないことに留意されたい。図７に図示するとおり、その構成が「Ａ  Ｂ  Ａ」、「Ａ  Ｂ  Ｂ」、「Ａ  Ｂ  Ｃ」に拡張されているので、「Ａ  Ｂ」に対応するリーフは、存在しない。これを補正するため、コードブックエントリを作成して、入力シーケンスのそのような終端を考慮に入れることができ、あるいは、エントリを有さない入力を特殊な文字を使用して回避して、符号化済み出力ストリームに挿入することが可能である。例えば、特殊シンボルを使用して入力の終了を示すことができ、したがって、復号化時に、末尾の文字をどのように扱うかを暗黙指定する。
【００４８】
したがって、図８に示すとおり、ノードＡ  ４１４が保持され、ノードＢ  ４１６とノードＣ  ４１８が結合されて、１／８＋０／８という結合確率を有するノードＸ２＝Ｂ，Ｃ  ４２０になる。ここで、次のステップは、入力ストリームに関して現行で最高確率を有するノードを拡張することである。図示するとおり、ノードＸ１＝Ａ，Ｃ  ４１２とＸ０＝Ｂ，Ｃ  ４０２は、同一の生起確率（３／８）を有する。前述のとおり、ツリー内の最高ノード（Ｘ０  ４０２）が拡張される。（整合的であることだけが必要であるが、より高いレベルのノードを拡張することが望ましい。なぜならば、そうすることが、長い符号ワードの数を増加させることによって、符号化効率を向上させ得るからである。）
【００４９】
ただし、Ｘ０  ４０２は、結合ノードであり、したがって、これは拡張するのではなく、分割しなければならない。図９は、ノードＸ０をその構成シンボルＢ４２２とＣ４２４に分割した結果を図示している。確率を再計算すると、シンボルシーケンス「Ａ  Ｂ  Ａ」は１／８出現し、「Ａ  Ｂ  Ｘ２」は１／８出現し、「Ａ  Ｘ１」は３／８出現し、「Ｂ」  ４２２は２／８出現し、「Ｃ」は１／８出現する。これは、分割オペレーションであるので、最高確率を有する分割ノード、例えば、ノードＢ  ４２２が保持され、残りのノードは、再結合されてＸ０＝Ｃ  ４２４に戻る。
【００５０】
図１０は、高確率ノードＢ  ４２２を保持することの結果を示している。グループＸ０は、この場合、単一シンボル「Ｃ」だけを表すことに留意されたい。確率を改訂した後、最高確率を有するノードを識別して、分割または拡張しなければならない。図示するとおり、シンボルシーケンス「Ａ  Ｂ  Ａ」は１／８出現し、「Ａ  Ｂ  Ｘ２」は１／８出現し、「Ａ  Ｘ１」は３／８出現し、「Ｂ」は２／８出現し、「Ｘ０」は１／８出現する。したがって、ノードＸ１  ４１２は、結合ノードであるので、分割しなければならない。
【００５１】
分割は前述の手順で行われ、コードブックの処理は図３に図示するとおり反復して、停止状態に達する（例えば、コードブックが最大サイズに達する）まで、最高確率ノードが拡張または分割される。コードブックが停止状態に達すると、これは、通信チャネルを介して伝送するデータを符号化するために利用可能である。図１０の構成の場合、入力シンボル当たりの平均ビットは、「理想的な」スカラーハフマン符号化の元でのフラクショナル（fractional）ビットを想定すると、およそ０．８ビット／シンボル（どのように末尾入力「Ａ  Ｂ」を扱うかに依存して変化する）である。これは、前の可逆的圧縮技術に対する相当な（およそ１０％）節約を表している。
【００５２】
図１１は、チャネル４６０を介してオーディオデータを伝送するための伝送モデルを示している。チャネル４６０は、限られた帯域幅のものであると想定され、したがって、データを確実に送信できるようにするには、ソースデータ４５０の何らかの圧縮が必要とされる。この解説は、オーディオデータの伝送を中心的に扱うが、本発明は、埋め込まれたオーディオデータ（例えば、ＭＰＥＧデータストリーム内で多重化された）を有するオーディオビジュアル情報、または圧縮可能データパターン（例えば、コヒーレントデータ）を有する他のデータソースなどの、他のデータの転送に適用されることに留意されたい。
【００５３】
図示するとおり、ソースデータ４５０は、フィルタバンクまたは離散コサイン型変換などの時間／周波数変換エンコーダ４５２に入力される。変換エンコーダ４５２は、オーディオデータソースなどの連続の、またはサンプリングした時間領域入力を所定の（多分、異なるものであるが）帯域幅の複数の周波数帯域に変換するように設計されている。次に、これらの帯域は、可聴な影響なしに安全に低下させてよい信号の成分を決定するために、人間聴覚知覚モデル４５４（例えば、音響心理学モデル）に関して分析することができる。例えば、ある他の音または周波数が入力信号内に存在するとき、ある周波数が不可聴であることがよく知られている（同時マスキング）。したがって、こうした不可聴信号は、入力信号から安全に除去することができる。人間可聴モデルの使用は、よく知られており、これは、例えば、ＭＰＥＧ１、２、および４の規格である。（そのようなモデルを量子化４５６のオペレーションに結合することが可能なことに留意されたい。）
【００５４】
時間／周波数変換を実行した後、各範囲内での周波数係数を量子化して（４５６）、各係数（振幅レベル）を有限セットの可能な値から取った値に変換する。ここで、各値は、周波数範囲を表すように割振られたビットに基づくサイズを有する。量子化器は、メモリを有する（または有さない）ミッドライザ（ｍｉｄｒｉｓｅｒ）量子化器またはミッドトレッダ（ｍｉｄｔｒｅａｄｅｒ）量子化器などの、従来の一様または非一様の量子化器でよい。一般的な量子化の目的は、入力信号データを表すのに最適のビット割振りを識別すること、すなわち、ソースデータの（聴覚上）重要な部分を確実に符号化するために、利用可能な符号化ビットの使用を割り当てることである。所望のビット伝送速度（一定のビット伝送速度を想定する）を満たすために、量子化ステップサイズ予測など、様々な量子化方法を使用することができる。ソース４５０を量子化した後（４５６）、結果のデータを図３のコードブックに従ってエントロピー符号化する（４５８）。
【００５５】
図１２は、図３のコードブックの量子化データへの適用を通して、図１１のエントロピーエンコーダ４５８を実施するための一方法を示している。可変対可変符号化のためのコードブックは、他の型のデータを符号化するのにも使用することができる。図示するとおり、量子化データは、図１１のエントロピーエンコーダ４５８に対する入力として受信される（４８０）。この入力は、何らかの形式の離散信号またはデータパケット中にあり、解説を単純にするために、すべての入力は、単に、長いシリーズ（series）の離散シンボルであると想定されていることを理解されたい。受信された入力４８０は、図３のコードブック内の対応するコードブックキーを探し出す（４８４）ために、走査される（４８２）。こうした走査は、データルックアップ（look-up）に対応し、コードブックを実施するのに使用されているデータ構造に依存するので、ルックアップの正確な方法は異なる。
【００５６】
コードブックを記憶し、操作するための様々な手法が利用可能である。コードブック用の１つの構造は、Ｎ進（例えば、２進、３進など）ツリーの走査とストレージであり、そこでは、シンボルグループが、ツリー構造の走査をガイドする。ツリーのリーフノードへのパスは、認識済みシンボルシーケンスの終了を表し、そこで、エントロピー型符号がそのシーケンスと関連付けられている。（コードブックは、テーブルエントリが入力シーケンス全体、例えば、ノードに対するパスを含んだテーブルとして実施することが可能であることに留意されたい。）ノードは、ノードと関連付けられた１つまたは複数のシンボルの記憶を可能にする構造体、クラス定義、または他の構造として、および対応するエントロピー型符号４８６の関連付けとして、ソフトウェア内に符号化することができる。
【００５７】
別法では、コードブックは、入力シンボルの各ストリングが生起確率によってソートされているテーブルとして構造化することが可能であり、最高確率の入力がテーブルの一番上に来る。大きなテーブルの場合、テーブルは、第１のシンボルによってソート可能であり、すなわち、「Ａ」で開始するすべてのシンボルシリーズがグループにまとめられ、それに「Ｂ」で開始するシリーズが続くといったことが可能である。この構成を使用すると、グループ内のすべてのエントリが、その生起確率に応じてソートされる。各セクションの開始の位置は、ハッシュ型関数（例えば、第１のシンボルに基づくルックアップ）を使用してコードブックテーブルの正しい部分を探し出せるように、マーク付け／追跡される。コードブックの記憶に対するこのルックアップテーブル手法では、第１のシンボルをハッシュした後、マッチするエントリが探し出されるまで、対応するテーブルセクションが徹底的に検索される。次に、マッチするエントリと関連する符号４８４が、符号化済み置換として出力される（４８６）。
【００５８】
次に、引き続き図１１を参照すると、出力４８６が分かるとすぐに、この出力が、通信チャネル４６０を介して伝送される。次に、受信端４７０が、逆符号化処理、すなわち、ソースデータ４５０の符号化を解除する一連のステップを実施する。つまり、符号化済みデータ４８６が、エントロピーデコーダ４６２に対する入力として受信され、このデコーダが、逆コードブックルックアップを実行して、符号化済み出力４８６を元の入力シンボルシリーズ４８０（図１２）に変換して戻す。次に、回復された入力データ４８０は、量子化解除器４６４および時間／周波数変換デコーダ４６６によって処理されて、元の符号化オペレーションが反転され、結果として元のソースデータ４５０に類似した再構成データ４６８となる。再構成データ４６８は、本明細書で想定するように不可逆的システムを使用したとき、元のソースデータ４５０を近似するに過ぎないことに留意すべきである。
【００５９】
例示の実施形態を参照して、本発明の原理を説明し図示してきたが、例示の実施形態は、そのような原理を逸脱しなければ、その構成および詳細を変更可能であることがわかるであろう。したがって、特許請求の範囲およびそれに等価なものの範囲および趣旨に入り得るすべてのそのような変更形態は、本発明として請求するものである。
【図面の簡単な説明】
【図１】  可変対可変エントロピー符号化を実施するのに使用可能なコンピュータシステムのブロック図である。
【図２】  ストリーミングデータおよび非ストリーミングデータを伝送するための基本通信モデルを示す図である。
【図３】  可変長シンボルグループに対する可変長エントリを有するコードブックの作成を示すフローチャートである。
【図４】  アルファベット｛Ａ，Ｂ，Ｃ｝に対する、図３に準拠するコードブックの作成を図示する図である。
【図５】  アルファベット｛Ａ，Ｂ，Ｃ｝に対する、図３に準拠するコードブックの作成を図示する図である。
【図６】  アルファベット｛Ａ，Ｂ，Ｃ｝に対する、図３に準拠するコードブックの作成を図示する図である。
【図７】  アルファベット｛Ａ，Ｂ，Ｃ｝に対する、図３に準拠するコードブックの作成を図示する図である。
【図８】  アルファベット｛Ａ，Ｂ，Ｃ｝に対する、図３に準拠するコードブックの作成を図示する図である。
【図９】  アルファベット｛Ａ，Ｂ，Ｃ｝に対する、図３に準拠するコードブックの作成を図示する図である。
【図１０】  アルファベット｛Ａ，Ｂ，Ｃ｝に対する、図３に準拠するコードブックの作成を図示する図である。
【図１１】  オーディオデータの符号化を示す図である。
【図１２】  エントロピーエンコーダを図示する図である。
【図１】
0004559632.tif 000003
【図２】
0004559632.tif 000004
【図３】
0004559632.tif 000005
【図４】
0004559632.tif 000006
【図５】
0004559632.tif 000007
【図６】
0004559632.tif 000008
【図７】
0004559632.tif 000009
【図８】
0004559632.tif 000010
【図９】
0004559632.tif 000011
【図１０】
0004559632.tif 000012
【図１１】
0004559632.tif 000013
【図１２】
0004559632.tif 000014