Tuesday, November 07, 2006

Video Transmission Using Diversity

"To Bug is Human;To Debug is Divine"

Firstly, a single encoded Video Stream has been separated into 3 separate files in the decreasing order of importance(let's say I,P and B files). Then, the reverse operation that is merging these 3 files into the original Bitstream has been done using a program merge.c. This would be helpful at the receiving end.

Now, we need to send the three files from the source to the receiver with the additional help of a relay. But, instead of sending all the three files using the relay we just send the file of highest importance ie I file. This can give us lots of savings.

Note that no channel coding has been applied to the three encoded bitstreams. This forms a later part of my Thesis.

Sunday, September 17, 2006

Software for MPEG-2 Encoding


Software for MPEG-2:-


Long time since i could do something useful with the software.

User Cooperation Diversity Scheme can be more useful if the transmitted information(Encoded Video bits in my case) can be divided into different layers based on their importance in the decoding of the message at the receiver. Ex:- If the encoded video is divided into two layers say a Base Layer(BL,more important) and an enhancement Layer(EL) , then User Cooperation can be used only for the BL and EL can be sent directly to the receiver without any Diversity.

But the MPEG-2 Software converts the video into an single encoded stream which is stored in an outfile. I had to modify the software such that the video stream is divided into 3 layers in the decreasing order of importance 1. Containing I-frame information 2. P-frame info 3. B-frame info. By doing this, i can make the best use of the diversity scheme.

The next step would be to divide the motion information, header information etc. which are very important from the DCT coefficients etc.

Wednesday, August 16, 2006

Phd Comics




This is an awesome comic series depicting the life of some fictional Graduate Students at Stanford.Altough,it too much of an exaggeration its quite funny.You can access it online at Phd Comics. I am attaching some posts which i found interesting.

Monday, August 07, 2006

MPEG-2 Software

I started working on the MPEG-2 software which was developed using C language.
You can find softwares related to most of the Video Coding Techniques here:-
MPEG Video Coding Softwares

Monday, July 31, 2006

JM 7.3 Software for H.264 Video Coding

After spending about 2 weeks on Channel Coding Im back to Source Coding precisely Video Coding.H.264/AVC is a video coding standard developed by the JVT in 2003.It includes many optional features allowing a complexity-performance trade-off.For more info about H.264 u can read the Overview paper:- Overview of the H. 264/AVC video coding standard[pdf] by T Wiegand, GJ Sullivan, G Bjntegaard, A Luthra.

The JM 7.3 software deals with the implementation of H.264 Video Coding.It has been written using the C Language.I will be spending about a week (hopefully!!) going through the software,making some changes to it.The input and Output(Reconstructed video files are in the YUV Format.I came across some trivial things which are basic in the C language.U can skip what comes next if u are familiar with the Basic Definitions in C.

Trivia:

1. .h files contain declarations of variables.
2.The corresponding(same name) .c file contains the functions.The header file can
be used in any number of programs w/o writing the code again and again.
3.#ifndef(If not Defined):-To prevent bad effects from a double include, it is common to surround the body in the include file with the following (where MYHEADER_H is replaced by a name that is appropriate for your program).
Eg:-
#ifndef MYHEADER_H
#define MYHEADER_H
. . . // This will be seen by the compiler only once
#endif /* MYHEADER_H */
4.Extern:A declaration to assert to the compiler that the definition for an
object or function is in another file.If you want to make a variable available to every file
in a project you declare it globally in one file, that is, not inside a function, and add an extern declaration of that variable to a header file that is included in all the other files.


Sunday, July 30, 2006

Repeat Accumulate Codes by David MacKay

Repeat-Accumulate[pdf]
Algo:-
1.Consider K source Bits s1s2s3....sk.
2.Repeat each bit three times,giving N=3K bits.
3.Permute these N bits using a random permutation giving u1u2....uN
4,Transmit the accumulated sum t1=u1,t2=u1+u2...........
5.That's it.

This simple coding schemes gets surprisingly close to the Shannon Limit!!!!

Saturday, July 29, 2006

Efficient LDPC Encoding by Rich,Urbanke(Read:07/29/06)

Efficient encoding of low-density parity-check codes[pdf]:-

The Encoding and Decoding operations for LDPC Codes have a complexity of O(N^2).This remarkable paper tries to complete the operations in a linear time.Infact,it has a complexity of 0.017^2* n2,which is linear even for large block lengths n.

A new method called approximate lower triangulation method is used which retains the sparcity of H as very less transformations are performed.Greedy Algorithms are used for finding the approximate lower triangule which gives a good idea of the Greedy Algo.