xiph / daala

Modern video compression for the internet
https://xiph.org/daala/
BSD 2-Clause "Simplified" License
543 stars 102 forks source link

[Feature request] Option to disable using golden frames #176

Open tomcarrot opened 9 years ago

tomcarrot commented 9 years ago

Golden frames are an easy and effective way to improve metrics, but in some cases the 'poppings' the periodically inserted higher quality frames are causing is quite noticable and looks pretty bad. An option to disable this technique in the command line encoder would be very appreciated.

tterribe commented 9 years ago

Do you have a test case or example that exhibits the problem?

tomcarrot commented 8 years ago

Here is an example : http://www.mediafire.com/download/lj66wlhw7chdhc5/poppings.7z

I used the command line: encoder_example -o daala.ogv -v 30 -k 100 source.y4m

The problem occurs at higher quality as well, albeit slightly less annoying. The main issue with the periodic frame-boosting is that in exchange for some efficiency gains you introduce a fairly noticable temporal artifact. Probably this is why that with the exception of the VPX codecs, these kind of techniques aren't really used anywhere else.

I definitely think that an option to disable it would be beneficial.

tomcarrot commented 8 years ago

Enabling b-frames makes the little jumps at the golden frames even more noticeable: http://www.mediafire.com/download/cmtczp5j3taz493/pop_b.7z

The command line was: encoder_example -o daala_b.ogv -v 28 -b 2 -k 100 source.y4m

jmvalin commented 8 years ago

Here are three encoded files decodable with current master: 8edf5644873182cebd75bbe294a0554611f56d80 http://jmvalin.ca/video/encodeA.ogv http://jmvalin.ca/video/encodeB.ogv http://jmvalin.ca/video/encodeC.ogv Let me know which you think looks the best

tomcarrot commented 8 years ago

Well, I prefer A, definitely. The golden-frame pops are still a bit noticeable, but much less annoying than in the other 2 videos, though admittedly at the cost of retaining less details.

jmvalin commented 8 years ago

Interesting. So far we have 3 people preferring C and you preferring A. I guess we need to investigate more.

tomcarrot commented 8 years ago

Really? That's surprising, B and C look pretty bad in my opinion, the poppings are very distracting.

Anyway, this is why i suggested an option, so those who don't mind the 'jumpiness' can use the encoder as it is, and there could be an option (by disabling golden-frames) for those who'd prefer not to have it. I do hope you'll consider adding this option.

Djfe commented 8 years ago

I haven't seen an example of golden frames, yet (I might look at the ogvs) but this sounds to me like normal I-Frame appearance (like in this video scene: https://youtu.be/BjeCQzv8BjI?t=5m2s , where the background is very noisy and becomes washed out but gets grain again once he stops or moving or an I-Frame comes)

anyways: can't this be used as an idea to give (heavily used) B-Frames a higher quality instead to improve the overall quality and save the bits that are used for that by reducing the overall quality of the I-Frames?

This is just an idea of mine, so just ignore me and my superficial knowledge if this is plain wrong

Regards