FPGAマガジン No.6で紹介したJPEG DecoderのサポートWikiです。 FPGAマガジンで紹介しきれなかった部分を保管することを主目的としています。 JPEG Decoderをダウンロードすることができます。
JPEG DECODERは下記のようにgithubからダウンロードしてください。下記のようにIPCOREをダウンロードして頂くと、FPGAマガジン No.6で必要なIPCODEをまるごとダウンロードすることができます。 詳細仕様などについては、今後、追加していきますので今、しばらくお待ちください。 (2014/07/26、githubのディレクトリ構成を修正しました)
% git clone https://github.com/aquaxis/IPCORE.git
% cd aq_axi_djpeg
IPCODEのディレクトリにあるIPコアのうち、今回使用するのは下記のディレクトリがあります。
aq_axi_djpegディレクトリには下記のファイルがあります。
Vivadoで"Open Project"を選択し、aq_axi_djpeg.xprのプロジェクトファイルを読み込むと、JPEG DECODERのVivadoプロジェクトを開くことができます。
下記のようにgithubからプロジェクトファイルをダウンロードします。
ZYBO用 Vivadoプロジェクトは中身が存在しませんが、IPコアのリポジトリの設定を行っています。 従って、IPCOREと同じディレクトリでダウンロードしてください。
% git clone https://github.com/aquaxis/FPGAMAG.git
下記のようにディレクトリを移動してから、ZYBOのWebページからZYBO_def.zipをダウンロードして、Zipファイルを解凍後、"ZYBO_zynq_dev.xml"をFPGAMAG/No6/ZYBO/の下に置いてください。
% cd FPGAMAG/No6/ZYBO
FPGAMAG/No6/ZYBOの下でVivado 2014.2を起動してください。
% vivado
Vivado起動後、下図のように"Open Project"でZYBO.xprを選択して開いてください。
開いたあと、"Tools" -> "RUn Tcl Script"でZYBO.tclを実行します。
TCLが正常に実行されると下図のようにFPGAマガジン No.6で紹介しているプロジェクトが生成されます。
ZYBO用 BOOT.BINの生成方法を解説します。
まず、githubから下記のようにリポジトリをクローンしてください。 ダウンロード完了後にNo6というディレクトリがありますので移動してください。
% git clone https://github.com/aquaxis/FPGAMAG.git
% cd No6
SD_IMAGEディレクトリには下記のファイルがあります。
BOOT.BINはSD_IMAGEにコミットしてますのでそのまま使用してもかまいません。
ZedBoard Out Of Box SD Card image and sourceからZedBoard_OOB_Design.zipをダウンロードします。 ダウンロードしたファイルを解凍し、boot_imageディレクトリにあるu-boot.elfをSD_IMAGEディレクトリにコピーします。
% unzip ZedBoard_OOB_Design.zip
% cd ZedBoard_OOB_Design/boot_image/
% cp u-boot.elf SD_IMAGE
u-bootとFSBL.elf、ZYBO_wrapper.bitをSD_IMAGEにコピーできたら、mkbootbin.shを実行するとBOOT.BINが生成されます。
% ./mkbootbin.sh
MicroSDカードの第一パーティションをFAT32でフォーマットし、BOOT.BINをコピーします。 パーティションサイズは100MB程度で構いません。
ZYBOにMicroSDカードを挿れて起動します。
HDLのシミュレーションはDJPEGのみ行えます。 Vivadoからシミュレーションを実行すると、テストベンチはtest.memを読みながらシミュレーションを行います。 シミュレーション用のデータはJPEGファイルから生成することができ、結果をBMPに変換することができます。
シミュレーション用データの生成方法
% gcc -o convbtoh convbtoh.c
% convbtoh test.jpg test.mem
シミュレーション結果のBMP変換方法
% gcc -o convsim convsim.c
% convsim test.dat test.bmp
aq_axi_djpeg.modelディレクトリにDJPEGのシミュレーションモデルがあります。 このCモデルでDJPEGのアルゴリズム検証が行えます。
本DJPEG IPコアと全く同じ結果を出力します。
% gcc -o djepg djpeg.c
% djpeg test.jpg test.bmp
JPEGエンコーダになります。 参考資料です。
% gcc -o cjepg cjpeg.c
% cjpeg test.bmp test.jpg