亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dct_kc.i

?? H.264完整的C語言代碼和DCT的代碼
?? I
字號:
#line 1 "D:\\working\\im_apps\\h264\\dct_kc.cpp"
#line 1 "D:/working/tools/isim/isimexe/blank_headers\\idb_kernelc.hpp"








#line 2 "D:\\working\\im_apps\\h264\\dct_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 blocksearch(istream<ubyte4> row0,
                   istream<ubyte4> row1,
                   istream<ubyte4> row2,
                   istream<ubyte4> mblocks,
                   costream<half2> motions,
                   uc<int>& location);
;


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



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




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

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






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

;















kernel dct(istream<half2> datain,
           istream<uhalf2> consts,           
           ostream<half2> out,
           uc<uhalf2>& uc_quantizer_scale)   
{
  
  half2 COS_2             = 0x2d412d41;    
  half2 COS_3             = 0x187e187e;    
  half2 COS_1_plus_COS_3  = 0x539f539f;    
  half2 COS_1_minus_COS_3 = 0x22a322a3;    

  expand<half2> K(8);
  
  K[0] = 0x16a116a1;        
  K[1] = 0x10501050;        
  K[2] = 0x11511151;        
  K[3] = 0x133e133e;        
  K[4] = 0x16a116a1;        
  K[5] = 0x1ccd1ccd;        
  K[6] = 0x29cf29cf;        
  K[7] = 0x52035203;        

  
  
  
  
  
  
  
  
  
  

  
  
  
  
  

  uhalf2 quant_scale = commclperm(0x8, 0, uc_quantizer_scale);
  expand<half2> quant(8);
  int quant_idx = 0;
  uhalf2 utmp;

  
  
  consts >> utmp;
  quant[0] = half2(shift(hi(mulrnd(quant_scale, utmp)), -1));
  consts >> utmp;
  quant[1] = half2(shift(hi(mulrnd(quant_scale, utmp)), -1));
  consts >> utmp;
  quant[2] = half2(shift(hi(mulrnd(quant_scale, utmp)), -1));
  consts >> utmp;
  quant[3] = half2(shift(hi(mulrnd(quant_scale, utmp)), -1));
  consts >> utmp;
  quant[4] = half2(shift(hi(mulrnd(quant_scale, utmp)), -1));
  consts >> utmp;
  quant[5] = half2(shift(hi(mulrnd(quant_scale, utmp)), -1));
  consts >> utmp;
  quant[6] = half2(shift(hi(mulrnd(quant_scale, utmp)), -1));
  consts >> utmp;
  quant[7] = half2(shift(hi(mulrnd(quant_scale, utmp)), -1));


  
  
  
  
  

  
  uc<int> perm_a = 0x07654321;
  uc<int> perm_b = 0x10765432;
  uc<int> perm_c = 0x21076543;
  uc<int> perm_d = 0x32107654;
  uc<int> perm_e = 0x43210765;
  uc<int> perm_f = 0x54321076;
  uc<int> perm_g = 0x65432107;


  
  half2 h2_one = 1 | half2(shift(1, 16));
  uhalf2 uh2_half = shift(uhalf2(h2_one), 16 - 1);
  uhalf2 uh2_almost_half = uh2_half - uhalf2(h2_one);

  
  int idx0 = cid();
  int idx1 = (idx0 - 1) & 7;
  int idx2 = (idx1 - 1) & 7;
  int idx3 = (idx2 - 1) & 7;
  int idx4 = (idx3 - 1) & 7;
  int idx5 = (idx4 - 1) & 7;
  int idx6 = (idx5 - 1) & 7;
  int idx7 = (idx6 - 1) & 7;

  loop_stream(datain) pipeline(1) {
    
    half2 a0, a1, a2, a3, a4, a5, a6, a7;
    datain >> a0 >> a1 >> a2 >> a3 >> a4 >> a5 >> a6 >> a7;

    
    half2 s16, s07, s25, s34, s1625, s0734;
  
    s07 = a0 + a7;
    s16 = a1 + a6;
    s25 = a2 + a5;
    s34 = a3 + a4;
    s1625 = s16 + s25;
    s0734 = s07 + s34;
  
    half2 d16, d07, d25, d34, d1625, d0734;
  
    d07 = a0 - a7;
    d16 = a1 - a6;
    d25 = a2 - a5;
    d34 = a3 - a4;
    d1625 = s16 - s25;
    d0734 = s07 - s34;

    half2 sd16d07, sd25d34;
  
    sd16d07 = d07 + d16;
    sd25d34 = d25 + d34;
  
    half2 m1_over_2, m2, m5, m6, m7, m8, m9;
  
    
    m1_over_2 = s0734 + s1625;
    m2 = s0734 - s1625;
    m5 = hi(mulrnd(COS_2, shift(d1625 + d0734, 2)));
    m6 = hi(mulrnd(COS_2, shift(d25 + d16, 2)));
    m7 = hi(mulrnd(COS_3, shift(sd16d07 - sd25d34, 2)));
    m8 = hi(mulrnd(COS_1_plus_COS_3, shift(sd16d07, 2)));
    m9 = hi(mulrnd(COS_1_minus_COS_3, shift(sd25d34, 2)));
  
    half2 s5, s6, s7, s8;
  
    s5 = d07 + m6;
    s6 = d07 - m6;
    s7 = m8 - m7;
    s8 = m9 - m7;
  
    array<half2> buf1(8);  
    array<half2> buf2(8);  

    
    buf1[0] = hi(mulrnd(K[0], shift(m1_over_2, 2)));
    buf1[1] = hi(mulrnd(K[1], shift(s5 + s7, 2)));
    buf1[2] = hi(mulrnd(K[2], shift(d0734 + m5, 2)));
    buf1[3] = hi(mulrnd(K[3], shift(s6 - s8, 2)));
    buf1[4] = hi(mulrnd(K[4], shift(m2, 2)));
    buf1[5] = hi(mulrnd(K[5], shift(s6 + s8, 2)));
    buf1[6] = hi(mulrnd(K[6], shift(d0734 - m5, 2)));
    buf1[7] = hi(mulrnd(K[7], shift(s5 - s7, 2)));
  
    
  
    buf2[idx0] = buf1[idx0];
    buf2[idx7] = commucperm(perm_a, buf1[idx1]);
    buf2[idx6] = commucperm(perm_b, buf1[idx2]);
    buf2[idx5] = commucperm(perm_c, buf1[idx3]);
    buf2[idx4] = commucperm(perm_d, buf1[idx4]);
    buf2[idx3] = commucperm(perm_e, buf1[idx5]);
    buf2[idx2] = commucperm(perm_f, buf1[idx6]);
    buf2[idx1] = commucperm(perm_g, buf1[idx7]);
    
    
    a0 = buf2[0];
    a1 = buf2[1];
    a2 = buf2[2];
    a3 = buf2[3];
    a4 = buf2[4];
    a5 = buf2[5];
    a6 = buf2[6];
    a7 = buf2[7];

    s07 = a0 + a7;
    s16 = a1 + a6;
    s25 = a2 + a5;
    s34 = a3 + a4;
    s1625 = s16 + s25;
    s0734 = s07 + s34;
  
    d07 = a0 - a7;
    d16 = a1 - a6;
    d25 = a2 - a5;
    d34 = a3 - a4;
    d1625 = s16 - s25;
    d0734 = s07 - s34;
  
    sd16d07 = d07 + d16;
    sd25d34 = d25 + d34;
  
    
    m1_over_2 = s0734 + s1625;
    m2 = s0734 - s1625;
    m5 = hi(mulrnd(COS_2, shift(d1625 + d0734, 2)));
    m6 = hi(mulrnd(COS_2, shift(d25 + d16, 2)));
    m7 = hi(mulrnd(COS_3, shift(sd16d07 - sd25d34, 2)));
    m8 = hi(mulrnd(COS_1_plus_COS_3, shift(sd16d07, 2)));
    m9 = hi(mulrnd(COS_1_minus_COS_3, shift(sd25d34, 2)));
  
    s5 = d07 + m6;
    s6 = d07 - m6;
    s7 = m8 - m7;
    s8 = m9 - m7;
  
    half2 d0, d1, d2, d3, d4, d5, d6, d7;
    d0 = m1_over_2;
    d1 = s5 + s7;
    d2 = d0734 + m5;
    d3 = s6 - s8;
    d4 = m2;
    d5 = s6 + s8;
    d6 = d0734 - m5;
    d7 = s5 - s7;
  
    
    uhalf2 round_cmp;          
    double<half2> dct_quant;   
    cc sign, add;
  
    sign = itocc(int(d0 <= 0));
    round_cmp = select(sign, uh2_half, uh2_almost_half);
    dct_quant = quant[0] * shift(d0, 2);
    add = itocc(int(round_cmp < uhalf2(lo(dct_quant))));
    out << select(add, (hi(dct_quant)+h2_one), hi(dct_quant));
  
    sign = itocc(int(d1 <= 0));
    round_cmp = select(sign, uh2_half, uh2_almost_half);
    dct_quant = quant[1] * shift(d1, 2);
    add = itocc(int(round_cmp < uhalf2(lo(dct_quant))));
    out << select(add, (hi(dct_quant)+h2_one), hi(dct_quant));
  
    sign = itocc(int(d2 <= 0));
    round_cmp = select(sign, uh2_half, uh2_almost_half);
    dct_quant = quant[2] * shift(d2, 2);
    add = itocc(int(round_cmp < uhalf2(lo(dct_quant))));
    out << select(add, (hi(dct_quant)+h2_one), hi(dct_quant));
  
    sign = itocc(int(d3 <= 0));
    round_cmp = select(sign, uh2_half, uh2_almost_half);
    dct_quant = quant[3] * shift(d3, 2);
    add = itocc(int(round_cmp < uhalf2(lo(dct_quant))));
    out << select(add, (hi(dct_quant)+h2_one), hi(dct_quant));
  
    sign = itocc(int(d4 <= 0));
    round_cmp = select(sign, uh2_half, uh2_almost_half);
    dct_quant = quant[4] * shift(d4, 2);
    add = itocc(int(round_cmp < uhalf2(lo(dct_quant))));
    out << select(add, (hi(dct_quant)+h2_one), hi(dct_quant));
  
    sign = itocc(int(d5 <= 0));
    round_cmp = select(sign, uh2_half, uh2_almost_half);
    dct_quant = quant[5] * shift(d5, 2);
    add = itocc(int(round_cmp < uhalf2(lo(dct_quant))));
    out << select(add, (hi(dct_quant)+h2_one), hi(dct_quant));
  
    sign = itocc(int(d6 <= 0));
    round_cmp = select(sign, uh2_half, uh2_almost_half);
    dct_quant = quant[6] * shift(d6, 2);
    add = itocc(int(round_cmp < uhalf2(lo(dct_quant))));
    out << select(add, (hi(dct_quant)+h2_one), hi(dct_quant));
  
    sign = itocc(int(d7 <= 0));
    round_cmp = select(sign, uh2_half, uh2_almost_half);
    dct_quant = quant[7] * shift(d7, 2);
    add = itocc(int(round_cmp < uhalf2(lo(dct_quant))));
    out << select(add, (hi(dct_quant)+h2_one), hi(dct_quant));
  }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线乱码一区二区三区| 91一区在线观看| 国产电影一区二区三区| 顶级嫩模精品视频在线看| 一本色道久久综合亚洲精品按摩| 欧美丰满美乳xxx高潮www| 欧美电影免费观看高清完整版在线观看 | 日本系列欧美系列| 国产91富婆露脸刺激对白| 欧美色爱综合网| 国产精品美女久久久久久久久| 亚洲一区二区三区中文字幕| 国内精品自线一区二区三区视频| 日本精品免费观看高清观看| 久久亚洲免费视频| 亚洲成av人片www| 91玉足脚交白嫩脚丫在线播放| 日韩视频免费观看高清完整版在线观看| 日本一二三四高清不卡| 日日夜夜免费精品| 色先锋aa成人| 国产精品麻豆99久久久久久| 经典三级一区二区| 91精品国产综合久久婷婷香蕉 | 久久精品日韩一区二区三区| 亚洲国产一区二区三区青草影视 | 日韩午夜在线观看视频| 国产91富婆露脸刺激对白| 91丝袜呻吟高潮美腿白嫩在线观看| 成人精品视频一区二区三区尤物| 欧美日韩精品一区二区| 久久先锋影音av| 日本美女视频一区二区| 91官网在线观看| 亚洲欧洲在线观看av| 国产69精品一区二区亚洲孕妇 | 国产盗摄一区二区三区| 日韩一区二区三区免费观看| 一区二区三区电影在线播| jvid福利写真一区二区三区| 久久精品人人做人人爽97| 蜜臀av一区二区在线免费观看 | 国产精品自拍三区| 欧美精品一区二区三区久久久| 日日夜夜免费精品| 欧美精品电影在线播放| 五月婷婷综合网| 欧美日韩国产经典色站一区二区三区| 尤物av一区二区| 91丨porny丨户外露出| 亚洲欧洲制服丝袜| 色综合天天天天做夜夜夜夜做| 亚洲欧洲国产日韩| 91伊人久久大香线蕉| 一区二区三区中文免费| 欧美午夜片在线看| 日产国产高清一区二区三区| 日韩午夜电影av| 久久99热这里只有精品| 久久综合久久鬼色中文字| 国产精品原创巨作av| 国产欧美一区二区精品秋霞影院| 国产盗摄女厕一区二区三区| 亚洲国产岛国毛片在线| 一本大道久久a久久精二百| 亚洲成人免费观看| 日韩欧美三级在线| 国产成人h网站| 美女视频黄久久| 日韩午夜电影av| 成人免费毛片高清视频| 亚洲精品欧美专区| 91精品国产欧美一区二区| 蜜桃久久久久久| 国产精品色哟哟网站| 欧美色区777第一页| 精品中文av资源站在线观看| 亚洲国产精品国自产拍av| 色噜噜狠狠色综合欧洲selulu| 亚洲成人自拍网| 久久九九久久九九| 91在线精品一区二区| 日韩影院免费视频| 国产女主播视频一区二区| 日本高清不卡视频| 国内成人自拍视频| 一区二区三区四区不卡在线| 91精品国产乱| 不卡的av电影在线观看| 婷婷六月综合亚洲| 国产精品福利一区| 日韩视频免费观看高清完整版在线观看 | 91精品国产乱| 99视频在线精品| 久久精品久久精品| 一区二区欧美国产| 久久久综合视频| 欧美日韩国产高清一区二区三区 | 91免费观看视频| 玖玖九九国产精品| 亚洲九九爱视频| 欧美videos大乳护士334| 91在线看国产| 国产一区二区精品久久91| 亚洲一区二区欧美日韩| 中文字幕巨乱亚洲| 精品区一区二区| 欧美日韩亚洲综合一区二区三区| 成人综合婷婷国产精品久久蜜臀| 日本色综合中文字幕| 一区二区免费看| 国产精品美女久久久久久久久 | 一区二区三区免费在线观看| 国产亚洲欧美中文| 欧美成人国产一区二区| 欧美专区在线观看一区| 不卡的av在线播放| 东方aⅴ免费观看久久av| 久久精品国产第一区二区三区| 亚洲精品国产a久久久久久 | 本田岬高潮一区二区三区| 日本成人超碰在线观看| 亚洲香肠在线观看| 综合色中文字幕| 中文av一区特黄| 久久精品免视看| 91精品国产综合久久久久| 欧美日韩精品一区视频| 欧美伊人精品成人久久综合97| 99久久久精品| 成人免费视频app| 国产成人精品三级麻豆| 国内不卡的二区三区中文字幕| 五月综合激情婷婷六月色窝| 亚洲一级二级三级| 一区二区三区中文字幕精品精品| 国产精品理论在线观看| 国产欧美一区二区三区网站| 欧美国产日本视频| 亚洲国产成人在线| 中文字幕一区二区三区在线不卡| 国产精品伦理一区二区| 国产精品久久久久久久久免费丝袜| 一区二区视频在线看| 国产精品美女久久久久久久久 | 国产一区二区三区av电影| 久久国产视频网| 韩国理伦片一区二区三区在线播放| 蜜臀国产一区二区三区在线播放 | 蜜乳av一区二区三区| 麻豆精品在线播放| 久久精品久久99精品久久| 国产精品自拍三区| 成人美女在线视频| 91看片淫黄大片一级在线观看| 91高清在线观看| 91精品黄色片免费大全| 久久―日本道色综合久久| 国产日韩三级在线| 日本一区二区电影| 亚洲一级二级在线| 美女视频黄免费的久久| 国产乱子伦一区二区三区国色天香 | 色综合天天综合给合国产| 欧美视频自拍偷拍| 337p亚洲精品色噜噜噜| 精品99999| 综合久久久久久| 午夜精品久久久久久久蜜桃app | 亚洲精品国久久99热| 亚洲成人动漫av| 国产乱一区二区| 色婷婷av一区二区三区之一色屋| 欧美日韩国产一二三| 欧美精品一区在线观看| 亚洲人一二三区| 视频一区在线播放| 大胆亚洲人体视频| 欧美老女人第四色| 国产视频视频一区| 亚洲国产日日夜夜| 国产电影一区在线| 欧美精品免费视频| 国产精品久久久久久久久免费丝袜| 午夜伦理一区二区| www.日韩av| 国产精品私房写真福利视频| 亚洲18色成人| 成人免费视频一区| 91精品婷婷国产综合久久竹菊| 国产欧美视频一区二区| 亚洲图片有声小说| 国产高清精品网站| 欧美一区二区三区婷婷月色| 国产精品大尺度| 另类专区欧美蜜桃臀第一页| 在线一区二区观看| 国产精品全国免费观看高清| 另类综合日韩欧美亚洲| 欧美三级日本三级少妇99|