class PipeScalerVerticalInitialPhase
Defined at line 869 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h
PS_VPHASE (Pipe Scaler Vertical Phase)
Programs the scaler's vertical 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 register only works in Progressive Fetch - Progressive Display (PF-PD)
mode and will be ignored in Progressive Fetch - Interlaced Display (PF-ID)
mode.
The phases are programmed as follows in the following YUV upscaling
scenarios:
YUV 420 Chroma Siting
Top Left: Vertical Phase = 0.25
Bottom Right (MPEG-1): Vertical Phase = -0.25
Bottom Center (MPEG-2): Vertical Phase = 0
Tiger Lake: IHD-OS-TGL-Vol 2c-1.22-Rev 2.0 Part 2, Pages 1016-1018
Kaby Lake: IHD-OS-KBL-Vol 2c-1.17 Part 2, Pages 659-661
Public Members
field_y_initial_phase_int_884
field_y_initial_phase_fraction_897
field_y_initial_phase_trip_enabled_909
field_uv_initial_phase_int_946
field_uv_initial_phase_fraction_954
field_uv_initial_phase_trip_enabled_961
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 884 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 884 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 897 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 897 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 vertical 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 909 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 vertical 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 909 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h
PipeScalerVerticalInitialPhase & 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 918 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 946 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 946 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 - fabs(initial_phase)) * 2 ^ 13 if initial_phase
<
0
Defined at line 954 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 - fabs(initial_phase)) * 2 ^ 13 if initial_phase
<
0
Defined at line 954 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 vertical filter may occur.
y_initial_phase_trip_enabled = true if initial_phase >= 0
= false if initial_phase
<
0
Defined at line 961 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 vertical filter may occur.
y_initial_phase_trip_enabled = true if initial_phase >= 0
= false if initial_phase
<
0
Defined at line 961 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h
PipeScalerVerticalInitialPhase & 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 971 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h