⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 video.h

📁 Motion detection in matlab
💻 H
字号:
/* * Copyright (c) 1992 The Regents of the University of California. * All rights reserved. *  * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement is * hereby granted, provided that the above copyright notice and the following * two paragraphs appear in all copies of this software. *  * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *  * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. */#include <stdio.h>#ifdef SH_MEM#include <sys/ipc.h>#include <sys/shm.h>#endif/* X11/xmd.h correctly defines INT32, etc */#ifndef XMD_Htypedef int INT32;typedef short INT16;typedef char INT8;#endiftypedef unsigned int UINT32;typedef unsigned short UINT16;typedef unsigned char UINT8; /* Define Parsing error codes. */#define SKIP_PICTURE -10#define SKIP_TO_START_CODE -1#define PARSE_OK 1/* Define BOOLEAN, TRUE, and FALSE. */#define BOOLEAN int#define TRUE 1#define FALSE 0/* Set ring buffer size. */#define RING_BUF_SIZE 5/* Macros for picture code type. */#define I_TYPE 1#define P_TYPE 2#define B_TYPE 3/* Start codes. */#define SEQ_END_CODE 0x000001b7#define SEQ_START_CODE 0x000001b3#define GOP_START_CODE 0x000001b8#define PICTURE_START_CODE 0x00000100#define SLICE_MIN_START_CODE 0x00000101#define SLICE_MAX_START_CODE 0x000001af#define EXT_START_CODE 0x000001b5#define USER_START_CODE 0x000001b2/* Number of macroblocks to process in one call to mpegVidRsrc. */#define MB_QUANTUM 100/* Macros used with macroblock address decoding. */#define MB_STUFFING 34#define MB_ESCAPE 35/* Lock flags for pict images. */#define DISPLAY_LOCK 0x01#define PAST_LOCK 0x02#define FUTURE_LOCK 0x04#define HYBRID_DITHER 0#define HYBRID2_DITHER 1#define FS4_DITHER 2#define FS2_DITHER 3#define FS2FAST_DITHER 4#define Twox2_DITHER 5#define GRAY_DITHER 6#define FULL_COLOR_DITHER 7#define NO_DITHER 8#define ORDERED_DITHER 9#define MONO_DITHER 10#define MONO_THRESHOLD 11#define ORDERED2_DITHER 12#define MBORDERED_DITHER 13/* External declaration of row,col to zig zag conversion matrix. */extern int scan[][8];/* Temporary definition of time stamp structure. */typedef int TimeStamp;/* Structure with reconstructed pixel values. */typedef struct pict_image {  unsigned char *luminance;              /* Luminance plane.   */  unsigned char *Cr;                     /* Cr plane.          */  unsigned char *Cb;                     /* Cb plane.          */  unsigned char *display;                /* Display plane.     */  int locked;                            /* Lock flag.         */  TimeStamp show_time;                   /* Presentation time. */#ifdef SH_MEM  XShmSegmentInfo shminfo;               /* Segment info.  */  XImage *ximage;                        /* Ximage struct. */#endif} PictImage;/* Group of pictures structure. */typedef struct GoP {  BOOLEAN drop_flag;                     /* Flag indicating dropped frame. */  unsigned int tc_hours;                 /* Hour component of time code.   */  unsigned int tc_minutes;               /* Minute component of time code. */  unsigned int tc_seconds;               /* Second component of time code. */  unsigned int tc_pictures;              /* Picture counter of time code.  */  BOOLEAN closed_gop;                    /* Indicates no pred. vectors to					    previous group of pictures.    */  BOOLEAN broken_link;                   /* B frame unable to be decoded.  */  char *ext_data;                        /* Extension data.                */  char *user_data;                       /* User data.                     */} GoP;/* Picture structure. */typedef struct pict {  unsigned int temp_ref;                 /* Temporal reference.             */  unsigned int code_type;                /* Frame type: P, B, I             */  unsigned int vbv_delay;                /* Buffer delay.                   */  BOOLEAN full_pel_forw_vector;          /* Forw. vectors specified in full					    pixel values flag.              */  unsigned int forw_r_size;              /* Used for vector decoding.       */  unsigned int forw_f;                   /* Used for vector decoding.       */  BOOLEAN full_pel_back_vector;          /* Back vectors specified in full 					    pixel values flag.              */  unsigned int back_r_size;              /* Used in decoding.               */  unsigned int back_f;                   /* Used in decoding.               */  char *extra_info;                      /* Extra bit picture info.         */  char *ext_data;                        /* Extension data.                 */  char *user_data;                       /* User data.                      */} Pict;/* Slice structure. */typedef struct slice {  unsigned int vert_pos;                 /* Vertical position of slice. */  unsigned int quant_scale;              /* Quantization scale.         */  char *extra_info;                      /* Extra bit slice info.       */} Slice;/* Macroblock structure. */typedef struct macroblock {  int mb_address;                        /* Macroblock address.              */  int past_mb_addr;                      /* Previous mblock address.         */  int motion_h_forw_code;                /* Forw. horiz. motion vector code. */  unsigned int motion_h_forw_r;          /* Used in decoding vectors.        */  int motion_v_forw_code;                /* Forw. vert. motion vector code.  */  unsigned int motion_v_forw_r;          /* Used in decdoinge vectors.       */  int motion_h_back_code;                /* Back horiz. motion vector code.  */  unsigned int motion_h_back_r;          /* Used in decoding vectors.        */  int motion_v_back_code;                /* Back vert. motion vector code.   */  unsigned int motion_v_back_r;          /* Used in decoding vectors.        */  unsigned int cbp;                      /* Coded block pattern.             */  BOOLEAN mb_intra;                      /* Intracoded mblock flag.          */  BOOLEAN bpict_past_forw;               /* Past B frame forw. vector flag.  */  BOOLEAN bpict_past_back;               /* Past B frame back vector flag.   */  int past_intra_addr;                   /* Addr of last intracoded mblock.  */  int recon_right_for_prev;              /* Past right forw. vector.         */  int recon_down_for_prev;               /* Past down forw. vector.          */  int recon_right_back_prev;             /* Past right back vector.          */  int recon_down_back_prev;              /* Past down back vector.           */} Macroblock;/* Block structure. */typedef struct block {  short int dct_recon[8][8];             /* Reconstructed dct coeff matrix. */  short int dct_dc_y_past;               /* Past lum. dc dct coefficient.   */  short int dct_dc_cr_past;              /* Past cr dc dct coefficient.     */  short int dct_dc_cb_past;              /* Past cb dc dct coefficient.     */} Block;/* Video stream structure. */typedef struct vid_stream {  unsigned int h_size;                         /* Horiz. size in pixels.     */  unsigned int v_size;                         /* Vert. size in pixels.      */  unsigned int mb_height;                      /* Vert. size in mblocks.     */  unsigned int mb_width;                       /* Horiz. size in mblocks.    */  unsigned char aspect_ratio;                  /* Code for aspect ratio.     */  unsigned char picture_rate;                  /* Code for picture rate.     */  unsigned int bit_rate;                       /* Bit rate.                  */  unsigned int vbv_buffer_size;                /* Minimum buffer size.       */  BOOLEAN const_param_flag;                    /* Contrained parameter flag. */  unsigned char intra_quant_matrix[8][8];      /* Quantization matrix for						  intracoded frames.         */  unsigned char non_intra_quant_matrix[8][8];  /* Quanitization matrix for 						  non intracoded frames.     */  char *ext_data;                              /* Extension data.            */  char *user_data;                             /* User data.                 */  GoP group;                                   /* Current group of pict.     */  Pict picture;                                /* Current picture.           */  Slice slice;                                 /* Current slice.             */  Macroblock mblock;                           /* Current macroblock.        */  Block block;                                 /* Current block.             */  int state;                                   /* State of decoding.         */  int bit_offset;                              /* Bit offset in stream.      */  unsigned int *buffer;                        /* Pointer to next byte in						  buffer.                    */  int buf_length;                              /* Length of remaining buffer.*/  unsigned int *buf_start;                     /* Pointer to buffer start.   */  int max_buf_length;                          /* Max lenght of buffer.      */  PictImage *past;                             /* Past predictive frame.     */  PictImage *future;                           /* Future predictive frame.   */  PictImage *current;                          /* Current frame.             */  PictImage *ring[RING_BUF_SIZE];              /* Ring buffer of frames.     */} VidStream;   /* Declaration of global pointer to current video stream. */extern VidStream *curVidStream;/* Declarataion of global display pointer. *//* extern Display *display;*//* Shared memory flag. */extern int shmemFlag;/* Quiet mode flag. */extern int quietFlag;/* Dither flags external declaration. */extern char *ditherFlags;/* Definition of Contant integer scale factor. */#define CONST_BITS 13/* Misc DCT definitions */#define DCTSIZE		8	/* The basic DCT block is 8x8 samples */#define DCTSIZE2	64	/* DCTSIZE squared; # of elements in a block */#define GLOBAL			/* a function referenced thru EXTERNs */  typedef short DCTELEM;typedef DCTELEM DCTBLOCK[DCTSIZE2]; #ifdef SH_MEMextern int gXErrorFlag;#endifextern double realTimeStart;extern int totNumFrames;extern int loopFlag;extern int noDisplayFlag;/* extern jmp_buf env;*/#ifdef ANALYSISextern unsigned int bitCount;extern int showEachFlag;extern unsigned int cacheHit[8][8];extern unsigned int cacheMiss[8][8];#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -