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.

H264 re-encoding

Abdellatif_Khindouf1
985 Views
Hi,

I'm using the QuickSync H264 encoder in encoding order and I want to know if it is possible to send the same frame several times to be encoded (I want to try several quantizers to choose the best one).

Regards.
0 Kudos
5 Replies
Petter_L_Intel
Employee
985 Views
Hi,

Am I understanding you correctly that you want to encode to several different streams but that each stream should have a different set of encoding parameters?

If so, the most straightforward approach would be to run each encode workload in a serial manner and then compare the results. Alternatively, you could also design an application that reads raw frame data then feeds it into two encoding sessions that work in parallel.

Or are you instead attempting to feed the encoder a frame then assess the encoded output for each frame? Then based on results discard that frame with another frame encoded with other parameters etc. If that is the case it is unfortunately not possible to do this using the SDK.

Thanks,
Petter
0 Kudos
Gregory_S_Intel
Employee
985 Views
Theoretically it may be possible to reencode entire GOPs if they are strict and closed calling Reset before a GOP with a new QP. In this way using just one encoder should be enough.
0 Kudos
Petter_L_Intel
Employee
985 Views
Thanks Gregory, that is an interesting proposal.

Can you expand a bit more on this, e.g. has this ever been tested?

Regards,
Petter
0 Kudos
Abdellatif_Khindouf1
985 Views
Thanks Petter and Gregory,

What I want to do is exactely what you described as "attempting to feed the encoder a frame then assess the encoded output for each frame", if I uderstand well there is no way to tell the encoder to discard the last encoded frame (in encoding order). Let me explain my specific use of the encoder:
If for exemple I need to acheive a specific video quality for each frame (PSNR = 37db) I need to reencode each frame several times to reach the targeted video quality.

Regards.
0 Kudos
Gregory_S_Intel
Employee
985 Views
Hello Abdellatif, Peter

I don't know about this particular usage model, but encoders Reset functionality is tested in a similar way. Unfortunatelly there is no way to tell an encoder to discard just one last frame. Reset resets all of the encoder state except for bitrate control. But in case of encoding with constant QP bitrate control state doesn't matter anyway.
0 Kudos
Reply