Changes

Jump to: navigation, search

OpusTodo

3,382 bytes removed, 13:20, 10 April 2013
no edit summary
== Code 1.1-beta ==
=== For IETF draft ===* Tune mode switching decisions** <s>Use SILK up to higher rates on voice</s>* Code cleanup (any left* <s>Adapt stereo SILK/CELT threshold based on stereo width</s>* Tune hybrid rate allocation?)* Multi-channel signalling Figure out how to use speech/music detection optimally** find optimal switching time (done, needs more testinglow energy/tonality)* Make opus-compare fail for single seriously trashed framesImprove variable frame size* Tune transient detector?* Use ALLOC in tonality analysis* LOTS of testing
== SILK issues ==
* PLC buffer not fully initialized (fix needs verifying)
* Mid and side using different sampling rates (fix needs verifying)
* <s>LLBR stereo issue (has a proposed fix)</s>
** <s>Introduces prefill bug (fixed on greg's tree)</s>
*<s>Artefacts on SILK mono<->stereo switching</s>
* <s>Artefacts on SILK frame size switching (e.g. 960,480 glitches)</s>
* Reduce SILK bandpass switching artefacts
* <s>Use of signed overflow (undefined in C), intentionally and otherwise. </s>
* Encoder triggers DTX randomly (even if not enabled) for 40/60 ms stereo frames
* <s>CLANG ARITHMETIC UNDEFINED at <silk/silk_NSQ_del_dec.c, (652:33)> : Op: *, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): 90005 right (int32): -25578</s>
* CLANG ARITHMETIC UNDEFINED at <silk/decode_core.c, (108:40)> : Op: *, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): 916258817 right (int32): -3
* CLANG ARITHMETIC UNDEFINED at <silk/decode_core.c, (108:40)> : Op: +, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): -418535217 right (int32): -1832517634
* CLANG ARITHMETIC UNDEFINED at <./silk/Inlines.h, (120:13)> : Op: -=, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): 2147454976 right (int32): -2147467848
<!-- ./test_opus voip 48000 2 32000 -bandwidth WB -framesize 10 /home/gmaxwell/big-fb.sw /dev/null -->
* CLANG ARITHMETIC UNDEFINED at <silk/LPC_analysis_filter.c, (68:25)> : Op: +, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): -2053682997 right (int32): -96356645
* CLANG ARITHMETIC UNDEFINED at <silk/LPC_analysis_filter.c, (67:25)> : Op: +, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): 2144927654 right (int32): 9275188
* CLANG ARITHMETIC UNDEFINED at <silk/LPC_analysis_filter.c, (63:21)> : Op: +, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): -1503335005 right (int32): -978520921
* CLANG ARITHMETIC UNDEFINED at <silk/LPC_analysis_filter.c, (64:21)> : Op: +, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): 1813111370 right (int32): 545673470
* CLANG ARITHMETIC UNDEFINED at <silk/LPC_analysis_filter.c, (65:21)> : Op: +, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): 2121005902 right (int32): 274731600
* CLANG ARITHMETIC UNDEFINED at <silk/LPC_analysis_filter.c, (72:21)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -79495168 right (int32): 2131398803
<!-- voip 16000 2 16000 -framesize 20 /home/gmaxwell/big-fb.sw /dev/null -->
* Review Tim's "LSB with no pulses" fix
* Fix decoder-side resampling delay for rates other than 48 kHz and document behavior.
* Find_poly improvements
* <s>Rename PLC.c</s>
* silk warning: comparison is always true due to limited range of data type with assert
* <s>Fatal (internal) error in silk/encode_indices.c, line 189: assertion failed: ( psIndices->contourIndex < 34 && psEncC->fs_kHz > 8 && psEncC->nb_subfr == 4 ) || ( psIndices->contourIndex < 11 && psEncC->fs_kHz == 8 && psEncC->nb_subfr == 4 ) || ( psIndices->contourIndex < 12 && psEncC->fs_kHz > 8 && psEncC->nb_subfr == 2 ) || ( psIndices->contourIndex < 3 && psEncC->fs_kHz == 8 && psEncC->nb_subfr == 2 )</s>
* <s>Fatal (internal) error in silk/encode_indices.c, line 130: assertion failed: psEncC->useInterpolatedNLSFs == 1 || psIndices->NLSFInterpCoef_Q2 == ( 1 << 2 )</s>
* <s>Fatal (internal) error in silk/encode_indices.c, line 209: assertion failed: psIndices->LTPIndex[ k ] >= 0 && psIndices->LTPIndex[ k ] < ( 8 << psIndices->PERIndex )</s>
 
=== Later ===
* <strike>Exposed CELT constrained VBR</strike>
* <strike>Fixed-point build</strike>
* <strike>Fix build system (right now it fails to build shared libraries, drops .o files all over)</strike>
* <strike>Floating point API</strike>
* Usable command-line tools (<s>opus is a major regression from libcelt right now</s>)
* Smart automatic mode decision
* psymodel based VBR
* Remove copy in inverse MDCT
* Save some float<->int conversions
== Spec ==
* Ogg mapping. See [[http://tools.ietf.org/html/draft-ietf-codec-oggopus IETF draft]]
* Matroska mapping. See: [[MatroskaOpus]]
* RTP payload format See [[http://tools.ietf.org/html/draft-spittka-payload-rtp-opus IETF draft]]
* Finish codec draft== Website ==* Ogg mapping 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 (including multi-channellike Vorbis, no raw Opus defined, only inside OGG), ... See: [[OggOpus]]* RTP payload Promotional material (some nice free or Public domain sounds in Opus format)
== Other ==
* Logo
* Test vectors
* Listening tests
* Documentation (at a minimum every exported symbol should have complete and accurate documentation)
* Add content to opus-codec.org
* Oggz-validate (should also validate opus toc)
** The above documentation
** Presentations
** Examples and test results (hyperlink to Monty's demo, gmaxwell's HA results page, etc)
* Useful example software (e.g. streaming software that works correctly) (opus-tools in xiph git)
** <s>Support for resampling in tools</s>
== Third party software Opus-tools ==* Support in ekigaA simple real time streaming example tool* Support in mumbleReplaygain (half done— needs a gain tool)* Support in asterisk* Support in firefox (rtcweb and in ogg)== Experiments ==* Support in VLC* Support in ogg123Test exp_analysis and void_my_warranty.patch* Support in ffmpeg* Support in rockbox== Future work ==* Support in foobar2000psymodel based VBR* Support Remove copy in gstreamerinverse MDCT* Support in mplayerSave some float<->int conversions* Support in xmmsImprovements to LP mode CBR (greg has some code)* Support in oggdsfBetter handling for the case where FEC has a different bandwidth than the current mode* Support in xiphqtPLC transitions on unprotected SILK-SILK bandwidth changes?

Navigation menu