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

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

?? mp4eutil.c

?? Linux下的基于intel的ipp庫的MPEG4編碼程序
?? C
字號:
/******************************************************************************
//               INTEL CORPORATION PROPRIETARY INFORMATION
//  This software is supplied under the terms of a license agreement or
//  nondisclosure agreement with Intel Corporation and may not be copied
//  or disclosed except in accordance with the terms of that agreement.
//        Copyright (c) 2003 Intel Corporation. All Rights Reserved.
//
//  Description:    Utility functions of MPEG-4 video encoder sample code for
//                  Intel(R) Integrated Performance Primitives.
//  Functions List:
//		set_ref_frame_enc_mpeg4()
//		expand_frame_enc_mpeg4()
//		lookup_uvmv_mpeg4()
******************************************************************************/

#include "sampmp4.h"

/******************************************************************************
// Name:            set_ref_frame_enc_mpeg4
// Description:		set reference plane, namely switch current frame and 
//					forward reference frame, current reconstructed frame and
//                  forward reference reconstructed frame.
//
// Input Arguments:	
//			enc_state - pointer to the general state struct of MPEG-4 encoder
//
// Output Arguments:	
//			enc_state - pointer to the updated state struct of MPEG-4 encoder
//
// Returns:  
//          none
******************************************************************************/
void set_ref_frame_enc_mpeg4(mp4_enc_state *enc_state)
{
    sample_spacial_ptrset tmp_frame;
    
    tmp_frame = enc_state->fwd_ref_frame;
    enc_state->fwd_ref_frame = enc_state->cur_frame;
    enc_state->cur_frame = tmp_frame;

    tmp_frame = enc_state->fwd_ref_rec_frame;
    enc_state->fwd_ref_rec_frame = enc_state->rec_frame;
    enc_state->rec_frame = tmp_frame;

    return;
}


/******************************************************************************
// Name:            expand_frame_enc_mpeg4
// Description:		expand reference rectangular VOP and reference reconstruct
//					VOP in order to perform motion compensated prediction
//
// Input Arguments:	
//			enc_state - pointer to the general state struct of MPEG-4 encoder
// Output Arguments:	
//			enc_state - pointer to the updated state struct of MPEG-4 encoder
//
// Returns:  
//          none
******************************************************************************/
void expand_frame_enc_mpeg4(mp4_enc_state *enc_state)
{
    int y_step  = enc_state->frame_step_set.y_step;
    int cb_step = enc_state->frame_step_set.cb_step;
    int cr_step = enc_state->frame_step_set.cr_step;

    int width  = enc_state->frame_dimension.width;
    int height = enc_state->frame_dimension.height;

    Ipp8u *y_ptr, *cb_ptr, *cr_ptr;
    
    /* forward reference plane */
    y_ptr  = enc_state->fwd_ref_frame.y_ptr  - SAMPLE_VIDEO_MB_SIZE
        * y_step  - SAMPLE_VIDEO_MB_SIZE;

    cb_ptr = enc_state->fwd_ref_frame.cb_ptr - SAMPLE_VIDEO_BLOCK_SIZE
        * cb_step - SAMPLE_VIDEO_BLOCK_SIZE;
        
    cr_ptr = enc_state->fwd_ref_frame.cr_ptr - SAMPLE_VIDEO_BLOCK_SIZE
        * cr_step - SAMPLE_VIDEO_BLOCK_SIZE;

    /* Padding expandY */
    /* y_ptr must be 8 bytes aligned */
    ippiExpandFrame_H263_8u(y_ptr, width, height, SAMPLE_VIDEO_MB_SIZE,
        y_step);
    
    /* Padding expandU */
    /* cb_ptr must be 8 bytes aligned */
    ippiExpandFrame_H263_8u(cb_ptr, width/2, height/2, SAMPLE_VIDEO_BLOCK_SIZE,
        cb_step);
    
    /* Padding expandV */
    /* cr_ptr must be 8 bytes aligned */
    ippiExpandFrame_H263_8u(cr_ptr, width/2, height/2, SAMPLE_VIDEO_BLOCK_SIZE,
        cr_step);

    /* forward reference reconstructed plane */
    y_ptr  = enc_state->fwd_ref_rec_frame.y_ptr - SAMPLE_VIDEO_MB_SIZE
        * y_step - SAMPLE_VIDEO_MB_SIZE;

    cb_ptr = enc_state->fwd_ref_rec_frame.cb_ptr - SAMPLE_VIDEO_BLOCK_SIZE
        * cb_step - SAMPLE_VIDEO_BLOCK_SIZE;

    cr_ptr = enc_state->fwd_ref_rec_frame.cr_ptr - SAMPLE_VIDEO_BLOCK_SIZE
        * cr_step - SAMPLE_VIDEO_BLOCK_SIZE;

    /* Padding expandY */
    /* y_ptr must be 8 bytes aligned */
    ippiExpandFrame_H263_8u(y_ptr, width, height, SAMPLE_VIDEO_MB_SIZE,
        y_step);
    
    /* Padding expandU */
    /* cb_ptr must be 8 bytes aligned */
    ippiExpandFrame_H263_8u(cb_ptr, width/2, height/2, SAMPLE_VIDEO_BLOCK_SIZE,
        cb_step);
    
    /* Padding expandV */
    /* cr_ptr must be 8 bytes aligned */
    ippiExpandFrame_H263_8u(cr_ptr, width/2, height/2, SAMPLE_VIDEO_BLOCK_SIZE,
        cr_step);
}


/*****************************************************************************
// Name:            lookup_uvmv_mpeg4()
// Description:     Look up the motion vector of chrominace block based on the
//                  motion vector of luminance block.
// Input Arguments: 
//      mv_lum      Pointer to the Motion Vector of Luminance block.
//                  (1st lumianance block in macroblock)
//      mb_type     macroblock type
// Output Arguments:
//      mv_chr      Pointer to the Motion Vector of Luminance block.
// Returns:
//      SAMPLE_STATUS_NOERR     If succeeds
// Notes:
******************************************************************************/
sample_status lookup_uvmv_mpeg4
(IppMotionVector *mv_lum, IppMotionVector *mv_chr, int mb_type)
{
    int     k ;
    int     dx, dy;

    if ((IPP_VIDEO_INTER4V == mb_type) || (IPP_VIDEO_DIRECT == mb_type)) {
        dx = mv_lum[0].dx + mv_lum[1].dx + mv_lum[2].dx + mv_lum[3].dx;
        dy = mv_lum[0].dy + mv_lum[1].dy + mv_lum[2].dy + mv_lum[3].dy;

        if (0 == dx) {
            mv_chr->dx = 0;
        } else if (0 < dx) {
            k = dx & 0x0f;
            mv_chr->dx = (Ipp16s)((dx >> 4) << 1);
            if (13 < k) {
                mv_chr->dx += 2;
            } else if (2 < k) {
                mv_chr->dx += 1;
            }
        } else {
            k = (-dx) & 0x0f;                                   
            mv_chr->dx = (Ipp16s)(((-dx) >> 4) << 1);
            if (13 < k) {                                        
                mv_chr->dx += 2;                                            
            } else if (2 < k) {                                  
                mv_chr->dx += 1;                                            
            }                                                       
            mv_chr->dx = (Ipp16s)(-(mv_chr->dx));
        }                                                           

        if (0 == dy) {                                         
            mv_chr->dy = 0;                                             
        } else if (0 < dy) {                                     
            k = dy & 0x0f;                                  
            mv_chr->dy = (Ipp16s)((dy >> 4) << 1);
            if(13 < k) {
                mv_chr->dy += 2;
            } else if(2 < k) {
                mv_chr->dy += 1;
            }                                                       
        } else {                                                    
            k = (-dy) & 0x0f;                                   
            mv_chr->dy = (Ipp16s)(((-dy) >> 4) << 1);                     
            if (13 < k) {                                        
                mv_chr->dy += 2;                                            
            } else if (2 < k) {                                  
                mv_chr->dy += 1;                                            
            }                                                       
            mv_chr->dy = (Ipp16s)(-(mv_chr->dy));
        }                                                                       
    }   else {
        if (0 == mv_lum[0].dx) {                                           
            mv_chr->dx = 0;                                             
        } else if (0 < mv_lum[0].dx) {                                       
            mv_chr->dx = (Ipp16s)((mv_lum[0].dx >> 2) << 1);
            if(mv_lum[0].dx & 0x3) {                                        
                mv_chr->dx += 1;                                            
            }                                                       
        } else {                                                    
            mv_chr->dx = (Ipp16s)(((-mv_lum[0].dx) >> 2) << 1);
            if(mv_lum[0].dx & 0x3) {                                        
                mv_chr->dx += 1;                                            
            }                                                       
            mv_chr->dx = (Ipp16s)(-(mv_chr->dx));
        }                                                           

        if (0 == mv_lum[0].dy) {                                           
            mv_chr->dy = 0;                                             
        } else if(0 < mv_lum[0].dy) {                                       
            mv_chr->dy = (Ipp16s)((mv_lum[0].dy >> 2) << 1);
            if(mv_lum[0].dy & 0x3) {                                        
                mv_chr->dy += 1;                                            
            }                                                       
        } else {                                                    
            mv_chr->dy = (Ipp16s)(((-mv_lum[0].dy) >> 2) << 1);
            if(mv_lum[0].dy & 0x3) {                                        
                mv_chr->dy += 1;                                            
            }                                                       
            mv_chr->dy = (Ipp16s)(-(mv_chr->dy));
        }           
    }
    
    return SAMPLE_STATUS_NOERR;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区高清| 欧美日韩国产区一| 久久狠狠亚洲综合| 视频一区二区三区在线| 亚洲第一av色| 日本免费新一区视频| 日韩二区三区四区| 蜜桃av噜噜一区| 精品一区二区三区不卡 | 成人午夜激情在线| 国产99久久久国产精品潘金网站| 奇米一区二区三区| 国产精品亚洲第一区在线暖暖韩国 | 91香蕉视频污| 色成人在线视频| 欧美日韩一区二区不卡| 91精品国产综合久久福利| 日韩视频一区二区| 久久噜噜亚洲综合| 国产精品久久午夜| 性做久久久久久免费观看欧美| 日韩专区欧美专区| 国产精品一色哟哟哟| 成人av免费网站| 欧美日韩精品三区| 欧美精品一区视频| 亚洲另类在线一区| 日本成人在线网站| 高清不卡在线观看av| 欧美系列一区二区| 国产亚洲精久久久久久| 一区二区在线免费观看| 裸体歌舞表演一区二区| 床上的激情91.| 欧美丰满少妇xxxxx高潮对白| 日韩欧美中文字幕精品| 国产精品沙发午睡系列990531| 一区二区三区中文字幕| 久久99九九99精品| 在线观看日韩一区| 国产午夜精品久久久久久久| 亚洲成人免费视| 国产a视频精品免费观看| 91麻豆精品国产91久久久久久久久| 亚洲精品一区二区三区福利| 一区二区三区久久久| 国产在线播放一区二区三区| 欧美午夜精品免费| 国产日韩欧美制服另类| 日韩中文字幕区一区有砖一区 | caoporn国产精品| 日韩美女天天操| 综合亚洲深深色噜噜狠狠网站| 日本vs亚洲vs韩国一区三区二区| 国产精品自拍毛片| 免费精品99久久国产综合精品| 日韩av中文字幕一区二区| 国产精品一区在线观看你懂的| 日本韩国精品一区二区在线观看| 26uuu久久综合| 亚洲综合色成人| 国产激情一区二区三区| 精品欧美久久久| 夜夜揉揉日日人人青青一国产精品| 国产一区在线精品| 欧美成人性战久久| 蜜桃av噜噜一区| 日韩欧美一级二级三级久久久| 一区二区国产视频| 色婷婷国产精品| 亚洲图片另类小说| 波多野结衣亚洲一区| 国产精品色噜噜| 狠狠色丁香九九婷婷综合五月| 日韩欧美久久久| 精品一区二区在线看| 日韩欧美国产综合在线一区二区三区| 亚洲电影在线播放| 欧美探花视频资源| 久久av中文字幕片| 日韩欧美一级片| 美国三级日本三级久久99| 欧美一级淫片007| 麻豆国产一区二区| 久久午夜电影网| 福利电影一区二区三区| 国产免费成人在线视频| 成人性生交大片免费看在线播放| 国产欧美在线观看一区| 成人免费电影视频| 亚洲在线观看免费视频| 欧美日精品一区视频| 午夜久久久影院| 欧美一区二区在线免费观看| 极品尤物av久久免费看| 日本一区二区三区免费乱视频| www.欧美精品一二区| 一区二区高清免费观看影视大全 | 亚洲国产日韩a在线播放| 欧美人牲a欧美精品| 另类中文字幕网| 国产精品伦理一区二区| 欧美丝袜丝nylons| 九九精品一区二区| 伊人一区二区三区| 日韩欧美不卡一区| 不卡av免费在线观看| 亚洲成人av资源| 久久久噜噜噜久久中文字幕色伊伊| eeuss国产一区二区三区| 日本aⅴ免费视频一区二区三区| 欧美va亚洲va在线观看蝴蝶网| 盗摄精品av一区二区三区| 亚洲最快最全在线视频| 精品国产伦一区二区三区免费| 不卡一区二区三区四区| 日本欧美一区二区三区| 中文字幕亚洲视频| 日韩三级中文字幕| 在线观看日韩av先锋影音电影院| 美洲天堂一区二卡三卡四卡视频| 亚洲色图欧洲色图婷婷| 久久久久久久国产精品影院| 欧美伊人久久大香线蕉综合69 | 中文字幕一区二区三区不卡在线| 精品视频一区二区三区免费| 国产v综合v亚洲欧| 免费观看日韩av| 亚洲第一激情av| 自拍偷拍亚洲综合| 国产偷v国产偷v亚洲高清| 91精品国产综合久久久蜜臀图片 | 欧美日韩性生活| 91麻豆免费看片| 懂色一区二区三区免费观看| 青青草国产精品97视觉盛宴| 亚洲免费高清视频在线| 国产欧美精品国产国产专区| 日韩欧美卡一卡二| 欧美一区二区三区人| 欧美在线999| 91老师国产黑色丝袜在线| 懂色中文一区二区在线播放| 国内外成人在线视频| 蜜桃一区二区三区在线观看| 日日夜夜免费精品视频| 日日摸夜夜添夜夜添国产精品| 一区二区三区高清| 亚洲国产精品久久艾草纯爱| 综合久久久久久| 亚洲激情av在线| 亚洲卡通欧美制服中文| 亚洲人成网站精品片在线观看| 久久精品日产第一区二区三区高清版| 日韩欧美在线观看一区二区三区| 在线亚洲一区二区| 色激情天天射综合网| 91丨九色porny丨蝌蚪| 一本大道久久精品懂色aⅴ| 成人免费视频视频在线观看免费| 国产精品一区在线| 国产91精品精华液一区二区三区| 欧美巨大另类极品videosbest | 精品99久久久久久| 91精品国产欧美一区二区| 欧美一区午夜视频在线观看| 91精品国产综合久久久久久| 91精品国产aⅴ一区二区| 欧美一区二区观看视频| 2017欧美狠狠色| 国产精品美女www爽爽爽| 国产精品久久久久影院| 17c精品麻豆一区二区免费| 一区二区三区四区乱视频| 亚洲成人tv网| 国产精品影视天天线| 一本色道久久综合精品竹菊| 欧美日韩一区二区欧美激情| 精品国产第一区二区三区观看体验| 久久综合色8888| 亚洲精品日日夜夜| 日韩在线一二三区| 国产中文字幕一区| 欧美伊人久久久久久久久影院 | 国产麻豆精品视频| 99久久精品免费| 欧美日韩国产一区| 久久精品亚洲精品国产欧美kt∨ | 麻豆中文一区二区| 成人av一区二区三区| 欧美日韩国产一级| 中文字幕免费观看一区| 亚洲一区二区成人在线观看| 久久疯狂做爰流白浆xx| 99精品视频一区| 精品日韩99亚洲| 亚洲第一久久影院| 91丨porny丨中文| 精品国产乱码久久久久久免费 | 在线播放视频一区|