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

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

?? predict.c

?? 圖象壓縮程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/***************************************************************************** * predict.c: h264 encoder ***************************************************************************** * Copyright (C) 2003 Laurent Aimar * $Id: predict.c,v 1.1 2003/11/09 23:25:04 fenrir Exp $ * * Authors: Laurent Aimar <fenrir@via.ecp.fr> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA. *****************************************************************************//* XXX predict4x4 are inspired from ffmpeg h264 decoder */#include <stdlib.h>#include <string.h>#include <stdint.h>#include "predict.h"#define X264_CLIP3(a,b,c) ( (a)<(b)?(b):( (a)>(c)?(c):(a)) )/**************************************************************************** * 16x16 prediction for intra block DC, H, V, P ****************************************************************************/static void predict_16x16_dc( uint8_t *src, int i_stride ){    int dc = 0;    int i, j;    /* calculate DC value */    for( i = 0; i < 16; i++ )    {        dc += src[-1 + i * i_stride];        dc += src[i - i_stride];    }    dc = ( dc + 16 ) >> 5;    for( i = 0; i < 16; i++ )    {        for( j = 0; j < 16; j++ )        {            src[j] = dc;        }        src += i_stride;    }}static void predict_16x16_dc_left( uint8_t *src, int i_stride ){    int dc = 0;    int i,j;    for( i = 0; i < 16; i++ )    {        dc += src[-1 + i * i_stride];    }    dc = ( dc + 8 ) >> 4;    for( i = 0; i < 16; i++ )    {        for( j = 0; j < 16; j++ )        {            src[j] = dc;        }        src += i_stride;    }}static void predict_16x16_dc_top( uint8_t *src, int i_stride ){    int dc = 0;    int i,j;    for( i = 0; i < 16; i++ )    {        dc += src[i - i_stride];    }    dc = ( dc + 8 ) >> 4;    for( i = 0; i < 16; i++ )    {        for( j = 0; j < 16; j++ )        {            src[j] = dc;        }        src += i_stride;    }}static void predict_16x16_dc_128( uint8_t *src, int i_stride ){    int i,j;    for( i = 0; i < 16; i++ )    {        for( j = 0; j < 16; j++ )        {            src[j] = 128;        }        src += i_stride;    }}static void predict_16x16_h( uint8_t *src, int i_stride ){    int i,j;    for( i = 0; i < 16; i++ )    {        uint8_t v;        v = src[-1];        for( j = 0; j < 16; j++ )        {            src[j] = v;        }        src += i_stride;    }}static void predict_16x16_v( uint8_t *src, int i_stride ){    int i,j;    for( i = 0; i < 16; i++ )    {        for( j = 0; j < 16; j++ )        {            src[i * i_stride +j] = src[j - i_stride];        }    }}static void predict_16x16_p( uint8_t *src, int i_stride ){    int x, y, i;    int a, b, c;    int H = 0;    int V = 0;    int i00;    /* calcule H and V */    for( i = 0; i <= 7; i++ )    {        H += ( i + 1 ) * ( src[ 8 + i - i_stride ] - src[6 -i -i_stride] );        V += ( i + 1 ) * ( src[-1 + (8+i)*i_stride] - src[-1 + (6-i)*i_stride] );    }    a = 16 * ( src[-1 + 15*i_stride] + src[15 - i_stride] );    b = ( 5 * H + 32 ) >> 6;    c = ( 5 * V + 32 ) >> 6;    i00 = a - b * 7 - c * 7 + 16;    for( y = 0; y < 16; y++ )    {        for( x = 0; x < 16; x++ )        {            int pix;            pix = (i00+b*x)>>5;            src[x] = X264_CLIP3( pix, 0, 255 );        }        src += i_stride;        i00 += c;    }}/**************************************************************************** * 8x8 prediction for intra chroma block DC, H, V, P ****************************************************************************/static void predict_8x8_dc_128( uint8_t *src, int i_stride ){    int x,y;    for( y = 0; y < 8; y++ )    {        for( x = 0; x < 8; x++ )        {            src[x] = 128;        }        src += i_stride;    }}static void predict_8x8_dc_left( uint8_t *src, int i_stride ){    int x,y;    int dc0 = 0, dc1 = 0;    for( y = 0; y < 4; y++ )    {        dc0 += src[y * i_stride     - 1];        dc1 += src[(y+4) * i_stride - 1];    }    dc0 = ( dc0 + 2 ) >> 2;    dc1 = ( dc1 + 2 ) >> 2;    for( y = 0; y < 4; y++ )    {        for( x = 0; x < 8; x++ )        {            src[           x] = dc0;            src[4*i_stride+x] = dc1;        }        src += i_stride;    }}static void predict_8x8_dc_top( uint8_t *src, int i_stride ){    int x,y;    int dc0 = 0, dc1 = 0;    for( x = 0; x < 4; x++ )    {        dc0 += src[x     - i_stride];        dc1 += src[x + 4 - i_stride];    }    dc0 = ( dc0 + 2 ) >> 2;    dc1 = ( dc1 + 2 ) >> 2;    for( y = 0; y < 8; y++ )    {        for( x = 0; x < 4; x++ )        {            src[x    ] = dc0;            src[x + 4] = dc1;        }        src += i_stride;    }}static void predict_8x8_dc( uint8_t *src, int i_stride ){    int x,y;    int s0 = 0, s1 = 0, s2 = 0, s3 = 0;    int dc0, dc1, dc2, dc3;    int i;    /* First do :          s0 s1       s2       s3    */    for( i = 0; i < 4; i++ )    {        s0 += src[i - i_stride];        s1 += src[i + 4 - i_stride];        s2 += src[-1 + i * i_stride];        s3 += src[-1 + (i+4)*i_stride];    }    /* now calculate       dc0 dc1       dc2 dc3     */    dc0 = ( s0 + s2 + 4 ) >> 3;    dc1 = ( s1 + 2 ) >> 2;    dc2 = ( s3 + 2 ) >> 2;    dc3 = ( s1 + s3 + 4 ) >> 3;    for( y = 0; y < 4; y++ )    {        for( x = 0; x < 4; x++ )        {            src[             x    ] = dc0;            src[             x + 4] = dc1;            src[4*i_stride + x    ] = dc2;            src[4*i_stride + x + 4] = dc3;        }        src += i_stride;    }}static void predict_8x8_h( uint8_t *src, int i_stride ){    int i,j;    for( i = 0; i < 8; i++ )    {        uint8_t v;        v = src[-1];        for( j = 0; j < 8; j++ )        {            src[j] = v;        }        src += i_stride;    }}static void predict_8x8_v( uint8_t *src, int i_stride ){    int i,j;    for( i = 0; i < 8; i++ )    {        for( j = 0; j < 8; j++ )        {            src[i * i_stride +j] = src[j - i_stride];        }    }}static void predict_8x8_p( uint8_t *src, int i_stride ){    int i;    int x,y;    int a, b, c;    int H = 0;    int V = 0;    int i00;    for( i = 0; i < 4; i++ )    {        H += ( i + 1 ) * ( src[4+i - i_stride] - src[2 - i -i_stride] );        V += ( i + 1 ) * ( src[-1 +(i+4)*i_stride] - src[-1+(2-i)*i_stride] );    }    a = 16 * ( src[-1+7*i_stride] + src[7 - i_stride] );    b = ( 17 * H + 16 ) >> 5;    c = ( 17 * V + 16 ) >> 5;    i00 = a -3*b -3*c + 16;    for( y = 0; y < 8; y++ )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91色婷婷久久久久合中文| 91丝袜高跟美女视频| 国产成人鲁色资源国产91色综| 成人黄页在线观看| 欧美一区二区三区视频在线观看 | 精品视频一区二区不卡| 精品久久五月天| 亚洲综合一区在线| 国产永久精品大片wwwapp| 欧美日韩一区二区不卡| 国产精品国产三级国产有无不卡| 蜜臀国产一区二区三区在线播放| 91视频免费播放| 久久久噜噜噜久噜久久综合| 午夜精品国产更新| 91一区二区三区在线观看| 久久精品视频一区| 男女视频一区二区| 欧美在线影院一区二区| 自拍av一区二区三区| 国产一区二区三区免费| 日韩一区二区三区视频| 亚洲欧美一区二区三区国产精品 | 一区二区三区精品| 国产精品资源站在线| 宅男噜噜噜66一区二区66| 亚洲一区二区三区三| 91免费观看国产| 麻豆高清免费国产一区| 91免费在线看| 亚洲一区二区三区不卡国产欧美| 91香蕉视频在线| 亚洲乱码国产乱码精品精98午夜| 北条麻妃一区二区三区| 国产精品美女久久久久久久| 国产高清亚洲一区| 亚洲国产精品二十页| 顶级嫩模精品视频在线看| 国产女人aaa级久久久级| 高清国产午夜精品久久久久久| 久久免费午夜影院| 国产成人综合精品三级| 中文乱码免费一区二区| 不卡av免费在线观看| 亚洲丝袜精品丝袜在线| 欧美专区亚洲专区| 日韩高清国产一区在线| 日韩一区二区免费在线电影| 麻豆精品久久精品色综合| 久久亚洲综合色| 成人久久久精品乱码一区二区三区 | 日韩欧美国产精品| 国产精品资源在线看| 国产精品久久久久久久久免费相片 | 亚洲欧美国产三级| 色94色欧美sute亚洲线路一ni| 亚洲一区在线观看免费| 欧美精品日韩一区| 国内精品免费**视频| 亚洲欧洲一区二区三区| 精品视频在线看| 国产一区二区三区精品视频| 国产精品久久久久久久久快鸭 | 777欧美精品| 狠狠色丁香久久婷婷综合丁香| 国产亚洲成aⅴ人片在线观看| 成人国产精品免费| 午夜精品久久久久久不卡8050| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 免费高清视频精品| 国产免费成人在线视频| 欧美午夜一区二区三区 | 九九热在线视频观看这里只有精品| 欧美精品一区二区三区四区| 成+人+亚洲+综合天堂| 亚洲欧美色综合| 精品美女在线观看| 99国产一区二区三精品乱码| 日韩精品五月天| 中文字幕一区二区三区色视频 | 波多野结衣亚洲| 日韩激情一二三区| 国产精品二三区| 欧美一卡二卡在线| 91福利区一区二区三区| 成人黄色av电影| 久色婷婷小香蕉久久| 夜色激情一区二区| 中文字幕第一页久久| 欧美v日韩v国产v| 91福利资源站| 91亚洲国产成人精品一区二三| 日本欧美韩国一区三区| 一区二区三区中文字幕电影| 久久先锋影音av| 欧美理论片在线| 色偷偷久久一区二区三区| 国产盗摄视频一区二区三区| 麻豆精品久久精品色综合| 亚洲va在线va天堂| 一区二区三区成人| 中文字幕日韩一区| 亚洲国产精品国自产拍av| 久久美女艺术照精彩视频福利播放 | 欧美欧美欧美欧美| 色婷婷综合久久| 福利一区福利二区| 国产精品资源网| 国产精品一区二区在线观看网站| 婷婷六月综合网| 亚洲成人av一区二区三区| 自拍偷拍亚洲综合| 亚洲色图19p| 亚洲欧美一区二区三区极速播放| 国产精品国产三级国产aⅴ原创| 国产日韩欧美高清在线| 久久综合久久综合亚洲| 欧美精品一区二区三区四区| 欧美精品一区在线观看| 精品三级av在线| 久久精品一区二区三区不卡| 久久综合久色欧美综合狠狠| 国产午夜精品一区二区三区视频| 欧美精品一区二区三区视频| 久久久久高清精品| 国产精品美女久久久久aⅴ国产馆| 国产欧美一区二区精品仙草咪| 精品国产一区二区三区久久影院| 欧美大片在线观看一区二区| 久久只精品国产| 欧美激情一区三区| 亚洲猫色日本管| 亚洲电影在线播放| 美女免费视频一区二区| 国内精品国产成人| 北条麻妃一区二区三区| 欧美午夜精品一区二区蜜桃| 91精品一区二区三区在线观看| 日韩精品一区二区三区蜜臀 | 国产成人亚洲综合色影视| 成人午夜视频网站| 色综合久久天天| 91精品国产综合久久久久久漫画| 精品毛片乱码1区2区3区| 亚洲国产一二三| 日本va欧美va欧美va精品| 狠狠色丁香婷婷综合久久片| 97久久精品人人爽人人爽蜜臀| 91久久国产最好的精华液| 欧美精品99久久久**| 欧美精品一区二区在线观看| 一区精品在线播放| 美女网站一区二区| 成人av综合在线| 在线成人免费观看| 亚洲国产精华液网站w| 亚洲国产精品尤物yw在线观看| 黄色日韩三级电影| 色综合久久久久久久久| 日韩三级高清在线| 亚洲欧美影音先锋| 精品一二三四区| 欧美日韩在线三级| 国产精品嫩草影院com| 热久久一区二区| 色婷婷国产精品综合在线观看| 日韩精品一区二区三区三区免费| 一区二区在线观看av| 国产美女av一区二区三区| 欧美三级三级三级| 成人欧美一区二区三区黑人麻豆| 日韩精品欧美精品| 91福利社在线观看| 国产精品久久国产精麻豆99网站| 日本v片在线高清不卡在线观看| 不卡高清视频专区| 国产日韩欧美综合一区| 麻豆国产精品官网| 欧美久久久久久久久中文字幕| 中文字幕永久在线不卡| 国产.精品.日韩.另类.中文.在线.播放| 欧美怡红院视频| 日韩毛片在线免费观看| 国产成人亚洲综合a∨猫咪 | 在线一区二区三区四区五区| 国产视频在线观看一区二区三区 | 久久伊99综合婷婷久久伊| 婷婷丁香久久五月婷婷| 91麻豆成人久久精品二区三区| 精品噜噜噜噜久久久久久久久试看| 亚洲福利视频导航| 在线观看成人免费视频| 亚洲天堂精品在线观看| 99视频精品在线| 中文字幕高清不卡| 波多野结衣在线aⅴ中文字幕不卡| 久久奇米777| 国产一区二区三区av电影| 精品第一国产综合精品aⅴ| 久久er精品视频|