[Mp4-tech] H. 264 Encoder help required

Andrew Krupiczka andrewk vbrick.com
Thu Sep 14 10:27:17 EDT 2006


I need to know what are the routines i need to go through in reference
software.

 

To learn more, I'd suggest debugging ref. software code.

 

Best regards,

 

Andrew

 

 

1)       start with encode_one_macroblock () routine and then look for 

 

a)                              //===== MOTION ESTIMATION FOR 16x16,
16x8, 8x16 BLOCKS =====  

PartitionMotionSearch (mode, block, enc_mb.lambda_mf);

 

and

 

*m_cost += BlockMotionSearch     (ref, list, h<<2, v<<2, blocktype,
search_range, lambda_factor);

 

In BlockMotionSearch() you should find "full pel routines" as following:

 

    min_mcost = FastIntegerPelBlockMotionSearch(orig_pic, ref, list,
pic_pix_x, pic_pix_y, blocktype,

      pred_mv_x, pred_mv_y, &mv_x, &mv_y, search_range,

      min_mcost, lambda_factor);

 

and

 

    min_mcost = simplified_FastIntegerPelBlockMotionSearch (orig_pic,
ref, list, pic_pix_x, pic_pix_y, blocktype,

                                                 pred_mv_x, pred_mv_y,
&mv_x, &mv_y, search_range,

                                                 min_mcost,
lambda_factor);

 

and

 

    min_mcost = EPZSPelBlockMotionSearch (orig_pic, ref, list,
list_offset, 

      enc_picture->ref_idx, enc_picture->mv,pic_pix_x, pic_pix_y,
blocktype,

      pred_mv_x, pred_mv_y, &mv_x, &mv_y, search_range, min_mcost,
lambda_factor);

 

PLUS "qpel routines" like the one 

 

            min_mcost =  FastSubPelBlockMotionSearch (orig_pic, ref,
list, pic_pix_x, pic_pix_y, blocktype,

            pred_mv_x, pred_mv_y, &mv_x, &mv_y, 9, 9, min_mcost,
lambda_factor, (input->Transform8x8Mode && blocktype <= 4 &&
input->hadamard));

 

            

b)                        For Motion Estimation using 8x8 sub-partitions
"the entry points" to PartitionMotionSearch() are:

 

          //=====  LOOP OVER 8x8 SUB-PARTITIONS  (Motion Estimation &
Mode Decision) =====

submacroblock_mode_decision(enc_mb, &tr8x8, currMB,
cofAC_8x8ts[block],&have_direct, bslice, block, &cost_direct, &cost,
&cost8x8_direct, 

 

and

 

          //=====  LOOP OVER 8x8 SUB-PARTITIONS  (Motion Estimation &
Mode Decision) =====

          for (cost_direct=cbp8x8=cbp_blk8x8=cnt_nonz_8x8=0, block=0;
block<4; block++)

          {

            submacroblock_mode_decision(enc_mb, &tr4x4, currMB,
cofAC8x8[block],

              &have_direct, bslice, block, &cost_direct, &cost,
&cost8x8_direct, 0);

 

 

-----Original Message-----
From: mp4-tech-bounces lists.mpegif.org
[mailto:mp4-tech-bounces lists.mpegif.org] On Behalf Of hari prasath
Sent: Thursday, September 14, 2006 2:32 AM
To: mp4-tech lists.mpegif.org
Subject: [Mp4-tech] H. 264 Encoder help required

 

Dear Experts,

I am currently working on the motion estimation module of the H.264
standar.I am using the JM 10.2 as the reference.Can anyone tell the flow
i should follow to complete the motion estimation module.I need to know
what are the routines i need to go through in reference software. 

Pls help me experts

Thanks in advence

-------------- next part --------------
An HTML attachment was scrubbed...
URL: /pipermail/mp4-tech/attachments/20060914/deac4b9f/attachment-0001.html


More information about the Mp4-tech mailing list