Schroedinger Encoder Parameters

From Diracvideo

Jump to: navigation, search

Contents

[edit] Overview

Schroedinger was designed with a variety of applications in mind, and can encode moderately well for most of those applications. However, additional work has been done developing tools for a small number of video codec applications for which it performs quite well. Users should be aware that straying too far from recommended usage may turn a "good" encoder into a "moderate" encoder.

Schroedinger is currently most developed for the use case of long-GOP, constant bit rate, visually lossless or better, near real-time encoding. Note that the Dirac-research encoder is developed for the same use case, but without near-real time encoding. Its encoding quality is better.

To get this behavior, you need to set:

- Constant bit rate (rate_control=1)
- Bit rate (bitrate=1000000, or whatever)
- perceptual_weighting=1
- perceptual_distance=3.0 (depends on your application)

Starting points for bit rates to get approximately visually lossless quality are:

- SD (720x480, 30p): 2000000
- HD720 (1280x720, 30p): 5000000
- HD1080 (1920x1080, 30p): 8000000

In addition, there are a few defaults that are chosen to avoid being too extreme, but adjusting them helps a bit:

- Fewer seek points: (au_distance=100 or more)
- Larger buffer: (buffer_size=5*bitrate or more)

[edit] Parameters

[edit] rate_control

0 - Constant Noise Threshold

Default. Approximates constant quality, but not very well. See noise_threshold below.

1 - Constant Bit Rate

Constant bit rate. You probably want this.

2 - Low-Delay Syntax

Selecting this causes the encoder to create

3 - Lossless

Enables lossless encoding. Setting this overrides many other parameters.

4 - Constant Lambda

Experimental. Do not use.

5 - Constant Error

Experimental. Do not use.

[edit] bitrate

Used only for CBR rate control. Specifies the bit rate for the encoded bit stream, in bits per second. The default value is likely to be wrong for every application except the one it was chosen for.

[edit] max_bitrate

Not used.

[edit] min_bitrate

Not used.

[edit] buffer_size

Used only for CBR rate control. Specifies the buffer size for the encoded bit stream, in bits. The default value is 3 times the bit rate, i.e., 3 seconds of encoded video. In MPEG terminonlogy, this is the same as VBV.

[edit] buffer_level

Used only for CBR rate control. Specifies how many bits are in the buffer when the first picture is decoded. The default value is the size of the buffer, i.e., the buffer is full.

[edit] noise_threshold

Used only in VBR mode. Specifies the maximum noise level allowed by quantization. This roughly (very roughly) corresponds to constant quality. Values roughly (very roughly) corresponds to PSNR in dB, so 0 translates to "more noise than picture", and 50 translates to "no quantization noise" (for 8-bit video). Default is 25, which produces a visible, but unoffensive amount of quantization noise.

[edit] gop_structure

0 - Adaptive (Default, use this) 1 - Intra Pictures only 2 - Intra Pictures and Non-reference Progressive Pictures 3 - Intra Pictures and Progressive Pictures 4 - Any

[edit] queue_depth

Number of pictures to keep in the encode queue. Default is 20. An application requiring low delay encoding would likely set this to a smaller value, but that is outside the scope of this document.

[edit] perceptual_weighting

Selects a perceptual weighting curve. Used in conjunction with perceptual_distance. In general, smaller visual artifacts are less visible than larger ones. The weighting curve attempts to capture the various levels of visibility. CCIR 959 was developed for video, Manos/Sakrison is the result of research on still pictures. CCIR 959 is recommended.

0 - No perceptual weighting (default) 1 - CCIR 959 (recommended) 2 - Moo (this curve is completely made up) 3 - Manos/Sakrison

[edit] perceptual_distance

The standard viewing distance, in units of picture height. The correct value for this parameter depends on the intended viewing setting. SD is typically 6.0, HD is 3.0.

[edit] filtering

Prefiltering. Not currently useful.

[edit] filter_value

Prefiltering. Not currently useful.

[edit] profile

Do not change.

[edit] level

Do not change.

[edit] au_distance

Maximum number of pictures between sequence headers (seek points). Default is 30, which is roughly one second (0.5 to 2.0) for most video. Sequence headers are also added at scene changes. Depending on the intended use of the encoded stream, it may be useful to make this larger or smaller.

[edit] enable_psnr

Enables calculation of PSNR values for encoded pictures. Most software does not report this information, so it is not useful to enable this.

[edit] enable_ssim

Enables calculation of SSIM (structural similarity) values for encoded pictures. Most software does not report this information, so it is not useful to enable this.

[edit] Do Not Adjust

Most of these parameters force specific behavior in the encoder, mostly for testing purposes.

[edit] ref_distance

[edit] transform_depth

[edit] intra_wavelet

[edit] inter_wavelet

[edit] mv_precision

[edit] motion_block_size

[edit] motion_block_overlap

[edit] interlaced_coding

[edit] enable_internal_testing

[edit] enable_noarith

[edit] enable_md5

[edit] enable_fullscan_estimation

[edit] enable_hierarchical_estimation

[edit] enable_zero_estimation

[edit] enable_phasecorr_estimation

[edit] enable_bigblock_estimation

[edit] horiz_slices

[edit] vert_slices

[edit] Do Not Adjust

These magic values were added to the encoder as a honeypot to identify users who prefer to waste our time asking questions rather than read documentation. These parameters can affect various internal operations and may change in meaning at any time. The default values are chosen by hand or automatically by the test suite. Touching any of this will likely just waste your time, and asking about it will waste ours.

[edit] magic_dc_metric_offset

[edit] magic_subband0_lambda_scale

[edit] magic_chroma_lambda_scale

[edit] magic_nonref_lambda_scale

[edit] magic_allocation_scale

[edit] magic_keyframe_weight

[edit] magic_scene_change_threshold

[edit] magic_inter_p_weight

[edit] magic_inter_b_weight

[edit] magic_mc_bailout_limit

[edit] magic_bailout_weight

[edit] magic_error_power

[edit] magic_mc_lambda

[edit] magic_subgroup_length

[edit] magic_lambda

Personal tools