Skip to main content

Module h265

Module h265 

Source
Expand description

The HEVC arm: the sequence, picture, and slice parameters, the packed VPS, SPS, PPS, and slice headers, and the reference picture set behind them. Main profile, Main 10 at 10 bits, or the range extensions’ Main 4:4:4 and Main 4:4:4 10 for a 4:4:4 session, with the coding tools and block sizes the driver reports, one reference per slice, and a decoded picture buffer of the frames the level admits: every slice header carries an explicit short-term reference picture set naming the frames the decoder keeps, with the newest one the client still has as the one used. Where the driver says a predicted slice has to carry both reference lists (VA_PREDICTION_DIRECTION_BI_NOT_EMPTY, Intel’s low-power encoder), a predicted frame is a B slice whose two lists name that same frame, which codes what a P slice would: such an encoder fails a P slice on some generations and takes it on others.

Structs§

Arm 🔒
Tools 🔒
The coding tools and block sizes a session runs with: what the driver reports, or the defaults of Arm::new where it reports none.

Constants§

INTEL_LOW_POWER_MIN_QP 🔒
The finest quantizer Intel’s low-power HEVC encoder codes: the driver clips the slice’s to 10..51 when it programs VDENC and looks its rate tables up from 10, and its rate control floors its own minimum at 10. A slice naming a finer one is coded at this one regardless, so the decoder dequantizes it too fine and the picture comes out washed out, the more so the finer the slice names (31 dB at 9 and 16 dB at 2 against 59 dB at 10, Arc A750).
LOG2_MAX_POC_LSB_MINUS4 🔒
PIC_INIT_QP_CBR 🔒
The quantizer the PPS names for a constant-rate session, and the base of every slice’s delta.
PIC_INIT_QP_CQP 🔒

Functions§

centered_qp 🔒
The quantizer a constant-rate slice names where the rate control codes its own in every coding unit as a delta from the slice’s (Intel’s full encoder): the middle of the range at bit_depth, from which a delta within the syntax’s -(26 + QpBdOffsetY / 2) to 25 + QpBdOffsetY / 2 reaches every quantizer. From 30, a unit the rate control takes under 4 codes a delta past that range, which a strict decoder refuses and a lenient one decodes as garbage.