[feature request] Parallelized decoding example + option for encoder to add regular restart points
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 3.3k
- Forks
- 808
- PR merge metrics
- No merged PRs in 30d
Description
I found a paper on GPU-parallelized decoding of FLAC http://users.cecs.anu.edu.au/~Eric.McCreath/papers/YeMcCreathISPA2018.pdf https://github.com/Harinlen/GPUraku
Can opus bitstream be decoded in parallelized fashion (offline / batch decoding where the full bitstream is available for scan)? (probably after range decoding step). The usecase is to speed up offline decoding of large multi-hour files as a prior step by speech recognition pipeline.
If I understand well, for that one needs to ensure regular "sync-points" to ensure regular codec state reset (e.g. as if once every minute the codec switched between CELT to CELT - so no actual mode switching, but just resetting the codec state at regular moments in time)? Is it so?
Can this be somehow hacked around with existing libopus? Do you know of any attempts? It would also be interesting to know if Chromium can be asked to generate any of these "sync points" as their stream encoding pipeline.
I also found work on parallelized opus encoding: https://www.freac.org/developer-blog-mainmenu-9/14-freac/257-introducing-superfast-conversions https://github.com/enzo1982/superfast https://github.com/enzo1982/freac by @enzo1982. Would using this parallelized encoding scheme enable parallelized decoding as well?
In the IETF opus document the number of mentions of the word "parallel" is 0, no discussion at all :)
Thank you!
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no source files, tests, or entry points; start by reviewing libopus and the linked GPU-parallelized decoding and encoding projects. Determine whether offline parallel decoding and regular codec-state restart points are feasible, including Chromium generation, and document the required design or limitations as the definition of done.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- audio-video-rtc
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100