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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? decoder.c

?? 網(wǎng)絡(luò)MPEG4IP流媒體開(kāi)發(fā)源代碼
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/************************************************************************* COPYRIGHT AND WARRANTY INFORMATION** Copyright 2001, International Telecommunications Union, Geneva** DISCLAIMER OF WARRANTY** These software programs are available to the user without any* license fee or royalty on an "as is" basis. The ITU disclaims* any and all warranties, whether express, implied, or* statutory, including any implied warranties of merchantability* or of fitness for a particular purpose.  In no event shall the* contributor or the ITU be liable for any incidental, punitive, or* consequential damages of any kind whatsoever arising from the* use of these programs.** This disclaimer of warranty extends to the user of these programs* and user's customers, employees, agents, transferees, successors,* and assigns.** The ITU does not represent or warrant that the programs furnished* hereunder are free of infringement of any third-party patents.* Commercial implementations of ITU-T Recommendations, including* shareware, may be subject to royalty fees to patent holders.* Information regarding the ITU-T patent policy is available from* the ITU Web site at http://www.itu.int.** THIS IS NOT A GRANT OF PATENT RIGHTS - SEE THE ITU-T PATENT POLICY.*************************************************************************//*!  ************************************************************************************* * \file decoder.c * * \brief *    Contains functions that implement the "decoders in the encoder" concept for the *    rate-distortion optimization with losses. * \date *    October 22nd, 2001 * * \author *    Main contributors (see contributors.h for copyright, address and  *    affiliation details) *    - Dimitrios Kontopodis                    <dkonto@eikon.tum.de> ************************************************************************************* */#include <stdlib.h>#include <memory.h>#include "global.h"#include "refbuf.h"#include "rdopt.h"/*!  ************************************************************************************* * \brief *    decodes one macroblock at one simulated decoder  * * \param decoder *    The id of the decoder * * \param mode *    encoding mode of the MB * * \param ref *    reference frame index * * \note *    Gives the expected value in the decoder of one MB. This is done based on the  *    stored reconstructed residue resY[][], the reconstructed values imgY[][] *    and the motion vectors. The decoded MB is moved to decY[][]. ************************************************************************************* */void decode_one_macroblock(int decoder, int mode, int ref){  int i,j,block_y,block_x;  int ref_inx;  int mv[2][BLOCK_MULTIPLE][BLOCK_MULTIPLE];  int resY_tmp[MB_BLOCK_SIZE][MB_BLOCK_SIZE];  int inter = (mode >= MBMODE_INTER16x16    && mode <= MBMODE_INTER4x4    && img->type!=B_IMG);  if (img->number==0)  {    for(i=0;i<MB_BLOCK_SIZE;i++)      for(j=0;j<MB_BLOCK_SIZE;j++)        decY[decoder][img->pix_y+j][img->pix_x+i]=imgY[img->pix_y+j][img->pix_x+i];  }  else  {    if (mode==MBMODE_COPY)    {      for(i=0;i<MB_BLOCK_SIZE;i++)        for(j=0;j<MB_BLOCK_SIZE;j++)          resY_tmp[j][i]=0;      /* Set motion vectors to zero */      for (block_y=0; block_y<BLOCK_MULTIPLE; block_y++)        for (block_x=0; block_x<BLOCK_MULTIPLE; block_x++)          for (i=0;i<2;i++)            mv[i][block_y][block_x]=0;    }    else    {    /* Copy motion vectors and residues to local arrays mv, resY_tmp, resUV_tmp */      for (block_y=0; block_y<BLOCK_MULTIPLE; block_y++)        for (block_x=0; block_x<BLOCK_MULTIPLE; block_x++)          for (i=0;i<2;i++)            mv[i][block_y][block_x]=tmp_mv[i][img->block_y+block_y][img->block_x+block_x+4];                for(i=0;i<MB_BLOCK_SIZE;i++)        for(j=0;j<MB_BLOCK_SIZE;j++)          resY_tmp[j][i]=resY[j][i];    }          /* Decode Luminance */    if (inter || mode==MBMODE_COPY)      {      for (block_y=img->block_y ; block_y < img->block_y+BLOCK_MULTIPLE ; block_y++)        for (block_x=img->block_x ; block_x < img->block_x+BLOCK_MULTIPLE ; block_x++)        {          ref_inx = (img->number-ref-1)%img->no_multpred;                    Get_Reference_Block(decref[decoder][ref_inx],                                block_y, block_x,                                mv[0][block_y-img->block_y][block_x-img->block_x],                                mv[1][block_y-img->block_y][block_x-img->block_x],                                 RefBlock);          for (j=0;j<BLOCK_SIZE;j++)            for (i=0;i<BLOCK_SIZE;i++)            {              if (RefBlock[j][i] != UMVPelY_14 (mref[ref_inx],                                                (block_y*4+j)*4+mv[1][block_y-img->block_y][block_x-img->block_x],                                                (block_x*4+i)*4+mv[0][block_y-img->block_y][block_x-img->block_x]))              ref_inx = (img->number-ref-1)%img->no_multpred;              decY[decoder][block_y*BLOCK_SIZE + j][block_x*BLOCK_SIZE + i] =                                   resY_tmp[(block_y-img->block_y)*BLOCK_SIZE + j]                                          [(block_x-img->block_x)*BLOCK_SIZE + i]                                  + RefBlock[j][i];            }        }    }    else     {      /* Intra Refresh - Assume no spatial prediction */      for (j=0;j<MB_BLOCK_SIZE;j++)        for (i=0;i<MB_BLOCK_SIZE;i++)          decY[decoder][img->pix_y + j][img->pix_x + i] = imgY[img->pix_y + j][img->pix_x + i];    }  }}/*!  ************************************************************************************* * \brief *    Finds the reference MB given the decoded reference frame * \note *    This is based on the function UnifiedOneForthPix, only it is modified to *    be used at the "many decoders in the encoder" RD optimization. In this case *    we dont want to keep full upsampled reference frames for all decoders, so *    we just upsample when it is necessary. * \param imY *    The frame to be upsampled * \param block_y *    The row of the block, whose prediction we want to find * \param block_x *    The column of the block, whose prediction we want to track * \param mvhor *    Motion vector, horizontal part * \param mvver *    Motion vector, vertical part * \param out *    Output: The prediction for the block (block_y, block_x) ************************************************************************************* */void Get_Reference_Block(byte **imY,                          int block_y,                          int block_x,                          int mvhor,                          int mvver,                          byte **out){  int i,j,y,x;  y = block_y * BLOCK_SIZE * 4 + mvver;  x = block_x * BLOCK_SIZE * 4 + mvhor;  for (j=0; j<BLOCK_SIZE; j++)    for (i=0; i<BLOCK_SIZE; i++)      out[j][i] = Get_Reference_Pixel(imY,                   max(0,min(img->mvert, y+j*4)),                   max(0,min(img->mhor, x+i*4)));}/*!  ************************************************************************************* * \brief *    Finds a pixel (y,x) of the upsampled reference frame * \note *    This is based on the function UnifiedOneForthPix, only it is modified to *    be used at the "many decoders in the encoder" RD optimization. In this case *    we dont want to keep full upsampled reference frames for all decoders, so *    we just upsample when it is necessary. ************************************************************************************* */byte Get_Reference_Pixel(byte **imY, int y_pos, int x_pos){  int dx, x;  int dy, y;  int maxold_x,maxold_y;  int result = 0, result1, result2;  int pres_x;  int pres_y;   int tmp_res[6];  static const int COEF[6] = {    1, -5, 20, 20, -5, 1  };  dx = x_pos&3;  dy = y_pos&3;  x_pos = (x_pos-dx)/4;  y_pos = (y_pos-dy)/4;  maxold_x = img->width-1;  maxold_y = img->height-1;  if (dx == 0 && dy == 0) { /* fullpel position */    result = imY[max(0,min(maxold_y,y_pos))][max(0,min(maxold_x,x_pos))];  }  else if (dx == 3 && dy == 3) { /* funny position */    result = (imY[max(0,min(maxold_y,y_pos))  ][max(0,min(maxold_x,x_pos))  ]+              imY[max(0,min(maxold_y,y_pos))  ][max(0,min(maxold_x,x_pos+1))]+              imY[max(0,min(maxold_y,y_pos+1))][max(0,min(maxold_x,x_pos+1))]+              imY[max(0,min(maxold_y,y_pos+1))][max(0,min(maxold_x,x_pos))  ]+2)/4;  }  else { /* other positions */    if (dy == 0) {      pres_y = max(0,min(maxold_y,y_pos));      for(x=-2;x<4;x++) {        pres_x = max(0,min(maxold_x,x_pos+x));        result += imY[pres_y][pres_x]*COEF[x+2];      }      result = max(0, min(255, (result+16)/32));

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷精品大在线视频| 麻豆国产91在线播放| 偷窥少妇高潮呻吟av久久免费| 亚洲成a人片在线不卡一二三区| 精品中文字幕一区二区| 欧美午夜精品理论片a级按摩| 精品99久久久久久| 亚洲男同性恋视频| 成人激情黄色小说| 久久久精品中文字幕麻豆发布| 亚洲1区2区3区视频| jizz一区二区| 国产午夜精品一区二区三区四区| 日韩成人av影视| 欧美日本国产视频| 亚洲免费视频中文字幕| 成人高清免费在线播放| 国产午夜精品一区二区三区嫩草| 美女视频黄久久| 欧美肥大bbwbbw高潮| 久久久青草青青国产亚洲免观| 亚洲在线中文字幕| 久久国产精品露脸对白| 日本丰满少妇一区二区三区| 欧美日本乱大交xxxxx| 91精品国产欧美日韩| 亚洲女同ⅹxx女同tv| 久久福利视频一区二区| 美女视频免费一区| 欧美成人bangbros| 日韩av电影天堂| 欧美精品乱码久久久久久按摩| 亚洲成人精品一区| 欧美日韩在线免费视频| 日韩精品五月天| 日韩一区二区视频在线观看| 日本v片在线高清不卡在线观看| 日韩女优毛片在线| 久久99久久精品| 久久精品人人做人人综合| 丁香五精品蜜臀久久久久99网站| 日本一区二区三区dvd视频在线 | 99久久99精品久久久久久| 久久久久久久久伊人| 成人网在线播放| 亚洲精品乱码久久久久久日本蜜臀| 色综合中文字幕国产| 亚洲第一成年网| 日韩一区二区精品葵司在线| 国产一区二区三区黄视频 | 中文字幕一区免费在线观看| 91蝌蚪porny九色| 日韩国产在线一| 久久综合色婷婷| 91麻豆国产自产在线观看| 亚洲国产毛片aaaaa无费看| 欧美高清一级片在线| 九九九久久久精品| 亚洲日本在线看| 欧美一区二区成人| 成人h动漫精品一区二| 亚洲第四色夜色| 欧美国产欧美综合| 欧美日韩一区二区三区四区五区| 精品在线视频一区| 亚洲乱码国产乱码精品精的特点| 69久久99精品久久久久婷婷 | 免费人成黄页网站在线一区二区 | 欧美一区二区福利视频| 成人免费视频视频| 亚洲午夜激情av| 国产精品私人影院| 欧美一级片免费看| av电影天堂一区二区在线观看| 日本最新不卡在线| 中文字幕佐山爱一区二区免费| 67194成人在线观看| eeuss鲁片一区二区三区| 日韩中文字幕亚洲一区二区va在线| 久久久噜噜噜久久人人看| 欧美日韩在线一区二区| 成人av在线播放网站| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲人成伊人成综合网小说| 日本乱码高清不卡字幕| 国内不卡的二区三区中文字幕| 亚洲国产裸拍裸体视频在线观看乱了 | 日韩欧美aaaaaa| 欧美色图激情小说| 91在线小视频| 国产成人精品免费网站| 美日韩一级片在线观看| 亚洲成人中文在线| 亚洲日本丝袜连裤袜办公室| 亚洲国产精品成人综合色在线婷婷 | 1区2区3区精品视频| 国产日韩欧美不卡在线| 精品国产网站在线观看| 欧美日韩亚洲综合在线| 欧洲另类一二三四区| 99久久伊人久久99| 成人午夜av电影| 国产91在线|亚洲| 国产永久精品大片wwwapp| 久久精品理论片| 久久99精品一区二区三区| 日韩成人一区二区三区在线观看| 亚洲一区二区视频| 亚洲精品伦理在线| 亚洲激情图片小说视频| 一级做a爱片久久| 一区二区欧美国产| 亚洲国产视频一区二区| 亚洲综合久久久久| 一区二区三区日韩| 亚洲一级片在线观看| 天堂资源在线中文精品| 婷婷综合另类小说色区| 青青草国产精品亚洲专区无| 理论电影国产精品| 国产中文一区二区三区| 成人激情校园春色| 一本一道久久a久久精品| 欧洲生活片亚洲生活在线观看| 在线免费av一区| 欧美军同video69gay| 欧美一区二区三区日韩视频| 精品精品国产高清a毛片牛牛| 欧美精品一区二区三区高清aⅴ | 2023国产一二三区日本精品2022| 日韩欧美成人午夜| 国产日产欧美精品一区二区三区| 中文字幕日韩一区| 亚洲国产综合视频在线观看| 日本不卡视频在线| 成人一区二区三区| 在线观看亚洲一区| 精品久久免费看| 中文字幕一区二区不卡| 婷婷一区二区三区| 韩国精品久久久| 色欧美乱欧美15图片| 欧美丝袜第三区| 在线播放日韩导航| 国产目拍亚洲精品99久久精品| 亚洲毛片av在线| 亚洲成人一二三| 国产 欧美在线| 欧美三级电影网站| 久久综合九色综合欧美就去吻| 中文字幕亚洲区| 精品中文av资源站在线观看| 91美女在线看| 欧美日韩一区二区三区免费看| 精品亚洲aⅴ乱码一区二区三区| 亚洲一区二区三区中文字幕在线| 91视频免费看| 欧美日韩在线免费视频| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲欧美日韩小说| 午夜欧美一区二区三区在线播放| 国产露脸91国语对白| 欧美三级欧美一级| 中文字幕在线播放不卡一区| 蜜桃av一区二区三区电影| 91在线视频18| 日本一区二区三区国色天香| 奇米777欧美一区二区| 色偷偷一区二区三区| 久久久91精品国产一区二区三区| 亚洲一二三四区| 99在线精品视频| 久久久美女毛片| 狠狠色综合日日| 欧美一区二区日韩| 亚洲第一久久影院| 91蜜桃免费观看视频| 亚洲国产精品高清| 国产麻豆9l精品三级站| 欧美一区二区网站| 亚洲电影一区二区三区| 91丨国产丨九色丨pron| 国产日韩欧美制服另类| 蜜臀av性久久久久蜜臀av麻豆| 欧美高清一级片在线| 亚洲成人av电影| 在线精品视频一区二区三四| 久久先锋资源网| 国产麻豆精品在线| 26uuu亚洲综合色欧美| 国内精品写真在线观看| 精品国产乱码久久久久久久| 久久er精品视频| 制服丝袜亚洲色图| 免费人成在线不卡| 欧美成人精品1314www| 三级影片在线观看欧美日韩一区二区| 91麻豆国产自产在线观看| 亚洲精品自拍动漫在线| 91激情在线视频|