Steganography Schedule: (Changing)
+-----------------------+
| +-------------------+ |
| | GIF Signature | |
| +-------------------+ |
| +-------------------+ |
3.10 | | Screen Descriptor | |
| +-------------------+ |
3.10Pm | +-------------------+ |
| | Global Color Map | |
| +-------------------+ |
. . . . . .
| +-------------------+ | ---+
| | Image Descriptor | | |
Steganography
3.12 | +-------------------+ | |
| +-------------------+ | |
| | Local Color Map | | |- Repeated 1 to n times
| +-------------------+ | |
| +-------------------+ | |
| | Raster Data | | |
| +-------------------+ | ---+
. . . . . .
|- GIF Terminator -|
+-----------------------+
Week 1: March 5 - 11
- Reading the paper: http://tronche.com/computer-graphics/gif/
- Understand the format of the GIF(Graphic Interchange Format)
- Use Java to create an application which can be used to decode the gif pictures
- Use Java to create an application which can be used to encode the gif pictures
- Create a document about the GIF’s format
Due this Week:
- A document should be created
- Assignment the next week’s task
- Note the notebook of the Social practice
Note:
- Any characters encountered between the end of a previous image and the image separator character is to be ignored. This allows future GIF enhancements to be present in newer image formats and yet ignored safely by older software decoders.(GIF87a)
- Bits(Image descriptor)
7 6 5 4 3 2 1 0 Byte #
+---------------+
|0 0 1 0 1 1 0 0| 1 ',' - Image separator character
+---------------+
| | 2 Start of image in pixels from the
+- Image Left -+ left side of the screen (LSB first)
| | 3
+---------------+
| | 4
+- Image Top -+ Start of image in pixels from the
| | 5 top of the screen (LSB first)
+---------------+
| | 6
+- Image Width -+ Width of the image in pixels (LSB first)
| | 7
+---------------+
| | 8
+- Image Height-+ Height of the image in pixels (LSB first)
| | 9
+-+-+-+-+-+-----+ M=0 - Use global color map, ignore 'pixel'
|M|I|0|0|0|pixel| 10 M=1 - Local color map follows, use 'pixel'
+-+-+-+-+-+-----+ I=0 - Image formatted in Sequential order
I=1 - Image formatted in Interlaced order
pixel+1 - # bits per pixel for this image
- Why no unsigned types?(Java Language)
“Gosling: For me as a language designer, which I don't really count
> myself as these days, what "simple" really ended up meaning was could
> I expect J. Random Developer to hold the spec in his head. That
> definition says that, for instance, Java isn't -- and in fact a lot of
> these languages end up with a lot of corner cases, things that nobody
> really understands. Quiz any C developer about unsigned, and pretty
> soon you discover that almost no C developers actually understand what
> goes on with unsigned, what unsigned arithmetic is. Things like that
> made C complex. The language part of Java is, I think, pretty
> simple. The libraries you have to look up.”-http://darksleep.com/player/JavaAndUnsignedTypes.html
Bibliography:
- GIF:
http://www.seas.upenn.edu/~mmayer/lzw_gif/gif87.html
- LZW
Ziv, J. and Lempel, A., A Universal Algorithm for Sequential Data Compression, IEEE Transactions on Information Theory, (May 1977).
Welch, T., A Technique for High-Performance Data Compression, Computer, (June 1984).
Nelson, M.R., LZW Data Compression, Dr. Dobb's Journal, (October 1989).
- Java:
http://darksleep.com/player/JavaAndUnsignedTypes.html
3 7 7 7 7
6 8 0 0 0 0 4 2 3 0 0 0 0 0 3
3 4 3 3 4 0 0 0 3 4 6 4 8 0 0 4
2 9 9 0 0 4 3 2 7 0 0 8
6 8 2 0 0 9 4 0 0 0 0 7
2 0 2 0 0 0 8 4 0 0 0 7
0 2 0 0 0 0 0 0 0 7
8 0 7 0 0 0 0 0 0 0 7
9 0 2 6 0 0 0 0 0 0 7
3 0 0 9 6 0 0 0 4 0 0 6
6 0 0 6 4 0 0 0 2 0 0 3
4 0 0 2 7 0 0 0 5 3 0 8 5
8 0 8 7 0 0 0 7 5 9 4 0 4 6 4
7 0 0 5 7 0 0 0 9 0 0 0 0 0 0 0 7
9 0 0 7 0 0 2 4 4 0 0 0 0 0 0 4
7 0 0 4 0 0 6 7 0 0 0 0 0 6
2 0 2 6 0 0 4 4 8 0 0 0 5
7 8 9 3 0 0 3 8 0 0 9
5 3 3 2 8 0 0 3 0 0 8
4 0 0 2 9 0 0 7
0 0 0 4 0 0 5
4 0 4 0 0 6
3 8 4 0 0 6
7 7 5 3 8 3 0 0 5
9 0 0 0 0 0 6 5 0 0 7
4 2 0 0 0 0 0 8 3 2 0 2
6 2 6 0 0 0 0 2 0 0 6
7 2 0 0 0 6 4 0 4
3 0 0 0 4 5 3 8 4
5 8 0 0 8 6 4 8 3
5 9 0 0 0 8 9 6 6 2 4 4
5 5 3 0 0 9 5 3