[Ffmpeg-devel] Trellis Quantization Applied To (A)DPCM
Michael Niedermayer
michaelni
Mon Jun 5 12:58:08 CEST 2006
Hi
On Sun, Jun 04, 2006 at 10:01:01PM -0700, Loren Merritt wrote:
> On Sun, 4 Jun 2006, Michael Niedermayer wrote:
> >On Sat, Jun 03, 2006 at 09:45:36PM -0700, Loren Merritt wrote:
> >>
> >>Hmm... my initial implementation doesn't see noticeable gains from K-Means
> >>over just using a constant exponential table.
> >
> >i think that in case of optimally choosing the deltas a less "regular"
> >table
> >then your constant table would be supperior, the reason why i think so is
> >that
> >in your constant table many sums of elements are equal which should lead to
> >fewer "easy reachable" values, for example:
> >
> >if we have a input of 0 12 3 then that could be encoded with +16,-16 or
> >+8,-8 with your table if the table where slightly less regular then the
> >2 cases would be able to reach 2 different final results and that might
> >lead to a better approximation ...
>
> Added some asymmetric tables. They helped only a little, but I don't
> really know what to optimize for when writing a table by hand.
>
> OTOH, a brute-force iterative search isn't too ridiculously slow. The next
the iterative search seems to get stuck in local minima ...
if i add the following:
for(i=0; i<16*16*4; i++){
int i0= i&15;
int i1= (i>>4)&15;
int d0= ((i>>8)&1)*2-1;
int d1= ((i>>9)&1)*2-1;
if(i0>=i1)
continue;
memcpy(tmp, table, 16);
tmp[i0] += d0;
tmp[i1] += d1;
if( tmp[i0] >= tmp[i0+1] || tmp[i0] <= tmp[i0-1]
|| tmp[i1] >= tmp[i1+1] || tmp[i1] <= tmp[i1-1])
continue;
try_table(tmp, table, &bssd, pix, w, h, stride);
}
then
fn 23 tables_tried 7823
4fa79 14e26b 5179d 4d7ad 15cf7c 1117b2 s
4d7ad c0 e0 f0 f8 fc fe ff 0 1 2 3 6 c 18 30 60
46089 bf df ef f7 fb fe ff 0 1 2 3 6 d 18 30 5a
40d5c c0 de ef f7 fb fe ff 0 1 2 4 6 d 1a 30 53
3e8f1 c1 de ee f6 fb fe ff 0 1 2 3 6 e 1a 30 54
3c80c c0 de ed f6 fb fe ff 0 1 2 3 7 e 1a 30 53
8902 34bc 3c4a
34bc e0 f0 f8 fa fc fd fe ff 0 1 2 3 4 6 8 10
2878 e2 ef f5 f9 fc fd fe ff 0 1 2 3 4 6 a 10
2672 e4 ef f4 f9 fc fd fe ff 0 1 2 3 4 6 a 10
262a e5 ef f4 f9 fc fd fe ff 0 1 2 3 4 6 a 10
10fb4 40d4 4de0
40d4 e0 f0 f8 fa fc fd fe ff 0 1 2 3 4 6 8 10
31be e5 f3 f7 f9 fc fd fe ff 0 1 2 3 4 6 a 10
2712 ec f3 f6 f9 fc fd fe ff 0 1 2 3 4 7 a 10
changes too
fn 23 tables_tried 46783
4fa79 14e26b 5179d 4d7ad 15cf7c 1117b2 s
4d7ad c0 e0 f0 f8 fc fe ff 0 1 2 3 6 c 18 30 60
38668 bf dc eb f4 fb fe ff 0 1 2 5 9 10 1f 35 5a
2fbbc bf d7 e7 f1 f7 fc ff 0 1 2 5 a 12 21 36 53
2deab bf d7 e6 f1 f7 fc ff 0 1 2 5 a 13 21 35 50
8902 34bc 3c4a
34bc e0 f0 f8 fa fc fd fe ff 0 1 2 3 4 6 8 10
26ee e2 ed f4 f9 fc fd fe ff 0 1 2 3 4 7 a 10
2634 e3 ee f3 f8 fb fd fe ff 0 1 2 3 4 7 a 10
23a2 e4 ec f2 f7 fa fd fe ff 0 1 2 3 6 8 b 10
2302 e4 ec f2 f7 fa fd fe ff 0 1 2 3 6 9 b 11
22fa e4 ec f2 f7 fa fd fe ff 0 1 2 3 6 9 c 11
22ee e4 eb f2 f7 fa fd fe ff 0 1 2 3 6 9 c 11
10fb4 40d4 4de0
40d4 e0 f0 f8 fa fc fd fe ff 0 1 2 3 4 6 8 10
2bba e5 ef f6 f9 fc fd fe ff 0 1 2 3 4 7 a 10
2a10 e7 ef f5 f8 fb fd fe ff 0 1 2 3 4 7 a 10
29ac e8 f0 f5 f8 fb fd fe ff 0 1 2 3 4 7 a 10
2862 eb f0 f5 f8 fb fd fe ff 0 1 2 3 4 7 a 10
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
In the past you could go to a library and read, borrow or copy any book
Today you'd get arrested for mere telling someone where the library is
More information about the ffmpeg-devel
mailing list