(57)【特許請求の範囲】
【請求項１】
入力データを一時記憶するＲＡＭと、該ＲＡＭに該入力データを書込む際に与える書込みアドレス及び該ＲＡＭから格納データを読出す際に与える読出しアドレスを発生するアドレス発生回路とを備えたジグザグスキャン回路であって、
上記アドレス発生回路は、
ジグザグスキャン用のアドレスを生成するために用いられる状態遷移パラメータを格納する状態遷移レジスタと、
Ｙアドレスを示す上位ビットとＸアドレスを示す下位ビットとにより構成され、上記ＲＡＭに出力されるアドレスを一時的に格納するアドレスレジスタと、
上記アドレスレジスタから出力された上記アドレスを１つだけ増加するインクリメンタと、
上記状態遷移パラメータと上記アドレスレジスタの出力アドレスとを用いて、ジグザグスキャン用のアドレスと上記状態遷移パラメータとを生成するジグザグアドレス演算回路と、
画像圧縮時に上記入力データを上記ＲＡＭに書込むとき若しくは画像伸張時に上記ＲＡＭから上記格納データを読出すときに上記インクリメンタから出力された上記アドレスを選択し、画像圧縮時に上記ＲＡＭから上記格納データを読出すとき若しくは画像伸張時に上記入力データを上記ＲＡＭに書込むときに上記ジグザグ演算回路から出力された上記アドレスを選択する選択回路とにより構成される
ことを特徴とするジグザグスキャン回路。
【請求項２】
上記ＲＡＭとして２個を用い、上記選択手段として各ＲＡＭ用に２個を設けると共に、２個の上記ＲＡＭからの読出しデータを選択する出力データ選択手段を設け、
２個の上記選択回路を対称的に動作させ、ラスタスキャン状のアドレスを一方の上記ＲＡＭに与えているときに、ジグザグスキャン状のアドレスを他方の上記ＲＡＭに与え、読出し動作中の上記ＲＡＭからのデータを上記出力データ選択手段で選択させる
ことを特徴とする請求項１に記載のジグザグスキャン回路。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、データ順序を変換するジグザグスキャン回路に関し、特に、画像符号化／復号化装置に適用して好適なものである。
【０００２】
【従来の技術】
画像信号を符号化して伝送する場合において、仮に同じ伝送量を伝送するのであれば、低域成分の情報量を高域成分の情報量より多くした方が、人間の視覚特性により合致した再生画像が得られる。換言するならば、圧縮率を高めるのならば、高域成分をより圧縮した方が人間の視覚特性により合致した再生画像が得られる。このような観点に鑑みてなされた画像符号化方式が提案されており、このような画像符号化方式では、画像の量子化データを、水平方向及び垂直方向の周波数成分に応じて並び換えるジグザグスキャンを適用している。
【０００３】
このような画像符号化方式に従う画像圧縮／伸張アルゴリズムの中で用いられているジグザグスキャンは、ハードウエア構成的には、図２に示すように、量子化／逆量子化回路１と、ハフマン符号化／復号化回路３との間に存在するジグザグスキャン回路２が実行するプロセスであり、例えば、６４個のデータを仮に図３（ａ）に示すような方形状に配置して考えたときに、図３（ｂ）に示すラスタスキャン状のデータ順序と、図３（ｃ）に示す斜め方向に往復するジグザグスキャン状のデータ順序との間でデータ順序を変換するという働きを持っている。
【０００４】
画像圧縮時には、量子化／逆量子化回路１で量子化されたＤＣＴ（離散コサイン変換）係数がデータ線１０１を介してジグザグスキャン回路２に入力され、ジグザグスキャン回路２によって、そのデータ順序が図３（ｃ）に示すジグザグスキャン状に変換され、データ線１０２を介して、ハフマン符号化／復号化回路３に入力され、可変長符号化される。
【０００５】
逆に、画像伸張時には、ハフマン符号化／復号化回路３によってＤＣＴ係数に復号されたデータは、データ線１０２を介してジグザグスキャン回路２に入力され、ジグザグスキャン回路２によって、ジグザグの順序であったデータが図３（ｂ）に示す元の並びに逆変換され、データ線１０１を介して量子化／逆量子化回路１に入力される。
【０００６】
図４は、ジグザグスキャン回路２を単純にハードウエア化した場合に考えられる構成例を示したものである。
【０００７】
図４において、６４ワード（１ワードは１１ビット）のデータの順序は、ＲＡＭ２０の書込み、読出しを通じて変換され、かかる変換のために、書込みアドレス及び読出しアドレスの変化順序が異なっている。
【０００８】
以下、図４に示すジグザグスキャン回路２の画像圧縮時の動作、すなわち、図３（ｂ）に示すデータ順序を図３（ｃ）に示すデータ順序に変換する動作を、書込みアドレス及び読出しアドレスの変化を中心に説明する。
【０００９】
カウンタ２２は６ビットのものであり、アドレス０〜６３を６４サイクルかかって、アドレス変換ＲＯＭ２１及び選択器２３に順次出力していく。ＲＡＭ２０に入力データ２０１を書込む際には、選択器２３はカウンタ２２の出力アドレス２０３を選択する状態になっており、選択されたアドレス２０５がＲＡＭ２０に与えられる。かくして、ＲＡＭ２０には、０、１、２、３、…、６３と変化する図３（ｄ）に示す書込みアドレスが与えられ、各アドレスエリアに入力データ２０１が格納される。アドレス変換ＲＯＭ２１は、カウンタ２２からの０から６３まで１インクリメントずつ変化するアドレス２０３を、図３（ｃ）に示すジグザグスキャン状（０、１、８、１６、…、６４）に変化するアドレス２０４に変換するものである。ＲＡＭ２０から出力データ２０２を読出す際には、選択器２３はＲＯＭ２１の出力アドレス２０４を選択する状態になっており、選択されたアドレス２０５がＲＡＭ２０に与えられる。かくして、ＲＡＭ２０には、０、１、８、１６、…、６４と変化する図３（ｄ）に示す読出しアドレスが与えられ、各アドレスエリアからデータ２０２が出力される。
【００１０】
一方、画像伸張時においては、入力データ２０１をＲＡＭ２０に順次書込む際に、図３（ｅ）に示すようにアドレス変換ＲＯＭ２１からのアドレス２０４が書込みアドレスとして選択され、ＲＡＭ２０から格納データ２０２を読出す際には、図３（ｅ）に示すようにカウンタ２２からのアドレス２０３が読出しアドレスとして選択され、ジグザグスキャン状のデータ２０１が元のラスタスキャン状のデータ２０２に変換される。
【００１１】
【発明が解決しようとする課題】
しかしながら、図４に示すジグザグスキャン回路２では、ＲＯＭ２１を利用してデータ順序変換用の一方のアドレスを発生しているため、以下のような課題を有するものであった。
【００１２】
クロック同期形のＲＯＭ２１を用いた場合には、ＲＯＭ２１にアドレスを入力させてデータ（変換アドレス）を読出すサイクルと、読み出された変換アドレスをＲＡＭ２０に与えるサイクルとが必要となり、１個のデータをＲＡＭ２０にアクセスさせるのに２サイクル必要となって処理速度が低速となる。これを避けようとすると、ＲＯＭ２１をパイプライン的に動作させることを要するが、セレクタレジスタ等が必要となって構成が複雑になる。なお、非同期形のＲＯＭ２１は、消費電力が大きいと共に、処理速度はクロック同期形のものより遅い。
【００１３】
ＲＯＭ２１は、他の集積回路に比べて占有面積が大きく、ジグザグスキャン回路の小形化には適していない。また、ＲＯＭ２１をＲＡＭ２０と同一の集積回路チップ内に形成するとしても、その占有面積が大きいことは他の構成用の面積を制限してしまう。
【００１４】
そのため、データ順序の変換を高速に実行できるジグザグスキャン回路や、小形化に寄与できるジグザグスキャン回路が望まれている。
【００１５】
【課題を解決するための手段】
かかる課題を解決するため、本発明は、入力データを一時記憶するＲＡＭと、該ＲＡＭに該入力データを書込む際に与える書込みアドレス及び該ＲＡＭから格納データを読出す際に与える読出しアドレスを発生するアドレス発生回路とを備えたジグザグスキャン回路であって、アドレス発生回路が、以下の構成要素により構成されていることを特徴とする。
【００１６】
すなわち、アドレス発生回路が、(1)ジグザグスキャン用のアドレスを生成するために用いられる状態遷移パラメータを格納する状態遷移レジスタと、(2)Ｙアドレスを示す上位ビットとＸアドレスを示す下位ビットとにより構成され、上記ＲＡＭに出力されるアドレスを一時的に格納するアドレスレジスタと、(3)上記アドレスレジスタから出力された上記アドレスを１つだけ増加するインクリメンタと、(4)上記状態遷移パラメータを用いて、ジグザグスキャン用のアドレスを生成するジグザグアドレス演算回路と、(5)画像圧縮時に上記入力データを上記ＲＡＭに書込むとき若しくは画像伸張時に上記ＲＡＭから上記格納データを読出すときに上記インクリメンタから出力された上記アドレスを選択し、画像圧縮時に上記ＲＡＭから上記格納データを読出すとき若しくは画像伸張時に上記入力データを上記ＲＡＭに書込むときに上記ジグザグ演算回路から出力された上記アドレスを選択する選択回路とにより構成されていることを特徴とする。
【００１９】
【作用】
ジグザグスキャン状のアドレス変化は、相前後する２個のアドレスの変化状態に着目すると、数種類の状態のいずれかである。従って、現アドレスと状態遷移が定まると、次のアドレスと次の状態遷移を定めることができる。
【００２０】
本発明では、アドレスの遷移状態を規定する状態遷移パラメータを状態遷移レジスタに保持し、ジグザグアドレス演算回路が、この状態遷移パラメータをも利用してジグザグスキャン用のアドレスを生成する。また、アドレスレジスタとインクリメンタとによって、ラスタスキャン用のアドレスを生成する。そして、選択回路は、画像圧縮時に入力データをＲＡＭに書込むとき若しくは画像伸張時にＲＡＭから格納データを読出すときにインクリメンタから出力されたアドレスを選択し、画像圧縮時にＲＡＭから格納データを読出すとき若しくは画像伸張時に入力データをＲＡＭに書込むときにジグザグ演算回路から出力されたアドレスを選択する。
【００２１】
ジグザグアドレス演算回路は、ビットデータでなる現アドレス及び状態遷移パラメータを処理するので論理ゲートで構成でき、その結果、高速処理を可能とすると共に、ジグザグスキャン回路全体の小形化に寄与できる。
【００２４】
なお、本発明において、ＲＡＭを２面（又は３面以上）設けて対称動作（又は切替え動作）させることにより、一段と高速に処理させることができるようになる。
【００２５】
【実施例】
（Ａ）第１実施例
以下、本発明によるジグザグスキャン回路の第１実施例を図面を参照しながら詳述する。ここで、図１がこの第１実施例のジグザグスキャン回路２−１の構成を示すものであり、上述した図４との同一、対応部分には、同一符号を付して示している。
【００２６】
図１において、第１実施例のジグザグスキャン回路２−１も、大きくみれば、ＲＡＭ２０及びアドレス発生回路２４からなり、アドレス発生回路２４が発生した書込みアドレス２０５に基づいて、入力データ２０１をＲＡＭ２０に書込み、その後、アドレス発生回路２４が発生した読出しアドレス２０５に基づいて、格納データ２０２をＲＡＭ２０から読出すことを通じて、６４ワード（１ワードは１１ビット）のデータの順序を変換するものである。
【００２７】
しかし、アドレス発生回路２４の詳細構成が、「従来の技術」の項で説明した図４に示すジグザグスキャン回路２とは異なっている。なお、ＲＡＭ２０は同一のものである。ＲＡＭ２０は、図１に示す書込みデータ端子ＷＤや読出しデータ端子ＲＤやアドレス端子Ａの他に、図示は省略しているが、書込み又は読出しを指示する信号やクロック信号等の各種のコントロール信号用の入出力端子を当然に備えている。
【００２８】
この第１実施例のアドレス発生回路２４は、例えば、これ全体が１チップで構成されているものであり、アドレスレジスタ２５、状態遷移レジスタ２６、インクリメンタ２７、ジグザグアドレス演算回路２８及び選択器２９から構成されている。
【００２９】
アドレスレジスタ２５は、ＲＡＭ２０に与える６ビット構成のアドレス２０５を一時記憶するものであり、一時記憶したアドレス２０５は、ＲＡＭ２０だけでなくインクリメンタ２７及びジグザグアドレス演算回路２８にも与えられる。
【００３０】
状態遷移レジスタ２６は、ジグザグアドレス演算回路２８から出力された４ビット構成の状態遷移パラメータ２０７（ＳＹＵ、ＳＹＤ、ＳＸＵ、ＳＸＤ）を一時記憶するものであり、一時記憶した状態遷移パラメータ２０７をジグザグアドレス演算回路２８に出力するものである。
【００３１】
インクリメンタ２７は、アドレスレジスタ２５に一時記憶されたアドレス２０５を１インクリメントして選択器２９に与えるものである。
【００３２】
ジグザグアドレス演算回路２８は、後述する一例のように例えばゲートアレイで構成され、アドレスレジスタ２５からのアドレス２０５及び状態遷移レジスタ２６からの状態遷移パラメータ２０７に基づいて、次のタイミングでのアドレス２０９及び状態遷移パラメータ２０８を形成してそれぞれ、選択器２０９、状態遷移レジスタ２６に出力するものである。
【００３３】
なお、ジグザグアドレス演算回路２８の動作原理、構成及び動作の詳細については後述する。
【００３４】
選択器２９は、外部から与えられたアドレス種類信号（図示せず）に基づいて、ジグザグアドレス演算回路２８からのアドレス２０９又はインクリメンタ２７からのアドレス２０６の一方を選択し、選択アドレス２１０をアドレスレジスタ２５に入力させるものである。ここで、選択器２９は、画像圧縮時に入力データ２０１をＲＡＭ２０に書込む際や、画像伸張時にＲＡＭ２０から格納データ２０２を読出す際には、アドレス種類信号に基づいて、インクリメンタ２７からのアドレス２０６を選択させ、画像圧縮時に格納データ２０２をＲＡＭ２０から読出す際や、画像伸張時にＲＡＭ２０に入力データ２０１を書込む際には、アドレス種類信号に基づいて、ジグザグアドレス演算回路２８からのアドレス２０９を選択させる。
【００３５】
以上の構成を有するジグザグスキャン回路２−１は、画像圧縮時には以下のように動作する。
【００３６】
画像圧縮時において、ＲＡＭ２０に入力データ２０１を書込む際には、選択器２９はインクリメンタ２７からのアドレス２０６を選択する状態になると共に、アドレスレジスタ２５は初期値として“００００００”（２進表記）が設定される。かくして、ＲＡＭ２０には、インクリメント２７が１インクリメントずつ更新させた０、１、２、３、…、６３（１０進表記）と変化する書込みアドレス２０５（図３（ｄ）参照）が与えられ、各アドレスエリアに入力データ２０１が格納される。全６４ワードの入力データ２０１がＲＡＭ２０に格納されると、ＲＡＭ２０からの読出し動作に移行する。
【００３７】
この画像圧縮時において、ＲＡＭ２０から格納データ２０２を読出す際には、選択器２９はジグザグアドレス演算回路２８からのアドレス２０９を選択する状態になると共に、アドレスレジスタ２５は初期値として“００００００”（２進表記）が設定され、状態遷移レジスタ２６には初期値として“０１１０”（２進表記；意味については後述する）が設定される。ジグザグアドレス演算回路２８は、両レジスタ２５及び２６の格納データに基づいて、ジグザグスキャン状に従う次のアドレス２０９と、現アドレスから次のアドレスへ移行する際の状態遷移を規定する状態遷移パラメータ２０８とを順次出力し、これにより、アドレスレジスタ２５に保持されてＲＡＭ２０に与えられる読出しアドレス２０５は、０、１、８、１６、…、６４（１０進表記）のようにジグザグスキャン状に変化する（図３（ｄ）参照）。
【００３８】
かくして、上記図３（ｂ）に示すようなラスタスキャン状のデータ順序に従う入力データ２０１が上記図３（ｃ）に示すようなジグザグスキャン状のデータ順序に従う出力データ２０２に変換される。
【００３９】
一方、画像伸張時において、入力データ２０１をＲＡＭ２０に順次書込む際には、ジグザグアドレス演算回路２８が形成して選択器２９を介してアドレスレジスタ２５に与えられて一時記憶された０、１、８、１６、…、６４（１０進表記）のようにジグザグスキャン状に変化するアドレス２０９が書込みアドレス２０５としてＲＡＭ２０に与えられ（図３（ｅ）参照）、ＲＡＭ２０から格納データ２０２を読出す際には、インクリメンタ２７が１インクリメントずつ更新し、選択器２９を介してアドレスレジスタ２５に与えられて一時記憶された０、１、２、３、…、６４（１０進表記）のようにラスタスキャン状に変化するアドレス２０６が読出しアドレス２０５としてＲＡＭ２０に与えられる（図３（ｅ）参照）。
【００４０】
かくして、上記図３（ｃ）に示すようなジグザグスキャン状のデータ順序に従う入力データ２０１が上記図３（ｂ）に示すようなラスタスキャン状のデータ順序に従う出力データ２０２に変換される。
【００４１】
以下、ジグザグアドレス発生回路２８について、動作原理、動作及び構成について詳述する。
【００４２】
この実施例の場合、６ビットのアドレス２０５は、ジグザグアドレス演算回路２８での処理との関係では、上位３ビットと下位３ビットとに区別されている。今、画像圧縮時にシリアルに入力される６４ワードの各データに対して、アドレス００００００〜１１１１１１（２進表記；１０進表記では０〜６３）を対応付け、それら６４ワードのシリアルデータを８×８の方形状にラスタ状に配置したと考えると、各ワードについての６ビットアドレスは、図５に示すように、下位３ビットが横方向（以下、Ｘ方向と呼ぶ）の位置を規定し、上位３ビットが縦方向（以下、Ｘ方向と呼ぶ）の位置を規定していることになる。以下、下位３ビットをジグザグアドレス発生回路２８との関係ではＸアドレスと呼び、上位３ビットをジグザグアドレス発生回路２８との関係ではＹアドレスと呼ぶ。
【００４３】
また、図５に示すようなＸアドレス及びＹアドレスの組として、各データのアドレスを捕らえた場合において、ジグザグスキャン上でのアドレス変化状態は、図６に示すような４個の状態Ｓ１〜Ｓ４に分類できる。すなわち、次のアドレスは、現アドレスよりＸアドレスのみ＋１したアドレスになる状態Ｓ１（図中実線で示している）、次のアドレスは、現アドレスよりＹアドレスのみ＋１したアドレスになる状態Ｓ２（図中破線で示している）、次のアドレスは、現アドレスよりＸアドレスは−１、Ｙアドレスは＋１になる状態Ｓ３（図中１点鎖線で示している）、次のアドレスは、現アドレスよりＸアドレスは＋１、Ｙアドレスは−１になる状態Ｓ４（図中２点鎖線で示している）に分類できる。
【００４４】
これら４状態Ｓ１〜Ｓ４を区別するための状態遷移パラメータの表現としては、種々のものがある。
【００４５】
例えば、Ｙアドレスが変化したか（“１”）否か（“０”）を表す１ビットパラメータと、Ｙアドレスが変化した場合に＋１か（“１”）−１か（“０”）を表す１ビットパラメータと、Ｘアドレスが変化したか（“１”）否か（“０”）を表す１ビットパラメータと、Ｘアドレスが変化した場合に＋１か（“１”）−１か（“０”）を表す１ビットパラメータとの４ビットパラメータで表現することができる。また例えば、Ｙアドレスが＋１変化したか（“１”）か否か（“０”）を表す１ビットパラメータＳＹＵと、Ｙアドレスが−１変化したか（“１”）か否か（“０”）を表す１ビットパラメータＳＹＤと、Ｘアドレスが＋１変化したか（“１”）か否か（“０”）を表す１ビットパラメータＳＸＵと、Ｘアドレスが−１変化したか（“１”）か否か（“０”）を表す１ビットパラメータＳＸＤとの４ビットパラメータで表現することができる。
【００４６】
この実施例では、後者の表現を用いることとした。なお、前者の表現を用いて構成したジグザグアドレス演算回路を適用したものも本発明の他の実施例を構成する。
【００４７】
従って、図６に示すように、状態Ｓ１は、４ビットの状態遷移パラメータＳＹＵ、ＳＹＤ、ＳＸＵ、ＳＸＤで“００１０”、状態Ｓ２は“１０００”、状態Ｓ３は“１００１”、状態Ｓ４は“０１１０”で表される。
【００４８】
これら状態遷移パラメータＳＹＵ、ＳＹＤ、ＳＸＵ、ＳＸＤが上述した状態遷移レジスタ２６に一時保持される。
【００４９】
ここで、現アドレス２０５がアドレスレジスタ２５に一時記憶されると同時に状態遷移レジスタ２６に一時記憶される状態遷移パラメータ２０７（ＳＹＵ、ＳＹＤ、ＳＸＵ、ＳＸＤ）としては、現アドレス２０５に遷移した際の状態遷移パラメータ２０７（ＳＹＵ、ＳＹＤ、ＳＸＵ、ＳＸＤ）を記憶することと、現アドレス２０５から次のアドレスへの遷移を表す状態遷移パラメータ２０７（ＳＹＵ、ＳＹＤ、ＳＸＵ、ＳＸＤ）を一時記憶させることとが考えられるが、この実施例では前者を採用している。なお、後者の一時記憶方法も本発明の他の実施例を構成する。
【００５０】
図６から明らかなように、上記４状態Ｓ１〜Ｓ４間の遷移を整理すると図７に示す状態遷移図で表すことができる。
【００５１】
まず、状態Ｓ１からの遷移を考える。状態Ｓ１からは状態Ｓ３及びＳ４に遷移し得る（Ａ１３、Ａ１４）。状態Ｓ３へ遷移するか状態Ｓ４に遷移するかは、そのときのＹアドレスによって区別できる。すなわち、図６から明らかなように、Ｙアドレスが“０００”のときの状態Ｓ１からは状態Ｓ３に遷移し、Ｙアドレスが“１１１”のときの状態Ｓ１からは状態Ｓ４に遷移するので、Ｙアドレスによって区別できる。
【００５２】
次に、状態Ｓ２からの遷移を考える。状態Ｓ２からは状態Ｓ３及びＳ４に遷移し得る（Ａ２３、Ａ２４）。状態Ｓ３へ遷移するか状態Ｓ４に遷移するかは、そのときのＸアドレスによって区別できる。すなわち、図６から明らかなように、Ｘアドレスが“０００”のときの状態Ｓ２からは状態Ｓ４に遷移し、Ｘアドレスが“１１１”のときの状態Ｓ２からは状態Ｓ３に遷移するので、Ｘアドレスによって区別できる。
【００５３】
次に、状態Ｓ３からの遷移を考える。状態Ｓ３からは状態Ｓ１、Ｓ２及びＳ３に遷移し得る（Ａ３１、Ａ３２、Ａ３３）。どの状態Ｓ１、Ｓ２及びＳ３に遷移するかは、そのときのＸアドレスやＹアドレスによって区別できる。すなわち、図６から明らかなように、Ｘアドレスが“０００”のときの状態Ｓ３からは状態Ｓ２に遷移し、Ｙアドレスが“１１１”のときの状態Ｓ３からは状態Ｓ１に遷移し、これ以外の状態Ｓ３からは状態Ｓ３に遷移するので、Ｘアドレス及びＹアドレスによって区別できる。
【００５４】
最後に、状態Ｓ４からの遷移を考える。状態Ｓ４からは状態Ｓ１、Ｓ２及びＳ４に遷移し得る（Ａ４１、Ａ４２、Ａ４４）。どの状態Ｓ１、Ｓ２及びＳ４に遷移するかは、そのときのＸアドレスやＹアドレスによって区別できる。すなわち、図６から明らかなように、Ｙアドレスが“０００”のときの状態Ｓ４からは状態Ｓ１に遷移し、Ｘアドレスが“１１１”のときの状態Ｓ４からは状態Ｓ２に遷移し、これ以外の状態Ｓ４からは状態Ｓ４に遷移するので、Ｘアドレス及びＹアドレスによって区別できる。
【００５５】
このようにして現アドレス及び現状態から次の状態が定まると、現アドレス及び次の状態から次のアドレスを決定することができる。
【００５６】
アドレス発生時の初期値としては、現アドレスは当然に“００００００”であり、上記遷移条件から逆に考えると、初期の状態遷移パラメータ２０７が表す状態は状態Ｓ４（“０１１０”）である。
【００５７】
図８は、上記遷移規則を適用した場合のＹアドレス、Ｘアドレス、状態遷移パラメータＳＹＵ、ＳＹＤ、ＳＸＵ、ＳＸＤのサイクル毎の変化を示すものである。ここで、Ｙアドレス、Ｘアドレス、状態遷移パラメータＳＹＵ、ＳＹＤ、ＳＸＵ、ＳＸＤは全てビットデータであるので、かかる遷移を実現するジグザグアドレス演算回路２８は、論理ゲートの組み合わせによって実現できる。
【００５８】
図９〜図１１は、上記遷移規則を適用した論理ゲートの組み合わせによって実現されたジグザグアドレス演算回路２８の一構成例を示すものである。
【００５９】
この構成例は、Ｘアドレスに変化がない状態の次にはＸアドレスに変化がある状態が現れることや（Ｓ２からＳ３又はＳ２からＳ４）、Ｙアドレスに変化がない状態の次にはＹアドレスに変化がある状態が現れること（Ｓ１からＳ３又はＳ１からＳ４）等の性質を、次の状態遷移パラメータＳＹＵ、ＳＹＤ、ＳＸＵ、ＳＸＤの形成に利用している。また、ＸアドレスやＹアドレスの変化は、＋１、０、−１のいずれかであることを、次のアドレスの形成に利用している。
【００６０】
図９は、主として、次の状態遷移パラメータＳＹＵ、ＳＹＤ、ＳＸＵ、ＳＸＤや次のアドレスを形成するための条件値を作成する部分である。図９（ａ）に示す部分は、アドレスレジスタ２５からのアドレス２０５をＹアドレス及びＸアドレスと区別して取り込む部分である。図９（ｂ）に示す部分は、状態遷移レジスタ２６からの状態遷移パラメータ２０７をＹ方向及びＸ方向のパラメータとして区別して取り込むと共に、その否定値を形成する部分である。図９（ｃ）に示す部分は、Ｙアドレスが“０００”や“１１１”であるか否かを示す条件値を形成する部分である。図９（ｄ）に示す部分は、Ｘアドレスが“０００”や“１１１”であるか否かを示す条件値を形成する部分である。図９（ｅ）に示す部分は、現状態がＹ方向に変化した状態か否かを表す条件値を形成する部分である。図９（ｆ）に示す部分は、現状態がＸ方向に変化した状態か否かを表す条件値を形成する部分である。図９（ｇ）に示す部分は、最終アドレス（“１１１１１１”）に到達したか否かを表す部分である。
【００６１】
図１０は、各種条件値に基づいて、次の状態遷移パラメータを形成して状態遷移レジスタ２６に出力する部分を示している。図１０（ａ）、（ｂ）、（ｃ）、（ｄ）に示す部分はそれぞれ、次の状態の状態遷移パラメータＳＹＵ、ＳＹＤ、ＳＸＵ、ＳＸＤを形成する部分である。
【００６２】
図１１は、次の状態及び現アドレス等から次のアドレスを形成する部分を示している。図１１（ａ）、（ｂ）に示す部分はそれぞれ、次のＸアドレス、Ｙアドレスを形成してアドレスレジスタ２５に出力する部分である。次のＸアドレス、Ｙアドレスはそれぞれ、現Ｘアドレス、現Ｙアドレスに＋１、０、−１のいずれかの操作を行なうことで形成でき、図１１（ｃ）は、図１１（ａ）、（ｂ）におけるかかる操作を行なう部分２８ａの詳細構成例を示している。
【００６３】
以上のように、第１実施例によれば、ジグザグスキャンを一種の状態遷移とみなして、ジグザグスキャン状のアドレス発生を、論理ゲートでなるジグザグアドレス演算回路、状態遷移レジスタ及びアドレスレジスタとの協働によって行なうようにしたので、ジグザグスキャン発生回路の占有面積を小さくできて小形化に寄与できると共に、高速にアドレスを発生できるようになる。なお、第１実施例のジグザグスキャン回路は、特に、そのアドレス発生回路２４は、セミカスタム、ゲートアレイ向きである。
【００６４】
上記説明においても、第１実施例を変形したいくつかの他の実施例を挙げたが、更に、以下のような第１実施例を変形したいくつかの他の実施例を挙げることができる。
【００６５】
第１実施例は、ジグザグスキャン状のアドレスの形成構成に特徴があり、ラスタスキャン状のアドレスの形成構成は、第１実施例のものに限定されない。例えば、クロックによって１インクリメントずつ行なうカウンタを用いたものであっても良い。また、アドレスレジスタ２５及びインクリメンタ２７（又はカウンタ）の出力側に選択器２９を設けることも可能である。
【００６６】
第１実施例においては、次のアドレスをＸアドレス及びＹアドレスを別個に操作することで形成するものを示したが、Ｘアドレス及びＹアドレスを区別することなく、全体のアドレスを操作して新たなアドレスを形成するようにしても良い。例えば、図５から明らかなように、サイクル毎の全体アドレスの変化は、＋１、＋７、＋８及び−７の４種類しかなく、この変化は状態の遷移によって一義なので、この性質を利用して次のアドレスを形成するようにしても良い。
【００６７】
また、第１実施例においては、次の状態遷移パラメータを形成した後、次のアドレスを形成するものを示したが、逆の順序で形成するようにしても良い。例えば、他の実施例として上述した状態遷移レジスタ２６に現アドレスから次のアドレスへの変化状態に係る状態遷移パラメータを格納するものの場合、このような順序での処理が構成を簡単にする。
【００６８】
さらに、第１実施例においては、ジグザグスキャンでのアドレス変化状態を４種類に別けてジグザグアドレス演算回路２８を構成したものを示したが、状態数や状態を区別する観点はこれに限定されるものではない。例えば、上述した状態Ｓ１を、Ｙアドレスが“０００”での状態とＹアドレスが“１１１”での状態とに分け、また、上述した状態Ｓ２を、Ｘアドレスが“０００”での状態とＸアドレスが“１１１”での状態とに分け、計６種類の状態にし、これら６種類の状態遷移に応じてジグザグアドレス演算回路２８を形成するようにしても良い。
【００６９】
（Ｂ）第２実施例
次に、本発明によるジグザグスキャン回路の第２実施例を図面を参照しながら詳述する。ここで、図１２がこの第２実施例のジグザグスキャン回路２−２の構成を示すものである。
【００７０】
この第２実施例においては、データ順序を変換するためにデータが書き込れると共に、その後読み出されるＲＡＭとして２個の同一構成のＲＡＭ２０ａ及び２０ｂが設けられており、これらＲＡＭ２０ａ及び２０ｂは、第１の実施例のものと同様なものである。これらＲＡＭ２０ａ及び２０ｂは、図示しない書込／読出コントロール信号に応じて、相補的に（対称的に）動作するものである。すなわち、ＲＡＭ２０ａが入力データ２０１を書込んでいるときには、ＲＡＭ２０ｂは格納データ２０２ｂを読出し動作し、ＲＡＭ２０ａが格納データ２０２ａを読出しているときには、ＲＡＭ２０ｂは入力データ２０１を書込み動作する。
【００７１】
これらＲＡＭ２０ａ及び２０ｂに対するアドレス発生構成は共用化されており、アドレス発生構成としては、カウンタ２２、ジグザグアドレス発生回路２４ａ、２個の選択器３８及び３９が該当する。
【００７２】
カウンタ２２は６ビット構成のものであり、アドレスをラスタスキャン状に発生するものである。発生したアドレス２０３は、選択器３８及び３９に選択入力として与えられる。
【００７３】
ジグザグアドレス発生回路２４ａは、その内部構成が、第１の実施例のアドレス発生回路２４から、インクリメンタ２７及び選択器２９を取除き、データ線２０９及び２１０を直接接続したものに等しい（図１参照）。従って、ジグザグアドレス発生回路２４ａは、ジグザグスキャン状に従うアドレス２０５を発生し、このアドレス２０５も選択器３８及び３９に選択入力として与えられる。
【００７４】
選択器３８は、ジグザグアドレス発生回路２４ａからのアドレス２０５と、カウンタ２６からのアドレス２０３との一方を選択して、ＲＡＭ２０ａに入力するものである。一方、選択器３９は、ジグザグアドレス発生回路２４ａからのアドレス２０５と、カウンタ２６からのアドレス２０３との一方を選択して、ＲＡＭ２０ｂに入力するものである。ここで、選択器３８及び３９は、図示しない選択制御信号に応じて、一方がジグザグアドレス発生回路２４ａからのアドレス２０５を選択しているときには、他方がカウンタ２６からのアドレス２０３を選択するように制御される。
【００７５】
両ＲＡＭ２０ａ及び２０ｂから読み出されたデータ２０２ａ及び２０２ｂは共に、選択器３７に与えられ、選択器３７は、図示しない選択制御信号に応じて、そのとき、読出し動作を実行しているＲＡＭ２０ａ又は２０ｂからの出力データ２０２（２０２ａ又は２０２ｂ）を選択して、当該ジグザグスキャン回路２−２からの出力データとして送出する。
【００７６】
上述したように、画像圧縮時と画像伸張時とでは、書込みアドレス及び読出しアドレスとして、ラスタスキャン状又はジグザグスキャン状のいずれのアドレスを選択するかの違うだけであり、その他は同様であるので、以下では画像圧縮時についてのみ図１３をも参照しながら動作を説明する。なお、図１３は、当該ジグザグスキャン回路２−２に与えられる動作クロック（図１２では省略している）と、ＲＡＭ２０ａ及び２０ｂの動作内容との関係を示すものである。
【００７７】
まず、選択器３８をカウンタ２２からのアドレス２０３を選択する状態に切り替え、カウンタ２２からのラスタスキャン状に変化するアドレス２０３をＲＡＭ２０ａに与えて、最初の６４サイクルＴ１の入力データ２０１をＲＡＭ２０ａに格納させる。
【００７８】
ＲＡＭ２０ａに対する全ての書込みが完了すると、選択器３８をジグザグアドレス発生回路２４ａからのアドレス２０５を選択する状態に切り替え、一方、選択器３９をカウンタ２２からのアドレス２０３を選択する状態に切り替え、さらに、選択器３７をＲＡＭ２２ａからの出力データ２０２ａを選択する状態に切り替える。これにより、新たな６４サイクルＴ２では、ＲＡＭ２０ａから前の６４サイクルＴ１で格納された６４ワードのデータ２０２ａがジグザグスキャン状に読み出されて外部に出力され、これに並行して、ＲＡＭ２０ｂに６４ワードの入力データ２０１がラスタスキャン状に書き込まれる。
【００７９】
かかる６４サイクルＴ２が終了すると、選択器３８をカウンタ２２からのアドレス２０３を選択する状態に切り替え、一方、選択器３９をジグザグアドレス発生回路２４ａからのアドレス２０５を選択する状態に切り替え、さらに、選択器３７をＲＡＭ２２ｂからの出力データ２０２ｂを選択する状態に切り替える。これにより、新たな６４サイクルＴ３では、ＲＡＭ２０ｂから前の６４サイクルＴ２で格納された６４ワードのデータ２０２ｂがジグザグスキャン状に読み出されて外部に出力され、これに並行して、ＲＡＭ２０ａに６４ワードの入力データ２０１がラスタスキャン状に書き込まれる。
【００８０】
以下、以上のようなＲＡＭ２２ａ及び２２ｂに対する相補的な動作が繰り返され、入力データ２０１を待機させることなく、入力データ２０１をジグザグスキャン状に変化する順序のデータに連続して変換できる。
【００８１】
従って、上記第２実施例によれば、データ順序変換用のＲＡＭとして２面を用いて連続的にデータ順序を変換すると共に、ジグザグアドレス発生回路として、ジグザグスキャンを一種の状態遷移とみなして構成したものを適用したので、ハードウエアの僅かな大型化でかなりの高速性を実現できるジグザグスキャン回路を提供できる。なお、第２実施例のジグザグスキャン回路は、高速のセミカスタム、ゲートアレイ向きである。
【００８２】
なお、第２実施例を変形した実施例としては、ラスタスキャン状アドレスをカウンタ２２ではなくインクリメンタが発生するようにしたものや、アドレスが７ビット以上である２ポートＲＡＭをＲＡＭ２０ａ及び２０ｂとして用いたもの等を挙げることができる。後者の場合、アドレスが７ビット目以上の上位ビットでＲＡＭ２０ａ及び２０ｂとして動作するメモリ領域を特定することを要する。
【００８３】
（Ｃ）第３実施例
次に、本発明によるジグザグスキャン回路の第３実施例を図面を参照しながら詳述する。ここで、図１４がこの第３実施例のジグザグスキャン回路２−３の構成を示すものである。
【００８４】
第３実施例のジグザグスキャン回路２−３は、データ順序変換のために入力データ２０１を一時記憶するＲＡＭ２０−１と、ラスタスキャン状アドレスを発生するカウンタ２２から構成されている。
【００８５】
この第３実施例のＲＡＭ２０−１は、２種類のアドレス入力ポートＡＡ及びＢＡを有し、その双方にカウンタ２２からのアドレス２０３が入力されるようになされており、また、いずれのアドレス入力ポートを有効とするかを表すアドレス制御信号２２０も入力されるようになされている。
【００８６】
ＲＡＭ２０−１の内部は、ラスタスキャン用アドレスデコーダ３０、ＲＡＭセルアレイ３１、ジグザグスキャン用アドレスデコーダ３２、第１のトライステートバッファ群３３ａ〜３３ｎ、第２のトライステートバッファ群３４ａ〜３４ｎ及びインバータ３５から構成されている。
【００８７】
ＲＡＭセルアレイ３１は、内部構成（セルやセンスアンプ等）が一般的なＲＡＭのものと同様なものであるが、第１のトライステートバッファ群３３ａ〜３３ｎを介してラスタスキャン用アドレスデコーダ３０から所望のワード線に駆動電圧が適宜供給され得ると共に、第２のトライステートバッファ群３４ａ〜３４ｎを介してジグザグスキャン用アドレスデコーダ３２から所望のワード線に駆動電圧が適宜供給され得るようになっている。
【００８８】
ラスタスキャン用アドレスデコーダ３０は、第１実施例や第２実施例のＲＡＭ２０、２０ａ、２０ｂと同様なデコードを行なうものであり、入力アドレス２０３によって定まるＲＡＭセルアレイ３１のワード線に駆動電圧を供給するものである。一方、ジグザグスキャン用アドレスデコーダ３２は、ラスタスキャン用アドレスデコーダ３０のデコード内容が図１５のカラムＣ１及びＣ２に示すような場合に、図１５のカラムＣ３に示すように入力アドレス２０３をデコードし、ＲＡＭセルアレイ３１のデコードで定まったワード線に駆動電圧を供給するものである。
【００８９】
第１のトライステートバッファ群３３ａ〜３３ｎは、アドレス制御信号２２０が“１”のときに、ラスタスキャン用アドレスデコーダ３０をＲＡＭセルアレイ３１に接続させ、これに対して、アドレス制御信号２２０が“０”のときに、ラスタスキャン用アドレスデコーダ３０をＲＡＭセルアレイ３１から切り離すものである。第２のトライステートバッファ群３３ａ〜３３ｎには、アドレス制御信号２２０がインバータ３５を介して反転されて与えられる。そのため、第２のトライステートバッファ群３３ａ〜３３ｎは、アドレス制御信号２２０が“０”のときに、ジグザグスキャン用アドレスデコーダ３２をＲＡＭセルアレイ３１に接続させ、これに対して、アドレス制御信号２２０が“１”のときに、ジグザグスキャン用アドレスデコーダ３２をＲＡＭセルアレイ３１から切り離す。
【００９０】
なお、図１４では、書込み又は読出しを指示するコントロール信号等の信号線やその処理構成は図示を省略している。
【００９１】
次に、画像圧縮時の動作を説明する。最初の６４サイクルによって、６４ワードの入力データ２０１を順次ＲＡＭ２０−１の各ワードに書き込んで行く際には、アドレス制御信号２２０はその期間中“１”を示している。カウンタ２２が初期値０から順次カウントアップし、アドレス２０３が０から６３に順次変化する。ラスタスキャン用アドレスデコーダ３０があるサイクルのアドレス２０３をデコードしたときには、第１のトライステートバッファ群３３ａ〜３３ｎを介してＲＡＭセルアレイ３１の所望のワード線に駆動電圧が供給され、そのサイクルでの入力データ２０１が格納される。このようにして、ＲＡＭ２０−１には第０番地から第６３番地のワードまで順序よくデータが書き込まれる。
【００９２】
ＲＡＭ２０−１に６４ワードのデータ２０１が書き込まれた後、６４サイクルかかってデータを読み出すこととなる。ＲＡＭ２０−１から格納データ２０２を読出して出力していく際には、アドレス制御信号２２０は“０”を示しており、この間、ＲＡＭセルアレイ３１へのワード線の駆動電圧は、第２のトライステートバッファ群３４ａ〜３４ｎを介してジグザグスキャン用アドレスデコーダ３２から供給される。アドレスデコーダ３２は、カウンタ２２のカウントが０から６３まで順次カウントアップされていくに従って、ジグザグスキャン状の所望のワード線駆動電圧をＲＡＭセルアレイ３１に供給し、これによりＲＡＭセルアレイ３１から、ジグザグスキャンの順序でデータ２０２が読み出される。
【００９３】
従って、上記第３実施例によれば、ＲＡＭ２０−１内にジグザグスキャン用のデコーダを設けたので、占有面積が小さくなって小形化に寄与でき、しかも、別にゲート回路を設ける必要もなく設計が容易な高速動作が可能なジグザグスキャン回路を提供できる。なお、第３実施例のジグザグスキャン回路は、カスタム設計や面積重視設計に向いたものである。
【００９４】
第３実施例を変形した実施例としては、カウンタ２２をもＲＡＭ２２−１と同一チップ上に形成したものや、カウンタ２２に代えて他のアドレス発生構成を適用したもの等を挙げることができる。
【００９５】
（Ｄ）第４実施例
次に、本発明によるジグザグスキャン回路の第４実施例を図面を参照しながら詳述する。ここで、図１６がこの第４実施例のジグザグスキャン回路２−４の構成を示すものである。
【００９６】
第４実施例のジグザグスキャン回路２−４は、第３実施例に示す構成を２面持たせて相補動作（対称動作）させると共に、それらの出力データ２０２ａ及び２０２ｂを選択する選択器３７を設けたものである。そのため、各面の動作は第３実施例と同様であり、面の制御は第２実施例と同様であるので、動作の説明は省略する。
【００９７】
第４実施例によれば、ジグザグスキャン用のＲＡＭを２面設けて相補動作させるようにしたので、従来のものに比べて、格段的に高速にデータ順序変換を行なうことができるジグザグスキャン回路を提供できる。なお、第４実施例のジグザグスキャン回路は、カスタム設計や処理速度重視設計に向いたものである。
【００９８】
第４実施例を変形した実施例としては、２面のカウンタ２２ａ及び２２ｂを共用化させたものや、カウンタ２２ａ及び２２ｂに代えて他のアドレス発生構成を適用したもの等を挙げることができる。
【００９９】
（Ｅ）他の実施例
上記でも種々本発明の他の実施例について言及したが、さらにいくつかの他の実施例を挙げると以下の通りである。
【０１００】
上記各実施例では、データ順序の変換に供するワード数が６４個のものを示したが、整数の他の２乗がワード数のものにも本発明を適用することができる。また、各ワードのビット数も１１ビットに限定されるものではない。
【０１０１】
上記各実施例においては、ＲＡＭとして入力データ端子と出力データ端子とが別個のものを示したが、これらが同じ端子のＲＡＭであっても良い。
【０１０２】
本発明のジグザグスキャン回路は、画像符号化／復号化装置に適用されるだけでなく、画像符号化専用装置や画像復号化専用装置にも適用できる。さらに、データシャフリングを要する装置等にも適用可能である。
【０１０３】
上記第２実施例及び第４実施例においては、ＲＡＭを２面設けたものを示したが、タイミング等によって完全な対称動作が難しいのならば、３面以上設けて切り替えて用いるようにしても良い。
【０１０４】
【発明の効果】
以上のように、本発明によれば、高速処理が可能な小形のジグザグスキャン回路を提供できる。
【図面の簡単な説明】
【図１】第１実施例の構成を示すブロック図である。
【図２】画像符号化／復号化装置におけるジグザグスキャン回路の位置を示すブロック図である。
【図３】ジグザグスキャン回路によるデータ順序の変換の様子等の説明図である。
【図４】考えられる従来のジグザグスキャン回路を示すブロック図である。
【図５】第１実施例においてアドレスを方向別アドレスに別けて処理することの説明図である。
【図６】第１実施例での状態種類の説明図である。
【図７】第１実施例での状態遷移図である
【図８】第１実施例のジグザグスキャン時のアドレス及び状態遷移パラメータの変化を示す説明図である。
【図９】第１実施例のジグザグアドレス演算回路の詳細構成図（その１）である。
【図１０】第１実施例のジグザグアドレス演算回路の詳細構成図（その２）である。
【図１１】第１実施例のジグザグアドレス演算回路の詳細構成図（その３）である。
【図１２】第２実施例を示すブロック図である。
【図１３】第２実施例の動作の説明図である。
【図１４】第３実施例を示すブロック図である。
【図１５】第３実施例のＲＡＭ内デコーダのデコード内容の説明図である。
【図１６】第４実施例を示すブロック図である。
【符号の説明】
２−１、２−２、２−３、２−４…ジグザグスキャン回路、  ２０、２０ａ、２０ｂ、２０−１、２０−１ａ、２０−１ｂ…ＲＡＭ、  ２２、２２ａ、２２ｂ…カウンタ、  ２４…アドレス発生回路、  ２４ａ…ジグザグアドレス発生回路、  ２５…アドレスレジスタ、  ２６…状態遷移レジスタ、  ２７…インクリメンタ、  ２８…ジグザグアドレス演算回路、  ２９、３７〜３９…選択器、  ３０、３２…アドレスデコーダ、  ３１…ＲＡＭセルアレイ、  ３３ａ〜３３ｎ、３４ａ〜３４ｎ…トライステートバッファ、  ３５…インバータ。
【図１】
0003578497.tif 000002
【図２】
0003578497.tif 000003
【図３】
0003578497.tif 000004
【図４】
0003578497.tif 000005
【図５】
0003578497.tif 000006
【図６】
0003578497.tif 000007
【図７】
0003578497.tif 000008
【図８】
0003578497.tif 000009
【図９】
0003578497.tif 000010
【図１０】
0003578497.tif 000011
【図１１】
0003578497.tif 000012
【図１２】
0003578497.tif 000013
【図１３】
0003578497.tif 000014
【図１４】
0003578497.tif 000015
【図１５】
0003578497.tif 000016
【図１６】
0003578497.tif 000017