あらためて英和辞典を引いて見てオドロいた。 zigzag ジグザグ[Z字, 稲妻]形(のもの) walk in zigzag ジグザグに歩く 知らなかった。ジグザグって外来語なんだ… (擬態語のたぐいかと思っていた) ソレはさておき、Zigzag Scanなのである。 . . . 本文を読む
気が付いてみたら・・・ この前、DCT(離散コサイン変換)の変換行列を作ったり その際に32bit整数演算で精度を確保するためのカサ上げ量も決めたが、 実際のDCT処理のコードを作っていなかった。 (ToT) 前回RGB⇒YCbCr変換が完成したので、 実際、それに引き続く処理でもあるので 今回はDCT処理のコードを完成させよう。 . . . 本文を読む
前回のDCT(離散コサイン変換)の検討の段階で既に触れたので、ここでRGB⇒YCbCr変換処理のファンクションを作ってしまおう。ここでちょっと考えなければならないのはデータストライド幅の算出と、元々のRGB画像のサイズが8x8のブロック境界に合わない場合の対処法だ。 . . . 本文を読む
DCTを行列演算で処理する方針や、 RGB→YCbCr変換式の方針は決まったが、 32bit整数演算するためにこれらの数値に掛けてカサ上げする 「何らかの値」の最適値を見積もろう。 . . . 本文を読む
前回、DCT(離散コサイン変換)演算を行列積演算で計算できることと、 その処理のための二つの8x8行列の内容を示したが、 その行列は小数点以下にズラ~ッと数字が並ぶ物であった。 これをまんま使って浮動小数点演算で処理するというのは 全くナシとは言わないが、積極的にアリというものでもないだろう。 大量のデータを演算処理することを考えれば、 やはり浮動小数点演算は時間的に不利だ。 本プログラムの数値演算仕様としては整数演算を採用したい。 . . . 本文を読む
今度はどう実現するかの検討として、まずDCT(離散コサイン変換)を考えてみる。 DCT(離散コサイン変換)をどんな手順で計算するかがテーマだが、 どんな数値形式でどれほどの数値精度を採用するかも重要な問題である。 . . . 本文を読む
前回ヘッダを修正する関数Adj_Headを作ってみて 「そう言えば、Jpeg保存dllを呼び出す時の引数の仕様を決めてない」 と気が付いた。 で、今回は引数の仕様を明確にすると共に、 与えられた引数の妥当性をチェックするファンクションを作ろう。 . . . 本文を読む
Jpegヘッダの雛形は前回完成した。モチロン雛形に過ぎないので、コレを使うには実際の画像に合わせて記述の一部を変更しなければならない。具体的には・輝度・色差双方の量子化係数テーブルを指定されたQ値でスケーリング・タテ・ヨコの画像ピクセル数・リスタートマーカの挿入インターバルブロック数を修正するファンクションのコードを作る。 . . . 本文を読む
GIMPで作った4:4:4Jpegから抜き出したヘッダはこのままではバイナリなので これを配列の初期値としてソースコードに記述し、ヘッダの雛形とするため テキストデータに変換するExcel VBAプログラムを作る。 . . . 本文を読む