Re: Human Encoding

Johan Hanson <[email protected]> Mon, 22 Jul 2002 06:38:52 +0200
Newsgroups gmane.comp.multimedia.ogg.tarkin.devel
Message-ID <[email protected]>
Jeffrey Bridge wrote:
> 
> > BTW, Im not convinced about the human mind remembering individual pixels
> > though ;).
> 
> As far as I can tell , the mind remembers things in terms of "wall,
> slightly bumpy texture, white" and not much more than that, at least if
> you aren't focusing on the object. If a picture has text in it, it seems
> that you remember the text, not the bitmap.
> 
> As for having an encoder do one leaf texture and the decoder produce
> lots of modified copies of it, this is totally unworkable with the
> current state of computing.

That sounds like "fractal image compression" to me. Many papers on the subject
have been produced. Use Google and ResearchIndex to find them.
Though, I don't think existing fractal codecs do very well overall.

Perhaps we should look at the "texture" aspect, trying to find a transform
that will identify and then reproduce repeating texture patterns.
I think DCT is better than wavelets at this. At low bitrates, good DCT coders
will cause more ringing to occur in textured areas - producing more texture -
where as a wavelet codec would just blur that area.
For DCT, ringing is almost an intrinsic property.
For wavelets, ringing can be said to be caused by quantization error.

I suppose that it is possible to write a wavelet-based encoder that
produces more ringing in textured areas instead of more coefficients ...
This may sound absurd to some, but what about an adaptive transform that
will use the "wrong" filter lengths to intentionally produce more ringing
artifacts in highly textured areas?
There are coders that encode filter length as side information, and it
does not need to have very large resolution in either space or time.

But what about larger texture patterns, and patterns on different scales?
If I look around me, I see many patterns on many scales.
My wallpaper has quite a high-frequency on the horizontal, and could
probably be represented as a polynomial.
The grill on my speakers have a repeating pattern. The keys on my keyboard
are mostly the same size and color. The keys could probably be represented
as discontinuous functions in one scale and the keycaps in another.

Wavelets don't need to be continuous waveforms. There is a class of wavelets
called "geometrical wavelets" where the most famous are the "min" and "max" wavelets.
An interesting property of the max-wavelet is that it produces mostly
positive coefficients -> not too many signs to encode. The signs of conventional
wavelet coefficients are otherwise quite difficult to compress, and they are
often not compressed at all, taking up a substantial fraction of the bitstream.

Then, there are numerous alternative transforms that have been inspired by
wavelets and lifting. For example: the "wedgelet" is a multiresolution
representation of edges within an image. The "bandelet" and the "ridgelet"
are other transforms that I have yet to read about.

-- 
Johan

It is half past six in the morning. I think I need some sleep now.


--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to '[email protected]'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.