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

262                                Appendix.  Fast  Block-Matching  Algorithms


               5.	 IF  the search step size  is 1, i.e., if s =1,  THEN
                    (a)  Set the #nal motion vector  to the minimum location found  so  far:

                                          (d x;d y  )=(m x;m y  ):
                    (b)  STOP.
               6.	 ELSE  (when the step  size is not 1, i.e.  s =1)

                    (a)  Halve the step size:    s
                                              s =  :
                                                 2
                    (b)  Set the center  of  the search to the minimum location:
                                          (c x;c y  )=(m x;m y  ):
                    (c)  GOTO  step 4.

            A.4  The One-at-a-Time Search (OTS)


            The one-at-a-time search (OTS) was proposed by Srinivasan and Rao in 1985
            [146].  It  uses  two  #xed-size  uniform  patterns.  The  search  starts  using  a  hori-
            zontal pattern of one center location and its immediate left and right neighbors.
            At each step, this search pattern is moved horizontally and centered at the min-
            imum location from the previous step. This continues until the minimum is in
            the center of the pattern (i.e., the minimum is the same as that of the previous
            step). In this case, the search switches to the vertical direction using a pattern
            of  one  center  location  and  its  immediate  top  and  bottom  neighbors.  This  is
            explained in the following  procedure.
               1.	 Initialize the center  of  search to the origin  of  the search window:
                                           (c x;c y  )=(0; 0):
               2.	 Evaluate the BDM at the center of the search and its immediate left and right neighbors.
                 Out of this  set of  three locations, #nd  the one that achieves  the minimum BDM:
                                     (m x;m y  ) = arg  min  BDM(i; j);
                                               (i; j) ∈ P h
                 where
                                   P h  = {(c x;c y  ); (c x  +1;c y  ); (c x  − 1;c y  )}:

               3.	 IF the minimum is at the center of the search pattern, i.e., (m x;m y  )=(c x;c y  ), THEN GOTO
                 step  5 (i.e., vertical  direction).
               4.	 ELSE
                    (a)  Move  the center  of  the search to the new minimum location:
                                          (c x;c y  )=(m x;m y  ):
                    (b)  GOTO  step 2 (i.e., continue in the horizontal  direction).
   280   281   282   283   284   285   286   287   288   289   290