Log in

View Full Version : Xiph & Mozilla's Daala codec


Pages : 1 [2] 3 4 5 6

mzso
10th July 2014, 14:05
More or less good but at some samples Daala artifacts (repeating not natural patterns instead of fine detail on textures; I am not sure to call this ringing which was mentioned as current Daala primary fault) looks visually (dunno about metrics) very annoying even in compare to VP8 blurring or JPEG blocking. You can see such artifacts in full resolution samples (http://people.xiph.org/~xiphmont/demo/daala/update1-tool2b.shtml):

Mercado dos Lavradores - textures on the ground (gravel and tiles);
Crepuscular Rays - grass and leaves;
Washington Monument - trees leaves.

Also while photos are good for still image comparison I would also include some CGI or anime samples to see it reaction for not so natural pictures with a lot of hard edges and gradients.

I disagree. It produced much the same artifacts as x264, but it's more exaggerated. It looks a bit like sharpening, so in some places it's benevolent.
It also smudges things more on other parts.

Nintendo Maniac 64
10th July 2014, 18:57
I believe the "ringing" in question may be the artificial noise that was mentioned in the slides just a few posts up. Such artificial noise was also mentioned in the video posted on the first page of this thread.

ckmox
11th July 2014, 00:11
Did they ever have a stated quality goal? If it was ~50% of HEVC's filesize for equal quality, then they have roughly 10 years to get something together. ;)

we're targeting 20% better than state of the art in 2015 source: http://www.reddit.com/r/linux/comments/1grbe8/introducing_daala_the_nextnextgeneration_free/can4eih

about the "ringing" artifacts they are trying to solve it here are my sources

https://wiki.xiph.org/DaalaMeeting20140603
https://wiki.xiph.org/DaalaMeeting20140624

you can get more previous weekly meetings here https://wiki.xiph.org/Daala

Gravitator
14th September 2014, 22:16
Anyone can write their comments and conjectures on the parallel forum > Daala-vs-HEVC (http://forum.videohelp.com/threads/365788-Create-a-theme-Daala-vs-HEVC)

MoSal
25th September 2014, 00:09
Image Painting
https://people.xiph.org/~jm/daala/paint_demo/

foxyshadis
25th September 2014, 06:36
Very cool. The old Daala lost badly to x264, x265, and vp9 when I tested it on still images in June. (Was going to post shots but forgot.) I'll make a build of this and test it tomorrow.

MoSal
25th September 2014, 14:18
Very cool. The old Daala lost badly to x264, x265, and vp9 when I tested it on still images in June. (Was going to post shots but forgot.) I'll make a build of this and test it tomorrow.

They still have a long way to go, and they know it (they want Daala to be better, not just competitive).
But the gap is definitely getting smaller.

qyot27
27th September 2014, 02:48
So, uh, it was just called to my attention that VLC supports decoding and encoding of Daala now (http://git.videolan.org/?p=vlc.git&a=search&h=HEAD&st=commit&s=daala) (in git). The decoder and demuxer were committed on August 28th, the encoder was committed 5 days ago. It's disabled by default, but yeah.

It's been a long, long time since I've messed with compiling VLC (and only did so with a native Linux build), so I'll have to brush up, but I'd consider this fairly significant in general. It's almost certainly more comfortable than the example player in the Daala source code.

Nintendo Maniac 64
27th September 2014, 23:11
I'll make a build of this and test it tomorrow.

So uh, 2 days later...

foxyshadis
29th September 2014, 14:49
So uh, 2 days later...

Sorry, I have a real bad habit of doing that. I used it on linux, but futzed with mingw until I started working on another project and forgot all about it. I got it to build properly now, but it's dynamic, sorry about that. I have no idea how to make static builds.

daala jm branch 20140929 (https://dl.dropboxusercontent.com/u/54412753/daala/daala-20140929-jm.7z) (commit 898f970, the most recent)

Tommy Carrot
29th September 2014, 18:07
Thanks for the build. I've previously tried a build from april, it has definitely improved a lot since then. It's still very far from being usable, it's very slow and has problems with ringing and temporal stability, but the detail retention is actually quite remarkable. I had doubts about this project, but if they can fix these issues, it could be fairly promising.

mandarinka
18th November 2014, 21:46
https://people.xiph.org/~jm/daala/pvq_demo/

New demo has been released, about the perceptual vector quantization (hmm, I thought it was called pyramid VQ before, not that it matters...).

Nintendo Maniac 64
19th November 2014, 00:12
https://people.xiph.org/~jm/daala/pvq_demo/

They encoded their Daala images as JPEG.

o...kaaaaaaaayyyyy....

LigH
19th November 2014, 08:56
Suitable for a visual demonstration. If the video compression artefacts are a magnitude more obvious than the JPEG artefacts, it won't hurt too much.

With low quantization, JPEG can be quite exact; and with block adaptive quantization, it doesn't even waste too much space (I just wish there was any other tool than xat JPEG Optimizer, preferably freeware, which can create them).

foxyshadis
19th November 2014, 13:42
Yay, I figured out how to make a static build! SDL sucks. Latest stuff, fresh from my terrible karaoke night: daala-20141118 (https://dl.dropboxusercontent.com/u/54412753/daala/daala-20141118.7z)

Difficulty: Last week, the entire frequency-domain intra prediction scheme was scrapped. (Demo2 is no more (https://people.xiph.org/~xiphmont/demo/daala/demo2.shtml).) Hopefully other improvements have made up for it.

Tommy Carrot
19th November 2014, 16:38
Nice! Thanks for the new build (and for making win32 build for us xp users). I must admit, the visual quality has not improved as much as i hoped for after looking at the commit log, but still, slow but steady improvement.

foxyshadis
27th November 2014, 09:59
I'm setting up a weekly-or-so build folder: Daala builds (https://www.dropbox.com/sh/e1xnuxga4vshbte/AACEE-RGUEcjrHQYqdReMWbka?dl=0). Check-ins are pretty slow at this point, just 2-3 a week, but hopefully things will ramp up again soon.

LigH
27th November 2014, 10:20
:thanks:

At the moment, Daala is not yet really useful, rather slow and with little support, just like x265 in very early development... but times will change, and it is certainly an advantage to be able to participate, your auto-builds being an important factor.

mandarinka
28th November 2014, 19:47
:thanks:

At the moment, Daala is not yet really useful, rather slow and with little support, just like x265 in very early development... but times will change, and it is certainly an advantage to be able to participate, your auto-builds being an important factor.

x265 in the very early state was a functional encoder for a completed and standardized format. Daala has not reached bitstream freeze yet, much less completion of the research phase on the format and compression scheme.

I'd say in its current state it is more comaparable to the demonstration encoders for the various HEVC proposals.

Kurtnoise
19th December 2014, 15:04
A windows binary (https://www.mediafire.com/?4my77zfj4rd1az9) from today...

The changelog available here (https://git.xiph.org/?p=daala.git;a=shortlog).

Nintendo Maniac 64
20th December 2014, 00:06
Hey, perfect for comparing to the newest BPG (HEVC image) build that just came out today!

libbpg-0.9.4 is out. Extract of the changelog:


http://bellard.org/bpg/libbpg-0.9.4.tar.gz

LigH
20th December 2014, 14:11
BFG-9000? "Big F**ing Gun"? ... Ah, no, BPG = Better Portable Graphics (http://en.wikipedia.org/wiki/Better_Portable_Graphics) ... bold name. :rolleyes:

Nintendo Maniac 64
21st December 2014, 00:05
Clearly you'd use it for big freaking graphics so that you don't have huge filesizes, right? :p

Nevertheless, typo fixed.

mzso
21st December 2014, 16:34
BPG didn't amaze me, it looks around equal to jpg at sizes which provide acceptable quality. And is sometimes worse, by smudging, bluring away detail.

LigH
21st December 2014, 19:01
Similar to WebP and WebM, both based on vpx. There are people recompressing already coarse quantized JPEG to WebP to reduce the image file size even more... nonsensical.

mandarinka
27th December 2014, 20:42
In case anyone missed, the Daala intra compression demo was finally officially released (I don't really get why they had it on their web for half a year before finishing it and officially releasing to the world?)

https://people.xiph.org/~xiphmont/demo/daala/update1.shtml

I think the encoded images in the comparison tool are updated to match with never versions:

The update text (and demo code) was originally for a July update, as still image work was mostly in the beginning of the year. That update get held up and hadn't been released officially, though it had been discovered by and discussed at forums like doom9. I regenerated the metrics and image runs to use latest versions of all the codecs involved (only Daala and x265 improved) for this official better-late-than-never progress report!

foxyshadis
30th December 2014, 00:54
There haven't been many changes in the past month, but in the spirit of the new year, here's the latest Windows build: daala-20141229 (https://dl.dropboxusercontent.com/u/54412753/daala/daala-20141229.7z)

Kurtnoise
5th January 2015, 14:13
@foxy : did you use the libjpeg-turbo lib or the old libjpeg one ? The 1st one should be faster...

Did you succeed to compile it as a x64 arch ?

foxyshadis
5th January 2015, 21:51
@foxy : did you use the libjpeg-turbo lib or the old libjpeg one ? The 1st one should be faster...

Did you succeed to compile it as a x64 arch ?

This doesn't call for jpeg at all, but I always use turbo when I build with it. It's a lot more stable, too, compared to the newer versions of ijg jpeg. My builds always include x64 too.

ckmox
27th January 2015, 10:44
technical explanation about Daala https://www.youtube.com/watch?v=Dmho4gcRvQ4 a noob like me did not understand anything, he also explained their current progress, i only like the question and answer in the end although short

LigH
27th January 2015, 11:46
It is in fact very interesting and entertaining. Things to avoid in your algorithms to avoid patent infrigement ... that requires a fundamentally different look on very conventional methods to encode video. Just one example: Do not calculate differences between pixels of video frames to get the residual as base for motion prediction; instead, calculate differences of already transformed parameters.

Highlight of the video around 42:10 is the demonstration of a Daala decoder implemented in JavaScript (https://people.xiph.org/~xiphmont/demo/daala/player-demo.shtml).

Nintendo Maniac 64
28th January 2015, 00:10
technical explanation about Daala https://www.youtube.com/watch?v=Dmho4gcRvQ4

Well that's interesting - they claim currently better than x265 at texture and, above 1bit per pixel, also on clean edges. I wonder how this compares for the overall image quality?

ckmox
28th January 2015, 01:09
this is the javascript demo of daala he presented on the youtube video https://people.xiph.org/~xiphmont/demo/daala/player-demo.shtml

the bitrate is high though, i wish they made a low bitrate video one like 400kbps to really compare its video quality to x265 at the moment

vivan
28th January 2015, 01:41
Nice demo ;D
http://i.imgur.com/2yLXELVl.png (http://i.imgur.com/2yLXELV.png)

Those parts that decode correctly look pretty badly, so I see no point in decreasing bitrate even more...

foxyshadis
28th January 2015, 02:08
Just one example: Do not calculate differences between pixels of video frames to get the residual as base for motion prediction; instead, calculate differences of already transformed parameters.

I thought they got rid of that. Well, the logs say that Frequency Domain Intra Prediction was removed, which is what a couple of Monty's demos were about, but I'm not sure if they've reworked it since.

Daala's had quite a bit of activity this week, more than in the last two months! Here's a fresh build (https://dl.dropboxusercontent.com/u/54412753/daala/daala-20150127.7z).

Edit: Haha, vivan, very nice. :p

LigH
28th January 2015, 09:29
The encoder_example still does not yet support piping a video source?

And: For me as half-educated video enthusiast, motion compensation is inter-frame prediction, not intra, correct? But yes, there were more topics covered in this video. And some parts may cover previous efforts as well as current ones.

foxyshadis
28th January 2015, 09:56
It supports y4m, ffmpeg and all of the common avisynth pipes work with it. 8-bit YV12 only, though.

LigH
28th January 2015, 10:17
Well, the help screen does not mention any way to feed it with something that's not a physical file.

Usage: encoder_example [options] video_file
...
encoder_example accepts only uncompressed YUV4MPEG2 video.

Documentation is very sparse here. If "-" as input file name is supported for piping, then I guess Selur may add it to Hybrid soon... ;)

BTW: I am impressed how small the static-built encoder still is.

Kurtnoise
28th January 2015, 14:04
Well, the help screen does not mention any way to feed it with something that's not a physical file.
it's just an example of how to use the library...this should be tuned as well in the future.

LigH
28th January 2015, 14:27
OK, a command line like this works:

avs2yuv *.avs -o - | encoder_example -o *.ogm -

Count the dashes carefully. ;)

Tommy Carrot
28th January 2015, 15:16
Thanks for the build, Foxyshadis.

Well that's interesting - they claim currently better than x265 at texture and, above 1bit per pixel, also on clean edges. I wonder how this compares for the overall image quality?

Daala is nowhere near as mature as the other codecs. It still has fairly strong ringing and chroma artifacts, and the overall efficiency is not competitive with them yet. However, daala has some promising characteristics, like it tries to preserve the low contrast textures, so the fine details or the grain doesn't get smoothed out, like in x265 or vp9.

The latest build is quite a big improvement on the last one, the motion stability has improved a lot in the last month. If the development continues at this pace, and they can fix the ringing without blurring out the image, in half a year or so daala could become quite interesting.

LigH
28th January 2015, 17:21
A little something to compare: Tears of Steel, 640×272, 60 s action

x265 --crf 25 (https://www.mediafire.com/download/f8xfdzdri3nissf/tos_60s_360_medium.hevc.mp4) (v1.4+424-2b93cf2a5ac8)

Daala encoder_example -v 50 (https://www.mediafire.com/download/4316ialglsb166i/tos_60s_360_v50.ogm) (daala-20150127, ^foxyshadis)

Most annoying: The Daala player_example runs in full CPU speed... :rolleyes:

File sizes are as close as it gets without trying for hours in 1-pass quality modes...

foxyshadis
28th January 2015, 19:49
Oh yeah, I guess it'd be handy to specify that the exact git rev was bf0663a65926 (still the current head).

Gravitator
11th February 2015, 06:11
Nice demo ;D
http://i.imgur.com/2yLXELVl.png (http://i.imgur.com/2yLXELV.png)

Those parts that decode correctly look pretty badly, so I see no point in decreasing bitrate even more...

Imperceptibly this artifact from the speech > https://www.youtube.com/watch?v=Dmho4gcRvQ4&feature=player_detailpage#t=2548

uneedme
12th February 2015, 09:19
Using -v 30 to encode a clip, the output is pretty good. But I found no player could play the daala-clip.

Should it be any containers support?

LigH
12th February 2015, 09:32
The player_example in the daala package is about the only player supporting this video format at all. The development may still be too early and experimental for authors of usual players and decoder libraries (libav, ffmpeg, vlc) to consider including it already.

Unfortunately, it plays it as fast as the decoder works, doesn't care about frame rates.

qyot27
12th February 2015, 13:31
VLC supports playing back Daala-encoded files (http://git.videolan.org/?p=vlc.git&a=search&h=HEAD&st=commit&s=daala) (I even mentioned it in this thread back in September (http://forum.doom9.org/showthread.php?p=1695141#post1695141)), but unless something's changed with the official builds, you'd have to build it yourself to get it to do that since the decoder is disabled by default.

The particular posts on VLC-devel about API stability concerns:
https://mailman.videolan.org/pipermail/vlc-devel/2014-August/099405.html
https://mailman.videolan.org/pipermail/vlc-devel/2014-August/099407.html


I'd far prefer it to get in libavcodec instead, since I really don't want to try building VLC for Windows. I'm in the mplayer (well, mpv now) camp, always have been. mpv is simple to build for Windows.

foxyshadis
13th February 2015, 00:43
You don't really need to build all of VLC to build the daala decoder, it's just more convenient that way. You could build it from Daala, too, so I might try that with my next build. It's handy that VLC already has all the glue code ready to go, it's just a matter of keeping it up to date.

qyot27
13th February 2015, 09:41
I meant that enabling Daala support in VLC requires rebuilding VLC, because VLC doesn't have its libdaala support enabled by default, not that building Daala itself doesn't build the decoder.

When I build Daala, I usually rename/move the *_example binaries to alternate names in the /bin directory. player_example becomes daalaplay, decoder_example becomes daaladec, encoder_example becomes daalaenc.

foxyshadis
13th February 2015, 12:49
Because it's just a dll/so, you should be able to build libdaala in and add it into the codecs folder, without rebuilding everything. I haven't tried it yet, but as long as the headers aren't too tangled, it should be fairly simple. Software that uses monolithic codec files like ffmpeg are more annoying.