Writing, writing and writing....

The last few days have been spent working on improving the Introduction and Literature Survey for the final report.

This has included some new additions such as a glossary, which I think will help to easily identify the terms that are used throughout the report. At the moment the glossary is fairly simplistic and does not define too many terms, this is because I am trying to get a balance between what should and should not go in the glossary. If I was to define every term relating to video coding etc. that I use in the glossary it will take up a lot of room. Furthermore, I don't want to bloat it will excessive definitions.

My target for the end of today is to have Chapter 3: Requirements and Analysis written. If I can do this then I will be happy of the progress from the writing side.

As I mentioned in my previous two posts, I am looking at a skip-frame based method of encoding and using a new Java GUI. The Java GUI is proving very rapid to develop but I have not had the time to take the skip-frame method forward any further at this point. I am hoping that by the end of the weekend I will have determined whether or not the skip frame method will work.

As a rather irrelevant aside, I have added the Survey and Analysis report to the Resources section. When my dissertation is finished I hope to release most, if not all, of the resources that I have put online.



Encoding Problems

Today I have decided to take another look at the encoding problems that I have been experiencing.

Initially, I was encoding a single bit per frame by modifying the LSB of the X component of the motion vector belonging to the first macroblock. Unforunately, i was experiencing issues where bits would flip. I have now experimented with different methods of encoding. I had collected results from encoding with the LSB (a bit mask of 1) and a bit mask of 2, 3, 4 and 8.

Using a bit mask of 3 only makes 2 bit flip our of the entire message. Across all of my results one particular frame (99) does not retain any modifications made to the motion vector. Regardless of what is encoded (including nothing), the motion vector ends x component ends up being set to 0.

I am now looking at a method of skipping "bad frames", this does have some limitations:

  • For the time being I am only working with text/ascii data. This will allow me to simply encode a skip frame as a single character and will mean that I do not need to worry about escape sequences.
  • This method also assumes that the first frame is not a bad frame.

This initial idea is recursive in its nature and shuld be refined if the initial prototype proves successful.



Change of course

Today I have been doing some work on writing, mainly going over the fisrt two chapters. Unfortunately there is still substantial work that needs to be done on this.

I have also considered a change of course. Instead of developing a GUI as part of the main system steganosaurus will be a command line tool and I will develop a seperate Java wrapper to act at the GUI. There are several reasons for this that I shall expand on later.



GUI, Unit Testing and Writing

The last two days have been spent working on the GUI and Unit Testing existing code. Getting familiar with the GUI library has taken longer that I expected and there are still some issues ion Mac OS X withh X11 menu integration, but for the time being I am sjipping over this issue as the GUI works fine on Windoiws and Linux.

Over the next few days I want to return to the encoding issue that I was experiencing. However, before I do this I might further develiop my steganalysis tools in the hope that this will help me better compare the video container and output file.

I am currentlky working on the written aspect of the project. I have finally fixed my page numbering discrepency and am now looking at improving the first two chapters. Once I have done this I hope that I will be able to continue and start work on the other chapters that should follow from the Literature Survey.

Hopefully another update will follow later today or tomorrow with reasonable gains in progress.



GTK+ and Cunit

It has taken its time, but I have finally got Cunit and GTK+ (GUI library) working on all platforms. It turns out GCC is rather particular about the ordering of arguments, and rather unconcerned with providing meaningful error messages.

Anyway, this now works and it will leave tomorrow clear for:

  • Writing
  • Developing a GUI
  • Further developing steganalysis tools
  • Further working on steganographic techniques.

Edit: Using the unofficial GTK+ windows installer is a very quick way of getting GTK+ v3 working with MinGW: