(57)【要約】【課題】異なる方式に対応可能であり、符号化されたジグザグ順のデータを復号化する際に、ジグザグ順のデータを符号化前の順番に戻すためのジグザグ順の逆変換を行うジグザグアドレス生成装置を得ること。【解決手段】水平オルタネートのジグザグ順を逆変換して画素格納メモリ３０から符号化された画素データを符号化前の画素データの順番で読み出すためのアドレスデータが格納されているアドレス変換ＲＯＭ５０ｈと、カウント動作を行うカウンタ１０と、水平オルタネートのジグザグ順の逆変換が選択されたときはカウンタ１０の出力をそのままアドレス変換ＲＯＭ５０ｈのアドレス信号として出力し、垂直オルタネートのジグザグ順の逆変換が選択されたときはカウンタ１０の出力の上位側ビットと下位側ビットを入れ替えてアドレス変換ＲＯＭ５０ｈに読み出しアドレス信号として出力する選択回路６０とを備える。【選択図】      図１
2004193751.tif 000002
【特許請求の範囲】
【請求項１】
圧縮された画素データの復号化に適応され、画素格納メモリに記憶された符号化された画素データをジグザグに読み出すためのアドレス信号を生成するジグザグアドレス生成装置において、
水平オルタネートのジグザグ順を逆変換して前記画素格納メモリから符号化された画素データを符号化前の画素データの順番で読み出すためのアドレスデータが格納されているアドレス変換メモリと、
カウント動作を行うカウンタと、
水平オルタネートのジグザグ順の逆変換が選択されたときは前記カウンタの出力をそのまま前記アドレス変換メモリに読み出しアドレス信号として出力し、垂直オルタネートのジグザグ順の逆変換が選択されたときは前記カウンタの出力の上位側ビットと下位側ビットを入れ替えて前記アドレス変換メモリに読み出しアドレス信号として出力する選択回路と、
を備えることを特徴とするジグザグアドレス生成装置。
【請求項２】
圧縮された画素データの復号化に適応され、画素格納メモリに記憶された符号化された画素データをジグザグに読み出すためのアドレス信号を生成するジグザグアドレス生成装置において、
垂直オルタネートのジグザグ順を逆変換して前記画素格納メモリから符号化された画素データを符号化前の画素データの順番で読み出すためのアドレスデータが格納されているアドレス変換メモリと、
カウント動作を行うカウンタと、
垂直オルタネートのジグザグ順の逆変換が選択されたときは前記カウンタの出力をそのまま前記アドレス変換メモリに読み出しアドレス信号として出力し、水平オルタネートのジグザグ順の逆変換が選択されたときは前記カウンタの出力の上位側ビットと下位側ビットを入れ替えて前記アドレス変換メモリに読み出しアドレス信号として出力する選択回路と、
を備えることを特徴とするジグザグアドレス生成装置。
【請求項３】
前記カウンタの出力を用いて前記画素格納メモリからジグザグアドレッシングのジグザグ順を逆変換して前記画素格納メモリから符号化された画素データを符号化前の画素データの順番で読出すためのアドレスデータが格納されているジグザグアドレッシング用アドレス変換メモリと、
前記ジグザグアドレッシングのジグザグ順の逆変換が選択されたときは前記ジグザグアドレッシング用アドレス変換メモリの出力を前記画素格納メモリの読み出しアドレス信号として出力し、前記水平オルタネートのジグザグ順の逆変換または前記垂直オルタネートのジグザグ順の逆変換が選択されたときは前記アドレス変換メモリの出力を前記画素格納メモリの読み出しアドレス信号として出力する第２の選択回路と、
をさらに備えたことを特徴とする請求項１または２に記載のジグザグアドレス生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、動画像圧縮伸長方式に利用されるジグザグアドレス生成装置に関するものであり、特に、復号化に利用されるジグザグアドレス生成装置に関するものである。
【０００２】
【従来の技術】
動画像を高能率符号化（データ圧縮）する国際標準方式ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）を使ったアプリケーションが次々と商品化されている。ＭＰＥＧ１はビデオＣＤなどに利用され、ＭＰＥＧ２はＤＶＤプレーヤーなどに利用され、ＭＰＥＧ４は次世代携帯電話などに利用されている。
【０００３】
ＭＰＥＧ方式を利用するデータ圧縮方式は、動画のデータ量を圧縮する際に、ＤＣＴ演算と、量子化と、２次元ランレングス符号化を行っている。そのため、符号化時に、演算結果がＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に順次書き込まれた後にジグザグ順に読み出される。また、復号時には、演算結果がＲＡＭにジグザグ順に書き込まれた後に順次読み出される。ジグザグの順番は、ジグザグアドレッシング方式、水平オルタネート方式、垂直オルタネート方式で定義されている。ＲＡＭに書き込まれたデータをジグザグ順に読み出したり、ジグザグ順に書き込まれたデータをもとの順番で読み出すためには、定義されている順番でＲＡＭのアドレスを指定する必要がある。しかしながら、そのようなアドレスを四則演算処理で生成することは困難である。
【０００４】
従来技術では、メモリ内に２つのレジスタを備え、制御信号に応じてデータを保持、右シフト、左シフト、リセットすることでアクセスするメモリセルを決定することで、ジグザグ順にデータを読み出したり、ジグザグ順のデータをもとの順番で読み出したりするようにしている（たとえば、特許文献１参照）。
【０００５】
【特許文献１】
特開平１０−５００４９号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、上記従来技術では、ジグザグ順が固定であり、たとえば、ジグザグアドレッシング方式と水平オルタネート方式とを１つのメモリで実現することはできないという問題があった。すなわち、ジグザグアドレッシング方式と水平オルタネート方式と垂直オルタネート方式を実現するためには、３つのメモリが必要であるという問題があった。
【０００７】
また、シフト動作を行うために、その動作時間だけデータを読み出す時間がかかってしまうという問題があった。
【０００８】
この発明は上記に鑑みてなされたもので、異なる方式に対応可能であり、符号化されたジグザグ順のデータを復号化する際に、ジグザグ順のデータを符号化前の順番に戻すためのジグザグ順の逆変換を行うジグザグアドレス生成装置を得ることである。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、この発明にかかるジグザグアドレス生成装置は、圧縮された画素データの復号化に適応され、画素格納メモリに記憶された符号化された画素データをジグザグに読み出すためのアドレス信号を生成するジグザグアドレス生成装置において、水平オルタネートのジグザグ順を逆変換して前記画素格納メモリから符号化された画素データを符号化前の画素データの順番で読み出すためのアドレスデータが格納されているアドレス変換メモリと、カウント動作を行うカウンタと、水平オルタネートのジグザグ順の逆変換が選択されたときは前記カウンタの出力をそのまま前記アドレス変換メモリに読み出しアドレス信号として出力し、垂直オルタネートのジグザグ順の逆変換が選択されたときは前記カウンタの出力の上位側ビットと下位側ビットを入れ替えて前記アドレス変換メモリに読み出しアドレス信号として出力する選択回路とを備えることを特徴とする。
【００１０】
この発明によれば、水平オルタネートのジグザグ順の逆変換が選択されたときはカウンタの出力をそのまま水平オルタネートのジグザグ順を逆変換して画素格納メモリのアドレス信号を出力するアドレス変換メモリのアドレス信号として出力し、垂直オルタネートのジグザグ順の逆変換が選択されたときはカウンタの出力の上位側ビットと下位側ビットを入れ替えてアドレス変換メモリのアドレス信号として出力するようにしている。
【００１１】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかるジグザグアドレス生成装置の好適な実施の形態を詳細に説明する。
【００１２】
実施の形態１．
まず、本発明にかかるジグザグアドレス生成装置が適用されるＭＰＥＧ方式を利用するデータ圧縮方式について簡単に説明する。ＭＰＥＧ方式を利用するデータ圧縮方式は、動画のデータ量を圧縮する際に、ＤＣＴ演算と、量子化と、２次元ランレングス符号化を行っている。
【００１３】
ＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）は離散コサイン変換のことで、これは直交変換の手法の１つである。ＭＰＥＧ方式の画像圧縮の場合、たとえば８画素×８画素の小さなブロック（マクロブロック）単位で直交変換する。一般に画像データは低周波数域成分（以下、低域成分）の情報が多く、輪郭などの高周波数域成分（以下、高域成分）が少ない。そこで低域成分に与えるビット数を多くし、高域成分に与えるビット数を少なくするようにしてデータ量を少なく（すなわち圧縮）する。
【００１４】
ＤＣＴによるデータ変換の例を図２に示す。図２（ａ）はＤＣＴ変換前のデータとしての画素値であり、図２（ｂ）はＤＣＴ変換後のデータとしてのＤＣＴ係数値である。この場合は、８画素×８画素の１つのブロック領域を示している。ＤＣＴ変換後のデータとしてのＤＣＴ係数値は、図２（ｂ）に示すように、左から右へおよび上から下へ周波数が高くなっており、左上から右下へ向かって低域成分データから高域成分データに移行している。この場合は、低周波数域成分に大きなデータが分布し、高域成分には小さなデータが分布していることになる。
【００１５】
図２（ａ）に示す６４個の画素値を保存する場合、たとえば１画素に９ビット（−２５６から２５５までが表現できる）を割り当てると、６４画素全部で５７６ビットを保存する必要がある。ところが、図２（ｂ）の左上の１画素のデータに１２ビット（−１０２４から１０２３まで表現できる）を割り当て、続く低域成分の１５画素のデータに９ビット（−２５６から２５５までが表現できる）を割り当て、残りの４８画素のデータに５ビット（−１６から１５までが表現できる）を割り当てると、６４画素分のＤＣＴ係数値を保存するのに３８７ビットしか必要としない。このようにすると、図２（ｂ）に示すＤＣＴ係数値は、図２（ａ）に示す画素値に比べ、８画素×８画素当たりで１８９ビットのデータ量が削減できることになる。
【００１６】
図２（ｃ）は、ＤＣＴ変換後のデータに量子化を施した後のデータを示すものである。量子化とは定数で除算することを意味しているが、図２（ｃ）の場合は、ＤＣＴ変換後のデータを８で除算し、小数点以下を四捨五入している。量子化後のデータは、量子化前のデータより各画素に割り当てるビット数が小さくなることは明らかであるので、図２（ｃ）に示す量子化後のデータは、図２（ｂ）に示すＤＣＴ変換後のデータよりさらにデータ量が削減できていることになる。また、量子化することで零のデータが多くなり、零のデータは８画素×８画素のブロック領域の高域側（右下側）に集まるようになる。零のデータはデータのないことを意味するので、特に保存する必要がないので、この性質を利用すればデータ量をさらに削減できることになる。この性質を利用する符号化方法に２次元ランレングス符号化がある。
【００１７】
２次元ランレングス符号化では、量子化まで実行した２次元の画像データを１次元に並べ直し、任意の法則に従い符号化する。たとえば、図２（ｃ）に示す８画素×８画素の６４画素分のデータを行方向に３行分だけ並べてみると、次のように「１００，−４，−４，１，０，０，０，０，５，１，−１，−１，−１，０，−１，−１，−１，０，０，０，０，０，０」になるが、２次元ランレングス符号化では、この中で零の連続性（ｒｕｎ値）と非零の値（ｌｅｂｅｌ値）を調べて、それらを組にして符号化している。
【００１８】
すなわち、
１００  →  （０，１００）：零は０個で、非零値は１００
−４    →  （０，−４）  ：零は０個で、非零値は−４
−４    →  （０，−４）  ：零は０個で、非零値は−４
１    →  （０，１）  ：零は０個で、非零値は１
０，０，０，０，５  →  （４，５）  ：零は４個で、非零値は５
１    →  （０，１）  ：零は０個で、非零値は１
−１    →  （０，−１）  ：零は０個で、非零値は−１
−１    →  （０，−１）  ：零は０個で、非零値は−１
−１    →  （０，−１）  ：零は０個で、非零値は−１
０，−１  →（１，−１）  ：零は１個で、非零値は−１
−１    →  （０，−１）  ：零は０個で、非零値は−１
−１    →  （０，−１）  ：零は０個で、非零値は−１
０，０，０，０，０，０，０，０，０，−１  →  （９，−１）  ：零は９個で、非零値は−１
のように符号化している。
【００１９】
このように、ｒｕｎ値とｌｅｂｅｌ値の組を１個の符号にして符号化を実行するが、この場合にも発生頻度の高い組み合わせに短いビット長を割り当て、発生頻度の低い組み合わせに長いビット長を割り当てると、符号化後のデータ量は小さくなる。２次元ランレングス符号化の場合、零の数が連続して並ぶほうが組み合わせの数が少なくなるのは明らかであり、組み合わせ自体が少ないほど符号化するものが少ないので、データ量がさらに削減できることが期待できる。零の数を連続して並べるためには、８画素×８画素のデータを行方向や列方向に連続に並べるのは適当でない。それは、ＤＣＴ後のデータは左上から右下に小さくなるので、右下に零が集まる可能性が高いからである。そこで、８画素×８画素のデータを、零が続くように左上から右下へ並べ直すことがなされる。それがジグザグアドレッシングという方法で、ＭＰＥＧ方式では、８画素×８画素のデータを、図３（ａ）に示すような順に並べ直すようにジグザグアドレッシングが定義されている。
【００２０】
また、ＭＰＥＧ４方式においては、図３（ａ）のジグザグアドレッシング方式以外に、図３（ｂ）に示すような水平オルタネート方式および図３（ｃ）に示すような垂直オルタネート方式も定義されている。これらの水平／垂直オルタネート方式は、基本はジグザグであるが、水平方向を優先にジグザグに並べるとより零が連続したり、あるいは垂直方向を優先にジグザグに並べるとより零が連続したりするような画像データに適用されるものである。ＭＰＥＧ４ではこれらの３種類の方法を画像の性質によって使い分け、よりデータ量を削減することが可能となっている。どの方式で並べ替えられたかを示す情報は付加されるので、データ圧縮された符号を復号する場合には、その情報に基づいて元通りに並べ替えることが可能である。
【００２１】
ジグザグアドレス生成の方法に関して、図４と図５を用いて説明する。通常８画素×８画素のデータは、図４に示すように、メモリ内に水平方向に順番に格納されている。たとえば、量子化が終了した８画素×８画素のデータは、６４個のアドレス空間を持つメモリに、図３のようなアドレス順に格納している。したがって、図３（ａ）に示すジグザグアドレッシング方式の場合は、メモリアドレスを「０，１，８，１６，９，２，３，１０，…，６１，５４，４７，５５，６２，６３」のように変化させて、メモリからデータを読んでくれば、ジグザグ順にデータを読み出すことが可能である。しかし、メモリアドレスを上記のようにジグザグに変化させることは、四則演算処理では困難である。そこで、メモリアドレスを生成する回路を利用することになる。これには読みとり専用メモリであるＲＯＭを利用することが簡単で、この方法が一般に利用されている。
【００２２】
図５に、メモリアドレス生成回路の構成を示す。メモリアドレス生成回路は、６ビットのカウンタ１と、アドレス変換ＲＯＭ２と、画素格納メモリ３とを備えている。カウンタは０から６３まで順番にカウントする。ＲＯＭは６４アドレスで、各アドレスには６ビットのデータが格納されており、それらのデータはジグザグアドレスに相当するものである。
【００２３】
すなわち、
アドレス０にはデータ０（０００＿０００）
アドレス１にはデータ１（０００＿００１）
アドレス２にはデータ８（００１＿０００）
アドレス３にはデータ１６（０１０＿０００）
アドレス４にはデータ９（００１＿００１）
アドレス５にはデータ２（０００＿０１０）
アドレス６にはデータ３（０００＿０１１）
アドレス７にはデータ１０（００１＿０１０）
：
：
アドレス５８にはデータ６１（１１１＿１０１）
アドレス５９にはデータ５４（１１０＿１１０）
アドレス６０にはデータ４７（１０１＿１１１）
アドレス６１にはデータ５５（１１０＿１１１）
アドレス６２にはデータ６２（１１１＿１１０）
アドレス６３にはデータ６３（１１１＿１１１）
が格納されている。
【００２４】
カウンタ１がカウントアップする毎にアドレス変換ＲＯＭ２からは、図３（ａ）に示すようなジグザグアドレス値が出力されるので、アドレス変換ＲＯＭ２の出力を画素格納メモリ３の読み出しアドレスとして利用すれば、画素格納メモリ３内の画素データをジグザグ順に読み出すことが可能となる。
【００２５】
ＭＰＥＧ４システムの場合は、ジグザグアドレスの種類が、図３（ａ）〜（ｃ）に示すように、３種類あるので、たとえば、３種類のアドレス変換ＲＯＭを用意し、３種類のアドレス変換ＲＯＭのうちから必要なジグザグアドレス方式のものを選択し、選択したアドレス変換ＲＯＭの出力をアドレスとして画素格納メモリ３に入力することで、所要のジグザグアドレス方式に対応する画素データを読み出すようにしている。
【００２６】
つぎに、上述したように圧縮して符号化された画素データを復号化する場合について説明する。符号化された画素データは、ジグザグに並んでいるので、ジグザグ順に並んでいるデータをもとの順番に並べ替える必要がある。たとえば、図４に示すように、ジグザグ順に並んでいるデータを、０から６３の順番にメモリに格納する。それらのジグザグ順に並んでいるデータをもとに戻す順番に読み出すようにする。この場合も符号化時と同様にメモリを読み出すメモリアドレスを生成する回路にＲＯＭを利用する。すなわち、ジグザグ順に並んでいるデータを格納しているメモリのアドレスを６４アドレスのＲＯＭの６ビットのデータに格納する。それらのデータは、符号化する前の順番にデータを読み出すようにジグザグ順を逆変換するものである。
【００２７】
すなわち、
アドレス０（０００＿０００）にはデータ０
アドレス１（０００＿００１）にはデータ１
アドレス２（０００＿０１０）にはデータ５
アドレス３（０００＿０１１）にはデータ６
アドレス４（０００＿１００）にはデータ１４
アドレス５（０００＿１０１）にはデータ１５
アドレス６（０００＿１１０）にはデータ２７
アドレス７（０００＿１１１）にはデータ２８
：
：
アドレス５８（０００＿０００）にはデータ４８
アドレス５９（０００＿００１）にはデータ４９
アドレス６０（０００＿０１０）にはデータ５７
アドレス６１（０００＿０１１）にはデータ５８
アドレス６２（０００＿１００）にはデータ６２
アドレス６３（０００＿１０１）にはデータ６３
が格納されている。
【００２８】
アドレスがカウントアップする毎にメモリアドレス生成用のＲＯＭからは、図３（ａ）に示すようなジグザグアドレス値を逆に変換する値が出力されるので、このＲＯＭのデータを符号化された画素データが格納されるメモリの読み出しアドレスとして利用すれば、メモリ内の符号化された画素データをジグザグをもとに戻すように読み出すことが可能となる。
【００２９】
ＭＰＥＧ４システムの場合は、ジグザグアドレスの種類が、図３（ａ）〜（ｃ）に示すように、３種類あるので、これらに対応したメモリアドレス生成が必要となる。
【００３０】
図１は、この発明の実施の形態１であるＭＰＥＧ４方式を用いる復号化のジグザグアドレス生成装置の構成を示すブロック図である。この発明の実施の形態１であるＭＰＥＧ４方式を用いる復号化のジグザグアドレス生成装置は、６ビットのカウンタ１０と、ジグザグアドレッシング方式用のアドレス変換ＲＯＭ５０ｚと、水平オルタネート方式用のアドレス変換ＲＯＭ５０ｈと、画素格納メモリ３０と、選択回路４０，６０とで構成される。
【００３１】
画素格納メモリ３０には、符号化された画素データが記憶されている。カウンタ１０は、６ビットのカウンタであり、０から６３までを順番にカウントする。アドレス変換ＲＯＭ５０ｚ，５０ｈは６ビットのアドレス入力と、６ビットのデータ出力を行うインタフェースをもっている。アドレス変換ＲＯＭ５０ｚには、図３（ａ）で規定されるジグザグ方式の逆変換テーブルが格納されており、アドレス変換ＲＯＭ５０ｈには、図３（ｂ）で規定される水平オルタネート方式の逆変換テーブルが格納されている。各アドレス変換ＲＯＭ５０ｚ，５０ｈの６ビット出力の６ビットの並びを、ＭＳＢから順番に［５］、［４］、［３］、［２］、［１］、［０］と表すものとする。
【００３２】
選択回路６０は、セレクト信号ＳＥＬ１に基づき、カウンタ１０の出力のそのままの並びのデータと、カウンタ１０の出力の上位３ビットと下位３ビットを入れ替えた（並びを［２］、［１］、［０］、［５］、［４］、［３］の順番にした）データからなる２個のデータのどちらか１個の６ビットのデータを選択する回路である。セレクト信号ＳＥＬ１には、水平オルタネート方式と垂直オルタネート方式のどちらを選択するかを識別する情報が含まれている。
【００３３】
すなわち、選択回路６０は、図３（ｂ）に示される水平オルタネート方式の逆変換順に画素格納メモリ３０から符号化された画素データを読み出す場合には、カウンタ１０の出力をそのまま選択してアドレス変換ＲＯＭ５０ｈに読み出しアドレスとして出力する。また、図３（ｃ）に示される垂直オルタネート方式の逆変換順に画素格納メモリから符号化された画素データを読み出す場合には、カウンタ１０の出力の上位３ビットと下位３ビットの順番を交換したデータを選択してアドレス変換ＲＯＭ５０ｈに読み出しアドレスとして出力する。
【００３４】
ここで、水平オルタネート用のアドレス変換ＲＯＭ（ＲＯＭ５ｈ）と、垂直オルタネート用のアドレス変換ＲＯＭ（ＲＯＭ５ｖ）とを備えた場合、ＲＯＭ５ｈとＲＯＭ５ｖに格納されるデータを以下にしめす。
アドレス０（０００＿０００）：ＲＯＭ５ｈにはデータ０、ＲＯＭ２ｖにはデータ０
アドレス１（０００＿００１）：ＲＯＭ５ｈにはデータ１、ＲＯＭ２ｖにはデータ４
アドレス２（０００＿０１０）：ＲＯＭ５ｈにはデータ２、ＲＯＭ２ｖにはデータ６
アドレス３（０００＿０１１）：ＲＯＭ５ｈにはデータ３、ＲＯＭ５ｖにはデータ２０
アドレス４（０００＿１００）：ＲＯＭ５ｈにはデータ１０、ＲＯＭ５ｖにはデータ２２
アドレス５（０００＿１０１）：ＲＯＭ５ｈにはデータ１１、ＲＯＭ５ｖにはデータ３６
アドレス６（０００＿１１０）：ＲＯＭ５ｈにはデータ１２、ＲＯＭ５ｖにはデータ３８
アドレス７（０００＿１１１）：ＲＯＭ５ｈにはデータ１３、ＲＯＭ５ｖにはデータ５２
アドレス８（００１＿０００）：ＲＯＭ５ｈにはデータ４、ＲＯＭ５ｖにはデータ１
アドレス９（００１＿００１）：ＲＯＭ５ｈにはデータ５、ＲＯＭ５ｖにはデータ５
アドレス１０（００１＿０１０）：ＲＯＭ５ｈにはデータ８、ＲＯＭ５ｖにはデータ７
アドレス１１（００１＿０１１）：ＲＯＭ５ｈにはデータ９、ＲＯＭ５ｖにはデータ２１
アドレス１２（００１＿１００）：ＲＯＭ５ｈにはデータ１７、ＲＯＭ５ｖにはデータ２３
アドレス１３（００１＿１０１）：ＲＯＭ５ｈにはデータ１６、ＲＯＭ５ｖにはデータ３７
アドレス１４（００１＿１１０）：ＲＯＭ５ｈにはデータ１５、ＲＯＭ５ｖにはデータ３９
アドレス１５（００１＿１１１）：ＲＯＭ５ｈにはデータ１４、ＲＯＭ５ｖにはデータ５３
アドレス１６（０１０＿０００）：ＲＯＭ５ｈにはデータ６、ＲＯＭ５ｖにはデータ２
アドレス１７（０１０＿００１）：ＲＯＭ５ｈにはデータ７、ＲＯＭ５ｖにはデータ８
アドレス１８（０１０＿０１０）：ＲＯＭ５ｈにはデータ１９、ＲＯＭ５ｖにはデータ１９
アドレス１９（０１０＿０１１）：ＲＯＭ５ｈにはデータ１８、ＲＯＭ５ｖにはデータ２４
アドレス２０（０１０＿１００）：ＲＯＭ５ｈにはデータ２６、ＲＯＭ５ｖにはデータ３４
アドレス２１（０１０＿１０１）：ＲＯＭ５ｈにはデータ２７、ＲＯＭ５ｖにはデータ４０
アドレス２２（０１０＿１１０）：ＲＯＭ５ｈにはデータ２８、ＲＯＭ５ｖにはデータ５０
アドレス２３（０１０＿１１１）：ＲＯＭ５ｈにはデータ２９、ＲＯＭ５ｖにはデータ５４
アドレス２４（０１１＿０００）：ＲＯＭ５ｈにはデータ２０、ＲＯＭ５ｖにはデータ３
アドレス２５（０１１＿００１）：ＲＯＭ５ｈにはデータ２１、ＲＯＭ５ｖにはデータ９
アドレス２６（０１１＿０１０）：ＲＯＭ５ｈにはデータ２４、ＲＯＭ５ｖにはデータ１８
アドレス２７（０１１＿０１１）：ＲＯＭ５ｈにはデータ２５、ＲＯＭ５ｖにはデータ２５
アドレス２８（０１１＿１００）：ＲＯＭ５ｈにはデータ３０、ＲＯＭ５ｖにはデータ３５
アドレス２９（０１１＿１０１）：ＲＯＭ５ｈにはデータ３１、ＲＯＭ５ｖにはデータ４１
アドレス３０（０１１＿１１０）：ＲＯＭ５ｈにはデータ３２、ＲＯＭ５ｖにはデータ５１
アドレス３１（０１１＿１１１）：ＲＯＭ５ｈにはデータ３３、ＲＯＭ５ｖにはデータ５５
アドレス３２（１００＿０００）：ＲＯＭ５ｈにはデータ２２、ＲＯＭ５ｖにはデータ１０
アドレス３３（１００＿００１）：ＲＯＭ５ｈにはデータ２３、ＲＯＭ５ｖにはデータ１７
アドレス３４（１００＿０１０）：ＲＯＭ５ｈにはデータ４３、ＲＯＭ５ｖにはデータ２６
アドレス３５（１００＿０１１）：ＲＯＭ５ｈにはデータ３５、ＲＯＭ５ｖにはデータ３０
アドレス３６（１００＿１００）：ＲＯＭ５ｈにはデータ４２、ＲＯＭ５ｖにはデータ４２
アドレス３７（１００＿１０１）：ＲＯＭ５ｈにはデータ４３、ＲＯＭ５ｖにはデータ４６
アドレス３８（１００＿１１０）：ＲＯＭ５ｈにはデータ４４、ＲＯＭ５ｖにはデータ５６
アドレス３９（１００＿１１１）：ＲＯＭ５ｈにはデータ４５、ＲＯＭ５ｖにはデータ６０
アドレス４０（１０１＿０００）：ＲＯＭ５ｈにはデータ３６、ＲＯＭ５ｖにはデータ１１
アドレス４１（１０１＿００１）：ＲＯＭ５ｈにはデータ３７、ＲＯＭ５ｖにはデータ１６
アドレス４２（１０１＿０１０）：ＲＯＭ５ｈにはデータ４０、ＲＯＭ５ｖにはデータ２７
アドレス４３（１０１＿０１１）：ＲＯＭ５ｈにはデータ４１、ＲＯＭ５ｖにはデータ３１
アドレス４４（１０１＿１００）：ＲＯＭ５ｈにはデータ４６、ＲＯＭ５ｖにはデータ３４
アドレス４５（１０１＿１０１）：ＲＯＭ５ｈにはデータ４７、ＲＯＭ５ｖにはデータ４７
アドレス４６（１０１＿１１０）：ＲＯＭ５ｈにはデータ４８、ＲＯＭ５ｖにはデータ５７
アドレス４７（１０１＿１１１）：ＲＯＭ５ｈにはデータ４９、ＲＯＭ５ｖにはデータ６１
アドレス４８（１１０＿０００）：ＲＯＭ５ｈにはデータ３８、ＲＯＭ５ｖにはデータ１２
アドレス４９（１１０＿００１）：ＲＯＭ５ｈにはデータ３９、ＲＯＭ５ｖにはデータ１５
アドレス５０（１１０＿０１０）：ＲＯＭ５ｈにはデータ５０、ＲＯＭ５ｖにはデータ２８
アドレス５１（１１０＿０１１）：ＲＯＭ５ｈにはデータ５１、ＲＯＭ５ｖにはデータ３２
アドレス５２（１１０＿１００）：ＲＯＭ５ｈにはデータ５６、ＲＯＭ５ｖにはデータ４４
アドレス５３（１１０＿１０１）：ＲＯＭ５ｈにはデータ５７、ＲＯＭ５ｖにはデータ４８
アドレス５４（１１０＿１１０）：ＲＯＭ５ｈにはデータ５８、ＲＯＭ５ｖにはデータ５８
アドレス５５（１１０＿１１１）：ＲＯＭ５ｈにはデータ５９、ＲＯＭ５ｖにはデータ６２
アドレス５６（１１１＿０００）：ＲＯＭ５ｈにはデータ５２、ＲＯＭ５ｖにはデータ１３
アドレス５７（１１１＿００１）：ＲＯＭ５ｈにはデータ５３、ＲＯＭ５ｖにはデータ１４
アドレス５８（１１１＿０１０）：ＲＯＭ５ｈにはデータ５４、ＲＯＭ５ｖにはデータ２９
アドレス５９（１１１＿０１１）：ＲＯＭ５ｈにはデータ５５、ＲＯＭ５ｖにはデータ３３
アドレス６０（１１１＿１００）：ＲＯＭ５ｈにはデータ６０、ＲＯＭ５ｖにはデータ４５
アドレス６１（１１１＿１０１）：ＲＯＭ５ｈにはデータ６１、ＲＯＭ５ｖにはデータ４９
アドレス６２（１１１＿１１０）：ＲＯＭ５ｈにはデータ６２、ＲＯＭ５ｖにはデータ５９
アドレス６３（１１１＿１１１）：ＲＯＭ５ｈにはデータ６３、ＲＯＭ５ｖにはデータ６３
【００３５】
上記のＲＯＭ５ｈとＲＯＭ５ｖに格納されているデータを比べて明らかなように、ＲＯＭ５ｖに格納するべき内容はＲＯＭ５ｈに格納されているデータの順番を示すアドレス値の上位３ビットと下位３ビットを交換した値をアドレス値にしたデータに一致している。たとえば、アドレス３８（１００＿１１０）のＲＯＭ５ｈのＲＯＭ５ｈのデータとアドレス５２（１１０＿１００）のＲＯＭ５ｖのデータはともに「４４」である。また、アドレス５５（１１０＿１１１）のＲＯＭ５ｈのデータとアドレス６２（１１１＿１１０）のＲＯＭ５ｖのデータはともに「５９」である。さらに、アドレス２６（０１１＿０１０）のＲＯＭ５ｈのデータとアドレス１９（０１０＿０１１）のＲＯＭ５ｖのデータはともに「２４」である。したがって、水平オルタネート方式用のアドレス変換ＲＯＭ５０ｈのアドレスにおいて上位３ビットと下位３ビットとを交換することで垂直オルタネート方式用のアドレス変換ＲＯＭに格納している内容を生成していることと同一となる。
【００３６】
選択回路４０は、セレクト信号ＳＥＬ２に基づき、アドレス変換ＲＯＭ５０ｚの出力と、アドレス変換ＲＯＭ５０ｈの出力とのどちらかを選択する回路である。セレクト信号ＳＥＬ２には、ジグザグアドレッシング方式と、セレクト信号ＳＥＬ１に基づき選択された水平／垂直オルタネート方式とを識別する情報が含まれている。
【００３７】
すなわち、セレクト信号ＳＥＬ１およびセレクト信号ＳＥＬ２の２つの信号によりジグザグアドレッシング方式、水平／垂直オルタネート方式のうちどれを選択するかを決定してその方式の逆変換順に画素格納メモリ３０から符号化された画素データを読み出す。
【００３８】
このようにこの実施の形態１によればＭＰＥＧ４方式を利用した圧縮データの復号化を行う場合に、垂直オルタネート方式のジグザグ順を符号化前のデータの順番に変換するアドレス変換ＲＯＭのデータが、水平オルタネート方式のジグザグ順を符号構えのデータの順番に変換するアドレス変換ＲＯＭのアドレスの上位３ビットと下位３ビットを交換したアドレスのデータと同一であることに着目し、アドレス変換ＲＯＭを１個削除するようにしたため、少ないハードウエアで異なる方式に対応することができる。
【００３９】
実施の形態２．
実施の形態１では、水平オルタネート方式の逆変換テーブルをアドレス変換ＲＯＭ５０ｈに格納しているが、垂直オルタネート方式の変換テーブルをアドレス変換ＲＯＭ５０ｖとして格納しておき、その出力の上位３ビットと下位３ビットを交換することで、水平オルタネート方式の逆変換順のアドレスを生成して画素格納メモリ３０から符号化された画素データを読み出すようにしてもよい。この方法でも、全く同一の効果を得ることができる。
【００４０】
なお、本発明では、アドレス変換ＲＯＭ、画素格納メモリ、選択回路は同一の機能を有するものであれば、任意の回路構成を採用すればよい。また、画素格納メモリ３０に格納されるＮ×Ｎの画素数に応じて、カウンタ１０、アドレス変換ＲＯＭ５０ｚ，５０ｈのビット数は、任意のビット数を採用してもよい。
【００４１】
【発明の効果】
以上説明したように、この発明にかかるジグザグアドレス生成装置によれば、水平オルタネートのジグザグ順の逆変換が選択されたときはカウンタの出力をそのまま水平オルタネートのジグザグ順を逆変換して画素格納メモリのアドレス信号を出力するアドレス変換メモリのアドレス信号として出力し、垂直オルタネートのジグザグ順の逆変換が選択されたときはカウンタの出力の上位側ビットと下位側ビットを入れ替えてアドレス変換メモリのアドレス信号として出力するようにしている。これにより、少ないハードウエアで異なる方式に対応したジグザグ順の逆変換ができる。
【図面の簡単な説明】
【図１】この発明の実施の形態１であるジグザグアドレス生成装置を示すブロック図である。
【図２】ＤＣＴ変換と量子化を説明する図である。
【図３】ＭＰＥＧ４方式に採用されるジグザグアドレッシング方式、水平オルタネート方式および垂直オルタネート方式を説明する図である。
【図４】８画素×８画素のブロック領域の画素データをメモリに格納する場合のアドレス順を説明する図である。
【図５】アドレス変換ＲＯＭを説明するためのブロック図である。
【符号の説明】
１，１０  カウンタ、２，５０ｚ，５０ｈ  アドレス変換ＲＯＭ、３，３０  画素格納メモリ、４０，６０  選択回路。
【図１】
2004193751.tif 000003
【図２】
2004193751.tif 000004
【図３】
2004193751.tif 000005
【図４】
2004193751.tif 000006
【図５】
2004193751.tif 000007