Error concealment

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Error concealment is a technique used in signal processing that aims to minimize the deterioration of signals caused by missing data, called packet loss.[1] A signal is a message sent from a transmitter to a receiver in multiple small packets. Packet loss occurs when these packets are misdirected, delayed, resequenced, or corrupted.[2]

Receiver-Based Techniques

When error recovery occurs at the receiving end of the signal, it is receiver-based. These techniques focus on correcting corrupted or missing data.

Waveform substitution

Preliminary attempts at receiver-based error concealment involved packet repetition, replacing lost packets with copies of previously received packets. This function is computationally simple and is performed by a device on the receiver end called a "drop-out compensator".[3][4]

Zero Insertion

When this technique is used, if a packet is lost, its entries are replaced with 0s.

Interpolation

Interpolation involves making educated guesses about the nature of a missing packet. For example, by following speech patterns in audio or faces in video.

Buffer

Data buffers are used for temporarily storing data while waiting for delayed packets to arrive. They are common in internet browser loading bars and video applications, like YouTube.

Transmitter-Based Techniques

Rather than attempting to recover lost packets, other techniques involve anticipating data loss, manipulating the data prior to transmission.[4]

Retransmission

The simplest transmitter-based technique is retransmission, sending the message multiple times. Although this idea is simple, because of the extra time required to send multiple signals, this technique is incapable of supporting real-time applications.[2]

Packet Repetition

Packet repetition, also called forward error correction (FEC), adds redundant data, which the receiver can use to recover lost packets. This minimizes loss, but increases the size of the packet.[5][6]

Interleaving

Interleaving involves scrambling the data before transmission. When a packet is lost, rather than losing an entire set of data, small portions of several sets will be gone. At the receiving end, the message is then deinterleaved to reveal the original message with minimal loss.

Transmission without interleaving:

Original transmitted sentence:                      ThisIsNotAnExampleOfInterleaving
Received sentence with a burst error:               ThisIsNot______pleOfInterleaving

The term "AnExample" ends up mostly unintelligible and difficult to correct.

With interleaving:

Transmitted sentence:                               ThisIsAnExampleOfInterleaving...
Error-free transmission:                            TIEpfeaghsxlIrv.iAaenli.snmOten.
Received sentence with a burst error:               TIEpfe______Irv.iAaenli.snmOten.
Received sentence after deinterleaving:             T_isI_AnE_amp_eOfInterle_vin_...

No word is completely lost and the missing letters can be recovered with minimal guesswork.[7]

Applications

Depending on the method of transmission (analog or digital), there are a variety of ways for errors to propagate in the message.

Analog Applications

Since its invention in the 1950s, the magnetic coating used in analog video tape has experienced radio frequency (RF) signal drop-outs. Some of the techniques that were used for resolving these issues are analogous to those used for concealing errors in modern compressed video signals.

The process of click removal in audio restoration is another example of error concealment. A closely analogous example in the domain of image processing is the use of digital dust and scratch removal processing in film restoration.

Digital Applications

Error concealment has many digital applications, including web browsing, video conferencing, Skype, and YouTube[2][8]

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. 2.0 2.1 2.2 Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. 4.0 4.1 Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Forward error correction#Example
  8. Lua error in package.lua at line 80: module 'strict' not found.