Re: Patterns.

Mike Melanson <[email protected]> Sun, 18 Dec 2005 08:26:36 -0800
Newsgroups gmane.comp.video.xine.codec.devel
Message-ID <[email protected]>
James Courtier-Dutton wrote:
> Hi,
> 
> I have been doing reverse engineering for some time now. I think it 
> would be good to start building up a web site with a list of patterns.
> e.g.
> If you see this group of assembly instructions, then this is the concept 
> they are implementing.
> I think this would be particularly useful for reverse engineering codecs.
> For example, we could describe a concept, like for example IDCT, and 
> then list each of the different ways it has been implemented in actual 
> code.
> Then, when a new looking IDCT routine is discovered in some binary code, 
> it will be added to the list.
> 
> Then people reverse engineering code, could much more easily get back to 
> the concept behind the binary instructions, and then document the 
> conceptual algorithm for the code, so that other people could then 
> implement it.
> 
> I am currently working on a project that will display binary code in a 
> more readable form than assembly instructions. The aim is to display it 
> as a code snippet in C. I fully understand that it will not be perfect, 
> but I feel sure that it will at least speed up the task of reverse 
> engineering assembly code.

	Good idea, and I encourage you to keep it up. For my part, I am still 
trying to write a series of articles about core video coding concepts in 
plain, non-mathematical English:

   http://multimedia.cx/eggs/index.php?cat=16

The reason for this is that I realized that there are a lot of REs out 
there who want to delve into binary codec code but do not understand 
what they might find. That's why I wanted to describe what the 
algorithms most commonly look like.

	It has been a little slow going. Here are the current articles:

* RLE
* Differential Coding
* Mean Removal
* (Scalar) Quantization
* Frame Types

The articles I have in the queue include:

* YUV and RGB Colorspaces And Pixel Formats
* Building Blocks (discussing basic decoding flow)
* The Magical Discrete Cosine Transform
* Motion Compensation
* Vector Quantization
* Huffman Codes/Variable Length Codes
* Machine Optimizations

I know wavelets should be on there as well. But I know less about those 
than I do about DCT.

-- 
	-Mike Melanson


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click