第14回LSIデザインコンテスト・イン沖縄  設計仕様書 - 8

8. LEVEL1 初心者用課題

ここでは,図11に示すような圧縮・伸長システムを作成します。システムの入力はQCIFサイズの画像(176x144ピクセル)です。入力画像はY、Cr、Cbのブロックデータと呼ばれる、8x8のピクセルに分解されます。処理は、画像左上角部から始まり、右下角部で終わるラスタースキャン手法で行われます。圧縮機は図12で示されるブロックで構成されており、1D-DCTブロックは図5に示すアーキテクチャで構成されています。

各データ処理ブロックのタイミングチャートを図13に示します。入力データは、圧縮機に列形式(C0,C1,,,C7)で入力されます。各列は、異なる行(R0,R1,,,R7)を持つ8ピクセルデータで構成されます。よって全てのデータブロックが入力されるのに8クロックのサイクルが必要となります。 シリアルで入力される入力信号は、vaild_inputで示されます。最初の列データC0の1クロックサイクル後に、signedはUnsigned to Signedブロックの出力となります。よってこのブロックの処理遅延(Lsigned)は1クロックサイクルとなります。

Unsigned to Signedブロックの出力は1D-DCTブロックに送られます。1D-DCTブロックの処理遅延(L1D-DCT)は、図5の1D-DCTブロックの構成方法に依存します。設計者は、このブロックの処理プロセスを複数のパイプラインステージに分割することもあります。1D-DCTブロックの出力はTransposition Bufferに保存されます。

1D-DCTブロックによって全ての1ピクセルブロックが処理された後、処理結果は1D-DCTブロックで、違う手順で再び処理されます。このときの処理遅延は先ほどと同様(L1D-DCT)になります。最初の列データが終わると同時に、処理結果はQuantizerブロックで演算されます。Quantizerブロックの処理遅延(LQUANT)は、Quantizerブロックの実装仕様とビット幅に依存します。結果的に、一つのピクセルデータブロックを処理するのに必要となる時間は、Lsigned、L1D-DCT、LQUANTに依存します。

Signed(Unsigned to Signed)、Transformation(1D-DCT)、Quantization(Quantizer)のプロセスは、enable信号がアクティブになったときに動作します。enable信号は、コアが新たな入力信号を受ける準備が整ったことを示す信号です。数処理遅延の後、vaild_output信号がアクティブになる際 に出力信号が認識されます。

画像品質を維持したまま、設計パラメータ(サイズ、スピード)を最適化するために、設計者は各処理ブロックのビット幅を最適化しなければなりません。これは固定小数点を用いて、処理シミュレーションを行うことによってできます。

Figrue11

図11  システム構成

Figrue12

図12  圧縮器ブロック図

Figrue13

図13  圧縮器タイミングダイアグラム

NoName PortDescriptionActiveI/OWidth
1clockClock signalInput1
2resetReset signalLowInput1
3enableIndicates that the core is ready to receive new dataHighInput1
4cmodeTable quantization selector
(Q50=0,Q80=1)
Input1
5datainColumn input signalInput64
6valid_inputSample the valid data at datain portHighInput1
7valid_outputValidata the output data at dataout portHighOutput1
8dataoutCompressed image signalOutput64

表2  ポート定義

<<Back                 Next>>