カテゴリー
C++ DICOM-XA プログラミング (Programming)

JPEGハフマン・テーブル – 解読実践(9)

大事なデータを忘れていました。最終的に対応するハフマン符号が意味するのは、その後に続く、つまり緑の部分でした この部分は、ハフマン符号語に続く何ビットがデータを表しているかを示します この部分も配列に入れる必要がありますね そこで追加です

int * HUFFVAL = new int[sum];

うん? 待てよ ということになると動的に確保する三つの配列 つまり HUFFBITS, HUFFCODE, HUFFVALは同じインデックス同志が意味を有する、ということになりますね、だとすれば、これら三つで意味を有するので構造体として一つにまとめる方が論理的に分かりやすいですよね、そこで構造体を定義します さらには、その構造体にインデックス最大値を保持する変数も含めることにしましょう またこれまではハフマン符号語長を保持する配列 HUFFBITSをバイトで確保していましたが、これは最大 16bitsあるのでintにせねばなりませんでした そこで

struct HUFFDECODE {
  int numHuffElement;  // ハフマン符号語の総数
  int * HUFFBITS;   // ハフマン符号語長
  int * HUFFCODE;   // ハフマン符号
  int * HUFFVAL;    // ハフマン符号が表すデータ
}

このような構造体を定義しました ふーっ、道は遠い

そうそう昨日は京都で夜講演があり、久しぶりに京都の町に繰り出しました。とても暑く、また一昨日は大文字送り火だったので、ものすごい混雑でした。

作成者: (KAMAKURA & SAPPORO)Dr_Radialist

Expert Interventional Cardiologist and Amateur Computer Programmer.

Winner for Master Clinical Operator Award in TCT 2019.
Winner for Ethica Award in EuroPCR 2015.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です