【问题标题】:Best Jpeg Encoder for Silverlight 4.0Silverlight 4.0 的最佳 Jpeg 编码器
【发布时间】:2010-12-03 02:44:49
【问题描述】:

我想将 Writablebitmap 转换为 Jpeg 流,并且似乎没有平台支持,而且我可以在网上看到一堆开源编码器库,我想听听你的意见,哪个是推荐的性能和可靠性。

【问题讨论】:

    标签: c# silverlight encoding


    【解决方案1】:

    我对@9​​87654321@ 有很好的体验。 我前段时间也写过博客http://kodierer.blogspot.com/2009/11/convert-encode-and-decode-silverlight.html

    【讨论】:

    • 非常感谢您的博客,我在 FJCore 中使用了 EncodeJpeg() 方法
    【解决方案2】:

    我在 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 源吗?另外,根据您在这两个库中的经验,在质量和压缩方面,您认为哪个更好?
    • 当我在上面的回答中使用“hack”一词时,我不是在开玩笑。虽然我试图不破坏原始 FJCore 库中的任何内容,但我主要关心的是修改它以在我的特定 Motion JPEG 样式视频编解码器中工作,而不是使其易于其他人或其他情况下使用。也就是说,请参阅此答案 (stackoverflow.com/questions/1773330/…) 以获取指向我修改后代码的较早版本的链接。
    • 嗨,Ken,我目前正在从我的网络摄像头应用程序中获取 10 fps,并且我正在使用 FJcore 进行编码。我不确定如何将编码帧组合到 mjpeg 视频中。我尝试将编码帧中的字节顺序添加到流中以将其保存在磁盘上,但无济于事。你能指出我正确的轨道吗?谢谢。
    • 我从未真正尝试过让正式的 MJPEG 文件格式正常工作,所以恐怕我帮不了你。 (在我的应用程序中,我同时控制录制和播放。)我怀疑不仅仅是将帧一个接一个地放置到文件流上,但我不太确定。请参阅维基百科 MJPEG 文章 (en.wikipedia.org/wiki/Motion_JPEG) 和将其存储在 AVI 容器中的 MS 定义 (fileformat.info/format/bmp/spec/…)。希望这会有所帮助。
    • 我正在尝试使用在您的链接和msdn.microsoft.com/en-us/library/dd318189(v=vs.85).aspx 中找到的编码“JPEG 到 JPEG AVI 文件格式”。我也在测试 LibJpeg.Net 但遇到问题,你能给我一些建议吗?谢谢!
    【解决方案3】:

    Ken 为什么不将更新后的代码提交到 FJCore 源?

    http://code.google.com/p/fjcore/

    【讨论】:

    • 抱歉,刚刚发现这个。我可能还会这样做,但我的大部分修改都是朝着与我的整体解决方案集成的方向发展,而不是朝着普遍有用和普遍适用的变化方向发展。我可能需要几天时间才能将普遍适用的更改移植到 FJCore 库。这是我想做的事情,但我目前的创业公司让我很忙:-)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 2012-11-24
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多