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

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

?? skl_dct_ref.cpp

?? mpeg4編解碼器
?? CPP
字號:
/******************************************************** * Some code. Copyright (C) 2003 by Pascal Massimino.   * * All Rights Reserved.      (http://skal.planet-d.net) * * For Educational/Academic use ONLY. See 'LICENSE.TXT'.* ********************************************************//* *  skl_dct_ref.cpp * *  Reference implementation for some 2d transform * ************************************************************************/#include "skl.h"#include <math.h>extern "C" {#if defined(_WINDOWS) && !defined(M_PI)#define M_PI 3.1415926535f#endif////////////////////////////////////////////////////////////                Reference 8x8 2d-Dct//////////////////////////////////////////////////////////////  Defining the NxN matrix: Cij = { Ai . cos(pi/2N * i*(2j+1) }//  where Ai = 1/sqrt(8) if i==0, and Ai = 1/2 otherwise.//  the unormalized (since tC.C = N.Id) forward and inverse Fourier //  transform  of M writes://     M' = tC.M.C, //     M  = C.M'.tC////  Note: with MMX, e.g., working with columns is easier than rows.//  Then forward DCT is usually implemented as 8 one-dimensional DCTs://    M' = tC. t( tC.tM )//  => The matrix-matrix multiplication C.M is vectorized better than M.C.////#define CLAMP(x,M) (((x)<-(M)) ? -(M) : ((Sum>(M)-1.0) ? ((M)-1.0) : Sum))#define CLAMP(x,M) (x)#define FDCT_RNG  2048.     // 12bits#define IDCT_RNG  256.      //  9bitsstatic double Cos[8][8];static int Ref_8x8_Ok = 0;static void Init_Ref_DCT(){  for (int i=0; i<8; i++)  {    double scale = (i == 0) ? sqrt(0.125) : 0.5;    for (int j=0; j<8; j++)      Cos[i][j] = scale*cos( (M_PI/8.0)*i*(0.5 + j) );  }  Ref_8x8_Ok = 1;}void Skl_IDct16_Ref(SKL_INT16 *M){  if (!Ref_8x8_Ok) Init_Ref_DCT();  int i, j;  double Tmp[8][8];  for (i=0; i<8; i++) {    for (j=0; j<8; j++)    {      double Sum = 0.0;      for (int k=0; k<8; k++) Sum += Cos[k][j]*M[8*i+k];      Tmp[i][j] = Sum;    }  }  for (i=0; i<8; i++) {    for (j=0; j<8; j++) {      double Sum = 0.0;      for (int k=0; k<8; k++) Sum += Cos[k][i]*Tmp[k][j];      Sum += 0.5f;      M[8*i+j] = (SKL_INT16)floor(CLAMP(Sum, IDCT_RNG));    }  }}void Skl_IDct16_Sparse_Ref(SKL_INT16 *M) { Skl_IDct16_Ref(M); }void Skl_IDct16_Put_Ref(SKL_INT16 *M, SKL_BYTE *Dst, int BpS ){  if (!Ref_8x8_Ok) Init_Ref_DCT();  int i, j;  double Tmp[8][8];  for (i=0; i<8; i++) {    for (j=0; j<8; j++)    {      double Sum = 0.0;      for (int k=0; k<8; k++) Sum += Cos[k][j]*M[8*i+k];      Tmp[i][j] = Sum;    }  }  for (i=0; i<8; i++) {    for (j=0; j<8; j++) {      double Sum = 0.0;      for (int k=0; k<8; k++) Sum += Cos[k][i]*Tmp[k][j];      Sum += 0.5f;      int v = (int)floor(Sum);      Dst[j] = v<0 ? 0 : v>255 ? 255 : (SKL_BYTE)v;    }    Dst += BpS;  }}void Skl_IDct16_Add_Ref(SKL_INT16 *M, SKL_BYTE *Dst, int BpS ){  if (!Ref_8x8_Ok) Init_Ref_DCT();  int i, j;  double Tmp[8][8];  for (i=0; i<8; i++) {    for (j=0; j<8; j++)    {      double Sum = 0.0;      for (int k=0; k<8; k++) Sum += Cos[k][j]*M[8*i+k];      Tmp[i][j] = Sum;    }  }  for (i=0; i<8; i++) {    for (j=0; j<8; j++) {      double Sum = 0.0;      for (int k=0; k<8; k++) Sum += Cos[k][i]*Tmp[k][j];      Sum += 0.5f;      const int v = (int)floor(Sum) + (int)Dst[j];      Dst[j] = v<0 ? 0 : v>255 ? 255 : (SKL_BYTE)v;    }    Dst += BpS;  }}void Skl_Dct16_Ref(SKL_INT16 *M){  if (!Ref_8x8_Ok) Init_Ref_DCT();  int i, j;  double Tmp[8][8];  for (i=0; i<8; i++) {    for (j=0; j<8; j++)    {      double Sum = 0.0;      for (int k=0; k<8; k++) Sum += Cos[j][k]*M[8*i+k];      Tmp[i][j] = Sum;    }  }  for (i=0; i<8; i++) {    for (j=0; j<8; j++) {      double Sum = 0.0;      for (int k=0; k<8; k++) Sum += Cos[i][k]*Tmp[k][j];      Sum += 0.5 - 1.0e-6;      M[8*i+j] = (SKL_INT16)floor(CLAMP(Sum, FDCT_RNG));    }  }}///////////////////////////////////////////////////////////// README ///////////////////////////////////////////////////////////////////////////////////////////////////////////// Slow general-purpose DCT//// [as defined in the MP3 norm (ISO/IEC 11172-3)]////   Out[i] = sum{k=0..N-1} In[k]*cos(Pi/4N*(2i+1+N)*(2k+1))//// We have a lot of symmetries here:////    Out[  i] = -Out[ N-1-i]//    Out[N+i] =  Out[2N-1-i]//// for i in 0..N-1. //// Roughly speaking, the first half [0..N-1] of ouput// is anti-symmetric, whereas the second is symmetric.// //////////////////////////////////////////////////////////void Skl_Generic_IDct_Ref(int N, const float *In, float *Out){  for( int i=0; i<2*N; i++ )  {    double Sum = 0.0;    double Phi = M_PI/(4.0*N)*(1.0+N+2*i);    for (int k=0; k<N; k++)      Sum += In[k] * cos( Phi*(2.0*k+1.0) );    Out[i] = (float)Sum;  }}//////////////////////////////////////////////////////////// Hadamard (<=> Walsh) transforms//////////////////////////////////////////////////////////static int H8[8*8] = {  1, 1, 1, 1, 1, 1, 1, 1,  1, 1, 1, 1,-1,-1,-1,-1,  1, 1,-1,-1,-1,-1, 1, 1,  1, 1,-1,-1, 1, 1,-1,-1,  1,-1,-1, 1, 1,-1,-1, 1,  1,-1,-1, 1,-1, 1, 1,-1,  1,-1, 1,-1,-1, 1,-1, 1,  1,-1, 1,-1, 1,-1, 1,-1};/*      The matrix for the Walsh transform is:     static int W8[8*8] = {  1, 1, 1, 1, 1, 1, 1, 1,  1, 1, 1, 1,-1,-1,-1,-1,  1, 1,-1,-1, 1, 1,-1,-1,  1, 1,-1,-1,-1,-1, 1, 1,  1,-1, 1,-1, 1,-1, 1,-1,  1,-1, 1,-1,-1, 1,-1, 1,  1,-1,-1, 1, 1,-1,-1, 1,  1,-1,-1, 1,-1, 1, 1,-1 };     but is equivalent to the Hadamard transform,     up to a reordering:           [01234567] => [01327645]     of the rows and columns of Hadamard's output*/  void Skl_Hadamard_Ref( SKL_INT16 *C ){    int i, j;  SKL_INT16 Tmp[8][8];     for (i=0; i<8; i++) {      for (j=0; j<8; j++)      {      int Sum = 0;      for (int k=0; k<8; k++) Sum += H8[k*8+j]*C[8*i+k];      Tmp[i][j] = Sum;       }  }  for (i=0; i<8; i++) {    for (j=0; j<8; j++) {      int Sum = 0;      for (int k=0; k<8; k++) Sum += H8[k*8+i]*Tmp[k][j];    C[8*i+j] = Sum;    }  }} //////////////////////////////////////////////////////////}   // extern "C"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲黄色免费电影| 中文字幕精品一区二区三区精品 | 午夜精品久久久久久久蜜桃app| 91国偷自产一区二区使用方法| 午夜视黄欧洲亚洲| 一区二区三区小说| 精品国产一区二区亚洲人成毛片| 成人毛片视频在线观看| 亚洲一区视频在线观看视频| 欧美成人猛片aaaaaaa| 色素色在线综合| 国产精品综合视频| 日韩成人一区二区三区在线观看| 久久精品一区二区三区不卡| 777色狠狠一区二区三区| 99国产精品久久久久久久久久| 日韩福利视频网| 秋霞电影网一区二区| 一区二区三区在线免费观看| 一区二区国产盗摄色噜噜| 免费高清在线视频一区·| 亚洲成人免费av| 亚洲欧美日韩在线播放| 久久一区二区三区四区| 日韩一区二区三区精品视频| 在线视频国产一区| 色就色 综合激情| 91精品国产品国语在线不卡| 欧美三级日韩三级国产三级| 日本精品一级二级| 欧美一区二区日韩一区二区| 欧美国产禁国产网站cc| 亚洲人吸女人奶水| 免费精品视频在线| 91毛片在线观看| 91在线视频免费91| 91精品国产欧美一区二区18| 国产清纯美女被跳蛋高潮一区二区久久w| 51午夜精品国产| 久久久久国产精品麻豆ai换脸| 欧美成人一区二区| 综合久久给合久久狠狠狠97色| 日本一区二区成人在线| 亚洲丶国产丶欧美一区二区三区| 国产在线精品一区二区夜色 | 国产欧美一区二区精品忘忧草| 中文字幕一区二区三区视频| 国产精品久久久久久久久久免费看| 欧美国产激情二区三区| 青娱乐精品视频在线| 一本色道久久综合亚洲aⅴ蜜桃| 精品国产精品网麻豆系列| 伊人夜夜躁av伊人久久| 成人精品视频.| 欧美成人精品高清在线播放| 亚洲一区二区精品3399| 成人av在线网| 欧美手机在线视频| 日韩午夜在线观看视频| 夜夜嗨av一区二区三区中文字幕 | 五月天丁香久久| 成人午夜av电影| 2020日本不卡一区二区视频| 欧美aaa在线| 欧美老肥妇做.爰bbww| 日韩视频永久免费| 亚洲图片自拍偷拍| 国产在线播精品第三| 欧美一区日韩一区| 日日夜夜免费精品| 国产成人综合在线观看| 色999日韩国产欧美一区二区| 国产精品丝袜91| 水蜜桃久久夜色精品一区的特点 | 亚洲第一激情av| 色94色欧美sute亚洲13| 最新日韩av在线| 91欧美一区二区| 亚洲人被黑人高潮完整版| 成人精品高清在线| 国产精品久久久久久久久快鸭| 成人性色生活片免费看爆迷你毛片| 精品99一区二区三区| 国产真实乱偷精品视频免| 国产亚洲一区二区三区在线观看| 久久国产精品色| 日本久久一区二区| 亚洲成人精品一区二区| 在线综合视频播放| 老司机精品视频导航| 久久精品日韩一区二区三区| 国产精华液一区二区三区| 国产精品欧美极品| 91久久一区二区| 天涯成人国产亚洲精品一区av| 欧美一区二区三区在线观看 | 福利一区在线观看| 日韩欧美国产一区在线观看| 亚洲综合一区二区精品导航| 欧美日本在线看| 一二三区精品视频| 制服丝袜日韩国产| 国产精品一区二区免费不卡| 综合久久久久久| 91精品国产综合久久久久| 国产福利91精品| 亚洲一区影音先锋| 国产三级欧美三级日产三级99| heyzo一本久久综合| 国产无人区一区二区三区| 色综合咪咪久久| 另类成人小视频在线| 国产精品第一页第二页第三页| 欧美日韩精品系列| 国产69精品久久99不卡| 午夜精品成人在线视频| 久久精品日产第一区二区三区高清版| 94-欧美-setu| 精彩视频一区二区三区| 久久一区二区三区四区| 精品视频一区二区不卡| 成人影视亚洲图片在线| 蜜桃av一区二区三区电影| 日韩久久久久久| 在线观看日韩一区| 粉嫩高潮美女一区二区三区| 丝瓜av网站精品一区二区| 国产精品国产三级国产a| 日韩欧美一区在线| 欧美视频一区二区三区| www.欧美日韩国产在线| 激情深爱一区二区| 蜜臀av亚洲一区中文字幕| 亚洲精品乱码久久久久久黑人| 国产清纯在线一区二区www| 日韩一级大片在线观看| 欧美色图在线观看| 色八戒一区二区三区| 99久久99久久免费精品蜜臀| 国产裸体歌舞团一区二区| 性久久久久久久久久久久| 亚洲黄色性网站| 亚洲欧美另类小说视频| 中文字幕一区二区三区在线播放| 久久九九国产精品| 久久蜜桃香蕉精品一区二区三区| 日韩一级片在线观看| 制服丝袜中文字幕亚洲| 欧美夫妻性生活| 欧美伦理电影网| 欧美日韩美少妇| 7777精品伊人久久久大香线蕉超级流畅 | 欧美aaaaa成人免费观看视频| 亚洲午夜久久久久久久久电影院| 成人欧美一区二区三区| 1000精品久久久久久久久| 中文字幕一区二区三区蜜月| 中文字幕日韩一区| 日韩一区日韩二区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 91亚洲精品乱码久久久久久蜜桃| 暴力调教一区二区三区| av色综合久久天堂av综合| 91亚洲精品久久久蜜桃| 在线看不卡av| 日韩亚洲欧美成人一区| 精品国产乱子伦一区| wwwwww.欧美系列| 国产欧美日韩在线观看| 中文字幕一区二区三区在线观看 | 亚洲国产精品国自产拍av| 中文字幕电影一区| 亚洲精品一二三| 日韩成人av影视| 国产在线麻豆精品观看| jlzzjlzz国产精品久久| 欧美日韩精品电影| 欧美电视剧免费观看| 国产精品嫩草99a| 一区二区三区四区中文字幕| 日产国产欧美视频一区精品| 国产精品自拍在线| 欧美私模裸体表演在线观看| 日韩精品一区二区三区四区视频 | 亚洲狠狠爱一区二区三区| 麻豆免费看一区二区三区| 懂色av一区二区三区蜜臀| 欧美日韩一区成人| 久久久久久夜精品精品免费| 一区二区三区日韩欧美精品 | av电影在线观看不卡| 欧美日韩国产精选| 国产婷婷色一区二区三区| 亚洲第一会所有码转帖| 国产成人综合自拍| 欧美精品一二三四| 亚洲欧洲av一区二区三区久久| 日本午夜一区二区| 91国偷自产一区二区使用方法| 久久综合九色综合欧美就去吻|