JPEG decode でのマーカエラー

毎々お世話になります。 

RZ/A1H のjpeg decoder で jpeg ->yuv 変換を行おうとしていますが、

マーカーエラーが発生します。 使用したjpeg ファイルはviewer で正常に表示できることを、確認しています。

エラーコードはB'1000、 内容は SOS検出時にSOF0,DQT,DHT 未検出 です。

jpeg ファイルは以下のようなものです。

原因をご存じの方はお知らせください。 お手数ですがよろしくお願いします。

高瀬 

Address Length Message
00000000 ****** SOI :Start Of Image ******
00000002 [0010] APP0 :Application segment marker - to 00000013
AVI1..........
00000014 [0004] COM :Comment

0000001A [0084] DQT :Define Quantization Table 【IJG 画質75】
0000001E QT0-8bit IJG輝度 画質75
0000005F QT1-8bit IJG色差 画質75
000000A0 [0011] SOF0 :Start Of Frame 0 - Baseline DCT
             320[0] x 240[0] pixel - 24bit color (YCbCr 4:2:2)
              ComponentID-01 Y 2x1 QT0
              ComponentID-02 Cb 1x1 QT1
              ComponentID-03 Cr 1x1 QT1
000000B3 [001F] DHT :Define Huffman Table
000000B7 HT0-DC 汎用輝度HT-DC
000000D4 [001F] DHT :Define Huffman Table
000000D8 HT1-DC 汎用色差HT-DC
000000F5 [00B5] DHT :Define Huffman Table
000000F9 HT0-AC 汎用輝度HT-AC
000001AC [00B5] DHT :Define Huffman Table
000001B0 HT1-AC 汎用色差HT-AC
00000263 [000C] SOS :Start Of Scan 0-63[00]
HT Selector[DC/AC] Y[0/0] Cb[1/1] Cr[1/1]
00000271 ****** Image Data ******
Data Size 4,244 bytes
00001305 ****** EOI :End Of Image ******
 

  • 毎々お世話になります。

    環境としては IARのI-Jetを使用しています。

    エラー発生時の動作の順番としては 
    jpeg ファイルを UARTで RAM上の配列に格納する。 RZ/A1H のjcu の初期設定を行い、jcu に jpegファイルが格納された配列の先頭アドレスを渡し、伸長したときにエラーが発生しました。 JIFDCNTのJINSWAPの設定は0にしたのですが、この設定に問題があるのでしょうか?

    お手数ですがよろしくお願いします。
  • JINSWAP = 0が原因である可能性は、低いと思われます。
    JPEGファイルが格納される先頭アドレスが、8バイトアライメントか確認お願いします。
    その他にも、キャッシュコヒーレンシ問題の可能性も考えられますので、その確認の為に、JPEGファイルをROM上に配置し伸張する。もしくは、非キャッシュのRAMにJPEGファイルを展開して正常に伸張可能か確認をお願い致します。
  • わわいです
    RZ-A1のJPEGデコーダはどんなファイルでも行けるんじゃなくていくつか条件があったと思います
    ダメなJPGファイルのときは、Windowsのペイントで開いてJPGファイルとして保存し直すと、いけるようになりますね
  • JIFDCNTのJINSWAPの設定を0b111にしたところ、うまくいきました。