前回、DCT(離散コサイン変換)演算を行列積演算で計算できることと、 その処理のための二つの8x8行列の内容を示したが、 その行列は小数点以下にズラ~ッと数字が並ぶ物であった。 これをまんま使って浮動小数点演算で処理するというのは 全くナシとは言わないが、積極的にアリというものでもないだろう。 大量のデータを演算処理することを考えれば、 やはり浮動小数点演算は時間的に不利だ。 本プログラムの数値演算仕様としては整数演算を採用したい。 . . . 本文を読む
今度はどう実現するかの検討として、まずDCT(離散コサイン変換)を考えてみる。 DCT(離散コサイン変換)をどんな手順で計算するかがテーマだが、 どんな数値形式でどれほどの数値精度を採用するかも重要な問題である。 . . . 本文を読む
前回ヘッダを修正する関数Adj_Headを作ってみて 「そう言えば、Jpeg保存dllを呼び出す時の引数の仕様を決めてない」 と気が付いた。 で、今回は引数の仕様を明確にすると共に、 与えられた引数の妥当性をチェックするファンクションを作ろう。 . . . 本文を読む
Jpegヘッダの雛形は前回完成した。モチロン雛形に過ぎないので、コレを使うには実際の画像に合わせて記述の一部を変更しなければならない。具体的には・輝度・色差双方の量子化係数テーブルを指定されたQ値でスケーリング・タテ・ヨコの画像ピクセル数・リスタートマーカの挿入インターバルブロック数を修正するファンクションのコードを作る。 . . . 本文を読む
GIMPで作った4:4:4Jpegから抜き出したヘッダはこのままではバイナリなので これを配列の初期値としてソースコードに記述し、ヘッダの雛形とするため テキストデータに変換するExcel VBAプログラムを作る。 . . . 本文を読む
.netを普通に使ってJpeg保存する場合、 品質指定をしても変化するのは量子化係数だけで サブサンプリングは4:2:0固定で色差間引きされるため色にじみが避けられず、 解像感がイマイチである。 そこで、当ブログでは一念発起し、 色差間引き無しのサブサンプリング4:4:4でJpeg保存するdllを Cで作ることにした。 . . . 本文を読む