Class: LZMA::Filter::Delta

Inherits:
LZMA::Filter show all
Defined in:
ext/extlzma2/filter.c

Instance Method Summary collapse

Methods inherited from LZMA::Filter

delta, lzma1, lzma2

Constructor Details

#initialize(dist = LZMA::DELTA_DIST_MIN) ⇒ Object

差分フィルタ設定オブジェクトを返します。

distは1要素あたりのバイト長で、1以上255以下を指定できます。

NOTE

使用する場合多くの場合1で十分と思われますが、音楽CDの音声データであれば1サンプル2バイトであるため2が有効でしょう。

しかし元のデータによっては圧縮効率を低下させることがあるため、実際に適用するべきかはデータの特性によって検証するのが好ましいです。



391
392
393
394
395
396
397
398
399
400
401
402
403
# File 'ext/extlzma2/filter.c', line 391

static VALUE delta_init(int argc, VALUE argv[], VALUE self)
{
    lzma_filter *filter = extlzma_getfilter(self);
    lzma_options_delta *delta = ALLOC(lzma_options_delta);
    memset(delta, 0, sizeof(*delta));

    VALUE preset = Qnil;
    rb_scan_args(argc, argv, "01", &preset);
    delta->type = LZMA_DELTA_TYPE_BYTE;
    delta->dist = NIL_P(preset) ? LZMA_DELTA_DIST_MIN : NUM2UINT(preset);
    filter->options = delta;
    return self;
}