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.
3073 Discussions

HEVC hw encoder performance and video quality seems low on skylake

bai_g_
Beginner
1,767 Views

Hi, Experts

I am trying to run HEVC hw encoder on skylake. The input yup is 1080p ,but the performance  and quality seems not good. 

The CPU type is Intel(R)Core(TM)i3-6100 CPU@3.70G 2 cores cache:128k+512k+4.0M 

But the encoding fps for 1080p is 58fps for speed mode. If it just support 1080p 58fps, does it has capability to support 4K 30fps? And I checked the PSNR of HEVC hw bitstream, and compared to H.264 bitstream encode by intel hw encoder. The HEVC encoder just saved 10% bitrates with the same PSNR.  

Does Intel has any documents to describe the performance and video quality for HEVC hw encoder of skyline?

The test details are as follows:

D:\intel_codec\Release>.\sample_encode.exe h265 -i ..\..\sequence\pedestrian_area_1080p25.yuv -o intel_1024k.265 -w 1920 -h 1080 -hw -r 1 -b 1024 -f 30
plugin_loader.h :164 [INFO] Plugin was loaded from GUID: { 0x6f, 0xad, 0xc7, 0x91, 0xa0, 0xc2, 0xeb, 0x47, 0x9a, 0xb6, 0xdc, 0xd5, 0xea, 0x9d, 0xa3, 0x47 } (Intel (R) Media SDK HW plugin for HEVC ENCODE)
Encoding Sample Version 1.0.0.0

Input file format       YUV420
Output video            HEVC
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      30.00
Bit rate(Kbps)  1024
Gop size        0
Ref dist        1
Ref number      1
Idr Interval    0
Target usage    balanced
Memory type     system
Media SDK impl          hw
Media SDK version       1.17

Processing started
Frame number: 375
Encoding fps: 58plugin_loader.h :190 [INFO] MFXBaseUSER_UnLoad(session=0x00D00830), sts=0

 

 

 

0 Kudos
6 Replies
Anna_B_Intel
Employee
1,767 Views

Hi Bai,

Your results is low because of parameters that you set up.

Let me give you some recommendations how to achieve a much better performance. Firstly, it's more reasonable to measure performance using sample_multi_transcode, because sample_encode spends time on reading from disc. Secondly, to achieve fastest encoding you should set Target Usage 7 (best speed but with larger quality drop) using "-u" option that is 4 by default. Also try to use CQP ("-cqp") bitrate control method and set up "-async 3".

Best wishes,

Anna

0 Kudos
Harshdeep_B_Intel
1,767 Views

Hi Bai, 

Adding to my colleague Anna's comment. All performance/quality benchmarking are done with available end user apps which have enabled HEVC codec usage. For documents, we suggest you look at apps like Divx, Cyberlink etc.for benchmarking data on Skylake. Here is link to example document:  http://labs.divx.com/hevc-hwaccel-skylake. Hope this helps!

Thanks, 

0 Kudos
bai_g_
Beginner
1,767 Views

Thanks Anna.

The performance will be improved after setting -u speed, it achieved 150fps. But as you mentioed the the quality is dropped.

And actually, it's my second question, intel HEVC encoder's qualtiy is not good. I compared with intel hw H.264 encoder, and found when the PSNR is almost same (38), HEVC just saved 9% bits  under quality mode, saved 8% under banlance mode, and did not save any bits under speed mode.

It means if we use speed mode, the HEVC just like an H.264 encoder.

Did intel has did some mesearment about the video quality of HEVC?

Anna B. (Intel) wrote:

Hi Bai,

Your results is low because of parameters that you set up.

Let me give you some recommendations how to achieve a much better performance. Firstly, it's more reasonable to measure performance using sample_multi_transcode, because sample_encode spends time on reading from disc. Secondly, to achieve fastest encoding you should set Target Usage 7 (best speed but with larger quality drop) using "-u" option that is 4 by default. Also try to use CQP ("-cqp") bitrate control method and set up "-async 3".

Best wishes,

Anna

0 Kudos
bai_g_
Beginner
1,767 Views

Thanks. But it seems all the test reports about decoder not encoder.

Is there any commercial software had use the HW HEVC encoder?

Harsh Jain (Intel) wrote:

Hi Bai, 

Adding to my colleague Anna's comment. All performance/quality benchmarking are done with available end user apps which have enabled HEVC codec usage. For documents, we suggest you look at apps like Divx, Cyberlink etc.for benchmarking data on Skylake. Here is link to example document:  http://labs.divx.com/hevc-hwaccel-skylake. Hope this helps!

Thanks, 

0 Kudos
Jose_A_1
Beginner
1,767 Views

Hi

I read about 4K encoding in this page. And how about lower resolutions than 1080p (hvec hardware encoding) ?

What is the performance of i3,i5 skylake for lower resolutions ?

I bought one Tv card. It records in h264, 720x576, 30fps

I wanted to encode the h264 video files in h265 using hardware enconding.

I already know one solution: nVidia Video cards (GTX 950 and better)

But I wanted to know if I could use a intel processor to compress (6th generation) to encode those files (using their hardware capabilities) and what would be the speed (fps)

Does Intel harware encoding works only for stantard resolution HD 720p, 1080p and now 4K. Or it encodes also resolutions like 720x576 (hvec hardware ensoding) ?

If someone could help me about this It would be great

 

 

0 Kudos
Jose_A_1
Beginner
1,767 Views

 

What would be the intel i3 or i5 or i7 Skylake hardwware ensodicng speed from "h264,720x576" to "h265,720x576".

For instance DivX encoders accpet thousands ofdiferent resolutions from 320x240 to HD 1080p. And What about the Skylake hadrdware encoder ?

0 Kudos
Reply