JPH03503707A - 統計的にコード化されたデジタル・データを復号するシステム - Google Patents

統計的にコード化されたデジタル・データを復号するシステム

Info

Publication number
JPH03503707A
JPH03503707A JP1504354A JP50435489A JPH03503707A JP H03503707 A JPH03503707 A JP H03503707A JP 1504354 A JP1504354 A JP 1504354A JP 50435489 A JP50435489 A JP 50435489A JP H03503707 A JPH03503707 A JP H03503707A
Authority
JP
Japan
Prior art keywords
data
value
signal
bit
values
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.)
Granted
Application number
JP1504354A
Other languages
English (en)
Other versions
JP2808156B2 (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 JPH03503707A publication Critical patent/JPH03503707A/ja
Application granted granted Critical
Publication of JP2808156B2 publication Critical patent/JP2808156B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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
    • 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
    • H03M7/425Conversion 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 for the decoding process only

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 可変長コード化されたデータを復号 するための装置 この発明は可変長コード化されたデータをデコートするための回路に関するもの で、この可変長コードか、データと共に送られるパラメータによって規定される ものである。
デジタル・データ処理の分野における最近の進歩により、比較的に多量のデジタ ル・データを転送したり処理したりてきるシステムに対する要求が発生した。し かし、このデータを、たとえば標準の電話線を介して能率良く伝送したり或いは 比較的小さなメモリに能率的に記憶させることかできるように、圧縮することも 必要である。
比較的多量のデータを転送し処理することか必要なデジタル・データ処理システ ムの一例は、ビデオ信号処理システムである。たとえば、各線か256個の8ビ ツト・ピクセル値を含んでいる240本の線から成る画像を生成するシステムで は、各画像フレーム烏り61440バイトを必要とする。表示速度を毎秒30フ レームとすると、このシステムのデータ率は毎秒1,843.ZOOバイトであ る。
ビデオ信号処理システムにおける1フレーム当りのバイト数は、そのデータをコ ート化することによりて減少てきることは周知である。ビデオ・データのコート 化システムは、たとえばここに引用する米国特許第4,125,861号「ビデ オ信号のコート化法」に開示されている。この米国特許に開示されているシステ ムては、先ず差分(Differential)パルスコード変調(DPCM) 技法を利用して、ビデオ・データを圧縮し、次に、統計的により高頻度で生じる データ値には短いコードワードを割当て発生頻度があまり高くないデータ値によ り長いコードワードを割当てる形式の可変長コードを使フてコート化している。
この出願では、上記の形式のコード化を統計的コート化と呼ぶ。
データを統計的にコード化する一つの方法は、ハフマン・コードの様な適切な可 変長コードを使用することである。このコードを使用するには、伝送すべきデー タに発生頻度の最も高いものから最も低いものへと順番をっけ、たとえばここで 引用する図書エイブラムソン(N、Abramson)氏著「情報論理とコート 化(Information TheoryAnd Coding) Jマグロ ウヒル社1963年発行の第77〜85頁に記載されているアルゴリズムを使用 してハフマン・コートを発生させる。この方法を使用するときには、データ値と コート値の間の対応を与えるテーブルをコート化されたデータと共に伝送して、 データの復号システムかそのコートワードを対応するデータ値に翻訳できるよう にする。コート化されたデータと共にこの翻訳テーブルを伝送または記憶せねば ならぬというこの余分な手間は、比較的小量のデータしか伝送または記憶しない 場合にはこのコート化技法を非実用的なものにしてしまう。
5  データを統計的にコード化する第2の方法は、所定のアルゴリズムに従ワ てデータを処理して、既知の分布に大体近似して統計的に値か分布しているデー タを得ることである0次いでこのデータは、既知の分布に合わせたコードを使っ てコート化し、伝送し、上記のデータコート化に使用したテーブルとは逆の固定 テーブルを使って復号する。
上記した米国特許第4125861号はこの様な形式のシステムに間するものあ る。この米国特許に記載されているシステムを使って行なわれるDPCM処理に よると、0値にピークを有しこのピークの両側に大体指数的な形で分布する値を 有するデータを生成する。このデータは、次に、読取り専用メモリ(ROM)に 記憶されているプリセット・テーブルを使って統計的にコート化される。
続いてこのデータは受@機に伝送され、そこでROMに記憶されている逆テーブ ルを使ってデータか復号され上述した形式のシステムは、入力データを大きく圧 縮するか、この圧縮されたデータと共に翻訳チーフルを伝送する必要か無いとい う利点を有する。しかし、この形式のシステムには、達成てきる圧縮のレベルか 、より高度の統計的コート化法を使用して得られるもの程に望ましいものとなら ないという不利もある。
データのコード化および復号システムとして、種々の統計的パターンを呈しかつ コート化されたデータと共に広範な翻訳テーブルを供給する必要のない、能率的 なデータコート化を行ない得るようなものを実現できれば有利である。
発明の1!要 この発明は、統計的コードを記述する複数のパラメータ値を含んでいる統計的に コード化されたデータを復号する回路に実施される。この回路は、パラメータ値 を保持するメモリと、コード化データに応答して、パラメータ値をコート化デー タから引出された値と選択的に組合わせて復号されたデータ(復号データ)を生 成する回路とを含んでいる。
図面の概略説明 第1図はこの発明の適用したビデオ信号処理システムのブロック図である。
第2図、第3A図、第3B図および第3C図は第1図に示したビデオ信号圧縮器 20の動作説明に利用する値のリストおよび図である。
第4A図と第4B図は、第1図に示す圧縮されたビデオ信号のプロセッサ30の 動作説明に利用できるALGOL60コンピュータ・プログラム言語て記述した コンピュータ・プログラムである。
第5A図、第5B図、第5C図および第5D図は、第1図に示す圧縮された信号 プロセッサ30の動作説明に有用な値のリストおよび図である。
第6A図と第6B図は第1図に示す統計的エンコーダ40の動作説明に有用な、 ALGOLIiOコンピュータ・プログラム言語て記述したコンピュータ・プロ グラムてあ第7図は第1図に示す統計的デコーダ50として使用するに適した回 路のブロック図である。
第8図は第7図に示す統計的デコーダ回路の動作説明に有用なタイミング図であ る。
詳細な説明 以下、この発明をデジタル・ビデオ信号処理システムに関連して説明する。しか し、ここで説明する技術はビデオ信号以外の形式のデータにも適用できるもので あ図において、幅の広い矢印は複数ビット並列デジタル信号を伝送するブスを、 また線状矢印はアナログ信号または単一ビット・デジタル信号を伝送する接続を 表わすシのである。装置の処理速度に応じて信号路のあるものでは補償用の遅延 を必要とする。デジタル信号処理回路設計の専門家にとっては、与えられたシス テムの中でその様な遅延かどこに必要であるかは判っている筈であ第1図は、こ の発明の実施例を含んだビデオ信号処理システムのブロック図である。第1図に おいて、たとえばビデオカメラであるようなビデオ信号源lOはビデオ信号圧縮 器20にデジタル化された(以下、デジタル化という)ビデオ信号を供給する。
圧縮器20は、印加されたビデオ・データを任意のビデオ圧縮技法を用いて処理 する。この後に、2つの技法すなわち差分パルスコート変、31 (DPCM) アルゴリズムと2進トリー・スプリット・フィル・アルゴリズムを説明する。圧 縮器20によって生成された圧縮された(以下、圧縮という)ビデオ信号はプロ セッサ30に供給され、プロセッサ30は、この圧縮データを、特に統計的エン コーダ40によりコート化するに適した形に変形する。
統計的エンコーダ40は、この変形データを処理して、このデータの効率的なコ ートを発生させ次いてそれをコート化する。コード化された(コード化という) 変形データは伝送線45を通して統計的デコーダ50に伝送する。
伝送線45は、たとえば、エンコーダ40とデコーダ50間を結ぶビット直列形 接続でよい。
統計的エンコーダ40によって統計的デコーダに伝送されたデータは、そのデー タをコート化するのに使用した、特定コートを決定いする1組のパラメータを含 んでいる。これらのパラメータは、以下説明するように、データの復号を行なう ためにデコーダ50か使用するものである。統計的デコーダ50によって生成さ れた。この復号された(以下、復号という)データはビデオ信号プロセッサ50 に印加され1表示装置70に印加されたとき信号源10から供給された原信号に よって表わされる画像を再生する信号に変換される。
上記の概略説明は、第1図に示されたシステムのより詳細な説明の背景をなすも のである。第1図において、ビデオ信号圧縮器20、圧縮信号プロセッサ3oお よび統計的エンコーダ40は、共通のデータ・メモリ35を共用する個別のプロ グラムされたマイクロプロセッサとして、或いはメモリ35をデータ保持用にお よび1つのマイクロプロセッサをプロセッサ20.30および40の各一つとし て働くように順番に変えてコード化ビデオ信号を生成させるプログラムの保持用 に使用する単一のマイクロプロセッサとして、構成することができる。
第2図は、第1図に示す圧縮器20によって、一連の入カピクセル値DPCMコ ート化する一例を示している。
この発明のこの実施例で使用するDPCMコード化法は、前記米国特許第4,1 25,861号で使用している基本的な技法と同じである。m単に言えば、各コ ード値は供給されたピクセル値とそれ以前の全コード値の総和との間の差である 。第2図ては、信号源IOからの16個のピクセル値からたとえば4X4の画像 210が作られる。これらのビクセル値は、上記の方法を使ってコード化されて 第2図に示すDPCM圧縮データを生成する。
画像を8ビツトの2進値のシーケンスとして表わし得るようにするため、この実 施例におけるDPCMの最大値は+127であり、最小値は−127である。こ の様な限定によって得られる結果はDPCM圧縮データの最初の2サンプリンタ 値に示されている。最初のどクセル値は127に制限され、第2のピクセル値は 127に加算するとビクセル値141になるような増分である。この発明のこの 実施例で使用しているアルゴリズムは8ビツトのピクセル値を採用しているか、 より多数または少数のビットを用いてビクセル値を表わすこともできる。
多数のビデオ画像から生成したDPCMコート化データを解析した結果、DPC Mコード化ビデオ・データは一般にラプラスの統計的分布に従っていることを、 本発明者は見出した。この分布形式は、零の点にピークがあり、零よりも大およ び小の値がそれぞれその値の大きさの負の指数関数に近似した統計的分布になっ ているものである。
第3A図、第3B図および第3C図は、2進スプリツト・フィル(binary  5plit and fill)と名付けられたコード化法の概要を示してい る。一般的に下記されたアルゴリズムはビデオ信号圧縮器20によって実行され る。第1ステツプとしては、単一のビデオ・フレームを表わすピクセル・データ がプロセッサ20によってメモリ35中に記憶される。このデータは、たとえば 4列4行の矩形マトリクスとしてa成されている。この画像マトリクスは第3A 図の矩形310で表わされている。
この単純化した実例におけるビデオ画像310は上述した画像210と同じもの である。この画像はピクセルか一様なプレイ・レベルを持つものとされ(たとえ ば、とり得る255 (1のグレイ・レベルの範囲の中の、それぞれ141 、 12] 、 90および98)4個の領域(312、314,316および31 8)て構成されている。この画像のとクセル値の分布は代表的なものではない、 それは、分解された各領域にフィル値が与えられるような画像の簡単な2進トリ ー分解と、どの様にこの分解を効率的にコート化できるかを例示することを目的 としているからである。
より一般的なケースとしては、このフィル(すなわち、領域のピクセル値を表わ すコード)は、たとえばA、l+8、+Cという様な多項式で表わすことかでき る。この式で、係数Aは水平(x)方向の傾斜すなわち輝度勾配を表わし、Bは 垂直(y)方向の勾配を表わし、またCは定数すなわち領域全体を通じての一様 な輝度を表わしている。第3A図の例ては、フィルの多項式AX +B、+C中 の係数AとBはどちらも零である。
2進トリー分解は、1つの領域を2分し、次にできればその各半部を、生成され たサブ領域を充分に表わすフィル(F I LL)値が見出されるまて2分する ことによって行なわれる。
この例では、第3A図に5PLITIと付記した最初の分割(スプリット)で画 像310を相等しい2つの半部かできるように水平方向に分割する。上半部31 2は単一の値141て充分にコート化することができるが、下半部は更に分解す ることか必要である。垂直方向の分割5PLIT2により1画像の下半部を相等 しい2つの領域に分割する。その右半部は値+12によフて充分にコート化する ことかできるので、それ以上分割する必要はないか、左半部は更に水平方向の分 割5PLIT3を行なって、それぞれ値90と98によって充分に表わすことが 可能な2つの領域316と318を作ることが必要である。
第3B図と第3C図は第3A図に示された画像の2進スプリツト・フィル表示の デジタル・コード化を示している。第3E図に示された倒立トリー状構造は画像 310の連続する順次分割を示している。この構造は、末端節点でない各節点が 2つの分枝を形成するように分れているので、2進トリーと呼ぶ、このトリーの TR部節点は全画像310を表わしている。1つの領域が分割される度に2つの 節点が新たに形成される。トリーの末端節点(すなわち、分校を持)ていないも の)はその領域のフィル値でコード化されている。
第3C17は、第3B図に示すトリー構造を表わすデータ値のアレイである。こ のアレイは、この2進トリーの7個の節点とストップ・タイプ値を含む1つの節 点に対応する8列で構成され、各列はその節点を表わす4個のパラメータ(行) を持っている。第1のパラメータTYPEは、その節点か水平ター(−1)、フ ィル(0)またはストップ(2)節点であることを表わす、ストップ節点は画像 との対応か無い。これは、このアレイを使用するプログラムに対して最後の節点 の処理が済んだことを示す表示記号として供給される。第2のパラメータVAL UEは、すべてのフィル節点についてはその節点の値を1分割節点に対しては零 を保持する。最後の2つのパラメータ、LEFTとRI GHTは、アレイ中の 各入口に対する指標で、水平または垂直の分割動作に関係してそれぞれ左および 右の節点を表わすものである。フィル節点のパラメータLEFTおよびRI G HTの値は零である。
これらのパラメータLEFTおよびRIGHTの値は第3C図の最も左側の行の 数字に対応している。
2進トリーは画像を表わすために使用されるものであるから、パラメータLEF Tj5よびRIGHTはどの節点ても必要としない、それらは、この実例で圧縮 信号プロセッサ30か行な・う動作の説明を簡単化するために挙げたものである 。この2進トリーは、パラメータLEFTおよびRIGHTを使用せずにどの節 点でも他の全節点に対してその位置を明確に決定するような一組の規則に従って 、構成され輪講される。この例において、その規則は、水平または垂直の分割に よってそれぞれ作られた上側または左側の領域に対応するすべてのデータを、そ の分割を表わすデータの直後に置き1次いてその分割によって生じた下側または 右側の領域を表わすデータを入れる、ということである、これは、トリーの頂部 節点すなわち始点節点から始まってすべての末端節点に達するまで、連続する全 節点に対し・て一定の順序て行なわれる、固有の繰返し手順(プロシジャ)であ る、パラメータLEFTおよびRIGHTはこのトリー構造を表わすのに必要で ないから、これらに対してはエンコーダ40によるコート化は行なわれない。
上述のようにプロセッサ30は、DPCMデータまたは2進スプリツト・フィル ・データを統計的エンコータ40でコード化するに適した形に変換する。第6図 を参照して後述するように、この統計的エンコーダは、コード化すべき値の統計 的分布が区分的食性指数分布で近似できるときに効率的なコート化を行なう1組 のコードを使用する。DPCMコード化ビデオ・データは、一般に、両側に負の 指数分布をもつラプラス分布に近似する統計的分布を呈する。このデータを統計 的エンコーダ40をコード化するに適した形に変形するために、圧縮信号プロセ ッサ30は負の数を正の数相互間の空隙位置にマツプする。この変形は、すべて の正の数の値を2倍にし、かつ負の数の極性を変え、変えられたものの値を2倍 にしてその結果から1を差引くことによって行なわれる。このアルゴリズムは第 3B図の手順5IGN  XFORMに記述されている。第5A図はこの符号変 形操作を受けたDPCMデータの一例である。このデータは第2図に関して説明 した圧縮データの変形されたものである。
2進スプリツト・フィル・データを統計的エンコーダ40て使用に適した形に変 形することは、非常に複雑な処理である。第4A図と第4B図は、たとえば第3 C図に示された形の2進スプリツト・フィル・データをたとえば第5D図に示さ れた様な形の債のシーケンスに変形するための、ALGOL60コンピュータ言 語によるコンピュータ・プログラムである。
第4A図と第4B図に示されたコンピュータ・プログラムはその図の右余白部に 記された線番号に関連して記述されている。第4A図、第4B図、第6A図3よ び第6B図に示したプログラム中で使用されている各アレイ素子および整数変数 は、データの少なくとも9ビツトを保持するものとされ、従って+255と−2 56の間のデータ値を表わすことができる。線40で宣言されたアレイTREE は1つの画像の2進ブリツト・フィル記述を含んでいる。このアレイTREEの 中および第4A図、第4B図、第6ArXi、第6B図に示されたコンピュータ ・プログラムで使用されている他のアレイ中の素子の数は、−例に過ぎない0通 常のビデオ・データの処理にはより多数の値が必要である。
アレイTREEの一例が第3C図に示されている。このアレイ中のデータは、そ れぞれか4債のパラメータを含んでいる1024個の節点を表わしている0種々 のパラメータにアクセスするのに使用される値の呼び名は線50〜80に規定さ れている。パラメータTYPEは、水平分割、垂直分割、フィルおよびストップ に対してそれぞれ1、−1.Oまたは2である1節点の形式を示す。パラメータ VALUEはその節点に関する債である。パラメータLEFTおよびRIGHT は、水平または垂直分割動作によって発生した2つの節点を指示する、アレイT REE中へのインディクスである。これらのインディクスは第3C図の最も左側 の行の数に対応している。
線90で宣言されたアレイOUTは、このプログラムによって生成された2進ス プリツト・フィル・データのコンパクトな変形分である。
この変形用アルゴリズムの説明を簡単にするため、ビデオ信号圧縮器20と統計 的エンコーダ40はそれぞれ入力ファイルおよび出力ファイルとしてモデル化さ れている。このファイルは線110および120に表示されている。
線140から200テ宣言された手順BRANCHAVGは繰返しアルゴリズム を使用して始点節点から下方の各分割(スプリット)節点および各フィル節点へ と続く、トリーを通してステップする。トリー中の各分割節点に対して、この手 順は左右の分校節点VALUEパラメータの平均を計算し、この平均値をこのの 分割節点のVALUEパラメータに与える。
線320から540で宣言された手順RMINUS  Lは手順BRANCHA VCで使用したアルゴリズムと同じアルゴリズムを使フてトリーを通して繰返し ステップし、各分割節点に対して左右の分枝節点のVALUEパラメータの差を 計算してその結果をその分割節点VALUEパラメータとして記憶する。
線550カら620テ宣言された手順5IGN  XFORMは前述の符号変形 動作を行なう、それは1通過するすべての正の値の債を2倍しまた負の値の符号 を変更し、この符号変更された値を2倍し、それから1を差引く。
この2進トリーのコンパクトな変形分を発生する上記プログラムは、線660に その最初の実行可能ステートメントを持っている。この実効可能ステートメント によって、ビデオ信号圧縮プロセッサ20からアレイTREEか取出される。上 述のように、このアレイは第3C図に示されたアレイと同じ形をしている。
線700に示されたこのプログラム中の次のステップは、始点節点(アレイTR EEのインディクスO)用の手順BRANCH−AVCを呼出すことである。こ の呼出しは、この2進トリ一全体を通じてトレースし、末端節点から上方に向っ て始点節点まで動作し、各分割節点の左右の分枝節点のVALUEパラメータの 平均値をその分割節点のVALUEパラメータとする。この変形は、第5B図に 例示されており1図中かぎ括弧内に記入した値は、各分割節点のVALUEパラ メータとされる分校節点の平均値である。
分枝の平均値を計算した後、このプログラムは線番号710において、始点節点 の分枝平均値を128から差引いてその結果を変数ZEROAVGに保管する。
線750における、このプログラムの次のステップで、手順R−MINUS   Lを呼出して各分割節点における左右の分枝節点のVALυEパラメータ間の差 を計算する。これらの差値は分割接点の各々のVALUEパラメータに記憶され る。
線790から930の、このプログラムの最終部分は、アレイTREE中のデー タを、2進スプリツト・フィル・データを表わす、第5D図に示されているよう な直列ストリーム値に変換することである。プログラムのこの部分では、始点節 点のフィル値、すなわちZEROVALUEは、アレイOUTのインディクス零 に置かれる。
次に、アレイTREE中の各節点が順次処理される。各節点に対するTYPEパ ラメータはアレイOUTに付加され、またその接点が末端節点でない場合にはF ILL値も付加される。末端節点はフィル値0を持つようにさ   ′れる。こ の直列ストリーム値中にはパラメータLEFTおよびRIG)ITは含まれてい ない、このアレイOUTに付加されている6値は符号変更を受ける。
線925で、ステートメントは、負のストップ値を挿入することによってアレイ OUTにおける有効データの終りをマークする。すべての節点がアレイOUTに 付加されると、ステートメント930はアレイOUT中のデータが統計的エンコ ーダ40に転送されるようにする。
発明者は、上述した動作で、ビデオ画像の2進スプリツト・フィル分解を表わす データを発生し、このデータは大体区分的負性指数分布に統計的に適合すること を確認した。
変形DPCMおよび2進スプリツト・フィル・データを生成するのに使用される このデータ変形アルゴリズムは、データか複号された後、容易に反転させて原デ ータを得ることかできる。
第6A図と第6B図に示されたプログラム・リストは、統計的エンコーダ40が 1組のデータ値の可変長コードを発生するするときの、および伝送のためにその データ値をコード化するときの、動作を例示するものである。線1010で宣言 されているアレイINは第4A図と第4B図に示すプログラム中で使用されてい る71400丁に相当する。このアレイは圧縮信号プロセッサ30から与えられ た最高2048個までのデータ値を保持する。また線101Oで宣言されたアレ イ5TATは、アレイIN中の種々のデータ値のヒストグラムを表わす値を保持 する。
線1015て宣言されたファイルCOMP  PROCESSORは圧縮信号プ ロセッサ30へのチャンネルであり、線1020”t’宣言c5tした7yイル XMIT  CHANNELは統計的デコーダ50への伝送チャンネル45であ る。
線1025で宣言された列(ストリング)変数DATA−OUTは、伝送チャン ネル45を介して統計的デコーダ50へ送られるコード化データを保持する2進 列である。線1030テ宣言された文字7L/−1’XLATE  TABLE は、アレイIN中の固定長データフードに対応する可変長コートワードを保持す る翻訳テーブルである。上記以外の宣言された変数は、説明するようなプログラ ムにおいて使用される一時記憶である。
統計的エンコーダ40についてのこのプログラムの最初の実行可能ステートメン トは線1070にある。このステートメントは圧縮信号プロセッサ30か供給す るデータを受入れる。これは第4B図の線930におけるステートメントに対応 している。圧縮信号プロセッサ30から受入れたこのデータはアレイINに記憶 される。
線1110から1170までのステートメントはアレイIN中の種々のデータ値 のヒストグラムを表わす値を発生する。これらのステートメントによって表わさ れるアルゴリズムは、アレイ5TAT中の256個の値−その1つ1つはとり得 る8ビツトのピクセル値の各々に対応している−か最初は0であるものとする。
ステートメント1120から1160に跨るWHILEループでは、アレイIN における各有効エントリイがアレイ5TATへのインディクスとして使用され、 そのインディクスにおける値は増分増加される。線1170が実行されるとき、 アレイ5TATの個々のエントリイは、アレイINで0から255の間でとり得 るデータ値の各々の発生回数を含んでいる。アレイINにおける有効な値の全数 を可変TOTAL  C0UNTに記憶される。
アレイINにおいてデータのコード化に使用される特定の可変長コードを表わす パラメータは、第6A図のプログラムの線1210から1380におけるステー トメントに記述されているアルゴリズムを使用して、アレイ5TATにおける値 から発生される。
それらのステートメントによって構成されるアルゴリズムを理解するためには、 先ず、このシステムで使用される可変長コードの形式を説明することて有効であ る。
このコード形式は多数のレベルを有するものとして説明することかできる、各レ ベルは、そのレベルの各コートワードの起点て生ずる2進値のシーケンスである プレフィックスによって、および共通のプレフィックスを持ったコート値の数で ある母集団(ポピユレーション)によって規定される。この発明のこの実施例で 使用される可変長コートの形式についていえば、最初のものを除く各プレフィッ クスは連続した2進値lのシーケンスを含み、最後のものを除くすべてのプレフ ィックスは2進値0で糾っている。従って、5レベルの可変長コートのプレフィ ックスは、たとえば次の表1で規定される。
表     1 この実施例で使用される、統計的コートの各レベルの母集団は常に2の!1数乗 値である。異なるレベルの母集団値はそのデータの統計的分布に依存するもので ある。
この実施例で行なわれているように、レベルはlと128の間の相異なるコート 値を表わすコード値を含んでいる。与えられたレベルの母集団の側々の項は、そ のレベルの母集団が2′″てあれば、Nビットの無符号2進敢である0個々のコ ード値は、そのレベルの母集団中のそのインディクスを、そのレベルのプレフィ ックスに連結することによって生成てきる。たとえば、表2のレベルおよび母集 団パラメータで表わされるコートは、表3に示されている。
表        2 表        3 統計的エンコーダ40によって生成されたコートの形式は、一般に1発生し得る 各データ値に対して長さの異なるコードを使用している前述した米国特許第41 25861号て使用しているコードよりも一層効率的であるが、ノX7マン・コ ードのような最適コードよりも効率的てない。
統計的エンコーダ40に印加されるデータの負の指数分布をしていると、生成さ れたコードの効率は実質的に最適コードと同しである。この生成コードは、各レ ベルで同じ母集団を有し、また発生可能性のあるすべてのデータ値を表わす充分 な数のレベルを持っている。
上述したアルゴリズムによって生成されたデータは大体において負の指数分布と 一致するものとされているが、個々の画像を表わすデータに対して最良といわれ るものは、大体単調に減少する統計的分布に従うものである。統計的エンコーダ 40によって生成されるコードは、比較的良好な効率でこの形式のデータをコー ド化する。
その理由は、そのコードが実際のデータ分布を区分的指数分布としてモデル化し ているからである。しかし、この実施例では相異なるレベルの母集団は異なって おり、2の整数乗値である。ハフマン・コートでは相異なるレベルの母集団か2 の整数部である必要はない。
上述したコートの説明を考慮して、特定のコートを生成するためのパラメータを 選択するアルゴリズムを次に説明する。線1210において、アレイ5TATへ のインディクスとして使用される変数Iと、アレイTABLEへのインディクス として使用される変数LEVELを、0にセットする。線1243〜】246に おいて、もし与えられた値の確率が0であればIFステートメントはNに最大値 7を与える。このステートメントは、不当結果を生成する式L OG 2 (0 )の数値を求めることを阻止する。線I240のステートメントは、アレイ5T ATの1番目の入力の確率を計算して、この確率値を突変11[PROB中に記 憶させる。この値Iの確率は、値I(すなわち、5TAT[I])を有するデー タ値の数をデータ値の総数(すなわち、ToゴAL−COUNT) で除したも ノニ等しい、線1250において式−LOG2 (PROB)の整数部をまたけ 減らし、その結果は変数Nに指定される。線1255と1263におけるステー トメントは、ステートメント1250によって生成された値が負または7より大 であるときは、それぞれ、0または7の値を変数Nに指定する。
変INに指定された値はアレイINにおける値Iの統計的重みを表わす。このア レイINで債■が比較的大きな発生回数で生ずると、Nの値は比較的小さく、ま た値Iが比較的少数回しか発生しないとNの値は比較的大きい、たとえば、もし lか0に等しくアレイIN中の値の25パーセントのものが0てあれば、Oに等 しい1に対するNの値は1である。しかし、もしアレイIN中の値の僅か1パー セントのものか値Oを表わしていれば、Oに等しい■に対するNの値5である。
この発明のこの実施例では、ごの値Nかレベルの母集団を決定するために使用さ れる。上記のように計算された値Nは、その時のレベルの入力数の、ベースを2 とする対数の初期評価である。すなわち、その時のレベルの母集団の最初の近似 は2Hである。変数Nの値は整数であるから、Nを1だけ増加させること、すな わち線1250てその式を切上げることが望ましいことがある。Nを増加させる べきかどうかを決定するために、2Nの母集団をベースとするその時のレベルの 全入力の確率を加算して、一定値0.3820と比較する。それらの確率の総和 がこの一定値より小さければ、Nの値をまたけ増加させる。
この動作シーケンスは線1265から1316のステートメントで表わされてい る。線1320から1353に亙るIFステートメントは、その時のレベルのパ ラメータ値であるNをアレイTABLE中に入れる。この値Nで表わされる入力 数の2倍かこのテーブルを完全なものとすれば(すなわち、! + ””’ > 255であれば)、その時のそのレベルか最終のレベルである。その時のレベル の入力の数か2倍され変数■か255にセットされてループを完結する。
線1320におけるテストに失敗すれば、ELSEクローズ(線1336〜1: 153)が実行される。このクローズは、その時のレベルの母集団を2Hにセッ トし、変数Iに保持されている値を増加させてその時のレベルに含まれている入 力の後の最初の入力を指示するようにする。
線1320から1353のIFステートメントは、統計的コートに対するパラメ ータ値またはこの最終レベルとそれに先行する何れかのレベルとの間の区別をつ ける0表3に関連して前記したように、コートの最終レベルのプレフィックスは 2進数1で終り、一方他のコート・レベルのプレフィックスはすべて2進数0て 終る。最終レベルを識別する2進数1の値のシーケンスには2進数0か後続しな いから、この最終レベルは、コードワード中で最終レベル以外のレベルに対する ものと同じビット数てそれらの2倍の数の値を表わすことができる。このIFス テートメントは各レベルが計算されるとそれを検査してそれが最終レベルである かどうかを決定する。もし最終レベルであれば、その最終レベルのパラメータ値 を計算してアレイTABLEに割当て、このWHILEリーブは可変LEVEL を増分増加させることなしに完了する。
もし最終レベルでないときは、中間レベルに対する母集団値か計算されてそのレ ベルに対するパラメータ値として与えられ、WHILEループか次のレベルに対 する母集団の計算かできるように可変LENELが増分増加させられる。
線1370におけるステートメントは、TOTAL−C0UNTの値を、直前に 計算されたレベルによって表わされたアレイ5TATからの諸値の総和たけ減少 させる。
このステップは、ステートメント1220〜1380で、以前のレベルの母集団 に関係なく残ったレベルの母集団を計算するようにWHILEループを条件付け る。
WHIL、Eループ中のプログラム・ステートメントは、変数Iか256より大 きな値をとるまで統計的コードの種々のレベルに対する母集団値を計算するよう 、継続する。
この発明者は、上記のアルゴリズムは、データ値が任意の負性指数分布に合致し ているときはハフメン・コートのような最適コードのコード化効率によく近似し た可変長コートを生成し、またデータ値が大体単調に減少する統計的分布の何れ かに合致するときは比較的効率的なコードを生成することを確認した。上記のよ うに、圧縮信号プロセッサ30によって行なわれるステップは、少なくとも大体 単調に減少する統計的分布を持ったデータを生成するように設計されている。
上記した方法に代るものとして1発明者は、Nが0から増分増加するとき21′ データ値の確率をその累加総和が0.3820より大となるまで累算することに よって、満足できる可変長コートを表わすパラメータを発生し得ることを確かめ た。このテストを満足するNの値かその時のレベルに対するパラメータ値である 。このアルゴリズムは、低レベルの値に対する統計的データを無視して、可能性 のある全データ値にコート値が指定されてしまうまて継続する。
第6A図と第6B図のプログラムで表わされるアルゴリズムにおける次のステッ プは、統計的コートに対する翻訳テーブルを作ることである。翻訳テーブルを発 生させるアルゴリズムの一例が約141O乃至1610のプログラム・ステート メントに示されている。
ステートメント1410は2進列BASEに1ビツトの0値を与える。数145 0から1550までのステートメントを含むFORループは、最終レベルを除く 各レベルの翻訳テーブルを作成する。線1470において、1番目のテーブル入 力における値(すなわち、1番目のレベルの母集団のベースを2とする対数)が 、変数Nに与えられる。線1480から1520までのステートメントに亙るネ スト化されたFORループはこの変数Nの値を使って、レベルIの母集団の各項 に対する2進列値を発生させて、この文字列値をアレイXLATE  TABL E中の連続した位置に入れる。特定レベルの特定項に対して生成されるこの文字 列値は、レベル■の母集団における項のインディクスを表わしているNビットの 2進値を変数BASE中に保持されているプレフィックス値に連結することによ って得られる。この動作によって発生されるコード値は、より上位ビット位置に おいて可変BASE中に保持されている値とより低位ビット位置におけるインデ ィクスを表わす値とを持っている。
ステートメント1530は、MSB位置で変数BASEによって保持された値に 1ビツトの2進数1の値を連結することによって、変fiBAsEに与えられた 値を変更する。この値は次のレベルに対するプレフィックスである。これは次の レベルのコードワードを発生させるために使用される。
線1555乃至161(lにおけるプログラム・ステートメントは、コードの最 終レベルに対する翻訳テーブル久方を生成する。ステートメント1550は、変 数RASHに対して成る値を与える。この値はLEVEL−12進数1の値の文 字列である。これは、2 LEVEL −1の値に相当する。線1570から1 610に跨るFORループは、最終レベルの母集団の各入力のインディクスを表 わしているNビットの2進値を文字列変数RASHに保持されているプレフィッ クス値に連結することによって、最終レベルに対するコードワードを形成する。
統計的エンコーダ40に対するプログラムの最終部は。
そのプログラムの他の部分によって発生させられた統計的コートを使)て、アレ イIN中のデータを翻訳する。
線1650におけるステートメントは、アレイINへのインディクスとして使用 される変数■に値0を与える。2進列変数DATA  OUTには線166oの ステートメントによって空白値か与えられる。線167o乃至1710のステー トメントは、この2進列変数DATA  OUTにアレイTABLEの16個の 8ビツト入力を付加する。それらの値は、コート・ストリームから固定長データ 値を再生するための統計的デコーダ50か使用するパラメータである。
アレイTABLEから得られるパラメータ値は、2のパラメータ値乗として(す なわち、対応するレベルの母集団として)アレイ中に記憶される。これらの値は 、ビットの桁順を反転させてその値のLSBll−最初に文字列DATA  O UTに入れ、MSBをその文字列に最後に入れるように働く関数RBSTRI  NGを用いて、2進列形に変換される。パラメータ値のこのビット順反転は、2 進列から下記する統計的デコーダ50によってパラメータ値を再生するやり方の ために、必要である。線172o乃至1743におけるWHILEループは、ア レイIN中の固定長のデータ値を対応する可変長コートワードに変換し、かつ各 コードワードをそのMSBを最初にして列変数DATA  OUTに付加する。
このプログラムの最後のステートメント1770はコード化データを伝送チャン ネル45を介して統計的デコーダ50に送る。上述したように、この伝送チャン ネルは、データ伝送の効率を改善するために統計的コード化が使用される場合に はビット・シリアル・デジタル信号を伝える導体とし、あるいはより効率的な記 憶のためにデータ圧縮に統計的エンコーダ40が使用される場合にはメモリに多 数ビット信号を伝えるブスとすることができる。第1図に示したこの発明の実施 例ては、統計的エンコーダ40と統計的デコーダ50の間の伝送チャンネルは、 ビット・シリアル・データ路である。
第7図は統計的デコーダ50として使用するに適した回路を示すブロック図であ る。第7図に示された回路は、供給されたデータを、8ビツト・データ路を介し ての記憶および処理のために8ビツト・バイトに分割する0図示された回路をそ のまま拡張した形として、16.32または64ビツトのデータを使用する、上 記と等価な回路も設計可能であることも考慮している。一般に、第7図に示した 回路は、伝送チャンネル45から受入れたデータをそのまま記憶し、また要求が あったときそのデータをそのままデコーディング(復号)回路に供給するための バッファメモリ716を持っている。このデコーディング回路はランダム・アク セス・メモリ(RAM)724を有し。
これはエンコーディング回路40で生成したコードを表わすパラメータのテーブ ルを保持する。八ツファメモリ716中のデータは、RA M 724から得ら れるパラメータ値とメモリ716によって与えられるデータから抽出した値とを 、加算器738中で合成することによって復号される。復号動作を行なう回路は 制御回路720によって制御される。
伝送チャンネル45を介して供給されるビット・シリアル信号DATAは、シフ トレジスタ710と書込みアドレス発生回路712とに供給される。この信号D ATAは、たとえば、データ再生に必要なりロック信号かデータてコート化され ている非零復帰(NRZ)信号である。この実施例て使用されている回路712 は、信号DATAに応答してこのクロック信号を再生しそれを信号DCにとして シフトレジスタ710に供給する位相ロック・ループ(PLL、図示省略)を含 んでいる。
この発明のこの実施例で使用されているシフトレジスタ710は8ビット直列入 力並列出力レジスタである。定常動作状態、すなわち信号DCKか安定化されて いる時には、この書込みアドレス発生回路712は、シフトレジスタ710を制 御して伝送チャンネル45を介して信号DATAのビット値がこのシフトレジス タ710に供給されたときそれを受入れるようにする。書込みアドレス発生回路 712は、更に、信号WLDを介してレジスタ714を制御して、レジスタ71 0に8ビツトのデータがシフト入力される度にシフトレジスタ710に保持され ていた値をロードするようにする。
レジスタ714中に保持された8ビツト値はバッファメモリ716のデータ入力 ボートに印加される。書込みアドレス発生器712は、書込みアドレス値WAD Rを発生し、かつレジスタ714か保持していた値をバッファメモリフ16中に 記憶させるようにバッファメモリ書込み可動化信号RWEをパルス的に供給する 。この書込みアドレス値WADRは回路712内蔵のカウンタ(図示なし)で発 生させることができる。
信号BWEは、また書込みアドレス発生器712によって制御回路720にも印 加されて、データ書込み動作か進行中であることを表示する。制御回路720は この信号をモニタして、データ書込み動作と干渉し合わないときにデータ読出し 動作の期間を設定する。制御回路720は、読出しアドレス発生回路718に印 加される信号RREQをパルス的に供給することによってデータ読出し動作を開 始させる。この信号は1回路718を制御して、ハッフアメモリ716に読出し アドレス値RADHを供給する内蔵タクンタ(図示なし)を増分増加させる。こ の読出しアドレス値に応じて、バッファメモリ71Gは8ビツトのデータ値を並 列入力並列出力レジスタ722に印加する。
バッファメモリ716は、別々のデータ入力ハスとデータ出力バスおよび別々の 読出しバスと書込みハスを持っているように図示されているが、単一のデータ・ バスと単一のアドレス・ハスを有するメモリも使用可能である。その様なメモリ を使用した場合には、読出しアドレス発生器718と書込みアドレス発生器71 2の出力ボートおよびレジスタ714の出力ボートを、3状態装置によってメモ リの各アドレス・ハスとデータ・ハスとに結合されるようにする必要かある。こ のメモリと共に用いるレジスタ714と回路712は、信号RWEより制御され て。
書込み動作の進行中に各バスにデータまたはアドレス値を印加しかつその他のハ スには高インピーダンスを示す、同様に1回路718は信号RRE Qにより制 御されて、読出し動作の進行中にバスにアドレス値を供給し、他のハスには高イ ンピーダンスを与える。
バッファメモリ716からレジスタ722に供給されるデータ値は、制御回路7 20によってこのレジスタ722に印加される信号ORLの立下がり(nega tiv−going)端縁と同期して、ロートされる。レジスタ722に保持さ れているデータ値はランダム・アクセス・メモリ(RAM)724と並列入力直 列出力抵抗732に印加される。
この実施例で使用されているR A M 724は、上述のように、統計的エン コーダ40が生成する統計的コードで規定されるパラメータを保持している。こ れらのパラメータ値はチャンネル45を通過して来たデータ・ストリーム中に埋 め込まれる。それは、デコーダ50で、下記のようにコート化データを再生する ために使用される。バッファメモリ716からレジスタ722にパラメータ値が 印加されると、制御回路720か信号WEをパルス的に供給して、カウンタ72 1+が供給するアドレス値によってアドレスされたメモリセル中にそのパラメー タ値を蓄積するように、RA M 724を制御する。RAM724中にこのパ ラメータ値か書込まれると、制御回路720は信号CCKをパルス的に供給して カウンタ725を制御しその値を増分増加させる。
これらのパラメータ値はRA M 724から読出されて1対のレジスタ728 と730に印加される。レジスタ728は1ビツト・レジスタであって、RAM 724から供給される。この1ビツト・レジスタに保持されている値は信号EN Dとして制御回路720に印加される。レジスタ730は、7ビツト並列入力、 並列または直列出力レジスタで、RA M 724か供給するパラメータ値の7 個のLSBを受入れるように構成されている。制御回路720から供給される信 号MSLDに応じて、新しいパラメータ値かレジスタ728と730中にロード される。レジスタ730に保持されているデータ値は、制御回路720によって 供給される信号MSHに応じてより低位のビット位置側にシフトされる。シフト レジスタ730から供給されるシリアル出力信号は信号LBで制御回路720に 印加される。
レジスタ730のこのビット・シフト能力は、データ・ストリームからコートワ ードの母集団インディクス部を抽出するのに使用される。この値が抽出されると 、レジスタ730中に保持されている2の整数乗であるパラメータ値か、そのパ ラメータ値の2進数1がこのレジスタのLSB位置をとるまで、連続的により低 位のビット位置に向けてシフトされる。すなわち、その信号LBの値が1になる までである。この値がシフトされるにつれて。
母集団インディクス値は、以下説明するように対をなすレジスタ734と735 中にロックステップ的にシフトされる。信号LBの値が1になると、このシフト 動作は完了し、母集団のインディクス値かレジスタ734と735に保持される 。
レジスタ730から供給される7ビツト並列出力値はマルチプレクサ736の1 つの入力ボートに印加される。信号源731から供給される値か0の1ビツト値 号か、マルチプレクサ735の上記1人カポ−1−てこの7ビツト値のMSB位 置に連結されて8ビツト値を形成する。マルチプレクサ736の第2の入力ボー トにはレジスタ734と735からデータ値か供給される。これらのデータ値は 、下記するように、バッファメモリ7】6により供給される統計的コート化デー タから生成されるものである。
デコーディング・プロセッサ50は統計的なコード化データを表わす8ビツト値 を要求するので、これらがバッファメモリ716から供給される。これらの値は 、制御回路720から供給される信号ORLに応して並列入力、並列出力レジス タ722中にロードされる。このレジスタ722中に保持されているこの8ビツ ト値は、制御回路720によりて与えられる制御信号03RLに応じて並列入力 シリアル出力レジスタ732に転送される。レジスタ732中に保持されている データ値は1対御回路720から供給される信号O3Hに応じて、より低位のビ ット位置に向ってシフトされる。
8ビツト・データ値の最終ビットがレジスタ732からシフト出力されると、制 御回路720から供給される制御信号0SRLに応じてレジスタ722からレジ スタ732中に新しい8ビツト・データ値がロードされる0回路720は、読出 しアドレス・レジスタ718とレジスタ722を制御して、レジスタ722から レジスタ732へ1つの値か転送されると直ちにメモリ716から新しい8ビツ ト値をロー ドする。従って、レジスタ732は信号0S)lと同期して連続的 なビット値のストリームを供給することになる。
信号O3Hは、また1ビツト・レジスタ735にも結合され、続いて直列入力並 列出力レジスタ734に結合される。レジスタ735は、レジスタ732からビ ット・シリアル出力信号を受入れる。このビット・シリアル信号は、レジスタ7 35の出力端子からレジスタ734のLSB位置へ印加され、信号O5Hに応じ てレジスタ734のより上位のビット位置へ向ってシフトされる。レジスタ73 5に保持されている1ビツト値は信号BTとして制御回路720に供給される。
レジスタ734と735に保持されている8ビツト値は、上述したようにマルチ プレクサ736の第2人力ボートに供給される。上記に加えて、レジスタ734 は、制御回路720が供給するリセット信号R5Tに応じて、そのレジスタに保 持されている値の7個のビットの各々をOにセットする。デコーディング・アル ゴリズムにより母集団インディクス値が要求されると、レジスタ734はリセッ トされ、N−1ビツト値がレジスタ732から対をなすレジスタ734と735 にシフトされる。
これらのビット値は、信号MSHによりロウツ・ステップ的にシフトされる。信 号MSHは、レジスタ730を1からN−1までカウントするカウンタとして働 くように、制御するやこの場合、Nは、レジスタ730に保持されているパラメ ータ値によって表わされるレベルの母集団の底を2とする対数て、すなわちパラ メータ値中の2進数lのビ・シト位置である。
マルチプレクサ736は、制御回路720から供給される信号MXCにより制御 されて、レジスタ730に保持されている7ビツト値と信号源731から供給さ れる値0のMSBとを、或いはレジスタ734と735に保持されている8ビツ ト値を、加算器738の1入力ボートに供給する。
加算器738の出力ボートは、8ビット並列入力並列出力レジスタ740の入力 ボートに結合され、レジスタ740の出力ボートは加算器738の第2人力ボー トに結合されている。加算器738とレジスタ740の組合せは累算器を形成し ている。この累算器レジスタ740に保持された値は、制御回路720から信号 ALDが発生供給されたときに変化する。この信号はレジスタ740を制御して 加算器738から供給される出力値を負荷するようにする。レジスタ740は制 御回路720から供給される信号ARによって値Oを呈するようにリセットされ る。
加算器738からの出力信号は、この統計的デコーダ50の出力レジスタである 8ビット並列入力並列出力レジスタ742にも印加される。制御回路720によ って与えられる出力負荷信号OLDに応じて新しいデータ値がレジスタ742に ロートされる。信号OLDはデコーダ50の出力信号で、第1図に示すようにビ デオ信号プロセッサ60に印加されて、復号データ値をデコーダ50から取出し 得ることをプロセッサ60に示す。
デコーディング(復号)プロセスを要約すると1次の通りである。エンコーダ4 0によって新しいコード・ストリームが供給されると、伝送チャンネル45を介 して与えられるデジタル−ビット・ストリームは8ビツト値のシリーズに分割さ れて、それを受入れるハ・ンファメモリ716中に記憶される。このビット・ス トリーム中の最初の16mの8ビツト値は、コートを表わしている16個のパラ メータ値である。上述のように、このパラメータ値はビット・ストリーム中のコ ードワードに対してビット反転され、従ってレジスタ710にロートされたパラ メータ値のMSBはそのレジスタのMSB位置に在る。ビット・ストリーム中の 残りのビットは可変長コードワードである。上述のように、ビット・ストリーム 中の各コードワードのビットは、より上位ビットかビット・ストリーム中で下位 ビットより前に生ずるように配列されている。この8ビツト値は、増分的に増加 するアドレス値を有するメモリセルに記憶される。こうして記憶された値は、1 6個のパラメータ値の後の最初の8ビツト値のLSB位置で開始し増分的に増加 するアドレス値を有するメモリセルを通してバッファ・メモリ716中で継続す るビット・ストリームを表わしている。
このデコーディング・プロセスにおける最初のステップは、ビット・ストリーム の先頭て生ずる16個のパラメータ値をRA M 724にロードすることであ る。最初のパラメータはアドレスOに負荷され、2番目のものはアドレスlに、 以下同様にしてアドレス15までにロートされる。RAM724に対するアトレ スイ1を発生するカウンタ726か1次に0にリセットされて、そのパラメータ 値かコート化データを復号するために順次使用されるようになる。
パラメータ値が一旦ロードされると、データのデコーディングか開始される。バ ッファメモリ716からコード化データを表わす8ビツト値か順番に読出されて シフトレジスタ732にロードされる。コードワードの始点て。
シフトレジスタ732から供給される各2進数1の値かデコーディング回路を制 御して、レジスタ730からその時のパラメータ値をレジスタ740に保持され ている累算値に加算するようにする。シフトレジスタ732から供給されるビッ ト・ストリーム中の最初のOが出て来るか、またはそのENDビット中に2進数 lを有するパラメータが出て来たとき、その時のパラメータ値で表わされたビッ ト数が、レジスタ730をビット・シフト・カウンタとしてレジスタ734と7 35中にシフト入力され、デコーディング回路は、レジスタ734と735中に シフト入力されている値を累算値に加算して復号データ値を生成するように制御 される。カウンタ726、レジスタ740およびシフトレジスタ734は次いで 、リセットされて次のコード化データ値を復号する準備をする。レジスタ734 中の値をレジスタ740中の値に加算した後、制御回路720は信号OLDを発 生させて復号された値をレジスタ742にロードする。
統計的デコーダ50の動作を、時間期間T。からT tRまて入力データ・クロ ック信号DCKの23周期に亙る時間期間を示す第8図のタイミング図を参照し て説明する。
第7図の回路の説明を簡単にするため、第7図に示さVた回路はすべて信号DC Kに同期して動作するものとする、しかし、バッファメモリ716からコード化 データを読出す回路およびデコーディング動作を行なう回路には、別々の非同期 クロ・ンク信号を使用し得るものと理解されたい0表3に示されたコードは次の 説明通りのものとする。
第8図に示された全時間期間に、コード化データの23ビツトが信号DATAと して統計的エンコーダ40から供給される。これらのビットは、信号DCKの連 続する23個の立下り部(negative−going transitio n)と同期してレジスタ710中にシフト入力される。そのデータ・ビットのう ち16個は、一度に8ビツトずつ1時間期間TアとTagの終りに生ずる信号W LDの立下り部と同期してレジスタ7】4に転送される。これらのデータ値は、 信号BWEとWADRて示されるように、それぞれ時間期間T8とT16の期間 中にバッファメモリ716に書込まれる。
第8図における信号の残りは、統計的デコーダ50かコードの最終パラメータ値 をRA M 724中にロードして、次にビット・ストリーム11011010 100を復号して3個の8ビツト2進値ooooiooiと、000oooio および00000100 (すなわち、9,2および4)を得るときの、統計的 デコーダ50の動作を示している。
16個のパラメータ値はコード化データで伝送されるか、この列ては3個のパラ メータ値だけが関係するものて、そのパラメータ値はP。χ00000100、 p。
=00000010およびpi = 10001000である。
時間期間T1の間、制御回路720は信号RREQをパルス的に供給1/て、バ ッファメモリ716から8ビツト・データ値を読出すことを要求する。この信号 RREQに応じて、読出しアドレス発生器718は、期間TI中にバッファメモ リ716に読出しアドレス値RADRを供給する0期間T、の終りに、この読出 しアドレス発生器718はその内部読出しアドレス値を増分増加させて次の読出 し動作の準備をするや印加された読出しアドレス値に応じてバックアメモリ71 6から供給される値は、期間T。
の終りに生じる制御回路720からの信号ORLの立下り部と一致して、レジス タ722に記憶される。
第8図のm個タイミング図において、時点TIにバッフアメ千す716から読出 されるデータ値は、統計的デコーダ40が信号DATAを発生させるのに使用し たコードを表わす最後の(15番目の)パラメータ値である0時間期間Tユの間 に、時点T。以前に増分増加されていたカウンタ726は、RAM724中の最 終パラメータ値のアドレス(1,E、15)を、ROM 724のアドレス入力 ボートADに供給する。また時間期間T3の間に、制御回路720は信号WEを パルス的に供給して、そのパラメータ値をアドレスされたメモリ位置に記憶する ようにRAM724を制御する。
最終パラメータ値をRA M 724中に記憶させた後、制御回路720は時間 期間T4中に信号CRを発生してカウンタ726に保持されていた値をOにリセ ットする。コード化データの最初のビットの準備をするために、制御回路720 は1時間期間T4の後半期間中に最初のパラメータ値P0を対をなすレジスタ7 28と730にロードするため、信号MSLDをパルス的に供給する。
時間期間Tsの間に、制御回路720は信号RREQをパルス的に供給して、バ ッファメモリ716から次の連続する8ビツト値を読出すことを要求する。この 値は期間T、の終りに信号ORLの立下り部と同期してレジスタ722中にロー ドされる。レジスタ722に保持されている8ビツト値は、期間T6の終りに生 ずる信号03RLの立下り部と同期してレジスタ732に転送される。
期間T6の間に、制御回路720は信号ARをパルス的に発生してレジスタ74 0中の全ビットをリセットし、累算器としての動作を始める。
期間T7の間に、制御回路720はバッファメモリ716からメモリ読出し動作 を開始し、読出した値をレジスタ722に記憶させる。またこの期間T7の間に 、制御回路720は信号OSHをパルス的に供給してレジスタ732のLSB位 置にあるビット値(すなわち、最初のコードワードして転送される。第8図のm 個タイミング図で、このビット値は2進数lである。従って、期間T7の中央で は、レジスタ735が保持している値を表わす信号BTの値はlである。
値lを有するこの信号BTに応して、制御回路720は信号MXCの値を2進数 lに変化させ、マルチプレクサ736を制御してレジスタ730からのその時の パラメータ値を、そのMSB位置にある信号源731からの2進aOと共に加算 器738に供給する。加算器738はこの値をレジスタ740か保持する0値と 加算する。この2つの値の和は1期間丁8の中央で生ずる信号ALDの立下り点 と同期してレジスタ740中に記憶される。
信号CCKは期間T7中に発生してカウンタ726に保持されている値を増分増 加させて、RAM724の出力ボートから2番目のパラメータ値Plが取出せる ようにする0期間丁。の間に、制御回路720は信号MSLDを発生してこの2 番目のパラメータ値をレジスタ728と730にロードする。更に、回路720 は信号O3Hをパルス的に発生してシフトレジスタ732を制御し1次のコード ワードの連続するビットをシフトレジスタ735に供給する。この例では、この ビット値は2進数1である。
この値lの信号BTに応じて、制御回路720は、マルチプレクサ736、加算 器738およびレジスタ740を制御して、レジスタ730に保持された2番目 のパラメータ偵p、ft既にレジスタ740に保持されていた値に加算する。こ の加算結果は、期間T9の中央で生ずる信号ALDの負向きの変化部と同期して レジスタ740中に記憶する。
この期間T、の間に、制御回路720は信号CCにを発生してカウンタ726を 増分増加させ、RA M 724にその出力ボートに3番目のパラメータp、を 生成する準備をさせる。
期間T9に、この3番目のパラメータはレジスタ7コO中にロードされ、コート 化データの次のビットがシフトレジスタ732からレジスタ735に与えられる 。この例において、1ビツト・レジスタ728に保持されている3番目のパラメ ータ値のENDビットは2進数lである。レジスタ728から供給された。2進 数lの値をもっこの信号ENDに応じて、制御回路720は信号MXCを論理0 に変化させ、マルチプレクサ736を制御してレジスタ734と735に保持さ れている値を加算器738に供給するようにする。信号ENDの値2進数lは、 また制御回路720を制御し信号R3Tを発生させて、シフトレジスタ734の 7個のビットを0にセットする。
期間T9の後半の間、制御回路720は信号MSHをパルス的に供給して、レジ スタ730に保持されている3番目のバラメー゛夕偵の7g4のLSBを下位に 向って1ビツト位置シフトさせる。このモードては、レジスタ730は、シフト レジスタ732から対をなすレジスタ735と734ヘシフトされるビットの数 をカウントするカウンタとして使用される。この例では、M御回路720は、期 間Tl!の始点で2進数lがレジスタ730のLSB位置ヘシフトされるまで1 期間T、、T、。およびT I+の開信号MSHと05)fのパルスをロックス テップ的に発生し続ける。この状態になると、レジスタ730から供給される信 号LBは値が1となり、制御回路720を制御して信号O3HとMSHを2進数 Oの値に保持する0期間T12の開始点て、対をなすレジスタ734と735は 最初の可変長コードワードの母集団インディクス(すなわち、ooo。
0011)を保持する。
マルチプレクサ736は、レジスタ対734と735中の8ビツト値を加算器7 38に供給するように制御されているので、加算器738の出力値は上記の値と レジスタ740に保持されている値との和である。この和は復号されたデータ値 である。これは、期間T12の後半期間中に、制御回路720から発生する信号 OLDによって出力レジスタ742中にロードされる。
制御回路720は、この出力データ値をロードするように出力レジスタ742を 制御するとき、信号ARをパルス的に供給してレジスタ740の内容を0にセッ トする。
期間T1.の間、連続する次のコードワードの最初のビットである2進数Oはレ ジスタ735にシフトされる。レジスタ735から供給される信号BTの2進a Oは、信号ENDの2進数1の値と同し作用を持っている6期間TI4およびT 4の期間中、制御回路720は、ビット・ストリームから得られるビットをレジ スタ734と735のより上位のビット位置にシフトし、同時にレジスタ730 に保持されているパラメータ0のビ・ントを期間T 16中に信号SBか2進数 lの値をとるまで下位ビット位置にシフトする。この状態になると、レジスタ7 34と735中の値は加算器738に供給され、レジスタ740に保持されてい る0値と加算されて1期間T16の終りに生ずる信号OLDの立下り部と時間的 に一致して出力レジスタ742中に記憶される。
第7図に示す回路は、残余の期間T l?乃至T22においても上記と同様に動 作する0期間TI!と716の終りにデコーダから供給される値はそれぞれ9と 2である。第8図のタイミング図は、期間TI9の終りにデータ値4を得るため にコート化2進値lOOを復号する作用にも関連している。
統計的デコーダ50によって与えられるデータ値はビデオ信号プロセッサ60に 供給される。プロセッサ60はこのデータ値をフィールド記憶メモリまたはフレ ーム記憶メモリ(図示なし)に記憶させ、次にこの記憶されたデータを処理して 表示装置70に表示する。
以上説明したこの発明の実施例においては、ビクセル値かデコーダ50から供給 されるとき、ビデオ信号プロセッサ60はそのビクセル値を処理するに充分な速 度で動作するものと仮定している。しかし、より低速のビデオ信号プロセッサを 用いるシステムにおいては、プロセッサ60かデコーダから供給されるデータを 受入れる用意がてきていない場合にそのデコーダの動作を一時停止させる回路( 図示なし)をデコーダ中に設けることか必要である。この回路は、制御回路72 0に内蔵させてプロセッサ60から供給されるWAIT信号(図示なし)に応じ て信号03)I、MSH,0SRLおよびMSLD(’1発生を禁止するものと することができる。
FI6.68 Hθ、θ 国際調査報告 国際調査報告

Claims (6)

    【特許請求の範囲】
  1. 1.各々が、それぞれの固定長データ値を表わす一組のコードワードを記述する 複数のパラメータ値を含む統計的にコード化されたデジタル・データのデータ源 と、上記データ源に結合されており、上記複数のパラメータ値を保持するための メモリ手段と、 上記データ源とメモリ手段とに結合されており、上記複数のパラメータ値の中の 選択されたものを上記コード化デジタル・データから引出されたデータ値と算術 的に組合わせて固定長復号データ値を生成する復号手段と、を含む統計的にコー ド化されたデジタル・データを復号するためのシステム。
  2. 2.上記の復号手段が、 第1の制御信号に応答し、供給されたデジタル値の和を生成して上記固定長復号 データ値を生成するデジタル値果算手段と、 上記メモリ手段とデータ源とに結合されており、第2の制御信号に応答して、上 記メモリ手段によって供給されるパラメータ値の1つ、または、上記データ源に よって供給されるコード化デジタル・データから引出された上記データ値の1つ を選択的に上記デジタル値累算手段に供給するデータ・マルチプレクシング手段 と、上記データ源によって供給されるコード化データの連続したビット値に応答 して、上記第1と第2の制御信号を生成する制御手段と、 を含むものである、請求項1に記載のシステム。
  3. 3.上記復号手段が、さらに、 上記データ源に結合されており、第3の制御信号に応答して、上記データ源によ って供給されるコード化データの連続したビット値を順序上位のビット位置にシ フトさせて、上記データ・マルチプレクシング手段に供給するために上記コード 化データから上記データ値を引出すシフトレジスタを含み、 上記制御手段が、上記コード化デジタル・データの予め定められたビット値と上 記複数のパラメータ値の中の選択されたものとに応答して上記第3の制御信号を 生成する手段を含むものである、請求項2に記載のシステム。
  4. 4.各々が、それぞれの固定長データ値を表わす一組のコードワードを記述する 複数のパラメータ値を含む統計的にコード化されたデジタル・データのデータ源 と,上記データ源に結合されており、このデータ源によって供給されるコード化 デジタル・データを記憶し、データ読出し制御信号に応答して上記記憶されたデ ータをビットシリアル信号として供給するバッファ手段と、上記バッファ手段に 結合されており、パラメータ書込み制御信号に応答して、上記バッファ手段によ って供給される上記複数のパラメータ値を記憶し、また、パラメータ読出し制御 信号に応答して、上記記憶されたパラメータ値を出力部に供給するメモリ手段と 、上記バッファ手段とメモリ手段とに結合されており、復号制御信号に応答して 、上記複数のパラメータ値の中の選択されたものと上記バッファ手段によって供 給されるビットシリアル信号から引出された複数ビットからなるデータ値とを加 算して固定長の復号されたデータ値を生成する復号手段と、 上記バッファ手段に結合されており、上記データ読出し制御信号を生成し、また 、上記バッファ手段によって供給されるビットシリアル信号に応答して、上記パ ラメータ書込み制御信号、上記パラメータ読出し制御信号及び上記復号制御信号 を生成する制御手段と、を含む、統計的にコード化されたデジタル・データを復 号するためのシステム。
  5. 5.上記復号制御信号が第1と第2と第3の制御信号を含むものであり、 上記復号手段が、 上記バッファ手段に結合されており、上記第3の制御信号に応答して、上記バッ ファ手段によって供給されるビットシリアル・コード化データ信号の連続したビ ット値を順次上位のビット位置にシフトさせて、上記ビットシリアル・コード化 データ信号から上記複数ビットからなるデータ値を生成するシフトレジスタを含 むデータ値抽出手段と、 上記メモリ手段とデータ抽出手段とに結合されており、上記第2の制御信号に応 答して、上記メモリ手段によって供給されるパラメータ値の1つ、または、上記 複数ビットデータ値を選択的に出力部に供給するデータ・マルチプレクシング手 段と、 上記第1の制御信号に応答して、上記データ・マルチプレクシング手段によって 供給されるデジタル値の和を生成して上記固定長復号データ値を生成するデジタ ル値累算手段と、 を含むものである、請求項4に記載のシステム。
  6. 6.上記制御手段が、上記メモリ手段によって供給される上記パラメータ値の1 つと、上記ビットシリアルコード化データ信号とに応答して、上記第3の制御信 号を発生する、請求項4に記載のシステム。
JP1504354A 1988-03-31 1989-03-29 統計的にコード化されたデジタル・データを復号するシステム Expired - Lifetime JP2808156B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/175,993 US4967196A (en) 1988-03-31 1988-03-31 Apparatus for decoding variable-length encoded data
US175,993 1988-03-31

Publications (2)

Publication Number Publication Date
JPH03503707A true JPH03503707A (ja) 1991-08-15
JP2808156B2 JP2808156B2 (ja) 1998-10-08

Family

ID=22642522

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1504354A Expired - Lifetime JP2808156B2 (ja) 1988-03-31 1989-03-29 統計的にコード化されたデジタル・データを復号するシステム

Country Status (8)

Country Link
US (1) US4967196A (ja)
EP (1) EP0409871B1 (ja)
JP (1) JP2808156B2 (ja)
KR (1) KR970007357B1 (ja)
AU (1) AU622170B2 (ja)
CA (1) CA1330456C (ja)
DE (1) DE68918590T2 (ja)
WO (1) WO1989009516A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03143028A (ja) * 1989-10-27 1991-06-18 Yamaha Corp 可変長符号の復号回路
US5857088A (en) * 1991-10-24 1999-01-05 Intel Corporation System for configuring memory space for storing single decoder table, reconfiguring same space for storing plurality of decoder tables, and selecting one configuration based on encoding scheme
US5343195A (en) * 1992-12-18 1994-08-30 Thomson Consumer Electronics, Inc. Variable length codeword decoding apparatus
US5615020A (en) * 1993-05-13 1997-03-25 Keith; Michael System and method for fast huffman decoding
US5793896A (en) * 1995-03-23 1998-08-11 Intel Corporation Ordering corrector for variable length codes
US5748790A (en) * 1995-04-05 1998-05-05 Intel Corporation Table-driven statistical decoder
US5646618A (en) * 1995-11-13 1997-07-08 Intel Corporation Decoding one or more variable-length encoded signals using a single table lookup
US5848195A (en) * 1995-12-06 1998-12-08 Intel Corporation Selection of huffman tables for signal encoding
US5821887A (en) * 1996-11-12 1998-10-13 Intel Corporation Method and apparatus for decoding variable length codes
DE69834792T2 (de) * 1997-10-17 2007-05-16 Sony Corp. Datenverteilungssystem, Verteilungseinrichtung, Terminaleinrichtung und Datenverteilungsverfahren
US6253165B1 (en) * 1998-06-30 2001-06-26 Microsoft Corporation System and method for modeling probability distribution functions of transform coefficients of encoded signal
JP3661594B2 (ja) * 2001-02-07 2005-06-15 ソニー株式会社 データストリーム生成装置とその方法、可変長符号化データストリーム生成装置とその方法、および、カメラシステム
JP4479530B2 (ja) * 2004-12-28 2010-06-09 カシオ電子工業株式会社 データ圧縮装置、及びデータ復元装置
SE533185C2 (sv) * 2007-02-16 2010-07-13 Scalado Ab Metod för behandling av en digital bild samt bildrepresentationsformat
SE531398C2 (sv) * 2007-02-16 2009-03-24 Scalado Ab Generering av en dataström och identifiering av positioner inuti en dataström
GB2477307A (en) * 2010-01-28 2011-08-03 Adsensa Ltd Embedding authentication data into an electronic document image

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5390749A (en) * 1977-01-19 1978-08-09 Nec Corp Huffman decoder circuit

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3883847A (en) * 1974-03-28 1975-05-13 Bell Telephone Labor Inc Uniform decoding of minimum-redundancy codes
US4125861A (en) * 1977-08-18 1978-11-14 Bell Telephone Laboratories, Incorporated Video signal encoding
US4386416A (en) * 1980-06-02 1983-05-31 Mostek Corporation Data compression, encryption, and in-line transmission system
US4396906A (en) * 1980-10-31 1983-08-02 Sri International Method and apparatus for digital Huffman encoding
US4369463A (en) * 1981-06-04 1983-01-18 International Business Machines Corporation Gray scale image data compression with code words a function of image history
AU555476B2 (en) * 1981-10-15 1986-09-25 Motorola, Inc. Binary encoding
CA1211219A (en) * 1982-06-30 1986-09-09 Hideo Kuroda Digital data code conversion circuit for variable- word-length data code
JPS5992688A (ja) * 1982-11-19 1984-05-28 Fuji Photo Film Co Ltd 適応形画像圧縮方式
US4608763A (en) * 1983-06-14 1986-09-02 Gte Valeron Corporation Probe
US4574382A (en) * 1983-10-05 1986-03-04 International Business Machines Corporation Variable length character code system
US4823201A (en) * 1987-11-16 1989-04-18 Technology, Inc. 64 Processor for expanding a compressed video signal

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5390749A (en) * 1977-01-19 1978-08-09 Nec Corp Huffman decoder circuit

Also Published As

Publication number Publication date
CA1330456C (en) 1994-06-28
KR900701101A (ko) 1990-08-17
US4967196A (en) 1990-10-30
EP0409871B1 (en) 1994-09-28
DE68918590D1 (de) 1994-11-03
AU3367689A (en) 1989-10-16
AU622170B2 (en) 1992-04-02
KR970007357B1 (ko) 1997-05-07
WO1989009516A1 (en) 1989-10-05
JP2808156B2 (ja) 1998-10-08
DE68918590T2 (de) 1995-05-04
EP0409871A1 (en) 1991-01-30

Similar Documents

Publication Publication Date Title
US5351047A (en) Data decoding method and apparatus
JPH03503708A (ja) デジタル・サンプルのコード化装置およびコード化法、およびビデオ信号処理システム
RU2125765C1 (ru) Способ и устройство сжатия символов, стохастический кодер (варианты)
JPH03503707A (ja) 統計的にコード化されたデジタル・データを復号するシステム
US6292114B1 (en) Efficient memory mapping of a huffman coded list suitable for bit-serial decoding
JP3341962B2 (ja) 可変長復号器及び可変長符号値を復号化する方法
JPH08162970A (ja) 復号装置およびその方法
JPH10209879A (ja) 可変長符号器
US6546053B1 (en) System and method for decoding signal and method of generating lookup table for using in signal decoding process
JPH0681104B2 (ja) ベクトル量子化によるディジタル信号符号化のための方法
US6094151A (en) Apparatus and method for finite state machine coding of information selecting most probable state subintervals
JP2002500849A (ja) 情報信号の算術符号化及び復号
KR20220054651A (ko) 다중 심볼 디코더
FI96258C (fi) Datan enkoodauslaite ja -menetelmä
KR100207428B1 (ko) 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법
KR100292050B1 (ko) 가변장복호기의 데이타 가변장치
JPH07235878A (ja) 可変長復号化器
JPH0936749A (ja) 符号化復号化装置およびこれに用いられる符号化方法
JP2003273746A (ja) 可変長符号復号装置
JP2838964B2 (ja) 可変長符号化回路
JP3332630B2 (ja) 復号装置及びデコードテーブルの生成方法
JP3239664B2 (ja) 可変長符号復号方法
KR960016012B1 (ko) 부분적 코드 변환을 이용한 가변 길이 디코딩 장치
JPH06216781A (ja) 可変長符号復号器
JPH08223056A (ja) 可変長コード復号化装置

Legal Events

Date Code Title Description
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

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

Free format text: PAYMENT UNTIL: 20080731

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090731

Year of fee payment: 11

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090731

Year of fee payment: 11