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.

Encoding 1080p YUV file on Lenovo ThinkPad Tablet 2 (intel atom z2760)

Ismaeel_A_
Beginner
569 Views

Greetings,

I have a Lenovo ThinkPad Tablet 2, with an intel Atom Z2760 processor, and I have downloaded the Intel Media SDK 2013. 

I am trying to use a modified version of the sample_encode.exe with more exposed parameters (i.e. ratecontrol, qp, etc.) to try and encode a 1080p YUV file (2 GB) and I am getting performance of about 20 processed frames per second. Is this an expected result or should encoding 1080p videos be faster? 

Also I noticed that when I am running the encoder that it says it is doing hw acceration but it version it is running is 1.5.

Thanks,
isali 

0 Kudos
6 Replies
Anthony_P_Intel
Employee
569 Views

Hi Isali,

Yes, that platform supports MediaSDK API 1.5.  The native YUV format for hardware is "NV12".  If you are reading NV12 data from a file, a significant amount of time will be spent reading the file, and if you the file is another format, there will also be an performance impact converting the file to the native format supported by hardware.

-Tony

0 Kudos
Ismaeel_A_
Beginner
569 Views

Hi Tony,

Thank you for the suggestion. I tried converting my original YUV file into NV12 format using ffmpeg with this command: 

$ ffmpeg -pix_fmt yuv420p -s 352x288 -i foreman_352x288.yuv -pix_fmt nv12 foreman_nv_12.yuv

and then tried to encode it on my tablet but I am still seeing the same performance. Do you have any other ideas/suggestions?

Thanks,

isali
 

0 Kudos
Anthony_P_Intel
Employee
569 Views

You may also make sure you are using D3D9 surfaces in video memory.  You can capture a 'tracer' log (using <install dir>\tools\msdk_tracer) to see what is really occurring, but I suspect the platform is spending a lot of time reading the large amount of (uncompressed) data from the disk.

To achieve optimal performance, I highly recommend looking at the simple tutorials here" http://software.intel.com/en-us/articles/intel-media-sdk-tutorial

0 Kudos
Ismaeel_A_
Beginner
569 Views

Hi Tony,

I have attached the tracer log that was generated when I ran the encoder.exe on a 1920x1088 file that was converted to NV12 format via ffmpeg.

I notice that I get similar performance even switching between -u quality to -u speed (range of 30-31 seconds for 2GB 1920x1088 YUV file for both targetusage settings) while if I am on a desktop with a 3rd gen processor and run the same file i see a definate increase in performance when using the speed setting.

Thanks,

isali 

0 Kudos
Anthony_P_Intel
Employee
569 Views

Hi Isali,

Can you please try using D3D video memory surfaces (add the -d3d option to command line)?  The workload you are testing is loading the large yuv surfaces into system memory and then the MSDK implementation needs internally copy the surface from system to video memory for accelerated encoding.  This memory copy is a relatively slow process.

encode.Init.par.IOPattern=IN_SYSTEM_MEMORY

0 Kudos
Ismaeel_A_
Beginner
569 Views

Hi Tony,

I added the -d3d option to the command line and still obtain the same performance as without the -d3d option ( 20 processed frames\second)

Do you have any estimates on what the average processed frames per second on this hardware for a 1080p file should be?

Thanks,
isali

0 Kudos
Reply