JPEGCrush
概要
JPEGグリッチエフェクトのアニメーション効果スクリプト
詳細説明
JPEGCrush for AviUtl ExEdit2 v1.1.0
AviUtl ExEdit2 向けのアニメーション効果スクリプトです。
オブジェクトのピクセルデータを意図的に壊れたJPEGとしてエンコード・デコードし、グリッチを生成します。
インストール
JPEGCrush.mod2 と JPEGCrush.anm2 を AviUtl ExEdit2 の script フォルダ(またはそのサブフォルダ)に配置してください。
パラメータ解説
圧縮品質
| パラメータ | 範囲 | デフォルト | 説明 |
|---|---|---|---|
| 圧縮品質 | 1〜100 | 50 | JPEG エンコード時の品質。低いほど強い圧縮アーティファクトが現れる。 |
バイナリ破壊
エンコードされた JPEG バイナリのエントロピーコード部分(SOS マーカー以降、EOI マーカー直前まで)に対して破壊を行います。
| パラメータ | 範囲 | デフォルト | 説明 |
|---|---|---|---|
| バイナリ破壊 (チェック) | ON/OFF | OFF | このグループの処理を有効にする。 |
| 破壊バイト数 | 0〜1000 | 10 | ランダムに選択して書き換えるバイトの数。対象範囲のバイト数を超える値を指定した場合、対象範囲のバイト数が上限になる。 |
| 範囲開始(%) | 0〜100 | 0 | 破壊対象とするエントロピーデータの開始位置(全体に対するパーセント)。 |
| 範囲終了(%) | 0〜100 | 100 | 破壊対象とするエントロピーデータの終了位置(全体に対するパーセント)。 |
| シード | 0〜65535 | 0 | 乱数シード。同じシードは常に同じ結果を生成する。 |
| 破壊モード | ランダム値置換 / 固定値置換 | ランダム値置換 | 書き換え後のバイト値の決定方法。 |
| ランダム最小値 | 0〜255 | 0 | 破壊モード「ランダム値置換」のとき有効。書き換えられる値の下限。 |
| ランダム最大値 | 0〜255 | 255 | 破壊モード「ランダム値置換」のとき有効。書き換えられる値の上限。 |
| 固定値 | 0〜255 | 0 | 破壊モード「固定値置換」のとき有効。すべての破壊バイトをこの値に置換する。 |
量子化テーブル改ざん(輝度)
JPEG エンコード時に輝度(Y)成分の量子化テーブル(64要素)を改ざんします。
量子化値を大きくすると対応する周波数成分の情報が荒くなり、独特のブロックノイズが発生します。
「単一改ざん」と「ランダム改ざん」を個別に ON/OFF 可能です。両方が有効な場合、ランダム改ざんが先に適用され、その後に単一指定(テーブル位置 / 上書き値)が上書きされます。
| パラメータ | 範囲 | デフォルト | 説明 |
|---|---|---|---|
| 輝度テーブル改ざん (チェック) | ON/OFF | OFF | このグループの処理を有効にする。 |
| 単一改ざん有効 | ON/OFF | OFF | 単一指定(テーブル位置 / 上書き値)を有効にする。 |
| テーブル位置 | 0〜63 | 0 | 単一指定で上書きするテーブルのインデックス。 |
| 上書き値 | 1〜255 | 1 | 単一指定で書き込む量子化値。 |
| ランダム改ざん有効 | ON/OFF | OFF | ランダム改ざん処理を有効にする。 |
| 改ざん個数 | 0〜1000 | 0 | ランダムに選択した位置へランダム値を書き込む回数。同じ位置に複数回書き込む場合あり。 |
| ランダム最小値 | 1〜255 | 1 | ランダム改ざん時の量子化値の下限。 |
| ランダム最大値 | 1〜255 | 255 | ランダム改ざん時の量子化値の上限。 |
| ランダム開始位置 | 0〜63 | 0 | ランダム改ざんの対象インデックスの下限。 |
| ランダム終了位置 | 0〜63 | 63 | ランダム改ざんの対象インデックスの上限。 |
| シード | 0〜65535 | 0 | ランダム改ざんの乱数シード。 |
量子化テーブル改ざん(色差)
色差(Cb/Cr)成分の量子化テーブルを改ざんします。パラメータの意味・挙動は輝度グループと同一です。
| パラメータ | 範囲 | デフォルト |
|---|---|---|
| 色差テーブル改ざん (チェック) | ON/OFF | OFF |
| 単一改ざん有効 | ON/OFF | OFF |
| テーブル位置 | 0〜63 | 0 |
| 上書き値 | 1〜255 | 1 |
| ランダム改ざん有効 | ON/OFF | OFF |
| 改ざん個数 | 0〜1000 | 0 |
| ランダム最小値 | 1〜255 | 1 |
| ランダム最大値 | 1〜255 | 255 |
| ランダム開始位置 | 0〜63 | 0 |
| ランダム終了位置 | 0〜63 | 63 |
| シード | 0〜65535 | 0 |
デコードバイパス
JPEG デコード処理の内部ステップを意図的に省略し、通常とは異なる中間状態をピクセルとして出力します。
3つのチェックを組み合わせることで挙動が変化します。
| パラメータ | デフォルト | 説明 |
|---|---|---|
| 周波数成分スキップ | OFF | 逆DCT(IDCT)をスキップする。 |
| 色変換スキップ | OFF | YCbCr→RGB への色変換をスキップし、Y/Cb/Cr の値をそのまま R/G/B として出力する。 |
| 量子化スキップ | OFF | 逆量子化をスキップする。 |
アルファチャンネル設定
| パラメータ | デフォルト | 説明 |
|---|---|---|
| アルファ保持 | ON | ON のとき、エフェクト適用後に元のアルファ値を復元する。OFF のとき、出力のアルファ値をすべて 255(完全不透明)に固定する。 |
| アルファ破壊 | ON | ON かつ「アルファ保持」が ON のとき、アルファチャンネルに対してもバイナリ破壊と同じパラメータでグリッチ処理を行う。アルファ値をグレースケール画像として JPEG エンコード→破壊→デコードする。 |
注意: 「アルファ破壊」は「アルファ保持」が ON のときのみ動作します。「アルファ保持」が OFF の場合、アルファは常に 255 で上書きされるため「アルファ破壊」は無効です。
リスタートマーカー設定
JPEG にリスタートマーカー(RSTn)を挿入します。
リスタートマーカーがあると、バイナリ破壊によるエラーの伝播がマーカー単位でリセットされるため、グリッチが画面全体に広がらず局所的になりやすくなります。
| パラメータ | 範囲 | デフォルト | 説明 |
|---|---|---|---|
| リスタートマーカー有効 (チェック) | ON/OFF | OFF | リスタートマーカーの挿入を有効にする。 |
| リスタート間隔 | 1〜64 | 8 | 何 MCU 行ごとにリスタートマーカーを挿入するか。値が小さいほどマーカーが密になりグリッチが局所化される。 |
PI テーブルによる外部制御
その他 グループの PI 値を利用することで、スクリプト制御(アニメーション等)からパラメータを動的に上書きできます。
PI テーブルに設定したキーはスライダーの値より優先されます。
-- 例: スクリプト制御からシードをフレーム番号で変化させる
PI = { seed = obj.frame }
ライセンス・クレジット
- 本ソフトウェアは libjpeg-turbo を使用しています。