[Libva] linux vaapi h.264 encoding haswell hd graphics 4600
Xiang, Haihao
haihao.xiang at intel.com
Fri Mar 28 00:24:22 PDT 2014
Can you reproduce this issue with --srcyuv and --fourcc ?
Thanks
Haihao
> user at video-ubuntu:~/Downloads$ vainfo
> libva info: VA-API version 0.35.0
> libva info: va_getDriverName() returns 0
> libva info: Trying to open /usr/local/lib/dri/i965_drv_video.so
> libva info: Found init function __vaDriverInit_0_35
> libva info: va_openDriver() returns 0
> vainfo: VA-API version: 0.35 (libva 1.3.0)
> vainfo: Driver version: Intel i965 driver - 1.3.0
> 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
> VAProfileVC1Simple : VAEntrypointVLD
> VAProfileVC1Main : VAEntrypointVLD
> VAProfileVC1Advanced : VAEntrypointVLD
> VAProfileNone : VAEntrypointVideoProc
> VAProfileJPEGBaseline : VAEntrypointVLD
>
> libva-1.3.0 and intel-libva-driver-1.3.0
>
>
> 28.03.2014, 11:01, "Zhao Yakui" <yakui.zhao at intel.com>:
> > On Fri, 2014-03-28 at 10:44 +0400, Nik Orlov wrote:
> >
> >> Hello!
> >>
> >> I have tested h264encoder with sync mode and without. Time is ok.
> >> But I have strange bug.
> >> I`m generating h264 bitstream output like this
> >> ./h264encode -w 3840 -h 1080 -framecount 2500 -f 25 -o ./test.h264
> >> I have generated different resolutions, from resolution 1024x768 I
> >> have such ugly picture.
> >> At the moment I don`t understand what is it about?
> >
> > Which version of driver is used in your test?
> >
> > It seems that it is not encoded as expected.
> >
> > Will you please try to file a bug on https://bugs.freedesktop.org/ and
> > select the libva as component?
> >
> > Thanks.
> > Yakui
> >
> >> Screenshots:
> >> bug1920x1080.jpg http://yadi.sk/d/ixGQfaKLLM7aU
> >> bug3840x1080 http://yadi.sk/d/fnZ1TXJSLM7ac
> >> bug3840x1080_2 http://yadi.sk/d/7NqWLkgLLM7ai
> >>
> >> Any ideas?
> >>
> >> 27.03.2014, 21:32, "Yuan, Shengquan" <shengquan.yuan at intel.com>:
> >>> “Frame Rate: 0.06 fps (1 frames, 16500 ms (16500.00 ms per frame))”
> >>> in your test is calculated by “(total time of app execution)/(total
> >>> frame)”. “(total time of app execution)” includes app setup, source
> >>> YUV uploading, frame encoding, coded bitstream saving, app stop,
> >>> etc. If you only encode 1 frame, the majority time will be “source
> >>> YUV uploading”.
> >>>
> >>> There is detailed break-down of the time in the output, but since
> >>> the application runs with two threads (one is source YUV uploading,
> >>> another thread is frame encoding), you are not able to get the
> >>> absolute time of a frame encoding.
> >>>
> >>> Tips:
> >>> * If you want to know the accurate time of one frame encoding,
> >>> use option “-syncmode”, and check the time of
> >>> “vaBegin/vaRender/vaEnd/vaSyncSurface”
> >>> * If you want to get the end-to-end encoding fps number, try
> >>> to encoding thousand of frames with auto-generated YUV
> >>> source (without –srcyuv), e.g. “h264encode –n 7000”
> >>>
> >>> Thanks
> >>> -Austin
> >>>
> >>> From: Libva [mailto:libva-bounces at lists.freedesktop.org] On Behalf
> >>> Of Matt Pekar
> >>> Sent: Thursday, March 27, 2014 9:11 AM
> >>> To: Nik Orlov
> >>> Cc: libva at lists.freedesktop.org
> >>> Subject: Re: [Libva] linux vaapi h.264 encoding haswell hd graphics
> >>> 4600
> >>>
> >>> For that size of frame, 20ms is a pretty darn good time IMO. We see
> >>> 10ms (ish) on things in the 1280x720 range.
> >>>
> >>> Since your input stream is only 25fps, the encoder will be able to
> >>> provide near real-time output, with just a 20ms delay before writing
> >>> each frame.
> >>>
> >>> If you were trying to do 60fps then you wouldn't be able to do "real
> >>> time" at all since you'd be falling behind 5ms every frame.
> >>>
> >>> On Thu, Mar 27, 2014 at 5:57 AM, Nik Orlov <nikitos1550 at yandex.ru>
> >>> wrote:
> >>> Hello!
> >>>
> >>> I have ubuntu-desktop 13.10 amd64 on core i7 4770 (Haswell, HD
> >>> graphics 4600).
> >>> I have installed vaapi (libva from sources 1.3.0).
> >>>
> >>> There is h264encode test. I have started it:
> >>>
> >>> user at video-ubuntu:~/VAAPI/libva-1.3.0/test/encode$ ./h264encode -w
> >>> 3840 -h 1080 -framecount 1 -f 25
> >>> Source frame is 3840x1080 and will code clip to 3840x1088 with crop
> >>>
> >>> INPUT:Try to encode H264...
> >>> INPUT: RateControl : VBR
> >>> INPUT: Resolution : 3840x1080, 1 frames
> >>> INPUT: FrameRate : 25
> >>> INPUT: Bitrate : 24883200
> >>> INPUT: Slieces : 1
> >>> INPUT: IntraPeriod : 30
> >>> INPUT: IDRPeriod : 60
> >>> INPUT: IpPeriod : 1
> >>> INPUT: Initial QP : 26
> >>> INPUT: Min QP : 0
> >>> INPUT: Source YUV : AUTO generated
> >>> INPUT: Coded Clip : /tmp/test.264
> >>> INPUT: Rec Clip : Not save reconstructed frame
> >>>
> >>> libva info: VA-API version 0.35.0
> >>> libva info: va_getDriverName() returns 0
> >>> libva info: Trying to open /usr/local/lib/dri/i965_drv_video.so
> >>> libva info: Found init function __vaDriverInit_0_35
> >>> libva info: va_openDriver() returns 0
> >>> Use profile VAProfileH264High
> >>> Support rate control mode (0x12):CBR CQP
> >>> Support VAConfigAttribEncPackedHeaders
> >>> Support packed sequence headers
> >>> Support packed picture headers
> >>> Support packed misc headers
> >>> Support 1 RefPicList0 and 1 RefPicList1
> >>> Loading data into surface 15.....Complete surface loading
> >>> |00000000(485835 bytes coded)
> >>>
> >>> PERFORMANCE: Frame Rate : 0.06 fps (1 frames, 16500 ms
> >>> (16500.00 ms per frame))
> >>> PERFORMANCE: Compression ratio : 12:1
> >>> PERFORMANCE: UploadPicture : 16444 ms (16444.00, 99.66%
> >>> percent)
> >>> PERFORMANCE: vaBeginPicture : 0 ms (0.00, 0.00% percent)
> >>> PERFORMANCE: vaRenderHeader : 0 ms (0.00, 0.00% percent)
> >>> PERFORMANCE: vaEndPicture : 3 ms (3.00, 0.02% percent)
> >>> PERFORMANCE: vaSyncSurface : 32 ms (32.00, 0.19% percent)
> >>> PERFORMANCE: SavePicture : 0 ms (0.00, 0.00% percent)
> >>> PERFORMANCE: Others : 21 ms (21.00, 0.13% percent)
> >>> (Multithread enabled, the timing is only for reference)
> >>>
> >>> And other way
> >>>
> >>> user at video-ubuntu:~/VAAPI/libva-1.3.0/test/encode$ ./h264encode -w
> >>> 3840 -h 1080 -framecount 2500 -f 25
> >>> Source frame is 3840x1080 and will code clip to 3840x1088 with crop
> >>>
> >>> INPUT:Try to encode H264...
> >>> INPUT: RateControl : VBR
> >>> INPUT: Resolution : 3840x1080, 2500 frames
> >>> INPUT: FrameRate : 25
> >>> INPUT: Bitrate : 24883200
> >>> INPUT: Slieces : 1
> >>> INPUT: IntraPeriod : 30
> >>> INPUT: IDRPeriod : 60
> >>> INPUT: IpPeriod : 1
> >>> INPUT: Initial QP : 26
> >>> INPUT: Min QP : 0
> >>> INPUT: Source YUV : AUTO generated
> >>> INPUT: Coded Clip : /tmp/test.264
> >>> INPUT: Rec Clip : Not save reconstructed frame
> >>>
> >>> libva info: VA-API version 0.35.0
> >>> libva info: va_getDriverName() returns 0
> >>> libva info: Trying to open /usr/local/lib/dri/i965_drv_video.so
> >>> libva info: Found init function __vaDriverInit_0_35
> >>> libva info: va_openDriver() returns 0
> >>> Use profile VAProfileH264High
> >>> Support rate control mode (0x12):CBR CQP
> >>> Support VAConfigAttribEncPackedHeaders
> >>> Support packed sequence headers
> >>> Support packed picture headers
> >>> Support packed misc headers
> >>> Support 1 RefPicList0 and 1 RefPicList1
> >>> Loading data into surface 15.....Complete surface loading
> >>> \00002499(719089 bytes coded)
> >>>
> >>> PERFORMANCE: Frame Rate : 53.70 fps (2500 frames, 46555
> >>> ms (18.62 ms per frame))
> >>> PERFORMANCE: Compression ratio : 11:1
> >>> PERFORMANCE: UploadPicture : 16364 ms (6.55, 35.15%
> >>> percent)
> >>> PERFORMANCE: vaBeginPicture : 2 ms (0.00, 0.00% percent)
> >>> PERFORMANCE: vaRenderHeader : 18 ms (0.01, 0.04% percent)
> >>> PERFORMANCE: vaEndPicture : 1098 ms (0.44, 2.36% percent)
> >>> PERFORMANCE: vaSyncSurface : 21385 ms (8.55, 45.93%
> >>> percent)
> >>> PERFORMANCE: SavePicture : 8759 ms (3.50, 18.81% percent)
> >>> PERFORMANCE: Others : -1071 ms (1717986.49,
> >>> 9225574.54% percent)
> >>> (Multithread enabled, the timing is only for reference)
> >>>
> >>> So, when test encodes more frames time for encoding 1 frame is about
> >>> 20ms.
> >>> Why it is so?
> >>>
> >>> My primary question, if I want to encode video in real time (It
> >>> means camera sends me frame each 40ms), what time for encoding 1
> >>> frame I will get?
> >>> As I understand programm sends some data to GPU, GPU encodes video
> >>> and then send me encoded data back.
> >>> How much time takes sending data to GPU and back?
> >>>
> >>> Maybe it will possible to encode each frame in real time, or maybe
> >>> it isn`t possible, but It is possible to keep some buffer (for
> >>> example for 25 frames - 1 sec of video) and than encode ot very
> >>> fast.
> >>>
> >>> --
> >>> Ник Орлов mailto:nikitos1550 at yandex.ru
> >>> _______________________________________________
> >>> Libva mailing list
> >>> Libva at lists.freedesktop.org
> >>> http://lists.freedesktop.org/mailman/listinfo/libva
> >> --
> >> Ник Орлов
> >> mailto:nikitos1550 at yandex.ru
> >>
> >> _______________________________________________
> >> Libva mailing list
> >> Libva at lists.freedesktop.org
> >> http://lists.freedesktop.org/mailman/listinfo/libva
>
More information about the Libva
mailing list