(57)【要約】【課題】２次元離散コサイン変換装置において、高速なデュアルポートＲＡＭの使用を不要とするとともに、それに伴う消費電力の増大を防止する。【解決手段】メモリ空間３を複数のデュアルポートＲＡＭ３ａ、３ｂを用いて構成する。前段の１次元離散コサイン変換回路２より１次元離散コサイン係数が供給される転置制御部４が、Ｎクロックサイクルに１回の頻度でＮ個の上記デュアルポートＲＡＭ３ａ、３ｂの書き込み動作を繰り返し個別に制御する書き込み制御部４１と、Ｎクロックサイクルに１回の頻度で読み出し動作を繰り返し個別に制御する読み出し制御部４２とを具備して、１次元離散コサイン係数の書き込み頻度および読み出し頻度をそれぞれ低くする。【選択図】図１
2006127536.tif 000002
【特許請求の範囲】
【請求項１】
ｍおよびｎを整数（ｍ＝ｎまたはｍ≠ｎ）としてｍ列×ｎ行の画素のブロック単位でｍ画素またはｎ画素ごとに水平方向の１次元離散コサイン変換を行う前段の離散コサイン変換回路と、この離散コサイン変換回路から供給されるｍ×ｎ個の１次元離散コサイン係数を一時的に格納するメモリ空間と、このメモリ空間の行位置と列位置とを転置して１次元離散コサイン係数の書き込みと読み出しとを制御する転置制御部と、上記メモリ空間から出力される離散コサイン係数を入力としてｍ係数またはｎ係数毎に垂直方向の１次元離散コサイン変換を行う後段の離散コサイン変換回路とを備える離散コサイン変換装置であって、上記メモリ空間をＮを整数としてＮ個の（ｍ×ｎ）／ＮワードのデュアルポートＲＡＭを用いて構成し、上記転置制御部を、Ｎクロックサイクルに１回の頻度でＮ個の上記デュアルポートＲＡＭの書き込み動作を繰り返し個別に制御する書き込み制御部と、Ｎクロックサイクルに１回の頻度で読み出し動作を繰り返し個別に制御する読み出し制御部とを具備する構成としたことを特徴とする離散コサイン変換装置。
【請求項２】
前段の離散コサイン変換回路は、水平方向のｍまたはｎ画素毎の１次元離散コサイン変換を行って、ＮクロックサイクルにＮ個の係数ずつ１次元離散コサイン係数群として順次パラレル出力するように構成され、
書き込み制御部は、上記前段の離散コサイン変換回路から順次供給される１次元離散コサイン係数群を、同一列の係数がｍ×Ｎ個またはｎ×Ｎ個の係数単位でそれぞれ異なるデュアルポートＲＡＭに順次書き分けられるように制御するとともに、それぞれのデュアルポートＲＡＭの書き込みに関しては、最初のｍ×ｎ個の１次元離散コサイン係数の場合は、任意のアドレスに順次書き込んだ離散コサイン係数が上書きされないようにアドレスを指定して、Ｎクロックサイクルに１回の頻度で同一のタイミングで書き込み制御し、次のｍ×ｎ個の１次元離散コサイン係数の場合は、最初のｍ×ｎ個の１次元離散コサイン係数が列方向に順次上書きされていくようにアドレスを個別に指定し、Ｎクロックサイクルに１回の頻度で１次元離散コサイン係数を同一のタイミングで書き込み制御し、以後、上記
２つの書き込み制御を繰り返し交互に行うように構成され、
読み出し制御部は、上記書き込み制御部によりＮ個のデュアルポートＲＡＭに書き分けられた１次元離散コサイン係数をｍ×ｎ画素のブロック単位の列方向順にＮ個ずつ同時に読み出し可能となるアドレスを、上記デュアルポートＲＡＭにそれぞれ繰り返し個別に供給し、Ｎクロックサイクルに１回の頻度で、同一のタイミングで読み出されたそれぞれの１次元離散コサイン係数について、ｍ×ｎ画素のブロック単位の列方向順に係数の入れ替えを行い、その入れ替えられたＮ個の係数で構成される１次元離散コサイン係数群を、Ｎクロックサイクルに１回の頻度で、同一のタイミングでラッチし、後段の離散コサイン変換回路へ繰り返し供給するように構成され、
後段の離散コサイン変換回路は、上記読み出し制御部からＮクロックサイクルに１回の頻度で出力されるＮ個の離散コサイン係数群を入力として、ｍ係数またはｎ係数毎の１次元離散コサイン変換を行うように構成されていることを特徴とする請求項１記載の離散コサイン変換装置。
【請求項３】
前段の離散コサイン変換回路は、水平方向ｍ画素またはｎ画素毎の１次元離散コサイン変換を行い、求まった１次元離散コサイン変換係数に関してその行位置により係数の出力順を決定し、１クロックサイクルに１回の頻度で１係数ずつ順次出力するように構成され、
書き込み制御部は、上記前段の離散コサイン変換回路から１係数ずつ順次供給される１次元離散コサイン係数を、同一列の係数がｍ×Ｎ個またはｎ×Ｎ個の係数単位でそれぞれ異なるデュアルポートＲＡＭに順次書き分けられるように制御し、それぞれのデュアルポートＲＡＭの書き込みに関しては、最初のｍ×ｎ個の１次元離散コサイン係数の場合は、任意のアドレスに順次書き込んだ離散コサイン係数が上書きされないようにアドレスを個別に指定して、Ｎクロックサイクルに１回の頻度でそれぞれ異なるタイミングで書き込み制御し、次のｍ×ｎ個の１次元離散コサイン係数の場合は、最初のｍ×ｎ個の１次元離散コサイン係数が列方向に順次上書きされていくようにアドレスを個別に指定して、Ｎクロックサイクルに１回の頻度で１次元離散コサイン係数を異なるタイミングで書き込み制御
するように構成され、
読み出し制御部は、上記書き込み制御部によりＮ個の上記デュアルポートＲＡＭに書き分けられた１次元離散コサイン係数を、ｍ×ｎ画素のブロック単位の列方向順に、読み出し可能となるアドレスを、Ｎ個の上記デュアルポートＲＡＭにそれぞれ個別に供給し、Ｎ個の上記デュアルポートＲＡＭから、１次元離散コサイン係数をＮクロックサイクルに１回の頻度でそれぞれ異なるタイミングで読み出し制御し、読み出された１次元離散コサイン係数については、Ｎクロックサイクルに１回の頻度で、それぞれ異なるタイミングでラッチして１次元離散コサイン係数を順次時分割出力し、１クロックサイクルに１回の頻度で上記後段の離散コサイン変換回路へ繰り返し供給するように構成され、
後段の離散コサイン変換回路は、上記読み出し制御部により１クロックサイクルに１回の頻度で出力される１次元離散コサイン係数を、その列位置により係数の行位置を認識して、ｍ係数毎またはｎ係数毎の１次元離散コサイン変換するように構成されていることを特徴とする請求項１記載の離散コサイン変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば８×８画素などの、ｍ×ｎ画素（ｍ、ｎは整数、ｍ＝ｎまたはｍ≠ｎ）のブロック単位で行われる２次元離散コサイン変換を、行方向、列方向の１次元離散コサイン変換に分解して実行することにより実現する離散コサイン変換装置に関する。
【背景技術】
【０００２】
以下において、「離散コサイン変換」を『ＤＣＴ』と略称することがある。図３１に示すように、８×８画素のブロック単位で２次元離散コサイン変換を行う従来の２次元離散コサイン変換装置１０１は、８×８画素で構成されるブロックの水平方向８画素分の画像データＰＸＬＤを入力とし、水平方向の１次元ＤＣＴ変換を行う前段の１次元ＤＣＴ変換回路１０２と、６４個の１次元ＤＣＴ係数を格納するための領域を有するメモリ空間１０３と、１次元ＤＣＴ係数の行位置、列位置の入れ替え（転置）を行う転置制御部１０４と、垂直方向の１次元ＤＣＴ変換を行う後段の１次元ＤＣＴ変換回路１０５とで構成されている。
【０００３】
メモリ空間１０３は、６４ワードの１個のデュアルポートＲＡＭ１０３ａで構成されている。
転置制御部１０４は、書き込み制御部１４１と読み出し制御部１４２とを備える。このうち、書き込み制御部１４１は、書き込みカウンタ１４１１と書き込みアドレス発生部１４１２とを備えて、デュアルポートＲＡＭ１０３ａの書き込み制御を行う。読み出し制御部１４２は、読み出しカウンタ１４２１と読み出しアドレス発生部１４２２とを備えて、読み出し制御を行う。
【０００４】
前段の１次元ＤＣＴ変換回路１０２は、システムクロックＳＣＬＫに同期して順次供給される画像データＰＸＬＤを入力とし、水平方向８画素分の画像データ毎に１次元ＤＣＴ変換を行い、１次元ＤＣＴ係数ＤＣＴＩ（Ｋ０〜Ｋ６３）を、最初の１次元ＤＣＴ係数Ｋ０から、１クロックサイクルに１係数ずつ、順次出力する。
【０００５】
デュアルポートＲＡＭ１０３ａは、６４ワードのデータ格納領域を有し、書き込みデータ入力端子ＷＤと、書き込みアドレス入力端子ＷＡと、書き込み許可入力端子ＷＥＮと、読み出しアドレス入力端子ＲＡと、読み出し許可入力端子ＲＥＮと、読み出しデータ出力端子ＲＤと、クロック入力端子ＣＬＫとを備える。このデュアルポートＲＡＭ１０３ａでは、書き込み許可入力ＷＥＮが論理値‘０’の時に限り、クロック入力端子ＣＬＫに入力されるシステムクロックＳＣＬＫの立ち上がりエッジに同期して、書き込みデータ入力端子ＷＤに入力された書き込みデータ入力ＤＣＴＩが、書き込みアドレス入力端子ＷＡに供給されたアドレスに書き込まれる。また、読み出し許可入力ＲＥＮが論理値‘０’の時に限り、デュアルポートＲＡＭ１０３ａの読み出しデータ出力ＲＤから、読み出しアドレス入力端子ＲＡに供給された読み出しアドレスに格納されているデータが読み出される。
【０００６】
書き込み制御部１４１の書き込みカウンタ１４１１は、７ビットのバイナリカウンタで構成され、外部より入力される書き込み開始信号ＷＳＴＡＲＴが論理値‘０’の時に限り、システムクロックＳＣＬＫに同期して、順次カウントアップされていく。外部より供給される書き込み開始信号ＷＳＴＡＲＴは、前段の１次元ＤＣＴ変換回路１０２より出力される最初の１次元ＤＣＴ係数Ｋ０が出力される同一のタイミングで論理値が‘０’となる信号であり、書き込み開始タイミングを示す信号である。
【０００７】
書き込みアドレス発生部１４１２は、書き込みカウンタ１４１１の７ビット出力ＷＣＮＴ６〜ＷＣＮＴ０を入力とし、出力ＷＣＮＴ６が論理値‘０’の時は、デュアルポートＲＡＭ１０３ａの書き込みアドレスＷＡＡとして、０、１、２、３、……、６２、６３の順、すなわち、出力ＷＣＮＴ５〜ＷＣＮＴ０をそのまま供給する。また、ＷＣＮＴ６が論理値‘１’の時は、書き込みアドレスＷＡＡとして、０、８、１６、２４、……、４７、５５、６３の順、すなわち８×８画素ブロックの列方向順のアドレスを供給する。
【０００８】
読み出し制御部１４２の読み出しカウンタ１４２１は、７ビットのバイナリカウンタで構成され、外部より入力される読み出し開始信号ＲＳＴＡＲＴが論理値‘０’の時に限り、システムクロックＳＣＬＫに同期して、順次カウントアップされていく。外部より供給される読み出し開始信号ＲＳＴＡＲＴは、前段の１次元ＤＣＴ変換回路１０２より出力される１次元ＤＣＴ係数が５０個以上６３個以下のときに、デュアルポートＲＡＭ１０３ａに書き込まれたタイミングで、論理値が‘０’となる信号であり、読み出し開始タイミングを示す信号である。
【０００９】
読み出しアドレス発生部１４２２は、読み出しカウンタ１４２１の７ビット出力ＲＣＮＴ６〜ＲＣＮＴ０を入力とし、出力ＲＣＮＴ６が論理値‘０’の時は、デュアルポートＲＡＭ１０３ａの書き込みアドレスＲＡＡとして、０、８、１６、２４、……、４７、５５、６３の順、すなわち８×８画素ブロックの列方向順のアドレスを供給する。また出力ＲＣＮＴ６が論理値‘１’の時は、書き込みアドレスＲＡＡとして、０、１、２、３、……、６２、６３の順、すなわち出力ＲＣＮＴ５〜ＲＣＮＴ０をそのまま供給する。
【００１０】
後段の１次元ＤＣＴ変換回路１０５は、読み出し制御部１４２により読み出し制御されたデュアルポートＲＡＭ１０３ａからの読み出しデータ出力ＲＤＡを、１クロックサイクルに１回の頻度で１係数ずつ入力し、８係数毎の垂直方向１次元ＤＣＴ変換を行い、２次元ＤＣＴ係数出力端子ＤＣＴＯＵＴから２次元ＤＣＴ係数ＫＫ０〜ＫＫ６３をシステムクロックＳＣＬＫに同期して順次出力する。
【００１１】
図３２は、最初の８×８画素ブロックにおける、１次元ＤＣＴ係数のデュアルポートＲＡＭ１０３ａへの書き込み順を示した図である。前段の１次元ＤＣＴ変換回路１０２より１係数ずつ出力される１次元ＤＣＴ係数Ｋ０〜Ｋ６３が、書き込みアドレス発生部１４１２により指定された書き込みアドレスＷＡのアドレス０、１、２、３、……、６２、６３の順に従って、書き込み開始ＳＴＡＲＴが論理値‘０’の時に、１クロックサイクルに１係数ずつ、順次デュアルポートＲＡＭ１０３ａに書き込まれる。
【００１２】
図３３は、最初の８×８画素ブロックにおける、１次元ＤＣＴ係数のデュアルポートＲＡＭ１０３ａからの読み出し順を示す図である。水平方向の１次元ＤＣＴ係数が５０個以上、６３個以下、デュアルポートＲＡＭ１０３ａに書き込まれた時点から、読み出しアドレス発生部１４２２により指定された読み出しアドレスＲＡのアドレス０、８、１６、２４、……、４７、５５、６３の順に従って、読み出し開始信号ＲＳＴＡＲＴが論理値‘０’の時に、１次元ＤＣＴ係数を、Ｋ０、Ｋ８、Ｋ１６、……、Ｋ４７、Ｋ５５、Ｋ６３の順に、デュアルポートＲＡＭ１０３ａから、１クロックサイクルに１係数ずつ順次読み出す。これにより、１次元ＤＣＴ係数の行位置、列位置が転置される。
【００１３】
図３４は、次の８×８画素のブロック単位における１次元ＤＣＴ係数（Ｋ’０〜Ｋ’６３）のデュアルポートＲＡＭ１０３ａへの書き込み順を示した図である。すなわち、まず最初の８×８画素ブロックの１次元ＤＣＴ係数が、読み出しアドレス発生部１４２２により指定された読み出しアドレスＲＡのアドレス０、８、１６、２４、……、４７、５５、６３の順に、１次元ＤＣＴ係数Ｋ０、Ｋ８、Ｋ１６、……、Ｋ４７、Ｋ５５、Ｋ６３として、デュアルポートＲＡＭ１０３ａから順次読み出され始める。そして、その後、書き込みアドレス発生部１４１２により指定された書き込みアドレスＷＡのアドレス０、８、１６、２４、……、４７、５５、６３の順に従って、書き込み開始信号ＷＡＳＴＲＴが論理値‘０’の時に、水平方向の１次元ＤＣＴ係数Ｋ’０〜Ｋ’６３が１クロックサイクルに１係数ずつ順次デュアルポートＲＡＭ１０３ａに上書きされる。
【００１４】
図３５は、次の８×８画素のブロック単位における、１次元ＤＣＴ係数Ｋ’０〜Ｋ’６３のデュアルポートＲＡＭ１０３ａからの読み出し順を示す図である。水平方向の１次元ＤＣＴ係数が５０個以上、６３個以下、デュアルポートＲＡＭ１０３ａに上書きされた時点から、読み出しアドレス発生部１４２２により指定された読み出しアドレスＲＡのアドレス０、１、２、３、……、６１、６２、６３の順に従って、読み出し開始信号ＲＳＴＡＲＴが論理値‘０’の時に、デュアルポートＲＡＭ１０３ａから、１次元ＤＣＴ係数Ｋ‘０、Ｋ’８、Ｋ‘１６、……、Ｋ’４７、Ｋ‘５５、Ｋ’６３の順に、１クロックサイクルに１係数ずつ順次読み出すことにより、１次元ＤＣＴ係数の行位置、列位置が転置される。
【００１５】
以上のように、書き込み制御部１４１に関しては、図３２と図３４の書き込み順を６４個の１次元ＤＣＴ係数毎に交互に切り替え制御し、また、読み出し制御部１４２に関しては、図３３と図３５の読み出し順を６４個の１次元ＤＣＴ係数毎に交互に切り替え制御することにより、１次元ＤＣＴ係数の行位置、列位置の入れ替えが常に行われる。
【００１６】
図３６は、デュアルポートＲＡＭ１０３ａの書き込み動作のタイミングを示す図である。デュアルポートＲＡＭ１０３ａへの書き込み動作は、書き込み開始信号ＷＳＴＡＲＴが論理値‘０’の時に、１クロックサイクルに１回の頻度で毎サイクル行われる。このため、行方向１次元ＤＣＴ変換回路１０２より順次供給される１次元ＤＣＴ係数の書き込みに関しては、使用するデュアルポートＲＡＭ１０３ａのタイミングスペックである、書き込みデータとクロック間のセットアップタイムＴｓｕ（ＲＡＭ）、ホールドタイムＴｈ（ＲＡＭ）を満足する必要がある。つまり、クロック周期をＴ、前段の１次元ＤＣＴ変換回路１０２より順次供給される１次元ＤＣＴ係数のシステムクロックＳＣＬＫからの遅延をＴｄとすると、（式−１）、（式−２）を満足する必要がある。
【００１７】
Ｔ  −  Ｔｄ  ＞  Ｔｓｕ（ＲＡＭ）            ……  （式−１）
Ｔｄ  ＞  Ｔｈ（ＲＡＭ）                      ……  （式−２）
図３７は、デュアルポートＲＡＭ１０３ａの読み出し動作のタイミングを示す図である。デュアルポートＲＡＭ１０３ａからの読み出し動作は、読み出し開始信号ＲＳＴＡＲＴが論理値‘０’の時に、１クロックサイクルに１回の頻度で毎サイクル行われる。このため、デュアルポートＲＡＭ１０３ａからの読み出しデータＲＤＡを後段の１次元ＤＣＴ変換回路１０５が正確に受け取るためには、デュアルポートＲＡＭ１０３ａのアクセスタイムをＴｐｄ、後段の１次元ＤＣＴ変換回路１０５の入力タイミングスペックであるセットアップタイムをＴｓｕ（ＦＦ）、ホールドタイムをＴｈ（ＦＦ）とすると、（式−３）、（式−４）の条件を満足する必要がある。
【００１８】
Ｔ  −  Ｔｐｄ  ＞  Ｔｓｕ（ＦＦ）            ……  （式−３）
Ｔｐｄ  ＞  Ｔｈ（ＦＦ）                      ……  （式−４）
これらの（式−１）〜（式−４）の条件すべてを満足すれば、１次元ＤＣＴ係数のデュアルポートＲＡＭ１０３ａへの書き込み、およびデュアルポートＲＡＭ１０３ａからの読み出しデータの後段の１次元ＤＣＴ変換回路１０５への伝搬動作が正確に行われる。１次元ＤＣＴ変換回路１０５は、この転置された１次元ＤＣＴ係数を入力とし、（式−３）、（式−４）の条件下で順次データを受け取り、垂直方向８係数分の１次元ＤＣＴ変換を行う。
【発明の開示】
【発明が解決しようとする課題】
【００１９】
上述のように、従来の２次元離散コサイン変換装置は、メモリ空間を６４ワードのデータ格納領域を有する１個のデュアルポートＲＡＭ１０３ａで構成し、書き込み、読み出し制御を１クロックサイクルに１回の頻度で繰り返し行っていたため、高速な２次元離散コサイン変換装置を実現するためには、高速なデュアルポートＲＡＭを使用しなければならないという問題があった。特に、メモリのアクセスタイムＴｐｄは、一般的に他のロジック回路による遅延値よりも大きく、離散コサイン変換装置全体の最大動作可能周波数を決定する要素のひとつとなっている。また、高速なデュアルポートＲＡＭを使用することにより、離散コサイン変換装置全体の最大動作可能周波数を上げることは実現可能ではあるが、デュアルポートＲＡＭを高速動作させることにより、その消費電力が増大するという
問題があった。
【００２０】
そこで本発明は、このような問題点を解決して、２次元離散コサイン変換装置において、高速なデュアルポートＲＡＭの使用を不要とするとともに、それに伴う消費電力の増大を防止することを目的とする。
【課題を解決するための手段】
【００２１】
上記課題を解決するために、この発明に係る２次元離散コサイン変換装置は、メモリ空間を複数のデュアルポートＲＡＭで構成し、前段の１次元ＤＣＴ変換回路より供給される１次元ＤＣＴ係数の書き込み頻度および後段の１次元ＤＣＴ変換回路へ供給する１次元ＤＣＴ係数の読み出し頻度をそれぞれ少なくすることにより、メモリにおける消費電力を減少させ、低消費電力化を実現することが可能となり、かつデュアルポートＲＡＭへの書き込みタイミングマージンを増加させ、かつ読み出しデータのアクセスタイムによる回路動作周波数の制限を緩和するものである。
【００２２】
詳しくは、Ｎ、ｍ、ｎを整数とし、またｍ＝ｎまたはｍ≠ｎとして、メモリ空間を、Ｎ個の（ｍ×ｎ）／Ｎワードのデータ格納領域を有するデュアルポートＲＡＭで構成し、転置制御部を、前段の１次元ＤＣＴ変換回路からＮクロックサイクルに１回の頻度でＮ係数ずつ出力される水平方向の１次元ＤＣＴ係数群を、ｍ×Ｎ個またはｎ×Ｎ個の係数単位で同一列の係数をそれぞれ異なるデュアルポートＲＡＭへ書き分け、それぞれのデュアルポートＲＡＭへの書き込みに関してはＮクロックサイクルに１回の頻度で書き込み制御する書き込み制御部と、その書き分けられた１次元ＤＣＴ係数を、ｍ×ｎ係数のブロック単位の列方向順に、それぞれのデュアルポートＲＡＭから、Ｎクロックサイクルに１回の頻度で、１係数ずつＮ係数分を繰り返し読み出し制御する読み出し制御部とで構成したもので
ある。
【００２３】
換言すると、この発明によると、ｍ×ｎ個の１次元ＤＣＴ係数を一時的に格納するメモリ空間を、複数のデュアルポートＲＡＭを用いて構成し、行方向の１次元離散コサイン変換により得られたすべての１次元ＤＣＴ係数の行位置と列位置の入れ替え（転置）をして、列方向の１次元ＤＣＴ変換回路へ供給するための転置制御部を、複数のデュアルポートＲＡＭへ、個別に書き込み制御を行う書き込み制御部と、個別に読み出し制御を行う読み出し制御部とで構成し、各デュアルポートＲＡＭの書き込み、読み出しアクセスの頻度（回数）を少なくすることにより、動作周波数の高速化および低消費電力化を図ることができる。
【発明の効果】
【００２４】
上述したように、この発明の離散コサイン変換装置は、１次元ＤＣＴ係数の転置のために複数のデュアルポートＲＡＭを用い、その書き込み、読み出しアクセスの頻度（回数）を少なくことにより、高速のデュアルポートＲＡＭを使用しなくても高速動作を行うことが可能となる。さらに、デュアルポートＲＡＭの書き込み、読み出し動作の回数（頻度）が少なくなることにより、デュアルポートＲＡＭの消費電力が減少し、低消費電力化の実現が可能となる。
【発明を実施するための最良の形態】
【００２５】
請求項１記載の発明は、ｍおよびｎを整数（ｍ＝ｎまたはｍ≠ｎ）としてｍ列×ｎ行の画素のブロック単位でｍ画素またはｎ画素ごとに水平方向の１次元ＤＣＴ変換を行う前段のＤＣＴ変換回路と、このＤＣＴ変換回路から供給されるｍ×ｎ個の１次元ＤＣＴ係数を一時的に格納するメモリ空間と、このメモリ空間の行位置と列位置とを転置して１次元ＤＣＴ係数の書き込みと読み出しとを制御する転置制御部と、上記メモリ空間から出力されるＤＣＴ係数を入力としてｍ係数またはｎ係数毎に垂直方向の１次元ＤＣＴ変換を行う後段のＤＣＴ変換回路とを備えるＤＣＴ変換装置において、上記メモリ空間をＮを整数としてＮ個の（ｍ×ｎ）／ＮワードのデュアルポートＲＡＭを用いて構成し、上記転置制御部を、Ｎクロックサイクルに１回の頻度でＮ個の上記デュアルポートＲＡＭの書き込み動作を繰り返し個別に制御する書き込み制御部と、Ｎクロックサイクルに１回の頻度で読み出し動作を繰り返し個別に制御する読み出し制御部とを具備する構成としたものである。
【００２６】
請求項２記載の発明は、前段のＤＣＴ変換回路が、水平方向のｍまたはｎ画素毎の１次元ＤＣＴ変換を行って、ＮクロックサイクルにＮ個の係数ずつ１次元ＤＣＴ係数群として順次パラレル出力するように構成され、
書き込み制御部は、上記前段のＤＣＴ変換回路から順次供給される１次元ＤＣＴ係数群を、同一列の係数がｍ×Ｎ個またはｎ×Ｎ個の係数単位でそれぞれ異なるデュアルポートＲＡＭに順次書き分けられるように制御するとともに、それぞれのデュアルポートＲＡＭの書き込みに関しては、最初のｍ×ｎ個の１次元ＤＣＴ係数の場合は、任意のアドレスに順次書き込んだＤＣＴ係数が上書きされないようにアドレスを指定して、Ｎクロックサイクルに１回の頻度で同一のタイミングで書き込み制御し、次のｍ×ｎ個の１次元ＤＣＴ係数の場合は、最初のｍ×ｎ個の１次元ＤＣＴ係数が列方向に順次上書きされていくようにアドレスを個別に指定し、Ｎクロックサイクルに１回の頻度で１次元ＤＣＴ係数を同一のタイミングで書き込み制御し、以後、上記２つの書き込み制御を繰り返し交互に行うように構成され、
読み出し制御部は、書き込み制御部によりＮ個のデュアルポートＲＡＭに書き分けられた１次元ＤＣＴ係数をｍ×ｎ画素のブロック単位の列方向順にＮ個ずつ同時に読み出し可能となるアドレスを、上記デュアルポートＲＡＭにそれぞれ繰り返し個別に供給し、Ｎクロックサイクルに１回の頻度で、同一のタイミングで読み出されたそれぞれの１次元ＤＣＴ係数について、ｍ×ｎ画素のブロック単位の列方向順に係数の入れ替えを行い、その入れ替えられたＮ個の係数で構成される１次元ＤＣＴ係数群を、Ｎクロックサイクルに１回の頻度で、同一のタイミングでラッチし、後段のＤＣＴ変換回路へ繰り返し供給するように構成され、
後段のＤＣＴ変換回路は、上記読み出し制御部からＮクロックサイクルに１回の頻度で出力されるＮ個のＤＣＴ係数群を入力として、ｍ係数またはｎ係数毎の１次元ＤＣＴ変換を行うように構成されているようにしたものである。
【００２７】
請求項３記載の発明は、前段のＤＣＴ変換回路が、水平方向ｍ画素またはｎ画素毎の１次元ＤＣＴ変換を行い、求まった１次元ＤＣＴ変換係数に関してその行位置により係数の出力順を決定し、１クロックサイクルに１回の頻度で１係数ずつ順次出力するように構成され、
書き込み制御部は、上記前段のＤＣＴ変換回路から１係数ずつ順次供給される１次元ＤＣＴ係数を、同一列の係数がｍ×Ｎ個またはｎ×Ｎ個の係数単位でそれぞれ異なるデュアルポートＲＡＭに順次書き分けられるように制御し、それぞれのデュアルポートＲＡＭの書き込みに関しては、最初のｍ×ｎ個の１次元ＤＣＴ係数の場合は、任意のアドレスに順次書き込んだＤＣＴ係数が上書きされないようにアドレスを個別に指定して、Ｎクロックサイクルに１回の頻度でそれぞれ異なるタイミングで書き込み制御し、次のｍ×ｎ個の１次元ＤＣＴ係数の場合は、最初のｍ×ｎ個の１次元ＤＣＴ係数が列方向に順次上書きされていくようにアドレスを個別に指定して、Ｎクロックサイクルに１回の頻度で１次元ＤＣＴ係数を異なるタイミングで書き込み制御するように構成され、
読み出し制御部は、上記書き込み制御部によりＮ個の上記デュアルポートＲＡＭに書き分けられた１次元ＤＣＴ係数を、ｍ×ｎ画素のブロック単位の列方向順に、読み出し可能となるアドレスを、Ｎ個の上記デュアルポートＲＡＭにそれぞれ個別に供給し、Ｎ個の上記デュアルポートＲＡＭから、１次元ＤＣＴ係数をＮクロックサイクルに１回の頻度でそれぞれ異なるタイミングで読み出し制御し、読み出された１次元ＤＣＴ係数については、Ｎクロックサイクルに１回の頻度で、それぞれ異なるタイミングでラッチして１次元ＤＣＴ係数を順次時分割出力し、１クロックサイクルに１回の頻度で上記後段のＤＣＴ変換回路へ繰り返し供給するように構成され、
後段のＤＣＴ変換回路は、上記読み出し制御部により１クロックサイクルに１回の頻度で出力される１次元ＤＣＴ係数を、その列位置により係数の行位置を認識して、ｍ係数毎またはｎ係数毎の１次元ＤＣＴ変換するように構成されているようにしたものである。
（第１の実施の形態）
以下、添付図面に基づいて、この発明の第１の実施の形態について述べる。図１は、この発明の実施の形態の２次元離散コサイン変換装置のブロック図である。２次元離散コサイン変換装置１は、前段の１次元ＤＣＴ変換回路２と、メモリ空間３と、転置制御部４と、後段の１次元ＤＣＴ変換回路５とによって構成される。
【００２８】
メモリ空間３は、２個のデュアルポートＲＡＭ３ａ、３ｂにて構成される。
転置制御部４は、書き込み制御部４１と読み出し制御部４２とを具備する。書き込み制御部４１は、書き込みカウンタ４１１と、書き込みアドレス発生部４１２と、書き込みデータ選択回路４１３と、書き込み許可生成部４１４とを備えて、２個のデュアルポートＲＡＭ３ａ、３ｂに対し個別に書き込み制御を行う。読み出し制御部４２は、読み出しカウンタ４２１と、読み出しアドレス発生部４２２と、読み出しデータ選択回路４２３と、読み出し許可生成部４２４とを備えて、２個のデュアルポートＲＡＭ３ａ、３ｂに対し個別に読み出し制御を行う。
【００２９】
前段の１次元ＤＣＴ変換回路２は、８×８画素ブロックに分割された画像の水平方向８画素分の画素データＰＸＬＤが、１画素ずつシステムクロックＳＣＬＫに同期して入力される。そして、この画素データＰＸＬＤに対し水平方向の１次元ＤＣＴ変換が行われ、書き込みカウンタ４１１より供給されるＷＤＬＡＴが論理値‘０’の時、システムクロックＳＣＬＫに同期して、１次元ＤＣＴ係数（Ｋ０〜Ｋ６３）のうち、奇数列の係数を上位係数ＤＣＴＩ１、偶数列の係数を下位係数ＤＣＴＩ０として２係数ずつ順次パラレル出力される。書き込みカウンタ４１１より１次元ＤＣＴ変換回路２に供給される信号ＷＤＬＡＴは、後述するが、システムクロックＳＣＬＫが２分周された信号であり、詳しくは、この信号ＷＤＬＡＴにより、ＤＣＴＩ１、ＤＣＴＩ０は、２クロックサイクルに１回の頻度で
、順次出力されるように制御される。
【００３０】
メモリ空間３のデュアルポートＲＡＭ３ａ、３ｂは、３２ワードのデータ格納領域を有し、それぞれ、書き込みデータ入力端子ＷＤと、書き込みアドレス入力端子ＷＡと、書き込み許可入力端子ＷＥＮと、読み出しアドレス入力端子ＲＡと、読み出し許可入力端子ＲＥＮと、読み出しデータ出力端子ＲＤと、クロック入力端子ＣＬＫとを備える。デュアルポートＲＡＭ３ａ、３ｂは、それぞれ、書き込み許可入力ＷＥＮが論理値‘０’の時に限り、クロック入力端子ＣＬＫの立ち上がりエッジに同期して、書き込みデータ入力端子ＷＤに入力された書き込みデータ入力が、書き込みアドレス入力端子ＷＡに供給されたアドレスに書き込まれる。また、デュアルポートＲＡＭ３ａ、３ｂは、それぞれ、読み出し許可入力ＲＥＮが論理値‘０’の時に限り、クロック入力端子ＣＬＫの立ち上がりエッジに同期して、読み出しアドレス入力端子ＲＡに供給された読み出しアドレスに格納されているデータが、読み出しデータ出力ＲＤから読み出される。
【００３１】
書き込み制御部４１の書き込みカウンタ４１１は、７ビットのバイナリカウンタで構成され、リセット信号ＲＳＴが入力されると、７ビットのカウント出力ＷＣＮＴ６〜ＷＣＮＴ０がすべて初期値０に設定され、書き込み開始信号ＷＳＴＡＲＴが論理値‘０’の時にシステムクロックＳＣＬＫに同期してカウントアップされていく。外部より供給される書き込み開始信号ＷＳＴＡＲＴは、前段の１次元ＤＣＴ変換回路２より出力される最初の２つの１次元ＤＣＴ係数群Ｋ０、Ｋ１が出力されるのと同一のタイミングで論理値が‘０’となる信号であり、書き込み開始タイミングを示す信号である。また書き込みカウンタ４１１は、前段の１次元ＤＣＴ変換回路２に対しては、最下位ビットＷＣＮＴ０の反転信号をＷＤＬＡＴとして供給し、２クロックサイクルに１回の頻度で１次元ＤＣＴ係数ＤＣＴ
Ｉ１、ＤＣＴＩ０が供給されるように制御する。
【００３２】
書き込みアドレス発生部４１２は、書き込みカウンタ４１１のカウント出力ＷＣＮＴ６〜ＷＣＮＴ１を入力として、デュアルポートＲＡＭ３ａ、３ｂの書き込みアドレスＷＡＡ、ＷＡＢを発生する。図２は、ＷＣＮＴ６〜ＷＣＮＴ１と、ＷＡＡ、ＷＡＢとの関係を示した図である。最上位ビットＷＣＮＴ６が論理値‘０’の時は、アドレスＷＡＡ、ＷＡＢともに、０、１、２、３、１６、１７、１８、１９、……、１２、１３、１４、１５、２８、２９、３０、３１と変換したアドレスを供給する。最上位ビットＷＣＮＴ６が論理値‘１’の時は、ＷＡＡとして、０、４、８、１２、１６、２０、２４、２８、……、１９、２３、２７、３１と変換したアドレスを供給し、ＷＡＢとして、１６、２０、２４、２８、０、４、８、１２、……、３、７、１１、１５と変換したアドレスを供給する。
【００３３】
なお、最上位ビットＷＣＮＴ６が論理値‘０’の時のＷＡＡ、ＷＡＢに関しては、上記のようなアドレス順ではなくても、順次書き込まれる１次元ＤＣＴ係数が上書きされないような任意のアドレスでも構わない。ただし、そのような任意のアドレスを供給した場合は、最上位ビットＷＣＮＴ６が論理値‘１’の時のＷＡＡ、ＷＡＢは、最上位ビットＷＣＮＴ６が論理値‘０’の時に、デュアルポートＲＡＭ３ａ、３ｂに、既に書き込んだ８×８＝６４個の係数を列方向順すなわちＫ０、Ｋ８、Ｋ１６、Ｋ２４、……、Ｋ４７、Ｋ５５、Ｋ６３の順に上書きしていくことが可能となる書き込みアドレスとする必要がある。
【００３４】
書き込みデータ選択回路４１３は、書き込みカウンタ４１１のカウント出力ＷＣＮＴ３をデータ選択信号ＷＤＳＥＬとして入力し、奇数行の係数と偶数行の係数とで、デュアルポートＲＡＭ３ａ、３ｂに書き込むデータを選択する。データ選択信号ＷＤＳＥＬが論理値‘０’の場合、すなわち奇数行の係数の場合は、前段の１次元ＤＣＴ変換回路２から、２クロックサイクルに１回の頻度で順次供給される上位係数ＤＣＴＩ１をデュアルポートＲＡＭ３ａの書き込みデータＷＤＡとして選択出力し、下位係数ＤＣＴＩ０をデュアルポートＲＡＭ３ｂの書き込みデータＷＤＢとして選択出力する。また、データ選択信号ＷＤＳＥＬが論理値‘１’の場合、すなわち偶数行の係数の場合は、その逆で下位係数ＤＣＴＩ０を書き込みデータＷＤＡとして選択出力し、上位係数ＤＣＴＩ１を書き込みデータＷＤＢとして選択出力する。
【００３５】
書き込み許可生成部４１４は、外部より供給される書き込み開始信号ＷＳＴＡＲＴと、書き込みカウンタ４１１の最下位ビットＷＣＮＴ０の反転信号との論理和（ＯＲ）を、デュアルポートＲＡＭ３ａ、３ｂの書き込み許可信号ＷＥＮＢとして供給し、書き込み動作を２クロックサイクルに１回の頻度に低減させる。
【００３６】
読み出し制御部４２の読み出しカウンタ４２１は、７ビットのバイナリカウンタで構成され、リセット信号ＲＳＴが入力されると、７ビットのカウント出力ＲＣＮＴ６〜ＲＣＮＴ０がすべて初期値０に設定され、読み出し開始ＲＳＴＡＲＴが論理値‘０’の時にシステムクロックＳＣＬＫに同期してカウントアップされていく。なお、読み出し開始信号ＲＳＴＡＲＴの論理値が‘０’になるタイミングは、書き込み開始信号ＷＳＴＡＲＴが論理値‘０’になった後、デュアルポートＲＡＭ３ａ、３ｂに１次元ＤＣＴ係数が順次書き込まれ、５０番目〜６２番目の係数が書き込まれた時点である。また読み出しカウンタ４２１は、後段の１次元ＤＣＴ変換回路５に対して、最下位ビットＲＣＮＴ０の反転信号をＲＤＬＡＴとして供給する。読み出しデータ選択回路４２３に対しては、ＲＣＮＴ３を２クロックサイクル遅延させた信号をＲＤＳＥＬとして供給し、デュアルポートＲＡＭ３ａ、３ｂからの読み出しデータの出力タイミングに合わせてデータの入れ替えが可能となるよう制御する。
【００３７】
読み出しアドレス発生部４２２は、読み出しカウンタ４２１のカウント出力ＲＣＮＴ６〜ＲＣＮＴ１を入力として、デュアルポートＲＡＭ３ａ、３ｂの読み出しアドレスＲＡＡ、ＲＡＢを発生する。図３は、カウント出力ＲＣＮＴ６〜ＲＣＮＴ１とアドレスＲＡＡ、ＲＡＢとの関係を示した図である。最上位ビットＲＣＮＴ６が論理値‘０’の時は、ＲＡＡとして、０、４、８、１２、１６、２０、２４、２８、……、３、７、１１、１５、１９、２３、２７、３１と変換したアドレスを供給し、ＲＡＢとして、１６、２０、２４、２８、０、４、８、１２、……、１９、２３、２７、３１、３、７、１１、１５と変換したアドレスを供給する。また、最上位ビットＲＣＮＴ６が論理値‘１’の時は、ＲＡＡとして、０、１、２、３、１６、１７、１８、１９、……、１２、１３、１４、１５、２８、２９、３０、３１と変換したアドレスを供給し、ＲＡＢとして、０、１、２、３、１６、１７、１８、１９、……、１２、１３、１４、１５、２８、２９、３０、３１と変換したアドレスを供給する。すなわち、読み出しアドレス発生部４２２は、書き込み制御部４１によりデュアルポートＲＡＭ３ａ、３ｂに書き込まれた１次元ＤＣＴ係数を、８×８係数ブロックの列方向順に、デュアルポートＲＡＭ３ａ、３ｂから、それぞれ１係数ずつ、同一のタイミングで読み出し可能となるアドレスを、読み出しアドレスＲＡＡ、ＲＡＢに供給すればよい。詳しくは、ＲＣＮＴ６が論理値‘１’の時の読み出しアドレスＲＡＡ、ＲＡＢは、書き込みアドレス発生部４１２より供給されるＷＣＮＴ６が論理値‘０’の時の書き込みアドレスＷＡＡ、ＷＡＢと等しく、また、ＲＣＮＴ６が論理値‘０’の時の読み出しアドレスＲＡＡ、ＲＡＢは、ＷＣＮＴ６が論理値‘１’の時の書き込みアドレスＷＡＡ、ＷＡＢと等しくなるアドレスを個別に供給すればよい。
【００３８】
読み出しデータ選択回路４２３は、読み出しカウンタ４２１より供給される信号ＲＤＳＥＬを入力としてデュアルポートＲＡＭ３ａ、３ｂからそれぞれ読み出された１次元ＤＣＴ係数を選択的に出力する。詳細には、ＲＤＳＥＬが論理値‘０’の時、すなわち、８×８係数ブロックの奇数列の１次元ＤＣＴ係数を読み出す時は、デュアルポートＲＡＭ３ａからの読み出しデータＲＤＡを上位係数ＤＣＴＯ１として出力し、デュアルポートＲＡＭ３ｂからの読み出しデータＲＤＢを下位係数ＤＣＴＯ０として出力する。また、ＲＤＳＥＬが論理値‘１’の時、すなわち、８×８係数ブロックの偶数列を読み出す時は、ＲＤＡを下位係数ＤＣＴＯ０として出力し、ＲＤＢを上位係数ＤＣＴＯ１として出力する。この読み出しデータ選択回路４２３により、常に、上位係数ＤＣＴＯ１出力には８×８係数ブロック単位の係数のうち奇数行の係数が出力され、下位係数ＤＣＴＯ０出力には、偶数行の係数が繰り返し出力される。
【００３９】
読み出し許可生成部４２４は、外部より供給される読み出し開始信号ＲＳＴＡＲＴと、読み出しカウンタ４２１の最下位ビットＲＣＮＴ０の反転信号との論理和（ＯＲ）を、デュアルポートＲＡＭ３ａ、３ｂの読み出し許可ＲＥＮＢとして供給し、読み出し動作を２クロックサイクルに１回の頻度に低減させる。
【００４０】
後段の１次元ＤＣＴ変換回路５は、読み出しカウンタ４２１より供給される信号ＲＤＬＡＴを入力し、２クロックサイクルに１回の頻度で、１次元ＤＣＴ係数ＤＣＴＯ１、ＤＣＴＯ０を同一のタイミングで受け取り、２クロックサイクルに１回の頻度でシフトし、８係数ごとの垂直方向の１次元ＤＣＴ変換を行い、２次元ＤＣＴ係数ＫＫ０〜ＫＫ６３をシステムクロックＳＣＬＫに同期してＤＣＴＯＵＴとして順次出力する。
【００４１】
図４および図５は、書き込み制御部４１に従って１次元ＤＣＴ係数がデュアルポートＲＡＭ３ａ、３ｂに書き込まれる際のデータ格納位置を示す図である。
図４は、最初の８×８画素ブロックの１次元ＤＣＴ係数Ｋ０〜Ｋ６３がデュアルポートＲＡＭ３ａ、３ｂに書き込まれる際のデータ格納位置を示す図である。２クロックサイクルに１回の頻度で、前段の１次元ＤＣＴ変換回路２から、上位係数ＤＣＴＩ１として奇数列の係数Ｋ０、Ｋ２、Ｋ４、…、Ｋ６０、Ｋ６２が、下位係数ＤＣＴＩ０として偶数列の係数Ｋ１、Ｋ３、Ｋ５、…、Ｋ６１、Ｋ６３が、それぞれ同一のタイミングで順次出力され、奇数行の１次元ＤＣＴ係数Ｋ０〜Ｋ７、Ｋ１６〜Ｋ２３、Ｋ３２〜Ｋ３９、Ｋ４８〜Ｋ５５に関しては、上位係数ＤＣＴＩ１がデュアルポートＲＡＭ３ａのアドレス番号０、１、２、３、……、１３、１４、１５に書き込まれ、下位係数ＤＣＴＩ０がデュアルポートＲＡＭ３ｂのアドレス番号０、１、２、３、……、１３、１４、１５に書き込まれる。偶数行の１次元ＤＣＴ係数Ｋ８〜Ｋ１５、Ｋ２４〜Ｋ３１、Ｋ４０〜Ｋ４７、Ｋ５６〜Ｋ６３に関しては、下位係数ＤＣＴ１ＤＩ０が、デュアルポートＲＡＭ３ａのアドレス番号１６、１７、１８、…、２９、３０、３１に書き込まれ、上位係数ＤＣＴＩ１が、デュアルポートＲＡＭ３ｂのアドレス番号１６、１７、１８、…、２９、３０、３１に書き込まれる。
【００４２】
図５は、次の８×８画素ブロックの１次元ＤＣＴ係数Ｋ’０〜Ｋ’６３がデュアルポートＲＡＭ３ａ、３ｂに書き込まれる際のデータ格納位置を示す図である。最初の８×８画素ブロックの１次元ＤＣＴ係数Ｋ０〜Ｋ６３が、垂直方向Ｋ０、Ｋ８、Ｋ１６、Ｋ２４、…、Ｋ４７、Ｋ５５、Ｋ６３に、デュアルポートＲＡＭ３ａ、３ｂから、それぞれ１係数ずつ、２クロックサイクルに１回の頻度で、読み出され始める。すると、その後、次の８×８画素ブロックの１次元ＤＣＴ係数Ｋ’０〜Ｋ’６３のうち、奇数行の１次元ＤＣＴ係数Ｋ’０〜Ｋ’７、Ｋ’１６〜Ｋ’２３、Ｋ’３２〜Ｋ’３９、Ｋ’４８〜Ｋ’５５に関しては、上位係数ＤＣＴＩ１がデュアルポートＲＡＭ３ａのアドレス番号０、４、８、１２、１、５、９、１３、…、３、７、１１、１５に書き込まれ、下位係数ＤＣＴＩ０がデュアルポートＲＡＭ３ｂのアドレス番号１６、２０、２４、２８、１７、２１、２５、２９、…、１９、２３、２７、３１に書き込まれる。偶数行の１次元ＤＣＴ係数Ｋ’８〜Ｋ’１５、Ｋ’２４〜Ｋ’３１、Ｋ’４０〜Ｋ’４７、Ｋ’５６〜Ｋ’６３に関しては、下位係数ＤＣＴ１ＤＩ０がデュアルポートＲＡＭ３ａのアドレス番号１６、２０、２４、２８、１７、２１、２５、２９、…、１９、２３、２７、３１に書き込まれ、上位係数ＤＣＴＩ１がデュアルポートＲＡＭ３ｂのアドレス番号０、４、８、１２、１、５、９、１３、…、３、７、１１、１５に書き込まれる。１次元ＤＣＴ係数は、６４係数ごとに図４と図５のデータ格納位置に交互に書き込まれるように、書き込み制御部４１によって繰り返し制御される。
【００４３】
図６および図７は、読み出し制御部４２に従って１次元ＤＣＴ係数をデュアルポートＲＡＭ３ａ、３ｂから読み出す際のアドレス順序および読み出される１次元ＤＣＴ係数を示す図である。
【００４４】
図６は、最初の８×８画素ブロックの１次元ＤＣＴ係数Ｋ０〜Ｋ６３が図４のようにデュアルポートＲＡＭ３ａ、３ｂに書き込まれた際の、読み出しアドレスの順序および読み出される１次元ＤＣＴ係数を示す図である。読み出し制御部４２より、デュアルポートＲＡＭ３ａの読み出しアドレスＲＡＡとして、アドレス番号０、４、８、１２、１６、２０、２４、２８、…、３、７、１１、１５、１９、２３、２７、３１が順次供給され、１次元ＤＣＴ係数Ｋ０、Ｋ１６、Ｋ３２、Ｋ４８、Ｋ９、Ｋ２５、Ｋ４１、Ｋ５７、…、Ｋ６、Ｋ２２、Ｋ３８、Ｋ５４、Ｋ１５、Ｋ３１、Ｋ４７、Ｋ６３が順次読み出される。また、デュアルポートＲＡＭ３ｂの読み出しアドレスＲＡＢとして、アドレス番号１６、２０、２４、２８、０、４、８、１２、…、１９、２３、２７、３１、３、７、１１、１５が順次供給され、１次元ＤＣＴ係数Ｋ８、Ｋ２４、Ｋ４０、Ｋ５６、Ｋ１、Ｋ１７、Ｋ３３、Ｋ４９、…、Ｋ１４、Ｋ３０、Ｋ４６、Ｋ６２、Ｋ７、Ｋ２３、Ｋ３９、Ｋ５５が順次読み出される。デュアルポートＲＡＭ３ａ、３ｂから２クロックサイクルに１回の頻度で同時に読み出されたこれらの１次元ＤＣＴ係数の上位係数、下位係数の入れ替えが、読み出しデータ選択回路４２３により行われ、上位係数ＤＣＴＯ１として、Ｋ０、Ｋ１６、Ｋ３２、Ｋ４８、Ｋ１、Ｋ１７、Ｋ３３、Ｋ４９、…、Ｋ６、Ｋ２２、Ｋ３８、Ｋ５４、Ｋ７、Ｋ２３、Ｋ３９、Ｋ５５が順次出力され、下位係数ＤＣＴＯ０として、Ｋ８、Ｋ２４、Ｋ４０、Ｋ５６、Ｋ９、Ｋ２５、Ｋ４１、Ｋ５７、…、Ｋ１４、Ｋ３０、Ｋ４６、Ｋ６２、Ｋ１５、Ｋ３１、Ｋ４７、Ｋ６３が順次出力される。
【００４５】
図７は、次の８×８画素ブロックの１次元ＤＣＴ係数Ｋ’０〜Ｋ’６３が図５のようにデュアルポートＲＡＭ３ａ、３ｂに書き込まれた際の、読み出しアドレスの順序および読み出される１次元ＤＣＴ係数を示す図である。読み出し制御部４２より、デュアルポートＲＡＭ３ａの読み出しアドレスＲＡＡとして、アドレス番号０、１、２、３、１６、１７、１８、１９、…、１２、１３、１４、１５、２８、２９、３０、３１が順次供給され、１次元ＤＣＴ係数Ｋ０、Ｋ１６、Ｋ３２、Ｋ４８、Ｋ９、Ｋ２５、Ｋ４１、Ｋ５７、…、Ｋ６、Ｋ２２、Ｋ３８、Ｋ５４、Ｋ１５、Ｋ３１、Ｋ４７、Ｋ６３が順次読み出される。また、デュアルポートＲＡＭ３ｂの読み出しアドレスＲＡＢとして、アドレス番号０、１、２、３、１６、１７、１８、１９、…、１２、１３、１４、１５、２８、２９、３０、３１が順次供給され、１次元ＤＣＴ係数Ｋ８、Ｋ２４、Ｋ４０、Ｋ５６、Ｋ１、Ｋ１７、Ｋ３３、Ｋ４９、…、Ｋ１４、Ｋ３０、Ｋ４６、Ｋ６２、Ｋ７、Ｋ２３、Ｋ３９、Ｋ５５が順次読み出される。デュアルポートＲＡＭ３ａ、３ｂから２クロックサイクルに１回の頻度で同時に読み出されたこれらの１次元ＤＣＴ係数の上位係数、下位係数の入れ替えが、読み出しデータ選択回路４２３により行われ、上位係数ＤＣＴＯ１として、Ｋ０、Ｋ１６、Ｋ３２、Ｋ４８、Ｋ１、Ｋ１７、Ｋ３３、Ｋ４９、…、Ｋ６、Ｋ２２、Ｋ３８、Ｋ５４、Ｋ７、Ｋ２３、Ｋ３９、Ｋ５５が順次出力され、下位係数ＤＣＴＯ０として、Ｋ８、Ｋ２４、Ｋ４０、Ｋ５６、Ｋ９、Ｋ２５、Ｋ４１、Ｋ５７、…、Ｋ１４、Ｋ３０、Ｋ４６、Ｋ６２、Ｋ１５、Ｋ３１、Ｋ４７、Ｋ６３が順次出力される。読み出し制御部４２により、１次元ＤＣＴ係数の読み出しを６４係数ごとに図６と図７の読み出しアドレスを交互に切り替えて行うことにより、１次元ＤＣＴ係数の行位置、列位置の転置が繰り返し行われ、２クロックサイクルに１回の頻度で、２係数ずつ、後段の１次元ＤＣＴ変換回路５に順次供給される。
【００４６】
図８は、書き込み制御部４１により制御されるデュアルポートＲＡＭ３ａ、３ｂの書き込みタイミングを示す図である。前段の１次元ＤＣＴ変換回路２より、２クロックサイクルに１回の頻度で、上位係数ＤＣＴＩ１と下位係数ＤＣＴＩ０とがそれぞれ同一タイミングで書き込み制御部４１に順次入力され、書き込みアドレス発生部４１２により、２クロックサイクルに１回の頻度で、書き込み許可生成部４１４より供給される書き込み許可ＷＥＮＢが論理値‘０’の時に、クロックに同期して、指定されたアドレスすなわちデュアルポートＲＡＭ３ａ、３ｂの書き込みアドレスＷＡＡ、ＷＡＢに順次書き込まれる。
【００４７】
すなわち、システムクロックＳＣＬＫのクロック周期をＴ、前段の１次元ＤＣＴ変換回路２より出力される上位係数ＤＣＴＩ１、下位係数ＤＣＴＩ０のシステムクロックＳＣＬＫからの遅延時間をＴｄ、デュアルポートＲＡＭのタイミングスペックであるシステムクロックＳＣＬＫに対する書き込みデータのセットアップタイム、ホールドタイムをそれぞれ、Ｔｓｕ（ＲＡＭ）、Ｔｈ（ＲＡＭ）とすると、書き込み動作が正確に行われるためには、（式−５）、（式−６）の条件を満足していればよい。
【００４８】
２Ｔ  −  Ｔｄ  ＞  Ｔｓｕ（ＲＡＭ）    ……  （式−５）
Ｔｄ  ＞  Ｔｈ（ＲＡＭ）                ……  （式−６）
（式−５）、（式−６）から明らかなように、従来の条件を規定した（式−１）、（式−２）に比べれば、書き込み動作のメモリセットアップタイムに対するタイミングマージンは、システムクロックのクロック１周期分Ｔだけ増加する。
【００４９】
図９は、読み出し制御部４２により制御されるデュアルポートＲＡＭ３ａ、３ｂからの読み出しタイミングを示す図である。読み出しアドレス発生部４２２により、２クロックサイクルに１回の頻度で、指定されたアドレスすなわちデュアルポートＲＡＭ３ａ、３ｂの読み出しアドレスＲＡＡ、ＲＡＢに格納されたデータ（１次元ＤＣＴ係数）が、読み出し許可生成部４２４より供給される読み出し許可ＲＥＮＢが論理値‘０’の時に、クロックに同期して順次読み出され、読み出しデータ選択回路４２３により、上位係数ＤＣＴＯ１、下位係数ＤＣＴＯ０として出力される。この出力データを後段の１次元ＤＣＴ変換回路５が正確に受け取るためには、デュアルポートＲＡＭ３ａ、３ｂのアクセスタイムをＴｐｄとし、読み出しデータ選択回路４２３による遅延時間をＴｄｍとし、後段の１次元ＤＣＴ変換回路５の入力タイミングスペックであるセットアップタイム、ホールドタイムをＴｓｕ（ＦＦ）、Ｔｈ（ＦＦ）とすると、（式−７）、（式−８）の条件を満足していればよい。
【００５０】
２Ｔ  −  （Ｔｐｄ＋  Ｔｄｍ）＞  Ｔｓｕ（ＦＦ）  ……  （式−７）
Ｔｐｄ  ＋  Ｔｄｍ  ＞  Ｔｈ（ＦＦ）              ……  （式−８）
すなわち、従来の条件（式−３）、（式−４）に比べれば、デュアルポートＲＡＭ３ａ、３ｂに要求されるアクセスタイムＴｐｄは（Ｔ−Ｔｄｍ）だけ増加する。なお、読み出しデータ選択回路４２３による遅延時間Ｔｄｍは、デュアルポートＲＡＭ３ａ、３ｂからの２つの読み出しデータから１つのデータを選択するためのデータセレクタのみの遅延時間であり、デュアルポートＲＡＭ３ａ、３ｂのアクセスタイムＴｐｄに比べれば非常に小さく、トータルとしては、メモリアクセスタイムの増加による回路動作可能周波数への影響を抑えることが可能となる。
【００５１】
以上が、メモリ空間３において３２ワードのデュアルポートＲＡＭ２個を用いて２次元離散コサイン変換装置を構成した場合の具体的説明であるが、メモリ空間３は１６ワードのデュアルポートＲＡＭを４個用いて構成してもよく、また、８ワードのデュアルポートＲＡＭを８個用いて構成してもよい。
【００５２】
図１０は、メモリ空間を、１６ワードのデュアルポートＲＡＭ４個を用いて構成した例のブロック図である。図１と大きく異なる点は、メモリ空間３を、４個のデュアルポートＲＡＭ３ａ、３ｂ、３ｃ、３ｄで構成している点である。
【００５３】
前段の１次元ＤＣＴ変換回路２は、書き込みカウンタ４１１より供給される信号ＷＤＬＡＴが論理値‘０’の時、システムクロックＳＣＬＫに同期して、１次元ＤＣＴ係数（Ｋ０〜Ｋ６３）を、列順に早い方のＤＣＴ係数からＤＣＴＩ３、ＤＣＴＩ２、ＤＣＴＩ１、ＤＣＴＩ０として４係数ずつ順次パラレル出力する。書き込みカウンタ４１１より供給される信号ＷＤＬＡＴは、後述するが、システムクロックＳＣＬＫの４サイクル中に１サイクルのみ論理値‘０’になる信号であり、詳しくは、ＤＣＴＩ３〜ＤＣＴＩ０は、信号ＷＤＬＡＴにより４クロックサイクルに１回の頻度で順次出力されるように制御される。
【００５４】
デュアルポートＲＡＭ３ａ〜３ｄは、データ格納領域が１６ワードのデュアルポートＲＡＭを４個使用している点で、図１のものと異なる。
書き込み制御部４１は、図１と同様の構成であるが、異なる点は、書き込みカウンタ４１１が、前段の１次元ＤＣＴ変換回路２に対して、ＷＣＮＴ１とＷＣＮＴ０との論理積の反転信号（ＮＡＮＤ）をＷＤＬＡＴとして供給し、４クロックサイクルに１回の頻度で１次元ＤＣＴ係数ＤＣＴＩ３〜ＤＣＴＩ０が供給されるように制御する点である。
【００５５】
書き込みアドレス発生部４１２における書き込みアドレスＷＡＡ、ＷＡＢ、ＷＡＣ、ＷＡＤと、書き込みカウンタ４１１の出力ＷＣＮＴ６〜ＷＣＮＴ２との関係は、図１１の通りである。
【００５６】
書き込みデータ選択回路４１３は、書き込みカウンタ４１１のカウント出力ＷＣＮＴ４、ＷＣＮＴ３の２ビットを、データ選択信号ＷＤＳＥＬ１、ＷＤＳＥＬ０として入力し、データ選択信号ＷＤＳＥＬ１、ＷＤＳＥＬ０がともに論理値‘０’、すなわち１、５行目の係数の場合は、ＤＣＴＩ３をＷＤＡとし、ＤＣＴＩ２をＷＤＢとし、ＤＣＴＩ１をＷＤＣとし、ＤＣＴＩ０をＷＤＤとして供給する。データ選択信号ＷＤＳＥＬ１が論理値‘０’、ＷＤＳＥＬ０が論理値‘１’、すなわち２、６行目の係数の場合は、ＤＣＴＩ２をＷＤＡとし、ＤＣＴＩ３をＷＤＢとし、ＤＣＴＩ０をＷＤＣとし、ＤＣＴＩ１をＷＤＤとして供給する。データ選択信号ＷＤＳＥＬ１が論理値‘１’、ＷＤＳＥＬ０が論理値‘０’、すなわち３、４行目の係数の場合は、ＤＣＴＩ１をＷＤＡとし、ＤＣＴＩ０をＷＤＢとし、ＤＣＴＩ３をＷＤＣとし、ＤＣＴＩ２をＷＤＤとして供給する。データ選択信号ＷＤＳＥＬ１、ＷＤＳＥＬ０がともに論理値‘１’、すなわち４、８行目の係数の場合は、ＤＣＴＩ０をＷＤＡとし、ＤＣＴＩ１をＷＤＢとし、ＤＣＴＩ２をＷＤＣとし、ＤＣＴＩ３をＷＤＤとして供給する。
【００５７】
書き込み許可生成部４１４は、外部より供給される書き込み開始信号ＷＳＴＡＲＴと、書き込みカウンタ４１１のＷＣＮＴ１の反転信号と、ＷＣＮＴ０の反転信号との論理和（ＯＲ）を、デュアルポートＲＡＭ３ａ〜３ｄの書き込み許可信号ＷＥＮＢとして供給し、書き込み動作を４クロックサイクルに１回の頻度に低減させる。
【００５８】
読み出し制御部４２は、図１と同様の構成であるが、異なる点は、読み出しカウンタ４２１が、後段の１次元ＤＣＴ変換回路５に対して、ＲＣＮＴ１とＲＣＮＴ０の論理積の反転信号（ＮＡＮＤ）をＲＤＬＡＴとして供給し、また、読み出しデータ選択回路４２３に対しては、ＲＣＮＴ４を４クロックサイクル遅延させた信号をＲＤＳＥＬ１とするとともに、ＲＣＮＴ３を４クロックサイクル遅延させた信号をＲＤＳＥＬ０として供給し、デュアルポートＲＡＭ３ａ〜３ｄからの読み出しデータの出力タイミングに合わせてデータの入れ替えが可能となるよう制御する。
【００５９】
読み出しアドレス発生部４２２における読み出しアドレスＲＡＡ、ＲＡＢ、ＲＡＣ、ＲＡＤと読み出しカウンタ４２１の出力ＲＣＮＴ６〜ＲＣＮＴ２との関係は、図１２の通りである。
【００６０】
読み出しデータ選択回路４２３は、読み出しカウンタ４２１より供給されるＲＤＳＥＬ１、ＲＤＳＥＬ０を入力とし、その論理値の組み合わせにより、デュアルポートＲＡＭ３ａ〜３ｄから読み出された４つの１次元ＤＣＴ係数ＲＤＡ〜ＲＤＤを、その行位置によって入れ替えてＤＣＴＯ３〜ＤＣＴＯ０へ出力する。すなわちＤＣＴＯ３出力には１、５行目の係数が、ＤＣＴＯ２出力には２、６行目の係数が、ＤＣＴＯ１出力には３、７行目の係数が、ＤＣＴＯ０出力には４、８行目の係数が、それぞれ繰り返し出力されるように、読み出しデータの入れ替えが行われる。
【００６１】
読み出し許可生成部４２４は、読み出し開始信号ＲＳＴＡＲＴと、読み出しカウンタ４２１出力のＲＣＮＴ１の反転信号と、ＲＣＮＴ０の反転信号との論理和（ＯＲ）を、デュアルポートＲＡＭ３ａ〜３ｂの読み出し許可信号ＲＥＮＢとして供給し、読み出し動作を４クロックサイクルに１回の頻度に低減させる。
【００６２】
後段の１次元ＤＣＴ変換回路５は、読み出しカウンタ４２１より供給される信号ＲＤＬＡＴを入力し、４クロックサイクルに１回の頻度で１次元ＤＣＴ係数ＤＣＴＯ３〜ＤＣＴＯ０を同一のタイミングで受け取り、４クロックサイクルに１回の頻度でシフトし、８係数ごとの垂直方向の１次元ＤＣＴ変換を行い、２次元ＤＣＴ係数ＫＫ０〜ＫＫ６３をシステムクロックＳＣＬＫに同期してＤＣＴＯＵＴとして順次出力する。
【００６３】
図１３および図１４は、書き込み制御部４１に従って１次元ＤＣＴ係数がデュアルポートＲＡＭ３ａ〜３ｄに書き込まれるデータ格納位置を示す図である。すなわち、図１３は、最初の８×８画素ブロックの１次元ＤＣＴ係数Ｋ０〜Ｋ６３がデュアルポートＲＡＭ３ａ〜３ｄに書き込まれるデータ格納位置を示す図であり、また図１４は、次の８×８画素ブロックの１次元ＤＣＴ係数Ｋ０〜Ｋ６３がデュアルポートＲＡＭ３ａ〜３ｄに書き込まれるデータ格納位置を示す図である。１次元ＤＣＴ係数は、６４係数ごとに図１３と図１４のデータ格納位置に交互に書き込まれるように、書き込み制御部４１により繰り返し制御される。また、係数の書き込みは、すべて４クロックサイクルに１回の頻度で繰り返し行われる。
【００６４】
図１５および図１６は、読み出し制御部４２に従って１次元ＤＣＴ係数をデュアルポートＲＡＭ３ａ〜３ｄから読み出す際のアドレス順序および読み出される１次元ＤＣＴ係数を示す図である。すなわ、図１５は、最初の８×８画素ブロックの１次元ＤＣＴ係数Ｋ０〜Ｋ６３の読み出しアドレス順序および読み出される１次元ＤＣＴ係数を示す図である。図１６は、次の８×８画素ブロックの１次元ＤＣＴ係数Ｋ０〜Ｋ６３の読み出しアドレス順序および読み出される１次元ＤＣＴ係数を示す図である。
【００６５】
読み出し制御部４２により、１次元ＤＣＴ係数の読み出しを、６４係数ごとに図１５と図１６の読み出しアドレスを交互に切り替えて行うことにより、１次元ＤＣＴ係数の行位置、列位置の転置が繰り返し行われ、４クロックサイクルに１回の頻度で、４係数ずつ後段の１次元ＤＣＴ変換回路５に順次供給される。
【００６６】
図１７は、書き込み制御部４１により制御されるデュアルポートＲＡＭ３ａ〜３ｄの書き込みタイミングを示す図である。書き込み動作において要求される条件は（式−９）、（式−１０）のようになり、メモリセットアップタイムに対するタイミングマージンは、従来と比較して、システムクロックＳＣＬＫの３Ｔ分だけ増加する。
【００６７】
４Ｔ  −  Ｔｄ  ＞  Ｔｓｕ（ＲＡＭ）            ……  （式−９）
Ｔｄ  ＞  Ｔｈ（ＲＡＭ）                        ……  （式−１０）
図１８は、読み出し制御部４２により制御されるデュアルポートＲＡＭ３ａ〜３ｄからの読み出しタイミングを示す図である。読み出し動作において要求される条件は（式−１１）、（式−１２）のようになり、デュアルポートＲＡＭ３ａ〜３ｄに要求されるアクセスタイムＴｐｄは、従来と比較して、（３Ｔ−Ｔｄｍ）だけ増加する。
【００６８】
４Ｔ−（Ｔｐｄ＋Ｔｄｍ）  ＞  Ｔｓｕ（ＦＦ）……  （式−１１）
Ｔｐｄ＋Ｔｄｍ  ＞  Ｔｈ（ＦＦ）            ……  （式−１２）
図１９は、メモリ空間３を８ワードのデュアルポートＲＡＭ８個を用いて構成した例についてのブロック図である。図１と大きく異なる点は、メモリ空間３を８個のデュアルポートＲＡＭ３ａ〜３ｈで構成した点である。この場合は、前段の１次元ＤＣＴ変換回路２から、８クロックサイクルに１回の頻度で、１次元ＤＣＴ係数（Ｋ０〜Ｋ６３）が、列順に早い方のＤＣＴ係数からＤＣＴＩ７〜ＤＣＴＩ０として８係数ずつ順次パラレル出力され、書き込み制御部４１により制御されて８個のデュアルポートＲＡＭ３ａ〜３ｈに順次書き込まれる。書き込まれるアドレスは図２０に示すとおりであり、書き込みタイミングは、８クロックサイクルに１回の頻度で行われるように書き込み許可生成部４１４により制御される。
【００６９】
デュアルポートＲＡＭ３ａ〜３ｈの読み出しは読み出し制御部４２により制御され、読み出しアドレスは図２１に示すとおりであり、読み出しタイミングは、８クロックサイクルに１回の頻度で行われるように読み出し許可生成部４２４により制御される。
【００７０】
図２２および図２３は、書き込み制御部４１に従って１次元ＤＣＴ係数がデュアルポートＲＡＭ３ａ〜３ｈに書き込まれるデータ格納位置を示す図である。図２２は、最初の８×８画素ブロックの１次元ＤＣＴ係数Ｋ０〜Ｋ６３がデュアルポートＲＡＭ３ａ〜３ｈに書き込まれるデータ格納位置を示す図であり、また図２３は、次の８×８画素ブロックの１次元ＤＣＴ係数Ｋ０〜Ｋ６３がデュアルポートＲＡＭ３ａ〜３ｈに書き込まれるデータ格納位置を示す図である。１次元ＤＣＴ係数は、６４係数ごとに図２２と図２３のデータ格納位置に交互に書き込まれるよう、書き込み制御部４１により繰り返し制御される。また、係数の書き込みは、すべて、８クロックサイクルに１回の頻度で繰り返し行われる。
【００７１】
図２４および図２５は、読み出し制御部４２に従って１次元ＤＣＴ係数をデュアルポートＲＡＭ３ａ〜３ｄから読み出す際のアドレス順序および読み出される１次元ＤＣＴ係数を示す図である。図２４は、最初の８×８画素ブロックの１次元ＤＣＴ係数Ｋ０〜Ｋ６３の読み出しアドレス順序および読み出される１次元ＤＣＴ係数を示す図である。図２５は、次の８×８画素ブロックの１次元ＤＣＴ係数Ｋ０〜Ｋ６３の読み出しアドレス順序および読み出される１次元ＤＣＴ係数を示す図である。
【００７２】
読み出し制御部４２により、１次元ＤＣＴ係数の読み出しを６４係数ごとに図２４と図２５の読み出しアドレスを交互に切り替えて行うことにより、１次元ＤＣＴ係数の行位置、列位置の転置が繰り返し行われ、８クロックサイクルに１回の頻度で、８係数ずつ後段の１次元ＤＣＴ変換回路５に順次供給される。
【００７３】
図２６は、書き込み制御部４１により制御されるデュアルポートＲＡＭ３ａ〜３ｈの書き込みタイミングを示す図である。書き込み動作において要求される条件は（式−１３）、（式−１４）のようになり、メモリセットアップタイムに対するタイミングマージンは、従来と比較して、システムクロックＳＣＬＫの７Ｔ分だけ増加する。
【００７４】
８Ｔ  −  Ｔｄ  ＞  Ｔｓｕ（ＲＡＭ）          ……  （式−１３）
Ｔｄ  ＞  Ｔｈ（ＲＡＭ）                      ……  （式−１４）
図２７は、読み出し制御部４２により制御されるデュアルポートＲＡＭ３ａ〜３ｈからの読み出しタイミングを示す図である。読み出し動作において要求される条件は（式−１５）、（式−１６）のようになり、デュアルポートＲＡＭ３ａ〜３ｈに要求されるアクセスタイムＴｐｄは、従来と比較して（７Ｔ−Ｔｄｍ）だけ増加する。
【００７５】
８Ｔ−（Ｔｐｄ＋Ｔｄｍ）  ＞  Ｔｓｕ（ＦＦ）  ……  （式−１５）
Ｔｐｄ＋Ｔｄｍ  ＞  Ｔｈ（ＦＦ）              ……  （式−１６）
（第２の実施の形態）
図２８は、この発明の第２の実施形態の２次元離散コサイン変換装置のブロック図である。前述の第１の実施の形態で示した２次元離散コサイン変換装置１は、２個のデュアルポートＲＡＭの書き込み制御、読み出し制御を２係数ずつ個別に同一タイミングで行うのに対し、本実施の形態の２次元離散コサイン変換装置２０１は、係数のメモリ空間における書き込み位置（アドレス）、読み出し位置（アドレス）に関しては第１の実施の形態と全く同一であるが、２個のデュアルポートＲＡＭの書き込み制御、読み出し制御を１係数ずつ個別に異なるタイミングで行う点で異なる。また、第１の実施の形態は、メモリへの書き込みおよびメモリからの読み出しにおける回路上のタイミングマージンを改善させ、かつ低消費電力化を実現するものであるが、この第２の実施の形態は、主にメモリの読み出しタイミングマージンのみを改善させ、かつ低消費電力化を図ろうとするものである。
【００７６】
図示のように、２次元離散コサイン変換装置２０１は、前段の１次元ＤＣＴ変換回路２０２と、メモリ空間３と、転置制御部２０４と、後段の１次元ＤＣＴ変換回路２０５とによって構成される。
【００７７】
前段の１次元ＤＣＴ変換回路２０２は、８×８画素ブロックに分割された画像の水平方向８画素分の画素データＰＸＬＤが、システムクロックＳＣＬＫに同期して１画素ずつ入力され、水平方向の１次元ＤＣＴ変換が行われ、書き込みカウンタ２４１１より供給される信号ＷＤＣＨＧが論理値‘０’の時、すなわち奇数行の係数に関しては、Ｄ０、Ｄ１、Ｄ２、…、Ｄ７のように奇数列、偶数列の順に、システムクロックＳＣＬＫに同期して出力され、ＷＤＣＨＧが論理値‘１’の時、すなわち偶数行の係数に関しては、Ｄ９、Ｄ８、Ｄ１１、Ｄ１０…、Ｄ１５、Ｄ１４のように偶数列、奇数列の順に、システムクロックＳＣＬＫに同期して１係数ずつＤＣＴＩに出力されるように制御される。信号ＷＤＣＨＧは、書き込みカウンタ２４１１より供給され、詳しくは、システムクロックＳＣＬＫが１６分周されたカウンタ出力ＷＣＮＴ３と同一となる。
【００７８】
デュアルポートＲＡＭ３ａ、３ｂは、図１のものと全く同一である。
書き込み制御部２４１は、書き込みカウンタ２４１１と、書き込みアドレス発生部４１２と、書き込み許可生成部２４１４とで構成される。
【００７９】
書き込みカウンタ２４１１は、図１のものと同様に７ビットのバイナリカウンタで構成されており、前段の１次元ＤＣＴ変換回路２０２より出力される最初の係数Ｋ０が出力される同一のタイミングで論理値が‘０’となる信号ＷＳＴＡＲＴによりカウントアップしていくように制御される。また、書き込みデータ（係数）が奇数行の係数か、偶数行の係数かを識別できるように、前段の１次元ＤＣＴ変換回路２０２に対し、信号ＷＣＮＴ３を信号ＷＤＣＨＧとして供給する。  書き込みアドレス発生部４１２は、図１のものと同一の構成で、係数の書き込みアドレスを図２の通り発生する。
【００８０】
書き込み許可生成部２４１４は、デュアルポートＲＡＭ３ａ、３ｂに対しそれぞれ異なるタイミングで個別に書き込み制御するように、外部より供給される書き込み開始信号ＷＳＴＡＲＴと書き込みカウンタ２４１１の最下位ビットＷＣＮＴ０との論理和（ＯＲ）を、デュアルポートＲＡＭ３ａの書き込み許可信号ＷＥＮＢＡとして供給し、また、信号ＷＳＴＡＲＴと書き込みカウンタ２４１１の最下位ビットＷＣＮＴ０の反転信号との論理和（ＯＲ）を、デュアルポートＲＡＭ３ｂの書き込み許可信号ＷＥＮＢＢとして供給する。
【００８１】
図２９は、デュアルポートＲＡＭ３ａ、３ｂにおける書き込みタイミングを示す図である。図のように、デュアルポートＲＡＭ３ａ、３ｂの書き込みがそれぞれ異なるタイミングで行われるように制御される。
【００８２】
図２８において、読み出し制御部２４２は、読み出しカウンタ２４２１と、読み出しアドレス発生部４２２と、読み出し許可生成部２４２４と、読み出しデータ出力制御部２４２５とで構成される。
【００８３】
読み出しカウンタ２４２１は、図１のものと同様に７ビットのバイナリカウンタで構成されており、本実施の形態においては、デュアルポートＲＡＭ３ａ、３ｂより読み出された係数が奇数行の係数か偶数行の係数かの識別が可能となるように、後段の１次元ＤＣＴ変換回路２０５に対して、カウンタ出力ＲＣＮＴ３を２クロックサイクル遅延させた信号をＲＤＣＨＧとして供給する。
【００８４】
読み出しアドレス発生部４２２は、図１のものと同一の構成で、係数の読み出しアドレスを図３の通り発生する。
読み出し許可生成部２４２４は、それぞれ異なるタイミングでデュアルポートＲＡＭ３ａ、３ｂから読み出し制御するように、また、読み出しデータ出力制御部２４２５に対して読み出しデータＲＤＡ、ＲＤＢをそれぞれ異なるタイミングでラッチすることが可能となるように、デュアルポートＲＡＭ３ａ、３ｂに信号ＲＥＮＢＡと信号ＲＥＮＢＢとを供給する。信号ＲＥＮＢＡは、外部より供給される読み出し開始信号ＲＳＴＡＲＴと読み出しカウンタ２４２１の最下位ビットＲＣＮＴ０との論理和（ＯＲ）の信号であり、また信号ＲＥＮＢＢは、信号ＲＳＴＡＲＴと読み出しカウンタ２４２１の最下位ビットＲＣＮＴ０の反転信号との論理和（ＯＲ）の信号である。
【００８５】
読み出しデータ出力制御部２４２５は、デュアルポートＲＡＭ３ａ、３ｂよりそれぞれ異なるタイミングで読み出された読み出しデータＲＤＡ、ＲＤＢを入力とし、読み出し許可生成部２４２４より供給される信号ＲＥＮＢＡ、ＲＥＮＢＢに従って、１係数ずつ時分割処理する。
【００８６】
図３０は、デュアルポートＲＡＭ３ａ、３ｂからの読み出しタイミングを示す図である。信号ＲＥＮＢＡ、ＲＥＮＢＢに従って異なるタイミングで読み出された読み出しデータＲＤＡ、ＲＤＢは、読み出し許可生成部２４２４より供給される信号ＲＥＮＢＡが論理値‘０’の時にデータＲＤＡがシステムクロックＳＣＬＫの立ち上がりエッジでラッチされてＲＤＡＬＴとなり、また、信号ＲＥＮＢＢが論理値‘０’の時にデータＲＤＢがラッチされてＲＤＢＬＴとなる。すなわち、読み出しデータＲＤＡ、ＲＤＢがそれぞれラッチされるタイミングは、常に読み出されたタイミングの２クロック後となり、データＲＤＡ、ＲＤＢを正確にラッチするためには、デュアルポートＲＡＭ３ａ、３ｂのアクセスタイムをＴｐｄとし、ラッチするフリップフロップの入力セットアップタイム、ホールドタイムをＴｓｕ（ＦＦ）、Ｔｈ（ＦＦ）とすると、（式−１７）、（式−１８）の条件を満足していればよい。すなわち従来の条件（式−３）、（式−４）に比べれば、デュアルポートＲＡＭ３ａ、３ｂに要求されるアクセスタイムＴｐｄは、Ｔだけ増加する。
【００８７】
２Ｔ  −  Ｔｐｄ＞  Ｔｓｕ（ＦＦ）          ……  （式−１７）
Ｔｐｄ      ＞  Ｔｈ（ＦＦ）                ……  （式−１８）
その後、信号ＲＥＮＢＡが論理値‘０’の時にＲＤＡＬＴが選択され、また信号ＲＥＮＢＢが論理値‘０’の時にＲＤＢＬＴが選択され、ＤＣＴＯとして繰り返し出力されるように制御される。
【００８８】
後段の１次元ＤＣＴ変換回路２０５では、読み出しデータ制御部２４２５より１係数ずつ供給される信号ＤＣＴＯを入力として、読み出しカウンタ２４２１より供給される信号ＲＤＣＨＧに従って、その係数の行位置が識別される。信号ＲＤＣＨＧは、システムクロックＳＣＬＫが１６分周された信号であり、かつ読み出しデータの出力タイミングに合わせるため、信号ＲＣＮＴ３を２クロックサイクル遅延させた信号である。すなわち、信号ＲＤＣＨＧの論理値が‘０’の時は奇数行の係数を表し、論理値が‘１’の時は偶数行の係数を表している。後段の１次元ＤＣＴ変換回路２０５は、この信号ＲＤＣＨＧにより、係数ＤＣＴＯの行位置を識別し、８係数ごとの垂直方向の１次元ＤＣＴ変換を行い、２次元ＤＣＴ係数ＫＫ０〜ＫＫ６３をシステムクロックＳＣＬＫに同期してＤＣＴＯＵＴとして順次出力する。
【００８９】
以上のように、本実施の形態の場合は、読み出しアクセスタイムが比較的大きな低速のＲＡＭを使用しても、高速の離散コサイン変換装置の実現が可能となる。また、本第２の実施の形態では、メモリ空間３を３２ワードのデュアルポートＲＡＭ２個で構成した場合を説明したが、実施の形態１の場合と同様に、メモリ空間３は、１６ワードのデュアルポートＲＡＭ４個で構成してもよく、また、８ワードのデュアルポートＲＡＭ８個で構成してもよい。
【００９０】
１６ワードのデュアルポートＲＡＭを用いた場合の読み出し動作における条件は（式−１９）のようになり、メモリに要求されるアクセスタイムＴｐｄは従来と比較して３Ｔだけ増加する。また、８ワードのデュアルポートＲＡＭを用いた場合の読み出し動作における条件は（式−２０）のようになり、メモリに要求されるアクセスタイムＴｐｄは従来と比較して７Ｔだけ増加する。
【００９１】
２Ｔ  −  Ｔｐｄ＞  Ｔｓｕ（ＦＦ）            ……  （式−１９）
８Ｔ  −  Ｔｐｄ＞  Ｔｓｕ（ＦＦ）            ……  （式−２０）
【図面の簡単な説明】
【００９２】
【図１】本発明の第１の実施の形態の２次元離散コサイン変換装置のブロック図
【図２】同２次元離散コサイン変換装置に備えられる書き込みアドレス発生部における２つのデュアルポートＲＡＭの書き込みアドレスを示す図
【図３】同２次元離散コサイン変換装置に備えられる読み出しアドレス発生部における２つのデュアルポートＲＡＭの読み出しアドレスを示す図
【図４】同２次元離散コサイン変換装置に備えられる書き込み制御部において、２つのデュアルポートＲＡＭに最初の６４個の１次元ＤＣＴ係数データを書き込む際のデータ格納位置を示す図
【図５】同２次元離散コサイン変換装置に備えられる書き込み制御部において、２つのデュアルポートＲＡＭに次の６４個の１次元ＤＣＴ係数データを書き込む際のデータ格納位置を示す図
【図６】同２次元離散コサイン変換装置に備えられる読み出し制御部において、２つのデュアルポートＲＡＭから最初の６４個の１次元ＤＣＴ係数データを読み出す際の読み出しアドレス順と読み出される１次元ＤＣＴ係数とを示す図
【図７】同２次元離散コサイン変換装置に備えられる読み出し制御部において、２つのデュアルポートＲＡＭから次の６４個の１次元ＤＣＴ係数データを読み出す際の読み出しアドレス順と読み出される１次元ＤＣＴ係数とを示す図
【図８】同２次元離散コサイン変換装置に備えられる書き込み制御部において、２つのデュアルポートＲＡＭに１次元ＤＣＴ係数データを書き込む際の書き込みタイミングを示す図
【図９】同２次元離散コサイン変換装置に備えられる読み出し制御部において、２つのデュアルポートＲＡＭから１次元ＤＣＴ係数データを読み出す際の読み出しタイミングを示す図
【図１０】本発明の第１の実施の形態として示す他の２次元離散コサイン変換装置のブロック図
【図１１】同２次元離散コサイン変換装置に備えられる書き込みアドレス発生部における４つのデュアルポートＲＡＭの書き込みアドレスを示す図
【図１２】同２次元離散コサイン変換装置に備えられる読み出しアドレス発生部における４つのデュアルポートＲＡＭの読み出しアドレスを示す図
【図１３】同２次元離散コサイン変換装置に備えられる書き込み制御部において、４つのデュアルポートＲＡＭに最初の６４個の１次元ＤＣＴ係数データを書き込む際のデータ格納位置を示す図
【図１４】同２次元離散コサイン変換装置に備えられる書き込み制御部において、４つのデュアルポートＲＡＭに次の６４個の１次元ＤＣＴ係数データを書き込む際のデータ格納位置を示す図
【図１５】同２次元離散コサイン変換装置に備えられる読み出し制御部において、４つのデュアルポートＲＡＭから最初の６４個の１次元ＤＣＴ係数データを読み出す際の読み出しアドレス順と読み出される１次元ＤＣＴ係数とを示す図
【図１６】同２次元離散コサイン変換装置に備えられる読み出し制御部において、４つのデュアルポートＲＡＭから次の６４個の１次元ＤＣＴ係数データを読み出す際の読み出しアドレス順と読み出される１次元ＤＣＴ係数とを示す図
【図１７】同２次元離散コサイン変換装置に備えられる書き込み制御部において、４つのデュアルポートＲＡＭに１次元ＤＣＴ係数データを書き込む際の書き込みタイミングを示す図
【図１８】同２次元離散コサイン変換装置に備えられる読み出し制御部において、４つのデュアルポートＲＡＭから１次元ＤＣＴ係数データを読み出す際の読み出しタイミングを示す図
【図１９】本発明の第１の実施の形態として示すさらに他の２次元離散コサイン変換装置のブロック図
【図２０】同２次元離散コサイン変換装置に備えられる書き込みアドレス発生部における８つのデュアルポートＲＡＭの書き込みアドレスを示す図
【図２１】同２次元離散コサイン変換装置に備えられる読み出しアドレス発生部における８つのデュアルポートＲＡＭの読み出しアドレスを示す図
【図２２】同２次元離散コサイン変換装置に備えられる書き込み制御部において、８つのデュアルポートＲＡＭに最初の６４個の１次元ＤＣＴ係数データを書き込む際のデータ格納位置を示す図
【図２３】同２次元離散コサイン変換装置に備えられる書き込み制御部において、８つのデュアルポートＲＡＭに次の６４個の１次元ＤＣＴ係数データを書き込む際のデータ格納位置を示す図
【図２４】同２次元離散コサイン変換装置に備えられる読み出し制御部において、８つのデュアルポートＲＡＭから最初の６４個の１次元ＤＣＴ係数データを読み出す際の読み出しアドレス順と読み出される１次元ＤＣＴ係数とを示す図
【図２５】同２次元離散コサイン変換装置に備えられる読み出し制御部において、８つのデュアルポートＲＡＭから次の６４個の１次元ＤＣＴ係数データを読み出す際の読み出しアドレス順と読み出される１次元ＤＣＴ係数とを示す図
【図２６】同２次元離散コサイン変換装置に備えられる書き込み制御部において、８つのデュアルポートＲＡＭに１次元ＤＣＴ係数データを書き込む際の書き込みタイミングを示す図
【図２７】同２次元離散コサイン変換装置に備えられる読み出し制御部において、８つのデュアルポートＲＡＭから１次元ＤＣＴ係数データを読み出す際の読み出しタイミングを示す図
【図２８】本発明の第２の実施の形態の２次元離散コサイン変換装置のブロック図
【図２９】同２次元離散コサイン変換装置に備えられる書き込み制御部において、２つのデュアルポートＲＡＭに１次元ＤＣＴ係数データを書き込む際の書き込みタイミングを示す図
【図３０】同２次元離散コサイン変換装置に備えられる読み出し制御部において、２つのデュアルポートＲＡＭから１次元ＤＣＴ係数データを読み出す際の読み出しタイミングを示す図
【図３１】従来の２次元離散コサイン変換装置のブロック図
【図３２】同２次元離散コサイン変換装置に備えられる書き込み制御部において、デュアルポートＲＡＭに最初の６４個の１次元ＤＣＴ係数データを書き込む際の書き込み順を示す図
【図３３】同２次元離散コサイン変換装置に備えられる読み出し制御部において、デュアルポートＲＡＭから最初の６４個の１次元ＤＣＴ係数データを読み出す際の読み出し順を示す図
【図３４】同２次元離散コサイン変換装置に備えられる書き込み制御部において、デュアルポートＲＡＭに次の６４個の１次元ＤＣＴ係数データを書き込む際の書き込み順を示す図
【図３５】同２次元離散コサイン変換装置に備えられる読み出し制御部において、デュアルポートＲＡＭから次の６４個の１次元ＤＣＴ係数データを読み出す際の読み出し順を示す図
【図３６】同２次元離散コサイン変換装置に備えられる書き込み制御部において、デュアルポートＲＡＭに１次元ＤＣＴ係数データを書き込む際の書き込みタイミングを示す図
【図３７】同２次元離散コサイン変換装置に備えられる読み出し制御部において、デュアルポートＲＡＭから１次元ＤＣＴ係数データを読み出す際の読み出しタイミングを示す図
【符号の説明】
【００９３】
１    ２次元離散コサイン変換装置
２、５    １次元ＤＣＴ変換回路
３    メモリ空間
３ａ、３ｂ    デュアルポートＲＡＭ
４    転置制御部
４１    書き込み制御部
４２    読み出し制御部
４１３    書き込みデータ選択回路
４１４    書き込み許可生成部
４２１    読み出しデータ選択回路
４２４    読み出し許可生成部
【図１】
2006127536.tif 000003
【図２】
2006127536.tif 000004
【図３】
2006127536.tif 000005
【図４】
2006127536.tif 000006
【図５】
2006127536.tif 000007
【図６】
2006127536.tif 000008
【図７】
2006127536.tif 000009
【図８】
2006127536.tif 000010
【図９】
2006127536.tif 000011
【図１０】
2006127536.tif 000012
【図１１】
2006127536.tif 000013
【図１２】
2006127536.tif 000014
【図１３】
2006127536.tif 000015
【図１４】
2006127536.tif 000016
【図１５】
2006127536.tif 000017
【図１６】
2006127536.tif 000018
【図１７】
2006127536.tif 000019
【図１８】
2006127536.tif 000020
【図１９】
2006127536.tif 000021
【図２０】
2006127536.tif 000022
【図２１】
2006127536.tif 000023
【図２２】
2006127536.tif 000024
【図２３】
2006127536.tif 000025
【図２４】
2006127536.tif 000026
【図２５】
2006127536.tif 000027
【図２６】
2006127536.tif 000028
【図２７】
2006127536.tif 000029
【図２８】
2006127536.tif 000030
【図２９】
2006127536.tif 000031
【図３０】
2006127536.tif 000032
【図３１】
2006127536.tif 000033
【図３２】
2006127536.tif 000034
【図３３】
2006127536.tif 000035
【図３４】
2006127536.tif 000036
【図３５】
2006127536.tif 000037
【図３６】
2006127536.tif 000038
【図３７】
2006127536.tif 000039