Friday 14 June 2013

Different compression techniques

LZ77:-LZ77 algorithms achieve compression by replacing repeated occurrences of data with references to a single copy of that data existing earlier in the input (uncompressed) data stream. A match is encoded by a pair of numbers called a length-distance pair, which is equivalent to the statement "each of the next length characters is equal to the characters exactly distance characters behind it in the uncompressed stream". (The "distance" is sometimes called the "offset" instead.)

LZ78:-LZ78 algorithms achieve compression by replacing repeated occurrences of data with references to a dictionary that is built based on the input data stream. Each dictionary entry is of the form dictionary[...] = {index, character}, where index is the index to a previous dictionary entry, and character is appended to the string represented by dictionary[index]. For example, "abc" would be stored (in reverse order) as follows: dictionary[k] = {j, 'c'}, dictionary[j] = {i, 'b'}, dictionary[i] = {0, 'a'}, where an index of 0 specifies the first character of a string. The algorithm initializes last matching index = 0 and next available index = 1. For each character of the input stream, the dictionary is searched for a match: {last matching index, character}. If a match is found, then last matching index is set to the index of the matching entry, and nothing is output. If a match is not found, then a new dictionary entry is created: dictionary[next available index] = {last matching index, character}, and the algorithm outputs last matching index, followed by character, then resets last matching index = 0 and increments next available index. Once the dictionary is full, no more entries are added. When the end of the input stream is reached, the algorithm outputs last matching index. Note that strings are stored in the dictionary in reverse order, which an LZ78 decoder will have to deal with.

LZW:-Lempel–Ziv–Welch (LZW) is a universal lossless data compression algorithm created by Abraham Lempel, Jacob Ziv, and Terry Welch. It was published by Welch in 1984 as an improved implementation of the LZ78.LZW starts out with a dictionary of 256 characters (in the case of 8 bits) and uses those as the "standard" character set. It then reads data 8 bits at a time (e.g., 't', 'r', etc.) and encodes the data as the number that represents its index in the dictionary. Everytime it comes across a new substring (say, "tr"), it adds it to the dictionary; everytime it comes across a substring it has already seen, it just reads in a new character and concatenates it with the current string to get a new substring. The next time LZW revisits a substring, it will be encoded using a single number. Usually a maximum number of entries (say, 4096) is defined for the dictionary, so that the process doesn't run away with memory. Thus, the codes which are taking place of the substrings in this example are 12 bits long (2^12 = 4096). It is necessary for the codes to be longer in bits than the characters (12 vs. 8 bits), but since many frequently occuring substrings will be replaced by a single code, in the long haul, compression is achieved.

LZSS:-Lempel–Ziv–Storer–Szymanski (LZSS) is a lossless data compression algorithm, a derivative of LZ77, that was created in 1982 by James Storer and Thomas Szymanski. LZSS is a dictionary encoding technique. It attempts to replace a string of symbols with a reference to a dictionary location of the same string.
The main difference between LZ77 and LZSS is that in LZ77 the dictionary reference could actually be longer than the string it was replacing. In LZSS, such references are omitted if the length is less than the "break even" point. Furthermore, LZSS uses one-bit flags to indicate whether the next chunk of data is a literal (byte) or a reference to an offset/length pair.

LZMA:-LZMA is default and general compression method of 7z format. The Lempel–Ziv–Markov chain algorithm (LZMA) is an algorithm used to perform lossless data compression.LZMA compression algorithm is very suitable for embedded applications. LZMA is released under the terms of the GNU LGPL. LZMA is also available under a proprietary license for those who can not use the GNU LGPL in their code. If you want to use LZMA code, you can ask consultations, custom code programming and required developer licenses from page for support: Send message to LZMA developer. Check also information about LZMA SDK.

x264:-x264 is the world’s most popular H.264 video encoder, and is highly optimized with hand written vectorized assembly code.x264 is a free software library for encoding video streams into the H.264/MPEG-4 AVC format. It is released under the terms of the GNU General Public License.

ffmbc:-What we can do with FFmbc:

Import your files in Final Cut Pro, AVID Media Composer, Adobe Premiere
Create XDCAM HD422 files in .mov or .mxf
Create XDCAM IMX/D-10 files in .mov or .mxf
Create AVID DNxHD files in .mov
Create DVCPROHD files in .mov or .mxf
Create ProRes 422 or 4444 files in .mov
Convert V210 Files
Convert HD YUV BT709 to SD BT601 and vice versa
Convert AVCIntra 50 and 100
Convert MPEG-TS files with SMPTE 302M audio
Convert AVCHD files correctly
Convert ProRes 422 and 4444 files
Rewrap IMX/D-10, AVCHD, DVCPROHD to Quicktime for editing in Final Cut Pro
Burn ASS or SRT subtitles files in videos
Merge and split your audio tracks
Create Quicktime files containing time code tracks
Color conversion from HD to SD
Read timecode tracks from MXF, Quicktime
Creating audio files (mp3 and m4a) with cover art
Keep or add covert art when converting your audio files
Faststart MP4 for streaming (replace header in front) automatically

Yasm:-In computing, Yasm is an assembler, a full rewrite of Netwide Assembler (NASM). Yasm can generally be used interchangeably with NASM and supports the x86 and x86-64 architectures. It is licensed under a revision of the BSD licenses. As of 2011 it was developed by Peter Johnson and Michael Urman.It can assemble input with both Intel and AT&T (as) syntax;Library interface for compiler developers.

libmp3lame:-"libmp3lame-3.97" is a encoder that enables you to save/encode the file into Mp3 format. You should this download it so as to export a file to Mp3 which is edited in Audacity.


No comments:

Post a Comment