【发布时间】:2010-12-03 02:44:49
【问题描述】:
我想将 Writablebitmap 转换为 Jpeg 流,并且似乎没有平台支持,而且我可以在网上看到一堆开源编码器库,我想听听你的意见,哪个是推荐的性能和可靠性。
【问题讨论】:
标签: c# silverlight encoding
我想将 Writablebitmap 转换为 Jpeg 流,并且似乎没有平台支持,而且我可以在网上看到一堆开源编码器库,我想听听你的意见,哪个是推荐的性能和可靠性。
【问题讨论】:
标签: c# silverlight encoding
我对@987654321@ 有很好的体验。 我前段时间也写过博客http://kodierer.blogspot.com/2009/11/convert-encode-and-decode-silverlight.html
【讨论】:
我在 FJCore 和 LibJpeg.Net 上都花了很多时间。 FJCore 更易于使用,因为它是从 Java 移植过来的,并且它的对象模型与您期望在 C# 中看到的类似。然而,LibJpeg.NET 是迄今为止更完整的库(它基于非正式的规范 libjpeg),而且速度也明显更快。举一个例子,FJCore 使用了一种逆离散余弦变换的简单实现,它涉及到每个 8x8 块的 1024 次乘法和额外的 1024 次加法。相比之下,LibJpeg.NET 使用高性能 AAN 算法,它只需要 144 次乘法和 464 次加法(参见http://datasheets.chipdb.org/Intel/x86/MMX/MMX/AP528.HTM#AAN Algorithm)。此外,FJCore 在使用内存方面效率相当低,不断地重新创建可以轻松重用的对象。同时,由于 FJCore 的优化较少,因此更容易破解。
对于我当前的项目(涉及为 Silverlight 编写视频编解码器),我使用 FJCore 作为起点,修复了它的一大堆低效率问题,用来自 LibJpeg.NET 的算法替换了它的 IDCT 算法,最后得到了一些东西给了我大约 10 倍的原始性能。
【讨论】:
Ken 为什么不将更新后的代码提交到 FJCore 源?
【讨论】: