Content deleted Content added
Artoria2e5 (talk | contribs) I love having the spec pdf |
Artoria2e5 (talk | contribs) m →Algorithm: oof |
||
Line 26:
* Each luma component is coded separately using three independent substreams (four substreams in native 4:2:2 mode). Prediction step is performed using one of the three modes: modified median adaptive coding (MMAP) algorithm similar to the one used by [[JPEG-LS]], block prediction (optional for decoders due to high computational complexity, negotiated at DSC handshake), and midpoint prediction.
* Bit rate control algorithm tracks color flatness and buffer fullness to adjust the quantization bit depth for a pixel group in a way that minimizes compression artifacts while staying within the bitrate limits.
** DSC can work in constant or variable bitrate mode. The minimum allowed bits-per-pixel (BPP) is 6 bit/px;<ref name="dsc12a"/>{{rp|52}} the typical BPP given on VESA's website is 8 bit/px.<ref name="VESA Codecs"/> The variable-bitrate is actually a way to temporarily disable the display link;<ref name="dsc12a"/>{{rp|125}} it only adds the possiblity of choosing 0 bit/px.<ref name="dsc12a"/>{{rp|41}}
* Repeating recent pixels can be stored in 32-entry Indexed Color History (ICH) buffer, which can be referenced directly by each group in a slice; this improves compression quality of computer-generated images. Alternatively, prediction residuals are computed and encoded with [[entropy coding]] algorithm based on delta size unit-variable length coding (DSU-VLC).
* Encoded pixel groups are then combined into slices of various height and width; common combinations include 100% or 25% picture width, and 8-, 32-, or 108-line height.
|