Page 59 - Video Coding for Mobile Communications Efficiency, Complexity, and Resilience
P. 59

36                                   Chapter 2.  Video Coding:  Fundamentals



              Input                                                Reconstructed
              Image   Form input   s   Search for   i  i   Table   r i  Merge   Image
                    vectors   best match         lookup      vectors

                              Codebook           Codebook
                                 , 1
                              i  r   i ,  = …  , N  i  r   i ,  = … , N
                                                    , 1
                       (a)  Encoder                     (b)  Decoder
                              Figure 2.13:  A vector  quantization system




             rst  decomposed  into  k-dimensional  input  vectors.  Those  input  vectors  can
            be  generated  in  a  number  of  di6erent  ways;  they  can  refer  to  the  pel  val-
            ues  themselves  or  to  some  appropriate  transformation  of  them.  For  example,
            a  k = M × M  block  of  pels  can  be  ordered  to  form  a  k-dimensional  input
                              T
                                                              k
            vector  s =[s 1 ;:::;s k ] .  In  VQ,  the  k-dimensional  space  R is  divided  into
            N  regions,  or  cells,  R i .  Any  input  vector  that  falls  into  cell  R i  is  repre-
                                                         T
            sented  by  a  representative  codevector  r i  =[r 1 ;:::;r k ] .  The  set  of  codevec-
            tors  C  = {r 1 ;:::; r N }  is  called  the  codebook.  Thus,  the  function  of  the  en-
            coder  is  to  search  for  the  codevector  r i  that  best  matches  the  input  vector
            s  according  to  some  distortion  measure  d(s; r i ).  The  index  i  of  this  code-
            vector  is  then  transmitted  to  the  decoder  using  at  most  I = log N  bits.  At
                                                                   2
            the  decoder,  this  index  is  used  to  lookup  the  codevector  from  an  identical
            codebook.  A  block  diagram  of  a  vector  quantization  system  is  illustrated  in
            Figure  2.13.
               Compression  in  VQ  is  achieved  by  using  a  codebook  with  relatively  few
            codevectors  compared  to  the  number  of  possible  input  vectors.  The  resulting
            bit rate of a VQ is given by I=k  bits=pel. In theory, as k →∞, the performance
            of VQ approaches the rate-distortion bound. However, large values of k  make
            codebook storage and searching impractical. Values of k =4  × 4 and N = 1024
            are typical in practical  systems.
               A  very  important  problem  in  VQ  is  the  codebook  design.  A  commonly
            used  approach  for  solving  this  problem  is  the  Linde-Buzo-Gray  (LBG)  algo-
            rithm  [45],  which  is  a  generalization  of  the  Lloyd-Max  algorithm  for  scalar
            quantization.  The  LBG  algorithm  computes  a  codebook  with  a  locally  min-
            imum  average  distortion  for  a  given  training  set  and  given  codebook  size.
            Entropy-constrained  vector  quantization  (ECVQ)  [46]  extends  the  LBG  al-
            gorithm  for  codebook  design  under  an  entropy  constraint.  Another
            important  problem  is  the  codebook  search.  A  full  search  is  usually  imprac-
            tical,  and  a  number  of  fast-search  algorithms  have  been  proposed,
            e.g., Ref. 47.
   54   55   56   57   58   59   60   61   62   63   64