[BoW] r11 - in trunk/audio_coding: audio_coding.tex error_concealment.tex
kostya
subversion at mplayerhq.hu
Sun Sep 28 18:00:32 CEST 2008
Author: kostya
Date: Sun Sep 28 18:00:31 2008
New Revision: 11
Log:
A bit more of generic information for audio coding
Added:
trunk/audio_coding/error_concealment.tex
Modified:
trunk/audio_coding/audio_coding.tex
Modified: trunk/audio_coding/audio_coding.tex
==============================================================================
--- trunk/audio_coding/audio_coding.tex (original)
+++ trunk/audio_coding/audio_coding.tex Sun Sep 28 18:00:31 2008
@@ -6,4 +6,4 @@
\input{audio_coding/predictive_coding.tex}
-\section{Error Concealment}
+\input{audio_coding/error_concealment.tex}
Added: trunk/audio_coding/error_concealment.tex
==============================================================================
--- (empty file)
+++ trunk/audio_coding/error_concealment.tex Sun Sep 28 18:00:31 2008
@@ -0,0 +1,55 @@
+\section{Error Concealment}
+
+ Decoding corrupt file poses a problem to decoder.
+ Depending on format and error decoder may output nothing at all, audibly distorted sound
+ or simply crash.
+ That's why proper error concealment may improve overall listening quality.
+ Some people believe, though, that corrupted file should be deleted and re-downloaded instead.
+
+ \subsection{Errors in different formats and their consequences}
+
+ There are two possible ways i which format may be corrupted --- file may be truncated or some
+ bits in file may be wrong.
+ The first case should be easy easy to handle, while the second case requires a lot of attention.
+
+ There are two distinct cases for the source of incorrect bytes too --- either it's some garbage
+ introduced by corrupting file (physical medium damage, forcibly extracting of damaged archive file,
+ etc.) and continuous runs of zeroes (usually caused by incomplete downloading from P2P networks).
+
+ Corrupted data stream results in incorrect bitstream parsing.
+ Sometimes those errors can be easily detected as they result in codeword that cannot be decoded
+ with current Huffman tree but usually they can be detected only by consequences they cause
+ (i.e. read value lead to overflow).
+
+ \subsection{Error detection and handling}
+
+ To make error detection easier some formats provide some means for checking frame or full stream
+ integrity -- usually in a form of CRC or hash function value.
+
+ To easier error detection there are usually some restrictions by format like certain bit at the fixed
+ position should always be zero or that long sequence of ones are not allowed.
+ Usually forbidden combinations are used as markers from which decoder may continue decoding.
+
+ Markers (also called syncwords) are used to mark the start of the frame.
+ Some formats have frames that can be decoded independently (like MPEG Audio), others
+ (like Musepack with bitstream versions up to 7) just expect that changes introduced in each frame
+ will return decoding to the normal state.
+
+ There are three main strategies of concealing errors:
+
+ \begin{enumerate}
+ \item
+ Skip broken frame --- small skips should be unnoticeable and big skips create audible yet short effect.
+
+ \item
+ Zero broken frame --- probably, not a good idea.
+ Sudden change of signal amplitude is easily perceived by listener.
+
+ \item
+ Repeat previous correct frame --- it is recommended by MPEG Audio standard.
+ While this does not change sound characteristics for repeating once, repeating the same frame
+ many times may be rather unpleasant.
+
+ \end{enumerate}
+
+ The best strategy for the user is to get the correct file again if possible though.
More information about the BoW
mailing list