www.pudn.com > motiotest.rar > scale_v2_h.h


/* ======================================================================== */
/*  NAME                                                                    */
/*      scale_v2 -- Vertical scaling down by 2                              */
/*S                                                                        S*/
/*S AUTHOR                                                                 S*/
/*S     J. Sankaran                                                        S*/
/*S                                                                        S*/
/*S REVISION HISTORY                                                       S*/
/*S     03-Mar-2002 Initial revision of scale_v2 . . . . .  J.Sankaran     S*/
/*                                                                          */
/*  USAGE                                                                   */
/*      This routine has the following C prototype:                         */
/*                                                                          */
/*          void scale_v2                                                   */
/*          (                                                               */
/*              unsigned char *restrict   inp,                              */
/*              int                       pixs,                             */
/*              int                       stride,                           */
/*              int                       lns,                              */
/*              unsigned char *restrict   outp                              */
/*          )                                                               */
/*                                                                          */
/*      The scale_v2 routine accepts an array "inp" of "lns" lines each     */
/*      of "pixs" pixels seperated by "stride" bytes, and produces an       */
/*      output array "outp" of "lns >> 1" and "pixs" pixels.                */
/*                                                                          */
/*  DESCRIPTION                                                             */
/*      The scale_v2 algorithm performs vertical scaling by a factor of     */
/*  "2" by averaging succesive lines as opposed to mere pixel dropping.     */
/*                                                                          */
/*  TECHNIQUES                                                              */
/*      None                                                                */
/*                                                                          */
/*  ASSUMPTIONS                                                             */
/*      'lns' must be a multiple of 2, and can be greater than or equal     */
/*  to 2. The input and output pointers are double word aligned. The        */
/*  number of pixels to process is a multiple of eight, and the number      */
/*  of lines to process are two. Outer loop that iterated for the lines     */
/*  and the inner loop that iterated for the pixels are collpsed together   */
/*  to reduce pipe up pipe down overhead.                                   */
/*                                                                          */
/*  NOTES                                                                   */
/*                                                                          */
/*  SOURCE                                                                  */
/*     None                                                                 */
/*                                                                          */
/* INTERRUPT NOTE                                                           */
/* This code is interrupt tolerant but not interruptible.                   */
/*                                                                          */
/* CYCLES:                                                                  */
/* (3 * lns * pixs )/32 + 15                                                */
/*                                                                          */
/* CODESIZE:                                                                */
/* 266 bytes                                                                */
/* ------------------------------------------------------------------------ */
/*            Copyright (c) 2002 Texas Instruments, Incorporated.           */
/*                           All Rights Reserved.                           */
/* ======================================================================== */

#ifndef _SCALE_V2_H_H
#define _SCALE_V2_H_H

void scale_v2_asm
(
    unsigned char *restrict inp, 
    int                     pixs, 
    int                     stride, 
    int                     lns, 
    unsigned char *restrict outp
);  

#endif /*_SCALE_V2_H_H*/

/* ======================================================================== */
/*  End of file:  scale_v2_h.h                                              */
/* ------------------------------------------------------------------------ */
/*            Copyright (c) 2000 Texas Instruments, Incorporated.           */
/*                           All Rights Reserved.                           */
/* ======================================================================== */