(57)【要約】可変長符号化パッキング・アーキテクチャの実施例を説明する。ポインタが用いられ、可変長ビット・パッキング装置が、一般にビット・パッキングに用いられるビット・シフトを削減、又は除去することにより、制御回路に利用されるゲート数を削減し得る。
2005501463.tif 000002
【特許請求の範囲】
【請求項１】
集積回路であって：
別個のビット列の選択された部分を所定の長さの単一のビット列にパックする回路構成を備えることを特徴とする集積回路。
【請求項２】
請求項１記載の集積回路であって、前記回路構成が前記所定の長さを有する連続するビット列間を循環する機能を含むことを特徴とする集積回路。
【請求項３】
請求項２記載の集積回路であって、前記所定の長さがスケール調整可能であることを特徴とする集積回路。
【請求項４】
請求項１記載の集積回路であって、前記回路構成がクロック・サイクル毎に前記所定の長さの単一ビット列をパックし得ることを特徴とする集積回路。
【請求項５】
請求項４記載の集積回路であって、前記回路構成がクロック・サイクル毎に前記所定の長さの単一ビット列を出力し得ることを特徴とする集積回路。
【請求項６】
請求項１記載の集積回路であって、前記回路構成が大エンディアン及び小エンディアンのデータ・フォーマットにてビット・パッキングを実施し得ることを特徴とする集積回路。
【請求項７】
請求項１記載の集積回路であって、前記回路構成が、選択された部分のうち、少なくとも該選択された部分のいくつかは可変長を有する、該選択された部分をパックする機能を含むことを特徴とする集積回路。
【請求項８】
装置であって：
データ圧縮を実施する計算機プラットフォーム、を備え；
該プラットフォームが別個のビット列の選択された部分を所定の長さの単一ビット列にパックする可変長符号化ハードウェア・アーキテクチャを含み、前記選択された部分は可変長を有することを特徴とする装置。
【請求項９】
請求項８記載の装置であって、前記アーキテクチャが前記所定の長さを有する連続するビット列間を循環する機能を含むことを特徴とする装置。
【請求項１０】
請求項８記載の装置であって、前記所定の長さがスケール調整可能であることを特徴とする装置。
【請求項１１】
請求項８記載の装置であって、前記アーキテクチャがクロック・サイクル毎に前記所定の長さの単一ビット列をパックし得ることを特徴とする装置。
【請求項１２】
請求項１０記載の装置であって、前記アーキテクチャがクロック・サイクル毎に前記所定の長さの単一ビット列を出力し得ることを特徴とする装置。
【請求項１３】
請求項１記載の装置であって、前記アーキテクチャが、選択された部分のうち、少なくとも該選択された部分のいくつかは可変長を有する、該選択された部分をパックする機能を含むことを特徴とする装置。
【請求項１４】
ビットから成る別個の列、の選択された部分をバッファにパックする方法であって：
前記バッファにパックされる前記ビットから成る別個の列の所望の部分を選択するよう多重化装置を用いる工程；及び
特定のバッファ位置にパックするよう前記選択された部分の前記ビットを配列するよう多重化装置を用いる工程、を備えることを特徴とする方法。
【請求項１５】
請求項１４記載の方法であって、前記選択された部分の少なくともいくつかが可変長を有することを特徴とする方法。
【請求項１６】
請求項１４記載の方法であって、パックするよう前記ビットを配列する前記多重化装置が、前記バッファの有効内容をトラッキングするバッファ位置ポインタによって少なくとも部分的には制御されることを特徴とする方法。
【請求項１７】
請求項１４記載の方法であって、パックする所望の部分を選択する前記多重化装置がマスキング・ビット一組によって少なくとも部分的には制御されることを特徴とする方法。
【請求項１８】
装置であって：
バッファ；
複数のマスクする多重化装置；及び
複数の配列する多重化装置、を備え；
前記多重化装置に適用された選択信号がビットから成る別個の列の部分を前記バッファにおいて配列及びパックするよう、前記バッファ及び前記多重化装置が結合されることを特徴とする装置。
【請求項１９】
請求項１８記載の装置であって、前記多重化装置に適用された選択信号が可変長の部分を前記バッファにおいて配列及びパックするよう、前記バッファ及び前記多重化装置が更に結合されることを特徴とする装置。
【請求項２０】
請求項１８記載の装置であって、パックするよう前記ビットを配列する前記多重化装置が前記バッファの有効内容をトラッキングするバッファ位置ポインタによって少なくとも部分的には制御されるよう結合されることを特徴とする装置。
【請求項２１】
請求項１８記載の装置であって、マスキング・ビット１組によって少なくとも部分的には制御されるよう、パックされる所望の部分を選択する前記多重化装置が結合されることを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、可変長符号化、特に可変長２元符号をパックするアーキテクチャに関するものである。
【背景技術】
【０００２】
エントロピー符号化は一般に、ほとんど全ての画像／映像／文書／データの圧縮プロセス及び国際標準に不可欠な部分である。例えば、静止連音画像圧縮標準（ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９  ＩＳ  １０９１８）のＪＰＥＧ（写真専門家共同グループ）、２値画像圧縮技術（ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２／ＷＧ９、ＣＤ  １１５４４）のＪＢＩＧ（２値画像専門家共同グループ）、ファクシミリ標準のＣＣＩＴＴグループ３及びグループ４（非特許文献１参照）、ビデオ電話会議及びＭＰＥＧ（動画像専門家グループ）ファミリー（例えば、ＭＰＥＧ１（ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９  ＩＳ  １１１７２）、ＭＰＥＧ２（ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９  ＩＳ  １３８１８））の映像符号化標準（ＩＴＵ−Ｔ  Ｈ．２６ｘ（例えば、Ｈ．２６１、Ｈ．１６３、Ｈ．２６３＋）、格納等に適した映像圧縮標準のＭＰＥＧ４（ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１  Ｎ１２３８）、に加えてｇｚｉｐ、ｐｋｚｉｐ、ＵＮＩＸ（登録商標）−ｃｏｍｐｒｅｓｓ等のような、他の文書／データ圧縮プロセスを含む、大半の画像及び映像圧縮標準は、例えば、ハフマン符号化のような可変長符号化（ＶＬＣ）を利用する。
【非特許文献１】
Ｈｕｎｔｅｒ，  ｅｔ．  ａｌ，  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｄｉｇｉｔａｌ  Ｆａｃｓｉｍｉｌｅ  Ｃｏｄｉｎｇ，  Ｓｔａｎｄａｒｄｓ，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＩＥＥＥ，  Ｖｏｌ．６８，  Ｎｏ．７，  Ｊｕｌｙ  １９８０，  ｐｐ．８５４−８６７
【発明の開示】
【発明が解決しようとする課題】
【０００３】
周知のように、ＶＬＣ符号化においては、符号器は入力されたソース・データを可変長の２進符号語にマッピングする。これらの符号語を作成及び／又は出力するプロセスを便利にする、若しくは簡素化するハードウェア装置が所望される。
【課題を解決するための手段】
【０００４】
以下の詳細説明においては、本明細書及び特許請求の範囲の技術内容が徹底的に理解されるよう数多くの具体的に詳説する。しかしながら、当業者にはこれらの具体的な詳細なしでも当該技術内容を実施し得るということが了解されるものである。他の例においては、周知の方法、手続、部品及び回路は当該技術内容を不明瞭にすることのないよう、詳細には説明しないものとする。
【発明を実施するための最良の形態】
【０００５】
以下の詳細説明のように、異なった圧縮プロセス及び標準に適した、可変長ビット・パッキングの、効率的で、統一された、超大規模集積（ＶＬＳＩ）アーキテクチャが開示される。本明細書及び特許請求の範囲の技術内容はこの実施例の範囲に限定されるものではなく、この特定実施例が当該技術内容による一実施可能形態を設けるよう企図されたものに過ぎないことは、当然、了解されるものである。例えば、複数の圧縮標準を有するシステム・アーキテクチャにおいては、この実施例は、例えば、異なった圧縮標準に準拠するよう、若しくは異なった圧縮標準との互換性を設けるよう、違った他のモジュールと、多重化され得る、若しくは接続され得る。この点については、以下に詳説するものとする。
【０００６】
例えば、別個のビット列の選択された部分を所定の長さの単一ビット列にパックし、上記選択された部分が可変長である、回路構成は以下の、例えば、ＣＣＩＴＴグループ３、グループ４、ＪＰＥＧ、ＭＰＥＧｘ、Ｈ．２６ｘ、又は他の文書／データ圧縮標準による可変ビットレート符号化を実現する機能を設け得る。これを達成する実施例は以下に説明する。便宜上、この回路構成はここでは可変長ビット・パッキング装置と呼ぶものとする。
【０００７】
いくつかの例をあげれば、当然、この点に関して、当該技術内容の範囲が限定されるものではないが、ＣＣＩＴＴグループ３、ＣＣＩＴＴグループ４、及びＪＰＥＧのような画像圧縮基準は一度に１６ビットまでの可変長ビット・パッキングを利用する。例えば、ＣＣＩＴＴグループ３及びＣＣＩＴＴグループ４の圧縮においては、パックするビットにはモード符号語、ターミネーティング符号語、ハフマンに似たメークアップ符号語、実際のビット値及びマーカを含み得る（例えば、非特許文献１参照。）。ＣＣＩＴＴグループ３及びグループ４の解凍においては、パックされたビットは２値画素に解凍し得、更に高性能を求めて可変長パッキングを利用し得る。ベースラインＪＰＥＧにおいては、パックされるビットは、画素の振幅、ハフマン符号語、マーカ、ビット・パッディング、及びゼロ・バイト・スタッフィングの何らかの形態を含み得る。同様のビット・パッキングはさらに映像及び文書符号化プロセスにおいても行われる。
【実施例】
【０００８】
以下に詳細に説明される、この特定の実施例は単一クロック・サイクルにおいて１乃至１６ビットをビット・パックする機能を備える。更に、この特定の実施例は一度に１６ビット超のパッキングを行えるよう簡単にスケール・アップ、若しくはスケール・ダウンし得る。しかしながら、当該技術内容の範囲はこれらの点において限定されないものとする。
【０００９】
可変長ビット・パッキング装置は異なった長さのビット列を縫い合わるものである。所定のビット数が縫い合わされると直ちに、そのチャンクはたとえば、追加の、もしくは更なる処理に備えてシステムの更に先に送信される。ビット・パッキングはＣＣＩＴＴグループ３及びグループ４、ＧＺＩＰ、ＪＰＥＧ、ＭＰＥＧ等の応用分野に応じて大エンディアン、小エンディアン、若しくは何らかのハイブリッド、のフォーマットにて行われ得る。以下の例はこの特定実施例において実施し得るビット・パッキング機能を示すものである。
【００１０】
以下の例１に関連して説明される実施例では、可変長ビット・パッキング装置は、１度に１６ビットまでパッキングし得る３２ビットのバッファを備える。又、この実施例におけるパッキングは、左から右へ行われ、最上位ビットは左に位置する。しかしながら、このアーキテクチャは双方向にスケール調整可能であって、右からのビット・パッキングも容易にサポートし得る。
例１：
図１の例では、パッキングは左から右に行われるので、バッファ・ポインタはバッファ１１０の左から開始する。最上位ビットは左に位置する。ビット・パッキング装置への入力信号は１６ビットの入力列（以下、「入力」と呼ぶ。）及びパックするビット数を含む（以下、「長さ」と呼ぶ。）。この例におけるポインタの開始値は３１（１Ｆ  １６進数）であり、右に位置する１６進数の００まで減少し、この実施例ではポインタはその後、００ｈから１Ｆｈまで循環する。  ポインタは長さの値単位で減少する。
【００１１】
【数１】
2005501463.tif 000003
図２はビット・パッキング符号「１００」の後のバッファ１１０の内容を表すものである。
【００１２】
【数２】
2005501463.tif 000004
図３は上記の入力をビット・パッキングした後のバッファ１１０の内容を表すものである。
【００１３】
【数３】
2005501463.tif 000005
図４は上記の入力をビット・パッキングした後のバッファ１１０の内容を表すものである。
【００１４】
この実施例においては、図４に示すように、ポインタは１６ビットの境界を横断し、バッファの下位１６ビットに位置付ける。この実施例における、この境界の横断はその後、上位１６ビットに対する有効の表示又は信号を引き起こし得る。ポインタの上位ビットの遷移、即ちこの特定実施例ではビット４、は出力される有効データを意味する。この場合、ビットは１から０へ遷移するが、当然、当該技術内容の範囲はこの点において限定されるものではないものとする。
【００１５】
【数４】
2005501463.tif 000006
図５は上記の入力をビット・パッキングした後のバッファ１１０の内容を表すものである。
【００１６】
【数５】
2005501463.tif 000007
図６に示すように、上記の入力をバッファ１１０に適用した後、
（外１）
2005501463.tif 000008
の符号の第１ビット「０」によってポインタは別の１６ビットの境界を横断する結果をもたらす。その他の１５ビット
（外２）
2005501463.tif 000009
はバッファの最上位ビットの先頭の位置に格納される。バッファ・ポインタ（４：０）はそして、ビット位置１０ｈ（１０進数１６）を指し、次の入力符号語のパッキングがこの位置から開始することを示す。ポインタ（４）は０から１に遷移し、バッファの下位１６ビットが有効であることを合図する。そしてバッファから下位１６ビットが出力される。
【００１７】
この実施例では、開始ポインタ値は少なくとも部分的にフォーマットに依存する。例えば、大エンディアン・フォーマットにてパックする場合、指数値はバッファの最上位ビット位置から開始する。この場合、ポインタは、例示のように、３１又は１Ｆ  １６進数  から開始する。この実施例においては、以下に詳説するように、ポインタの底４ビットは、ビット・パッキングを容易にするよう利用される多重化装置の選択信号として用い得る。
【００１８】
先行する例にて説明したように、この可変長ビット・パッキング装置を実現する実施例は、ビット・パッキングに一般に用いられる、シフトを削減、若しくは除去し、したがって、制御回路に利用されるゲート数を削減する可能性がある。当然、当該技術内容の範囲はこの点において限定されるものではないが、いくつかの実施例においては、これは利点を設けうる。同様に、上記のように、この実施例は更に、ポインタ、すなわちパッキングが、書き込み中にバッファを循環することを可能にし、バッファが毎クロック・サイクルにおいて可変長データを受け入れることを可能にするものである。循環ポインタは更に毎クロック・サイクルにデータを書き出すことを可能にする。下記に詳説するように、このアーキテクチャは更に、多重化装置の対称性を表し、この対称性は又、ゲート数を削減することを可能にするよう利用し得るが、又、当該技術内容の範囲はこの点において制限されるものではない。
【００１９】
図７は可変長ビット・パッキング装置の実施例７００の構成図であるが、これは単なる例である。この例では、ｖｌｃ（可変長符号）はパックされる入力データである。ここでは長さはパックされる可変長符号ビット数である。ゼロを超える可変長符号の長さは図７におけるポインタ’の値をポインタの値とは異ならせ、したがって、ここでは可変長符号である、入力ビットの所定数をパックするよう、列の残りに対する実行を引き起こす（長さ−１：０）。新しいポインタ値、ポインタ’、はビットをどのように配列するのかを多重化装置チェーン７１０に示す。多重化装置チェーン７２０はそして、この実施例においては、少なくとも部分的には、イネーブル・ビットに応じて、再配列された可変長符号ビットをバッファに送り込むか、現行データを再循環させる。
【００２０】
この実施例では、イネーブル・ビットは、以下に示すように、正常なデータへの上書きのリスクを削減する１６ビットの移動ウィンドウを生み出す。イネーブル・ビットは、例えば、この実施例においては、少なくとも部分的には、先行するポインタ値、ポインタ（４：０）に基づいて回路によって生成される。例えば、図３に示すように、上記（２）について、例１を参照すれば、イネーブル（３１：０）は０００１１１１１１１１１１１１１１１１０００００００００００００となる。この例では、最上位３ビットが正常なデータを含むので、イネーブル（３１：２９）＝０００となる。この特定実施例においては、イネーブル・ビットは多重化装置チェーン７２０における２−１多重化装置の選択信号を設けるよう用いられる。当然、又、これは一実施形態例であり、当該技術内容の範囲はこの実施形態に限定されるものではない。この実施形態においては、図８に示されるように、例えば、ゼロのイネーブル・ビットはそのバッファ位置には書き込みを許容しない。したがって、この実施例については、１６個の後行するゼロが、正常なデータが出力される前に上書きするリスクを削減する、そして、あるいは、妨げるものである。
【００２１】
１６ビットの出力信号、データ＿出力（１５：０）はバッファの上半分又は下半分の内容である。又、この実施例において、ポインタ、ポインタ（４）、の最上位ビットはバッファのどちらの半分が出力されるかを判定する。したがって、この実施例においては、ポインタ（４）がゼロの場合、バッファの上半分が最後に更新されたものである。したがって、上半分が出力されるものである。
【００２２】
この実施例において、出力信号、データ＿出力（１５：０）は、図７に示されるように、データ＿有効が高になる場合に有効である。データ＿有効は、この実施例においては、ポインタが１６ビットの境界を横断する場合、一クロック・サイクルにおいて高になる。例１の（３）においては、図４に示されるように、ポインタが境界を横断し、上位１６ビットが有効である場合を表す。
【００２３】
この特定実施例は以下に詳説する。図８は多重化装置を用いてデータを編成し、バッファに書き込むのに用いられる多重化装置の動作を示すものである。図２４はバッファからのデータの書き出しを示すものである。図２６はこの特定実施例における多重化装置の対称性の利用を示すものである。
【００２４】
図８の下部はデータの多重化装置チェーン７１０への送り込みを表すものである。ｉ（ｎ）と呼ばれる入力信号は１６ビット入力信号のｎビット、あるいはこの特定例においては、符号語である。例えば、入力信号の最上位ビットである、ｉ（１５）は多重化装置１５、ｍ１５、のセレクタ位置１５、及びｍ１４のセレクタ位置１４、等に送り込まれる。図８は図のスペースの制約上、多重化装置チェーン７１０から５つの多重化装置を表すものである：この特定実施例においては、当然、より多くの多重化装置が利用されている。しかしながら、以下の表１は１６の多重化装置全てへの入力信号及び、所定のポインタ値をｓｅｌとした時の出力信号を表すものである。図８における多重化装置ｍ１５、ｍ１４、ｍ８、ｍ１、及びｍ０は表１の列に対応する。
【００２５】
【表１】
2005501463.tif 000010
この例においては、多重化装置によるデータ編成は表１に表した順序にて入力ビットと多重化装置の所定のセレクタ位置とを連結、又は接続することによって実施し得る。したがって、この実施例において、入力データと１６−１多重化装置との間のロジックは何ら利用する必要はないが、当然、この点において当該技術内容の範囲は限定されるものではない。表１は、ポインタ＝ｓｅｌ＝１２の時、多重化装置チェーン７１０の出力信号はｖｉｃ（２：０，１５：３）であることを示すものである。
【００２６】
図８は１６−１多重化装置の１ビット出力信号が３２ビットバッファのビットｎからビットｎ＋１６と関係があることを表すものである。例えば、多重化装置１５（ｍ１５）の出力信号はバッファのビット位置１５及び３１に適用される。図８はｍ１５がバッファ位置１５及び３１を多重化装置８３０及び８４０を経由してデータを送り込んでいる様子を表すものである。図８で表されるように、多重化装置の出力信号は、少なくとも部分的には、イネーブル・マスクの対応ビットによって制御される。バッファ位置３１のイネーブル信号、イネーブル（３１）はｍ１５を、バッファのビット位置３１に書き込むよう、イネーブルする。イネーブル・マスクは一度に１６ビットを３２ビットのバッファに書き込むことを可能にする。図８に表した例においては、ビット３１又はビット１５が、少なくとも部分的には、バッファ・ポインタの値に応じて、イネーブルされるものである。
【００２７】
一実施例においては、イネーブル信号又はイネーブル・マスクを生成する回路は、少なくとも部分的には、バッファ・ポインタの値に応じて３２ビットのマスクを生成する、組み合わせ論理を備える。当然、又、当該技術分野の範囲はこの点において限定されるものではない。マスクは入力長さがゼロの時、オールゼロとなる。これによって、この実施例においては、バッファへの書き込みはパックする長さ及び入力データが存在する場合に生ずることを確実にする。ポインタ（４：０）からの１６の後続のバッファ位置のイネーブル・マスクはオンにされない。ポインタ（４：０）＝２４の場合、バッファ位置２５−３１及び０−８のイネーブル・マスクはゼロとなり、残りは１となる。この実施例において多重化装置に２つのバッファ位置のうちの１つに書き込むことを可能にすることは１６の多重化装置の節約となる。
【００２８】
他の実施例においては、イネーブル信号を生成する回路は、不良データが不良データによって上書きされる位置にゼロの代わりに「１でも０でもよい（ｄｏｎ’ｔ  ｃａｒｅ）」数値を更に付加することによって簡素化し得る。例えば、ポインタが位置３０にある場合、バッファ（１５：０）は既に出力されていて、陳腐化したデータなので、保護されるデータはビット・バッファ（３１）となる。イネーブル・ビットは、０１１１１１１１１１１１１１１１１１１１１１１１１１１１１１１１１となり得る。ポインタ＝８の場合、バッファ（３１：１６）は既に出力されていて陳腐化したデータなのでバッファ（１５：９）は保護される。イネーブル・ビットは１１１１１１１１１１１１１１１１０００００００１１１１１１１１１となり得る。この実施形態はより小さな回路をもたらし得るが、状況によっては、上記に説明したアプローチよりも多くのスイッチングを生み出す可能性があり得る。この場合もまた、当該技術内容は、上記のいずれかも含め、いかなる特定の実施形態にも限定されないものとする。
【００２９】
以下の例はこの特定実施例を示すよう設けたものであるが、この場合も当該技術内容の範囲は以下の例あるいは実施形態に限定されない。
例２：
この例は、上記の、例１からの入力及び長さ情報を用いるものである。
【００３０】
【数６】
2005501463.tif 000011
上記のように、ポインタ’（３：０）は多重化装置チェーン７１０の「ｓｅｌ」値として用いられる。多重化装置チェーン７１０の出力信号は、図９で表されたように再配列された、可変長符号入力信号である。
【００３１】
図９はポインタ’（３：０）＝ｓｅｌ＝１２について再配列された、多重化装置チェーン７１０からの可変長符号を示すものである。多重化装置チェーン７１０からの再配列された可変長符号のビットはその後、イネーブル・ビットに応じて、バッファの上位半分又は下位半分に書き込まれる。イネーブル・ビット、ここではイネーブル（３１：０）、は少なくとも部分的には、先行するポインタ値、ポインタに基づく。これはバッファ、ポインタ（３：０）＝３１への第１の書き込みで、イネーブル（３１：１６）は１なので、イネーブル（１５：０）は０となる。これは図１０に示される。
【００３２】
上記の入力信号においては、入力ビット２は１であり、その他のビットは０である。イネーブル・ビットはバッファ位置３１から１６に書き込むことを可能にする。バッファ（３１：１６）は書き込まれ、バッファ（１５：０）は再循環される。図１１におけるバッファの網掛けの部分は陳腐化されたデータ、または１でも０でもよいデータである。
【００３３】
ビットがバッファにクロックされた後、イネーブル・バスは、バッファ位置３１、３０、及び２９、及び、ビット・パックされる現時の可変長符号がバッファの下位半分から循環され、１６ビット長までであった場合に、有効データがあったかもしれない、バッファ位置１２から０まで、への書き込みをマスク・アウトするよう更新され、上記バッファ位置３１、３０、及び２９は、上記更新後有効データを保有するようになる。イネーブル・ビット値は図１２に表される。書き込み可能にされたバッファ位置は１によって表される。
【００３４】
【数７】
2005501463.tif 000012
ポインタ’（３：０）＝ｓｅｌ＝１における、再配列された可変長符号ビット位置は図１３に示される。図１２に上記のように表されるように、イネーブル・ビットは先行して書き込まれた有効データを保護するよう、バッファ位置３１、３０、２９への書き込みをマスクする。バッファ位置２８から１４までには、図１４に表されるように、可変長符号ビット１０乃至０と、１５乃至１１が書き込まれる。網掛けの部分は１でも０でもないデータを表す。
【００３５】
ビットがバッファにクロックされた後、イネーブル・バスはバッファ位置３１：１８への書き込みをマスク・アウトするよう更新され、上記バッファ位置３１：１８は以降上記（１）及び（２）からの有効データを保有する。イネーブル・ビットは図１５に表される。
【００３６】
【数８】
2005501463.tif 000013
図１６及び１７は上記（３）における、再配列された可変長符号ビット及びバッファ内容を表すものである。ポインタ’（４）は１から０に遷移するので、バッファ（３１：１６）の有効信号を引き起こす。イネーブル・ビットは、図１８に表されるように、（４）の実施中におけるバッファ（３１：１６）への上書きを妨げるよう、更新される。
【００３７】
【数９】
2005501463.tif 000014
図１９及び２０は上記（４）における、再配列された可変長符号ビット及びバッファ内容を表すものである。バッファ（３１：１６）は、有効な内容が先行して出力されたので、現時点では１でも０でもない状態である。したがって、図２１に表されるイネーブル・ビット値はバッファ位置０及び３１：１７に書き込むことを可能にする。バッファ（１６）も陳腐化されたデータを含むが、この実施例においては、一度に１６ビットまでが書き込まれるので、ここでは、イネーブル１６ビットウィンドウを保持することによって、イネーブルする論理は簡素化される。当然、当該技術内容の範囲はこの点において限定されるものではない。
【００３８】
【数１０】
2005501463.tif 000015
図２２及び２３は（５）における、再配列された可変長符号ビット及びバッファ内容を表すものである。ポインタ’（４）は０から１に遷移するので、バッファ（１５：０）の有効信号を引き起こす。パッキングはこのようにして続けられる。
【００３９】
この特定実施例におけるもう１つの課題はバッファからの書き込みに関する。この特定例は１６ビット出力バスを前提とするが、当然、当該技術内容の範囲はこの点について限定されるものではない。図２４は、３２ビットバッファの出力信号が、この実施例においては、ポインタの上位ビットによって判定されることを表すものである。ポインタがバッファの下位１６ビットにある場合、ポインタのビット４は０に等しくなり、それから上位１６ビットが出力信号としてイネーブルされる。ポインタがバッファの上位１６ビットにある場合、ポインタのビット４は１に等しくなり、それから下位１６ビットが出力されるようイネーブルされる。上記に示したように、この特定実施例においては、データ出力有効ビットは、この実施例においては１６ビットの境界を横断した場合に生成され、該場合はポインタ・ビット４の遷移状態によって合図される、若しくは示される。これは、例えば、ビット（４）と、ビット（４）の一クロック・サイクル遅延されたバージョンとに適用される排他的論理和演算によって検出し得る。当然、これは種々のアプローチによって実施し得、当該技術内容の範囲はこの特定のアプローチ案に限定されないものとする。
【００４０】
多重化装置の対称性は、更に、上記にて言及したように、この実施例におけるハードウェアを削減する機会を設けるものである。一般に、１６−１選定動作を実行する１６の多重化装置は４−１選定動作を実行する８０の多重化装置を用いて実施し得る。しかしながら、この特定実施例における上記アーキテクチャの対称性は、上記多重化装置を４−１選択が実行される３２の多重化装置に削減するものである。この実施例において、上記削減は入力データの連続性によって可能になる。多重化装置は入力信号を、しかしながら異なった順序にて、受信する。
【００４１】
図２５は４−１多重化装置を用いた１６−１選択機能を有する４つの多重化装置の従来の実施形態を表すものである。次に表１、及びｓｅｌ＝１２の行によれば、図２５における多重化装置の出力信号、すなわち、ｍ１５、ｍ１１、ｍ７、及びｍ３はｓｅｌ＝１１００について図９に表したイネーブル・ビットと整合する。表１及び図２５は、この特定実施例においていかなるｓｅｌ値についても整合する。
【００４２】
しかしながら、図２６は４−１多重化装置を用いた４つの１６−１多重化装置を実施するアプローチを表すものである。この実施例において、Ｍ１５、ｍ１１、ｍ７、及びｍ３は多重化装置一式又は一構成から生成されるので、多重化装置数が図２５に表された、２０から、図２６に表された、８に削減される。この多重化装置共有による実施形態は更に、例えば、この可変長ビット・パッキング装置の実施例の実施に利用される残りの３組の多重化装置に利用し得る。図２６は、図２５に示された例、ｓｅｌ＝１１００を用いる。当然、又、これは単に一例であって、当該技術内容の範囲はこの特定例、又は実施形態に限定されるものではない。
【００４３】
上記のように、当該技術内容による可変長ビット・パッキング装置の実施例の範囲はこの対称性を利用することに限定されるものでない。しかしながら、当該技術内容の範囲は上記の実施例に限定されるものではないが、従来のアプローチよりも低いゲート数が達成される可能性があり得ることが明らかにされた。同様に、少なくともいくつかの実施例はクロック毎に所定の長さのビット列をパックし、クロック・サイクル毎に書き出す機能を含み得る。同様に、少なくともいくつかの実施例については、所望のサイズにこの長さをスケール・アップ、又はスケール・ダウンする機能も特徴となり得る。更に、所望のように、小エンディアン・フォーマット、又は大エンディアン・フォーマットを二者択一的にサポートし得、例えば、ＪＰＥＧ、ＣＣＩＴＴグループ３及びグループ４、ＭＰＥＧ、ＧＺＩＰ、等の可変長符号化をサポートするよう利用し得る。当然、当該技術内容の範囲はこれらの圧縮アプローチのみを利用する、若しくは実施することに限定されるものではない。同様に、少なくともいくつかの実施例は、所望のように、複数の目的を持ち得る。
【００４４】
更に、可変長ビットレート・パッキング装置の実施例は、当該技術内容によって、別個のビット列の選択された部分をパックする方法を実施するのに用い得る。例えば、当該技術内容の範囲は、この点において限定されるものではないが、図７や８に示された７２０のような、多重化装置はバッファにパックされる別個のビット列の所望の部分を選択するよう利用し得る。同様に、７１０のような、多重化装置は、特定のバッファ位置においてパックする選択された部分のビットを配列するよう利用し得る。そのような実施形態においては、パッキングのためにビットを配列する多重化装置は、少なくとも部分的には、ポインタ（３：０）のような、バッファの有効な内容をトラッキングするバッファ位置ポインタによって制御し得るが、このような場合も、当該技術内容の範囲はこの点において制限されるものではない。同様に、パックされる所望の部分を選択する多重化装置は、少なくとも部分的には、上記のイネーブル・ビットのような、１組のマスキング・ビットによって制御し得る。
【００４５】
特定実施例がここに説明されたが、当然、当該技術内容の範囲が特定実施例又は実施形態に限定されるわけではない。例えば、一実施例がハードウェアにおいて、別の実施例が、例えば、ファームウェア、又はハードウェア及びファームウェアの何らかの組み合わせにおいてあり得る。同様に、いくつかの実施例は、ソフトウェアも実施形態の一部として含み得る。更に、例えば、データ圧縮システムのような、コンピュータ・システム、又はプラットフォームは、上記のように、例えば、別個のビット列の選択された部分をバッファにパックする方法の実施例のような、実行される当該技術内容による方法の実施例をもたらし得る。
【００４６】
ここでは当該技術分野の特定の特徴を示し、説明したが、当業者においては多くの修正、置換、変更及び均等物が当業者によって今からもたらされるものである。したがって本発明の特許請求の範囲は、当該技術内容の真の精神の範囲におさまる、そのような修正及び変更を全て網羅するよう企図されたものであることを特筆する。
【図面の簡単な説明】
【００４７】
【図１】バッファをビット・パックする例である。
【図２】バッファをビット・パックする例である。
【図３】バッファをビット・パックする例である。
【図４】バッファをビット・パックする例である。
【図５】バッファをビット・パックする例である。
【図６】バッファをビット・パックする例である。
【図７】バッファをビット・パックする例である。
【図８】可変長ビット・パッキング装置の実施例を示した図である。
【図９】図１から図７までの例の詳細を示した図である。
【図１０】図１から図７までの例の詳細を示した図である。
【図１１】図１から図７までの例の詳細を示した図である。
【図１２】図１から図７までの例の詳細を示した図である。
【図１３】図１から図７までの例の詳細を示した図である。
【図１４】図１から図７までの例の詳細を示した図である。
【図１５】図１から図７までの例の詳細を示した図である。
【図１６】図１から図７までの例の詳細を示した図である。
【図１７】図１から図７までの例の詳細を示した図である。
【図１８】図１から図７までの例の詳細を示した図である。
【図１９】図１から図７までの例の詳細を示した図である。
【図２０】図１から図７までの例の詳細を示した図である。
【図２１】図１から図７までの例の詳細を示した図である。
【図２２】図１から図７までの例の詳細を示した図である。
【図２３】図１から図７までの例の詳細を示した図である。
【図２４】図８の実施例の特徴の詳細を示した図である。
【図２５】４つの１６ｘ１多重化装置の一実施形態を示した図である。
【図２６】４つの１６ｘ１多重化装置の別の実施形態を示した図である。
【図１】
2005501463.tif 000016
【図２】
2005501463.tif 000017
【図３】
2005501463.tif 000018
【図４】
2005501463.tif 000019
【図５】
2005501463.tif 000020
【図６】
2005501463.tif 000021
【図７】
2005501463.tif 000022
【図８】
2005501463.tif 000023
【図１１】
2005501463.tif 000024
【図１４】
2005501463.tif 000025
【図１７】
2005501463.tif 000026
【図２０】
2005501463.tif 000027
【図２３】
2005501463.tif 000028
【図２４】
2005501463.tif 000029
【国際公開パンフレット】
2005501463.tif 000030
2005501463.tif 000031
2005501463.tif 000032
2005501463.tif 000033
2005501463.tif 000034
2005501463.tif 000035
2005501463.tif 000036
2005501463.tif 000037
2005501463.tif 000038
2005501463.tif 000039
2005501463.tif 000040
2005501463.tif 000041
2005501463.tif 000042
2005501463.tif 000043
2005501463.tif 000044
2005501463.tif 000045
2005501463.tif 000046
2005501463.tif 000047
2005501463.tif 000048
2005501463.tif 000049
2005501463.tif 000050
2005501463.tif 000051
2005501463.tif 000052
2005501463.tif 000053
【国際調査報告】
2005501463.tif 000054
2005501463.tif 000055
2005501463.tif 000056