[Libva] Evaluate VP9 Hardware accelerated encode/decode on KabyLake

Vijayaraghavan, Vasavee vasavee.vijayaraghavan at intel.com
Thu Dec 15 18:01:54 UTC 2016


Hi Haihao,

I think I mislead you by not stating the problem correctly, sorry about that! I will rephrase the issue that I am facing:

- OTC graphics stack (Ubuntu 16.10 (kernel 4.8), libdrm 2.4.68, libva 1.7.2 and libyami/libyami-utils)
- Command line used for encode:
 ./yamiencode -c VP9 -i input.yuv -W <> -H <> -s I420 -f 30 -N 500 -o output.ivf (or output.webm)

I wanted to play the output.ivf (output.webm) file to verify whether it was encoded properly. Tried looking at the encoded output using ffplay/ VLC/ Dragging and dropping in chrome browser
I am unable to view this encoded video completely (able to see only first and last frame of the video - chrome browser is not able to play the video even for the first and last frames)

On the other hand, decoding this output.ivf (/output.webm) back to yuv doesn’t give any issue to me. The decoded yuv plays back fine and looks similar to the original input yuv that I have used. 
Also, I did not use ffmpeg for anything but just for using the player (ffplay) so I assume the issue is not related to ffmpeg in my case. 

-Thanks
Vasavee 


-----Original Message-----
From: Xiang, Haihao 
Sent: Thursday, December 15, 2016 12:08 AM
To: Charles, Daniel <daniel.charles at intel.com>; Vijayaraghavan, Vasavee <vasavee.vijayaraghavan at intel.com>
Cc: libva at lists.freedesktop.org
Subject: Re: [Libva] Evaluate VP9 Hardware accelerated encode/decode on KabyLake


Hi Vasavee,

Maybe it is not a yami issue. I encountered another issue for VP8
 video which is encoded by another vaapi based tool. I saw double frames when transcoding the video back to YUV using ffmpeg, however vpxdec works well for me, so I guess there are some issues in FFmpeg.
Could you try vpxdec with your VP9 video? I think it is not yami issue if vpxdec works for you.

Thanks
Haihao


> Hi Daniel,
> 
> Sure, will do that! Thank you for the pointers.
> 
> -Best Regards,
> Vasavee
> 
> -----Original Message-----
> From: Charles, Daniel [mailto:daniel.charles at intel.com]
> Sent: Monday, December 12, 2016 10:53 AM
> To: Vijayaraghavan, Vasavee <vasavee.vijayaraghavan at intel.com>
> Cc: Xiang, Haihao <haihao.xiang at intel.com>; libva at lists.freedesktop.o 
> rg
> Subject: Re: [Libva] Evaluate VP9 Hardware accelerated encode/decode 
> on KabyLake
> 
> Hi Vasavee,
> 
> Can you file a bug on libyami for your observation?
> 
> https://github.com/01org/libyami/issues
> 
> Thanks.
> 
> --
> Daniel.
> 
> On Mon, Dec 12, 2016 at 10:45 AM, Vijayaraghavan, Vasavee <vasavee.vi 
> jayaraghavan at intel.com> wrote:
> > Hi Haihao,
> > 
> > I might have missed setting the PKG_CONFIG_PATH while trying to use 
> > './configure --prefix=/usr --exec-prefix=/'.
> > But like Daniel suggested, I did a clean install with default paths 
> > and it works fine for me.
> > 
> > I have installed libyami and libyami utils to test VP9 encode and 
> > decode. I am able to run VP9 encode and decode using the pre-built 
> > binaries located in libyami-utils/tools (yamiencode and yamidecode).
> > I am facing issues in playing back the VP9 encoded video.
> > Say test.ivf is my VP9 encoded output, when I playback the file 
> > using ffplay or VLC player, I am able to see only the first and last 
> > frame of the encoded video (though the video shows to have 500 
> > frames - same as the input yuv; verified the number of frames using 
> > ffprobe). Although, when I decode it back to yuv, the yuv is exactly 
> > the same as original input yuv and plays all the frames fine.
> > 
> > At this point, I haven’t added any quality control factor to encode 
> > the video and hence I have used a simple command line:
> > $cd /home/user/libyami-utils/tools
> > $./yamiencode -c VP9 -i input.yuv -W <> -H <> -s I420 -f 30 -N 500 
> > -o test.ivf
> > 
> > Am I missing something in the commandline which is why I am unable 
> > to play the output?
> > 
> > Note: I tried playing pre-encoded test_vp9.ivf files available 
> > through MediaSDK samples and they played without an issue.
> > 
> > -Thanks
> > Vasavee
> > 
> > -----Original Message-----
> > From: Xiang, Haihao
> > Sent: Wednesday, December 7, 2016 8:07 PM
> > To: Charles, Daniel <daniel.charles at intel.com>; Vijayaraghavan, 
> > Vasavee <vasavee.vijayaraghavan at intel.com>
> > Cc: libva at lists.freedesktop.org
> > Subject: Re: [Libva] Evaluate VP9 Hardware accelerated encode/decode 
> > on KabyLake
> > 
> > 
> > I think './configure --prefix=/usr --exec-prefix=/' should work too, 
> > otherwise it might have issue. Actually this configuration works 
> > fine for me when I build libva and libva-intel-driver. I set 
> > PKG_CONFIG_PATH variable to /lib/pkgconfig because libva.pc is 
> > installed in /lib/pkgconfig which is not in the default pkg-config 
> > search path.
> > 
> > Thanks
> > Haihao
> > 
> > > Hi Daniel,
> > > 
> > > That was right. I messed up a bit with the paths, uninstalling and 
> > > then re-installing with the default path in configure worked fine 
> > > this time.
> > > Thanks!
> > > 
> > > -best Regards,
> > > Vasavee
> > > 
> > > 
> > > -----Original Message-----
> > > From: Charles, Daniel [mailto:daniel.charles at intel.com]
> > > Sent: Wednesday, December 7, 2016 5:25 PM
> > > To: Vijayaraghavan, Vasavee <vasavee.vijayaraghavan at intel.com>
> > > Cc: Xiang, Haihao <haihao.xiang at intel.com>; libva at lists.freedeskt 
> > > op.o rg
> > > Subject: Re: [Libva] Evaluate VP9 Hardware accelerated 
> > > encode/decode on KabyLake
> > > 
> > > That's not expected, libdrm should also compile ok on the 
> > > defaults.
> > > Normally what I see Ubuntu users do is to run  $sudo make install
> > > 
> > > If you just want to install it on a custom folder, -- 
> > > prefix=<some_dir> should be sufficient for all packages you 
> > > listed, no need to mess up with --exec-dir
> > > 
> > > --
> > > Daniel.
> > > 
> > > 
> > > 
> > > On Wed, Dec 7, 2016 at 5:07 PM, Vijayaraghavan, Vasavee 
> > > <vasavee.vijayaraghavan at intel.com> wrote:
> > > > Hi Daniel.
> > > > I believe so, I used this configuration because my libdrm 
> > > > doesn’t build if I use the default config options.
> > > > 
> > > > -Thanks
> > > > Vasavee
> > > > 
> > > > -----Original Message-----
> > > > From: Charles, Daniel [mailto:daniel.charles at intel.com]
> > > > Sent: Wednesday, December 7, 2016 3:36 PM
> > > > To: Vijayaraghavan, Vasavee <vasavee.vijayaraghavan at intel.com>
> > > > Cc: Xiang, Haihao <haihao.xiang at intel.com>; libva at lists.freedes 
> > > > ktop .org
> > > > Subject: Re: [Libva] Evaluate VP9 Hardware accelerated 
> > > > encode/decode on KabyLake
> > > > 
> > > > Hello Vasavee,
> > > > 
> > > > Is your user allowed to write files on the --prefix=/usr and the 
> > > > -- exec-prefix=/ directories?
> > > > 
> > > > If you want to install it on the default place you don't need to 
> > > > specify those
> > > > 
> > > > --
> > > > Daniel.
> > > > 
> > > > On Wed, Dec 7, 2016 at 2:24 PM, Vijayaraghavan, Vasavee 
> > > > <vasavee.vi jayaraghavan at intel.com> wrote:
> > > > > Hi Haihao,
> > > > > 
> > > > > I am trying to build the intel graphics stack on Ubuntu 16.10
> > > > > with:
> > > > > -linux kernel version  4.8.0 (default kernel that comes with 
> > > > > Ubuntu
> > > > > 16.10) -libdrm version 2.4.68 -libva version 1.7.3
> > > > > 
> > > > > I am having trouble upgrading the libva-intel-driver-1.7.3.
> > > > > I have error while trying to compile it (I used this for
> > > > > configuring:
> > > > > ./configure --prefix=/usr --exec-prefix=/) Error below:
> > > > > user at test-MS-B142:~/Downloads/libva-intel-driver-1.7.3$ make 
> > > > > Making all in debian.upstream
> > > > > make[1]: Entering directory '/home/user/Downloads/libva-
> > > > > intel-
> > > > > driver-1.7.3/debian.upstream'
> > > > > make[1]: Nothing to be done for 'all'.
> > > > > make[1]: Leaving directory '/home/user/Downloads/libva-intel-
> > > > > driver-1.7.3/debian.upstream'
> > > > > Making all in src
> > > > > make[1]: Entering directory '/home/user/Downloads/libva-
> > > > > intel-
> > > > > driver-1.7.3/src'
> > > > >   GEN      intel_version.h
> > > > > make  all-recursive
> > > > > make[2]: Entering directory '/home/user/Downloads/libva-
> > > > > intel-
> > > > > driver-1.7.3/src'
> > > > > Making all in shaders
> > > > > make[3]: Entering directory '/home/user/Downloads/libva-
> > > > > intel-
> > > > > driver-1.7.3/src/shaders'
> > > > > Making all in h264
> > > > > make[4]: Entering directory '/home/user/Downloads/libva-
> > > > > intel-
> > > > > driver-1.7.3/src/shaders/h264'
> > > > > Making all in ildb
> > > > > make[5]: Entering directory '/home/user/Downloads/libva-
> > > > > intel-
> > > > > driver-1.7.3/src/shaders/h264/ildb'
> > > > > make[5]: Nothing to be done for 'all'.
> > > > > make[5]: Leaving directory '/home/user/Downloads/libva-intel-
> > > > > driver-1.7.3/src/shaders/h264/ildb'
> > > > > Making all in mc
> > > > > make[5]: Entering directory '/home/user/Downloads/libva-
> > > > > intel-
> > > > > driver-1.7.3/src/shaders/h264/mc'
> > > > > make[5]: Nothing to be done for 'all'.
> > > > > make[5]: Leaving directory '/home/user/Downloads/libva-intel-
> > > > > driver-1.7.3/src/shaders/h264/mc'
> > > > > make[5]: Entering directory '/home/user/Downloads/libva-
> > > > > intel-
> > > > > driver-1.7.3/src/shaders/h264'
> > > > > make[5]: Nothing to be done for 'all-am'.
> > > > > make[5]: Leaving directory '/home/user/Downloads/libva-intel-
> > > > > driver-1.7.3/src/shaders/h264'
> > > > > make[4]: Leaving directory '/home/user/Downloads/libva-intel-
> > > > > driver-1.7.3/src/shaders/h264'
> > > > > Making all in mpeg2
> > > > > make[4]: Entering directory '/home/user/Downloads/libva-
> > > > > intel-
> > > > > driver-1.7.3/src/shaders/mpeg2'
> > > > > Making all in vld
> > > > > make[5]: Entering directory '/home/user/Downloads/libva-
> > > > > intel-
> > > > > driver-1.7.3/src/shaders/mpeg2/vld'
> > > > >   GEN      frame_intra.g4b
> > > > > frame_intra.g4s: 1: syntax error at ""
> > > > > Makefile:560: recipe for target 'frame_intra.g4b' failed
> > > > > make[5]: *** [frame_intra.g4b] Error 1
> > > > > make[5]: Leaving directory '/home/user/Downloads/libva-intel-
> > > > > driver-1.7.3/src/shaders/mpeg2/vld'
> > > > > Makefile:366: recipe for target 'all-recursive' failed
> > > > > make[4]: *** [all-recursive] Error 1
> > > > > make[4]: Leaving directory '/home/user/Downloads/libva-intel-
> > > > > driver-1.7.3/src/shaders/mpeg2'
> > > > > Makefile:367: recipe for target 'all-recursive' failed
> > > > > make[3]: *** [all-recursive] Error 1
> > > > > make[3]: Leaving directory '/home/user/Downloads/libva-intel-
> > > > > driver-1.7.3/src/shaders'
> > > > > Makefile:1170: recipe for target 'all-recursive' failed
> > > > > make[2]: *** [all-recursive] Error 1
> > > > > make[2]: Leaving directory '/home/user/Downloads/libva-intel-
> > > > > driver-1.7.3/src'
> > > > > Makefile:595: recipe for target 'all' failed
> > > > > make[1]: *** [all] Error 2
> > > > > make[1]: Leaving directory '/home/user/Downloads/libva-intel-
> > > > > driver-1.7.3/src'
> > > > > Makefile:403: recipe for target 'all-recursive' failed
> > > > > make: *** [all-recursive] Error 1
> > > > > 
> > > > > Output of vainfo:
> > > > > libva info: VA-API version 0.39.2 libva info:
> > > > > va_getDriverName()
> > > > > returns 0 libva info: Trying to open 
> > > > > /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
> > > > > libva info: Found init function __vaDriverInit_0_39 libva
> > > > > info:
> > > > > va_openDriver() returns 0
> > > > > vainfo: VA-API version: 0.39 (libva 1.7.3)
> > > > > vainfo: Driver version: Intel i965 driver for Intel(R) 
> > > > > Kabylake -
> > > > > 1.7.1
> > > > > vainfo: Supported profile and entrypoints
> > > > >       VAProfileMPEG2Simple            : VAEntrypointVLD
> > > > >       VAProfileMPEG2Simple            : VAEntrypointEncSlice
> > > > >       VAProfileMPEG2Main              : VAEntrypointVLD
> > > > >       VAProfileMPEG2Main              : VAEntrypointEncSlice
> > > > >       VAProfileH264ConstrainedBaseline: VAEntrypointVLD
> > > > >       VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
> > > > >       VAProfileH264Main               : VAEntrypointVLD
> > > > >       VAProfileH264Main               : VAEntrypointEncSlice
> > > > >       VAProfileH264High               : VAEntrypointVLD
> > > > >       VAProfileH264High               : VAEntrypointEncSlice
> > > > >       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
> > > > >       VAProfileVP9Profile0            : VAEntrypointVLD
> > > > >       VAProfileVP9Profile0            : VAEntrypointEncSlice
> > > > >       VAProfileVP9Profile2            : VAEntrypointVLD
> > > > > 
> > > > > -Thanks
> > > > > Vasavee
> > > > > 
> > > > > -----Original Message-----
> > > > > From: Xiang, Haihao
> > > > > Sent: Tuesday, November 29, 2016 12:12 AM
> > > > > To: Vijayaraghavan, Vasavee <vasavee.vijayaraghavan at intel.com
> > > > > >;
> > > > > libva at lists.freedesktop.org
> > > > > Subject: Re: [Libva] Evaluate VP9 Hardware accelerated 
> > > > > encode/decode on KabyLake
> > > > > 
> > > > > 
> > > > > 1. Linux kernel
> > > > > 
> > > > > It would be better to install a recent stable kernel or rc 
> > > > > kernel.
> > > > > The kernel in the specific Linux OS might not support 
> > > > > Kabylake.
> > > > > 
> > > > > 2. Mesa/Cairo
> > > > > 
> > > > > It is not needed.
> > > > > 
> > > > > 3. Xorg / xf86-video-intel
> > > > > 
> > > > > It is not needed if you won't playback a video, otherwise you 
> > > > > should check xf86-video-intel supports Kabylake or not.
> > > > > Usually
> > > > > you needn't update Xorg.
> > > > > 
> > > > > 4. libdrm
> > > > > 
> > > > > libdrm in the specific Linux OS might not support Kabylake, so 
> > > > > it would be better to install a recent version of libdrm.
> > > > > 
> > > > > 5. libva/libva-intel-driver
> > > > > 
> > > > > The latest version is 1.7.3
> > > > > 
> > > > > Thanks
> > > > > Haihao
> > > > > 
> > > > > > Sorry, didn’t realize I had to reply all. Reposting my 
> > > > > > message
> > > > > > again:
> > > > > > 
> > > > > > Hi Haihao,
> > > > > > 
> > > > > > Thank you for your response.
> > > > > > I am not sure if I have to use a specific software for my 
> > > > > > tests, but looking a bit about the below three options 
> > > > > > (ffmpeg, gstreamer and
> > > > > > libyami) and assuming I go with libyami, do I have to:
> > > > > > 
> > > > > > 1. Simply Follow the build procedure given here: https://gi 
> > > > > > thub
> > > > > > .com/0
> > > > > > 1org/libyami/wiki/Build after installing the specific Linux 
> > > > > > OS
> > > > > > 
> > > > > > (Or)
> > > > > > 
> > > > > > 2. Do I have to build the entire graphics software stack 
> > > > > > after installing the Linux OS including:
> > > > > > 
> > > > > >       Linux Kernel - 4.7.2
> > > > > >       Mesa - 12.0.1
> > > > > >       xf86-video-intel - 2.99.917
> > > > > >       Libdrm - 2.4.68
> > > > > >       Libva - 1.7.2
> > > > > >       vaapi intel-driver - 1.7.2
> > > > > >       Cairo - 1.15.2
> > > > > >       Xorg Xserver - 1.18.3
> > > > > > 
> > > > > > as mentioned in https://01.org/linuxgraphics/downloads/2016
> > > > > > q3-i
> > > > > > ntel-g
> > > > > > raphics-stack-release
> > > > > > 
> > > > > > -Best Regards,
> > > > > > Vasavee
> > > > > > 
> > > > > > -----Original Message-----
> > > > > > From: Xiang, Haihao
> > > > > > Sent: Monday, November 28, 2016 8:16 PM
> > > > > > To: Vijayaraghavan, Vasavee <vasavee.vijayaraghavan at intel.c
> > > > > > om>;
> > > > > > libva
> > > > > > @lists.freedesktop.org
> > > > > > Subject: Re: [Libva] Evaluate VP9 Hardware accelerated 
> > > > > > encode/decode on KabyLake
> > > > > > 
> > > > > > 
> > > > > > Hi Vasavee,
> > > > > > 
> > > > > > You can run a software using VA-API to evaluate VP9 hardware 
> > > > > > accelerated encode/decode, suc as:
> > > > > > 
> > > > > > libyami:
> > > > > > https://github.com/01org/libyami (core) https://github.com/ 
> > > > > > 01or g/liby ami-utils (utilities based on libyami)
> > > > > > 
> > > > > > gstreamer-vaapi
> > > > > > https://gstreamer.freedesktop.org/modules/gstreamer-vaapi.h
> > > > > > tml
> > > > > > 
> > > > > > or a FFmpeg/Libav based player which enables HW accelerated 
> > > > > > decode.
> > > > > > 
> > > > > > Thanks
> > > > > > Haihao
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > > Hi all,
> > > > > > > 
> > > > > > > I am new to this subscription list.
> > > > > > > I want to evaluate VP9 hardware accelerated encode/decode 
> > > > > > > on KabyLake.
> > > > > > > Can someone give me useful pointers as in where I can get 
> > > > > > > started to run hardware accelerated encode/decode tests on 
> > > > > > > KabyLake?
> > > > > > > I am
> > > > > > > targeting to run the tests on Linux OS.
> > > > > > > 
> > > > > > > Best Regards,
> > > > > > > Vasavee
> > > > > > > 
> > > > > > > _______________________________________________
> > > > > > > Libva mailing list
> > > > > > > Libva at lists.freedesktop.org 
> > > > > > > https://lists.freedesktop.org/mailman/listinfo/libva
> > > > > _______________________________________________
> > > > > Libva mailing list
> > > > > Libva at lists.freedesktop.org
> > > > > https://lists.freedesktop.org/mailman/listinfo/libva


More information about the Libva mailing list