JP2004193751A - ジグザグアドレス生成装置 - Google Patents
ジグザグアドレス生成装置 Download PDFInfo
- Publication number
- JP2004193751A JP2004193751A JP2002356729A JP2002356729A JP2004193751A JP 2004193751 A JP2004193751 A JP 2004193751A JP 2002356729 A JP2002356729 A JP 2002356729A JP 2002356729 A JP2002356729 A JP 2002356729A JP 2004193751 A JP2004193751 A JP 2004193751A
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- zigzag
- rom
- order
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】異なる方式に対応可能であり、符号化されたジグザグ順のデータを復号化する際に、ジグザグ順のデータを符号化前の順番に戻すためのジグザグ順の逆変換を行うジグザグアドレス生成装置を得ること。
【解決手段】水平オルタネートのジグザグ順を逆変換して画素格納メモリ30から符号化された画素データを符号化前の画素データの順番で読み出すためのアドレスデータが格納されているアドレス変換ROM50hと、カウント動作を行うカウンタ10と、水平オルタネートのジグザグ順の逆変換が選択されたときはカウンタ10の出力をそのままアドレス変換ROM50hのアドレス信号として出力し、垂直オルタネートのジグザグ順の逆変換が選択されたときはカウンタ10の出力の上位側ビットと下位側ビットを入れ替えてアドレス変換ROM50hに読み出しアドレス信号として出力する選択回路60とを備える。
【選択図】 図1
【解決手段】水平オルタネートのジグザグ順を逆変換して画素格納メモリ30から符号化された画素データを符号化前の画素データの順番で読み出すためのアドレスデータが格納されているアドレス変換ROM50hと、カウント動作を行うカウンタ10と、水平オルタネートのジグザグ順の逆変換が選択されたときはカウンタ10の出力をそのままアドレス変換ROM50hのアドレス信号として出力し、垂直オルタネートのジグザグ順の逆変換が選択されたときはカウンタ10の出力の上位側ビットと下位側ビットを入れ替えてアドレス変換ROM50hに読み出しアドレス信号として出力する選択回路60とを備える。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
この発明は、動画像圧縮伸長方式に利用されるジグザグアドレス生成装置に関するものであり、特に、復号化に利用されるジグザグアドレス生成装置に関するものである。
【0002】
【従来の技術】
動画像を高能率符号化(データ圧縮)する国際標準方式MPEG(Moving Picture Experts Group)を使ったアプリケーションが次々と商品化されている。MPEG1はビデオCDなどに利用され、MPEG2はDVDプレーヤーなどに利用され、MPEG4は次世代携帯電話などに利用されている。
【0003】
MPEG方式を利用するデータ圧縮方式は、動画のデータ量を圧縮する際に、DCT演算と、量子化と、2次元ランレングス符号化を行っている。そのため、符号化時に、演算結果がRAM(Random Access Memory)に順次書き込まれた後にジグザグ順に読み出される。また、復号時には、演算結果がRAMにジグザグ順に書き込まれた後に順次読み出される。ジグザグの順番は、ジグザグアドレッシング方式、水平オルタネート方式、垂直オルタネート方式で定義されている。RAMに書き込まれたデータをジグザグ順に読み出したり、ジグザグ順に書き込まれたデータをもとの順番で読み出すためには、定義されている順番でRAMのアドレスを指定する必要がある。しかしながら、そのようなアドレスを四則演算処理で生成することは困難である。
【0004】
従来技術では、メモリ内に2つのレジスタを備え、制御信号に応じてデータを保持、右シフト、左シフト、リセットすることでアクセスするメモリセルを決定することで、ジグザグ順にデータを読み出したり、ジグザグ順のデータをもとの順番で読み出したりするようにしている(たとえば、特許文献1参照)。
【0005】
【特許文献1】
特開平10−50049号公報
【0006】
【発明が解決しようとする課題】
しかしながら、上記従来技術では、ジグザグ順が固定であり、たとえば、ジグザグアドレッシング方式と水平オルタネート方式とを1つのメモリで実現することはできないという問題があった。すなわち、ジグザグアドレッシング方式と水平オルタネート方式と垂直オルタネート方式を実現するためには、3つのメモリが必要であるという問題があった。
【0007】
また、シフト動作を行うために、その動作時間だけデータを読み出す時間がかかってしまうという問題があった。
【0008】
この発明は上記に鑑みてなされたもので、異なる方式に対応可能であり、符号化されたジグザグ順のデータを復号化する際に、ジグザグ順のデータを符号化前の順番に戻すためのジグザグ順の逆変換を行うジグザグアドレス生成装置を得ることである。
【0009】
【課題を解決するための手段】
上記目的を達成するために、この発明にかかるジグザグアドレス生成装置は、圧縮された画素データの復号化に適応され、画素格納メモリに記憶された符号化された画素データをジグザグに読み出すためのアドレス信号を生成するジグザグアドレス生成装置において、水平オルタネートのジグザグ順を逆変換して前記画素格納メモリから符号化された画素データを符号化前の画素データの順番で読み出すためのアドレスデータが格納されているアドレス変換メモリと、カウント動作を行うカウンタと、水平オルタネートのジグザグ順の逆変換が選択されたときは前記カウンタの出力をそのまま前記アドレス変換メモリに読み出しアドレス信号として出力し、垂直オルタネートのジグザグ順の逆変換が選択されたときは前記カウンタの出力の上位側ビットと下位側ビットを入れ替えて前記アドレス変換メモリに読み出しアドレス信号として出力する選択回路とを備えることを特徴とする。
【0010】
この発明によれば、水平オルタネートのジグザグ順の逆変換が選択されたときはカウンタの出力をそのまま水平オルタネートのジグザグ順を逆変換して画素格納メモリのアドレス信号を出力するアドレス変換メモリのアドレス信号として出力し、垂直オルタネートのジグザグ順の逆変換が選択されたときはカウンタの出力の上位側ビットと下位側ビットを入れ替えてアドレス変換メモリのアドレス信号として出力するようにしている。
【0011】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかるジグザグアドレス生成装置の好適な実施の形態を詳細に説明する。
【0012】
実施の形態1.
まず、本発明にかかるジグザグアドレス生成装置が適用されるMPEG方式を利用するデータ圧縮方式について簡単に説明する。MPEG方式を利用するデータ圧縮方式は、動画のデータ量を圧縮する際に、DCT演算と、量子化と、2次元ランレングス符号化を行っている。
【0013】
DCT(Discrete Cosine Transform)は離散コサイン変換のことで、これは直交変換の手法の1つである。MPEG方式の画像圧縮の場合、たとえば8画素×8画素の小さなブロック(マクロブロック)単位で直交変換する。一般に画像データは低周波数域成分(以下、低域成分)の情報が多く、輪郭などの高周波数域成分(以下、高域成分)が少ない。そこで低域成分に与えるビット数を多くし、高域成分に与えるビット数を少なくするようにしてデータ量を少なく(すなわち圧縮)する。
【0014】
DCTによるデータ変換の例を図2に示す。図2(a)はDCT変換前のデータとしての画素値であり、図2(b)はDCT変換後のデータとしてのDCT係数値である。この場合は、8画素×8画素の1つのブロック領域を示している。DCT変換後のデータとしてのDCT係数値は、図2(b)に示すように、左から右へおよび上から下へ周波数が高くなっており、左上から右下へ向かって低域成分データから高域成分データに移行している。この場合は、低周波数域成分に大きなデータが分布し、高域成分には小さなデータが分布していることになる。
【0015】
図2(a)に示す64個の画素値を保存する場合、たとえば1画素に9ビット(−256から255までが表現できる)を割り当てると、64画素全部で576ビットを保存する必要がある。ところが、図2(b)の左上の1画素のデータに12ビット(−1024から1023まで表現できる)を割り当て、続く低域成分の15画素のデータに9ビット(−256から255までが表現できる)を割り当て、残りの48画素のデータに5ビット(−16から15までが表現できる)を割り当てると、64画素分のDCT係数値を保存するのに387ビットしか必要としない。このようにすると、図2(b)に示すDCT係数値は、図2(a)に示す画素値に比べ、8画素×8画素当たりで189ビットのデータ量が削減できることになる。
【0016】
図2(c)は、DCT変換後のデータに量子化を施した後のデータを示すものである。量子化とは定数で除算することを意味しているが、図2(c)の場合は、DCT変換後のデータを8で除算し、小数点以下を四捨五入している。量子化後のデータは、量子化前のデータより各画素に割り当てるビット数が小さくなることは明らかであるので、図2(c)に示す量子化後のデータは、図2(b)に示すDCT変換後のデータよりさらにデータ量が削減できていることになる。また、量子化することで零のデータが多くなり、零のデータは8画素×8画素のブロック領域の高域側(右下側)に集まるようになる。零のデータはデータのないことを意味するので、特に保存する必要がないので、この性質を利用すればデータ量をさらに削減できることになる。この性質を利用する符号化方法に2次元ランレングス符号化がある。
【0017】
2次元ランレングス符号化では、量子化まで実行した2次元の画像データを1次元に並べ直し、任意の法則に従い符号化する。たとえば、図2(c)に示す8画素×8画素の64画素分のデータを行方向に3行分だけ並べてみると、次のように「100,−4,−4,1,0,0,0,0,5,1,−1,−1,−1,0,−1,−1,−1,0,0,0,0,0,0」になるが、2次元ランレングス符号化では、この中で零の連続性(run値)と非零の値(lebel値)を調べて、それらを組にして符号化している。
【0018】
すなわち、
100 → (0,100):零は0個で、非零値は100
−4 → (0,−4) :零は0個で、非零値は−4
−4 → (0,−4) :零は0個で、非零値は−4
1 → (0,1) :零は0個で、非零値は1
0,0,0,0,5 → (4,5) :零は4個で、非零値は5
1 → (0,1) :零は0個で、非零値は1
−1 → (0,−1) :零は0個で、非零値は−1
−1 → (0,−1) :零は0個で、非零値は−1
−1 → (0,−1) :零は0個で、非零値は−1
0,−1 →(1,−1) :零は1個で、非零値は−1
−1 → (0,−1) :零は0個で、非零値は−1
−1 → (0,−1) :零は0個で、非零値は−1
0,0,0,0,0,0,0,0,0,−1 → (9,−1) :零は9個で、非零値は−1
のように符号化している。
【0019】
このように、run値とlebel値の組を1個の符号にして符号化を実行するが、この場合にも発生頻度の高い組み合わせに短いビット長を割り当て、発生頻度の低い組み合わせに長いビット長を割り当てると、符号化後のデータ量は小さくなる。2次元ランレングス符号化の場合、零の数が連続して並ぶほうが組み合わせの数が少なくなるのは明らかであり、組み合わせ自体が少ないほど符号化するものが少ないので、データ量がさらに削減できることが期待できる。零の数を連続して並べるためには、8画素×8画素のデータを行方向や列方向に連続に並べるのは適当でない。それは、DCT後のデータは左上から右下に小さくなるので、右下に零が集まる可能性が高いからである。そこで、8画素×8画素のデータを、零が続くように左上から右下へ並べ直すことがなされる。それがジグザグアドレッシングという方法で、MPEG方式では、8画素×8画素のデータを、図3(a)に示すような順に並べ直すようにジグザグアドレッシングが定義されている。
【0020】
また、MPEG4方式においては、図3(a)のジグザグアドレッシング方式以外に、図3(b)に示すような水平オルタネート方式および図3(c)に示すような垂直オルタネート方式も定義されている。これらの水平/垂直オルタネート方式は、基本はジグザグであるが、水平方向を優先にジグザグに並べるとより零が連続したり、あるいは垂直方向を優先にジグザグに並べるとより零が連続したりするような画像データに適用されるものである。MPEG4ではこれらの3種類の方法を画像の性質によって使い分け、よりデータ量を削減することが可能となっている。どの方式で並べ替えられたかを示す情報は付加されるので、データ圧縮された符号を復号する場合には、その情報に基づいて元通りに並べ替えることが可能である。
【0021】
ジグザグアドレス生成の方法に関して、図4と図5を用いて説明する。通常8画素×8画素のデータは、図4に示すように、メモリ内に水平方向に順番に格納されている。たとえば、量子化が終了した8画素×8画素のデータは、64個のアドレス空間を持つメモリに、図3のようなアドレス順に格納している。したがって、図3(a)に示すジグザグアドレッシング方式の場合は、メモリアドレスを「0,1,8,16,9,2,3,10,…,61,54,47,55,62,63」のように変化させて、メモリからデータを読んでくれば、ジグザグ順にデータを読み出すことが可能である。しかし、メモリアドレスを上記のようにジグザグに変化させることは、四則演算処理では困難である。そこで、メモリアドレスを生成する回路を利用することになる。これには読みとり専用メモリであるROMを利用することが簡単で、この方法が一般に利用されている。
【0022】
図5に、メモリアドレス生成回路の構成を示す。メモリアドレス生成回路は、6ビットのカウンタ1と、アドレス変換ROM2と、画素格納メモリ3とを備えている。カウンタは0から63まで順番にカウントする。ROMは64アドレスで、各アドレスには6ビットのデータが格納されており、それらのデータはジグザグアドレスに相当するものである。
【0023】
すなわち、
アドレス0にはデータ0(000_000)
アドレス1にはデータ1(000_001)
アドレス2にはデータ8(001_000)
アドレス3にはデータ16(010_000)
アドレス4にはデータ9(001_001)
アドレス5にはデータ2(000_010)
アドレス6にはデータ3(000_011)
アドレス7にはデータ10(001_010)
:
:
アドレス58にはデータ61(111_101)
アドレス59にはデータ54(110_110)
アドレス60にはデータ47(101_111)
アドレス61にはデータ55(110_111)
アドレス62にはデータ62(111_110)
アドレス63にはデータ63(111_111)
が格納されている。
【0024】
カウンタ1がカウントアップする毎にアドレス変換ROM2からは、図3(a)に示すようなジグザグアドレス値が出力されるので、アドレス変換ROM2の出力を画素格納メモリ3の読み出しアドレスとして利用すれば、画素格納メモリ3内の画素データをジグザグ順に読み出すことが可能となる。
【0025】
MPEG4システムの場合は、ジグザグアドレスの種類が、図3(a)〜(c)に示すように、3種類あるので、たとえば、3種類のアドレス変換ROMを用意し、3種類のアドレス変換ROMのうちから必要なジグザグアドレス方式のものを選択し、選択したアドレス変換ROMの出力をアドレスとして画素格納メモリ3に入力することで、所要のジグザグアドレス方式に対応する画素データを読み出すようにしている。
【0026】
つぎに、上述したように圧縮して符号化された画素データを復号化する場合について説明する。符号化された画素データは、ジグザグに並んでいるので、ジグザグ順に並んでいるデータをもとの順番に並べ替える必要がある。たとえば、図4に示すように、ジグザグ順に並んでいるデータを、0から63の順番にメモリに格納する。それらのジグザグ順に並んでいるデータをもとに戻す順番に読み出すようにする。この場合も符号化時と同様にメモリを読み出すメモリアドレスを生成する回路にROMを利用する。すなわち、ジグザグ順に並んでいるデータを格納しているメモリのアドレスを64アドレスのROMの6ビットのデータに格納する。それらのデータは、符号化する前の順番にデータを読み出すようにジグザグ順を逆変換するものである。
【0027】
すなわち、
アドレス0(000_000)にはデータ0
アドレス1(000_001)にはデータ1
アドレス2(000_010)にはデータ5
アドレス3(000_011)にはデータ6
アドレス4(000_100)にはデータ14
アドレス5(000_101)にはデータ15
アドレス6(000_110)にはデータ27
アドレス7(000_111)にはデータ28
:
:
アドレス58(000_000)にはデータ48
アドレス59(000_001)にはデータ49
アドレス60(000_010)にはデータ57
アドレス61(000_011)にはデータ58
アドレス62(000_100)にはデータ62
アドレス63(000_101)にはデータ63
が格納されている。
【0028】
アドレスがカウントアップする毎にメモリアドレス生成用のROMからは、図3(a)に示すようなジグザグアドレス値を逆に変換する値が出力されるので、このROMのデータを符号化された画素データが格納されるメモリの読み出しアドレスとして利用すれば、メモリ内の符号化された画素データをジグザグをもとに戻すように読み出すことが可能となる。
【0029】
MPEG4システムの場合は、ジグザグアドレスの種類が、図3(a)〜(c)に示すように、3種類あるので、これらに対応したメモリアドレス生成が必要となる。
【0030】
図1は、この発明の実施の形態1であるMPEG4方式を用いる復号化のジグザグアドレス生成装置の構成を示すブロック図である。この発明の実施の形態1であるMPEG4方式を用いる復号化のジグザグアドレス生成装置は、6ビットのカウンタ10と、ジグザグアドレッシング方式用のアドレス変換ROM50zと、水平オルタネート方式用のアドレス変換ROM50hと、画素格納メモリ30と、選択回路40,60とで構成される。
【0031】
画素格納メモリ30には、符号化された画素データが記憶されている。カウンタ10は、6ビットのカウンタであり、0から63までを順番にカウントする。アドレス変換ROM50z,50hは6ビットのアドレス入力と、6ビットのデータ出力を行うインタフェースをもっている。アドレス変換ROM50zには、図3(a)で規定されるジグザグ方式の逆変換テーブルが格納されており、アドレス変換ROM50hには、図3(b)で規定される水平オルタネート方式の逆変換テーブルが格納されている。各アドレス変換ROM50z,50hの6ビット出力の6ビットの並びを、MSBから順番に[5]、[4]、[3]、[2]、[1]、[0]と表すものとする。
【0032】
選択回路60は、セレクト信号SEL1に基づき、カウンタ10の出力のそのままの並びのデータと、カウンタ10の出力の上位3ビットと下位3ビットを入れ替えた(並びを[2]、[1]、[0]、[5]、[4]、[3]の順番にした)データからなる2個のデータのどちらか1個の6ビットのデータを選択する回路である。セレクト信号SEL1には、水平オルタネート方式と垂直オルタネート方式のどちらを選択するかを識別する情報が含まれている。
【0033】
すなわち、選択回路60は、図3(b)に示される水平オルタネート方式の逆変換順に画素格納メモリ30から符号化された画素データを読み出す場合には、カウンタ10の出力をそのまま選択してアドレス変換ROM50hに読み出しアドレスとして出力する。また、図3(c)に示される垂直オルタネート方式の逆変換順に画素格納メモリから符号化された画素データを読み出す場合には、カウンタ10の出力の上位3ビットと下位3ビットの順番を交換したデータを選択してアドレス変換ROM50hに読み出しアドレスとして出力する。
【0034】
ここで、水平オルタネート用のアドレス変換ROM(ROM5h)と、垂直オルタネート用のアドレス変換ROM(ROM5v)とを備えた場合、ROM5hとROM5vに格納されるデータを以下にしめす。
アドレス0(000_000):ROM5hにはデータ0、ROM2vにはデータ0
アドレス1(000_001):ROM5hにはデータ1、ROM2vにはデータ4
アドレス2(000_010):ROM5hにはデータ2、ROM2vにはデータ6
アドレス3(000_011):ROM5hにはデータ3、ROM5vにはデータ20
アドレス4(000_100):ROM5hにはデータ10、ROM5vにはデータ22
アドレス5(000_101):ROM5hにはデータ11、ROM5vにはデータ36
アドレス6(000_110):ROM5hにはデータ12、ROM5vにはデータ38
アドレス7(000_111):ROM5hにはデータ13、ROM5vにはデータ52
アドレス8(001_000):ROM5hにはデータ4、ROM5vにはデータ1
アドレス9(001_001):ROM5hにはデータ5、ROM5vにはデータ5
アドレス10(001_010):ROM5hにはデータ8、ROM5vにはデータ7
アドレス11(001_011):ROM5hにはデータ9、ROM5vにはデータ21
アドレス12(001_100):ROM5hにはデータ17、ROM5vにはデータ23
アドレス13(001_101):ROM5hにはデータ16、ROM5vにはデータ37
アドレス14(001_110):ROM5hにはデータ15、ROM5vにはデータ39
アドレス15(001_111):ROM5hにはデータ14、ROM5vにはデータ53
アドレス16(010_000):ROM5hにはデータ6、ROM5vにはデータ2
アドレス17(010_001):ROM5hにはデータ7、ROM5vにはデータ8
アドレス18(010_010):ROM5hにはデータ19、ROM5vにはデータ19
アドレス19(010_011):ROM5hにはデータ18、ROM5vにはデータ24
アドレス20(010_100):ROM5hにはデータ26、ROM5vにはデータ34
アドレス21(010_101):ROM5hにはデータ27、ROM5vにはデータ40
アドレス22(010_110):ROM5hにはデータ28、ROM5vにはデータ50
アドレス23(010_111):ROM5hにはデータ29、ROM5vにはデータ54
アドレス24(011_000):ROM5hにはデータ20、ROM5vにはデータ3
アドレス25(011_001):ROM5hにはデータ21、ROM5vにはデータ9
アドレス26(011_010):ROM5hにはデータ24、ROM5vにはデータ18
アドレス27(011_011):ROM5hにはデータ25、ROM5vにはデータ25
アドレス28(011_100):ROM5hにはデータ30、ROM5vにはデータ35
アドレス29(011_101):ROM5hにはデータ31、ROM5vにはデータ41
アドレス30(011_110):ROM5hにはデータ32、ROM5vにはデータ51
アドレス31(011_111):ROM5hにはデータ33、ROM5vにはデータ55
アドレス32(100_000):ROM5hにはデータ22、ROM5vにはデータ10
アドレス33(100_001):ROM5hにはデータ23、ROM5vにはデータ17
アドレス34(100_010):ROM5hにはデータ43、ROM5vにはデータ26
アドレス35(100_011):ROM5hにはデータ35、ROM5vにはデータ30
アドレス36(100_100):ROM5hにはデータ42、ROM5vにはデータ42
アドレス37(100_101):ROM5hにはデータ43、ROM5vにはデータ46
アドレス38(100_110):ROM5hにはデータ44、ROM5vにはデータ56
アドレス39(100_111):ROM5hにはデータ45、ROM5vにはデータ60
アドレス40(101_000):ROM5hにはデータ36、ROM5vにはデータ11
アドレス41(101_001):ROM5hにはデータ37、ROM5vにはデータ16
アドレス42(101_010):ROM5hにはデータ40、ROM5vにはデータ27
アドレス43(101_011):ROM5hにはデータ41、ROM5vにはデータ31
アドレス44(101_100):ROM5hにはデータ46、ROM5vにはデータ34
アドレス45(101_101):ROM5hにはデータ47、ROM5vにはデータ47
アドレス46(101_110):ROM5hにはデータ48、ROM5vにはデータ57
アドレス47(101_111):ROM5hにはデータ49、ROM5vにはデータ61
アドレス48(110_000):ROM5hにはデータ38、ROM5vにはデータ12
アドレス49(110_001):ROM5hにはデータ39、ROM5vにはデータ15
アドレス50(110_010):ROM5hにはデータ50、ROM5vにはデータ28
アドレス51(110_011):ROM5hにはデータ51、ROM5vにはデータ32
アドレス52(110_100):ROM5hにはデータ56、ROM5vにはデータ44
アドレス53(110_101):ROM5hにはデータ57、ROM5vにはデータ48
アドレス54(110_110):ROM5hにはデータ58、ROM5vにはデータ58
アドレス55(110_111):ROM5hにはデータ59、ROM5vにはデータ62
アドレス56(111_000):ROM5hにはデータ52、ROM5vにはデータ13
アドレス57(111_001):ROM5hにはデータ53、ROM5vにはデータ14
アドレス58(111_010):ROM5hにはデータ54、ROM5vにはデータ29
アドレス59(111_011):ROM5hにはデータ55、ROM5vにはデータ33
アドレス60(111_100):ROM5hにはデータ60、ROM5vにはデータ45
アドレス61(111_101):ROM5hにはデータ61、ROM5vにはデータ49
アドレス62(111_110):ROM5hにはデータ62、ROM5vにはデータ59
アドレス63(111_111):ROM5hにはデータ63、ROM5vにはデータ63
【0035】
上記のROM5hとROM5vに格納されているデータを比べて明らかなように、ROM5vに格納するべき内容はROM5hに格納されているデータの順番を示すアドレス値の上位3ビットと下位3ビットを交換した値をアドレス値にしたデータに一致している。たとえば、アドレス38(100_110)のROM5hのROM5hのデータとアドレス52(110_100)のROM5vのデータはともに「44」である。また、アドレス55(110_111)のROM5hのデータとアドレス62(111_110)のROM5vのデータはともに「59」である。さらに、アドレス26(011_010)のROM5hのデータとアドレス19(010_011)のROM5vのデータはともに「24」である。したがって、水平オルタネート方式用のアドレス変換ROM50hのアドレスにおいて上位3ビットと下位3ビットとを交換することで垂直オルタネート方式用のアドレス変換ROMに格納している内容を生成していることと同一となる。
【0036】
選択回路40は、セレクト信号SEL2に基づき、アドレス変換ROM50zの出力と、アドレス変換ROM50hの出力とのどちらかを選択する回路である。セレクト信号SEL2には、ジグザグアドレッシング方式と、セレクト信号SEL1に基づき選択された水平/垂直オルタネート方式とを識別する情報が含まれている。
【0037】
すなわち、セレクト信号SEL1およびセレクト信号SEL2の2つの信号によりジグザグアドレッシング方式、水平/垂直オルタネート方式のうちどれを選択するかを決定してその方式の逆変換順に画素格納メモリ30から符号化された画素データを読み出す。
【0038】
このようにこの実施の形態1によればMPEG4方式を利用した圧縮データの復号化を行う場合に、垂直オルタネート方式のジグザグ順を符号化前のデータの順番に変換するアドレス変換ROMのデータが、水平オルタネート方式のジグザグ順を符号構えのデータの順番に変換するアドレス変換ROMのアドレスの上位3ビットと下位3ビットを交換したアドレスのデータと同一であることに着目し、アドレス変換ROMを1個削除するようにしたため、少ないハードウエアで異なる方式に対応することができる。
【0039】
実施の形態2.
実施の形態1では、水平オルタネート方式の逆変換テーブルをアドレス変換ROM50hに格納しているが、垂直オルタネート方式の変換テーブルをアドレス変換ROM50vとして格納しておき、その出力の上位3ビットと下位3ビットを交換することで、水平オルタネート方式の逆変換順のアドレスを生成して画素格納メモリ30から符号化された画素データを読み出すようにしてもよい。この方法でも、全く同一の効果を得ることができる。
【0040】
なお、本発明では、アドレス変換ROM、画素格納メモリ、選択回路は同一の機能を有するものであれば、任意の回路構成を採用すればよい。また、画素格納メモリ30に格納されるN×Nの画素数に応じて、カウンタ10、アドレス変換ROM50z,50hのビット数は、任意のビット数を採用してもよい。
【0041】
【発明の効果】
以上説明したように、この発明にかかるジグザグアドレス生成装置によれば、水平オルタネートのジグザグ順の逆変換が選択されたときはカウンタの出力をそのまま水平オルタネートのジグザグ順を逆変換して画素格納メモリのアドレス信号を出力するアドレス変換メモリのアドレス信号として出力し、垂直オルタネートのジグザグ順の逆変換が選択されたときはカウンタの出力の上位側ビットと下位側ビットを入れ替えてアドレス変換メモリのアドレス信号として出力するようにしている。これにより、少ないハードウエアで異なる方式に対応したジグザグ順の逆変換ができる。
【図面の簡単な説明】
【図1】この発明の実施の形態1であるジグザグアドレス生成装置を示すブロック図である。
【図2】DCT変換と量子化を説明する図である。
【図3】MPEG4方式に採用されるジグザグアドレッシング方式、水平オルタネート方式および垂直オルタネート方式を説明する図である。
【図4】8画素×8画素のブロック領域の画素データをメモリに格納する場合のアドレス順を説明する図である。
【図5】アドレス変換ROMを説明するためのブロック図である。
【符号の説明】
1,10 カウンタ、2,50z,50h アドレス変換ROM、3,30 画素格納メモリ、40,60 選択回路。
【発明の属する技術分野】
この発明は、動画像圧縮伸長方式に利用されるジグザグアドレス生成装置に関するものであり、特に、復号化に利用されるジグザグアドレス生成装置に関するものである。
【0002】
【従来の技術】
動画像を高能率符号化(データ圧縮)する国際標準方式MPEG(Moving Picture Experts Group)を使ったアプリケーションが次々と商品化されている。MPEG1はビデオCDなどに利用され、MPEG2はDVDプレーヤーなどに利用され、MPEG4は次世代携帯電話などに利用されている。
【0003】
MPEG方式を利用するデータ圧縮方式は、動画のデータ量を圧縮する際に、DCT演算と、量子化と、2次元ランレングス符号化を行っている。そのため、符号化時に、演算結果がRAM(Random Access Memory)に順次書き込まれた後にジグザグ順に読み出される。また、復号時には、演算結果がRAMにジグザグ順に書き込まれた後に順次読み出される。ジグザグの順番は、ジグザグアドレッシング方式、水平オルタネート方式、垂直オルタネート方式で定義されている。RAMに書き込まれたデータをジグザグ順に読み出したり、ジグザグ順に書き込まれたデータをもとの順番で読み出すためには、定義されている順番でRAMのアドレスを指定する必要がある。しかしながら、そのようなアドレスを四則演算処理で生成することは困難である。
【0004】
従来技術では、メモリ内に2つのレジスタを備え、制御信号に応じてデータを保持、右シフト、左シフト、リセットすることでアクセスするメモリセルを決定することで、ジグザグ順にデータを読み出したり、ジグザグ順のデータをもとの順番で読み出したりするようにしている(たとえば、特許文献1参照)。
【0005】
【特許文献1】
特開平10−50049号公報
【0006】
【発明が解決しようとする課題】
しかしながら、上記従来技術では、ジグザグ順が固定であり、たとえば、ジグザグアドレッシング方式と水平オルタネート方式とを1つのメモリで実現することはできないという問題があった。すなわち、ジグザグアドレッシング方式と水平オルタネート方式と垂直オルタネート方式を実現するためには、3つのメモリが必要であるという問題があった。
【0007】
また、シフト動作を行うために、その動作時間だけデータを読み出す時間がかかってしまうという問題があった。
【0008】
この発明は上記に鑑みてなされたもので、異なる方式に対応可能であり、符号化されたジグザグ順のデータを復号化する際に、ジグザグ順のデータを符号化前の順番に戻すためのジグザグ順の逆変換を行うジグザグアドレス生成装置を得ることである。
【0009】
【課題を解決するための手段】
上記目的を達成するために、この発明にかかるジグザグアドレス生成装置は、圧縮された画素データの復号化に適応され、画素格納メモリに記憶された符号化された画素データをジグザグに読み出すためのアドレス信号を生成するジグザグアドレス生成装置において、水平オルタネートのジグザグ順を逆変換して前記画素格納メモリから符号化された画素データを符号化前の画素データの順番で読み出すためのアドレスデータが格納されているアドレス変換メモリと、カウント動作を行うカウンタと、水平オルタネートのジグザグ順の逆変換が選択されたときは前記カウンタの出力をそのまま前記アドレス変換メモリに読み出しアドレス信号として出力し、垂直オルタネートのジグザグ順の逆変換が選択されたときは前記カウンタの出力の上位側ビットと下位側ビットを入れ替えて前記アドレス変換メモリに読み出しアドレス信号として出力する選択回路とを備えることを特徴とする。
【0010】
この発明によれば、水平オルタネートのジグザグ順の逆変換が選択されたときはカウンタの出力をそのまま水平オルタネートのジグザグ順を逆変換して画素格納メモリのアドレス信号を出力するアドレス変換メモリのアドレス信号として出力し、垂直オルタネートのジグザグ順の逆変換が選択されたときはカウンタの出力の上位側ビットと下位側ビットを入れ替えてアドレス変換メモリのアドレス信号として出力するようにしている。
【0011】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかるジグザグアドレス生成装置の好適な実施の形態を詳細に説明する。
【0012】
実施の形態1.
まず、本発明にかかるジグザグアドレス生成装置が適用されるMPEG方式を利用するデータ圧縮方式について簡単に説明する。MPEG方式を利用するデータ圧縮方式は、動画のデータ量を圧縮する際に、DCT演算と、量子化と、2次元ランレングス符号化を行っている。
【0013】
DCT(Discrete Cosine Transform)は離散コサイン変換のことで、これは直交変換の手法の1つである。MPEG方式の画像圧縮の場合、たとえば8画素×8画素の小さなブロック(マクロブロック)単位で直交変換する。一般に画像データは低周波数域成分(以下、低域成分)の情報が多く、輪郭などの高周波数域成分(以下、高域成分)が少ない。そこで低域成分に与えるビット数を多くし、高域成分に与えるビット数を少なくするようにしてデータ量を少なく(すなわち圧縮)する。
【0014】
DCTによるデータ変換の例を図2に示す。図2(a)はDCT変換前のデータとしての画素値であり、図2(b)はDCT変換後のデータとしてのDCT係数値である。この場合は、8画素×8画素の1つのブロック領域を示している。DCT変換後のデータとしてのDCT係数値は、図2(b)に示すように、左から右へおよび上から下へ周波数が高くなっており、左上から右下へ向かって低域成分データから高域成分データに移行している。この場合は、低周波数域成分に大きなデータが分布し、高域成分には小さなデータが分布していることになる。
【0015】
図2(a)に示す64個の画素値を保存する場合、たとえば1画素に9ビット(−256から255までが表現できる)を割り当てると、64画素全部で576ビットを保存する必要がある。ところが、図2(b)の左上の1画素のデータに12ビット(−1024から1023まで表現できる)を割り当て、続く低域成分の15画素のデータに9ビット(−256から255までが表現できる)を割り当て、残りの48画素のデータに5ビット(−16から15までが表現できる)を割り当てると、64画素分のDCT係数値を保存するのに387ビットしか必要としない。このようにすると、図2(b)に示すDCT係数値は、図2(a)に示す画素値に比べ、8画素×8画素当たりで189ビットのデータ量が削減できることになる。
【0016】
図2(c)は、DCT変換後のデータに量子化を施した後のデータを示すものである。量子化とは定数で除算することを意味しているが、図2(c)の場合は、DCT変換後のデータを8で除算し、小数点以下を四捨五入している。量子化後のデータは、量子化前のデータより各画素に割り当てるビット数が小さくなることは明らかであるので、図2(c)に示す量子化後のデータは、図2(b)に示すDCT変換後のデータよりさらにデータ量が削減できていることになる。また、量子化することで零のデータが多くなり、零のデータは8画素×8画素のブロック領域の高域側(右下側)に集まるようになる。零のデータはデータのないことを意味するので、特に保存する必要がないので、この性質を利用すればデータ量をさらに削減できることになる。この性質を利用する符号化方法に2次元ランレングス符号化がある。
【0017】
2次元ランレングス符号化では、量子化まで実行した2次元の画像データを1次元に並べ直し、任意の法則に従い符号化する。たとえば、図2(c)に示す8画素×8画素の64画素分のデータを行方向に3行分だけ並べてみると、次のように「100,−4,−4,1,0,0,0,0,5,1,−1,−1,−1,0,−1,−1,−1,0,0,0,0,0,0」になるが、2次元ランレングス符号化では、この中で零の連続性(run値)と非零の値(lebel値)を調べて、それらを組にして符号化している。
【0018】
すなわち、
100 → (0,100):零は0個で、非零値は100
−4 → (0,−4) :零は0個で、非零値は−4
−4 → (0,−4) :零は0個で、非零値は−4
1 → (0,1) :零は0個で、非零値は1
0,0,0,0,5 → (4,5) :零は4個で、非零値は5
1 → (0,1) :零は0個で、非零値は1
−1 → (0,−1) :零は0個で、非零値は−1
−1 → (0,−1) :零は0個で、非零値は−1
−1 → (0,−1) :零は0個で、非零値は−1
0,−1 →(1,−1) :零は1個で、非零値は−1
−1 → (0,−1) :零は0個で、非零値は−1
−1 → (0,−1) :零は0個で、非零値は−1
0,0,0,0,0,0,0,0,0,−1 → (9,−1) :零は9個で、非零値は−1
のように符号化している。
【0019】
このように、run値とlebel値の組を1個の符号にして符号化を実行するが、この場合にも発生頻度の高い組み合わせに短いビット長を割り当て、発生頻度の低い組み合わせに長いビット長を割り当てると、符号化後のデータ量は小さくなる。2次元ランレングス符号化の場合、零の数が連続して並ぶほうが組み合わせの数が少なくなるのは明らかであり、組み合わせ自体が少ないほど符号化するものが少ないので、データ量がさらに削減できることが期待できる。零の数を連続して並べるためには、8画素×8画素のデータを行方向や列方向に連続に並べるのは適当でない。それは、DCT後のデータは左上から右下に小さくなるので、右下に零が集まる可能性が高いからである。そこで、8画素×8画素のデータを、零が続くように左上から右下へ並べ直すことがなされる。それがジグザグアドレッシングという方法で、MPEG方式では、8画素×8画素のデータを、図3(a)に示すような順に並べ直すようにジグザグアドレッシングが定義されている。
【0020】
また、MPEG4方式においては、図3(a)のジグザグアドレッシング方式以外に、図3(b)に示すような水平オルタネート方式および図3(c)に示すような垂直オルタネート方式も定義されている。これらの水平/垂直オルタネート方式は、基本はジグザグであるが、水平方向を優先にジグザグに並べるとより零が連続したり、あるいは垂直方向を優先にジグザグに並べるとより零が連続したりするような画像データに適用されるものである。MPEG4ではこれらの3種類の方法を画像の性質によって使い分け、よりデータ量を削減することが可能となっている。どの方式で並べ替えられたかを示す情報は付加されるので、データ圧縮された符号を復号する場合には、その情報に基づいて元通りに並べ替えることが可能である。
【0021】
ジグザグアドレス生成の方法に関して、図4と図5を用いて説明する。通常8画素×8画素のデータは、図4に示すように、メモリ内に水平方向に順番に格納されている。たとえば、量子化が終了した8画素×8画素のデータは、64個のアドレス空間を持つメモリに、図3のようなアドレス順に格納している。したがって、図3(a)に示すジグザグアドレッシング方式の場合は、メモリアドレスを「0,1,8,16,9,2,3,10,…,61,54,47,55,62,63」のように変化させて、メモリからデータを読んでくれば、ジグザグ順にデータを読み出すことが可能である。しかし、メモリアドレスを上記のようにジグザグに変化させることは、四則演算処理では困難である。そこで、メモリアドレスを生成する回路を利用することになる。これには読みとり専用メモリであるROMを利用することが簡単で、この方法が一般に利用されている。
【0022】
図5に、メモリアドレス生成回路の構成を示す。メモリアドレス生成回路は、6ビットのカウンタ1と、アドレス変換ROM2と、画素格納メモリ3とを備えている。カウンタは0から63まで順番にカウントする。ROMは64アドレスで、各アドレスには6ビットのデータが格納されており、それらのデータはジグザグアドレスに相当するものである。
【0023】
すなわち、
アドレス0にはデータ0(000_000)
アドレス1にはデータ1(000_001)
アドレス2にはデータ8(001_000)
アドレス3にはデータ16(010_000)
アドレス4にはデータ9(001_001)
アドレス5にはデータ2(000_010)
アドレス6にはデータ3(000_011)
アドレス7にはデータ10(001_010)
:
:
アドレス58にはデータ61(111_101)
アドレス59にはデータ54(110_110)
アドレス60にはデータ47(101_111)
アドレス61にはデータ55(110_111)
アドレス62にはデータ62(111_110)
アドレス63にはデータ63(111_111)
が格納されている。
【0024】
カウンタ1がカウントアップする毎にアドレス変換ROM2からは、図3(a)に示すようなジグザグアドレス値が出力されるので、アドレス変換ROM2の出力を画素格納メモリ3の読み出しアドレスとして利用すれば、画素格納メモリ3内の画素データをジグザグ順に読み出すことが可能となる。
【0025】
MPEG4システムの場合は、ジグザグアドレスの種類が、図3(a)〜(c)に示すように、3種類あるので、たとえば、3種類のアドレス変換ROMを用意し、3種類のアドレス変換ROMのうちから必要なジグザグアドレス方式のものを選択し、選択したアドレス変換ROMの出力をアドレスとして画素格納メモリ3に入力することで、所要のジグザグアドレス方式に対応する画素データを読み出すようにしている。
【0026】
つぎに、上述したように圧縮して符号化された画素データを復号化する場合について説明する。符号化された画素データは、ジグザグに並んでいるので、ジグザグ順に並んでいるデータをもとの順番に並べ替える必要がある。たとえば、図4に示すように、ジグザグ順に並んでいるデータを、0から63の順番にメモリに格納する。それらのジグザグ順に並んでいるデータをもとに戻す順番に読み出すようにする。この場合も符号化時と同様にメモリを読み出すメモリアドレスを生成する回路にROMを利用する。すなわち、ジグザグ順に並んでいるデータを格納しているメモリのアドレスを64アドレスのROMの6ビットのデータに格納する。それらのデータは、符号化する前の順番にデータを読み出すようにジグザグ順を逆変換するものである。
【0027】
すなわち、
アドレス0(000_000)にはデータ0
アドレス1(000_001)にはデータ1
アドレス2(000_010)にはデータ5
アドレス3(000_011)にはデータ6
アドレス4(000_100)にはデータ14
アドレス5(000_101)にはデータ15
アドレス6(000_110)にはデータ27
アドレス7(000_111)にはデータ28
:
:
アドレス58(000_000)にはデータ48
アドレス59(000_001)にはデータ49
アドレス60(000_010)にはデータ57
アドレス61(000_011)にはデータ58
アドレス62(000_100)にはデータ62
アドレス63(000_101)にはデータ63
が格納されている。
【0028】
アドレスがカウントアップする毎にメモリアドレス生成用のROMからは、図3(a)に示すようなジグザグアドレス値を逆に変換する値が出力されるので、このROMのデータを符号化された画素データが格納されるメモリの読み出しアドレスとして利用すれば、メモリ内の符号化された画素データをジグザグをもとに戻すように読み出すことが可能となる。
【0029】
MPEG4システムの場合は、ジグザグアドレスの種類が、図3(a)〜(c)に示すように、3種類あるので、これらに対応したメモリアドレス生成が必要となる。
【0030】
図1は、この発明の実施の形態1であるMPEG4方式を用いる復号化のジグザグアドレス生成装置の構成を示すブロック図である。この発明の実施の形態1であるMPEG4方式を用いる復号化のジグザグアドレス生成装置は、6ビットのカウンタ10と、ジグザグアドレッシング方式用のアドレス変換ROM50zと、水平オルタネート方式用のアドレス変換ROM50hと、画素格納メモリ30と、選択回路40,60とで構成される。
【0031】
画素格納メモリ30には、符号化された画素データが記憶されている。カウンタ10は、6ビットのカウンタであり、0から63までを順番にカウントする。アドレス変換ROM50z,50hは6ビットのアドレス入力と、6ビットのデータ出力を行うインタフェースをもっている。アドレス変換ROM50zには、図3(a)で規定されるジグザグ方式の逆変換テーブルが格納されており、アドレス変換ROM50hには、図3(b)で規定される水平オルタネート方式の逆変換テーブルが格納されている。各アドレス変換ROM50z,50hの6ビット出力の6ビットの並びを、MSBから順番に[5]、[4]、[3]、[2]、[1]、[0]と表すものとする。
【0032】
選択回路60は、セレクト信号SEL1に基づき、カウンタ10の出力のそのままの並びのデータと、カウンタ10の出力の上位3ビットと下位3ビットを入れ替えた(並びを[2]、[1]、[0]、[5]、[4]、[3]の順番にした)データからなる2個のデータのどちらか1個の6ビットのデータを選択する回路である。セレクト信号SEL1には、水平オルタネート方式と垂直オルタネート方式のどちらを選択するかを識別する情報が含まれている。
【0033】
すなわち、選択回路60は、図3(b)に示される水平オルタネート方式の逆変換順に画素格納メモリ30から符号化された画素データを読み出す場合には、カウンタ10の出力をそのまま選択してアドレス変換ROM50hに読み出しアドレスとして出力する。また、図3(c)に示される垂直オルタネート方式の逆変換順に画素格納メモリから符号化された画素データを読み出す場合には、カウンタ10の出力の上位3ビットと下位3ビットの順番を交換したデータを選択してアドレス変換ROM50hに読み出しアドレスとして出力する。
【0034】
ここで、水平オルタネート用のアドレス変換ROM(ROM5h)と、垂直オルタネート用のアドレス変換ROM(ROM5v)とを備えた場合、ROM5hとROM5vに格納されるデータを以下にしめす。
アドレス0(000_000):ROM5hにはデータ0、ROM2vにはデータ0
アドレス1(000_001):ROM5hにはデータ1、ROM2vにはデータ4
アドレス2(000_010):ROM5hにはデータ2、ROM2vにはデータ6
アドレス3(000_011):ROM5hにはデータ3、ROM5vにはデータ20
アドレス4(000_100):ROM5hにはデータ10、ROM5vにはデータ22
アドレス5(000_101):ROM5hにはデータ11、ROM5vにはデータ36
アドレス6(000_110):ROM5hにはデータ12、ROM5vにはデータ38
アドレス7(000_111):ROM5hにはデータ13、ROM5vにはデータ52
アドレス8(001_000):ROM5hにはデータ4、ROM5vにはデータ1
アドレス9(001_001):ROM5hにはデータ5、ROM5vにはデータ5
アドレス10(001_010):ROM5hにはデータ8、ROM5vにはデータ7
アドレス11(001_011):ROM5hにはデータ9、ROM5vにはデータ21
アドレス12(001_100):ROM5hにはデータ17、ROM5vにはデータ23
アドレス13(001_101):ROM5hにはデータ16、ROM5vにはデータ37
アドレス14(001_110):ROM5hにはデータ15、ROM5vにはデータ39
アドレス15(001_111):ROM5hにはデータ14、ROM5vにはデータ53
アドレス16(010_000):ROM5hにはデータ6、ROM5vにはデータ2
アドレス17(010_001):ROM5hにはデータ7、ROM5vにはデータ8
アドレス18(010_010):ROM5hにはデータ19、ROM5vにはデータ19
アドレス19(010_011):ROM5hにはデータ18、ROM5vにはデータ24
アドレス20(010_100):ROM5hにはデータ26、ROM5vにはデータ34
アドレス21(010_101):ROM5hにはデータ27、ROM5vにはデータ40
アドレス22(010_110):ROM5hにはデータ28、ROM5vにはデータ50
アドレス23(010_111):ROM5hにはデータ29、ROM5vにはデータ54
アドレス24(011_000):ROM5hにはデータ20、ROM5vにはデータ3
アドレス25(011_001):ROM5hにはデータ21、ROM5vにはデータ9
アドレス26(011_010):ROM5hにはデータ24、ROM5vにはデータ18
アドレス27(011_011):ROM5hにはデータ25、ROM5vにはデータ25
アドレス28(011_100):ROM5hにはデータ30、ROM5vにはデータ35
アドレス29(011_101):ROM5hにはデータ31、ROM5vにはデータ41
アドレス30(011_110):ROM5hにはデータ32、ROM5vにはデータ51
アドレス31(011_111):ROM5hにはデータ33、ROM5vにはデータ55
アドレス32(100_000):ROM5hにはデータ22、ROM5vにはデータ10
アドレス33(100_001):ROM5hにはデータ23、ROM5vにはデータ17
アドレス34(100_010):ROM5hにはデータ43、ROM5vにはデータ26
アドレス35(100_011):ROM5hにはデータ35、ROM5vにはデータ30
アドレス36(100_100):ROM5hにはデータ42、ROM5vにはデータ42
アドレス37(100_101):ROM5hにはデータ43、ROM5vにはデータ46
アドレス38(100_110):ROM5hにはデータ44、ROM5vにはデータ56
アドレス39(100_111):ROM5hにはデータ45、ROM5vにはデータ60
アドレス40(101_000):ROM5hにはデータ36、ROM5vにはデータ11
アドレス41(101_001):ROM5hにはデータ37、ROM5vにはデータ16
アドレス42(101_010):ROM5hにはデータ40、ROM5vにはデータ27
アドレス43(101_011):ROM5hにはデータ41、ROM5vにはデータ31
アドレス44(101_100):ROM5hにはデータ46、ROM5vにはデータ34
アドレス45(101_101):ROM5hにはデータ47、ROM5vにはデータ47
アドレス46(101_110):ROM5hにはデータ48、ROM5vにはデータ57
アドレス47(101_111):ROM5hにはデータ49、ROM5vにはデータ61
アドレス48(110_000):ROM5hにはデータ38、ROM5vにはデータ12
アドレス49(110_001):ROM5hにはデータ39、ROM5vにはデータ15
アドレス50(110_010):ROM5hにはデータ50、ROM5vにはデータ28
アドレス51(110_011):ROM5hにはデータ51、ROM5vにはデータ32
アドレス52(110_100):ROM5hにはデータ56、ROM5vにはデータ44
アドレス53(110_101):ROM5hにはデータ57、ROM5vにはデータ48
アドレス54(110_110):ROM5hにはデータ58、ROM5vにはデータ58
アドレス55(110_111):ROM5hにはデータ59、ROM5vにはデータ62
アドレス56(111_000):ROM5hにはデータ52、ROM5vにはデータ13
アドレス57(111_001):ROM5hにはデータ53、ROM5vにはデータ14
アドレス58(111_010):ROM5hにはデータ54、ROM5vにはデータ29
アドレス59(111_011):ROM5hにはデータ55、ROM5vにはデータ33
アドレス60(111_100):ROM5hにはデータ60、ROM5vにはデータ45
アドレス61(111_101):ROM5hにはデータ61、ROM5vにはデータ49
アドレス62(111_110):ROM5hにはデータ62、ROM5vにはデータ59
アドレス63(111_111):ROM5hにはデータ63、ROM5vにはデータ63
【0035】
上記のROM5hとROM5vに格納されているデータを比べて明らかなように、ROM5vに格納するべき内容はROM5hに格納されているデータの順番を示すアドレス値の上位3ビットと下位3ビットを交換した値をアドレス値にしたデータに一致している。たとえば、アドレス38(100_110)のROM5hのROM5hのデータとアドレス52(110_100)のROM5vのデータはともに「44」である。また、アドレス55(110_111)のROM5hのデータとアドレス62(111_110)のROM5vのデータはともに「59」である。さらに、アドレス26(011_010)のROM5hのデータとアドレス19(010_011)のROM5vのデータはともに「24」である。したがって、水平オルタネート方式用のアドレス変換ROM50hのアドレスにおいて上位3ビットと下位3ビットとを交換することで垂直オルタネート方式用のアドレス変換ROMに格納している内容を生成していることと同一となる。
【0036】
選択回路40は、セレクト信号SEL2に基づき、アドレス変換ROM50zの出力と、アドレス変換ROM50hの出力とのどちらかを選択する回路である。セレクト信号SEL2には、ジグザグアドレッシング方式と、セレクト信号SEL1に基づき選択された水平/垂直オルタネート方式とを識別する情報が含まれている。
【0037】
すなわち、セレクト信号SEL1およびセレクト信号SEL2の2つの信号によりジグザグアドレッシング方式、水平/垂直オルタネート方式のうちどれを選択するかを決定してその方式の逆変換順に画素格納メモリ30から符号化された画素データを読み出す。
【0038】
このようにこの実施の形態1によればMPEG4方式を利用した圧縮データの復号化を行う場合に、垂直オルタネート方式のジグザグ順を符号化前のデータの順番に変換するアドレス変換ROMのデータが、水平オルタネート方式のジグザグ順を符号構えのデータの順番に変換するアドレス変換ROMのアドレスの上位3ビットと下位3ビットを交換したアドレスのデータと同一であることに着目し、アドレス変換ROMを1個削除するようにしたため、少ないハードウエアで異なる方式に対応することができる。
【0039】
実施の形態2.
実施の形態1では、水平オルタネート方式の逆変換テーブルをアドレス変換ROM50hに格納しているが、垂直オルタネート方式の変換テーブルをアドレス変換ROM50vとして格納しておき、その出力の上位3ビットと下位3ビットを交換することで、水平オルタネート方式の逆変換順のアドレスを生成して画素格納メモリ30から符号化された画素データを読み出すようにしてもよい。この方法でも、全く同一の効果を得ることができる。
【0040】
なお、本発明では、アドレス変換ROM、画素格納メモリ、選択回路は同一の機能を有するものであれば、任意の回路構成を採用すればよい。また、画素格納メモリ30に格納されるN×Nの画素数に応じて、カウンタ10、アドレス変換ROM50z,50hのビット数は、任意のビット数を採用してもよい。
【0041】
【発明の効果】
以上説明したように、この発明にかかるジグザグアドレス生成装置によれば、水平オルタネートのジグザグ順の逆変換が選択されたときはカウンタの出力をそのまま水平オルタネートのジグザグ順を逆変換して画素格納メモリのアドレス信号を出力するアドレス変換メモリのアドレス信号として出力し、垂直オルタネートのジグザグ順の逆変換が選択されたときはカウンタの出力の上位側ビットと下位側ビットを入れ替えてアドレス変換メモリのアドレス信号として出力するようにしている。これにより、少ないハードウエアで異なる方式に対応したジグザグ順の逆変換ができる。
【図面の簡単な説明】
【図1】この発明の実施の形態1であるジグザグアドレス生成装置を示すブロック図である。
【図2】DCT変換と量子化を説明する図である。
【図3】MPEG4方式に採用されるジグザグアドレッシング方式、水平オルタネート方式および垂直オルタネート方式を説明する図である。
【図4】8画素×8画素のブロック領域の画素データをメモリに格納する場合のアドレス順を説明する図である。
【図5】アドレス変換ROMを説明するためのブロック図である。
【符号の説明】
1,10 カウンタ、2,50z,50h アドレス変換ROM、3,30 画素格納メモリ、40,60 選択回路。
Claims (3)
- 圧縮された画素データの復号化に適応され、画素格納メモリに記憶された符号化された画素データをジグザグに読み出すためのアドレス信号を生成するジグザグアドレス生成装置において、
水平オルタネートのジグザグ順を逆変換して前記画素格納メモリから符号化された画素データを符号化前の画素データの順番で読み出すためのアドレスデータが格納されているアドレス変換メモリと、
カウント動作を行うカウンタと、
水平オルタネートのジグザグ順の逆変換が選択されたときは前記カウンタの出力をそのまま前記アドレス変換メモリに読み出しアドレス信号として出力し、垂直オルタネートのジグザグ順の逆変換が選択されたときは前記カウンタの出力の上位側ビットと下位側ビットを入れ替えて前記アドレス変換メモリに読み出しアドレス信号として出力する選択回路と、
を備えることを特徴とするジグザグアドレス生成装置。 - 圧縮された画素データの復号化に適応され、画素格納メモリに記憶された符号化された画素データをジグザグに読み出すためのアドレス信号を生成するジグザグアドレス生成装置において、
垂直オルタネートのジグザグ順を逆変換して前記画素格納メモリから符号化された画素データを符号化前の画素データの順番で読み出すためのアドレスデータが格納されているアドレス変換メモリと、
カウント動作を行うカウンタと、
垂直オルタネートのジグザグ順の逆変換が選択されたときは前記カウンタの出力をそのまま前記アドレス変換メモリに読み出しアドレス信号として出力し、水平オルタネートのジグザグ順の逆変換が選択されたときは前記カウンタの出力の上位側ビットと下位側ビットを入れ替えて前記アドレス変換メモリに読み出しアドレス信号として出力する選択回路と、
を備えることを特徴とするジグザグアドレス生成装置。 - 前記カウンタの出力を用いて前記画素格納メモリからジグザグアドレッシングのジグザグ順を逆変換して前記画素格納メモリから符号化された画素データを符号化前の画素データの順番で読出すためのアドレスデータが格納されているジグザグアドレッシング用アドレス変換メモリと、
前記ジグザグアドレッシングのジグザグ順の逆変換が選択されたときは前記ジグザグアドレッシング用アドレス変換メモリの出力を前記画素格納メモリの読み出しアドレス信号として出力し、前記水平オルタネートのジグザグ順の逆変換または前記垂直オルタネートのジグザグ順の逆変換が選択されたときは前記アドレス変換メモリの出力を前記画素格納メモリの読み出しアドレス信号として出力する第2の選択回路と、
をさらに備えたことを特徴とする請求項1または2に記載のジグザグアドレス生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002356729A JP2004193751A (ja) | 2002-12-09 | 2002-12-09 | ジグザグアドレス生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002356729A JP2004193751A (ja) | 2002-12-09 | 2002-12-09 | ジグザグアドレス生成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004193751A true JP2004193751A (ja) | 2004-07-08 |
Family
ID=32756981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002356729A Pending JP2004193751A (ja) | 2002-12-09 | 2002-12-09 | ジグザグアドレス生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004193751A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008120434A1 (ja) * | 2007-03-28 | 2008-10-09 | Panasonic Corporation | 復号化回路、復号化方法、符号化回路及び符号化方法 |
-
2002
- 2002-12-09 JP JP2002356729A patent/JP2004193751A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008120434A1 (ja) * | 2007-03-28 | 2008-10-09 | Panasonic Corporation | 復号化回路、復号化方法、符号化回路及び符号化方法 |
US8249182B2 (en) | 2007-03-28 | 2012-08-21 | Panasonic Corporation | Decoding circuit, decoding method, encoding circuit, and encoding method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101461771B1 (ko) | 랜덤 액세스 능력을 갖는 이미지 압축 방법 | |
US8604947B2 (en) | Variable length coding method and variable length decoding method | |
JP4782181B2 (ja) | エントロピー復号化回路、エントロピー復号化方法、およびパイプライン方式を利用したエントロピー復号化方法 | |
JP3021331B2 (ja) | 相対アドレスを用いた可変長復号化装置 | |
US20060165299A1 (en) | Semiconductor memory apparatus | |
JP4209631B2 (ja) | 符号化装置、復号化装置、及び、圧縮伸長システム | |
CN101783958B (zh) | Avs视频标准中时域直接模式运动矢量的计算方法和装置 | |
US7929777B2 (en) | Variable length decoding device, variable length decoding method and image capturing system | |
EP0808069B1 (en) | A Quantizer for video signal encoding system | |
JP4440776B2 (ja) | Mpegビデオビットストリームデコーダシステム及び方法 | |
US6249617B1 (en) | Video encounter having an integrated scaling mechanism | |
JP2004193751A (ja) | ジグザグアドレス生成装置 | |
JP2000165861A (ja) | 動画像復号装置 | |
JPH11252338A (ja) | データ処理装置 | |
JPH08116268A (ja) | 情報処理装置 | |
JP2003339046A (ja) | ジグザグアドレス生成装置 | |
JP2010276686A (ja) | 画像制御装置 | |
JP2005293495A (ja) | データ並び順変換装置 | |
JP3866539B2 (ja) | 符号化方法,復号方法,符号化装置,復号装置,符号化プログラム,復号プログラムおよびそれらのプログラム記録媒体 | |
JP3921487B2 (ja) | 復号化方法、復号化装置および記録媒体 | |
JP2912601B1 (ja) | ハフマン符号化装置 | |
JPH07222149A (ja) | 画像処理方法及び装置 | |
JP5801606B2 (ja) | H.264スケーラブルビデオ復号器におけるレイヤスイッチング | |
JP2007104155A (ja) | 画像復号装置 | |
JPH05130580A (ja) | 可変長符号復号装置 |