什么是在线缩小算法?

时间:2017-01-04 10:11:18

标签: algorithm embedded microcontroller scaling

我正在构建一个从模拟输入读取PAL / NTSC(576i,480i)帧的电路。微控制器具有32 kB的存储器。我的目标是将输入缩小到32x16分辨率,并将此图像转发到LED矩阵。

PAL帧可以占用~400 kB的内存。所以我想在网上缩小规模。读取18个像素,抽取为1.读取45行,抽取为1.峰值存储器使用:45 x 32 = 1.44 kB(等待抽取的45个抽取行)。

问题:除了上述天真的算法之外,还有哪些其他在线图像缩小算法?谷歌搜索是非常困难的,因为正在找到在线服务(PDF调整大小等)

1 个答案:

答案 0 :(得分:-1)

请注意,所提到的格式是隔行扫描的,所以你先读取第0,第2,第4 ......行(第一个半帧),然后读取第1,第3,......行(第二个半帧)。

如果您在结果单元格中使用像素值的简单平均(我怀疑它对于如此小的输出矩阵是可行的),则创建输出数组(16x32 = 512个条目)并为每个单元格求和适当的值。并且您需要缓冲区用于单个输入行(768或640个条目)。

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)