JP4065425B2 - 可変長符号化パッキング・アーキテクチャ - Google Patents

可変長符号化パッキング・アーキテクチャ Download PDF

Info

Publication number
JP4065425B2
JP4065425B2 JP2003524125A JP2003524125A JP4065425B2 JP 4065425 B2 JP4065425 B2 JP 4065425B2 JP 2003524125 A JP2003524125 A JP 2003524125A JP 2003524125 A JP2003524125 A JP 2003524125A JP 4065425 B2 JP4065425 B2 JP 4065425B2
Authority
JP
Japan
Prior art keywords
buffer
bit
pointer
bits
multiplexers
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 - Fee Related
Application number
JP2003524125A
Other languages
English (en)
Other versions
JP2005501463A (ja
Inventor
ベッカー,リカード
アチャルヤ,ティンク
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2005501463A publication Critical patent/JP2005501463A/ja
Application granted granted Critical
Publication of JP4065425B2 publication Critical patent/JP4065425B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • 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

Landscapes

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

Description

本発明は、一般的に、可変長符号化、特に可変長2元符号をパックするアーキテクチャに関するものである。
エントロピー符号化は一般に、ほとんど全ての画像/映像/文書/データの圧縮プロセス及び国際標準に不可欠な部分である。例えば、静止連音画像圧縮標準(ISO/IEC JTC1/SC29 IS 10918)のJPEG(写真専門家共同グループ)、2値画像圧縮技術(ISO/IEC JTC1/SC2/WG9、CD 11544)のJBIG(2値画像専門家共同グループ)、ファクシミリ標準のCCITTグループ3及びグループ4(非特許文献1参照)、ビデオ電話会議及びMPEG(動画像専門家グループ)ファミリー(例えば、MPEG1(ISO/IEC JTC1/SC29 IS 11172)、MPEG2(ISO/IEC JTC1/SC29 IS 13818))の映像符号化標準(ITU−T H.26x(例えば、H.261、H.163、H.263+)、格納等に適した映像圧縮標準のMPEG4(ISO/IEC JTC1/SC29/WG11 N1238)、に加えてgzip、pkzip、UNIX(登録商標)−compress等のような、他の文書/データ圧縮プロセスを含む、大半の画像及び映像圧縮標準は、例えば、ハフマン符号化のような可変長符号化(VLC)を利用する。
Hunter, et. al, International Digital Facsimile Coding, Standards, Proceedings of the IEEE, Vol.68, No.7, July 1980, pp.854−867
周知のように、VLC符号化においては、符号器は入力されたソース・データを可変長の2進符号語にマッピングする。これらの符号語を作成及び/又は出力するプロセスを便利にする、若しくは簡素化するハードウェア装置が所望される。
以下の詳細説明においては、本明細書及び特許請求の範囲の技術内容が徹底的に理解されるよう数多くの具体的に詳説する。しかしながら、当業者にはこれらの具体的な詳細なしでも当該技術内容を実施し得るということが了解されるものである。他の例においては、周知の方法、手続、部品及び回路は当該技術内容を不明瞭にすることのないよう、詳細には説明しないものとする。
以下の詳細説明のように、異なった圧縮プロセス及び標準に適した、可変長ビット・パッキングの、効率的で、統一された、超大規模集積(VLSI)アーキテクチャが開示される。本明細書及び特許請求の範囲の技術内容はこの実施例の範囲に限定されるものではなく、この特定実施例が当該技術内容による一実施可能形態を設けるよう企図されたものに過ぎないことは、当然、了解されるものである。例えば、複数の圧縮標準を有するシステム・アーキテクチャにおいては、この実施例は、例えば、異なった圧縮標準に準拠するよう、若しくは異なった圧縮標準との互換性を設けるよう、違った他のモジュールと、多重化され得る、若しくは接続され得る。この点については、以下に詳説するものとする。
例えば、別個のビット列の選択された部分を所定の長さの単一ビット列にパックし、上記選択された部分が可変長である、回路構成は以下の、例えば、CCITTグループ3、グループ4、JPEG、MPEGx、H.26x、又は他の文書/データ圧縮標準による可変ビットレート符号化を実現する機能を設け得る。これを達成する実施例は以下に説明する。便宜上、この回路構成はここでは可変長ビット・パッキング装置と呼ぶものとする。
いくつかの例をあげれば、当然、この点に関して、当該技術内容の範囲が限定されるものではないが、CCITTグループ3、CCITTグループ4、及びJPEGのような画像圧縮基準は一度に16ビットまでの可変長ビット・パッキングを利用する。例えば、CCITTグループ3及びCCITTグループ4の圧縮においては、パックするビットにはモード符号語、ターミネーティング符号語、ハフマンに似たメークアップ符号語、実際のビット値及びマーカを含み得る(例えば、非特許文献1参照。)。CCITTグループ3及びグループ4の解凍においては、パックされたビットは2値画素に解凍し得、更に高性能を求めて可変長パッキングを利用し得る。ベースラインJPEGにおいては、パックされるビットは、画素の振幅、ハフマン符号語、マーカ、ビット・パッディング、及びゼロ・バイト・スタッフィングの何らかの形態を含み得る。同様のビット・パッキングはさらに映像及び文書符号化プロセスにおいても行われる。
以下に詳細に説明される、この特定の実施例は単一クロック・サイクルにおいて1乃至16ビットをビット・パックする機能を備える。更に、この特定の実施例は一度に16ビット超のパッキングを行えるよう簡単にスケール・アップ、若しくはスケール・ダウンし得る。しかしながら、当該技術内容の範囲はこれらの点において限定されないものとする。
可変長ビット・パッキング装置は異なった長さのビット列を縫い合わるものである。所定のビット数が縫い合わされると直ちに、そのチャンクはたとえば、追加の、もしくは更なる処理に備えてシステムの更に先に送信される。ビット・パッキングはCCITTグループ3及びグループ4、GZIP、JPEG、MPEG等の応用分野に応じて大エンディアン、小エンディアン、若しくは何らかのハイブリッド、のフォーマットにて行われ得る。以下の例はこの特定実施例において実施し得るビット・パッキング機能を示すものである。
以下の例1に関連して説明される実施例では、可変長ビット・パッキング装置は、1度に16ビットまでパッキングし得る32ビットのバッファを備える。又、この実施例におけるパッキングは、左から右へ行われ、最上位ビットは左に位置する。しかしながら、このアーキテクチャは双方向にスケール調整可能であって、右からのビット・パッキングも容易にサポートし得る。
例1:
図1の例では、パッキングは左から右に行われるので、バッファ・ポインタはバッファ110の左から開始する。最上位ビットは左に位置する。ビット・パッキング装置への入力信号は16ビットの入力列(以下、「入力」と呼ぶ。)及びパックするビット数を含む(以下、「長さ」と呼ぶ。)。この例におけるポインタの開始値は31(1F 16進数)であり、右に位置する16進数の00まで減少し、この実施例ではポインタはその後、00hから1Fhまで循環する。 ポインタは長さの値単位で減少する。
Figure 0004065425
図2はビット・パッキング符号「100」の後のバッファ110の内容を表すものである。
Figure 0004065425
図3は上記の入力をビット・パッキングした後のバッファ110の内容を表すものである。
Figure 0004065425
図4は上記の入力をビット・パッキングした後のバッファ110の内容を表すものである。
この実施例においては、図4に示すように、ポインタは16ビットの境界を横断し、バッファの下位16ビットに位置付ける。この実施例における、この境界の横断はその後、
上位16ビットに対する有効の表示又は信号を引き起こし得る。ポインタの上位ビットの遷移、即ちこの特定実施例ではビット4、は出力される有効データを意味する。この場合、ビットは1から0へ遷移するが、当然、当該技術内容の範囲はこの点において限定されるものではないものとする。
Figure 0004065425
図5は上記の入力をビット・パッキングした後のバッファ110の内容を表すものである。
Figure 0004065425
図6に示すように、上記の入力をバッファ110に適用した後、
(外1)
Figure 0004065425
の符号の第1ビット「0」によってポインタは別の16ビットの境界を横断する結果をもたらす。その他の15ビット
(外2)
Figure 0004065425
はバッファの最上位ビットの先頭の位置に格納される。バッファ・ポインタ(4:0)はそして、ビット位置10h(10進数16)を指し、次の入力符号語のパッキングがこの位置から開始することを示す。ポインタ(4)は0から1に遷移し、バッファの下位16ビットが有効であることを合図する。そしてバッファから下位16ビットが出力される。
この実施例では、開始ポインタ値は少なくとも部分的にフォーマットに依存する。例えば、大エンディアン・フォーマットにてパックする場合、指数値はバッファの最上位ビット位置から開始する。この場合、ポインタは、例示のように、31又は1F 16進数 から開始する。この実施例においては、以下に詳説するように、ポインタの底4ビットは、ビット・パッキングを容易にするよう利用される多重化装置の選択信号として用い得る。
先行する例にて説明したように、この可変長ビット・パッキング装置を実現する実施例は、ビット・パッキングに一般に用いられる、シフトを削減、若しくは除去し、したがって、制御回路に利用されるゲート数を削減する可能性がある。当然、当該技術内容の範囲はこの点において限定されるものではないが、いくつかの実施例においては、これは利点を設けうる。同様に、上記のように、この実施例は更に、ポインタ、すなわちパッキングが、書き込み中にバッファを循環することを可能にし、バッファが毎クロック・サイクルにおいて可変長データを受け入れることを可能にするものである。循環ポインタは更に毎クロック・サイクルにデータを書き出すことを可能にする。下記に詳説するように、このアーキテクチャは更に、多重化装置の対称性を表し、この対称性は又、ゲート数を削減することを可能にするよう利用し得るが、又、当該技術内容の範囲はこの点において制限されるものではない。
図7は可変長ビット・パッキング装置の実施例700の構成図であるが、これは単なる例である。この例では、vlc(可変長符号)はパックされる入力データである。ここでは長さはパックされる可変長符号ビット数である。ゼロを超える可変長符号の長さは図7におけるポインタ’の値をポインタの値とは異ならせ、したがって、ここでは可変長符号である、入力ビットの所定数をパックするよう、列の残りに対する実行を引き起こす(長さ−1:0)。新しいポインタ値、ポインタ’、はビットをどのように配列するのかを多重化装置チェーン710に示す。多重化装置チェーン720はそして、この実施例においては、少なくとも部分的には、イネーブル・ビットに応じて、再配列された可変長符号ビットをバッファに送り込むか、現行データを再循環させる。
この実施例では、イネーブル・ビットは、以下に示すように、正常なデータへの上書きのリスクを削減する16ビットの移動ウィンドウを生み出す。イネーブル・ビットは、例えば、この実施例においては、少なくとも部分的には、先行するポインタ値、ポインタ(4:0)に基づいて回路によって生成される。例えば、図3に示すように、上記(2)について、例1を参照すれば、イネーブル(31:0)は00011111111111111110000000000000となる。この例では、最上位3ビットが正常なデータを含むので、イネーブル(31:29)=000となる。この特定実施例においては、イネーブル・ビットは多重化装置チェーン720における2−1多重化装置の選択信号を設けるよう用いられる。当然、又、これは一実施形態例であり、当該技術内容の範囲はこの実施形態に限定されるものではない。この実施形態においては、図8に示されるように、例えば、ゼロのイネーブル・ビットはそのバッファ位置には書き込みを許容しない。したがって、この実施例については、16個の後行するゼロが、正常なデータが出力される前に上書きするリスクを削減する、そして、あるいは、妨げるものである。
16ビットの出力信号、データ_出力(15:0)はバッファの上半分又は下半分の内容である。又、この実施例において、ポインタ、ポインタ(4)、の最上位ビットはバッファのどちらの半分が出力されるかを判定する。したがって、この実施例においては、ポインタ(4)がゼロの場合、バッファの上半分が最後に更新されたものである。したがって、上半分が出力されるものである。
この実施例において、出力信号、データ_出力(15:0)は、図7に示されるように、データ_有効が高になる場合に有効である。データ_有効は、この実施例においては、ポインタが16ビットの境界を横断する場合、一クロック・サイクルにおいて高になる。例1の(3)においては、図4に示されるように、ポインタが境界を横断し、上位16ビットが有効である場合を表す。
この特定実施例は以下に詳説する。図8は多重化装置を用いてデータを編成し、バッファに書き込むのに用いられる多重化装置の動作を示すものである。図24はバッファからのデータの書き出しを示すものである。図26はこの特定実施例における多重化装置の対称性の利用を示すものである。
図8の下部はデータの多重化装置チェーン710への送り込みを表すものである。i(n)と呼ばれる入力信号は16ビット入力信号のnビット、あるいはこの特定例においては、符号語である。例えば、入力信号の最上位ビットである、i(15)は多重化装置15、m15、のセレクタ位置15、及びm14のセレクタ位置14、等に送り込まれる。図8は図のスペースの制約上、多重化装置チェーン710から5つの多重化装置を表すものである:この特定実施例においては、当然、より多くの多重化装置が利用されている。しかしながら、以下の表1は16の多重化装置全てへの入力信号及び、所定のポインタ値をselとした時の出力信号を表すものである。図8における多重化装置m15、m14、m8、m1、及びm0は表1の列に対応する。
Figure 0004065425
この例においては、多重化装置によるデータ編成は表1に表した順序にて入力ビットと多重化装置の所定のセレクタ位置とを連結、又は接続することによって実施し得る。したがって、この実施例において、入力データと16−1多重化装置との間のロジックは何ら利用する必要はないが、当然、この点において当該技術内容の範囲は限定されるものではない。表1は、ポインタ=sel=12の時、多重化装置チェーン710の出力信号はvic(2:0,15:3)であることを示すものである。
図8は16−1多重化装置の1ビット出力信号が32ビットバッファのビットnからビットn+16と関係があることを表すものである。例えば、多重化装置15(m15)の出力信号はバッファのビット位置15及び31に適用される。図8はm15がバッファ位置15及び31を多重化装置830及び840を経由してデータを送り込んでいる様子を表すものである。図8で表されるように、多重化装置の出力信号は、少なくとも部分的には、イネーブル・マスクの対応ビットによって制御される。バッファ位置31のイネーブル信号、イネーブル(31)はm15を、バッファのビット位置31に書き込むよう、イネーブルする。イネーブル・マスクは一度に16ビットを32ビットのバッファに書き込むことを可能にする。図8に表した例においては、ビット31又はビット15が、少なくとも部分的には、バッファ・ポインタの値に応じて、イネーブルされるものである。
一実施例においては、イネーブル信号又はイネーブル・マスクを生成する回路は、少なくとも部分的には、バッファ・ポインタの値に応じて32ビットのマスクを生成する、組み合わせ論理を備える。当然、又、当該技術分野の範囲はこの点において限定されるものではない。マスクは入力長さがゼロの時、オールゼロとなる。これによって、この実施例においては、バッファへの書き込みはパックする長さ及び入力データが存在する場合に生ずることを確実にする。ポインタ(4:0)からの16の後続のバッファ位置のイネーブル・マスクはオンにされない。ポインタ(4:0)=24の場合、バッファ位置25−31及び0−8のイネーブル・マスクはゼロとなり、残りは1となる。この実施例において多重化装置に2つのバッファ位置のうちの1つに書き込むことを可能にすることは16の多重化装置の節約となる。
他の実施例においては、イネーブル信号を生成する回路は、不良データが不良データによって上書きされる位置にゼロの代わりに「1でも0でもよい(don’t care)」数値を更に付加することによって簡素化し得る。例えば、ポインタが位置30にある場合、バッファ(15:0)は既に出力されていて、陳腐化したデータなので、保護されるデータはビット・バッファ(31)となる。イネーブル・ビットは、011111111111111111111111111111111となり得る。ポインタ=8の場合、バッファ(31:16)は既に出力されていて陳腐化したデータなのでバッファ(15:9)は保護される。イネーブル・ビットは11111111111111110000000111111111となり得る。この実施形態はより小さな回路をもたらし得るが、状況によっては、上記に説明したアプローチよりも多くのスイッチングを生み出す可能性があり得る。この場合もまた、当該技術内容は、上記のいずれかも含め、いかなる特定の実施形態にも限定されないものとする。
以下の例はこの特定実施例を示すよう設けたものであるが、この場合も当該技術内容の範囲は以下の例あるいは実施形態に限定されない。
例2:
この例は、上記の、例1からの入力及び長さ情報を用いるものである。
Figure 0004065425
上記のように、ポインタ’(3:0)は多重化装置チェーン710の「sel」値として用いられる。多重化装置チェーン710の出力信号は、図9で表されたように再配列された、可変長符号入力信号である。
図9はポインタ’(3:0)=sel=12について再配列された、多重化装置チェーン710からの可変長符号を示すものである。多重化装置チェーン710からの再配列された可変長符号のビットはその後、イネーブル・ビットに応じて、バッファの上位半分又は下位半分に書き込まれる。イネーブル・ビット、ここではイネーブル(31:0)、は少なくとも部分的には、先行するポインタ値、ポインタに基づく。これはバッファ、ポインタ(3:0)=31への第1の書き込みで、イネーブル(31:16)は1なので、イネーブル(15:0)は0となる。これは図10に示される。
上記の入力信号においては、入力ビット2は1であり、その他のビットは0である。イネーブル・ビットはバッファ位置31から16に書き込むことを可能にする。バッファ(31:16)は書き込まれ、バッファ(15:0)は再循環される。図11におけるバッファの網掛けの部分は陳腐化されたデータ、または1でも0でもよいデータである。
ビットがバッファにクロックされた後、イネーブル・バスは、バッファ位置31、30、及び29、及び、ビット・パックされる現時の可変長符号がバッファの下位半分から循環され、16ビット長までであった場合に、有効データがあったかもしれない、バッファ位置12から0まで、への書き込みをマスク・アウトするよう更新され、上記バッファ位置31、30、及び29は、上記更新後有効データを保有するようになる。イネーブル・ビット値は図12に表される。書き込み可能にされたバッファ位置は1によって表される。
Figure 0004065425
ポインタ’(3:0)=sel=1における、再配列された可変長符号ビット位置は図13に示される。図12に上記のように表されるように、イネーブル・ビットは先行して書き込まれた有効データを保護するよう、バッファ位置31、30、29への書き込みをマスクする。バッファ位置28から14までには、図14に表されるように、可変長符号ビット10乃至0と、15乃至11が書き込まれる。網掛けの部分は1でも0でもないデータを表す。
ビットがバッファにクロックされた後、イネーブル・バスはバッファ位置31:18への書き込みをマスク・アウトするよう更新され、上記バッファ位置31:18は以降上記(1)及び(2)からの有効データを保有する。イネーブル・ビットは図15に表される。
Figure 0004065425
図16及び17は上記(3)における、再配列された可変長符号ビット及びバッファ内容を表すものである。ポインタ’(4)は1から0に遷移するので、バッファ(31:16)の有効信号を引き起こす。イネーブル・ビットは、図18に表されるように、(4)の実施中におけるバッファ(31:16)への上書きを妨げるよう、更新される。
Figure 0004065425
図19及び20は上記(4)における、再配列された可変長符号ビット及びバッファ内容を表すものである。バッファ(31:16)は、有効な内容が先行して出力されたので、現時点では1でも0でもない状態である。したがって、図21に表されるイネーブル・ビット値はバッファ位置0及び31:17に書き込むことを可能にする。バッファ(16)も陳腐化されたデータを含むが、この実施例においては、一度に16ビットまでが書き込まれるので、ここでは、イネーブル16ビットウィンドウを保持することによって、イネーブルする論理は簡素化される。当然、当該技術内容の範囲はこの点において限定されるものではない。
Figure 0004065425
図22及び23は(5)における、再配列された可変長符号ビット及びバッファ内容を表すものである。ポインタ’(4)は0から1に遷移するので、バッファ(15:0)の有効信号を引き起こす。パッキングはこのようにして続けられる。
この特定実施例におけるもう1つの課題はバッファからの書き込みに関する。この特定例は16ビット出力バスを前提とするが、当然、当該技術内容の範囲はこの点について限定されるものではない。図24は、32ビットバッファの出力信号が、この実施例においては、ポインタの上位ビットによって判定されることを表すものである。ポインタがバッファの下位16ビットにある場合、ポインタのビット4は0に等しくなり、それから上位16ビットが出力信号としてイネーブルされる。ポインタがバッファの上位16ビットにある場合、ポインタのビット4は1に等しくなり、それから下位16ビットが出力されるようイネーブルされる。上記に示したように、この特定実施例においては、データ出力有効ビットは、この実施例においては16ビットの境界を横断した場合に生成され、該場合はポインタ・ビット4の遷移状態によって合図される、若しくは示される。これは、例えば、ビット(4)と、ビット(4)の一クロック・サイクル遅延されたバージョンとに適用される排他的論理和演算によって検出し得る。当然、これは種々のアプローチによって実施し得、当該技術内容の範囲はこの特定のアプローチ案に限定されないものとする。
多重化装置の対称性は、更に、上記にて言及したように、この実施例におけるハードウェアを削減する機会を設けるものである。一般に、16−1選定動作を実行する16の多重化装置は4−1選定動作を実行する80の多重化装置を用いて実施し得る。しかしながら、この特定実施例における上記アーキテクチャの対称性は、上記多重化装置を4−1選択が実行される32の多重化装置に削減するものである。この実施例において、上記削減は入力データの連続性によって可能になる。多重化装置は入力信号を、しかしながら異なった順序にて、受信する。
図25は4−1多重化装置を用いた16−1選択機能を有する4つの多重化装置の従来の実施形態を表すものである。次に表1、及びsel=12の行によれば、図25における多重化装置の出力信号、すなわち、m15、m11、m7、及びm3はsel=1100について図9に表したイネーブル・ビットと整合する。表1及び図25は、この特定実施例においていかなるsel値についても整合する。
しかしながら、図26は4−1多重化装置を用いた4つの16−1多重化装置を実施するアプローチを表すものである。この実施例において、M15、m11、m7、及びm3は多重化装置一式又は一構成から生成されるので、多重化装置数が図25に表された、20から、図26に表された、8に削減される。この多重化装置共有による実施形態は更に、例えば、この可変長ビット・パッキング装置の実施例の実施に利用される残りの3組の多重化装置に利用し得る。図26は、図25に示された例、sel=1100を用いる。当然、又、これは単に一例であって、当該技術内容の範囲はこの特定例、又は実施形態に限定されるものではない。
上記のように、当該技術内容による可変長ビット・パッキング装置の実施例の範囲はこの対称性を利用することに限定されるものでない。しかしながら、当該技術内容の範囲は上記の実施例に限定されるものではないが、従来のアプローチよりも低いゲート数が達成される可能性があり得ることが明らかにされた。同様に、少なくともいくつかの実施例はクロック毎に所定の長さのビット列をパックし、クロック・サイクル毎に書き出す機能を含み得る。同様に、少なくともいくつかの実施例については、所望のサイズにこの長さをスケール・アップ、又はスケール・ダウンする機能も特徴となり得る。更に、所望のように、小エンディアン・フォーマット、又は大エンディアン・フォーマットを二者択一的にサポートし得、例えば、JPEG、CCITTグループ3及びグループ4、MPEG、GZIP、等の可変長符号化をサポートするよう利用し得る。当然、当該技術内容の範囲はこれらの圧縮アプローチのみを利用する、若しくは実施することに限定されるものではない。同様に、少なくともいくつかの実施例は、所望のように、複数の目的を持ち得る。
更に、可変長ビットレート・パッキング装置の実施例は、当該技術内容によって、別個のビット列の選択された部分をパックする方法を実施するのに用い得る。例えば、当該技術内容の範囲は、この点において限定されるものではないが、図7や8に示された720のような、多重化装置はバッファにパックされる別個のビット列の所望の部分を選択するよう利用し得る。同様に、710のような、多重化装置は、特定のバッファ位置においてパックする選択された部分のビットを配列するよう利用し得る。そのような実施形態においては、パッキングのためにビットを配列する多重化装置は、少なくとも部分的には、ポインタ(3:0)のような、バッファの有効な内容をトラッキングするバッファ位置ポインタによって制御し得るが、このような場合も、当該技術内容の範囲はこの点において制限されるものではない。同様に、パックされる所望の部分を選択する多重化装置は、少なくとも部分的には、上記のイネーブル・ビットのような、1組のマスキング・ビットによって制御し得る。
特定実施例がここに説明されたが、当然、当該技術内容の範囲が特定実施例又は実施形態に限定されるわけではない。例えば、一実施例がハードウェアにおいて、別の実施例が、例えば、ファームウェア、又はハードウェア及びファームウェアの何らかの組み合わせにおいてあり得る。同様に、いくつかの実施例は、ソフトウェアも実施形態の一部として含み得る。更に、例えば、データ圧縮システムのような、コンピュータ・システム、又はプラットフォームは、上記のように、例えば、別個のビット列の選択された部分をバッファにパックする方法の実施例のような、実行される当該技術内容による方法の実施例をもたらし得る。
ここでは当該技術分野の特定の特徴を示し、説明したが、当業者においては多くの修正、置換、変更及び均等物が当業者によって今からもたらされるものである。したがって本発明の特許請求の範囲は、当該技術内容の真の精神の範囲におさまる、そのような修正及び変更を全て網羅するよう企図されたものであることを特筆する。
バッファをビット・パックする例である。 バッファをビット・パックする例である。 バッファをビット・パックする例である。 バッファをビット・パックする例である。 バッファをビット・パックする例である。 バッファをビット・パックする例である。 バッファをビット・パックする例である。 可変長ビット・パッキング装置の実施例を示した図である。 図1から図7までの例の詳細を示した図である。 図1から図7までの例の詳細を示した図である。 図1から図7までの例の詳細を示した図である。 図1から図7までの例の詳細を示した図である。 図1から図7までの例の詳細を示した図である。 図1から図7までの例の詳細を示した図である。 図1から図7までの例の詳細を示した図である。 図1から図7までの例の詳細を示した図である。 図1から図7までの例の詳細を示した図である。 図1から図7までの例の詳細を示した図である。 図1から図7までの例の詳細を示した図である。 図1から図7までの例の詳細を示した図である。 図1から図7までの例の詳細を示した図である。 図1から図7までの例の詳細を示した図である。 図1から図7までの例の詳細を示した図である。 図8の実施例の特徴の詳細を示した図である。 4つの16x1多重化装置の一実施形態を示した図である。 4つの16x1多重化装置の別の実施形態を示した図である。

Claims (4)

  1. 装置であって、
    バッファと、
    マスクする複数の多重化装置であって、該マスクする複数の多重化装置に入力される信号をマスクする複数の多重化装置と、
    配列する複数の多重化装置であって、該配列する複数の多重化装置に入力される信号を配列する複数の多重化装置とを備え、
    前記マスクする複数の多重化装置に入力される選択信号、及び前記配列する複数の多重化装置に入力され選択信号が、可変長の別個のビット列の部分を前記バッファにおいて配列及びパックするように、前記バッファ、並びに、前記マスクする複数の多重化装置及び前記配列する複数の多重化装置が相互接続されることを特徴とする装置。
  2. 請求項1記載の装置であって、前記バッファの有効内容をトラッキングするバッファ位置ポインタによって少なくとも部分的に制御されるように、前記配列する複数の多重化装置が相互接続されることを特徴とする装置。
  3. 請求項1記載の装置であって、1組のマスキング・ビットによって少なくとも部分的に制御されるように、前記マスクする複数の多重化装置が相互接続されることを特徴とする装置。
  4. 請求項1記載の装置であって、共通の選択信号によって制御されるように、前記配列する複数の多重化装置が相互接続されることを特徴とする装置。
JP2003524125A 2001-08-22 2002-07-18 可変長符号化パッキング・アーキテクチャ Expired - Fee Related JP4065425B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/935,524 US6653953B2 (en) 2001-08-22 2001-08-22 Variable length coding packing architecture
PCT/US2002/023083 WO2003019789A1 (en) 2001-08-22 2002-07-18 Variable length coding packing architecture

Publications (2)

Publication Number Publication Date
JP2005501463A JP2005501463A (ja) 2005-01-13
JP4065425B2 true JP4065425B2 (ja) 2008-03-26

Family

ID=25467295

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003524125A Expired - Fee Related JP4065425B2 (ja) 2001-08-22 2002-07-18 可変長符号化パッキング・アーキテクチャ

Country Status (6)

Country Link
US (1) US6653953B2 (ja)
EP (1) EP1419581A1 (ja)
JP (1) JP4065425B2 (ja)
CN (1) CN100392983C (ja)
TW (1) TWI264202B (ja)
WO (1) WO2003019789A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4411691B2 (ja) * 1999-06-30 2010-02-10 パナソニック株式会社 非水電解液二次電池および非水電解液二次電池の充電制御システムおよびこれを用いた機器
US6636167B1 (en) 2000-10-31 2003-10-21 Intel Corporation Method of generating Huffman code length information
US6563439B1 (en) 2000-10-31 2003-05-13 Intel Corporation Method of performing Huffman decoding
JP3415126B2 (ja) * 2001-09-04 2003-06-09 三菱電機株式会社 可変長符号多重化装置、可変長符号分離装置、可変長符号多重化方法及び可変長符号分離方法
US20040071171A1 (en) * 2002-08-06 2004-04-15 Ali Ghiasi Natural data ordering of a multiplexed high speed bit stream
KR100975062B1 (ko) 2003-12-27 2010-08-11 삼성전자주식회사 가변길이 부호화 장치 및 가변길이 부호화 방법
US20060123194A1 (en) * 2004-12-02 2006-06-08 Claudio Alex Cukierkopf Variable effective depth write buffer and methods thereof
US20060130352A1 (en) * 2004-12-20 2006-06-22 Index Measuring Tape Co, Ltd. Measuring tape for tape rule
US8949120B1 (en) 2006-05-25 2015-02-03 Audience, Inc. Adaptive noise cancelation
US9640194B1 (en) 2012-10-04 2017-05-02 Knowles Electronics, Llc Noise suppression for speech processing based on machine-learning mask estimation
US9236874B1 (en) * 2013-07-19 2016-01-12 Audience, Inc. Reducing data transition rates between analog and digital chips
US9536540B2 (en) 2013-07-19 2017-01-03 Knowles Electronics, Llc Speech signal separation and synthesis based on auditory scene analysis and speech modeling
CN106797512B (zh) 2014-08-28 2019-10-25 美商楼氏电子有限公司 多源噪声抑制的方法、系统和非瞬时计算机可读存储介质
US10775206B2 (en) 2016-05-24 2020-09-15 Quicklogic Corporation Sensor hub batch packing

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR17499E (fr) * 1911-06-29 1913-09-20 S T A R Systeme De Traction Auto-Regulateur Cessio Procédé pour le démarrage et le réglage de la vitesse des moteurs électriques alimentés par du courant continu, réalisant les couplages série et parallèle et permettant en outre la récupération au freinage, ainsi que son mode de réalisation pratique
US5119092A (en) * 1988-11-22 1992-06-02 Sharp Kabushiki Kaisha Apparatus for encoding, decoding, and storing waveforms
US5321398A (en) 1991-09-27 1994-06-14 Sony Corporation Variable length coder and data packing circuit
JP2827714B2 (ja) * 1992-06-09 1998-11-25 国際電信電話株式会社 ビデオ信号の高効率セル化方式
US5499382A (en) 1993-09-20 1996-03-12 Nusinov; Eugene B. Circuit and method of bit-packing and bit-unpacking using a barrel shifter
JPH09171038A (ja) * 1995-12-19 1997-06-30 Toshiba Syst Technol Kk 周波数検出方式
JP2870515B2 (ja) * 1996-12-27 1999-03-17 日本電気株式会社 可変長符号化装置
FR2772221B1 (fr) * 1997-12-10 1999-12-31 Alsthom Cge Alcatel Trame de transmission de donnees de longueur variable, et dispositifs d'emission et de reception de telles trames
US6125406A (en) * 1998-05-15 2000-09-26 Xerox Corporation Bi-directional packing data device enabling forward/reverse bit sequences with two output latches
US6065066A (en) 1998-06-02 2000-05-16 Adaptec, Inc. System for data stream packer and unpacker integrated circuit which align data stored in a two level latch
US6195026B1 (en) * 1998-09-14 2001-02-27 Intel Corporation MMX optimized data packing methodology for zero run length and variable length entropy encoding
AU1878299A (en) * 1998-12-10 2000-06-26 Nokia Networks Oy Packet transmission method and apparatus
US6356212B1 (en) * 2000-02-18 2002-03-12 Sarnoff Corporation Single clock reference for compressed domain processing systems

Also Published As

Publication number Publication date
CN1545765A (zh) 2004-11-10
JP2005501463A (ja) 2005-01-13
US20030038736A1 (en) 2003-02-27
US6653953B2 (en) 2003-11-25
CN100392983C (zh) 2008-06-04
TWI264202B (en) 2006-10-11
EP1419581A1 (en) 2004-05-19
WO2003019789A1 (en) 2003-03-06

Similar Documents

Publication Publication Date Title
CN114556956B (zh) 使用旁路子流和经熵编码子流的低时延编码
JP4065425B2 (ja) 可変長符号化パッキング・アーキテクチャ
US6798833B2 (en) Video frame compression/decompression hardware system
US5220325A (en) Hierarchical variable length decoder for digital video data
US6215424B1 (en) System for variable length codeword processing suitable for video and other applications
US7343542B2 (en) Methods and apparatuses for variable length encoding
US6744928B1 (en) Variable-length decoding method and apparatus employing code length and a recording medium
US6389171B1 (en) Method and apparatus for a digital video cassette (DVC) decode system
JPH1075181A (ja) ハフマン・デコーダ
JP3235555B2 (ja) 信号復号装置及び信号復号方法並びに信号復号処理をコンピュータに行わせるためのプログラムを記録した記録媒体
JPH1065549A (ja) 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法
US6313766B1 (en) Method and apparatus for accelerating software decode of variable length encoded information
US6781528B1 (en) Vector handling capable processor and run length encoding
JP4100836B2 (ja) 画像処理装置
US6707398B1 (en) Methods and apparatuses for packing bitstreams
Shah et al. A chip set for lossless image compression
US7256719B2 (en) Digital data decompression implemented in a field programmable array device
JP2004501531A (ja) ビデオ・データをランレングス符号化するための方法と装置
US8068681B2 (en) Method and system for pipelined processing in an integrated embedded image and video accelerator
H’ng et al. Golomb coding implementation in FPGA
US6707397B1 (en) Methods and apparatus for variable length codeword concatenation
KR100487411B1 (ko) 가변 길이 디코더
JP3088785B2 (ja) 可変長符号の復号装置
An et al. A video encoder/decoder architecture for consumer-use HD-DVCRs
JP3622473B2 (ja) 可変長符号復号装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070109

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070409

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070416

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070509

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071106

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: 20071204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080104

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120111

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130111

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130111

Year of fee payment: 5

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

LAPS Cancellation because of no payment of annual fees