Download Section

Today I have updated the website to add a Download section. Hopefully over the next week I will be handing out the password so that people can test the software. I could be being too optomistic but I hope that I get the encoding scheme sorted in that time scale.



Appendices Rewrite

After proof reading Chapter 3: Requirements and Analysis I removed some of the redundant chapters (such as Progress) that were inherited from the Survey and Analysis. Upon doing this, I realised that this broke some of the references in the literature survey, so I have spend the last hour or so re-factoring the appendices and inserting some of the relevant information that resided in the chapters I removed.

The appendices inherited from the Survey and Analysis are now slightly more concise. I am reluctant to remove them as they document key problems and set backs that were experienced early on in the project. Furthermore, some of these set backs influenced the root forwards and the design choices made later in the project.



First Draft of Chapter 3

I have finished a first draft of Chapter 3: Requirements and Analysis which has put me in a good position. However, my work for today hasn't finished yet....

I now intend to spend the rest of the day finishing off bringing the GUI and app up to speed. The intention is to develop them further into a software product today, thus leaving the entire of tomorrow clear to focus on the problem of embedding data.

It is my intention that by the end of tomorrow I will have a working encoding system working, either that or I will have extensively determined that the "stepping" approach will not work. 

At this point I genuinely believe if implemented properly it can work. Unfortunately, this problem and corresponding solution means that I will not be able to conclusively determine the steganographic capacity of a video before I start encoding. Furthermore, this does also have the issue that it relies on the first sequence of frames of embed-able quality. Anyway, these are things to be mindful of, and to address in further iterations with the optimistic approach that the idea of stepping bad frames will work.



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.