[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