mirror of
https://mirror.skon.top/https://github.com/FFmpeg/FFmpeg
synced 2026-04-20 21:00:41 +08:00
doc/filters: add entry for deinterlace_d3d12
Add documentation for the filter "deinterlace_d3d12" to the filters documentation. This is the follow-up for commit https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22386/commits Signed-off-by: younengxiao <steven.xiao@amd.com>
This commit is contained in:
@@ -11652,6 +11652,105 @@ Median
|
|||||||
Do not actually modify frame. Useful when one only wants metadata.
|
Do not actually modify frame. Useful when one only wants metadata.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@section deinterlace_d3d12
|
||||||
|
|
||||||
|
Deinterlace the input video using D3D12 hardware-accelerated video processing.
|
||||||
|
|
||||||
|
This filter uses the DirectX 12 Video Processor to perform deinterlacing on
|
||||||
|
GPU, supporting both simple bob and driver-defined advanced (motion-adaptive)
|
||||||
|
algorithms. It requires the input to be in @code{d3d12} hardware pixel format.
|
||||||
|
|
||||||
|
The filter automatically queries the hardware for the required number of
|
||||||
|
temporal reference frames (if needed) and manages a frame queue to supply them.
|
||||||
|
|
||||||
|
It accepts the following options:
|
||||||
|
|
||||||
|
@table @option
|
||||||
|
|
||||||
|
@item method
|
||||||
|
The deinterlacing method. It accepts one of the following values:
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
@item default
|
||||||
|
Select the best deinterlacing method available on the hardware.
|
||||||
|
If the driver supports @code{custom}, that method is used; otherwise
|
||||||
|
falls back to @code{bob}. This is the default.
|
||||||
|
|
||||||
|
@item bob
|
||||||
|
Bob deinterlacing. Each field is independently scaled to full
|
||||||
|
frame height. Simple and fast, but may produce visible bob artifacts
|
||||||
|
on moving content.
|
||||||
|
|
||||||
|
@item custom
|
||||||
|
Driver-defined advanced deinterlacing. The exact algorithm is
|
||||||
|
hardware-specific and typically employs motion-adaptive techniques
|
||||||
|
with temporal reference frames for higher quality.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
The default value is @code{default}.
|
||||||
|
|
||||||
|
@item mode
|
||||||
|
Specify the interlacing mode. It accepts one of the following values:
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
@item frame
|
||||||
|
Send one frame for each frame. The output frame rate equals the input
|
||||||
|
frame rate. This is the default.
|
||||||
|
|
||||||
|
@item field
|
||||||
|
Send one frame for each field. The output frame rate is double the
|
||||||
|
input frame rate.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
The default value is @code{frame}.
|
||||||
|
|
||||||
|
@item deint
|
||||||
|
Specify which frames to deinterlace. It accepts one of the following values:
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
@item all
|
||||||
|
Deinterlace all frames. This is the default.
|
||||||
|
|
||||||
|
@item interlaced
|
||||||
|
Only deinterlace frames marked as interlaced; progressive frames are
|
||||||
|
passed through unchanged.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
The default value is @code{all}.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subsection Examples
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
|
||||||
|
@item
|
||||||
|
Deinterlace an interlaced video using software decoding and the best
|
||||||
|
available hardware deinterlacing method:
|
||||||
|
@example
|
||||||
|
ffmpeg -init_hw_device d3d12va=d3d12 -filter_hw_device d3d12 -i input.ts \
|
||||||
|
-vf "format=nv12,hwupload,deinterlace_d3d12=method=default,hwdownload,format=nv12" \
|
||||||
|
-c:v libx264 -crf 18 output.mp4
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@item
|
||||||
|
Deinterlace at field rate (double the frame rate) using bob method with
|
||||||
|
hardware decoding (full d3d12 pipeline):
|
||||||
|
@example
|
||||||
|
ffmpeg -hwaccel d3d12va -hwaccel_output_format d3d12 -i input.ts \
|
||||||
|
-vf "deinterlace_d3d12=method=bob:mode=field" \
|
||||||
|
-c:v h264_d3d12va output.mp4
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@item
|
||||||
|
Deinterlace only interlaced frames, passing progressive frames through:
|
||||||
|
@example
|
||||||
|
ffmpeg -init_hw_device d3d12va=d3d12 -filter_hw_device d3d12 -i input.ts \
|
||||||
|
-vf "format=nv12,hwupload,deinterlace_d3d12=deint=interlaced,hwdownload,format=nv12" \
|
||||||
|
-c:v libx264 -crf 18 output.mp4
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@end itemize
|
||||||
|
|
||||||
@section dejudder
|
@section dejudder
|
||||||
|
|
||||||
Remove judder produced by partially interlaced telecined content.
|
Remove judder produced by partially interlaced telecined content.
|
||||||
|
|||||||
Reference in New Issue
Block a user