📄 mavrix_chang_log.txt
字号:
void get_motion_vector_interlaced(DECODER * dec, Bitstream * bs,
int x, int y, int k, MACROBLOCK *pMB,
int fcode, const int bound);
void get_b_motion_vector(Bitstream * bs, VECTOR * mv,int fcode,
const VECTOR pmv,const DECODER * const dec, const int x, const int y);
void get_motion_vector(DECODER * dec, Bitstream * bs,int x,int y,
int k, VECTOR * ret_mv, int fcode,const int bound);
MVMc.h MVMc.c包含的函数:
void transfer_16to8copy(uint8_t * const dst, const int16_t * const src, uint32_t stride);
void transfer8x8_copy(uint8_t * const dst, const uint8_t * const src, const uint32_t stride);
void transfer8x4_copy(uint8_t * const dst,const uint8_t * const src, const uint32_t stride);
void interpolate8x8_halfpel_h(uint8_t * const dst,const uint8_t * const src,const uint32_t stride, const uint32_t rounding);
void interpolate8x8_halfpel_v(uint8_t * const dst, const uint8_t * const src,const uint32_t stride, const uint32_t rounding);
void interpolate8x8_halfpel_hv(uint8_t * const dst, const uint8_t * const src, const uint32_t stride,const uint32_t rounding);
void interpolate8x8_switch(uint8_t * const cur, const uint8_t * const refn, const uint32_t x,const uint32_t y,
const int32_t dx, const int dy, const uint32_t stride,const uint32_t rounding);
void interpolate16x16_switch(uint8_t * const cur, const uint8_t * const refn,const uint32_t x,
const uint32_t y, const int32_t dx,const int dy,const uint32_t stride,
const uint32_t rounding);
void interpolate8x4_halfpel_h(uint8_t * const dst,const uint8_t * const src,const uint32_t stride,const uint32_t rounding);
void interpolate8x4_halfpel_v(uint8_t * const dst,const uint8_t * const src,const uint32_t stride,
const uint32_t rounding);
void interpolate8x4_halfpel_hv(uint8_t * const dst, const uint8_t * const src, const uint32_t stride,
const uint32_t rounding);
void interpolate8x4_switch(uint8_t * const cur,const uint8_t * const refn, const uint32_t x,const uint32_t y,
const int32_t dx, const int dy, const uint32_t stride, const uint32_t rounding);
void interpolate16x16_quarterpel_h(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t RND);
void interpolate16x16_quarterpel_ha(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t RND);
void interpolate16x16_quarterpel_ha_up(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t RND);
void interpolate16x16_quarterpel_v(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t RND);
void interpolate16x16_quarterpel_va(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t RND);
void interpolate16x16_quarterpel_va_up(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t RND);
void interpolate16x16_quarterpel(uint8_t * const cur,uint8_t * const refn,uint8_t * const refh,uint8_t * const refv,
uint8_t * const refhv,const uint32_t x, const uint32_t y,const int32_t dx, const int dy,
const uint32_t stride,const uint32_t rounding);
void interpolate8x8_quarterpel_h(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t Rnd);
void interpolate8x8_quarterpel_ha(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t Rnd);
void interpolate8x8_quarterpel_ha_up(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t Rnd);
void interpolate8x8_quarterpel_v(uint8_t *Dst, const uint8_t *Src, int32_t W, int32_t BpS, int32_t Rnd);
void interpolate8x8_quarterpel_va(uint8_t *Dst, const uint8_t *Src, int32_t W, int32_t BpS, int32_t Rnd);
void interpolate8x8_quarterpel_va_up(uint8_t *Dst, const uint8_t *Src, int32_t W, int32_t BpS, int32_t Rnd);
void interpolate8x8_quarterpel(uint8_t * const cur,uint8_t * const refn,uint8_t * const refh,
uint8_t * const refv,uint8_t * const refhv,const uint32_t x, const uint32_t y,
const int32_t dx, const int dy,const uint32_t stride,const uint32_t rounding);
void transfer_16to8_add(uint8_t * const dst, const int16_t * const src,uint32_t stride);
void interpolate8x8_halfpel_add(uint8_t * dst, const uint8_t * src1, const uint8_t *src2, const uint32_t stride,
const uint32_t rounding, const uint32_t height);
void interpolate8x8_halfpel_h_add(uint8_t * const dst,const uint8_t * const src,const uint32_t stride,const uint32_t rounding);
void interpolate8x8_halfpel_v_add(uint8_t * const dst,const uint8_t * const src,const uint32_t stride,const uint32_t rounding);
void interpolate8x8_halfpel_hv_add(uint8_t * const dst,const uint8_t * const src,const uint32_t stride,const uint32_t rounding);
void interpolate8x8_switch_add(uint8_t * const cur,const uint8_t * const refn,const uint32_t x,
const uint32_t y,const int32_t dx,const int dy,const uint32_t stride,const uint32_t rounding);
void interpolate16x16_quarterpel_h_add(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t RND);
void interpolate16x16_quarterpel_ha_add(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t RND);
void interpolate16x16_quarterpel_ha_up_add(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t RND);
void interpolate16x16_quarterpel_v_add(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t RND);
void interpolate16x16_quarterpel_va_add(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t RND);
void interpolate16x16_quarterpel_va_up_add(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t RND);
void interpolate16x16_quarterpel_add(uint8_t * const cur,uint8_t * const refn,uint8_t * const refh,uint8_t * const refv,
uint8_t * const refhv,const uint32_t x, const uint32_t y,const int32_t dx, const int dy,
const uint32_t stride,const uint32_t rounding);
void interpolate8x8_quarterpel_h_add(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t Rnd);
void interpolate8x8_quarterpel_ha_add(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t Rnd);
void interpolate8x8_quarterpel_ha_up_add(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t Rnd);
void interpolate8x8_quarterpel_v_add(uint8_t *Dst, const uint8_t *Src, int32_t W, int32_t BpS, int32_t Rnd);
void interpolate8x8_quarterpel_va_add(uint8_t *Dst, const uint8_t *Src, int32_t W, int32_t BpS, int32_t Rnd);
void interpolate8x8_quarterpel_va_up_add(uint8_t *Dst, const uint8_t *Src, int32_t W, int32_t BpS, int32_t Rnd);
void interpolate8x8_quarterpel_add(uint8_t * const cur,uint8_t * const refn,uint8_t * const refh,
uint8_t * const refv,uint8_t * const refhv,const uint32_t x, const uint32_t y,
const int32_t dx, const int dy,const uint32_t stride,const uint32_t rounding);
int gmc_sanitize(int value, int quarterpel, int fcode)
void Predict_16x16_C(const NEW_GMC_DATA * const This,uint8_t *dst, const uint8_t *src,
int dststride, int srcstride, int x, int y, int rounding);
void Predict_1pt_16x16_C(const NEW_GMC_DATA * const This,uint8_t *Dst, const uint8_t *Src,int dststride, int srcstride, int x, int y, int rounding);
void Predict_8x8_C(const NEW_GMC_DATA * const This, uint8_t *uDst, const uint8_t *uSrc,uint8_t *vDst, const uint8_t *vSrc,
int dststride, int srcstride, int x, int y, int rounding);
void Predict_1pt_8x8_C(const NEW_GMC_DATA * const This,uint8_t *uDst, const uint8_t *uSrc,uint8_t *vDst, const uint8_t *vSrc,
int dststride, int srcstride, int x, int y, int rounding);
void get_average_mv_C(const NEW_GMC_DATA * const Dsp, VECTOR * const mv,int x, int y, int qpel);
void generate_GMCparameters( int nb_pts, const int accuracy,const WARPPOINTS *const pts,const int width, const int height,NEW_GMC_DATA *const gmc);
MVMemoryalloc.h MVMemoryalloc.c包含的定义函数
void* xvid_malloc(size_t size, uint8_t alignment); void xvid_free(void *mem_ptr);
MVImage.h MVImage.c包含的定义函数有:
void image_null(IMAGE * image);
void init_image(uint32_t cpu_flags); int32_t image_create(IMAGE * image,uint32_t edged_width,uint32_t edged_height);
void image_destroy(IMAGE * image,uint32_t edged_width,uint32_t edged_height);
int image_output(IMAGE * image, uint32_t width, int height,uint32_t edged_width, uint8_t * dst, int dst_stride,
uint32_t *out_len, uint32_t type); void image_clear(IMAGE * img, int width, int height, int edged_width,int y, int u, int v); void image_setedges(IMAGE * image, uint32_t edged_width,uint32_t edged_height, uint32_t width,
uint32_t height, int bs_version);
void image_swap(IMAGE * image1,IMAGE * image2); void image_copy(IMAGE * image1,IMAGE * image2,uint32_t edged_width,uint32_t height);
MVDecodec.h MVDecodec.c包含的定义函数有:
int mavrix_mp4_dec_open(void ** pp_handle);
int mavrix_mp4_dec_decode(void* p_handle, void * p_in_buf, int in_len,void * p_out_buf, int * p_out_len);
函数的出处在函数的实现中有详细的说明
还存在的问题:
1:对于NO_VOP的帧,还是解出来了,导致解的帧数增加
2:有些函数放的文件不妥,还需要进行移动
3:还需减少宏/表定义文件中宏/表的定义,将其转到只使用它的文件里
4: 文件和函数名,以后在修改
2007-1-17
@ blues zhang,test all the 16 bitstream examples, it's ok.
1.deleted functions of image.c: impage_input
2007-1-16
@ blues zhang,test foreman_qcif8.yuv(all asp) and carphone_qcif3.yuv(sp), decoded files are the same as original
1.deleted functions of image process:interpolate8x8_6tap_lowpass_h_c(),etc.
2.deleted xvid.h: xvid_plg_data_t,encoder operations
3.deleted mb coding functions in mbcoding.c: CodeBlockIntra(),CodeBlockInter(),put_bvop_mbtype(),put_bvop_dbquant(),CodeVector(),CodeCoeffInter(),etc.
4.reduced.c :deleted xvid_Add_Upsampled_8x8_16To8_C()
5.deleted files: reduced.h,reduced.c,cbp.c,
6.iterpolate8x8.h: deleted functions:interpolate32x32_add_switch(),interpolate8x8_switch2(),etc.
2007-1-15
@ blues zhang,
1.delete functions about fdct:
1)mbtransquant.c: MBTransQuantIntra()
Evaluate_Cost
2.delete files: mbtransquant.c
3.delete files: mbfunctions.h
4.mbcoding.c :delete function : MBCoding()
5.bitstream.c: delete write bitstream functions
6.delete: fdct.c,fdct.h
7.simplify: idct.c,idct.h
8.delete files:simple_idct_c.c
9.delete quant functions of h263 and mpeg4
10.delete files: emms.h, emms.c
11.simplify mem_transfer.h,deleted functions responding to special architectures.
12. image.c: deleted function: image_interpolate()
13. delete file: xvid_plugin_psnr.c
14. in xvid.h: delete struct xvid_enc_create_t , "Motion" flags with "ME",xvid_enc_frame_t
15.encoder.h, deleted struct QUEUEINFO
2007-1-12
@ blues zhang,test foreman_qcif8.yuv(all asp) and carphone_qcif3.yuv(sp), decoded files are the same as original
1.delete motion_comp.c
2.delete motion_inlines.h
3.simplify file: estimation.h
4.delete estimation.h,
5.simplify filemotion.h
6.mbprediction.c: disabled MBPrediction()
2007-1-11
@ blues zhang ,test foreman_qcif8.yuv(all asp) and carphone_qcif3.yuv(sp), decoded files are the same as original
1.delete files: encoder.c
2.encoder.h:
delete functions : enc_create,enc_destroy,enc_encode
delete struct: Encoder
3.estimation_bvop.c:
disable : MotionEstimationBVOP()
4.estimation_pvop.c:
delete: MotionEstimation
5.estimation_rd_based.c:
delete: xvid_me_ModeDecion_Fast()
6.delete files:
estimation_pvop.c, estimation_bvop.c,estimation_rd_based.c,estimation_rd_based_bvop.c,vop_top_decision.c,estimation_gmc.c
7.xvid.c: deleted dev16
8. sad.h :deleted something corresponding with special hardware architects.
9. sad.c: deleted sad8_c() sad16_c(),sse8_16bit_c()
10.image.c: delete plane_sse()
11.delete file sad.c.
2007-1-9
@ blues zhang, test foreman_qcif8.yuv(all asp) and carphone_qcif3.yuv(sp), decoded files are the same as original xvid decoder.
1.sepearate encoder and decoder.
2.delete files:
1) delete asm: bitstream,dct,image,quant,utils
2) encoder.c
3) xvid_encraw
4)delete vfw , plugin,dshow and debian directions
5)bench files
3. the decoding results of foreman_qcif8.yuv in debug version and release version are not the same, debug one is right. After installing vcsp6,it's ok.
4.disable xvid_encore in xvid.c
5.edit interfaces in libxvidcore.def by removing xvid_encore,xvid_plugin_2pass1,xvid_plugin_2pass2,xvid_plugin_single,xvid_plugin_lumimasking,xvid_plugin_dump,xvid_plugin_psnr;
2007-1-6, blues zhang
save decoded images as a YUV file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -