x264源码分析 -- frame_init_lowres_core

该代码段展示了x264编码器中用于低分辨率核心帧初始化的函数frame_init_lowres_core。它通过双线性滤波算法计算四个目标缓冲区(dst0, dsth, dstv, dstc)的像素值,遍历源图像的每一行和每一列,以生成低分辨率版本。该过程不包括最后一行和最后一列。" 105765985,9481420,等价类划分法详解及其在测试用例设计中的应用,"['软件测试', '测试用例设计', '黑盒测试方法', '等价类', '输入验证']
// A00   A01   A02   A03   A04
//     0     h     0     h
// A10   A11   A12   A13   A14
//     v     c     v     c
// A20   A21   A22   A23   A24
//     0     h     0     h
// A30   A31   A32   A33   A34
//     v     c     v     c
// A40   A41   A42   A43   A44
// 不包括最后一行和最后一列
static void frame_init_lowres_core( uint8_t *src0, uint8_t *dst0, uint8_t *dsth, uint8_t *dstv, uint8_t *dstc,
                                    int src_stride, int dst_stride, int width, int height )
{
    int x,y;
    for( y=0; y<height; y++ )
    {
        uint8_t *src1 = src0+src_stride;
        uint8_t *src2 = src1+src_stride;
        for( x=0; x<width; x++ )
        {
            // slower than naive bilinear, but matches asm
#define FILTER(a,b,c,d) ((((a+b+1)>>1)+((c+d+1)>>1)+1)>>1)
            dst0[x] = FILTER(src0[2*x  ], src1[2*x  ], src0[2*x+1], src1[2*x+1]);
            dsth[x] = FILTER(src0[2*x+1], src1[2*x+1], src0[2*x+2], src1[2*x+2]);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值