我正在构建一个电路,它将从模拟输入读取PAL/NTSC (576i,480i)帧。微控制器具有32 kB的内存。我的目标是将输入缩小到32x16分辨率,并将此图像转发到LED矩阵。
PAL帧可以占用大约400 kB的内存。所以我想要缩小在线的规模。读取18像素,抽取到1。读取45行,抽取到1。峰值内存使用: 45 x 32 = 1.44 kB (45行抽取等待抽取)。
问:除了上面的朴素算法之外,还有什么其他的在线图像缩小算法?谷歌搜索非常困难,因为可以找到在线服务(PDF调整大小等)
发布于 2017-01-04 19:57:22
请注意,提到的格式是交错的,因此您可以在第一个第0,2,4..行(第一个半帧),然后是第一行、第三行、..线条(第二个半框架)。
如果您在结果单元格中使用简单的像素值平均(我怀疑对于如此小的输出矩阵是可以的),那么创建输出数组(16x32=512条目)并为每个单元格求和适当的值。而且您需要为一个输入行(768或640个条目)使用buffer。
x_coeff = input_width / out_width
y_coeff = input_height / out_height
out_y = inputrow / y_coeff
for (inputcol = 0..input_width - 1)
out_x = inputcol / x_coeff
out_array[out_y][out_x] += input_line[inputcol]
inputrow = inputrow + 2
if (inputrow = input_height)
inputrow = 1
if (inputrow > input_height)
inputrow = 0
divide out_array[][] entries by ( x_coeff * y_coeff)https://stackoverflow.com/questions/41461205
复制相似问题