class PipeScalerHorizontalInitialPhase

Defined at line 718 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

PS_HPHASE (Pipe Scaler Horizontal Phase)

Programs the scaler's horizontal filtering initial phase.

The phase sample position must be adjusted for YUV 420 to YUV 444 upscaling

so that the chroma sample position lands in the right spot. Note that this

should not be set for HDR planes where Pipe Scaler doesn't upscale the

chroma.

The initial phase within the -0.5 to 1.5 range is supported.

The phases are programmed as follows in the following YUV upscaling

scenarios:

YUV 420 Chroma Siting

Top Left: Horizontal Phase = 0.25

Bottom Right (MPEG-1): Horizontal Phase = -0.25

Bottom Center (MPEG-2): Horizontal Phase = 0

Tiger Lake: IHD-OS-TGL-Vol 2c-1.22-Rev 2.0 Part 2, Pages 1006-1007

Kaby Lake: IHD-OS-KBL-Vol 2c-1.17 Part 2, Pages 653-654

Public Members

 field_y_initial_phase_int_733
 field_y_initial_phase_fraction_746
 field_y_initial_phase_trip_enabled_758
 field_uv_initial_phase_int_795
 field_uv_initial_phase_fraction_803
 field_uv_initial_phase_trip_enabled_810
static const uint32_t kBaseAddr

Public Methods

template <, >
SelfType & set_y_initial_phase_int (typename SelfType::ValueType val)

This specifies the integer part of the initial phase of the Y semiplane

filter.

y_initial_phase_int = int(initial_phase) if initial_phase >= 0

= 0 if initial_phase

<

0

A helper method `SetYInitialPhase()` should be used to set the value of

this field.

This field is ignored for non-YUV420 pixel formats.

Defined at line 733 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
typename SelfType::ValueType y_initial_phase_int ()

This specifies the integer part of the initial phase of the Y semiplane

filter.

y_initial_phase_int = int(initial_phase) if initial_phase >= 0

= 0 if initial_phase

<

0

A helper method `SetYInitialPhase()` should be used to set the value of

this field.

This field is ignored for non-YUV420 pixel formats.

Defined at line 733 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
SelfType & set_y_initial_phase_fraction (typename SelfType::ValueType val)

This specifies the most significant 13 bits of the fractional part of the

initial phase of the Y semiplane filter.

y_initial_phase_fraction

= int(initial_phase - int(initial_phase)) * 2 ^ 13 if initial_phase >= 0

= int((1 - abs(initial_phase)) * 2 ^ 13) if initial_phase

<

0

A helper method `SetYInitialPhase()` should be used to set the value of

this field.

This field is ignored for non-YUV420 pixel formats.

Defined at line 746 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
typename SelfType::ValueType y_initial_phase_fraction ()

This specifies the most significant 13 bits of the fractional part of the

initial phase of the Y semiplane filter.

y_initial_phase_fraction

= int(initial_phase - int(initial_phase)) * 2 ^ 13 if initial_phase >= 0

= int((1 - abs(initial_phase)) * 2 ^ 13) if initial_phase

<

0

A helper method `SetYInitialPhase()` should be used to set the value of

this field.

This field is ignored for non-YUV420 pixel formats.

Defined at line 746 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
SelfType & set_y_initial_phase_trip_enabled (typename SelfType::ValueType val)

Specifies whether the initial trip of the Y semiplane horizontal filtering

may occur.

y_initial_phase_trip_enabled = true if initial_phase >= 0

= false if initial_phase

<

0

A helper method `SetYInitialPhase()` should be used to set the value of

this field.

This field is ignored for non-YUV420 pixel formats.

Defined at line 758 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
typename SelfType::ValueType y_initial_phase_trip_enabled ()

Specifies whether the initial trip of the Y semiplane horizontal filtering

may occur.

y_initial_phase_trip_enabled = true if initial_phase >= 0

= false if initial_phase

<

0

A helper method `SetYInitialPhase()` should be used to set the value of

this field.

This field is ignored for non-YUV420 pixel formats.

Defined at line 758 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

PipeScalerHorizontalInitialPhase & SetYInitialPhase (float initial_phase)

A helper method that sets the value of initial phases of the Y semiplane.

`initial_phase` must be a finite float number between [-0.5, 1.5].

Only the most significant 13 bits of the fractional part are used to set

the bitfields, and the software should be aware of the possible precision

loss.

Defined at line 767 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
SelfType & set_uv_initial_phase_int (typename SelfType::ValueType val)

This specifies the integer part of the initial phase of the UV semiplane

(for YUV420) or RGB filter.

uv_initial_phase_int = int(initial_phase) if initial_phase >= 0

= 0 if initial_phase

<

0

Defined at line 795 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
typename SelfType::ValueType uv_initial_phase_int ()

This specifies the integer part of the initial phase of the UV semiplane

(for YUV420) or RGB filter.

uv_initial_phase_int = int(initial_phase) if initial_phase >= 0

= 0 if initial_phase

<

0

Defined at line 795 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
SelfType & set_uv_initial_phase_fraction (typename SelfType::ValueType val)

This specifies the most significant 13 bits of the fractional part of the

initial phase of the UV semiplane (for YUV420) or RGB filter.

uv_initial_phase_fraction

= int(initial_phase - int(initial_phase)) * 2 ^ 13 if initial_phase >= 0

= int(1 - abs(initial_phase)) * 2 ^ 13 if initial_phase

<

0

Defined at line 803 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
typename SelfType::ValueType uv_initial_phase_fraction ()

This specifies the most significant 13 bits of the fractional part of the

initial phase of the UV semiplane (for YUV420) or RGB filter.

uv_initial_phase_fraction

= int(initial_phase - int(initial_phase)) * 2 ^ 13 if initial_phase >= 0

= int(1 - abs(initial_phase)) * 2 ^ 13 if initial_phase

<

0

Defined at line 803 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
SelfType & set_uv_initial_phase_trip_enabled (typename SelfType::ValueType val)

Specifies whether the initial trip of the UV semiplane (for YUV420) or

RGB horizontal filtering may occur.

y_initial_phase_trip_enabled = true if initial_phase >= 0

= false if initial_phase

<

0

Defined at line 810 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
typename SelfType::ValueType uv_initial_phase_trip_enabled ()

Specifies whether the initial trip of the UV semiplane (for YUV420) or

RGB horizontal filtering may occur.

y_initial_phase_trip_enabled = true if initial_phase >= 0

= false if initial_phase

<

0

Defined at line 810 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

PipeScalerHorizontalInitialPhase & SetUvInitialPhase (float initial_phase)

A helper method that sets the value of initial phases of the UV semiplane

(for YUV420) or RGB.

`initial_phase` must be a finite float number between [-0.5, 1.5].

Only the most significant 13 bits of the fractional part are used to set

the bitfields, and the software should be aware of the possible precision

loss.

Defined at line 820 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

Records