Tuesday, December 9, 2014

What is Run Length coding in Video Compression ?

Video compression technologies are about reducing and removing redundant video data so that a digital video file can be effectively sent over a network. With efficient compression techniques, a significant reduction in file size can be achieved with little or no adverse effect on the visual quality. The video quality can be affected if the file size is further lowered by raising the compression level for a given compression technique.
Run length coding is the video compression method sometimes called as Run Length used in video processing. It is also used in many image formats. The role of RLE is to reduce data redundancy. It is based on the repetition of consecutive elements. The basic principle is to replace the sequence of the same symbol by a number of its occurrences. Thus, according to this principle, “HHHHHYYYYYYYYYYYYYY” when compressed yields “5H14Y”. The compression gain is thus (19-5)/19, that is, approximately 73.7 %. Run length coding is lossless compression, because all the information is retained after decoding. 
Generally RLE is used after quantization. RLE step re-arranges the quantized data in a format that reduces data redundancy in bit stream. For run length encoding, the 8x8 block should be scanned into 64-entry array in a zigzag fashion, as shown in figure1.

Figure1: Zigzag scanning

The block, which has now become a 64 entry, should next be manipulated using a modified run-length encoding algorithm transforming it into a series of integer pairs consisting of a run component and a signed level component. The run integer represents the number of zero entries preceding a level value in the array. The final run of zero entries in the array ends at the 64th block entry and not with a signed level- this reality is encoded as End of Block. The syntax as shown in Figure2.

Figure 2: Sample block Run length coding.

                                                                                                      Author - Hemika Yadav
                                                                                Intern Design Engineer at Silicon Mentor)