Rich Felker wrote:
> On Wed, Feb 20, 2008 at 03:25:37PM -0000, Måns
Rullgård wrote:
>>
>> Michael Niedermayer wrote:
>> > On Wed, Feb 20, 2008 at 09:32:48AM +0000,
Måns Rullgård wrote:
>> >> Rich Felker <dalias aerifal.cx> writes:
>> >>
>> >> > On Wed, Feb 20, 2008 at 01:32:14AM
+0000, Måns Rullgård wrote:
>> >> >> Another possibility is to precede
each optional field with a 1-bit
>> >> >> flag indicating its presence.
The size of the containing element can
>> >> >> then also implicitly exclude any
unused fields at the end. This may
>> >> >> of course not be desired for
frequently repeated elements where the
>> >> >> flags could be specified in a
global header.
>> >> >
>> >> > I hope you understand, a 1bit field
means a 1byte field. NUT has no
>> >> > support for sub-byte data units
except when they're appropriately
>> >> > padded with reserved bits.
>> >>
>> >> Sounds like a deficiency.
>> >
>> > In what respect? That is what would we gain
with droping byte alignment?
>> > I think we would gain a lot of complexity
primarely ;)
>>
>> I thought Nut was supposed to have minimal
overhead. Requiring a syntax
>> element to use 8 bits, even if it doesn't need them
is not minimal.
>>
>> If you're willing to sacrifice a few bits for
reduced complexity, that's
>> fine. I merely had the, apparently incorrect,
impression that Nut was
>> trying very hard to remove any unnecessary
overhead, even in the text
>> of the format specification
>
> In order for vlc to be efficient for numbers in the
ranges of sanity,
> you need to use units larger than bits. It would be a
huge waste to
> have a continuation bit corresponding to each data bit.
One
> continuation bit for every 7 data bits works well in
practice.
The optimal coding of a field depends on the distribution of
values,
not only on the valid range. For instance, if the value is
very small,
say 0--2, in 99% of all cases, but is occasionally much
higher, other
schemes become attractive. A simple one is the exp-golomb
coding
used in H.264. I assume you hate it, if for no other reason
because
it is used in an MPEG standard, but I mention it nonetheless
(or
maybe because of this).
> Essentially all fields in nut are vlc, so worrying
about non-vlc
> types' efficiency is really pointless.
A Nut vlc value is at least 8 bits, which is wasteful if,
say, 3 bits
are sufficient for a given syntax element. Grouping
unrelated elements
into a single vlc value to get around this inefficiency,
strikes me as
hackish.
--
Måns Rullgård
mans mansr.com
_______________________________________________
NUT-devel mailing list
NUT-devel mplayerhq.hu
https://lists.mplayerhq.hu/mailman/listinfo/nut-devel |