Tech と Culture

テクノロジーとカルチャー

2009-07-01から1ヶ月間の記事一覧

YCbCr-RGB変換モジュール アドレス生成 修正

IncaddY, IncaddMCUXは、APBレジスタではなく、固定値でした。YCbCr-RGB変換モジュール部分アドレス生成修正完了。 テストベンチによる検証も終了。次に、YCbCrメモリ+コントローラ部の設計に入ります。

YCbCr-RGB変換モジュール アドレス生成

具体的なアドレス生成部の詳細は以下のようにしました。 X方向に16pixel分出力した次のフレームバッファアドレスを算出するために加算する値をIncaddYとしてAPBレジスタに保存します。 次に1MCU分を出力した時に加算する値をIncaddMCUXというAPBレジスタに保…

フロー制御

YCbCr-RGB変換回路を修正するためには、全体のフローをきっちり理解する必要があります。以下は、IJGのdjpegにおけるJPEG処理フローです。4:2:2の場合を説明しています。 ソフトウェア中では、MCU一列分のDCTが行われて、その後ピクセル画面一列分を順にYCbC…

IDCTデータパス RTL

IDCTのデータパス部分のコーディングを行いました。 一部修正しています。 一段目: 二段目: データパスですが、コントロールFSMが必要となります。図中のcounterの部分が外部からのstart信号により動き始め、その値によって、各セレクタ等が動作を決めていき…

全体制御フロー案

IDCT二つとYCbCr-RGB変換モジュール等を前後の整合性を合わせて自律的に動作させねばなりません。その方法の最初の案が以下のようなものです。 ダブルバッファそれぞれのメモリのどちらを指しているかのスイッチと、それぞれのメモリの現在の状態をステート…

雑記

非常にラフにDCTのデータパスを一つコーディングして LUT使用率5% クリティカルパス約21nsecこれまでのトップレベルの設計結果が、Slice使用率88%, LUT使用率77% クリティカルパス約20nsec非常に微妙なのですが、まだ削れるモジュールもあるということで、そ…

IDCTハードウェア概要3

ハードウェア全体構成とIDCTアルゴリズムが確認できたので、以前と同じようにデータパスのビット幅を決定するのですが、ここでは、DesignWave誌 2008年1月号の記事で説明されている通りにビット幅を決定します。 ただし、2箇所だけ説明が納得できない部分が…

雑記

とうとう、GoogleがOSを開発してフリーで提供することを発表しました。 Chrome OSです。 軽量でセキュリティに強く、数秒でbrowserが立ち上がる。殆どの作業は、WEB上で行う。。。 これは、ほとんど、CrunchPadのコンセプトと重なるのでは!!! 結局皆求め…

IDCTハードウェア概要2

ここまでのIDCTブロックのハードウェアアルゴリズムを確認するために、jidctint.cをハードウェアと同じアルゴリズムに変更します。 とりあえず、データパスのビット数は考慮せずに、アルゴリズムの確認を行います。最終出力以外は、double型にします。最終出…

IDCTハードウェア概要

JPEG処理に用いられる二次元DCTは一次元DCT二回の演算に分割することができます。 その他にも演算負荷を軽くするためのアルゴリズムが大量に提案されてきています。IJGのデコードソフトウェアdjpegは、実行時オプションでどのようなDCT演算を使うかを指定す…

octave

JPEG処理の流れが理解できたところで、以前と同じようにホストPC側でプログラムを変更してアルゴリズム確認を行います。 ここで結構苦しみました。 IJGのコードの書き方が2次元行列を一次元配列で記述してポインタをずらしながら、さらに配列アクセスするよ…

IJGソフト内部でのJPEG処理の流れ 

IJGのソフトウェアのハフマンデコード以降の処理の流れが理解できました。 このソフトウェアでは、画像データの種類や、オプション指定によって、各処理関数が変更されるようになっています。以降の説明は、現在用いているmotion JPEGのデータをオプション無…

雑記

IJGのソースコードを読むのはかなり難解です。。。。。。 特にハフマンデコード部分とファイルパーサー部分。 DCTはまだなんとかなりそうなのですが、量子化テーブル設定等でどうしてもファイルパーサー部分も読まないといけなくなってかなり難儀しています…