-
-
Notifications
You must be signed in to change notification settings - Fork 304
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nvidia hardware decoder support #1296
base: master
Are you sure you want to change the base?
Conversation
avc: additional avcC box parsing
minor encoder reporting cleanup
I get this cmake error when trying to compile:
From where do I get the cmake config script? I have installed |
It compiles correctly despite the error above. Probably that dependency is not needed. |
The cmake config script comes with cmake, I think. Possibly the dependency is only needed for runtime, and perhaps only for JPEG decoding. |
I didn't manage to make it work, but that is probably due to the very old laptop (2011) which I could not convince to use the GPU instead of the built-in Intel graphics ( |
We might also need an extended version of |
I think we probably need to just be tolerant of a software or hardware decoder that claims to support a format, but can't quite do it after all. I'm thinking of cases where it needs a special codec feature that only shows up once you're down at the NAL unit level. In that case, we'd just try another decoder if there was one, and the user hadn't asked for a specific implementation. So maybe that is enough. If we do want to
I'm not sure about other hardware / accelerated implementation. Will see if I can find out what Intel does. |
… bradh-nvdev_merge_2
I could now test the nvidia decoder on a GT1030 with h.265. When parallel tile decoding is enabled, it stops somewhere in the middle with a "cannot get CUDA context" error. Probably the number of parallel decoders is limited. Without parallel decoding, it works, but I was surprised how slow it is. NVidia hardware decoding: 9.0s versus 0.7s with the libde265 software decoder (both without parallel tile decoding). My guess is that the hardware setup time is slow. AVC and JPEG also work, but they are also much slower than the software decoders. I could not test AV1. What are your experiences? |
The problem is that The supported formats should be easy to cache. Caching a decoder context is not so easy. That might require a plugin function to release the cached decoder at the end of each image. Or maybe we should even keep the cached decoder for even longer in case we are doing batch conversion of many images. Then, we'd call the cache cleanup function after a short time delay. |
I've measure the actual decoding time (excluding all initializations and conversions) for a tiled h265 image.
That is what we can expect with perfect caching. |
Thanks bradh, Functionally working fine as i have a requirement to decode heic image on GPU. static int nvdec_does_support_format(enum heif_compression_format format)
`time ./examples/heif-dec ~/ffmpeg_test/testfiles/LiveOff.HEIC out.png real 0m17.878s |
Yes. This can be optimised, as identified by Dirk last month. That work hasn't been done yet though. |
Nothing specific. There is no guarantee this will even be added to libheif, let alone when or in what form. Please be realistic in your expectations - right now there is no customer requirement for it, and no specific funding. |
No description provided.