System Environment: ---------------------------------------- Platform: IVB Libva: staging branch 2b25c3439781f0b7162011627a8ad3bb6288d1bb Intel-driver: staging branch 5bd630d4ea732818728b0a464f45739c86e08be3 Gst-vaapi: 0.4 branch dd40042d447a0b696a75172bd3ed6cd1bad23377 Bug Info: ---------------------------------- hardware cmd: gst-launch-0.10 filesrc location=/home/H264_640x368_frame300.MP4 ! qtdemux ! vaapidecode ! vaapipostproc ! video/x-surface,type=vaapi,format=\(fourcc\)NV12 ! vaapidownload ! video/x-raw-yuv,format='(fourcc)'NV12 ! filesink location=HW.yuv software cmd: gst-launch filesrc location=/home/H264_640x368_frame300.MP4 ! qtdemux ! vaapidecode ! vaapidownload ! ffmpegcolorspace ! video/x-raw-yuv,format='(fourcc)'NV12 ! filesink location=SW.yuv And then compared the PSNR of HW.yuv and SW.yuv Result: Y_PSNR U_PSNR V_PSNR 1000 43.94108 46.54781
System Environment: ---------------------------------------- Platform: HSW/IVB Mesa: (9.1)f32ec82a8cfcabc5b7596796f36afe7986651f02 Xserver: (server-1.14-branch)xorg-server-1.14.1 Xf86_video_intel: (master)2.21.9 Cairo: (master)0dac37c41473deafa4a2f154187c5c3d08b07c91 Libva: (master)ffb82f3a85e424b869c2c1ce48251b3305e2cd61 Libva_intel_driver: (master)01f7c2c6c5ae6321f3b3cfebc89f73dcb50b30af Kernel_version: 3.9.5 Bug Info: ---------------------------------- NV12->RGB not support RGB NV12->YV12 low U/V NV12->YUY2 low U/V NV12->YUY2->YV12 low U/V this issue can be reproduced on libva/intel-driver staging and master branch.
SNB result: Y_PSNR U_PSNR V_PSNR NV12->YV12 1000.00000 1000.00000 1000.00000 NV12->YUY2 1000.00000 1000.00000 1000.00000 IVB result: NV12->YV12 1000.00000 48.82932 53.62732 NV12->YUY2 1000.00000 47.27492 51.36483 HSW result: NV12->YV12 1000.00000 49.81547 52.45637 NV12->YUY2 1000.00000 48.13453 50.73082 On SNB the result value is normal, but low on IVB and HSW.
Hi, Is the VPP used for the following test? >NV12->YV12 >NV12->YUY2 On the IVB/HSW the AVS function is used when sampling the Y/U/V while it uses another function to sampling the Y/U/V on SNB. Now the default AVS parameter is used. In such case maybe the test result is lower than expected. Thanks.
For the conversion from NV12->YUY2(YUV420 to YUV 422), it will involve the upsampling. In such case the result is affected by the used interpolation(The repetitive interpolation is used on Sandybridge. The AVS interpolation is used on Ivy/Haswell. And it doesn't make sense that the result based on simple interpolation is used as the calibration for the advanced interpolation). Of course the current result is still acceptable and has no effect on the video quality. For the conversion from NV12<->YV12 under the same resolution, maybe the sampling mechanism on Sanybridge is better than the AVS mechanism on Ivy/Haswell. But U/V PSNR on Haswell/Ivy is still quite high and acceptable. >NV12->YV12 1000.00000 48.82932 53.62732 So I think that this bug will be marked as "Won't fix" and closed.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.