Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

AVC Decoder Frame Rate

NAves
Novice
460 Views

Hi

Not sure if I am doing something wrong, but on Ubuntu 14.04, with i7-4760HQ, and 3.8 kernel it seems that I can't decode AVC streams, encoded via sample_encode_drm, to decode at 60 fps, e.g.:

time sample_encode_drm h264 -i ~/Videos/BasketballDrive_1920x1080_50.yuv -o ~/Videos/BasketballDrive_1920x1080_50_60.h264 -w 1920 -h 1080 -hw -b 20000 -u quality -f 60
libva info: VA-API version 0.34. 0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_0_32
libva info: va_openDriver() returns 0
Intel(R) Media SDK Encoding Sample Version 5.0.1603344.93446

Input file format               YUV420
Output video                     AVC 
Source picture:
                Resolution          1920x1088
                Crop X,Y,W,H     0,0,1920,1080
Destination picture:
                Resolution          1920x1088
                Crop X,Y,W,H     0,0,1920,1080
Frame rate          60.00
Bit rate(Kbps)    20000
Target usage      quality
Memory type    system
Media SDK impl                                hw
Media SDK version          1.10

Processing started
Frame number: 501
Processing finished

real        0m7.255s
user       0m2.228s
sys          0m0.784s

Decode:
time sample_decode_drm h264 -o ~/Videos/BasketballDrive_1920x1080_50_60_rec.yuv -i ~/Videos/BasketballDrive_1920x1080_50_60.h264  -hw
libva info: VA-API version 0.34.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_0_32
libva info: va_openDriver() returns 0
Intel(R) Media SDK Decoding Sample Version 5.0.1603344.93446


Input video         AVC 
Output format  YUV420
Resolution          1920x1088
Crop X,Y,W,H     0,0,0,0
Frame rate          60.00
Memory type                    system
MediaSDK impl                 hw
MediaSDK version           1.10

Decoding started
Frame number:  501, fps: 35.994, fread_fps: 0.000, fwrite_fps: 36.440
Decoding finished

real        0m13.931s
user       0m13.408s
sys          0m1.160s

Setting "-u" to "balanced" and decreasing the bit rate to 5 Mbps, did not change decoders fps rate. Is this to be expected?

Cheers,

0 Kudos
4 Replies
Sravanthi_K_Intel
460 Views

Thanks for bringing this to our notice. I am verifying the performance of decoder at 60fps - will get back to you. The decoder performance (decoder fps) on streams encoded at 30fps (frame rate of encoded bitstream) has been in around 200+fps decoder performance.

0 Kudos
Sravanthi_K_Intel
460 Views

Ah, I should have mentioned. The decoder fps is being weighed down significantly by the fwrite() operation that is dumping the decoded bytes into a YUV file. If you do not specify the -o parameter for the sample_decode_drm, you should see the pure decoder performance.

My experiment: big_buck_bunny encoded at 60 fps, resolution 1080p:

With file write enabled (-o parameter specified): fps: 27.84, fread_fps: 0.0000, fwrite_fps: 28.341

Without file write (remove -o parameter): fps: 189.647

Hope this helps.

0 Kudos
NAves
Novice
460 Views

Thank you for the clarification. Indeed, decoding a 4k p60 stream gives the following impressive result:

~# time sample_decode_drm h264  -i ~/Videos/Cycle_noFadeIn_3840x2160.h264  -hw
libva info: VA-API version 0.34.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_0_32
libva info: va_openDriver() returns 0
Intel(R) Media SDK Decoding Sample Version 5.0.1603344.93446


Input video    AVC 
Output format    YUV420
Resolution    3840x2160
Crop X,Y,W,H    0,0,0,0
Frame rate    60.00
Memory type        system
MediaSDK impl        hw
MediaSDK version    1.10

Decoding started
Frame number:  950, fps: 74.584, fread_fps: 0.000, fwrite_fps: 0.000
Decoding finished

real    0m12.767s
user    0m4.824s
sys    0m0.424s

Cheers,

0 Kudos
Sravanthi_K_Intel
460 Views

Very glad you are happy with the performance! Thanks.

0 Kudos
Reply