De-interlacing filter. More...
Public Member Functions | |
PvDeInterlacer () | |
Constructor. | |
virtual | ~PvDeInterlacer () |
Destructor. | |
PvResult | Apply (const PvBuffer *aIn, PvBuffer *aOut) |
De-interlaces an image from a PvBuffer containing both fields. More... | |
PvResult | Apply (const PvBuffer *aInOdd, const PvBuffer *aInEven, PvBuffer *aOut) |
De-interlaces an image from a a pair of PvBuffer, one Even and one Odd field. More... | |
PvResult | ApplyOdd (const PvBuffer *aIn, PvBuffer *aOut) |
De-interlaces an image from a PvBuffer containing an odd field. More... | |
PvResult | ApplyEven (const PvBuffer *aIn, PvBuffer *aOut) |
De-interlaces an image from a PvBuffer containing an even field. More... | |
PvResult | ApplyDoubling (const PvBuffer *aIn, PvBuffer *aOut) |
Doubles lines of the field to the output field. More... | |
PvResult | ApplyBlending (const PvBuffer *aInOdd, const PvBuffer *aInEven, PvBuffer *aOut) |
Blends (averages) even and odd lines. The result is doubled into the output buffer. More... | |
bool | GetFieldInversion () const |
Retrieves the deinterlacer configuration for field inversion. More... | |
void | SetFieldInversion (bool aInvert) |
Configures the deinterlacer for 1-2 or 2-1 fields order. More... | |
De-interlacing filter.
This class only supports non-destructive (non-in-place) filtering on buffers with an image payload type.
It is possible to deinterlace a buffer containing both fields using the Apply method only taking a single input PvBuffer as parameter. With this method, field inversion can be controlled through SetFieldInversion.
The other Apply method takes two independent PvBuffer objects each containing a field. Even and Odd interlaced fields are required for reconstructions. SetFieldInversion is ignored when deinterlacing with this Apply method, the user can simply swap the parameters to obtain the same effect.
To deinterlace an image:
De-interlaces an image from a PvBuffer containing both fields.
PvResult PvDeInterlacer::Apply | ( | const PvBuffer * | aInOdd, |
const PvBuffer * | aInEven, | ||
PvBuffer * | aOut | ||
) |
De-interlaces an image from a a pair of PvBuffer, one Even and one Odd field.
[in] | aInOdd | PvBuffer used as Odd field source. |
[in] | aInEven | PvBuffer used as Even field source. |
[out] | aOut | PvBuffer used as destination for the operation. |
PvResult PvDeInterlacer::ApplyBlending | ( | const PvBuffer * | aInOdd, |
const PvBuffer * | aInEven, | ||
PvBuffer * | aOut | ||
) |
Blends (averages) even and odd lines. The result is doubled into the output buffer.
[in] | aInOdd | PvBuffer used as Odd field source. |
[in] | aInEven | PvBuffer used as Even field source. |
[out] | aOut | PvBuffer used as destination for the operation. |
Doubles lines of the field to the output field.
De-interlaces an image from a PvBuffer containing an even field.
De-interlaces an image from a PvBuffer containing an odd field.
bool PvDeInterlacer::GetFieldInversion | ( | ) | const |
Retrieves the deinterlacer configuration for field inversion.
void PvDeInterlacer::SetFieldInversion | ( | bool | aInvert | ) |
Configures the deinterlacer for 1-2 or 2-1 fields order.
[in] | aInvert | False for 1-2 field order (default) or true for 2-1. |
Copyright (c) 2002-2021 Pleora Technologies Inc.
www.pleora.com