JPH09247466A - 符号化装置 - Google Patents

符号化装置

Info

Publication number
JPH09247466A
JPH09247466A JP4766596A JP4766596A JPH09247466A JP H09247466 A JPH09247466 A JP H09247466A JP 4766596 A JP4766596 A JP 4766596A JP 4766596 A JP4766596 A JP 4766596A JP H09247466 A JPH09247466 A JP H09247466A
Authority
JP
Japan
Prior art keywords
code
predetermined
byte
encoding device
encoding
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.)
Withdrawn
Application number
JP4766596A
Other languages
English (en)
Inventor
Yoshinobu Mita
良信 三田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP4766596A priority Critical patent/JPH09247466A/ja
Publication of JPH09247466A publication Critical patent/JPH09247466A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【課題】 可変長符号のビット列内への特殊コードの挿
入は、ソフト的な手法により実現されるため、高速化が
阻まれていた。 【解決手段】 可変長符号データを連結する際の特殊コ
ードの挿入及びそれに関連する操作(フィルビット、ビ
ットスタッフィング等)を、可変長符号の付加(連結)
を行うセレクタ7,バレルシフタ8,合成用レジスタ9
により実現したことにより、小規模構成による高速な符
号化が可能となる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は符号化装置に関し、
例えば、可変長符号化の際に特殊コードの挿入を行う符
号化装置に関する。
【0002】
【従来の技術】近年の通信装置や情報処理装置の発達に
伴い、より効率的なデータ通信や、より効率的なデータ
格納を行うために、データの符号化は不可欠の技術とな
り、種々の符号化方法が提案されている。
【0003】符号化方法は、符号が固定長である固定長
符号化方式と、符号が必ずしも固定長でない可変長符号
化方式とに大きく分けられる。
【0004】可変長符号化方式においては、符号中に、
制御コードとして特殊コードを挿入する方法がしばしば
用いられる。
【0005】通常、例えばデータ通信を行う際に符号中
にノイズが混入し、ビットの反転等が発生することによ
り一旦符号が乱れてしまうと、それ以降の符号の復号が
不可能となってしまう。しかしながら、特殊コードを挿
入する符号化方式によれば、符号中の特殊コードを発見
することにより、該特殊コード以降の符号から再び復号
することが可能となる。
【0006】また、特殊コードに復号条件の指示機能を
持たせることにより、復号装置側において、該特殊コー
ド以降の符号の復号方法を変更することもできる。
【0007】このように、特殊コードを挿入する可変長
符号化方式においては、柔軟な符号化が可能である。
【0008】可変長符号のビットストリーム(ビット
列)の中に特殊コードを挿入するためには、通常のビッ
トストリームの生成とは手順が異なる。例えば、一旦ビ
ットストリームを生成した後にソフト的に特殊コードを
挿入したり、又はビットストリームの生成過程(符号化
プロセス)において、特殊コード挿入の都度符号化を止
めて、特殊コードをソフト的な手段で挿入する等の方法
により、特殊コードの挿入を実現していた。
【0009】
【発明が解決しようとする課題】しかしながら、上記従
来の方法による特殊コードの挿入は、ビットストリーム
内に特殊コードをソフト的な手段で挿入するために、ビ
ットストリームを常にモニタしておく必要があり、従っ
て符号化を司るCPUにかなりの負荷がかかってしまっ
ていた。また、ソフト的な挿入を行うため、ビットスト
リームの生成速度が制限されてしまい、高速処理に限界
が生じてしまっていた。
【0010】もちろん、該特殊コードの挿入をハード的
に実現できれば、より高速な符号化が可能となるが、従
来の符号化を行う装置においては、簡単な回路構成によ
ってハード的に特殊コードの挿入を実現するための具体
的な手段がなかった。
【0011】また、ビット列をつなげるために使用する
バレルシフタは回路規模が大きくなってしまい、ハード
化の妨げになっていた。
【0012】本発明は上述した課題を解決するためにな
されたものであり、小規模な回路構成によってビットス
トリームへの特殊コードのハード的な挿入を可能とする
符号化装置を提供することを目的とする。
【0013】
【課題を解決するための手段】上記目的を達成するため
の一手段として、本発明の符号化装置は以下の構成を備
える。
【0014】即ち、所定の画素ブロック単位に可変長符
号化を行う符号化装置であって、前記画素ブロック内の
所定単位毎に可変長符号化を行う符号化手段と、前記符
号化手段によって生成された符号データを連結して符号
ビット列を形成する連結手段と、前記符号ビット列に所
定コードを挿入する挿入手段と、前記連結手段と前記挿
入手段とを制御する制御手段とを有することを特徴とす
る。
【0015】例えば、前記所定コードは前記制御手段に
おいて生成され、前記挿入手段は、前記制御手段の制御
に応じて前記符号化手段の出力と前記所定コードのいず
れかを選択して前記連結手段に出力することを特徴とす
る。
【0016】例えば、前記連結手段は、入力されたデー
タを一時保持する保持手段を複数備えることを特徴とす
る。
【0017】例えば、前記連結手段は、前記保持手段を
2つ有することを特徴とする。
【0018】例えば、前記連結手段は、ダブルバッファ
を有することを特徴とする。
【0019】更に、前記挿入手段により出力されたデー
タを前記連結手段における連結状況を考慮してシフトす
るシフト手段を有し、前記連結手段は、前記シフト手段
によるシフト出力を入力することを特徴とする。
【0020】例えば、前記シフト手段は、前記保持手段
の空き状況に応じたシフトを行うことを特徴とする。
【0021】例えば、前記シフト手段は、2段階のシフ
トを行うことを特徴とする。
【0022】例えば、前記シフト手段は、シフト量を上
位ビットと下位ビットに分割してそれぞれシフトを行う
ことを特徴とする。
【0023】例えば、前記シフト手段はバレルシフタで
あることを特徴とする。
【0024】例えば、前記制御手段は、前記連結手段に
おいて形成した符号ビット列中に所定バイトを検出した
場合に、該所定バイトの後に所定コードを挿入し、前記
符号ビット列の前記所定バイト以降を再度連結すること
を特徴とする。
【0025】例えば、前記所定バイトの検出はANDゲ
ートにより行うことを特徴とする。
【0026】例えば、前記所定バイトの検出はレジスタ
により1バイト毎に行うことを特徴とする。
【0027】例えば、前記所定バイトは“FF”バイト
であることを特徴とする。
【0028】例えば、前記所定コードはビットスタッフ
ィングのためのコードであることを特徴とする。
【0029】例えば、前記所定コードは制御コードであ
ることを特徴とする。
【0030】例えば、前記所定コードはフィルビットの
ためのコードであることを特徴とする。
【0031】例えば、前記符号化手段はハフマン符号化
を行うことを特徴とする。
【0032】また、所定の画素ブロック単位に可変長符
号化を行う符号化装置であって、前記画素ブロック内の
所定単位毎に可変長符号化を行う符号化手段と、前記符
号化手段によって生成された符号データを連結して符号
ビット列を形成する連結手段と、前記符号ビット列に第
1のコードを挿入する挿入手段と、前記連結手段と前記
挿入手段とを制御する制御手段とを有し、前記制御手段
は、前記連結手段において形成した符号ビット列中に所
定バイトを検出した場合に、該所定バイトの後に第2の
コードを挿入し、前記符号ビット列の前記所定バイト以
降を再度連結することを特徴とする。
【0033】例えば、前記第1のコードは制御コードで
あり、前記第2のコードはビットスタッフィング又はフ
ィルビットのためのコードであることを特徴とする。
【0034】以上の構成により、特殊コードの挿入と可
変長符号の付加とを共通の構成により実現し、ハードウ
ェアの負荷を大幅に軽減し、かつ高速に特殊コードの挿
入が可能になった。
【0035】また更に、バレルシフタにおけるシフト量
を2段階に分けることにより、回路規模が軽減された。
【0036】
【発明の実施の形態】以下、本発明に係る一実施形態に
ついて、図面を参照して詳細に説明する。
【0037】<第1実施形態>まず、本実施形態におい
て扱う符号の特徴について説明する。
【0038】本実施形態で扱う可変長符号は、多値画像
の圧縮を行うJPEG標準圧縮の中の一部を構成するハ
フマン符号である。本実施形態での符号化においては、
ハフマン符号とハフマン符号の間に付加ビットを挿入す
る操作が発生する。
【0039】ここでJPEG符号化について簡単に説明
する。まず、画素ブロック毎に多値データを離散的コサ
イン変換(DCT変換)し、量子化を施すと、量子化後
の係数が“0”になるものが多く発生する。そして、各
ブロック毎にジグザグスキャンにより画素を整列させ、
0ラン長とそれに続く0以外の係数の幅(これをカテゴ
リと呼ぶ)をセットにしてハフマン符号を割り当てる。
そして、該ハフマン符号の後に0以外の係数(付加ビッ
トと称する)を続ける。但し、JPEG符号においてハ
フマン符号と付加ビットとは常に交互に出現する訳では
なく、例えばブロックの終端等、付加ビットが存在しな
いケースもある。
【0040】また、ハフマンコード中に出現する特殊コ
ードとしては、例えばリスタートコード等、複数存在す
る。このリスタートコードは、通信エラー等でハフマン
コードに間違いが発生した場合に、デコードを復帰させ
るために参照される。
【0041】これら特殊コードの挿入を行うためには、
まず、生成されたハフマンコードのビット列に対し、バ
イトの区切りまでビット“1”を詰める。以降、これを
フィルバイト操作と称する。そして、その後に“FF”
バイトを挿入した後、“00”バイト以外からなる特殊
コードを挿入する。即ち、“FF”バイトは、後に特殊
コードが続くことを示す認識バイトである。
【0042】従って、ハフマンコードとその付加ビット
からなるビットストリーム中に、もし“FF”バイトが
偶然に発生した場合や、フィルバイト操作の際に“F
F”バイトが発生した場合には、発生した“FF”バイ
トの直後に意識的に“00”バイトを挿入することによ
り、特殊コードとの区別を可能としなければならない。
以降、この操作をビットスタッフィングと称する。
【0043】本実施形態の符号化装置においては、簡単
な回路構成で上述したフィルバイト操作、特殊コード挿
入、ビットスタッフィングを可能としたことを特徴とす
る。
【0044】図1に、本実施形態における符号化装置の
ブロック構成を示す。本実施形態の符号化装置は、ハフ
マンエンコーダ及び特殊コード(以降、マーカコードと
称する)の挿入回路構成を含むことを特徴とする。
【0045】図1において、RAM1−1〜1−4はハ
フマンコードを発生(生成)するためのエンコードテー
ブルであって、JPEG標準圧縮で規定された成分の圧
縮に対応し、輝度成分と色差成分、及びその2つの成分
のDCT結果に対するDC成分とAC成分用の4つのテ
ーブルから成る。そして、セレクタコントロール部2が
現在の処理成分を判断して、RAM1−1〜1−4のう
ち必要なテーブルの出力を選択するように、セレクタ3
をコントロールする。
【0046】図2に、エンコードテーブルであるRAM
1−1〜1−4のワード構成を示す。本実施形態のエン
コードテープルは、最長16ビットのコードに対応する
ために16ビットのハフマン符号領域及び符号長4ビッ
トの領域から成っており、ハフマン符号領域には右詰め
でハフマンコードが格納されている。これらエンコード
テーブルよりハフマンコードを得る際のRAM1−1〜
1−4へのアドレッシングは、入力されるパックデータ
から得られるアドレスにより行われる。
【0047】ここで図3に、本実施形態の入力であるパ
ックデータの構成例を示す。本実施形態のパックデータ
は、上述したJPEG符号化に基づいて画素ブロックに
対しDCT変換、および量子化を施した後の、DC係数
やAC係数の並び(ジグザグスキャン順)を示すもので
ある。このパックデータにおけるDCカテゴリやACカ
テゴリ、及び0ラン等のビット列が、そのままエンコー
ドテープルに対するアドレス情報となり得る。また、図
3に示すDC差分やAC成分は前述した付加ビットに相
当し、RAM1−1〜1−4のアクセスには使用され
ず、図1に示す合成部6に送られる。
【0048】図3に示すように、パックデータには2ビ
ットからなる識別フラグ領域が存在し、該識別フラグ
は、セレクタコントロール部2においてDC成分やAC
成分の判別の際に使用されたり、また、付加ビットであ
るか否かの判定等に使用される。尚、識別フラグ“1
1”で示されるEOBは、ブロックの終端まで0ランが
続く場合を示す。
【0049】図1に戻り、セレクタ3より得られたハフ
マン符号は、シフタ5によって左方向(MSB方向)に
シフトされ、合成部6でLSB側に付加ビットデータが
付される。シフタ5におけるシフト量は、パックデータ
内のDCカテゴリ又はACカテゴリにより定まる。尚、
ハフマンコードの次に付加ビットを付す必要がない場合
には、シフタ5におけるシフト量は“0”となる。
【0050】また、加算部4において、セレクタ3より
得られたハフマン符号に対応する符号長がパックデータ
内のDCカテゴリ又はACカテゴリにより示される付加
データ長と加算され、合計の符号長が求められる。そし
て、該符号長は特殊コード制御部10へ入力される。
【0051】ところで、ハフマンコードと付加ビットと
が合成される合成部6においては、ハフマンコードより
上位のビットをマスクして“0”にする操作を施しても
良いが、本実施形態においては該操作を行なわなくて
も、後述する合成用レジスタ部9においてハフマンコー
ドよりも上位のビットは無視される。
【0052】合成部6の出力は、通常はセレクタ7を介
してバレルシフタ8へ与えられるが、本実施形態ではセ
レクタ7に特殊コード制御部10より特殊コードが与え
られており、セレクタ7においては合成部6の出力と該
特殊コードのいずれかを選択してバレルシフタ8に与え
る。このセレクタ7による選択出力により、本実施形態
においてハフマンコード列の間に特殊コードを挿入する
ことが可能になる。
【0053】バレルシフタ8では、合成用レジスタ部9
における空き領域に連続したビット列を形成するため
に、入力されたデータに対して適当なビット数のシフト
を行った後、合成用レジスタ部9に出力する。合成用レ
ジスタ部9は2つのレジスタを有しており、片方のレジ
スタが一杯になると、該レジスタ内に形成されたビット
列をはき出し、空きのあるレジスタ、又は空きのあるレ
ジスタと未使用のレジスタにバレルシフタ8からの入力
を保持する機能を有する。
【0054】以下、図4を参照して、合成用レジスタ部
9における動作を更に詳細に説明する。
【0055】図4の(a)〜(c)は、シフタ5に入力
され、合成部6から出力されるハフマン符号データの構
造を模式的に示す図である。まず、シフタ5に入力され
るハフマン符号データは図4の(a)の斜線で示され、
ハフマン符号の符号長を超える部分には“0”が詰めら
れている。この“0”はエンコーダRAM1−1等に保
持されていても良いし、また、“0”以外の値であって
も問題は生じない。
【0056】図4の(b)は、シフタ5において入力さ
れたハフマン符号データを、LSBに付加する付加ビッ
ト長分だけMSB方向へシフトした状態を示す。図4の
(c)は、合成部6においてハフマン符号データと付加
ビットとが連続するビット列になる様に合成された状態
を示す。ここで、シフタ5においてハフマン符号データ
をMSB方向へシフトした際に空いたLSB側に“0”
を詰め、かつパックデータの付加ビットのビット長を超
える上位ビットを“0”とすれば、合成部6は2つの入
力の論理和をとるORゲートによって簡単に構成でき
る。
【0057】このようにして、合成部6においては図4
の(c)で示される様に合計bビットのデータが作られ
るとする。尚、合成部6としてはセレクタを使用し、L
SB側は付加ビット、MSB側はシフタ5の出力を選択
するようにし、付加ビット長に応じてLSB側、MSB
側のいずれかの選択を行うように構成しても良い。
【0058】図4の(e),(f)は、合成用レジスタ
部9内の2本のレジスタ内容をそれぞれ模式的に示す図
である。ここでは、各レジスタは32ビット幅であると
する。
【0059】例えば、図4の(f)に示す片方のレジス
タが空で、図4の(e)に示す様にもう片方のレジスタ
にはaビット長のデータが既に詰まっている場合には、
バレルシフタ8において図4の(c)に示されるハフマ
ン符号データがシフトされる際のシフト量は、32−
(a+b)ビットとなる。このシフト量32−(a+
b)が負となれば、シフト方向が反対、又は負の値に3
2を加えたシフトを行うという意味である。
【0060】尚、図4の(d)はバレルシフタ8からの
シフト後の出力データ例を示し、合成用レジスタ部9内
のデータと同様、32ビットである。図4の(d)にお
いては、a+bが32ビットを越えた場合、即ち、バレ
ルシフタ8におけるシフト量が負である場合のシフト例
を示している。
【0061】このバレルシフタ8の出力は、合成用レジ
スタ部9内の図4の(e)に示すレジスタにおいて、d
=32−aビットのLSB部分のみがラッチされる。そ
して、もう一方の図4の(f)に示すレジスタにおいて
は、b−dビット分がMSB部分にラッチされる。これ
により、図4の(e)に示すレジスタは満杯となるた
め、合成用レジスタ部9から外部に出力されるデータと
して処理される。
【0062】このようにして、合成用レジスタ部9にお
いては、片方のレジスタが一杯になると出力して空にす
る。そして、同様の動作を繰り返すことにより、本実施
形態において連続したビット列を形成することが可能と
なる。従って、合成用レジスタ部9における片方のレジ
スタは常に空の状態でスタンバイしていることになる。
【0063】ここで、a+bが32ビットを超えない場
合、即ち、バレルシフタ8におけるシフト量が正である
場合の、バレルシフタ8の出力例を図4の(g)に示
す。また、図4の(h)は、バレルシフタ8の出力のう
ち、有効なbビットが合成用レジスタ部9内の一方のレ
ジスタに書き込まれた状態を示す。このような状態にお
いては、合成用レジスタ部9の他方のレジスタに対する
書き込みは行われない。
【0064】また、特殊コード制御部10においては、
特殊コードの挿入以外にバレルシフタ8のシフト量を合
成用レジスタ部9の書き込み状態に基づいて判断した
り、合成用レジスタ部9から32ビットにパックされた
連続するビットストリームの出力の制御等を司る。
【0065】以下、以上説明した合成用レジスタ9の更
に詳細な構成を図5に示し、説明する。尚、図5におい
ては、特殊コード制御部10における構成が一部含まれ
ており、合成用レジスタ9と特殊コード制御部10との
境界を点線で表わしている。
【0066】図5において、レジスタA21及びレジス
タB22が、上述した図4において示した(e),
(f)の32ビットレジスタにそれぞれ対応する。
【0067】例えばレジスタA21に既にaビットのコ
ードが書き込まれているとし、次に書き込むコードのコ
ード長をb(b=ハフマン符号長+付加ビット長)とす
れば、バレルシフタ8におけるシフト量は、上述した様
に32−(a+b)ビットとなり、バレルシフタ8の出
力の一部がレジスタA21,B22にラッチされる。
【0068】より詳細には、特殊コード制御部10内に
構成されるマスク生成部23,24、及びラッチ制御部
25によって、各レジスタに対するマスクデータが生成
され、該マスクデータにより、上述した様にレジスタA
21では既に書き込まれている上位aビットを除いたデ
ータがラッチされ、レジスタB22では上位の(a+
b)−32、又は(b−d)のビット数がラッチされ
る。
【0069】ここで、(a+b)−32が負の場合はレ
ジスタB22にはラッチされない。一方、正の場合には
レジスタB22にラッチが行なわれると同時に、レジス
タA21がコードで一杯になるため、レジスタA21の
32ビットデータは後段の回路にはき出され空となる。
これにより、レジスタA21とB22とは役割が交代す
る。
【0070】ここで、マスク生成について説明する。特
殊コード制御部10内のマスク生成部23,24におい
ては、値a及び値(a+b)−32に基づいてレジスタ
A21又はレジスタB22への書き込み位置を判定し、
マスクデータを生成する。該マスクデータは、ラッチ制
御部25を介してレジスタA21,レジスタB22へ与
えられるが、上述した様にレジスタA21とレジスタB
22の役割が交代すると、ラッチ制御部25における2
つの出力も入れ換えが行われる。
【0071】レジスタA21,B22から出力される各
32ビット、即ち合計8バイトは、ANDゲート28に
おいて各バイト毎のANDがとられ、それぞれ“FF”
のバイトであるか否かが判定される。この時、既に処理
が終了しているaビットを処理対象から除外するため
に、マスク生成部30によりゲート34を介してaビッ
ト分のマスクがかけられる。
【0072】又、“FF”を伴うマーカ(特殊コード)
も、図1に示した特殊コード制御部10よりセレクタ7
を介してレジスタA21,B22に与えられるため、マ
ーカにおける“FF”の位置に応じて、ゲート34を介
してマスク生成部32により生成されたマスクがかけら
れる。
【0073】更に、処理済みのaビットと処理中のハフ
マン符号bビットの和である(a+b)ビットを除く残
りの部分についても、不要な情報が格納されているおそ
れがあるため、ゲート34を介してマスク生成部31に
より生成されたマスクをかける。
【0074】ここで、“FF”バイトが発見できなかっ
た場合にはanew=a+bとなるが、“FF”バイトが
発見された場合には、プライオリティエンコーダ35に
よりその位置fを発見し、anew=fとする。即ち、該
“FF”の位置までを処理済みとする。
【0075】特殊コードであるマーカは、“FF”バイ
ト及びそれに続く“0”以外のバイトから成り、マーカ
挿入位置に応じて補正部33が出力する情報に従ってマ
スク生成部32により生成されたマスクがゲート34を
介してかけられる。
【0076】以上説明した様に、“FF”バイトが発見
された場合には、実際の処理済みビット数aは更新さ
れ、anew=fとなる。この後、特殊コード制御部10
では“00”をセレクタ7へ出力することによって“0
0”バイトの挿入、即ちビットスタッフィングを行う。
そしてその後に、残りビット分(cビットとする)をバ
レルシフタ8を介して再度レジスタA21,B22に対
してラッチする必要がある。
【0077】ここで図6に示すように、bビットの内、
ビットスタッフィング前までのビット列を書き込み終っ
た残り部分がcビットとなり、これは、バレルシフタ8
の入力部に保持され続ける。ここでcビットは前回の処
理数bビットに対して、以下の式で表される。
【0078】 c=bnew=b−(f−a) ・・・(1) 尚、式(1)において(f−a)は前回の処理済みビッ
ト数である。
【0079】従ってバレルシフタ8では、このcビット
を処理するために、 32−(a’+bnew) ・・・(2) のシフトが必要となる。ここで、 a’=anew+8 ・・・(3) anew=f、8=スタッフィングビット数 であるから、(2)式に対して(1),(3)式より
a’,bnewを代入することにより、(2)式は32−
(a+b+8)となる。即ち、バレルシフタ8における
シフト量は、ビットスタッフィングのために8ビットず
れることになる。
【0080】尚、前回の処理済みビット数f−aは、減
算器36より得られる。そして、通常は(a+b)が3
2以上、又、ビットスタッフィング発生時はfが32以
上になると、セレクタ26を介してレジスタA21,B
22の一杯となった値(32ビット)が出力され、レジ
スタ27を介して圧縮データとして外部に出力される。
【0081】また、フィルバイト操作時(マーカコード
挿入直前)には、aと、aより大きい8の倍数との差分
をbとし、セレクタ7及びバレルシフタ8を介して、合
成用レジスタ9に対してビット“1”の書き込みを行え
ば良い。
【0082】尚、合成用レジスタ9と特殊コード制御部
10との機能の振り分けは、必ずしも図5に示す通りで
ある必要はなく、例えばANDゲート28等も特殊コー
ド制御部10に含まれるような構成であっても良い。即
ち、合成用レジスタ9と特殊コード制御部10とによっ
て、図5に示す構成を満たせれば良い。
【0083】次に、バレルシフタ8の詳細構成を図7に
示し、以下説明する。
【0084】本実施形態のバレルシフタ8は、32ビッ
ト幅の出力を有する32ビットバレルシフタであるが、
説明の簡便のため、図7に8ビットバレルシフタの構成
例を示し、説明する。
【0085】図7において、81は入力を受けるバッフ
ァであり、D0〜D7までの信号を後段に伝える。この
信号は8to1セレクタ82−1〜82−8に、それぞれ
1ビットずつ順番をずらして入力されている。従って、
セレクタ82−1〜82−8の選択制御信号として同一
の値を与えれば、1ビットずつずれた値がS0〜S7に
得られる。従って、セレクタ82−1〜82−8に対す
る選択制御信号として、希望するシフト量を与えれば良
い。
【0086】従って、本実施形態の32ビットバレルシ
フタ8は、図7におけるバッファ81及びセレクタ82
−1〜82−8を、32ビット対応として実現すれば良
い。
【0087】以上説明した様に本実施形態によれば、特
殊コードの挿入とそれに関連する操作を可変長符号の付
加を行う合成用回路やバレルシフタ等を共有して実現す
ることにより、ハードウェアの負荷を大幅に軽減し、小
規模な回路構成で特殊コードの高速挿入が可能となっ
た。
【0088】<第2実施形態>以下、本発明に係る第2
実施形態について説明する。第2実施形態においては、
上述した第1実施形態とは合成用レジスタ9の詳細構成
が異なる。
【0089】図8に、第2実施形態における合成用レジ
スタ9の詳細構成を示す。図8において、上述した第1
実施形態で示した図5と同様の構成については同一番号
を付し、説明を省略する。
【0090】図8に示す構成においては、基本的には、
レジスタA21、又はレジスタB22が一杯になると、
セレクタ26を介して後段の回路へデータが送られる。
この仕組みは上述した第1実施形態で説明した通りであ
る。
【0091】第2実施形態においては、セレクタ26の
後段回路として2組の4バイトレジスタ41,43を有
しており、R/W制御部44及びセレクタ42の制御に
より、片方のレジスタ41から1バイトずつ読みとっ
て、他方のレジスタ43に“FF”か否かをチェックし
ながら書き込む。書き込み用のレジスタ43は、書き込
み4バイト毎に、不図示のFIFO又は出力用バッファ
へデータを出力する。
【0092】レジスタ41より読み取られた1バイトず
つのデータは、ラッチ45を介して“FF”か否かがゲ
ート47で判定される。“FF”であれば、書き込み用
レジスタ43に“FF”を書き込んだ直後にゲート46
を閉じ、書き込み用レジスタ43に“00”バイトを続
けて書き込む。これにより即ち、第2実施形態における
ビットスタッフィングが行われる。ただし、特殊コード
制御部10において、自身が発生したマーカコード“F
F”の位置に応じて、“FF”発見の結果をキャンセル
し、ビットスタッフィングが発生しないように制御する
必要がある。これは、マーカ発生部50及びその遅延部
49、及びゲート48により達成される。尚、第2実施
形態におけるマーカコードの発生、及びフィルバイト操
作による“1”の挿入は、上述した第1実施形態と同様
の方法で実現される。
【0093】ちなみに第2実施形態におけるフィルバイ
ト操作は、マーカ挿入の直前における処理済みビット数
をaとすると、8−(a%8)(但し、a%8はaを8
で割った余り)のビット数だけ、全て“1”がセレクタ
7を介してバレルシフタ8の入力として与えられること
により、達成される。例えば、a=9である場合、7ビ
ットが“1”としてバレルシフタ8に与えられる。もち
ろん、フィルバイト操作とマーカコード挿入とを同時に
バレルシフタ8で行うことも可能である。
【0094】以上説明した様に第2実施形態によれば、
第1実施形態とは異なる合成レジスタの構成によって
も、特殊コードの挿入等を同様に行うことができる。
【0095】<第3実施形態>以下、本発明に係る第3
実施形態について説明する。第3実施形態においては、
上述した第1実施形態とは合成用レジスタ9の詳細構成
が異なる。
【0096】図9に、第3実施形態における合成用レジ
スタ9の詳細構成を示す。図9において、上述した第2
実施形態で示した図8と同様の構成については同一番号
を付し、説明を省略する。
【0097】上述した第1実施形態においては、バレル
シフタ8に対してフィルバイト“1”とマーカコードと
を同時に与えた場合、フィルバイト操作の結果得られる
バイトが“FF”であった場合、マーカコードを新たに
セットし直さなくてはならない。
【0098】また、上述した第2実施形態においては、
マーカコード挿入のためにフィルバイトを行った結果
“FF”となるバイトを考慮して、ビットスタッフィン
グが適切に行われる様、注意して設計する必要がある。
【0099】第3実施形態においては、マーカコードの
合成をフィルバイト操作及びビットスタッフィングとは
独立した構成によって実現することにより、係る不具合
を解消したことを特徴とする。
【0100】図9に示す構成における基本動作は、上述
した第2実施形態と同様である。従って、“00”を挿
入するビットスタッフィング、及びマーカコード挿入直
前のフィルバイト“1”の挿入動作についても同様であ
る。ただし、第3実施形態においては、マーカコードの
挿入はセレクタ7,バレルシフタ8を介さず、セレクタ
74を介して、直接書き込み用レジスタ43に1バイト
ずつを順に書き込む。即ち、マーカコードの挿入をフィ
ルバイト操作及びビットスタッフィングとは独立した構
成によって実現する第3実施形態においては、フィルバ
イト“1”を挿入したバイト境界後にマーカコードが入
るように、マーカコードのタイミングを調整する必要が
ある。この調整は、フィルバイト管理部75及びタイミ
ング調整のための遅延部76により、マーカ発生部77
におけるタイミングを適当に合わせることで実現する。
これにより、第3実施形態においてはマーカコード挿入
時におけるバレルシフタ8への負荷を軽減することがで
きる。
【0101】また、“00”を挿入するビットスタッフ
ィングの際に“FF”バイトを検出する必要があるが、
この際にマーカコードの位置を考慮しなくて良いため、
バイトレジスタ72を通過するデータに対してゲート7
1で“FF”か否かの判断を行う。そして、“FF”で
あればレジスタ72を1クロック分クリアして“00”
バイトを挿入する。尚、レジスタ73はマーカコード等
の書き出しレジスタとして使用される。
【0102】以上説明した様に第3実施形態によれば、
マーカコードの合成をフィルバイト操作及びビットスタ
ッフィングとは独立した構成によって実現することによ
り、フィルバイトによって生じた“FF”バイトを特に
考慮することなく、マーカコード挿入及びビットスタッ
フィングが行える。
【0103】<第4実施形態>以下、本発明に係る第4
実施形態について説明する。第4実施形態においては、
32ビットバレルシフタ8をより小さな規模の構成で実
現する例について説明する。第4実施形態におけるバレ
ルシフタ8の詳細構成を図10に示す。
【0104】まず、バッファ83−1〜83−4は8ビ
ットバッファであり、それぞれ8ビットずつの入力を受
ける。84−1〜84−4はセレクタであり、該セレク
タにそれぞれ入力される32ビットは、8ビット(1バ
イト)の中の順番を変えずに4つのバイトをシフトし
て、順番がずらされる。即ち、8ビット単位でのローテ
ーションが行われる。
【0105】以下、セレクタ84−1〜84−4におけ
る動作について説明する。セレクタ84−1〜84−4
は、それぞれ4to1セレクタ8個からなる。各4to1セ
レクタにはそれぞれバッファ83−1〜83−4に保持
された信号が、8ビットずれた信号(例えばD0,D8,D
16,D24)として4つが入力され、そのうちの1つが選
択される。そして、各セレクタを構成する8個の4to1
セレクタには、それぞれ他の4to1セレクタとは1ビッ
トずつずれた信号が入力されることにより、同一の選択
信号に基づいて、連続する8ビットの信号、即ち1バイ
トの信号(例えばD0〜D8)が得られる。
【0106】又、各セレクタ84−1〜84−4には互
いに8ビットずつずらした信号を入力することにより、
出力されるt0〜t31にはバイト単位でのシフトが施さ
れることになる。
【0107】ここで例えば、バレルシフタ8におけるシ
フト量を5ビット(0〜31のシフト量)とすると、ま
ずセレクタ84−1〜84−4におけるバイト単位のシ
フト処理により、即ち上位2ビット(8の整数倍)のシ
フトが行われたことになる。次に、下位3ビットのシフ
ト(0〜7のシフト量)を行うが、そのためには2つの
バイトにまたがったデータが必要となる。従って、入力
される16ビットからシフト量に応じて8ビットを取り
出すために、16to1セレクタを8個有する16ビット
バレルシフタが4つ、即ちバレルシフタ85−1〜85
−4が必要となる。尚この場合、シフト量は0〜7であ
るため、実際には8to1セレクタを8個有するシフタが
4つあれば済む。
【0108】8to1セレクタの各入力には、1ビットず
つずれた信号を8ビット分(例えばt0,t1,・・・t8)入
力し、8個の8to1セレクタはそれぞれ他の8to1セレ
クタと1ビットずれた信号が入力される。従って、バレ
ルシフタ85−1〜85−4の入力は16ビット幅が必
要である。これは入力信号の違いを除けば、上述した第
1実施形態において図7に示した8ビットバレルシフタ
と同様の構成で実現できる。
【0109】そして、バレルシフタ85−1〜85−4
にはそれぞれ8ビットずつずらした値を与えることによ
り、それぞれ連続した8ビットが4つのバレルシフタ8
5−1〜85−4の出力同士で更に連続し、結果として
32ビットバレルシフタ8の出力として得られる。これ
により即ち、第4実施形態において全5ビット分のシフ
トが施されたことになる。
【0110】以上説明したように第4実施形態によれ
ば、図10に示す様にバレルシフタを2段構成にし、シ
フト量を上位ビットと下位ビットに分けることにより、
第1実施形態において図7に示した8ビットバレルシフ
タの構成をそのまま32ビットバレルシフタとして拡張
した場合よりも、回路規模が小さくて済む。
【0111】<他の実施形態>なお、本発明は、複数の
機器(例えばホストコンピュータ,インタフェイス機
器,リーダ,プリンタなど)から構成されるシステムに
適用しても、一つの機器からなる装置(例えば、複写
機,ファクシミリ装置など)に適用してもよい。
【0112】
【発明の効果】以上説明した様に本発明によれば、特殊
コードの挿入とそれに関連する操作を、可変長符号の付
加と同一の合成用回路等を共有することで実現したこと
により、ハードウェアへの負荷を大幅に軽減し、小規模
の回路構成による高速な符号化処理が可能となる。
【0113】また、バレルシフタを2段構成にし、シフ
ト量を上位ビット、下位ビットに分けてシフトをするこ
とにより、更なる回路規模の低減が可能になった。
【0114】
【図面の簡単な説明】
【図1】本発明に係る一実施形態における符号化装置の
構成を示すブロック図である。
【図2】本実施形態におけるエンコードRAMのワード
構成図である。
【図3】本実施形態におけるパックデータ例を示す図で
ある。
【図4】本実施形態における合成用レジスタの動作を説
明するための図である。
【図5】本実施形態における合成用レジスタの詳細構成
を示すブロック図である。
【図6】本実施形態における合成用レジスタの動作を説
明するための図である。
【図7】本実施形態におけるバレルシフタの詳細構成を
示す図である。
【図8】本発明に係る第2実施形態における合成用レジ
スタの詳細構成を示すブロック図である。
【図9】本発明に係る第3実施形態における合成用レジ
スタの詳細構成を示すブロック図である。
【図10】本発明に係る第4実施形態におけるバレルシ
フタの詳細構成を示すブロック図である。
【符号の説明】 1−1〜1−4 エンコードRAM 2 セレクタコントロール部 3 セレクタ 4 加算器 5 シフタ 6 合成部 7 セレクタ 8 バレルシフタ 9 合成用レジスタ部 10 特殊コード制御部 21,22 レジスタ 23,24 マスク生成部 25 ラッチ制御部 26 セレクタ 27 レジスタ 28 ANDゲート 29 セレクタ 30,31,32 マスク生成部 33 補正部 34 ゲート 35 プライオリティエンコーダ 36 減算器 41,43 レジスタ 42 セレクタ 44 R/W制御部 45 ラッチ 46 ゲート 47 ANDゲート 48 ゲート 49 遅延部 50 マーカ発生部 71 AND回路 72,73 レジスタ 74 セレクタ 75 フィルバイト管理部 76 遅延部 77 マーカ発生部 81 入力部 82−1〜82−8 セレクタ 83 入力部 84−1〜84−4 セレクタ 85−1〜85−4 セレクタ

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 所定の画素ブロック単位に可変長符号化
    を行う符号化装置であって、 前記画素ブロック内の所定単位毎に可変長符号化を行う
    符号化手段と、 前記符号化手段によって生成された符号データを連結し
    て符号ビット列を形成する連結手段と、 前記符号ビット列に所定コードを挿入する挿入手段と、 前記連結手段と前記挿入手段とを制御する制御手段とを
    有することを特徴とする符号化装置。
  2. 【請求項2】 前記所定コードは前記制御手段において
    生成され、 前記挿入手段は、前記制御手段の制御に応じて前記符号
    化手段の出力と前記所定コードのいずれかを選択して前
    記連結手段に出力することを特徴とする請求項1記載の
    符号化装置。
  3. 【請求項3】 前記連結手段は、入力されたデータを一
    時保持する保持手段を複数備えることを特徴とする請求
    項2記載の符号化装置。
  4. 【請求項4】 前記連結手段は、前記保持手段を2つ有
    することを特徴とする請求項3記載の符号化装置。
  5. 【請求項5】 前記連結手段は、ダブルバッファを有す
    ることを特徴とする請求項4記載の符号化装置。
  6. 【請求項6】 更に、前記挿入手段により出力されたデ
    ータを前記連結手段における連結状況を考慮してシフト
    するシフト手段を有し、 前記連結手段は、前記シフト手段によるシフト出力を入
    力することを特徴とする請求項4記載の符号化装置。
  7. 【請求項7】 前記シフト手段は、前記保持手段の空き
    状況に応じたシフトを行うことを特徴とする請求項6記
    載の符号化装置。
  8. 【請求項8】 前記シフト手段は、2段階のシフトを行
    うことを特徴とする請求項7記載の符号化装置。
  9. 【請求項9】 前記シフト手段は、シフト量を上位ビッ
    トと下位ビットに分割してそれぞれシフトを行うことを
    特徴とする請求項8記載の符号化装置。
  10. 【請求項10】 前記シフト手段はバレルシフタである
    ことを特徴とする請求項6乃至9のいずれかに記載の符
    号化装置。
  11. 【請求項11】 前記制御手段は、前記連結手段におい
    て形成した符号ビット列中に所定バイトを検出した場合
    に、該所定バイトの後に所定コードを挿入し、前記符号
    ビット列の前記所定バイト以降を再度連結することを特
    徴とする請求項1記載の符号化装置。
  12. 【請求項12】 前記所定バイトの検出はANDゲート
    により行うことを特徴とする請求項11記載の符号化装
    置。
  13. 【請求項13】 前記所定バイトの検出はレジスタによ
    り1バイト毎に行うことを特徴とする請求項11記載の
    符号化装置。
  14. 【請求項14】 前記所定バイトは“FF”バイトであ
    ることを特徴とする請求項11乃至13のいずれかに記
    載の符号化装置。
  15. 【請求項15】 前記所定コードはビットスタッフィン
    グのためのコードであることを特徴とする請求項1また
    は請求項14記載の符号化装置。
  16. 【請求項16】 前記所定コードは制御コードであるこ
    とを特徴とする請求項1記載の符号化装置。
  17. 【請求項17】 前記所定コードはフィルビットのため
    のコードであることを特徴とする請求項1記載の符号化
    装置。
  18. 【請求項18】 前記符号化手段はハフマン符号化を行
    うことを特徴とする請求項1記載の符号化装置。
  19. 【請求項19】 所定の画素ブロック単位に可変長符号
    化を行う符号化装置であって、 前記画素ブロック内の所定単位毎に可変長符号化を行う
    符号化手段と、 前記符号化手段によって生成された符号データを連結し
    て符号ビット列を形成する連結手段と、 前記符号ビット列に第1のコードを挿入する挿入手段
    と、 前記連結手段と前記挿入手段とを制御する制御手段とを
    有し、 前記制御手段は、前記連結手段において形成した符号ビ
    ット列中に所定バイトを検出した場合に、該所定バイト
    の後に第2のコードを挿入し、前記符号ビット列の前記
    所定バイト以降を再度連結することを特徴とする符号化
    装置。
  20. 【請求項20】 前記第1のコードは制御コードであ
    り、前記第2のコードはビットスタッフィング又はフィ
    ルビットのためのコードであることを特徴とする請求項
    19記載の符号化装置。
JP4766596A 1996-03-05 1996-03-05 符号化装置 Withdrawn JPH09247466A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4766596A JPH09247466A (ja) 1996-03-05 1996-03-05 符号化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4766596A JPH09247466A (ja) 1996-03-05 1996-03-05 符号化装置

Publications (1)

Publication Number Publication Date
JPH09247466A true JPH09247466A (ja) 1997-09-19

Family

ID=12781566

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4766596A Withdrawn JPH09247466A (ja) 1996-03-05 1996-03-05 符号化装置

Country Status (1)

Country Link
JP (1) JPH09247466A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6930800B1 (en) 1998-09-09 2005-08-16 Fuji Xerox Co., Ltd. Halftone generation system and halftone generation method
KR100758514B1 (ko) * 1999-01-21 2007-09-14 소니 서비스 센터(유럽) 엔.브이. 캐로셀 정보를 배열하는 정보 서버 및 방법
US7324022B2 (en) 2005-01-28 2008-01-29 Nec Corporation Data encoding apparatus, data decoding apparatus and data encoding/decoding system
JP2010529748A (ja) * 2007-05-31 2010-08-26 クゥアルコム・インコーポレイテッド イメージトランスコードのためのビットレート縮小技術
JP2010233235A (ja) * 2010-05-10 2010-10-14 Panasonic Corp エンコード装置
JP2013504240A (ja) * 2009-09-04 2013-02-04 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ スケーラブルな画像符号化および復号化

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6930800B1 (en) 1998-09-09 2005-08-16 Fuji Xerox Co., Ltd. Halftone generation system and halftone generation method
KR100758514B1 (ko) * 1999-01-21 2007-09-14 소니 서비스 센터(유럽) 엔.브이. 캐로셀 정보를 배열하는 정보 서버 및 방법
US7324022B2 (en) 2005-01-28 2008-01-29 Nec Corporation Data encoding apparatus, data decoding apparatus and data encoding/decoding system
JP2010529748A (ja) * 2007-05-31 2010-08-26 クゥアルコム・インコーポレイテッド イメージトランスコードのためのビットレート縮小技術
US8213498B2 (en) 2007-05-31 2012-07-03 Qualcomm Incorporated Bitrate reduction techniques for image transcoding
JP2013504240A (ja) * 2009-09-04 2013-02-04 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ スケーラブルな画像符号化および復号化
US9071824B2 (en) 2009-09-04 2015-06-30 Koninklijke Philips N.V. Scalable image coding and decoding
JP2010233235A (ja) * 2010-05-10 2010-10-14 Panasonic Corp エンコード装置

Similar Documents

Publication Publication Date Title
US5801650A (en) Decoding apparatus and method
JP3136796B2 (ja) 可変長符号デコーダ
US6885319B2 (en) System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
US5539401A (en) Variable-length code table and variable-length coding device
US6798833B2 (en) Video frame compression/decompression hardware system
US7109896B2 (en) Variable length coding apparatus and variable length coding method
US5675331A (en) Decoding device for decoding a variety of code signals
JPS58177073A (ja) デジタルイメージ情報符号化/復号化方法及び装置
US20110280492A1 (en) Image processing apparatus and image processing method
US6820087B1 (en) Method and apparatus for initializing data structures to accelerate variable length decode
JPH09247466A (ja) 符号化装置
JP2008193263A (ja) 画像処理方法、画像処理装置、画像処理プログラム、および、記録媒体
US6313766B1 (en) Method and apparatus for accelerating software decode of variable length encoded information
JP2004032494A (ja) 画像処理装置及び画像処理方法
JPS62230164A (ja) デジタル信号符号化/復号化回路
US6324306B1 (en) Variable length code decoder and moving picture decoder having variable length code decoder
US20070154102A1 (en) Image decompression system, method and program
JP2728003B2 (ja) ゼロラン展開回路およびゼロラン展開方法
JP3209396B2 (ja) 画像データの圧縮方法及び装置
JP3224127B2 (ja) 画像データ変換処理装置
JP2933029B2 (ja) デジタル信号符号化/復号化回路
JP3271539B2 (ja) 画像データ処理装置
JP3342380B2 (ja) 符号化及び復号装置とそれを適用した画像処理装置
JP3293382B2 (ja) データ圧縮装置及びデータ伸長装置
JPH06152988A (ja) 可変長符号の復号化装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030506