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