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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? modedecision.c

?? This document aims to provide instructions on how to configure the H.264/AVC encoder and decoder usi
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*COPYRIGHT, LICENSE AND WARRANTY INFORMATIONThis software module has been originally developed by Nokia Corporation. Provided that a person, entity or a company willing to use the Software (hereinafter Licensee) comply with all the terms and conditions of this Statement and subject to the limitations set forth in this Statement Nokia grants to such Licensee a non-exclusive, sub-licensable, worldwide, limited license under copyrights owned by Nokia to use the Software for the sole purpose of creating, manufacturing, selling, marketing, or  distributing (including the right to make modifications to the Software) a fully compliant decoder implementation (hereinafter "Decoder") of ITU-T Recommendation H.264 / ISO/IEC International Standard 14496-10 and an encoder implementation producing output that is decodable with the Decoder.Nokia retains the ownership of copyrights to the Software. There is no patent nor other intellectual property right of Nokia licensed under this Statement (except the copyright license above). Licensee hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if patent licenses  are required, it is their responsibility to acquire the license before utilizing the Software.The license by Nokia is subject to that the Licensee grants to Nokia the non-exclusive, worldwide, royalty-free, perpetual and irrevocable covenant that the Licensee(s) shall not bring a suit before any court or administrative agency or otherwise assert a claim for infringement under the Licensee intellectual property rights that, but for a license, would be infringed by the Software against     (a)  Nokia or Nokia's Affiliate; or     (b)  other recipient of a license and covenant not to sue with respect         to the Software from Nokia; or    (c)  contractor, customer or distributor of a party listed above in a         or b,  which suit or claim is related to the Software or use thereof.The Licensee(s) further agrees to grant a reciprocal license to Nokia (as granted by Nokia to the Licensee(s) on the modifications made by Licensee(s) to the Software. THE SOFTWARE IS PROVIDED "AS IS" AND THE ORIGINAL DEVELOPER DISCLAIMS ANY AND ALL WARRANTIES WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. THOSE INTENDING TO USE THE SOFTWARE ARE EXPRESSLY ADVISED THAT ITS USE MAY INFRINGE EXISTING PATENTS AND BE SUBJECT TO ROYALTY PAYMENTS TO PATENT OWNERS. ANYONE USING THE SOFTWARE ON THE BASIS OF THIS LICENSE AGREES TO OBTAIN THE NECESSARY PERMISSIONS FROM ANY AND ALL APPLICABLE PATENT OWNERS FOR SUCH USE.IN NO EVENT SHALL THE ORIGINAL DEVELOPER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.This copyright, license and warranty information notice must be retained in all copies and derivative works of the Software or substantial portions thereof.*/#include <limits.h>#include "globals.h"#include "debug.h"#include "bitbuffer.h"#include "macroblock.h"#include "motest.h"#include "motcomp.h"#include "prederrorcod.h"#include "prederrordec.h"#include "vlcutility.h"#include "stream.h"#include "meutility.h"#include "transform.h"#include "intrapred.h"/* * mdBestIntraLuma16x16Plain * * Parameters: *      pMb                   Macroblock information *      orig                  Original pixels *      predBlk               Storage all 16x16 mode predictions *      modeAvail             Which modes are available *      bestMbSad             Best MB SAD so far * * Function: *      Build 16x16 predictions and choose the best mode for the macroblock. *      The decision is made based on SAD after Hadamard transform. * * Returns: *      SAD for the best 16x16 intra prediction mode. *      Best intra16x16 mode is also set in this function. */static int mdBestIntraLuma16x16Plain(macroblock_s *pMb,                           u_int8 orig[MBK_SIZE][MBK_SIZE],                          u_int8 predBlk[IPR_NUM_MODES2][MBK_SIZE][MBK_SIZE],                          int    modeAvail[IPR_NUM_MODES2],                          int    hadamard,                          int    bestMbSad){  int mode;  int currentCost;  int bestMode;  int bestCost;  int exitFlag;  int i, j;  int dcCoeffs[4][4];  bestMode = -1;  bestCost = MAX_COST;  for (mode = 0; mode < IPR_NUM_MODES2; mode ++)   {    if (modeAvail[mode]) {      currentCost = 0;      exitFlag = 0;      for (j = 0; (j < MBK_SIZE) && (! exitFlag); j += 4)       {        for (i = 0; (i < MBK_SIZE) && (! exitFlag); i += 4)        {          if (hadamard)            currentCost += traDiffSATD4x4RetDc(            (u_int8 (*)[MBK_SIZE]) &orig[j][i],            (u_int8 (*)[MBK_SIZE]) &predBlk[mode][j][i],            & dcCoeffs[j >> 2][i >> 2]);          else            currentCost += traDiffSAD4x4(            (u_int8 (*)[MBK_SIZE]) &orig[j][i],            (u_int8 (*)[MBK_SIZE]) &predBlk[mode][j][i]);          // perform early termination          exitFlag = ((currentCost >> 1) >= bestMbSad);        }      }      if (! exitFlag)      {        // compare with best mode, only if early termination has not happened        if (hadamard) {          currentCost += traHadamard4x4(dcCoeffs) >> 2;          currentCost >>= 1;        }        if (currentCost < bestCost ) {          bestCost  = currentCost;          bestMode = mode;        }      }    }  }  pMb->intra16x16mode = bestMode;  return bestCost;}///// LOW_COMPLEX_PROF3static int mdBestIntraLuma16x16Plain_fast(macroblock_s *pMb,                           u_int8 orig[MBK_SIZE][MBK_SIZE],                          u_int8 predBlk[IPR_NUM_MODES2][MBK_SIZE][MBK_SIZE],                          int    modeAvail[IPR_NUM_MODES2],                          int    hadamard,                          int    bestMbSad){  int mode;  int currentCost;  int bestMode;  int bestCost;  int exitFlag;  int i, j;  int dcCoeffs[4][4];  int currentCost_thre=MAX_COST;  bestMode = -1;  bestCost = MAX_COST;  for (mode = 0; mode < (IPR_NUM_MODES2-1); mode ++)   {    if (modeAvail[mode]) {      currentCost = 0;      exitFlag = 0;      for (j = 0; (j < MBK_SIZE) && (! exitFlag); j += 4)       {        for (i = 0; (i < MBK_SIZE) && (! exitFlag); i += 4)        {          if (hadamard)            currentCost += traDiffSATD4x4RetDc(            (u_int8 (*)[MBK_SIZE]) &orig[j][i],            (u_int8 (*)[MBK_SIZE]) &predBlk[mode][j][i],            & dcCoeffs[j >> 2][i >> 2]);          else            currentCost += traDiffSAD4x4(            (u_int8 (*)[MBK_SIZE]) &orig[j][i],            (u_int8 (*)[MBK_SIZE]) &predBlk[mode][j][i]);          // perform early termination          exitFlag = (  ((currentCost >> 1) >= bestMbSad) ||                          (currentCost>currentCost_thre)  );        }      }      if (! exitFlag)      {        if (currentCost < currentCost_thre )          currentCost_thre=currentCost;        // compare with best mode, only if early termination has not happened        if (hadamard) {          currentCost += traHadamard4x4(dcCoeffs) >> 2;          currentCost >>= 1;        }        if (currentCost < bestCost ) {          bestCost  = currentCost;          bestMode = mode;        }      }    }  }  pMb->intra16x16mode = bestMode;  return bestCost;}////////* * mdIntraPredLuma16x16: * * Parameters: *      pMb                   Macroblock coding object *      picWidth              Horizontal size of the frame *      picType               Type of the frame (intra/inter) *      bestMbSad             Best MB sad so far *      modeDecision          How mode decision should be performed *      intra16x16Cost        Cost for the intra4x4 prediction *      low_complex_prof3     low complexity profile 3 * * Function: *      Build 16x16 predictions and choose the best mode. * * Returns: *      - */void mdIntraPredLuma16x16(macroblock_s  *pMb,                           int           picWidth,                          int           picType,                          int           bestMbSad,                          int           modeDecision,                          costMeasure_s *intra16x16Cost,                          int           low_complex_prof3)                            {  int modeAvail[IPR_NUM_MODES2];  if (low_complex_prof3)    iprGetPredLuma16x16_fast      (pMb->predBlk2, modeAvail, pMb->recoY, picWidth, pMb->mbAvailMapIntra);  else    iprGetPredLuma16x16      (pMb->predBlk2, modeAvail, pMb->recoY, picWidth, pMb->mbAvailMapIntra);  // calculate the MSE of intra16x16 and intra4x4#ifndef DISABLE_RDO  if ((modeDecision & 0x0F) == MODE_DECISION_RDO)  {    int mode, bestMode, startMode, stopMode;    costMeasure_s current;    statSlice_s testStat;      // dummy    pMb->type      = MBK_INTRA;    pMb->intraType = MBK_INTRA_TYPE2;    if ((modeDecision & RDO_INTRA_LUMA_16x16) == 0)    {      // always try to find the best 16x16 prediction      if (low_complex_prof3)        intra16x16Cost->sad = mdBestIntraLuma16x16Plain_fast(pMb,           pMb->origY, pMb->predBlk2, modeAvail, 1, MAX_COST);      else        intra16x16Cost->sad = mdBestIntraLuma16x16Plain(pMb,           pMb->origY, pMb->predBlk2, modeAvail, 1, MAX_COST);      // only check the best mode just found, to evaluate the RD      startMode = pMb->intra16x16mode;      stopMode  = pMb->intra16x16mode;    }    else    {      startMode = 0;      stopMode = IPR_NUM_MODES2 - 1;    }    // consider the best intra16x16 mode in the context of the entire MB    // more accurate, but overhead of encoding chroma repeatedly    bestMode = IPR_MODE2_DC;    for (mode = startMode; mode <= stopMode; mode ++)     {      if (modeAvail[mode])       {        pMb->intra16x16mode = mode;        pecCodeLumaMB(pMb, pMb->predBlk2[mode], 1, picType);        pedRecoLumaMB(pMb, pMb->predBlk2[mode], 1, picWidth);        pMb->intra16x16CbpY = pMb->cbpY;        current.mse =           CalculateSsd(& pMb->origY[0][0], 16, pMb->recoY, picWidth, 16, 16);        // perform test encoding to get the actual rate        bibInit(& pMb->mbBs);        // suppose the macroblock type is intra-16x16        current.bits = streamSendLumaCoeffs(& pMb->mbBs, pMb, & testStat);        current.cost = current.mse + pMb->rdoLambda * current.bits;        current.sad = 0;        current.edgeMse = 0;        if (current.cost < intra16x16Cost->cost)        {          bestMode = mode;          *intra16x16Cost = current;        }      }    }    pMb->intra16x16mode = bestMode;   }  else#endif  {    int mbType;        // early termination will be applied    if (low_complex_prof3)      intra16x16Cost->sad = mdBestIntraLuma16x16Plain_fast(pMb,       pMb->origY, pMb->predBlk2, modeAvail, (modeDecision & 0xf) != MODE_DECISION_SIMPLE, bestMbSad);    else      intra16x16Cost->sad = mdBestIntraLuma16x16Plain(pMb,       pMb->origY, pMb->predBlk2, modeAvail, (modeDecision & 0xf) != MODE_DECISION_SIMPLE, bestMbSad);        //intra16x16Cost->sad holds the SAD between prediction and actual    pMb->actualIntra16x16Sad = intra16x16Cost->sad;        // at least these many bits will be used for mbType, all CBPs are set to 0    mbType = ((IS_SLICE_P(picType)) ? 5 : 0) + streamGetMbTypeIntra      (MBK_INTRA_TYPE2, pMb->intra16x16mode, 0, 0, 0);              intra16x16Cost->sad += pMb->lambda * uvlcBitsUnsigned[mbType];     intra16x16Cost->cost = intra16x16Cost->sad;  }}/* * encoRecoBlock * * Parameters: *      origBlk               Original pixels *      predBlk               Prediction block *      coeff                 Quantized coefficients *      reco                  Which modes are available *      recoWidth             Horizontal size reconstructed buffer *      picType               Type of the frame (intra/inter) *      qp                    Macroblock qp * * Function: *      Perform forward and backward transform/quantization on a 4x4 block. *      The reconstructed pixels are put in buffer "reco". * * Returns: *      SAD for the best 16x16 intra prediction mode. *      Best intra16x16 mode is also set in this function. */int encoRecoBlock(u_int8 origBlk[][MBK_SIZE],                   u_int8 predBlk[][MBK_SIZE],                   int    coeff[BLK_SIZE][BLK_SIZE],                  u_int8 *reco,                  int    recoWidth,                   int    picType,                  int    qp){  int nonZero;  /* Code block */  nonZero = pecCodeBlock(origBlk, predBlk, coeff, 0, qp, picType);  /* If there were non-zero coefficients, decode block */  if (nonZero > 0) {    // this function is never used in intra16x16 mode, so there is no DC    pedRecoBlock(predBlk, coeff, reco, recoWidth, 0 /* no DC */, 0, qp);  }  /* Otherwise, just copy prediction */  else  {    * (int *) & reco[recoWidth * 0] = *(int *) & predBlk[0][0];    * (int *) & reco[recoWidth * 1] = *(int *) & predBlk[1][0];    * (int *) & reco[recoWidth * 2] = *(int *) & predBlk[2][0];    * (int *) & reco[recoWidth * 3] = *(int *) & predBlk[3][0];  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美丝袜第三区| 亚洲国产一区二区视频| 亚洲精品日日夜夜| 久久精品99久久久| 91视视频在线观看入口直接观看www | 99国产精品国产精品久久| 欧美人妇做爰xxxⅹ性高电影| 国产亲近乱来精品视频| 亚洲第一狼人社区| 97国产精品videossex| 欧美精品一区男女天堂| 午夜精品一区二区三区免费视频| 国产高清在线精品| 精品欧美一区二区三区精品久久| 亚洲特黄一级片| 国产一区二区视频在线| 6080日韩午夜伦伦午夜伦| 亚洲欧洲综合另类在线| 国产91精品精华液一区二区三区| 欧美日韩黄视频| 亚洲一区在线看| 91久久精品午夜一区二区| 中文字幕一区二区三区精华液 | 国产乱国产乱300精品| 欧美一区二区三区影视| 亚洲一区免费视频| 色欧美乱欧美15图片| 一区精品在线播放| 国产成人在线视频网站| 久久免费偷拍视频| 精品一区二区三区蜜桃| 欧美不卡在线视频| 国产精品综合一区二区| www久久久久| 不卡的av电影在线观看| 综合欧美一区二区三区| 91污在线观看| 亚洲综合清纯丝袜自拍| 在线视频亚洲一区| 亚洲国产精品人人做人人爽| 欧美日韩一二三| 日日夜夜一区二区| 欧美大胆人体bbbb| 国产成人亚洲综合a∨婷婷| 国产日本欧洲亚洲| 91视频你懂的| 婷婷久久综合九色综合绿巨人 | 欧美亚洲自拍偷拍| 午夜精品久久久久久不卡8050| 欧美日韩国产精品自在自线| 青青草国产精品亚洲专区无| 久久久亚洲国产美女国产盗摄 | jiyouzz国产精品久久| 国产精品午夜在线观看| 色噜噜夜夜夜综合网| 亚洲福利视频一区| 精品日韩欧美一区二区| 成人黄色av网站在线| 亚洲国产精品久久久久婷婷884| 91精品国产乱码| 国产精品888| 亚洲一二三四区| 久久综合色天天久久综合图片| av资源网一区| 午夜亚洲福利老司机| 久久综合狠狠综合久久综合88 | 国产精品素人视频| 日本道色综合久久| 韩国欧美一区二区| 一区二区三区精品| 久久久久国产成人精品亚洲午夜| 91在线观看美女| 久久不见久久见免费视频1| 亚洲欧美国产毛片在线| 夜夜嗨av一区二区三区中文字幕| 欧美一区二区在线免费观看| 大桥未久av一区二区三区中文| 亚洲精品少妇30p| 国产日韩av一区二区| 欧美一区二区三区在线观看 | 国产精品国产自产拍高清av| 欧美影视一区在线| 成人18视频在线播放| 久久99精品久久久| 午夜欧美视频在线观看| 亚洲欧洲国产日韩| 精品999久久久| 欧美精品一级二级三级| 99热精品国产| 国模无码大尺度一区二区三区| 亚洲一级在线观看| 日韩码欧中文字| 中文字幕欧美三区| 精品盗摄一区二区三区| 欧美精品电影在线播放| 色综合久久天天| 成人精品视频一区二区三区 | 日本丶国产丶欧美色综合| 国产精品自拍一区| 久久不见久久见免费视频1| 亚洲网友自拍偷拍| 一区二区三区在线免费播放| 亚洲国产高清aⅴ视频| 欧美精品一区二区蜜臀亚洲| 欧美老女人第四色| 欧美日韩国产首页| 欧美四级电影在线观看| 在线观看亚洲精品视频| 色婷婷精品久久二区二区蜜臂av | 欧美亚洲动漫另类| 色先锋aa成人| 色狠狠综合天天综合综合| 99精品久久99久久久久| 99国产精品久久久久久久久久久| 国产成人av电影在线播放| 大尺度一区二区| av一区二区不卡| 91日韩在线专区| 色88888久久久久久影院按摩| 色综合久久综合网欧美综合网| 91在线观看高清| 精品视频一区二区三区免费| 欧美日韩情趣电影| 日韩欧美一区二区视频| 精品久久久久久久久久久久久久久 | 午夜欧美大尺度福利影院在线看| 亚洲午夜成aⅴ人片| 日韩高清不卡在线| 美女免费视频一区| 国产精品99久久久久久宅男| 成人av午夜影院| 欧美影院午夜播放| 精品欧美乱码久久久久久1区2区| 久久人人97超碰com| 国产精品美日韩| 一区二区三区四区在线| 无吗不卡中文字幕| 久草在线在线精品观看| 成人黄色国产精品网站大全在线免费观看 | 欧美手机在线视频| 欧美精品一区视频| 亚洲欧洲综合另类| 日本不卡一区二区三区高清视频| 韩国一区二区三区| 91国产精品成人| 精品国产凹凸成av人导航| 欧美高清在线视频| 亚洲二区在线观看| 国产一二精品视频| 日本韩国视频一区二区| 日韩一区二区三区四区五区六区| 国产色综合一区| 亚洲成人tv网| 国产91精品一区二区| 91精品国产综合久久香蕉的特点| 久久亚洲综合色| 亚洲一二三区视频在线观看| 国产一区二区中文字幕| 欧洲视频一区二区| 国产亚洲福利社区一区| 亚洲午夜激情网站| 成人aaaa免费全部观看| 日韩免费性生活视频播放| 伊人婷婷欧美激情| 国产精品综合视频| 91精品久久久久久久99蜜桃 | 欧洲亚洲国产日韩| 国产日产欧美一区| 久久av资源站| 欧美丝袜丝交足nylons图片| 国产精品久久久一区麻豆最新章节| 日韩国产在线一| 日本精品一区二区三区四区的功能| 国产日韩一级二级三级| 美女视频黄久久| 欧美日韩久久久| 亚洲一线二线三线视频| 91女人视频在线观看| 国产欧美一二三区| 精品亚洲国产成人av制服丝袜 | 色综合网站在线| 国产日韩欧美制服另类| 麻豆专区一区二区三区四区五区| 在线欧美日韩国产| 亚洲美女淫视频| 一本色道a无线码一区v| 国产精品女主播av| 成人免费的视频| 国产精品情趣视频| 丰满亚洲少妇av| 国产日韩欧美精品一区| 国产精品一二三四区| 亚洲精品一区二区三区四区高清 | 三级欧美韩日大片在线看| 欧美色偷偷大香| 一区二区激情小说| 日本道精品一区二区三区| 亚洲精品视频在线观看网站| 99精品桃花视频在线观看| 国产精品福利一区|