OpusTodo: Difference between revisions
Jump to navigation
Jump to search
Martin.leese (talk | contribs) m (moved OPUS TODO to OpusTodo: To make consistent with TheroaTodo) |
|||
Line 8: | Line 8: | ||
== Website == | == Website == | ||
* De-uglify webpage - some suggestions: write about codecs obsoleted by OPUS (Speex, CELT, Vorbis(?), and the prop. ones) | * De-uglify webpage - some suggestions: | ||
* Promotional material (some nice free | ** write about codecs obsoleted by OPUS (Speex, CELT, Vorbis(?), and the prop. ones) | ||
** write about implementations (is there only one so far?) | |||
** comparison table (Opus, Vorbis, Speex, ..., MP5) of features (channels, freq, bits per sample, license, language (C89), integer impl. (Vorbis decoder only, Opus YES, ...) | |||
** future use in video files (Theora? Dirac? WebM? other future codecs...) | |||
** audio files for storage (like Vorbis, no raw Opus defined, only inside OGG), ... | |||
* Promotional material (some nice free/public-domain sounds/radio stations in Opus format) | |||
== Other == | == Other == |
Revision as of 18:20, 23 December 2014
For 1.1.1
- Unconstrained SILK VBR
Spec
- Ogg mapping. See [IETF draft]
- Matroska mapping. See: MatroskaOpus And firefox/ffmpeg implementation
- RTP payload format See [IETF draft]
Website
- De-uglify webpage - some suggestions:
- write about codecs obsoleted by OPUS (Speex, CELT, Vorbis(?), and the prop. ones)
- write about implementations (is there only one so far?)
- comparison table (Opus, Vorbis, Speex, ..., MP5) of features (channels, freq, bits per sample, license, language (C89), integer impl. (Vorbis decoder only, Opus YES, ...)
- future use in video files (Theora? Dirac? WebM? other future codecs...)
- audio files for storage (like Vorbis, no raw Opus defined, only inside OGG), ...
- Promotional material (some nice free/public-domain sounds/radio stations in Opus format)
Other
- Oggz-validate (should also validate opus toc)
Opus-tools
- Port opusdec to libopusfile/libopusurl.
- A simple real time streaming example tool
- Start with opusrtp.c in opus-tools
- Make
opusrtp rtp://example.com:5431/
listen to that host and port and mux packets from there. Generalize the cpac bases --sniff implementation - Make sending similarly generic. Maybe just
opusrtp source.opus -o rtp://example.com:5431/
to send source.opus out to the destination? - Make --sniff save one file per
- Implement DTLS-SRTP. See webrtc.
- audio capture/encode, decode/playback?
- Parse and act on sdp for convenience and testing.
- Replaygain (half done— needs a gain tool)
Surround work
- Apply spreading to energy masking
- More conservative energy masking (not just mean difference) and dynalloc
- Allow SILK/hybrid on center channel for voice?
Psychoacoustic stuff
- Adaptive width narrowing and forced intensity stereo bands
Optimisations
- Vectorising comb_filter()
- Use 16-bit mul plus shift in denormalise_bands()
- Optimise MDCT somehow
- Merge MIPS optimisations
Third-Party tool enhancements
Future work
- psymodel based VBR
- Remove copy in inverse MDCT
- Save some float<->int conversions
- Improvements to LP mode CBR (greg has some code)
- Better handling for the case where FEC has a different bandwidth than the current mode
- PLC transitions on unprotected SILK-SILK bandwidth changes?
- Figure out how to use speech/music detection optimally
- find optimal switching time (low energy/tonality)
- Improve variable frame size