-
Notifications
You must be signed in to change notification settings - Fork 126
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFC] support the color space conversion in VPP #212
Comments
the VAAPI driver does not support conversion yuv420p10le -> uyvy422 directly. maybe we can try to work around it by yuv420p10le(P010)-> NV12->uyvy422. we will give a try-patch later. |
(gdb) bt |
yuv420p10le isn't P010, for P010, P010 uses the highest 10bits of 16bits for each channel, however yuv420p10le in FFmpeg uses the lowest 10bits of 16bits for each channel. |
Our driver doesn't support yuv420p10le format. |
…0 on GEN9 With the new shader, the driver can convert 10bit surface to 8bit surface in a single step This fixes intel#212 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
…0 on GEN9 With the new shader, the driver can convert 10bit surface to 8bit surface in a single step This fixes #212 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Request support the CSC in vpp for yuv420p10le -> uyvy422.
Test in Kaby Lake as follows:
root@bluekbl:/home/junzhao/ffmpeg# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 17.04
Release: 17.04
Codename: zesty
root@bluekbl:/home/junzhao/ffmpeg# vainfo
libva info: VA-API version 0.40.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /opt/X11R7/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_40
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.40 (libva )
vainfo: Driver version: Intel i965 driver for Intel(R) Kabylake - 1.8.4.pre1 (glk-alpha-66-g7633739)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileH264MultiviewHigh : VAEntrypointVLD
VAProfileH264MultiviewHigh : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileH264StereoHigh : VAEntrypointEncSlice
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointEncSlice
VAProfileVP9Profile2 : VAEntrypointVLD
GPU Decode HEVC 10 bit video (without format change to uyvy422)
./ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -i ../../video/The_World_in_HDR_in_4K_HDR10.mkv -f null /dev/null
frame= 9264 fps=121 q=-0.0 Lsize=N/A time=00:02:34.56 bitrate=N/A speed=2.02x
GPU Decode HEVC 10 bit video (with format change to uyvy422)
./ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -hwaccel_output_format uyvy422 -i ../../video/The_World_in_HDR_in_4K_HDR10.mkv -f null /dev/null
frame= 9264 fps= 58 q=-0.0 Lsize=N/A time=00:02:34.56 bitrate=N/A speed=0.968x
So yuv420p10le -> uyvy422 will lead about 50% performance drop in this case, please support the yuv420p10le -> uyvy422 change in GPU/VPP.
The text was updated successfully, but these errors were encountered: