On 25.08.2014, at 19:33, Christophe Gisquet <christophe.gisq...@gmail.com> 
wrote:
> Hi,
> 
> 2014-08-25 6:41 GMT+02:00 Reimar Döffinger <reimar.doeffin...@gmx.de>:
>> The colorspace is supposed to be authoritative.
>> If it says 16 bit, then showing it as 16 bit must work properly.
>> The only intention of bits_per_raw_sample is to indicate that there is no 
>> point in storing some of the lower bits if you have the option.
> 
> ie, actually writing a smaller bitdepth, like what was achieved for
> ppm by my patch and Carl Eugen's ?
> 
> I find this very inconvenient for 2 things:
> - you force an additional roundtrip to 16bps when going eg 12bps to
> 12bps, while forcing 16bps just moves the scaling from the decoder to
> outside (ok that's one additional copy)

There is no "round trip" really just an additional shift on reading and writing.

> - you need to maintain different buffers for predictive codecs (ie
> both the encoder and the decoder), one being what is actually coded,
> and the other for the output of the decoder/input of the encoder
> (though it is not an actual full copy and can just be done in coding
> units eg MB)

Currently no relevant codecs use 12 bits, which is the reason why 9 and 10 bits 
exist as separate formats while 12 bits does not.
For simple formats, doing a val = (val << 4) | (val >> 12) before each store is 
completely acceptable.
Amd for reference frames you certainly do not need an actual full copy, that 
would be silly, you just need to add a shift after each load.

> I don't think I can have time both for convincing you and CE of this,
> then implement fixes everywhere needed, then introduce incompatible
> APIs, so just read this as a statement of my opinion, and let's close
> the subject. I have understood this line of thought is futile.

I don't have a particular opinion on what the design should be, I am just 
describing how it was intended.

>> That can be solved by a common function if necessary, alternatively a 12 bit 
>> colorspace could be added, but the cost/benefit is questionable.
> 
> I think at this point they all have in common "sample storage rounded
> to the upper bytecount" and "raw_bits is indicative of what they
> hold". Adding them is just going to make the scalers more tentacular.
> But my opinion of moving the scaling from the decoder to a specialized
> function also does this.

There is the additional issue that it (just like changing the meaning of raw 
bits) will require each application to add support for it.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to