📄 fmjpeg_avcodec.h
字号:
* If only one component is used, the component will be <B>Y</B>. \n * Thus, depending on the number of components (indicated by member vairable 'u8NumComponents'), * the following array of component descriptor 'rgComponentInfo' structure are in the * order <B>{ Y, Cb,Cr }</B> respectively. * * @see u8NumComponents */ } FJPEG_DEC_RESULT; typedef struct { int act0; int act1; int act2;} FJPEG_MD_RESULT;/// The Faraday JPEG Encoder Parameters Structure./** * While creating jpeg encoder object by using FJpegEncCreate() operation, FJPEG_ENC_PARAM * pointer is served as FJpegEncCreate()'s parameter to internally initialize related JPEG encoder * object settings.\n * See @ref jpeg_encoder_ops_grp \n * @see FJpegEncCreate * */typedef struct { /// The base address of hardware core. unsigned int *pu32BaseAddr; /**< User can use this variable to set the base * address of hardware core. */ /// The base address for input YUV buffer. unsigned char *pu8YUVAddr[3]; /**< To set input YUV frame buffer's base address.\n * <B>N.B.</B> : the address must be physical address with <B>8-byte aligned</B>. * @see pu32BaseAddr * @see pu8BitstreamAddr */ /// The number of components in the input YUV image. unsigned char u8NumComponents; /**< This variable tells the number of components in the input * YUV image. The color space used for these components * is <B>YCbCr</B>. If only one component is used, the * component will be <B>Y</B> only. * @see rgComponentInfo */ /// The array of structures to describe each component information about input YUV image. struct { /// The horizontal sampling frequency of this component. unsigned char m_u8HSamplingFrequency; /**< horizontal sampling frequency factor (1..4) for this component.*/ /// The vertical sampling frequency of this component. unsigned char m_u8VSamplingFrequency; /**< vertical sampling frequency factor (1..4) for this component. */ } rgComponentInfo[3]; /**< * According to JFIF standard, the color space is restricted to one or three components. \n * For three components, <B>YCbCr</B> is used. \n * If only one component is used, the component will be <B>Y</B>. \n * Thus, depending on the number of components (indicated by member vairable 'u8NumComponents'), * the following array of component descriptor 'rgComponentInfo' structure are in the * order <B>{ Y, Cb,Cr }</B> respectively. * * Currently, the YUV formats that JPEG encoder supports now are shown below : * - Each component's horizontal and vertical smapling factors are representing * in the form '( <B>HxV</B> )' , where <B>H</B> is horizontal sampling factor * and <B>V</B> is vertical sampling factor: * - '420' : Y ( <B>2x2</B> ) , U ( <B>1x1</B> ) , V ( <B>1x1</B> ) * - '422' : Y ( <B>4x1</B> ) , U ( <B>2x1</B> ) , V ( <B>2x1</B> ) * - '211' : Y ( <B>2x1</B> ) , U ( <B>1x1</B> ) , V ( <B>1x1</B> ) * - '333' : Y ( <B>3x1</B> ) , U ( <B>3x1</B> ) , V ( <B>3x1</B> ) * - '222' : Y ( <B>2x1</B> ) , U ( <B>2x1</B> ) , V ( <B>2x1</B> ) * - '111' : Y ( <B>1x1</B> ) , U ( <B>1x1</B> ) , V ( <B>1x1</B> ) * * @see u8NumComponents */ /// The image quality setting (0 ~ 100) unsigned int u32ImageQuality; /**< This variable can set the encoded image quality. * The higher the image quality setting, the closer the encoded * image will be to the original input YUV image, and , of course, * the larger the JPEG file. * The range for this quality setting is between 0 (worst) to 100 (best). */ /// The restart marker interval. unsigned int u32RestartInterval; /**< This variable specifies the number of MCUs between * restart markers within the compressed data. * If the specified restart interval is zero, then * the restart marker is not used. */ /// The image width in pixels. unsigned int u32ImageWidth; /**< This variable indicates the actual input image width. * */ /// The image height in pixels. unsigned int u32ImageHeight; /**< This variable indicates the actual input image height. * */ /// The output bitstream buffer address while encoding the input YUV image. unsigned char *pu8BitstreamAddr; /**< To set output bitstream buffer's address.\n * This bitstream buffer was provided by user and used * for JPEG encoder while encoding input YUV image.\n * <B>N.B.</B> : the input bitstream buffer address must be <B>physical address</B> with <B>4-byte aligned</B>. * */ /// The function pointer to user-defined DMA memory allocation function. DMA_MALLOC_PTR pfnDmaMalloc; /**< This variable contains the function pointer to the user-defined * DMA malloc function since under OS environment, our hardware device * may need the physical address instead of virtual address. * * @see pfnDmaFree * @see DMA_MALLOC_PTR * @see DMA_FREE_PTR */ /// The function pointer to user-defined DMA free allocation function. DMA_FREE_PTR pfnDmaFree; /**< This variable contains the function pointer to the user-defined * DMA free function since under OS environment, our hardware device * may need the physical address instead of virtual address. * * @see pfnDmaFree * @see DMA_MALLOC_PTR * @see DMA_FREE_PTR */ MALLOC_PTR pfnMalloc; FREE_PTR pfnFree; unsigned char u32CacheAlign; unsigned int bitstream_size; /* vitstream allocated size */ unsigned char* bs_buffer_virt; /* bitstream virtual address */ unsigned char * bs_buffer_phy; /* bitstream physical address */ unsigned int u32ImageMotionDetection; /* enable or disable motion detection function */ unsigned char u8JPGPIC; /* take one jpeg picture */ unsigned char u8MP4Alarm; /* only for Mp4 motion alarm occur to encode 2D YUV */ unsigned int mdt1; unsigned int mdt2; unsigned int mdt3; unsigned int mdt4; unsigned int mdt5; unsigned int active0; /* motion detection value */ unsigned int active1; unsigned int active2; int roi_enable; // ROI's (region of interest) upper-left corner coordinate(x,y) of captured frame. unsigned int roi_left_x; unsigned int roi_left_y; // ROI's (region of interest) lower-rigth corner coordinate(x,y) of captured frame. unsigned int roi_right_x; unsigned int roi_right_y;} FJPEG_ENC_PARAM;typedef struct { /// The x-component of coordinate of motion detection region 0, upper-left point int range_mb_x0_LU; /**< The x-component of coordinate of motion detection region 0, upper-left point. */ /// The y-component of coordinate of motion detection region 0, upper-left point. int range_mb_y0_LU; /**< The y-component of coordinate of motion detection region 0, upper-left point. */ /// The x-component of coordinate of motion detection region 0, lower-right point. int range_mb_x0_RD; /**< The x-component of coordinate of motion detection region 0, lower-right point. */ /// The y-component of coordinate of motion detection region 0, lower-right point. int range_mb_y0_RD; /**< The y-component of coordinate of motion detection region 0, lower-right point. */ /// The x-component of coordinate of motion detection region 1, upper-left point. int range_mb_x1_LU; /**< The x-component of coordinate of motion detection region 1, upper-left point. */ /// The y-component of coordinate of motion detection region 1, upper-left point. int range_mb_y1_LU; /**< The y-component of coordinate of motion detection region 1, upper-left point. */ /// The x-component of coordinate of motion detection region 1, lower-right point. int range_mb_x1_RD; /**< The x-component of coordinate of motion detection region 1, lower-right point. */ /// The y-component of coordinate of motion detection region 1, lower-right point. int range_mb_y1_RD; /**< The y-component of coordinate of motion detection region 1, lower-right point. */ /// The x-component of coordinate of motion detection region 2, upper-left point. int range_mb_x2_LU; /**< The x-component of coordinate of motion detection region 2, upper-left point. */ /// The y-component of coordinate of motion detection region 2, upper-left point. int range_mb_y2_LU; /**< The y-component of coordinate of motion detection region 2, upper-left point. */ /// The x-component of coordinate of motion detection region 2, lower-right point. int range_mb_x2_RD; /**< The x-component of coordinate of motion detection region 2, lower-right point. */ /// The y-component of coordinate of motion detection region 2, lower-right point int range_mb_y2_RD; /**< The y-component of coordinate of motion detection region 2, lower-right point. */ /// The threshold of delta deviation in region 0. int delta_dev_th0; /**< This variable specifies the threshold of delta deviation in region 0. */ /// The threshold of delta deviation in region 1. int delta_dev_th1; /**< This variable specifies the threshold of delta deviation in region 1. */ /// The threshold of delta deviation in region 2. int delta_dev_th2; /**< This variable specifies the threshold of delta deviation in region 2. */ /// The interval of frame/time for motion detection operation. int md_interval; /**< This variable specifies the interval of frame/time for motion detection operation. */} MOTION_DET_INFO;#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -