// 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]);
x264源码分析 -- frame_init_lowres_core
最新推荐文章于 2024-01-05 00:19:22 发布
该代码段展示了x264编码器中用于低分辨率核心帧初始化的函数frame_init_lowres_core。它通过双线性滤波算法计算四个目标缓冲区(dst0, dsth, dstv, dstc)的像素值,遍历源图像的每一行和每一列,以生成低分辨率版本。该过程不包括最后一行和最后一列。"
105765985,9481420,等价类划分法详解及其在测试用例设计中的应用,"['软件测试', '测试用例设计', '黑盒测试方法', '等价类', '输入验证']


5446

被折叠的 条评论
为什么被折叠?



