<div dir="ltr">For that size of frame, 20ms is a pretty darn good time IMO. šWe see 10ms (ish) on things in the 1280x720 range.<div><br></div><div>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.</div>
<div><br></div><div>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.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Thu, Mar 27, 2014 at 5:57 AM, Nik Orlov <span dir="ltr"><<a href="mailto:nikitos1550@yandex.ru" target="_blank">nikitos1550@yandex.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello!<br>
<br>
I have ubuntu-desktop 13.10 amd64 on core i7 4770 (Haswell, HD graphics 4600).<br>
I have installed vaapi (libva from sources 1.3.0).<br>
<br>
There is h264encode test. I have started it:<br>
<br>
user@video-ubuntu:~/VAAPI/libva-1.3.0/test/encode$ ./h264encode -w 3840 -h 1080 -framecount 1 -f 25<br>
Source frame is 3840x1080 and will code clip to 3840x1088 with crop<br>
<br>
<br>
INPUT:Try to encode H264...<br>
INPUT: RateControl š: VBR<br>
INPUT: Resolution š : 3840x1080, 1 frames<br>
INPUT: FrameRate š š: 25<br>
INPUT: Bitrate š š š: 24883200<br>
INPUT: Slieces š š š: 1<br>
INPUT: IntraPeriod š: 30<br>
INPUT: IDRPeriod š š: 60<br>
INPUT: IpPeriod š š : 1<br>
INPUT: Initial QP š : 26<br>
INPUT: Min QP š š š : 0<br>
INPUT: Source YUV š : AUTO generated<br>
INPUT: Coded Clip š : /tmp/test.264<br>
INPUT: Rec š Clip š : Not save reconstructed frame<br>
<br>
<br>
libva info: VA-API version 0.35.0<br>
libva info: va_getDriverName() returns 0<br>
libva info: Trying to open /usr/local/lib/dri/i965_drv_video.so<br>
libva info: Found init function __vaDriverInit_0_35<br>
libva info: va_openDriver() returns 0<br>
Use profile VAProfileH264High<br>
Support rate control mode (0x12):CBR CQP<br>
Support VAConfigAttribEncPackedHeaders<br>
Support packed sequence headers<br>
Support packed picture headers<br>
Support packed misc headers<br>
Support 1 RefPicList0 and 1 RefPicList1<br>
Loading data into surface 15.....Complete surface loading<br>
š š š |00000000(485835 bytes coded)<br>
<br>
PERFORMANCE: š Frame Rate š š š š š : 0.06 fps (1 frames, 16500 ms (16500.00 ms per frame))<br>
PERFORMANCE: š Compression ratio š š: 12:1<br>
PERFORMANCE: š š UploadPicture š š š: 16444 ms (16444.00, 99.66% percent)<br>
PERFORMANCE: š š vaBeginPicture š š : 0 ms (0.00, 0.00% percent)<br>
PERFORMANCE: š š vaRenderHeader š š : 0 ms (0.00, 0.00% percent)<br>
PERFORMANCE: š š vaEndPicture š š š : 3 ms (3.00, 0.02% percent)<br>
PERFORMANCE: š š vaSyncSurface š š š: 32 ms (32.00, 0.19% percent)<br>
PERFORMANCE: š š SavePicture š š š š: 0 ms (0.00, 0.00% percent)<br>
PERFORMANCE: š š Others š š š š š š : 21 ms (21.00, 0.13% percent)<br>
(Multithread enabled, the timing is only for reference)<br>
<br>
<br>
And other way<br>
<br>
user@video-ubuntu:~/VAAPI/libva-1.3.0/test/encode$ ./h264encode -w 3840 -h 1080 -framecount 2500 -f 25<br>
Source frame is 3840x1080 and will code clip to 3840x1088 with crop<br>
<br>
<br>
INPUT:Try to encode H264...<br>
INPUT: RateControl š: VBR<br>
INPUT: Resolution š : 3840x1080, 2500 frames<br>
INPUT: FrameRate š š: 25<br>
INPUT: Bitrate š š š: 24883200<br>
INPUT: Slieces š š š: 1<br>
INPUT: IntraPeriod š: 30<br>
INPUT: IDRPeriod š š: 60<br>
INPUT: IpPeriod š š : 1<br>
INPUT: Initial QP š : 26<br>
INPUT: Min QP š š š : 0<br>
INPUT: Source YUV š : AUTO generated<br>
INPUT: Coded Clip š : /tmp/test.264<br>
INPUT: Rec š Clip š : Not save reconstructed frame<br>
<br>
<br>
libva info: VA-API version 0.35.0<br>
libva info: va_getDriverName() returns 0<br>
libva info: Trying to open /usr/local/lib/dri/i965_drv_video.so<br>
libva info: Found init function __vaDriverInit_0_35<br>
libva info: va_openDriver() returns 0<br>
Use profile VAProfileH264High<br>
Support rate control mode (0x12):CBR CQP<br>
Support VAConfigAttribEncPackedHeaders<br>
Support packed sequence headers<br>
Support packed picture headers<br>
Support packed misc headers<br>
Support 1 RefPicList0 and 1 RefPicList1<br>
Loading data into surface 15.....Complete surface loading<br>
š š š \00002499(719089 bytes coded)<br>
<br>
PERFORMANCE: š Frame Rate š š š š š : 53.70 fps (2500 frames, 46555 ms (18.62 ms per frame))<br>
PERFORMANCE: š Compression ratio š š: 11:1<br>
PERFORMANCE: š š UploadPicture š š š: 16364 ms (6.55, 35.15% percent)<br>
PERFORMANCE: š š vaBeginPicture š š : 2 ms (0.00, 0.00% percent)<br>
PERFORMANCE: š š vaRenderHeader š š : 18 ms (0.01, 0.04% percent)<br>
PERFORMANCE: š š vaEndPicture š š š : 1098 ms (0.44, 2.36% percent)<br>
PERFORMANCE: š š vaSyncSurface š š š: 21385 ms (8.55, 45.93% percent)<br>
PERFORMANCE: š š SavePicture š š š š: 8759 ms (3.50, 18.81% percent)<br>
PERFORMANCE: š š Others š š š š š š : -1071 ms (1717986.49, 9225574.54% percent)<br>
(Multithread enabled, the timing is only for reference)<br>
<br>
<br>
So, when test encodes more frames time for encoding 1 frame is about 20ms.<br>
Why it is so?<br>
<br>
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?<br>
As I understand programm sends some data to GPU, GPU encodes video and then send me encoded data back.<br>
How much time takes sending data to GPU and back?<br>
<br>
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.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
îÉË ïÒÌÏ× mailto:<a href="mailto:nikitos1550@yandex.ru">nikitos1550@yandex.ru</a><br>
_______________________________________________<br>
Libva mailing list<br>
<a href="mailto:Libva@lists.freedesktop.org">Libva@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/libva" target="_blank">http://lists.freedesktop.org/mailman/listinfo/libva</a><br>
</font></span></blockquote></div><br></div>