intel / libva

Libva is an implementation for VA-API (Video Acceleration API)
http://intel.github.io/libva/
Other
664 stars 302 forks source link

VP9 K-SVC support #838

Open DaveHu-TVU opened 1 month ago

DaveHu-TVU commented 1 month ago

I downloaded the code of the latest libva and found that it doesn't search any field related to VP9 SVC. Does the latest libva version support VP9 SVC? thanks!

DaveHu-TVU commented 1 month ago

I have read the document https://www.intel.com/content/www/us/en/developer/articles/technical/support-va-api-vp9-k-svc-encoding-on-chromeos.html and this document which describes the basic process of encoding VP9 K-SVC with VAAPI, so I would like to find out more about the VAAPI VP9 K-SVC

XinfengZhang commented 1 month ago

VP9 SVC is handled by application , libva+media driver only provide support of DRC (dynamic resolution change) , it means , you could change the resolution in a sequence . it then provide the opportunity to enable SVC by spatial and temporal layer enabling. so, you could use different resolution for different layer in one sequence.

DaveHu-TVU commented 1 month ago

thanks for your reply.

you could change the resolution in a sequence -----> it means, there are different resolutions in a sequence? with one encoder pipeline?

XinfengZhang commented 1 month ago

yes, it means, smaller resolution picture could be reference of bigger resolution picture, change resolution without an IDR frame.

DaveHu-TVU commented 1 month ago

Thanks, does vpl or msdk have a sample with vp9 k-svc? and do you have more documents about VP9-KSVC? if K-SVC requires application handling, I need to know more details.

XinfengZhang commented 1 month ago

AFAIK, there are no sample in msdk or vpl. the link you pasted before include one 3x3 description. 3 layers spatial scaling and 3 temporal layers

DaveHu-TVU commented 1 month ago

Hi @XinfengZhang , I found the mfxExtVP9TemporalLayers in https://intel.github.io/libvpl/v2.10/API_ref/VPL_structs_encode.html#_CPPv4N23mfxExtVP9TemporalLayers5LayerE, it means, vpl had supported TemporalLayer and can't support SpatialLayer, right?