将视频缩放至24x15分辨率

时间:2013-12-25 20:06:18

标签: java image swing graphics scale

我用Arduino制作了一个24x15 LED显示屏,去年我把32KB的图形程序放在内存中,很酷。

但是现在我已经升级到拥有256KB内存的Arduino Mega,并且拥有一个带有micro-SD读卡器的“音乐屏蔽”。

所以我的新计划是从SD卡上播放动画。

我已经编写了一个例程来将缓冲区加载到我的24x15显示器上。

所以我想使用简单的3字节RGB像素将屏幕捕获(或任何)视频动画存储在磁盘上。该算法将采用任何分辨率的插值,挑选每个(高度/ 15和宽度/ 24)块的平均颜色。因此,24x15动画将成为此场景的特殊边缘情况。 640x480显然会看起来很荒谬,但我可能会让马里奥看起来很漂亮。

关于如何做到这一点的任何想法?有没有人写过这个?我确定有人。但它真的很难找到。

2 个答案:

答案 0 :(得分:1)

QuickASCII“是一个基于控制台的电影播放器​​和图片浏览器,由Quicktime提供支持”,说明了如何在支持的平台上利用Quicktime。

答案 1 :(得分:0)

未压缩的AVI是一种在Arduino上读取的简单格式,像素为RGB。因此,您可以使用AVIsynth或任何可以编写AVI的视频工具将您的工具可以读取的任何格式和大小的源视频转码为24x15 AVI未压缩,然后将其传输到SD卡,以便Arduino在RGB上读取和播放LED指示灯。您不必编写能够读取任何类型的AVI的AVI阅读器,只能读取您的视频工具所写的特定风格(例如,硬编码开始偏移和字节数等)。 )

或者,让视频工具编写.BMP文件的编号“图像序列”,这些文件也易于阅读(再次,特别是如果您只需阅读一种风格)。我之前已经在嵌入式设备上进行了类似视频的播放。

注意:确保您的视频工具使用了良好的缩放算法,因此24x15像素表示源像素的累积区域而不是简单的点采样,这将导致错误的锯齿伪像。您还可以尝试将一些高斯模糊应用于原始视频,然后再进行大规模缩减,以防止混叠。

参考文献:

AVI文件格式: http://msdn.microsoft.com/en-us/library/windows/desktop/dd318189(v=vs.85).aspx http://yaai.sourceforge.net/yaai/fileformat.html

BMP文件格式: http://en.wikipedia.org/wiki/BMP_file_format

AVI Synth: http://avisynth.nl/index.php/Main_Page

Sony Movie Studio Platinum Trial(用于编码未压缩的AVI文件): http://www.sonycreativesoftware.com/download/trials/moviestudiope