JpegAnalyzer操作説明 JPEGセグメントエラーリスト
JpegAnalyzerの解析リストで解析情報の途中に表示されるエラーリストです。
箇所 メッセージ 説明
APP ▲ SOI直後でないAPP0(JFIF)セグメント APP0(JFIF)セグメントより前にSOIがありませんでした。
表示は出来ますが、JFIFの規定から外れている無意味なセグメントです。
DQT ▲ セグメント長異常 ( Table Count = n Length = xxxx )
n=検出したテーブル数、xxxx=内部要素より割り出したセグメント長

DQTのテーブルサイズはエレメント精度が8bitのときは65バイト、16bitのときは129バイトで、
セグメント長は2バイトと各テーブル長を合計した数です。
計算したセグメント長と記録されているセグメント長が会わなければエラーになります。
エレメント精度は普通8bitしか使われていませんのでセグメント長は以下のサイズが一般的です。
テーブル1個=0x0043、テーブル2個=0x0084、テーブル3個=0x00C5、テーブル4個=0x0106
XXXXXXXX QTn-[m] 量子化テーブル番号異常 XXXXXXXX=量子化テーブル開始位置 n=量子化テーブル番号 m=量子化テーブルエレメント精度

量子化テーブル番号に指定出来るのは0から3までで、それ以外のものはエラーになります。
エレメント精度に指定出来るのは0(8bit)と1(16bit)だけで、それ以外のものはエラーになります。
エレメント精度は量子化テーブルのサイズに関わってきます。
この異常が検出されると以降の量子化テーブルの解析を止めて、次のセグメントの解析に移ります。
DHT ▲ セグメント長異常 [xxxx] xxxx=内部要素より割り出したセグメント長

DHTレングス長はDHTセグメント内の要素で割り出せます。
計算値以外のレングス長の場合エラーとします。
DHTの誤検出、DHTの破損、偽装が考えられます。
XXXXXXXX HTn-[m] ハフマンテーブル番号異常
XXXXXXXX=ハフマンテーブル開始位置 n=ハフマンテーブル番号 m=ハフマンテーブルクラス

ハフマンテーブル番号はDC、AC共0から3まで、テーブルクラスは0と1(0=DC,1=AC)のみです。
それ以外はエラーになります。
DRI ▲ セグメント長異常 [xxxx] xxxx=セグメント長
DRIはレングス長0x0004固定です。それ以外ならエラーになります。
DRIの誤検出、マーカ偽装が考えられます。
▲ 不要DRI 無意味なDRIです。DRIで指定のMCU数が0の時発生します。
画像が見れる場合、DRIを削除してもかまいません。
DNL ▲ セグメント長異常 [xxxx] DNLはレングス長0x0004固定です。それ以外ならエラーになります。
DRIの誤検出、マーカ偽装が考えられます。
SOF ▲ セグメント長異常 セグメントに記録してある画像成分数でSOFセグメントの長さが判ります。
セグメント長と この計算値が異なるとエラーとして表示し、セグメント内のデータ表示を止めます。
多くはSOFマーカ誤検出によるものです。
▲ サンプリングファクター異常 サンプリングファクタは1から4までです。それ以外の数値を検出するとエラーになります。
破損かマーカ誤検出の可能性が有ります。
▲ 量子化テーブル番号異常 QT4以上のQuantization Tableを参照している場合このエラーを表示します。
破損かマーカ誤検出の可能性が有ります。
SOS ▲ DCT係数異常 0〜63以外のDCT係数を指定している場合このエラーを表示します。
▲ ハフマンテーブル番号異常 HT4以上のハフマンテーブル番号を参照している場合このエラーを表示します。
▲ 未定義コンポーネントID n n=コンポーネントID番号

SOFで定義されていないコンポーネントIDを検出した場合エラーになります。







▲ RSTn 順序異常 (未検出RSTm aaaaaaaa-bbbbbbbb) RSTn=検出RST RSTm=欠落RST(複数の場合あり) aaaaaaaa-bbbbbbbb=欠落範囲

イメージデータ内のRSTはRST0から始まり次はRST1と出現するマーカが1づつ増えます。
RST7まで行くと次はRST0になります。RSTはこうして大きな単位でのデータ抜けの検出が出来ます。
このRSTの出現順序が違うと、このエラー表示になります。
イメージデータの部分欠落時に表示されます。

▲ RST 順序異常 (未検出RSTm aaaaaaaa-bbbbbbbb) RSTm=欠落RST(複数の場合あり) aaaaaaaa-bbbbbbbb=欠落範囲

最後にRSTを検出してからEOIまたは他のセグメントを検出するまでに、必要なRSTが検出されなかった場合に表示

上のエラーは後続のRSTで検知、このエラーはEOIで検知
▲ RST 順序異常 (未検出RST mmm件 aaaaaaaa-bbbbbbbb) mmm=欠落RST数 aaaaaaaa-bbbbbbbb=欠落範囲

最後にRSTを検出してからEOIまたは他のセグメントを検出するまでに、
8つ以上の必要なRSTが検出されなかった場合に表示

▲ イメージ残存率 nn% - xxx:yyy 不足RST = mm nn=イメージデータの残存率 xxx=検出したRST数 yyy=予想RST数 mm=欠落RST数 pp=余分なRST数

RST数をDRIとSOFセグメントの要素から求め、実際のマーカ数との比率を出しています。
イメージデータにリスタートインターバル入れる処理がされているファイルのみ表示可能。
イメージデータの部分欠落時に表示され、100%(RSTマーカ欠落なし)なら表示されません。
MCUを数えている訳ではないので、大雑把な数です。欠落度合いの目安にしてください。
▲ イメージ残存率 nn% - xxx:yyy 過剰RST = pp
▲ RST未検出 (データの殆どが失われたかDRIが不要です) RSTが検出されなかった場合に表示
イメージの殆どを失っているか不要なDRIが有ります
▲ RSTnを検出. DRIが無いかマーカ誤検出 RSTn=検出したRST番号

DRIが無いのにRSTを検出した場合に表示
DRIが無くなっているか間違ったRSTが記録されています
8個以上検出するとリストが一杯になる可能性があるので、このエラーは出力しなくなります。
▲ DRIの定義数を確認して下さい MCU = mmm mmm=画像全体のMCU数

画像全体のMCU数よりDRIで定義されているMCU数が多い時に表示します。
この場合DRIは不要です。
------以下のエラーはRST修復補助の設定によりRST Sequence Errorに追加されるメッセージです
Pick RSTn aaaaaaaa-dddd bbbbbbbb-eeee cccccccc-ffff n=検索RST番号 aaaaaaaa,bbbbbbbb,cccccccc=被疑RSTアドレス dddd,eeee,ffff=被疑RSTマーカ

RST候補検索を行った時の被疑RSTのアドレスと内容
左aaaaaaaaが若番で、リストのアドレスも同じものが入る
Masked RSTn Found (dddd) n=検索RST番号 dddd=被疑RSTマーカ

マスク指定検索を行った時の被疑RSTの内容、アドレスはリスト左列のアドレス
Lost RSTn Possition HHHH x VVVV n=欠落RST番号 HHHH=水平座標 VVVV=垂直座標

欠落RST座標表示を有効にし、欠落RSTを検出した場合に表示


▲ データー不足 n bytes <セグメント名> 前セグメント領域内で、次のセグメントヘッダーを見つけた場合に検出します。
前セグメントのデータ欠落が考えられます。
<=== 不明な領域 n bytes どのセグメントにも属さない領域にデータが有ります。
誤検出や偽装、他形式ファイルの場合が考えられます。
まれに0xFFの連続データがJPEGファイルに記録される場合があり、正常に読めるものも有ります。