(57)【要約】      （修正有）【課題】画像符号化に用いるジグザグスキャンにおいて、ルックアップテーブルを不要とし、少ない回路規模で高速にジグザグスキャン可能なスキャン装置および方法を提供する。【解決手段】ジグザグスキャン時のアドレスの変化に一定の規則性を有し、アドレスの差分値に同じ値が連続することを利用して、ジグザグスキャンアドレス算出手段１０５において現ジグザグスキャンアドレス（ＩＸ）に反転増分値（ＤＺ）または継続増分値（ＤＸ）を加算して累積することにより、次のジグザグスキャンアドレス（ＮＥＸＴ）を算出する。スキャン方向判定手段１０２により、スキャン方向が変化した場合には、スキャン方向反転手段１０３により反転増分値（ＤＺ）または継続増分値（ＤＸ）を変化させる。このように、加減算だけてジグザグスキャンアドレスを算出することができる。【選択図】  図１
2004179932.tif 000002
【特許請求の範囲】
【請求項１】
画像符号化に用いるＮ×Ｎ（Ｎは２以上の整数）個の正方形配列されたブロックデータに対し、先頭ブロックアドレスから最終ブロックアドレスへとジグザグにスキャンするためのジグザグスキャン装置において、
現ジグザグスキャンアドレスと複数の増分値とを初期化するリセット手段と、アドレススキャン方向の反転タイミングを検出するスキャン方向判定手段と、前記スキャン方向判定手段の判定結果に基づき前記複数の増分値を変化させるスキャン方向反転手段と、前記スキャン方向判定手段の判定結果に基づき前記複数の増分値を切替える増分値切替手段と、前記現ジグザグスキャンアドレスに前記増分値切替手段で切替えられた増分値を加えて次のジグザグスキャンアドレスを算出するジグザグスキャンアドレス算出手段とを備え、Ｎ×Ｎ個の前記次のジグザグスキャンアドレスを発生するジグザグスキャンアドレス発生手段と、
連続アドレスを発生する連続アドレス発生手段と、前記次のジグザグスキャンアドレスと前記連続アドレスとを切替える第１のアドレス切替手段と、前記連続アドレスを用いて入力データを記憶し、前記第１のアドレス切替手段で切替えられた前記次のジグザグスキャンアドレスによりデータを出力するメモリとを有することを特徴とするジグザグスキャン装置。
【請求項２】
前記次のジグザグスキャンアドレスと対称な対称ジグザグスキャンアドレスを算出する対称アドレス算出手段と、前記次のジグザグスキャンアドレスと前記対称ジグザグスキャンアドレスと前記連続アドレスとを切替える第２のアドレス切替手段とを有し、前記ジグザグスキャンアドレス発生手段はＮ×Ｎ／２個の前記次のジグザグスキャンアドレスを発生することを特徴とする請求項１記載のジグザグスキャン装置。
【請求項３】
画像符号化に用いるＮ×Ｎ（Ｎは２以上の整数）個の正方形配列されたブロックデータに対し、先頭ブロックアドレスから最終ブロックアドレスへとジグザグにスキャンするためのジグザグスキャン方法において、
現ジグザグスキャンアドレスと複数の増分値とを初期化するリセット手順と、アドレススキャン方向の反転タイミングを検出するスキャン方向判定手順と、前記スキャン方向判定手順の判定結果に基づき前記複数の増分値を変化させるスキャン方向反転手順と、前記スキャン方向判定手順の判定結果に基づき前記複数の増分値を切替える増分値切替手順と、現ジグザグスキャンアドレスに前記増分値切替手順で切替えられた増分値を加えて次のジグザグスキャンアドレスを算出するジグザグスキャンアドレス算出手順とを備え、Ｎ×Ｎ個の前記次のジグザグスキャンアドレスを発生するジグザグスキャンアドレス発生手順と、前記現ジグザグスキャンアドレスによりメモリから出力データを読み出すジグザグスキャンデータ処理手順とを有することを特徴とするジグザグスキャン方法。
【請求項４】
前記スキャン方法は前記現ジグザグスキャンアドレスと対称な対称ジグザグスキャンアドレスを算出する対称アドレス算出手順と、前記現ジグザグスキャンアドレスによりデータメモリから出力データを読み出すジグザグスキャンデータ処理手順と、前記対称ジグザグスキャンアドレスにより前記メモリから出力データを読み出す対称ジグザグスキャンデータ処理手順とを有し、前記ジグザグスキャンアドレス発生手順はＮ×Ｎ／２個の前記次のジグザグスキャンアドレスを発生することを特徴とする請求項３記載のジグザグスキャン方法。
【請求項５】
請求項３または４に記載のジグザグスキャン方法におけるリセット手順と、スキャン方向判定手順と、スキャン方向反転手順と、増分値切替手順と、ジグザグスキャンアドレス算出手順と、ジグザグスキャンアドレス発生手順と、連続アドレス発生手順と、ジグザグスキャンデータ処理手順と、対称アドレス算出手順と、アドレス切替手順と、対称ジグザグスキャンデータ処理手順とをコンピュータに実行させるためのプログラム。
【請求項６】
コンピュータに請求項５に記載の手順を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像符号化に用いるＮ×Ｎの正方形配列されたブロックデータに対し、先頭ブロックデータから最終ブロックデータへとジグザグにスキャンするスキャン装置およびスキャン方法に関するものである。
【０００２】
【従来の技術】
従来、ジグザグにスキャンするためのアドレスの発生方法は、ジグザグにスキャンするためのブロックデータアドレスを記憶したルックアップテーブルを用いて、線形数列をジグザグスキャンアドレス数列に変換することによって実現されていた。
一例として、８×８の正方形配列のジグザグスキャン方法を、図３を用いて説明する。線形の０〜６３のアドレス空間を直線で示したように初期アドレス０から０→１→８→１６→９→２→３→１０→１７→２４・・・・→６３とジグザグ状にスキャンする。このようなジグザグスキャンアドレス数列をルックアップテーブルに格納して、ジグザグスキャンアドレスを発生させる。
【０００３】
図４は、このようなスキャン装置の一例のブロック図である。入力データ３１０をデータメモリ３００に書き込む時は、セレクタ３０１でＡＳ（線形アドレス）を選択して、カウンタ５００でカウントアップされる線形数列のアドレスで書き込む。次に、データメモリ３００からジグザグ状に出力データ３１１を読み出す時は、セレクタ３０１でＡＺ（ジグザグスキャンアドレス）を選択して、カウンタ５００でカウントアップされた線形数列をアドレスとしてルックアップテーブル４００に与え、０→１→２→３→・・・・→６０→６１→６２→６３からなる線形アドレスＡＳを０→１→８→１６→・・・・→４７→５５→６２→６３からなるジグザグスキャンアドレスＡＺに変換したアドレスで読み出す。
【０００４】
また、ルックアップテーブルを小さくする方法としては、「ジグザグスキャン回路」に記載されたものが知られている（例えば、特許文献１を参照）。
【０００５】
【特許文献１】
特開平第０７−３３６６８３号公報（第４頁、段落番号２２〜２７、図２１）。
【０００６】
これは、スキャン方向が４種類（右、左下、下、右上）しかないことに着目して、ルックアップテーブルにはアドレスではなく４種類のスキャン方向を区別するデータを記憶させることにより、ルックアップテーブルの１アドレスあたりのビット数を削減したものである。
【０００７】
また、ルックアップテーブルが必要無い方法として、「ジグザグスキャンアドレスの発生方法と発生器」に記載されたものが知られている（例えば、特許文献２を参照）。
【０００８】
【特許文献２】
特開平第０５−１３７００９号公報（第３頁、段落番号１９、第３頁〜第４頁、段落番号２１〜３５、図１〜５）。
【０００９】
それは、図５示すとおり、ジグザグスキャンアドレスの変化に規則性があることと、前のアドレスとの差分は４種類（１，７，８，−７）であることに着目して、アップダウンカウンタ１１とローダブルダウンカウンタ１２で数列（１→０、２→１→０、３→２→１→０、・・・、７→６→５→４→３→２→１→０、６→５→４→３→２→１→０、・・・、１→０）を発生させ、その数列をデコーダ１５でデコードして８種類の条件から４種類の差分値のいずれかを求め、差分を加算器１７で累積することにより、ジグザグスキャンアドレスを発生させるものである。
【００１０】
【発明が解決しようとする課題】
しかしながら、上記従来のルックアップテーブルを用いる方法においては、１つのブロックデータを処理するために、ルックアップテーブルを読み出すサイクルと、ルックアップテーブルから読み出された変換アドレスによりデータを読み出すサイクルが必要となり、処理遅延が発生し高速化が困難だという問題があった。特に近年の傾向として内部演算速度がメモリアクセス速度以上に高速化しているので、ルックアップテーブルの読み出しによる待ち時間はメモリアクセス速度に依存し高速化のために致命的な問題である。また、ルックアップテーブルのメモリ容量が大きく、ＬＳＩ回路で小型化を行なうにも限度があるという問題があった。
【００１１】
そこで、ルックアップテーブルを小さくした前者の従来例では、ルックアップテーブルのメモリ容量は小さくできる。例えば、８×８の正方形配列ブロックの場合には、１アドレスあたり６ビット（６４種類）必要であったものが、僅か２ビット（４種類）で済むので、１／３のテーブル容量となる。しかしながら、依然テーブルアクセスによる処理遅延の問題を有しており、高速化が困難だという問題があった。
【００１２】
ルックアップテーブルを不要とした後者の従来例では、ルックアップテーブルが不要となりテーブルアクセスによる処理遅延の問題は解決できたが、４種類の差分値を求めるためにデコーダ回路が必要であり回路規模の削減が十分ではなく、また、ＤＳＰなどを用いてソフトウェアで実現した場合には、４種類の差分値を求めるために複数の条件判断が必要となり、判定処理ステップによる処理遅延が発生し高速化が困難だという問題があった。
【００１３】
本発明は、上記従来の問題を解決するためになされたもので、少ない回路規模または少ない演算手順で、高速にジグザグスキャンできるスキャン装置および方法を提供するものである。
【００１４】
【課題を解決するための手段】
１本発明におけるスキャン装置は、画像符号化に用いるＮ×Ｎ（Ｎは２以上の整数）個の正方形配列されたブロックデータに対し、先頭ブロックアドレスから最終ブロックアドレスへとジグザグにスキャンするためのスキャン装置において、現ジグザグスキャンアドレスと複数の増分値とを初期化するリセット手段と、アドレススキャン方向の反転タイミングを検出するスキャン方向判定手段と、前記スキャン方向判定手段の判定結果に基づき前記複数の増分値を変化させるスキャン方向反転手段と、前記スキャン方向判定手段の判定結果に基づき前記複数の増分値を切替える増分値切替手段と、前記現ジグザグスキャンアドレスに前記増分値切替手段で切替えられた増分値を加えて次のジグザグスキャンアドレスを算出するジグザグスキャンアドレス算出手段とを備え、Ｎ×Ｎ個の前記次のジグザグスキャンアドレスを発生するジグザグスキャンアドレス発生手段と、  連続アドレスを発生する連続アドレス発生手段と、前記次のジグザグスキャンアドレスと前記連続アドレスとを切替える第１のアドレス切替手段と、前記連続アドレスを用いて入力データを記憶し、前記第１のアドレス切替手段で切替えられた前記次のジグザグスキャンアドレスによりデータを出力するメモリとを有するという構成を有している。この構成により、ルックアップテーブルを不要とし、加減算だけでジグザグスキャンアドレス数列を生成することにより、高速にジグザグスキャンアドレスを生成し、かつ回路規模を削減することができる。
【００１５】
２本発明におけるスキャン装置は、前記ジグザグスキャンアドレス発生手段がＮ×Ｎ／２個の前記現ジグザグスキャンアドレスを発生し、前記スキャン装置は前記現ジグザグスキャンアドレスと対称な対称ジグザグスキャンアドレスを算出する対称アドレス算出手段と、前記現ジグザグスキャンアドレスと前記対称ジグザグスキャンアドレスと前記連続アドレスとを切替える第２のアドレス切替手段とを有するという構成を有している。この構成により、ルックアップテーブルを不要とし、加減算だけでジグザグスキャンアドレス数列を生成可能であり、１回のジグザグスキャンアドレスの算出で２つの対称なジグザグスキャンアドレスを同時に求めることができるので、高速にジグザグスキャンアドレスを生成し、かつ回路規模をさらに削減することができる。
【００１６】
３本発明におけるスキャン方法は、画像符号化に用いるＮ×Ｎ（Ｎは２以上の整数）個の正方形配列されたブロックデータに対し、先頭ブロックアドレスから最終ブロックアドレスへとジグザグにスキャンするためのスキャン方法において、現ジグザグスキャンアドレスと複数の増分値とを初期化するリセット手順と、アドレススキャン方向の反転タイミングを検出するスキャン方向判定手順と、前記スキャン方向判定手順の判定結果に基づき前記複数の増分値を変化させるスキャン方向反転手順と、前記スキャン方向判定手順の判定結果に基づき前記複数の増分値を切替える増分値切替手順と、現ジグザグスキャンアドレスに前記増分値切替手順で切替えられた増分値を加えて次のジグザグスキャンアドレスを算出するジグザグスキャンアドレス算出手順とを備え、Ｎ×Ｎ個の前記現ジグザグスキャンアドレスを発生するジグザグスキャンアドレス発生手順と、連続アドレスを発生する連続アドレス発生手順と、前記現ジグザグスキャンアドレスと前記連続アドレスとを切替える第１のアドレス切替手順と、前記次のジグザグスキャンアドレスによりメモリから出力データを読み出すジグザグスキャンデータ処理手順とを有するという構成を有している。この構成により、ルックアップテーブルを不要とし、加減算だけでジグザグスキャンアドレス数列を生成することができるため、少ない演算手順で高速にジグザグスキャンアドレスを生成することができる。
【００１７】
４本発明におけるスキャン方法は、前記ジグザグスキャンアドレス発生手順がＮ×Ｎ／２個の前記現ジグザグスキャンアドレスを発生し、前記スキャン方法は前記現ジグザグスキャンアドレスと対称な対称ジグザグスキャンアドレスを算出する対称アドレス算出手順と、前記現ジグザグスキャンアドレスと前記対称ジグザグスキャンアドレスと前記連続アドレスとを切替える第２のアドレス切替手順と、前記現ジグザグスキャンアドレスによりデータメモリから出力データを読み出すジグザグスキャンデータ処理手順と、前記対称ジグザグスキャンアドレスにより前記メモリから出力データを読み出す対称ジグザグスキャンデータ処理手順とを有するという構成を有している。この構成により、ルックアップテーブルを不要とし、加減算だけでジグザグスキャンアドレス数列を生成することができるため、１回のジグザグスキャンアドレス算出で２つの対称なジグザグスキャンアドレスを同時に求めるので、さらに少ない演算手順で高速にジグザグスキャンアドレスを生成することができる。
【００１８】
５本発明におけるプログラムは、請求項３または４に記載のスキャン方法におけるリセット手順と、スキャン方向判定手順と、スキャン方向反転手順と、増分値切替手順と、ジグザグスキャンアドレス算出手順と、ジグザグスキャンアドレス発生手順と、連続アドレス発生手順と、ジグザグスキャンデータ処理手順と、対称アドレス算出手順と、アドレス切替手順と、対称ジグザグスキャンデータ処理手順とをコンピュータに実行させるという構成を有している。この構成により、ルックアップテーブルを不要とし、加減算だけでジグザグスキャンアドレス数列を生成することにより、高速にジグザグスキャンアドレスを生成し、かつ回路規模を削減することができる。
【００１９】
６本発明におけるコンピュータ読み取り可能な記録媒体は、コンピュータに請求項５に記載の手順を実行させるためのプログラムを記録したという構成を有している。この構成により、ルックアップテーブルを不要とし、加減算だけでジグザグスキャンアドレス数列を生成することにより、高速にジグザグスキャンアドレスを生成し、かつ回路規模を削減することができる。
【００２０】
【発明の実施の形態】
以下、添付図面に基づき、本発明の第１ないし第５の実施の形態を説明する。まず、図３及び表１を参照して、本発明の基礎となるジグザグスキャンアドレスの変化の性質について説明する。ここでは、一例として、８×８の正方形配列のジグザグスキャンアドレスについて説明する。
ジグザグスキャンは、図３で直線で示す順に初期アドレス０から０→１→８→１６→９→２→３→１０→１７→２４・・・・→６３とジグザグ状にスキャンする。また、スキャンの方向は一重線と二重線の直線で示したように中央を中心に対称となっている。下記の〔表１〕にジグザグスキャンアドレスの変化を整理した。なお、表１は実際に作成するものではない。
【００２１】
【表１】
2004179932.tif 000003
【００２２】
表１において、
〔ＮＯ〕は、０〜６３の線形数列を示し、
〔Ａｄｒ（ＩＸ）〕は、現在の現ジグザグスキャンアドレスを示し、
〔差分〕は、次のジグザグスキャンアドレス（ＮＥＸＴ）から現ジグザグスキャンアドレス（ＩＸ）を引いた差分値を示し、
〔方向〕は、次のジグザグスキャンアドレスに進むための方向を右／左下／下／右上で示し、
〔ＳＥＬ〕は、スキャン方向を反転させる時を１、スキャン方向を継続させる時を０で示し、
〔ＤＺ〕は、スキャン方向をスキャン経路の次の数で反転させる時の差分値（反転増分値という）を示し、
〔ＤＸ〕は、スキャン方向を継続させる時の差分値（継続増分値という）を示し、
〔ＮＥＸＴ〕は、次のジグザグスキャンアドレスを示す。
〔差分〕の変化に着目すると、ある一定の規則性を見出すことができる。すなわち、スキャン方向が左下の時は差分値＋７、スキャン方向が右上の時は差分値−７、スキャンの方向を反転する時に差分値１と差分値８を繰り返している。
【００２３】
差分値７および差分値−７の繰返し数は、ひとつづつ大きくなり、中央のＮＯ＝３２を境に対称となっている。また、差分値１と差分値８の変化も、中央のＮＯ＝３２を中心に対称となっている。この特徴を〔差分値の変化の特徴〕に整理した。なお、以下、差分値を増分値という。
このような規則性を有する差分値を演算で生成させることができれば、これらの値を累積することにより、ジグザグスキャンアドレスを生成することができる。
【００２４】
（第１の実施の形態）
次に、図１を参照して、本発明の第１の実施の形態におけるスキャン装置の構成を説明する。図１に示すスキャン装置は、Ｎ×Ｎ個のジグザグスキャンアドレスを発生するジグザグスキャンアドレス発生手段１００と、連続アドレス数列を発生する連続アドレス発生手段２００と、現ジグザグスキャンアドレスＩＸと連続アドレス発生手段２００とからの連続アドレスとを切替える第１のアドレス切替手段としてのセレクタ３０１と、入力データを記憶するＳＤＲＡＭなど（メモリの種類は問わない）のデータメモリ３００とから構成される。また、ジグザグスキャンアドレス発生手段１００は、現ジグザグスキャンアドレスＩＸに継続増分値ＤＸまたは反転増分値ＤＺを加えて次のジグザグスキャンアドレスＮＥＸＴを算出するジグザグスキャンアドレス算出手段１０５と、スキャン方向の反転タイミングを検出するスキャン方向判定手段１０２と、スキャン方向判定手段１０２の結果に基づいて反転増分値ＤＺか継続増分値ＤＸを変化させるスキャン方向反転手段１０３と、ジグザグスキャンアドレス算出手段１０５で算出された次のジグザグスキャンアドレスＮＥＸＴを現ジグザグスキャンアドレスＩＸとして一時保持する現ジグザグスキャンアドレス保持手段１１１と、スキャン方向反転手段１０３で算出した継続増分値ＤＸを一時保持する継続増分値保持手段１１２と、スキャン方向反転手段１０３で算出した反転増分値ＤＺを一時保持する反転増分値保持手段１１３と、スキャン方向判定手段１０３に基づいて増分値（アドレスの増分値）を反転増分値ＤＺか継続増分値ＤＸかに切替える増分値切替手段としてのセレクタ１０４と、現ジグザグスキャンアドレスＩＸと継続増分値ＤＸおよび反転増分値ＤＺを初期化するリセット手段１０１とを備えて構成される。
【００２５】
次に、図１を参照して、本発明の第１の実施の形態におけるスキャン装置の動作を説明する。
まず、入力データ３１０をデータメモリ３００に書き込む時は、セレクタ３０１でＡＳを選択して、連続アドレス発生手段２００で発生させた線形数列のアドレスで書き込む。次に、データメモリ３００からジグザグ状に出力データ３１１を読み出す時は、セレクタ３０１でＡＺを選択して、ジグザグスキャンアドレス発生手段１００で発生させた現ジグザグスキャンアドレスＩＸで出力データ３１１を読み出すことにより、ジグザグスキャンを実行する。
【００２６】
まず、スキャン装置の動作に先立ち、必要な数値の初期設定を行う。
この例の場合、正方形配列の一辺のデータ数をＮとする。例えば、８×８の正方形配列の場合は、Ｎ＝８とする。そこで、リセット手段１０１により、現ジグザグスキャンアドレスＩＸ＝０、反転増分値ＤＺ＝Ｎ、継続増分値ＤＸ＝１−Ｎに初期設定することにより、アドレスのカウントを開始する。
【００２７】
スキャン方向判定手段１０２により、スキャン方向の反転のタイミングを検出する。具体的には、アップダウンカウンタとローダブルダウンカウンタを組合せてタイミングを検出しても良いし、６４ビットのフラグを用意して反転タイミングを１、継続する場合を０としたビット列（１０１  ００１０  ００１０  ０００１  ００００  ０１００  ００００  １０００  ００００  １０００  ０００１  ００００  ０１００  ００１０  ００１０  ０１０１）を記憶して、ビットをシフトしながらタイミングを検出しても良い。
【００２８】
スキャン方向判定手段１０２において、スキャン方向反転のタイミングとなった場合は、スキャン方向判定手段１０２の反転指示によりスキャン方向反転手段１０３において、反転増分値ＤＺと継続増分値ＤＸを以下のように変化させる。また、この時、中央判定の情報を基に異なった処理を行なう。
2004179932.tif 000004
スキャン方向判定手段１０２で、スキャン方向反転のタイミング（またはアドレス）となった場合は、反転指示によりセレクタ１０４でＳＩを選択して増分値を反転増分値ＤＺとする。反転のタイミングでない場合は、セレクタ１０４でＳ０を選択して増分値を継続増分値ＤＸとする。ジグザグスキャンアドレス算出手段１０５は、現ジグザグスキャンアドレスＩＸに反転増分値ＤＺまたは継続増分値ＤＸを加えて、次のジグザグスキャンアドレスＮＥＸＴを算出する。
【００２９】
次に、図３及び表１を参照して、本実施の形態におけるジグザグスキャンアドレス生成動作について詳細に説明する。なお、表１は具体的な計算の仕方及び計算の結果を示すものであり、予め表１を作成してアドレスの計算に使用するものではない。
リセット手段１０１により、現ジグザグスキャンアドレスＩＸの初期値を０にし、反転増分値ＤＺの初期値を８にし、継続増分値ＤＸの初期値を−７に設定する。また、反転増分値ＤＺは、図３に見られるように、０、２、４、６、８、２４、４０等、次のアドレスで反転するアドレスで用いる増分値であり、継続増分値ＤＸはその他のアドレスで用いる増分値である。
【００３０】
まず、図３に示すアドレス０（表１のＮ０＝０）では、スキャン方向反転タイミングであるから、反転増分値ＤＺは前の反転増分値ＤＺに継続増分値ＤＸを加えて（８＋（−７）＝１）となり、継続増分値ＤＸは符合反転して＋７となり、次のジグザグスキャンアドレスＮＥＸＴは現ジグザグスキャンアドレスＩＸ「０」に反転増分値ＤＺ「１」を加えて（０＋１＝１）となるので、アドレス０→１へとスキャンすることになる。
【００３１】
次に、図３に示すアドレス１（表１のＮ０＝１）では、スキャン方向反転タイミングでないから、反転増分値ＤＺと継続増分値ＤＸの値は変わらず、次のジグザグスキャンアドレスＮＥＸＴは現ジグザグスキャンアドレスＩＸ「１」に継続増分値ＤＸ「７」を加えて（１＋７＝８）となるので、アドレス１→８へとスキャンすることになる。
【００３２】
次に、図３に示すアドレス８（表１のＮ０＝２）では、スキャン方向反転タイミングであるから、反転増分値ＤＺは前の反転増分値ＤＺ「１」に継続増分値ＤＸ「７」を加えて（１＋７＝８）となり、継続増分値ＤＸは符合反転して−７となり、次のジグザグスキャンアドレスＮＥＸＴは、現ジグザグスキャンアドレスＩＸ「８」に反転増分値ＤＺ「８」を加えて（８＋８＝１６）となるので、アドレス８→１６へとスキャンすることになる。
【００３３】
次に、図３に示すアドレス１６（表１のＮ０＝３）では、スキャン方向反転タイミングでないから、反転増分値ＤＺと継続増分値ＤＸの値は変わらず、次のジグザグスキャンアドレスＮＥＸＴは現ジグザグスキャンアドレスＩＸ「１６」に継続増分値ＤＸ「−７」を加えて（１６＋（−７）＝９）となるので、アドレス１６→９へとスキャンすることになる。
【００３４】
次に、図３に示すアドレス９（表１のＮ０＝４）では、スキャン方向反転タイミングでないから、反転増分値ＤＺと継続増分値ＤＸの値は変わらず、次のジグザグスキャンアドレスＮＥＸＴは現ジグザグスキャンアドレスＩＸ「９」に継続増分値ＤＸ「−７」を加えて（９＋（−７）＝２）となるので、アドレス９→２へとスキャンすることになる。
【００３５】
次に、図３に示すアドレス２（表１のＮ０＝５）では、スキャン方向反転タイミングであるから、反転増分値ＤＺは前の反転増分値ＤＺ「８」に継続増分値ＤＸ（−７）を加えて（８＋（−７）＝１）となり、継続増分値ＤＸは符合反転して＋７となり、次のジグザグスキャンアドレスＮＥＸＴは、現ジグザグスキャンアドレスＩＸ「２」に反転増分値ＤＺ「１」を加えて（２＋１＝３）となるので、アドレス２→３へとスキャンすることになる。
【００３６】
以下、同様にして、スキャンアドレスが算出される。
すなわち、本実施の形態において、スキャン方向反転タイミングでは、反転増分値ＤＺと継続増分値ＤＸとを計算し、現ジグザグスキャンアドレスＩＸに反転増分値ＤＺを加えることにより次のジグザグスキャンアドレスＮＥＸＴを算出し、また、スキャン方向反転タイミングでない場合は、現ジグザグスキャンアドレスＩＸに継続増分値ＤＸを加えることにより次のジグザグスキャンアドレスＮＥＸＴを算出することにより、０→１→８→１６→９→２→３→とジグザグスキャンアドレスが算出される。
【００３７】
このような本発明の第１の実施の形態のスキャン装置によれば、現ジグザグスキャンアドレスとその前のアドレスとの差分の変化の規則性を利用して、加減算だけでジグザグスキャンアドレス数列を生成可能なので、ルックアップテーブルを不要とし、高速にジグザグスキャンアドレスを生成し、かつ回路規模を削減することができる。
【００３８】
（第２の実施の形態）
次に、図２を参照して、本発明の第２の実施の形態におけるスキャン装置の構成を説明する。図２に示すスキャン装置は、Ｎ×Ｎ／２個のジグザグスキャンアドレスを発生するジグザグスキャンアドレス発生手段１００と、現ジグザグスキャンアドレスＩＸと対称な対称ジグザグスキャンアドレスＩＹを算出する対称アドレス算出手段１５４と、連続したアドレス数列を発生する連続アドレス発生手段２００と、現ジグザグスキャンアドレスＩＸ及び対称ジグザグスキャンアドレスＩＹと連続アドレスとを切替える第２のアドレス切替手段としてのセレクタ３５１と、入力データを記憶するＳＤＲＡＭなどの（メモリの種類は問わない）データメモリ３００とにより構成される。
【００３９】
また、ジグザグスキャンアドレス発生手段１００は、現ジグザグスキャンアドレスＩＸに継続増分値ＤＸまたは反転増分値ＤＺを加えて次のジグザグスキャンアドレスＮＥＸＴを算出するジグザグスキャンアドレス算出手段１０５と、スキャン方向の反転タイミングを検出するスキャン方向判定手段１５２と、前記スキャン方向判定手段の結果に基づいて反転増分値ＤＺと継続増分値ＤＸを変化させるスキャン方向反転手段１５３と、ジグザグスキャンアドレス算出手段１０５で算出された次のジグザグスキャンアドレスＮＥＸＴを現ジグザグスキャンアドレスＩＸとして一時保持する現ジグザグスキャンアドレス保持手段１１１と、スキャン方向反転手段１５３で算出した継続増分値ＤＸを一時保持する継続増分値保持手段１１２と、スキャン方向反転手段１５３で算出した反転増分値ＤＺを一時保持する反転増分値保持手段１１３と、スキャン方向判定手段に基づいて増分値を継続増分値ＤＸか反転増分値ＤＺに切替えるセレクタ１０４と、現ジグザグスキャンアドレスＩＸと継続増分値ＤＸおよび反転増分値ＤＺを初期化するリセット手段１０１とを備えて構成される。
【００４０】
次に、図２を参照して、本発明の第２の実施の形態におけるスキャン装置の動作を説明する。
入力データ３１０をデータメモリ３００に書き込む時は、セレクタ３５１でＡＳを選択して、連続アドレス発生手段２００から発生した線形数列の連続アドレスで書き込む。次に、データメモリ３００からジグザグ状に出力データ３１１を読み出す時は、セレクタ３５１でＡＺ１を選択して、ジグザグスキャンアドレス発生手段１００から発生した現ジグザグスキャンアドレスＩＸをアドレスとして第１の出力データ３１１を読み出し、次にセレクタ３５１でＡＺ２を選択して、対称アドレス算出手段１５４から発生した、現ジグザグスキャンアドレスＩＸと対称な対称ジグザグスキャンアドレスＩＹによって第２の出力データ３１１を読み出すことにより、対称ジグザグスキャンアドレスＩＹのジグザグスキャンを実行する。
【００４１】
次に、ジグザグスキャンアドレス発生手段１００の動作について説明する。
まず、スキャン装置の動作の説明に先立ち、必要な数値の初期設定を行う。正方形配列の一辺のデータ数をＮとする。例えば、８×８の正方形配列の場合は、Ｎ＝８とする。またリセット手段１０１により、現ジグザグスキャンアドレスＩＸ＝０、反転増分値ＤＺ＝Ｎ、継続増分値ＤＸ＝１−Ｎに初期設定して動作を開始する。そこで、スキャン方向判定手段１５２により、スキャン方向の反転のタイミングを検出する。具体的には、アップダウンカウンタとローダブルダウンカウンタを組合せてタイミングを検出しても良いし、３２ビットフラグを用意して反転タイミングを１、継続する場合を０としたビット列（００００  １０００  ０００１  ００００  ０１００  ００１０  ００１０  ０１０１  ）を記憶して、ビットをシフトしながらタイミングを検出しても良い。
【００４２】
スキャン方向判定手段１５２により、スキャン方向反転のタイミングとなった場合は、スキャン方向判定手段１５２の反転指示によりスキャン方向反転手段１５３において、反転増分値ＤＺと継続増分値ＤＸを以下のように変化させる。
・反転増分値ＤＺ＝ＤＺ＋ＤＸ、    継続増分値ＤＸ＝−ＤＸ
【００４３】
スキャン方向判定手段１５２の判定結果により、スキャン方向反転のタイミングとなった場合は、スキャン方向判定手段１５２の反転指示によりセレクタ１０４でＳ１を選択して増分値を反転増分値ＤＺとする。反転のタイミングでない場合は、セレクタ１０４でＳ０を選択して増分値を継続増分値ＤＸとする。ジグザグスキャンアドレス算出手段１０５は、現ジグザグスキャンアドレスＩＸに反転増分値ＤＺまたは継続増分値ＤＸを加えて、次のジグザグスキャンアドレスＮＥＸＴを算出する。
【００４４】
このような本発明の第２の実施の形態におけるスキャン装置によれば、現ジグザグスキャンアドレスとその前のアドレスとの差分の変化の規則性を利用して、加減算するだけで次のジグザグスキャンアドレスＮＥＸＴを生成可能なので、ルックアップテーブルを不要とし、またスキャン方向反転手段１５３が簡単になり、さらに１回のジグザグスキャンアドレスの計算で対称な２つのアドレス、すなわち、次のジグザグスキャンアドレスと対称ジグザグスキャンアドレスとが同時に求められるので、高速にジグザグスキャンアドレスを生成し、かつ回路規模をさらに削減することができる。
【００４５】
（第３の実施の形態）
次に、図６のタイミングチャートを参照して、本発明の第３の実施の形態におけるスキャン方法の構成を説明する。
図６に示すように、本発明の第３の実施の形態におけるスキャン方法は、現ジグザグスキャンアドレスＩＸに継続増分値ＤＸまたは反転増分値ＤＺを加えて次のジグザグスキャンアドレスＮＥＸＴを算出するジグザグスキャンアドレス算出手順と、スキャン方向の反転タイミングを検出するスキャン方向判定手順と、スキャン方向判定手順の結果に基づいて反転増分値ＤＺか継続増分値ＤＸを変化させるスキャン方向反転手順と、スキャン方向判定手順に基づいて増分値を継続増分値ＤＸか反転増分値ＤＺに切替える増分値切替え手順と、ジグザグスキャンアドレス算出手順で算出された次のジグザグスキャンアドレスＮＥＸＴを現ジグザグスキャンアドレスＩＸとして一時保持する現ジグザグスキャンアドレス保持手順と、スキャン方向反転手順で算出した継続増分値ＤＸを一時保持する継続増分値保持手順と、スキャン方向反転手順で算出した反転増分値ＤＺを一時保持する反転増分値保持手順と、現ジグザグスキャンアドレスＩＸと継続増分値ＤＸおよび反転増分値ＤＺを初期化するリセット手順とを具備した、Ｎ×Ｎ個のジグザグスキャンアドレス数列を発生するジグザグスキャンアドレス発生手順と、ジグザグスキャンデータ処理手順（データメモリ３００からのデータ出力手順）から構成される。なお、上記の各手順は図１に示す各手段に対応する。
【００４６】
次に、図６のタイミングチャートを参照して、本発明の第３の実施の形態におけるスキャン方法の手順を説明する。
この例では、正方形配列の一辺のデータ数をＮとし、全データ数をＭとする。例えば、８×８の正方形配列の場合は、Ｎ＝８、Ｍ＝６４とする。
ここで、図６のスキャン手順を開始する。
（１）ステップＳ１００において、反転増分値ＤＺをＮに初期設定する。
（２）ステップＳ１１０において、継続増分値ＤＸを１−Ｎに初期設定する。
（３）ステップＳ１２０において、現ジグザグスキャンアドレスＩＸを０に初期設定する。
（４）ステップＳ２００において、カウントＣを０に初期設定する。
（５）ステップＳ３００において、スキャン方向反転タイミングを判定する。
具体的には、アップダウンカウンタとローダブルダウンカウンタを組合せてタイミングを検出しても良いし、６４ビットのフラグを用意して反転タイミングを１、継続する場合を０としたビット列（１０１  ００１０  ００１０  ０００１  ００００  ０１００  ００００  １０００００００  １０００  ０００１  ００００  ０１００  ００１０  ００１０  ０１０１）を記憶して、ビットをシフトしながらタイミングを検出しても良い。
【００４７】
＜スキャン方向反転の場合＞
（６）ステップＳ３１０において、カウンタＣが中央より前半か後半かを判定する。
（７）＜前半の場合＞ステップＳ３２０において、反転増分値ＤＺに継続増分値ＤＸを加える。
（８）＜前半の場合＞ステップＳ３３０において、継続増分値ＤＸの符号を反転する。
（９）＜後半の場合＞ステップＳ３４０において、反転増分値ＤＺから継続増分値ＤＸを引く。
（１０）＜後半の場合＞ステップＳ３５０において、継続増分値ＤＸの符号を反転する。
（１１）ステップＳ３６０において、現ジグザグスキャンアドレスＩＸに反転増分値ＤＺを加えて次のジグザグスキャンアドレスＮＥＸＴを生成する。
【００４８】
＜スキャン方向継続の場合＞
（１２）ステップＳ３７０において、カウンタＣが中央か判定する。
（１３）＜中央の場合＞ステップＳ３８０において、反転増分値ＤＺに継続増分値ＤＸを加える。
（１４）ステップＳ３９０において、現ジグザグスキャンアドレスＩＸに継続増分値ＤＸを加えて次のジグザグスキャンアドレスＮＥＸＴを生成する。
【００４９】
＜ジグザグ処理＞
（１５）ステップＳ４００において、現ジグザグスキャンアドレスＩＸを用いて、データメモリ３００に記憶されている現ジグザグスキャンデータ（ＩＸデータ）を出力処理する。
（１６）ステップＳ２３０において、次のジグザグスキャンアドレスＮＥＸＴを現ジグザグスキャンアドレスＩＸに代入する。
（１７）ステップＳ２１０において、カウントＣをインクリメントする。
（１８）ステップＳ２２０において、最後のカウンタまで処理したか判定し、残りがある場合はステップＳ３００より繰り返す。
【００５０】
このような本発明の第３の実施の形態におけるスキャン方法によれば、現ジグザグスキャンアドレスとその前のアドレスとの差分の変化の規則性を利用して、加減算だけにより次のジグザグスキャンアドレスＮＥＸＴを生成可能なので、ルックアップテーブルを不要とし、少ない演算手順で高速にジグザグスキャンアドレスを生成することができる。
【００５１】
（第４の実施の形態）
次に、図７のタイミングチャートを参照して、本発明の第４の実施の形態におけるスキャン方法の構成を説明する。
図７に示すように、本発明の第４の実施の形態におけるスキャン方法は、現ジグザグスキャンアドレスＩＸに継続増分値ＤＸまたは反転増分値ＤＺを加えて次のジグザグスキャンアドレスＮＥＸＴを算出するジグザグスキャンアドレス算出手順と、スキャン方向の反転タイミングを検出するスキャン方向判定手順と、スキャン方向判定手順の結果に基づいて反転増分値ＤＺと継続増分値ＤＸを変化させるスキャン方向反転手順と、スキャン方向判定手順に基づいて増分値を継続増分値ＤＸか反転増分値ＤＺに切替える増分値切替え手順と、ジグザグスキャンアドレス算出手順で算出された次のジグザグスキャンアドレスＮＥＸＴを現ジグザグスキャンアドレスＩＸとして一時保持する現ジグザグスキャンアドレス保持手順と、スキャン方向反転手順で算出した継続増分値ＤＸを一時保持する継続増分値保持手順と、スキャン方向反転手順で算出した反転増分値ＤＺを一時保持する反転増分値保持手順と、現ジグザグスキャンアドレスＩＸと継続増分値ＤＸおよび反転増分値ＤＺを初期化するリセット手順とを具備した、Ｎ×Ｎ／２個のジグザグスキャンアドレス数列を発生するジグザグスキャンアドレス発生手順と、現ジグザグスキャンアドレスＩＸと対称な対称ジグザグスキャンアドレスＩＹを算出する対称アドレス算出手順と、ジグザグスキャンデータ処理手順及び対称ジグザグスキャンデータ処理手順（データメモリ３００からのデータ出力手順）とから構成される。なお、上記の各手順は図２に示す各手段に対応する。
【００５２】
次に、図７のタイミングチャートを参照して、本発明の第４の実施の形態におけるスキャン方法の手順を説明する。
ここでは、正方形配列の一辺のデータ数をＮとし、全データ数をＭとする。例えば、８×８の正方形配列の場合は、Ｎ＝８、Ｍ＝６４とする。
ここで、図７のスキャン手順を開始する。
（１）ステップＳ１１００において、反転増分値ＤＺをＮに初期設定する。
（２）ステップＳ１１１０において、継続増分値ＤＸを１−Ｎに初期設定する。
（３）ステップＳ１１２０において、現ジグザグスキャンアドレスＩＸを０に初期設定する。
（４）ステップＳ１２００において、カウントＣを０に初期設定する。
（５）ステップＳ１３００において、スキャン方向反転タイミングを判定する。具体的には、アップダウンカウンタとローダブルダウンカウンタを組合せてタイミングを検出しても良いし、３２ビットのフラグを用意して反転タイミングを１、継続する場合を０としたビット列（００００  １０００  ０００１  ００００  ０１００  ００１０  ００１０  ０１０１  ）を記憶して、ビットをシフトしながらタイミングを検出しても良い。
【００５３】
＜スキャン方向反転の場合＞
（６）ステップＳ１３２０において、反転増分値ＤＺに継続増分値ＤＸを加える。
（７）ステップＳ１３３０において、継続増分値ＤＸの符号を反転する。
【００５４】
（８）ステップＳ１３６０において、現ジグザグスキャンアドレスＩＸに反転増分値ＤＺを加えて次のジグザグスキャンアドレスＮＥＸＴを生成する。
【００５５】
＜スキャン方向継続の場合＞
（９）ステップＳ１３７０において、現ジグザグスキャンアドレスＩＸに継続増分値ＤＸを加えて次のジグザグスキャンアドレスＮＥＸＴを生成する。
【００５６】
＜ジグザグ処理＞
（１０）ステップＳ１３８０において、ジグザグスキャンするデータ数Ｍから１及び現ジグザグスキャンアドレスＩＸを差し引いて、次のジグザグスキャンアドレスＮＥＸＴと対称な対称ジグザグスキャンアドレスＩＹ（Ｍ−１−ＩＸ）を生成する。
（１１）ステップＳ１４００において、現ジグザグスキャンアドレスＩＸを用いて次のジグザグスキャンデータ（ＩＸデータ）を出力処理する。
（１２）ステップＳ１４１０において、対称ジグザグスキャンアドレスＩＹを用いて対称ジグザグスキャンデータ（ＩＹデータ）を出力処理する。
（１３）ステップＳ１２３０において、次のジグザグスキャンアドレスＮＥＸＴを現ジグザグスキャンアドレスＩＸに代入する。
（１４）ステップＳ１２１０において、カウントＣをインクリメントする。
（１５）ステップＳ１２２０において、最後のカウンタまで処理したか判定し、残りがある場合はステップＳ１３００より繰り返す。
【００５７】
このような本発明の第４の実施の形態のスキャン方法によれば、現ジグザグスキャンアドレスＩＸと次のジグザグスキャンアドレスＮＥＸＴとの差分の変化の規則性を利用して、加減算するだけでジグザグスキャンアドレス数列を生成可能であり、またスキャン方向反転手順が簡単になり、さらに１回のジグザグスキャンアドレスの計算で２つの対称なジグザグスキャンアドレス（ＮＥＸＴ、ＩＹ）を同時に生成することができるので、さらに少ない演算手順で高速にジグザグスキャンアドレスを生成することができる。
【００５８】
（第５の実施の形態）
本発明はハードウェアのみではなく、ソフトウェアプログラムによって実現することも可能であり、そのソフトウェアプログラムをフレキシブルディスク等の記録媒体に記録して移送することにより、独立した他のコンピュータ・システムにおいてこの記録媒体からソフトウェアプログラムを読み出して、本発明を容易に実施することができる。
【００５９】
フレキシブルディスク等の記録媒体からコンピュータ・システムにソフトウェアプログラムを転送する場合は、コンピュータ・システムに接続されたフレキシブルディスク装置により、フレキシブルディスクに記録されているソフトウェアプログラムを読み出してコンピュータ・システムに転送し、コンピュータ・システムから記録媒体にソフトウェアプログラムを記録する場合は、コンピュータ・システムからソフトウェアプログラムを読み出して、フレキシブルディクス装置によりフレキシブルディスクに記録する。記録媒体としては、フレキシブルディスクの他に、光ディスク、光磁気ディクス等を用いても同様に行うことができる。また、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディクス等に限らず、ＩＣカード、ＲＯＭカセット等、プログラムを記録できるものであれば、同様に実施することができる。
【００６０】
【発明の効果】
本発明におけるスキャン装置及び方法は、上記のように構成され、特に、前後のジグザグスキャンアドレスの差分の変化の規則性を利用して、加減算だけでジグザグスキャンアドレス数列を生成することにより、ルックアップテーブルが不要である上、ジグザグスキャンアドレスを高速に生成し、かつ回路規模を削減することができるという効果を有する。
【００６１】
本発明におけるスキャン装置及び方法は、上記のように構成され、特に、前後のジグザグスキャンアドレスの差分の変化の規則性を利用して、加減算だけでジグザグスキャンアドレス数列を生成することができ、さらに１回の計算で２つの対称なジグザグスキャンアドレスを同時に求めることができるため、スキャン方向反転手段が簡単になり、ルックアップテーブルが不要である上、ジグザグスキャンアドレスを高速に生成し、かつ回路規模をさらに削減することができるという効果を有する。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態におけるスキャン装置の構成を示すブロック図
【図２】本発明の第２の実施の形態におけるスキャン装置の構成を示すブロック図
【図３】本発明の実施の形態におけるジグザクスキャン順序を示し、
（Ａ）８×８のジグザクスキャン順の説明図、
（Ｂ）ジグザグスキャンアドレス数列の説明図、
【図４】ルックアップテーブルを用いた従来例のスキャン装置のブロック図、
【図５】ルックアップテーブルを用いない従来例のスキャン装置のブロック図、
【図６】本発明の第３の実施形態におけるスキャン方法の操作手順を示すフローチャート、
【図７】本発明の第４の実施形態におけるスキャン方法の操作手順を示すフローチャート。
【符号の説明】
１００    ジグザグスキャンアドレス発生手段
１０１    リセット手段
１０２、１５２    スキャン方向判定手段
１０３、１５３    スキャン方向反転手段
１０４    反転増分値ＤＺと継続増分値ＤＸとを切替えるセレクタ
１０５    ジグザグスキャンアドレス算出手段
１１１    現ジグザグスキャンアドレス保持手段（ＩＸ）
１１２    反転増分値保持手段（ＤＺ）
１１３    継続増分値保持手段（ＤＸ）
２００    連続アドレス発生手段
３００  データメモリ
３０１、３５１  アドレスを切替えるセレクタ
３１０    入力データ
３１１    出力データ
１５４    対称アドレス算出手段
【図１】
2004179932.tif 000005
【図２】
2004179932.tif 000006
【図３】
2004179932.tif 000007
【図４】
2004179932.tif 000008
【図５】
2004179932.tif 000009
【図６】
2004179932.tif 000010
【図７】
2004179932.tif 000011