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

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

?? t264.c

?? T264是中國(guó)的視頻編碼自由組織合力開發(fā)的264編解碼程序
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*****************************************************************************
*
*  T264 AVC CODEC
*
*  Copyright(C) 2004-2005 llcc <lcgate1@yahoo.com.cn>
*               2004-2005 visionany <visionany@yahoo.com.cn>
*
*  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-1307 USA
*
****************************************************************************/

// T264.cpp : Defines the entry point for the console application.
//

#define USE_DISPLAY
#include "config.h"

#ifdef USE_DISPLAY
#ifndef __GCC__
#include "win.h"
#else
#include "display.h"
#endif
#endif

//Ti_DSP Platform ported by YouXiaoquan,HFUT-Ti United Lab,China
//YouXiaoquan@126.com
#include "stdio.h"
#ifndef CHIP_DM642
#include "sys/timeb.h"
#endif
#include "time.h"

#include "stdlib.h"
#ifndef CHIP_DM642
#include "memory.h"
#endif
#include "math.h"
#include "T264.h"
#include "utility.h"
#include "string.h"


// parameters begin
int32_t total_no = 300;
char src_path[256];
char out_path[256];
char rec_path[256];
// for decoder PSNR
char ref_path[256];
static int  ref_skip;

// parameters end

#ifdef USE_DISPLAY

void
winDisplay(T264_t* t, T264_frame_t* f)
{
    uint8_t* p;
    unsigned char* buffer1, *buffer2, *buffer3, *Y, *U, *V;
    unsigned char *src[3];
    int32_t i;

    src[0] = Y = buffer1 = malloc(t->width*t->height*sizeof(char));
    p = f->Y[0];
    for (i = 0 ; i < t->height ; i++)
    {
        memcpy(buffer1, p, t->width);
        buffer1 += t->width;
        p += t->edged_stride;
    }

    src[2] = V = buffer2 = malloc((t->width*t->height*sizeof(char))>>2);
    p = f->V;
    for (i = 0 ; i < (t->height >> 1); i++)
    {
        memcpy(buffer2, p, t->width >> 1);
        buffer2 += (t->width >> 1);
        p += t->edged_stride_uv;
    }

    src[1] = U = buffer3 = malloc((t->width*t->height*sizeof(char))>>2);
    p = f->U;
    for (i = 0 ; i < (t->height >> 1); i++)
    {
        memcpy(buffer3, p, t->width >> 1);
        buffer3 += (t->width >> 1);
        p += t->edged_stride_uv;
    }
#ifndef __GCC__
    displayImage(Y,V,U);
#else
    dither(src);
    free(src[1]);
    free(src[2]);
    free(src[0]);
#endif
}

void
uninit_display()
{
#ifndef __GCC__
    closeDisplay ();
#else
    exit_display();
#endif
}
#endif

void
init_param(T264_param_t* param, const char* file)
{
    FILE* fd; 
    char line[255];
    int32_t b;
    if (!(fd = fopen(file,"r")))
    {
        printf("Couldn't open parameter file %s.\n", file);
        exit(-1);
    }

    memset(param, 0, sizeof(*param));
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    if (b != 4)
    {
        printf("wrong param file version, expect v4.0\n");
        exit(-1);
    }
    fgets(line, 254, fd); sscanf(line,"%d", &param->width);
    fgets(line, 254, fd); sscanf(line,"%d", &param->height);
    fgets(line, 254, fd); sscanf(line,"%d", &param->search_x);
    fgets(line, 254, fd); sscanf(line,"%d", &param->search_y);
    fgets(line, 254, fd); sscanf(line,"%d", &total_no);
    fgets(line, 254, fd); sscanf(line,"%d", &param->iframe);
    fgets(line, 254, fd); sscanf(line,"%d", &param->idrframe);
    fgets(line, 254, fd); sscanf(line,"%d", &param->b_num);
    fgets(line, 254, fd); sscanf(line,"%d", &param->ref_num);
    fgets(line, 254, fd); sscanf(line,"%d", &param->enable_rc);
    fgets(line, 254, fd); sscanf(line,"%d", &param->bitrate);
    fgets(line, 254, fd); sscanf(line,"%f", &param->framerate);
    fgets(line, 254, fd); sscanf(line,"%d", &param->qp);
    fgets(line, 254, fd); sscanf(line,"%d", &param->min_qp);
    fgets(line, 254, fd); sscanf(line,"%d", &param->max_qp);
    fgets(line, 254, fd); sscanf(line,"%d", &param->enable_stat);
    fgets(line, 254, fd); sscanf(line,"%d", &param->disable_filter);
    fgets(line, 254, fd); sscanf(line,"%d", &param->aspect_ratio);
    fgets(line, 254, fd); sscanf(line,"%d", &param->video_format);
    fgets(line, 254, fd); sscanf(line,"%d", &param->luma_coeff_cost);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->flags |= (USE_INTRA16x16) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->flags |= (USE_INTRA4x4) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->flags |= (USE_INTRAININTER) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->flags |= (USE_HALFPEL) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->flags |= (USE_QUARTPEL) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->flags |= (USE_SUBBLOCK) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->flags |= (USE_FULLSEARCH) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->flags |= (USE_DIAMONDSEACH) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->flags |= (USE_FORCEBLOCKSIZE) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->flags |= (USE_FASTINTERPOLATE) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->flags |= (USE_SAD) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->flags |= (USE_EXTRASUBPELSEARCH) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->flags |= (USE_SCENEDETECT) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->block_size |= (SEARCH_16x16P) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->block_size |= (SEARCH_16x8P) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->block_size |= (SEARCH_8x16P) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->block_size |= (SEARCH_8x8P) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->block_size |= (SEARCH_8x4P) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->block_size |= (SEARCH_4x8P) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->block_size |= (SEARCH_4x4P) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->block_size |= (SEARCH_16x16B) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->block_size |= (SEARCH_16x8B) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->block_size |= (SEARCH_8x16B) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &b);
    param->block_size |= (SEARCH_8x8B) * (!!b);
    fgets(line, 254, fd); sscanf(line,"%d", &param->cpu);
    fgets(line, 254, fd); sscanf(line, "%d", &param->cabac);

    fgets(line, 254, fd); sscanf(line,"%s", src_path);
    fgets(line, 254, fd); sscanf(line,"%s", out_path);
    fgets(line, 254, fd); sscanf(line,"%s", rec_path);
    param->rec_name = rec_path;

    fclose(fd);
}

int32_t 
encode(const char* paramfile)
{
    T264_param_t param;
    T264_t* t;
    uint8_t* buf, *dst;
    int32_t size;
    FILE* in_file, *out_file;
    uint32_t len;
    int32_t frame_no;
    int32_t bs_len = 0;

    uint8_t* rec;

    float total_time;
#ifdef _WIN32
    struct _timeb beg, end;
#endif

#ifdef CHIP_DM642 
	clock_t start_T=0,end_T=0,total_T=0;
#endif
    init_param(&param, paramfile);

    param.direct_flag = 1;
    // NOTE: currently we force p reference frame num = 1
    t = T264_open(&param);

    /* YV12p */
    size = param.height * param.width + (param.height * param.width >> 1);
    buf = T264_malloc(size, CACHE_SIZE);
    in_file = fopen(src_path, "rb");
    if (!in_file)
    {
        printf("cannot open input file.");
        return 0;
    }

    out_file = fopen(out_path, "wb");
    if (!out_file)
    {
        printf("cannot write 264 file.\n");
        return 0;
    }

    dst = T264_malloc(size, CACHE_SIZE);
    rec = T264_malloc(size, CACHE_SIZE);

#ifdef _WIN32
    _ftime(&beg);
#endif
    printf("frame poc length qp Y U V\n");
    for(frame_no = 0; frame_no < total_no; frame_no++)
    {        
        if (fread(buf, size, 1, in_file) <= 0)
            printf("cannot read from input file.");
#ifdef CHIP_DM642
		start_T=clock();
#endif
        len = T264_encode(t, buf, dst, size);
#ifdef CHIP_DM642 
		end_T=clock();
		total_T=total_T+end_T-start_T-192;
#endif    
        bs_len += len;

        if (fwrite(dst, len, 1, out_file) < 0)
            printf("cannot write 264 file.\n");
    }
#ifndef CHIP_DM642
#ifdef _WIN32
    _ftime(&end);
    total_time = (float)(end.time - beg.time) + (float)(end.millitm - beg.millitm) / 1000;
#endif
    printf("fps: %.2ffps, Length of Bitstream = %d Compact Ratio = %.2f\n", (float)(total_no) / total_time, bs_len, 1.0 * total_no * size / bs_len);
#endif
#ifdef CHIP_DM642
	printf("fps: %.2ffps with cpu 600MHz, Length of Bitstream = %d Compact Ratio = %.2f\n", ((float)total_no /((float)total_T/(float)600000000)),  bs_len, 1.0 * total_no * size / bs_len);
#endif
    fclose(in_file);
    fclose(out_file);
    T264_free(dst);
    T264_close(t);

    return 0;
}

void
write_frame(T264_t* t,T264_frame_t *frame,FILE *f_rec)
{
    int	i;
    uint8_t* p;

    if (f_rec)
    {
        p = frame->Y[0];
        for(i = 0 ; i < t->height ; i ++)
        {
            fwrite(p, t->width, 1, f_rec);
            p += t->edged_stride;
        }
        p = frame->U;
        for(i = 0 ; i < t->height >> 1 ; i ++)
        {
            fwrite(p, t->width >> 1, 1, f_rec);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区电影网| 日韩小视频在线观看专区| 午夜精品在线看| 国产亚洲成aⅴ人片在线观看| 在线视频观看一区| 懂色中文一区二区在线播放| 蜜芽一区二区三区| 一区二区三区国产精华| 国产精品美女久久久久久久久久久| 欧美色偷偷大香| 欧美性大战久久久| 91女神在线视频| 丁香激情综合五月| 国产精品影音先锋| 久久99精品久久久| 美女视频免费一区| 日日欢夜夜爽一区| 婷婷夜色潮精品综合在线| 一区二区三区高清| 亚洲成a人片在线不卡一二三区| 亚洲激情图片一区| 亚洲制服欧美中文字幕中文字幕| 亚洲欧美日韩国产综合| 亚洲一区二区三区四区在线| 亚洲电影欧美电影有声小说| 亚洲靠逼com| 亚洲电影你懂得| 日韩精彩视频在线观看| 蜜桃一区二区三区在线观看| 蜜臀av一区二区在线免费观看| 美国十次了思思久久精品导航| 极品美女销魂一区二区三区免费 | 欧美日韩国产影片| 日韩免费电影一区| 欧美国产日产图区| 亚洲最色的网站| 久久国产精品一区二区| 成人一级黄色片| 欧美日韩国产天堂| 久久精品夜色噜噜亚洲aⅴ| 亚洲色图欧美在线| 香蕉乱码成人久久天堂爱免费| 免费久久99精品国产| 成人av免费观看| 日韩一级片网站| 亚洲视频一区二区在线| 久久成人久久爱| 欧美伊人精品成人久久综合97| 欧美精品一区二区三区蜜桃 | 亚洲一区二区三区四区五区中文| 日本成人中文字幕在线视频 | 国产欧美日韩在线| 免费在线观看日韩欧美| 99免费精品在线| 久久久久久久久久看片| 亚洲不卡av一区二区三区| 国产精品一区二区久久精品爱涩 | 国产精品99久久久久久似苏梦涵| 在线观看区一区二| 中文字幕亚洲一区二区av在线| 日本成人在线不卡视频| 欧美视频一二三区| 日韩国产欧美在线观看| 欧美人与z0zoxxxx视频| 国产欧美一区二区精品性色| 欧美国产成人精品| 亚洲欧美另类久久久精品2019| 亚洲6080在线| 久久av资源网| 国产一区久久久| 日韩一级大片在线观看| 洋洋成人永久网站入口| 国产成人精品网址| 国产亚洲女人久久久久毛片| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美美女激情18p| 亚洲主播在线观看| 91国产丝袜在线播放| 欧美精品丝袜中出| 亚洲精品国产一区二区三区四区在线| 欧美日韩在线电影| 亚洲国产欧美在线| 欧美日韩一区二区三区四区 | 国产精品影视网| 国产精品久久久久永久免费观看| 成人性色生活片| 一区二区三区在线视频观看58| 精品视频在线免费| 青青青爽久久午夜综合久久午夜 | 亚洲成人综合网站| 欧美日韩一级黄| 国产资源精品在线观看| 亚洲女性喷水在线观看一区| 欧美性色综合网| 国产在线播放一区三区四| 中文字幕日韩av资源站| 欧美一区二视频| 久久精品国产亚洲高清剧情介绍| 精品88久久久久88久久久| 成人性生交大片免费看在线播放| 一区二区三区视频在线观看| 日韩精品在线一区二区| av在线这里只有精品| 免费在线看一区| 亚洲国产另类av| 一区精品在线播放| 91网站在线播放| 国产精品资源在线| 蜜臀av在线播放一区二区三区| 亚洲精品第一国产综合野| 久久人人97超碰com| 欧美一级免费大片| 91蜜桃免费观看视频| 盗摄精品av一区二区三区| 精品中文字幕一区二区小辣椒| 亚洲欧美色一区| 亚洲私人黄色宅男| 亚洲国产精品国自产拍av| 精品成人一区二区| 欧美精品一级二级| 日韩三级在线观看| 欧美日韩一区视频| 欧美吻胸吃奶大尺度电影| 91浏览器在线视频| 色婷婷综合久久久久中文| 波多野结衣在线一区| 成人国产亚洲欧美成人综合网| 精品亚洲免费视频| 国产精品一区二区免费不卡| 国产一区二区精品久久| 国产精品一区二区男女羞羞无遮挡| 久久精品久久99精品久久| 另类欧美日韩国产在线| 国内成人免费视频| 成人av资源在线| 99久久伊人网影院| 欧美中文字幕不卡| 日韩欧美国产精品| 亚洲国产精品ⅴa在线观看| 中文字幕在线观看一区| 一区二区国产盗摄色噜噜| 婷婷六月综合亚洲| 国产一级精品在线| 一本到不卡精品视频在线观看| 欧美日韩亚洲综合一区| 337p日本欧洲亚洲大胆色噜噜| 国产欧美日韩视频一区二区| 亚洲人成影院在线观看| 免费在线看一区| 福利一区二区在线| 欧美三级日韩三级| 国产亚洲午夜高清国产拍精品| 国产精品伦理一区二区| 视频一区视频二区中文字幕| 国产成人在线视频网站| 欧美日本高清视频在线观看| 欧美韩日一区二区三区| 日韩电影在线观看电影| 国产成人综合精品三级| 日韩免费视频一区二区| 亚洲另类春色校园小说| 国产麻豆精品在线观看| 欧美日韩国产综合一区二区三区| 久久久久久久综合色一本| 免费观看30秒视频久久| 在线日韩国产精品| 一区二区三区国产精品| 成人午夜精品一区二区三区| 精品国产制服丝袜高跟| 午夜影视日本亚洲欧洲精品| 色综合天天性综合| 欧美激情在线一区二区三区| 国产制服丝袜一区| 日韩精品一区二区三区中文不卡| 亚洲小说欧美激情另类| 色偷偷一区二区三区| 亚洲天堂网中文字| 成人深夜在线观看| 欧美国产欧美综合| 成人免费三级在线| 中文av字幕一区| 99这里都是精品| 亚洲欧美激情插| 在线播放日韩导航| 美女精品自拍一二三四| 欧美xxxxxxxxx| 成人午夜私人影院| 亚洲自拍偷拍综合| 91麻豆精品91久久久久久清纯 | 六月丁香综合在线视频| 精品嫩草影院久久| 成人国产一区二区三区精品| 国产精品第13页| 91麻豆精品91久久久久同性| 国产在线精品国自产拍免费| 日韩理论片网站| 精品精品国产高清a毛片牛牛| 成人午夜视频在线观看| 日韩影视精彩在线| 国产午夜精品一区二区|