Live data from Hacker News

Daala progress update

people.xiph.org

31–40 of 40 posts

Re: Daala progress update

#31
post #7

Applying an easing animation on the split screen comparison mouse drag was probably not the most user friendly idea.

I personally think the whole slider comparison method is pretty dumb - it makes direct comparison of certain image areas much harder (since you have to swivel your mouse around, not to mention how annoying this is on mobile) compared to a simpler solution where the whole image changes on mouse hover (which on mobile works nicely with a tap). This is how basically all screenshot comparison sites out there operate, and it really does work the best for the purpose of comparing two images like this.

Re: Daala progress update

#33
post #30

Subjectively, on that image VP9 looks nicer than Daala. (And x265 looks nicer than both.)

While in this case VP9/x256 may be better indeed (they seem to preserve higher-frequency details than Daala), beware of "looks nicer" when judging codecs in genreal. Codecs are not in the business of making nicely distorted images (they're not Photoshop/Instagram). They're supposed to keep images as close to the original as possible.

For example smooth images tend to be judged as "nice", but if the original had noise then smoothness is a distortion caused by lack of detail and deblocking blur covering it up. JPEG 2000 fell into the smoothness trap: it gave it better PSNR and nice low-bitrate examples, but ultimately failed, because you don't always want everything looking like plastic.

Re: Daala progress update

#34
post #33
post #30

Subjectively, on that image VP9 looks nicer than Daala. (And x265 looks nicer than both.)

While in this case VP9/x256 may be better indeed (they seem to preserve higher-frequency details than Daala), beware of "looks nicer" when judging codecs in genreal. Codecs are not in the business of making nicely distorted images (they're not Photoshop/Instagram). They're supposed to keep images as close to the original as possible . For example smooth images tend to be judged as "nice", but if the original had nois…

It would be interesting to build a codec with human preferences in mind; you might end up with images that most people think looks better than the original at a fraction of the size - how you make those choices is very difficult though.

Re: Daala progress update

#35
post #25

Earlier quoted context omitted.

Vidyo uses an implementation of H.264 SVC, I believe. But in general it's not been widely adopted. SVC generally has worse compression than normal H.264, so for streaming it makes more sense just to store multiple encodes at different qualities.

Yes, SVC's sweet spot is more geared towards real-time than pre-cacheable streams. SVC stands for "scalable video coding", and generally behaves in at least one of two dimensions: temporal or spatial. Temporal SVC is pretty much what we have with H.264 AVC; it provides a means to support multiple receiver frame rates from a single sender frame rate. So, if Alice transmits at 60fps, a temporally-smart coding will allo…

Even for real-time use cases, the range of bitrates where (spatial) SVC provides an advantage over simulcast is relatively small, and it's not a big advantage. Plus, it's a patent minefield. I've also seen people argue that it has a computational complexity advantage over coding multiple streams, but a properly written simulcast encoder can share a bunch of the work between encodes as well (libvpx has an implementation of this for VP8, for example, for use in WebRTC).

Re: Daala progress update

#36
post #24
post #3

Earlier quoted context omitted.

And Daala is not fixed yet, so there's a good chance of further improvements a-coming. And it's likely to be relatively clean of patents and may enable a cross-everything royalty free implementation. But time will tell how MPEG LA will feel about that. Edit: I'm also wondering, just in case any experts are around... with Daala's design seeming at first glance inherently more suitable for that kind of thing, lifting f…

it's likely to be relatively clean of patents and may enable a cross-everything royalty free implementation. But time will tell how MPEG LA will feel about that. So that's the thing. I'm all for royalty-free encoders, but the only way to know if an algorithm is really royalty-free is for it to be older than the current maximum patent age. I believe that Daala is being designed to be royalty-free, but that's not measu…

The U.S. patent system makes it impossible to guarantee anything with respect to patent infringement. But how many royalty-free codecs does Xiph need to develop and deploy at scale [0-4], without anyone filing lawsuits, before people believe that success here is possible?

P.S., in case it's not clear, I've volunteered for the Xiph.Org Foundation for over a decade.

[0] https://en.wikipedia.org/wiki/Vorbis#Support

[1] https://en.wikipedia.org/wiki/List_of_hardware_and_software_...

[2] https://en.wikipedia.org/wiki/Speex#Applications

[3] https://en.wikipedia.org/wiki/Theora#Playback

[4] https://en.wikipedia.org/wiki/Opus_%28audio_codec%29#Support

Re: Daala progress update

#37
post #20

Earlier quoted context omitted.

Daala uses wavelets in a few areas, but is largely a lapped DCT based codec. It's not especially suited for producing scalable bitstreams, at least not much more than any other codec. There's little demand for it right now, so we don't plan to include it as a feature. However, if you have some interesting application of it, feel free to let us know!

This isn't my direct area of expertise, so I apologize in advance if I am incorrect about anything. Video streaming suffers from unstable connections, and varied throughputs. Some home connections can support high fidelity 1080p and others can just manage visibly degraded 480p. Right now, either you have to store each resolution separately (which can be costly, esp. at 3x redundancy and esp. if your average video is…

[deleted]

Re: Daala progress update

#38
post #33

Earlier quoted context omitted.

While in this case VP9/x256 may be better indeed (they seem to preserve higher-frequency details than Daala), beware of "looks nicer" when judging codecs in genreal. Codecs are not in the business of making nicely distorted images (they're not Photoshop/Instagram). They're supposed to keep images as close to the original as possible . For example smooth images tend to be judged as "nice", but if the original had nois…

It would be interesting to build a codec with human preferences in mind; you might end up with images that most people think looks better than the original at a fraction of the size - how you make those choices is very difficult though.

Some video encoders already incorporate perceptual optimizations (eg, x264's psy-rd and psy-trellis) that "look" better but lead to objectively worse results with traditional image quality metrics.

Audio codecs, however, have been using psychoacoustic models for decades. Frequencies outside the human hearing range are clipped, masked noises are discarded, voice codecs emphasize the range of human speech, etc.

Re: Daala progress update

#39
post #28
post #24

Earlier quoted context omitted.

it's likely to be relatively clean of patents and may enable a cross-everything royalty free implementation. But time will tell how MPEG LA will feel about that. So that's the thing. I'm all for royalty-free encoders, but the only way to know if an algorithm is really royalty-free is for it to be older than the current maximum patent age. I believe that Daala is being designed to be royalty-free, but that's not measu…

Where exactly did the community guarantee that Daala was clean of patents?

I don't know if there has been any concerted effort to find possible patents, however daala is touted as patent free because its implementation uses different technologies from H264/HEVC, hence most/all of the MPEG-LA patents shouldn't apply.

Re: Daala progress update

#40
post #35
post #25

Earlier quoted context omitted.

Yes, SVC's sweet spot is more geared towards real-time than pre-cacheable streams. SVC stands for "scalable video coding", and generally behaves in at least one of two dimensions: temporal or spatial. Temporal SVC is pretty much what we have with H.264 AVC; it provides a means to support multiple receiver frame rates from a single sender frame rate. So, if Alice transmits at 60fps, a temporally-smart coding will allo…

Even for real-time use cases, the range of bitrates where (spatial) SVC provides an advantage over simulcast is relatively small, and it's not a big advantage. Plus, it's a patent minefield. I've also seen people argue that it has a computational complexity advantage over coding multiple streams, but a properly written simulcast encoder can share a bunch of the work between encodes as well (libvpx has an implementati…

Agreed; the way the numbers work out today, the advantages are minimal. The story looks like it might be a bit different with 4k on the horizon, though.
Post reply on HN