TheoraTodo: Difference between revisions

From XiphWiki
Jump to navigation Jump to search
(typo)
(→‎1.2: add bits from my todo list)
 
(16 intermediate revisions by 5 users not shown)
Line 1: Line 1:
This is the todo list for the theora project. If you're interested in helping out please try one of the ideas below, and coordinate with us on the [http://lists.xiph.org/mailman/listinfo/theora-dev mailing list] or [irc://freenode.net/theora irc].
This is the todo list for the theora project. If you're interested in helping out please try one of the ideas below, and coordinate with us on the [http://lists.xiph.org/mailman/listinfo/theora-dev mailing list] or [irc://freenode.net/theora irc].


= Final 1.0 =
= libtheora reference implementation =


== libtheora reference implementation ==
== 1.2 ==
 
* (done) Activity masking (greatly improved perceptual quality)
* (done) Rename speedlevel 2 to 3 and provide a new speedlevel 2
* (done) ARM4/6/7/Neon assembly support
* (done) C64x+ support
* Fix SAD-for-SATD in intra analysis from Ralph's speed level patch.
* Testing testing testing
* Decoder speedups (improvements to ARM/c64x platform support)
* Encoder speedups (additional short-cutting in fast modes)
* Temporal RDO
* Quantizer matrix improvements (Shift the range up to make higher rates achievable)
* Mode selection improvements (split 3qi roles?)
* Codebook re-optimization (Greg has code for this; waiting for other changes to settle)
* Review open tickets
* Review patches from the major distros
 
== 1.1 ==
 
* complete Ogg mapping description in the spec
* update RTP mapping spec
 
1.1.0 was released on 2009-09-24.
 
 
== 1.0 ==


During [[TheoraMeeting200804]] it was stated that before 1.0, the following should happen:
During [[TheoraMeeting200804]] it was stated that before 1.0, the following should happen:
Line 10: Line 35:
* rewrite the API documentation, more information besides C syntax
* rewrite the API documentation, more information besides C syntax
* think a bit more about the logo and its use policy
* think a bit more about the logo and its use policy
* integrate [http://lists.xiph.org/pipermail/theora-dev/2007-December/003497.html VS MMX patches and VS project files from Nils Pipenbrinck]
* integrate [http://lists.xiph.org/pipermail/theora-dev/2008-April/003626.html VS patches from Nils Pipenbrinck for the filter and idct mmx functions to match more the gcc style]
* check build support on more platforms, particularly MSVC and Apple's XCode
* check build support on more platforms, particularly MSVC and Apple's XCode
* fix most [https://trac.xiph.org/query?status=new&status=assigned&status=reopened&group=component&component=Theora+-+documentation&component=Theora+-+examples&component=Theora+-+libtheora&component=XiphQT+-+QuickTime+Components&component=ffmpeg2theora&component=website+-+theora&order=priority Theora tickets in the trac]
* fix most [https://trac.xiph.org/query?status=new&status=assigned&status=reopened&group=component&component=Theora+-+documentation&component=Theora+-+examples&component=Theora+-+libtheora&component=XiphQT+-+QuickTime+Components&component=ffmpeg2theora&component=website+-+theora&order=priority Theora tickets in the trac]
* remove debug flags and add optimization ones
* remove debug flags (done in RC1) and add optimization ones
* add some examples (YUV4MPEG -> Theora ?), add docs for existing ones (what is it supposed to do ?)
* add some examples (YUV4MPEG -> Theora ?), add docs for existing ones (what is it supposed to do ?)
According to the [http://xiph.org/minutes/2008/theora-meet-20080401.txt 2008-04-01 Theora meeting] ''the '1.0' part is to be complete in a month or two I hope''.


== Application Support ==
1.0 was released on 2008-11-03.
 
= Application Support =


* update binaries of [http://xiph.org/quicktime/ XiphQT] and [http://illiminable.com/ogg/ Directshow Filters] (includig fix for bug [https://trac.xiph.org/ticket/1262 1262] and [https://trac.xiph.org/ticket/1301 1301])
* update binaries of [http://xiph.org/quicktime/ XiphQT] and [http://illiminable.com/ogg/ Directshow Filters]
* update and fix FFMPEG2THEORA (see [https://trac.xiph.org/report/22 Trac])
* update and fix FFMPEG2THEORA (see [https://trac.xiph.org/report/22 Trac])


=== Easy Transcoding on Windows ===
== Easy Transcoding on Windows ==


It's difficult for some people to create theora files outside the command line. We need a simple tool that does drag-and-drop transcoding, with a gui for metadata and license marking, and some simple cleanup like crop/scale/rotate and color adjustment. This could be just a wrapper around ffmpeg2theora.
It's difficult for some people to create theora files outside the command line. We need a simple tool that does drag-and-drop transcoding, with a gui for metadata and license marking, and some simple cleanup like crop/scale/rotate and color adjustment. This could be just a wrapper around ffmpeg2theora.
Line 28: Line 54:
Albeit technically it would be possible (and simple) to do GUI wrapper for ffmpeg2theora it may be wiser to write a completely new application which uses DirectShow to decode the given media file. This way the encoder wouldn't have to ship with evil patented decoders and still can transcode any source the computer can play in e.g. Windows Media Player. - [[User:Maikmerten|Maikmerten]] 12:06, 30 July 2007 (PDT)
Albeit technically it would be possible (and simple) to do GUI wrapper for ffmpeg2theora it may be wiser to write a completely new application which uses DirectShow to decode the given media file. This way the encoder wouldn't have to ship with evil patented decoders and still can transcode any source the computer can play in e.g. Windows Media Player. - [[User:Maikmerten|Maikmerten]] 12:06, 30 July 2007 (PDT)


=== Quicktime export ===
== Quicktime export ==


It is important that content creators be able to easily create theora videos.
It is important that content creators be able to easily create theora videos.
Line 35: Line 61:
* do a gui transcode tool, a little like ffmpeg2theora, but pulling from the native quicktime decoders and writing out theora + vorbis/speex. Must have a drag and drop interface with sensible quality presets, metadata insertion. Bonus points for integrated stream sourcing and [http://wiki.creativecommons.org/CcPublisher upload] to various free sharing sites with appropriate CC licensing.
* do a gui transcode tool, a little like ffmpeg2theora, but pulling from the native quicktime decoders and writing out theora + vorbis/speex. Must have a drag and drop interface with sensible quality presets, metadata insertion. Bonus points for integrated stream sourcing and [http://wiki.creativecommons.org/CcPublisher upload] to various free sharing sites with appropriate CC licensing.


== misc ==
== Dynamic/variable keyframing ==
 
Setting keyframes dynamically could increase both quality and compression.
* prove wrong / obsolete all those [http://lwn.net/Articles/261694/ 1], [http://web.mit.edu/xiphmont/Public/theora/demo.html 2] "Theora is crap" claims
Have a look at this: [http://portal.acm.org/citation.cfm?id=950992].
 
:That paper is not really applicable any more. Libtheora tracks an estimated cost of coding a frames as an intra and will switch if its expects a net win. In multi-pass encoding we could use this data for optimal placement (via Dijkstra over the directed graph formed by all possible keyframe constraint windows in all contiguous segments where the estimated cost of using a keyframe is positive), although preliminary testing didn't show much benefit.  This may be due to accuracy problems in the current estimates.
= Post 1.0 =
 
* Improve [http://svn.xiph.org/branches/theora-thusnelda/ theora-thusnelda] an make it the reference implementation: see [http://web.mit.edu/xiphmont/Public/theora/demo.html Theora "the push for 1.0" update] and [http://web.mit.edu/xiphmont/Public/theora/demo2.html Theora: The push for 1.0, Thusnelda project update 20080320]: xiphmont articles on theora future (actually, this will be in libtheora 1.1 not 1.0)
* complete Ogg mapping description in the spec
* update RTP mapping spec
According to the [http://xiph.org/minutes/2008/theora-meet-20080401.txt 2008-04-01 Theora meeting] the 1.1 release ''is on the six-month timeframe''.


= Theora II =
* see [http://web.mit.edu/xiphmont/Public/theora/demo2.html Theora: The push for 1.0, Thusnelda project update 20080320] ('''beyond 1.0 spec''' section) and [http://web.mit.edu/xiphmont/Public/theora/demo.html Theora "the push for 1.0" update]: xiphmont articles on theora future


[[Category:Theora]]
[[Category:Theora]]

Latest revision as of 10:56, 29 March 2011

This is the todo list for the theora project. If you're interested in helping out please try one of the ideas below, and coordinate with us on the mailing list or irc.

libtheora reference implementation

1.2

  • (done) Activity masking (greatly improved perceptual quality)
  • (done) Rename speedlevel 2 to 3 and provide a new speedlevel 2
  • (done) ARM4/6/7/Neon assembly support
  • (done) C64x+ support
  • Fix SAD-for-SATD in intra analysis from Ralph's speed level patch.
  • Testing testing testing
  • Decoder speedups (improvements to ARM/c64x platform support)
  • Encoder speedups (additional short-cutting in fast modes)
  • Temporal RDO
  • Quantizer matrix improvements (Shift the range up to make higher rates achievable)
  • Mode selection improvements (split 3qi roles?)
  • Codebook re-optimization (Greg has code for this; waiting for other changes to settle)
  • Review open tickets
  • Review patches from the major distros

1.1

  • complete Ogg mapping description in the spec
  • update RTP mapping spec

1.1.0 was released on 2009-09-24.


1.0

During TheoraMeeting200804 it was stated that before 1.0, the following should happen:

1.0 was released on 2008-11-03.

Application Support

Easy Transcoding on Windows

It's difficult for some people to create theora files outside the command line. We need a simple tool that does drag-and-drop transcoding, with a gui for metadata and license marking, and some simple cleanup like crop/scale/rotate and color adjustment. This could be just a wrapper around ffmpeg2theora.

Albeit technically it would be possible (and simple) to do GUI wrapper for ffmpeg2theora it may be wiser to write a completely new application which uses DirectShow to decode the given media file. This way the encoder wouldn't have to ship with evil patented decoders and still can transcode any source the computer can play in e.g. Windows Media Player. - Maikmerten 12:06, 30 July 2007 (PDT)

Quicktime export

It is important that content creators be able to easily create theora videos.

  • write a stand-alone output encoder plugin that does best-practices export
  • do a gui transcode tool, a little like ffmpeg2theora, but pulling from the native quicktime decoders and writing out theora + vorbis/speex. Must have a drag and drop interface with sensible quality presets, metadata insertion. Bonus points for integrated stream sourcing and upload to various free sharing sites with appropriate CC licensing.

Dynamic/variable keyframing

Setting keyframes dynamically could increase both quality and compression. Have a look at this: [1].

That paper is not really applicable any more. Libtheora tracks an estimated cost of coding a frames as an intra and will switch if its expects a net win. In multi-pass encoding we could use this data for optimal placement (via Dijkstra over the directed graph formed by all possible keyframe constraint windows in all contiguous segments where the estimated cost of using a keyframe is positive), although preliminary testing didn't show much benefit. This may be due to accuracy problems in the current estimates.