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

📄 me_fast_jitter2_kc.i

📁 H.264完整的C语言代码和DCT的代码
💻 I
📖 第 1 页 / 共 2 页
字号:
#line 1 "D:\\working\\im_apps\\h264\\me_fast_jitter2_kc.cpp"
#line 1 "D:/working/tools/isim/isimexe/blank_headers\\idb_kernelc.hpp"








#line 2 "D:\\working\\im_apps\\h264\\me_fast_jitter2_kc.cpp"
#line 1 "D:\\working\\im_apps\\h264\\mpeg.hpp"




#line 1 "D:/working/tools/isim/isimexe/blank_headers\\idb_types.hpp"













#line 6 "D:\\working\\im_apps\\h264\\mpeg.hpp"
#line 1 "D:/working/tools/isim/isimexe/blank_headers\\idb_deftypes.hpp"




#line 7 "D:\\working\\im_apps\\h264\\mpeg.hpp"



#decl idxGen(ostream<uint>   indices,
              uc<int>&        uc_size,
              uc<int>&        uc_params);
;


#decl icolor(istream<ubyte4> datain,
              ostream<half2> Yout,
              ostream<half2> CrCbout);
;


#decl pcolor(istream<ubyte4> datain,
              ostream<ubyte4> Yout,
              ostream<half2> CrCbout);
;


#decl dct(istream<half2> datain,
           istream<uhalf2> consts,
           ostream<half2> out,
           uc<uhalf2>& uc_quantizer_scale);
;


#decl idct(istream<half2> datain,
            istream<uhalf2> consts,
            ostream<half2> out,
            uc<half2>& uc_quantizer_scale);
;


#decl rle(istream<half2> Yin,
           istream<half2> CrCbin,
           istream<int> indices,
           cistream<half2> motion,
           costream<half2> out,
           uc<uint>& pframe,
           uc<uint>& quant_scale);
;


#decl difference(istream<ubyte4> curryblks,
                  istream<half2> currcblks,
                  istream<ubyte4> refyblks,
                  istream<half2> refcblks,
                  ostream<half2> diffyblks,
                  ostream<half2> diffcblks);
;


#decl correlate(istream<half2> diffyblks,
                 istream<half2> diffcblks,
                 istream<ubyte4> refyblks,
                 istream<half2> refcblks,
                 ostream<ubyte4> newrefyblks,
                 ostream<half2> newrefcblks,
                 uc<uint>& uc_pframe);
;


#decl MV2idx(cistream<half2> motion,      
              ostream<uint>   yindices,    
              ostream<uint>   crcbindices, 
              uc<int>&        uc_offsets,  
              uc<int>&        uc_mblks,    
              uc<int>&        uc_mb_width);
;




#decl mb_encode(istream<byte4> datain,
                 istream<half2> consts,
                 ostream<half2> color_out,
                 ostream<half2> dct_out,
                 costream<int> out);
;





#decl me_fast(istream<ubyte4> row0,
               istream<ubyte4> row1,
               istream<ubyte4> row2,
               istream<ubyte4> mblocks,
               costream<half2> motions_out,
               ostream<ubyte4> refyblks,
               ostream<uint>   crcbindices,
               uc<int>& uc_margin,
               uc<int>& uc_offsets,
               uc<int>& uc_mblks,
               uc<int>& uc_mb_width);
;


#decl me_fast_search4(istream<ubyte4> row0,
                       istream<ubyte4> row1,
                       istream<ubyte4> row2,
                       istream<ubyte4> mblocks,
                       costream<half2> motions_out,
                       uc<int>& uc_margin,
                       uc<int>& uc_mblks);
;


#decl me_fast_jitter2(istream<ubyte4> row0,
                       istream<ubyte4> row1,
                       istream<ubyte4> row2,
                       istream<ubyte4> mblocks,
                       cistream<half2> motions_in,
                       costream<half2> motions_out,
                       uc<int>& uc_margin,
                       uc<int>& uc_mblks);
;


#decl me_fast_jitter1(istream<ubyte4> row0,
                       istream<ubyte4> row1,
                       istream<ubyte4> row2,
                       istream<ubyte4> mblocks,
                       cistream<half2> motions_in,
                       costream<half2> motions_out,
                       ostream<ubyte4> refyblks,
                       ostream<uint>   crcbindices,
                       uc<int>& uc_margin,
                       uc<int>& uc_offsets,
                       uc<int>& uc_mblks,
                       uc<int>& uc_mb_width);
;






#line 1 "D:/working/tools/isim/isimexe/blank_headers\\idb_undeftypes.hpp"




#line 148 "D:\\working\\im_apps\\h264\\mpeg.hpp"

#line 150 "D:\\working\\im_apps\\h264\\mpeg.hpp"
#line 3 "D:\\working\\im_apps\\h264\\me_fast_jitter2_kc.cpp"
#line 1 "D:\\working\\im_apps\\h264\\me_kc.hpp"



#line 1 "D:/working/tools/isim/isimexe/blank_headers\\idb_types.hpp"













#line 5 "D:\\working\\im_apps\\h264\\me_kc.hpp"
#line 1 "D:/working/tools/isim/isimexe/blank_headers\\idb_deftypes.hpp"




#line 6 "D:\\working\\im_apps\\h264\\me_kc.hpp"


































#line 41 "D:\\working\\im_apps\\h264\\me_kc.hpp"

 inline int
check_xy(int top_range, int bottom_range,
         int left_range, int right_range,
         int test_x, int test_y);

 inline void
save_MB(array<ubyte4>& save_arr,
        ubyte4 mb0, ubyte4 mb1, ubyte4 mb2, ubyte4 mb3, ubyte4 mb4, ubyte4 mb5, ubyte4 mb6, ubyte4 mb7);

 inline void
load_MB(array<ubyte4>& save_arr,
        ubyte4& mb0, ubyte4& mb1, ubyte4& mb2, ubyte4& mb3, ubyte4& mb4, ubyte4& mb5, ubyte4& mb6, ubyte4& mb7);

 inline void
extract_ref_MB4(array<ubyte4>& search_region,
                int start_idx,
                int x, int y,
                int range_x, int range_y,
                int& sr_row, int& sr_col, int& rot_perm,
                ubyte4& ref_mb0, ubyte4& ref_mb1, ubyte4& ref_mb2, ubyte4& ref_mb3, ubyte4& ref_mb4, ubyte4& ref_mb5, ubyte4& ref_mb6, ubyte4& ref_mb7);

 inline void
extract_ref_MB(array<ubyte4>& search_region,
               int start_idx,
               int x, int y,
               int range_x, int range_y,
               ubyte4& ref_mb0, ubyte4& ref_mb1, ubyte4& ref_mb2, ubyte4& ref_mb3, ubyte4& ref_mb4, ubyte4& ref_mb5, ubyte4& ref_mb6, ubyte4& ref_mb7);

 inline void
shift_ref_MB4(array<ubyte4>& search_region,
              int sr_row, int& sr_col,
              int range_x,
              int rot_perm,
              ubyte4& ref_mb0, ubyte4& ref_mb1, ubyte4& ref_mb2, ubyte4& ref_mb3, ubyte4& ref_mb4, ubyte4& ref_mb5, ubyte4& ref_mb6, ubyte4& ref_mb7);

 inline void
compare_MB(ubyte4 ref_mb0, ubyte4 ref_mb1, ubyte4 ref_mb2, ubyte4 ref_mb3, ubyte4 ref_mb4, ubyte4 ref_mb5, ubyte4 ref_mb6, ubyte4 ref_mb7,
           ubyte4 mb0, ubyte4 mb1, ubyte4 mb2, ubyte4 mb3, ubyte4 mb4, ubyte4 mb5, ubyte4 mb6, ubyte4 mb7,
           int test_x, int test_y, int in_range,
           int& mv_x, int& mv_y, uint& mv_sad);

#line 1 "D:/working/tools/isim/isimexe/blank_headers\\idb_undeftypes.hpp"




#line 84 "D:\\working\\im_apps\\h264\\me_kc.hpp"


#line 1 "D:\\working\\im_apps\\h264\\me_fns_kc.cpp"
#line 1 "D:/working/tools/isim/isimexe/blank_headers\\idb_kernelc.hpp"








#line 2 "D:\\working\\im_apps\\h264\\me_fns_kc.cpp"
#line 1 "D:\\working\\im_apps\\h264\\me_kc.hpp"

























































































#line 3 "D:\\working\\im_apps\\h264\\me_fns_kc.cpp"
#line 1 "D:/working/tools/isim/isimexe/blank_headers\\idb_kernelc2.hpp"






#line 4 "D:\\working\\im_apps\\h264\\me_fns_kc.cpp"














inline int check_xy(int top_range, int bottom_range,
                    int left_range, int right_range,
                    int test_x, int test_y)
{
  int outside, in_range;

  
  outside = test_y < top_range;
  in_range = ~outside;
  

⌨️ 快捷键说明

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