首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#:使用Silverlight FJCore库解码12位精度的JPEG图像?

C#:使用Silverlight FJCore库解码12位精度的JPEG图像?
EN

Stack Overflow用户
提问于 2011-09-22 03:37:51
回答 1查看 1.6K关注 0票数 2

在我的DICOM应用程序中,我正在尝试使用FJCore类库以压缩的C#传输语法解码DICOM图像。

DICOM图像通常以12位精度压缩。当尝试使用原始FJCore源代码解码这样的图像时,我得到了一个异常,提示“不支持编解码器类型”,因为在原始FJCore实现中,只支持SOF0 (基线DCT)和SOF2 (渐进式DCT)帧开始标记。如果我将实现更改为也接受SOF1标记(扩展的Sequential DCT),并以与SOF0帧相同的方式处理SOF1帧,则图像将被解码,但只占8位。

使用修改后的FJCore库解码后,一个典型的12位精度图像现在如下所示:

理想情况下,图像应如下所示:

就我从FJCore实现中所能看出的,图像精度记录在JpegFrame类中,但从未使用过。最初的FJCore实现似乎只完全支持8位精度的灰度图像。

我计划“迎难而上”,并尝试自己扩展FJCore以支持12位精度的灰度图像。但在此之前,我想我应该在StackOverflow中提出这个问题,看看以前是否有人遇到并解决了这个问题?那样的话,我会很高兴知道你是如何解决这个问题的。

首先要感谢大家!

地址: Anders @ Cureos

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-06 01:20:38

我刚刚更新了我自己的JPEG解码器来处理扩展模式,我需要改变的是我的逆DCT。在更改代码之前,输出看起来与上面的示例图像类似。我一直存储来自熵解码的16位系数值,但我的DCT计算破坏了较大的值,因为在进行数学计算时,使用16位整数来保存临时值。我将DCT代码更改为使用32位整数进行计算,这解决了问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7505630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档