The ffmpeg2theora chapter[1] of the Theora Cookbook says that the only advantage of two-pass encoding is that you can hit a specific target size. But isn't it so that you can reserve bits for difficult parts of a video, which improves the perceived quality? It may be true that Theora does quite alright without two passes, but it seems like a no-brainer to me that two passes will always be better. -- Remco [1] http://en.flossmanuals.net/TheoraCookbook/FFMPEG2Theora
On Sat, Aug 29, 2009 at 4:22 AM, Remco<remco47 at gmail.com> wrote:> The ffmpeg2theora chapter[1] of the Theora Cookbook says that the only > advantage of two-pass encoding is that you can hit a specific target > size. But isn't it so that you can reserve bits for difficult parts of > a video, which improves the perceived quality? It may be true that > Theora does quite alright without two passes, but it seems like a > no-brainer to me that two passes will always be better. > > -- > Remco > > [1] http://en.flossmanuals.net/TheoraCookbook/FFMPEG2Theora >Oh, I think I get it now: * Single-pass encoding with a constant quality will use more bits for harder parts, and deliver the best possible file size for that particular quality level, and vice-versa. * Single-pass encoding with a constant file size will reduce quality for harder parts. * Two-pass encoding with a constant quality size is senseless, since a single pass already delivers the best possible file size for the quality. * Two-pass encoding with a constant file size will use the first pass to somehow learn which quality setting will produce the target file size. Still, the result is a file with the best possible quality for that file size, just like with single-pass constant quality encoding. It's impossible to get more from the encoder. -- Remco
On Aug 28, 2009, at 7:22 PM, Remco <remco47 at gmail.com> wrote:> But isn't it so that you can reserve bits for difficult parts of > a video, which improves the perceived quality?ffmpeg2theora already has a quality-based encoding mode that does exactly that: Use more bits when they're needed and less when they're not. In fact, that is the program's default unless you specify something else.> It may be true that > Theora does quite alright without two passes, but it seems like a > no-brainer to me that two passes will always be better.Not necessarily.
>>>>> "Remco" == Remco <remco47 at gmail.com> writes:> The ffmpeg2theora chapter[1] of the Theora Cookbook says that the only > advantage of two-pass encoding is that you can hit a specific target > size. But isn't it so that you can reserve bits for difficult parts of > a video, which improves the perceived quality?Why would it have to reserve bits, if you specified a constant target quality for encoding? It just takes as much bits as are needed to hit the configured quality. In "difficult parts" it will just naturally use more bits.> Theora does quite alright without two passes, but it seems like a > no-brainer to me that two passes will always be better.You mean, because it takes twice as long to encode? Disclaimer: I wrote that part of the Cookbook :). If I'm really wrong, just fix that part, floss-manuals works like a wiki. cheers, David -- GnuPG public key: http://user.cs.tu-berlin.de/~dvdkhlng/dk.gpg Fingerprint: B17A DC95 D293 657B 4205 D016 7DEF 5323 C174 7D40 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 188 bytes Desc: not available Url : http://lists.xiph.org/pipermail/theora/attachments/20090829/fc7b9bef/attachment.pgp
[Sorry, we got off-list. Added Theora list again] On Sat, Aug 29, 2009 at 6:43 AM, Jason Self<jason.self at gmail.com> wrote:> There are alot of calculations done while encoding. As development on the > encoder continues, you should expect to see better quality with the same > file size and/or the same quality with smaller files... Depending on what > you're encoding. But regardless, either one of those are better results.For batch encoding, it would be nice to know if a constant quality level means the same thing for different videos. If I find a quality level of Q1 to be acceptable for one source, in terms of video quality alone (so I don't care about file size), will I find similar results with a quality level of 1 for another source? In other words: can I trust that Q1 means Q1 for every video? And, less importantly, if I find a quality level of Q1 to be acceptable for version 1.1 of Theora, does that mean I get a similar result for version 1.2 of Theora? And just out of curiosity, how are the quality levels translated into an encoding strategy? Are these quality levels mapped to advanced internal encoder options, or is the encoder basically one big mathematical equation that takes one parameter? (besides the video input, obviously) -- Remco