FILEJ2KOPTIONS

类型定义结构体_FILEJ2KOPTIONSL_UINTuStructSize;L_BOOLbUseColorTransform;L_BOOLbDerivedQuantization;J2KCOMPRESSIONCONTROLuCompressionControl;L_FLOATfCompressionRatio;L_OFFSETuTargetFileSize;L_UINTuXOsiz;L_UINTuYOsiz;L_UINTuXTsiz;L_UINTuYTsiz;L_UINTuXTOsiz;L_UINTuYTOsiz;L_UINTuXRsiz [J2K_MAX_COMPONENTS_NUM];L_UINTuYRsiz [J2K_MAX_COMPONENTS_NUM];L_UINTuDecompLevel;L_UINTuProgressOrder;L_BOOLbUseSOPMarker;L_BOOLbUseEPHMarker;J2KREGIONOFINTERESTuROIControl;L_BOOLbUseROI;L_FLOATfROIWeight;L_RECTrcROI;L_UINTuAlphaChannelActiveBits;L_BOOLbAlphaChannelLossless;J2KPRECINCTSIZEuPrecinctSize;} FILEJ2KOPTIONS, * pFILEJ2KOPTIONS;

FILEJ2KOPTIONS结构提供了保存jpeg2000文件的信息。

成员

uStructSize

此结构的大小(以字节为单位),用于版本控制。使用sizeof()操作符来计算这个值。

颜色变换设置

bUseColorTransform

标志,指示在压缩之前是否将RGB图像转换为YUV空间。YUV提供更大的压缩和更高的图像质量。可能的值是:

价值 意义
真正的 压缩前转换为YUV空间。(默认)
压缩前不要转换到YUV空间。

一般设置(仅限高级用户)

bDerivedQuantization

标志,指示是使用派生量化还是阐述量化,它决定质量和速度。可能的值是:

价值 意义
真正的 使用派生的量子化。
阐述了量子化。

主要压缩设置

这些选项对压缩比有直接影响。

uCompressionControl

标志,指示如何确定结果压缩。该成员的值决定了应该使用哪个结构成员来确定压缩。可能的值是:

价值 意义
J2K_COMPRESSION_LOSSLESS 无损压缩。
J2K_COMPRESSION_RATIO 根据fCompressionRatio成员的值压缩文件。
J2K_COMPRESSION_TARGETSIZE 根据uTargetFileSize成员中的目标文件大小压缩文件。
J2K_COMPRESSION_QFACTOR 根据L_SaveXXX函数使用的质量因子压缩文件。

fCompressionRatio

值,指示要使用的压缩比。只有当uCompressionControl成员设置为J2K_COMPRESSION_RATIO时,这个值才会被使用。

uTargetFileSize

值,指示目标文件的大小,以字节为单位。这个值仅在uCompressionControl成员设置为J2K_COMPRESSION_TARGETSIZE时使用。

瓷砖大小设置

使用更大的贴图尺寸可以让JPEG 2000压缩引擎找到更多的相似点,从而获得更好的压缩效果。

uXTsiz

一个参考贴图相对于参考网格的宽度。

uYTsiz

参考贴图相对于参考网格的高度。

画布设置(仅限高级用户)

uXOsiz

从参考网格的原点到图像区域左侧的水平偏移量。

uYOsiz

从参考网格的原点到图像区域顶部的垂直偏移量。

uXTOsiz

从参考网格的原点到第一个贴图左侧的水平偏移量。

uYTOsiz

从参考网格的原点到第一个贴图顶部的垂直偏移量。

uXRsiz

保留。

uYRsiz

保留。

小波分解级别设置

uDecompLevel

压缩文件中的分辨率级别数。层数的最大值取决于图像的大小。传递过大的值将导致保存操作失败。从完整的图像分辨率开始,每个分辨率级别在两个维度(宽和高)上都是前一个分辨率的一半。分辨率不是独立存储的,对压缩结果没有重大影响。默认值是5,这在大多数情况下产生最佳压缩比。

发展顺序设置

uProgressOrder

指示进展的顺序。可能的值是:

价值 描述
J2K_LAYER_RESOLUTION_COMPONENT_POSITION [0] Quality-axis秩序。图像开始是模糊的,随着额外数据的解码,图像变得更加清晰和详细。
J2K_RESOLUTION_LAYER_COMPONENT_POSITION [1] Resolution-axis秩序。图像开始很小,然后随着额外数据的解码而变大。通过在文件中保留较低的分辨率来实现较高的压缩比。
J2K_RESOLUTION_POSITION_COMPONENT_LAYER [2] Resolution-axis秩序。图像开始很小,然后随着额外数据的解码而变大。通过在文件中保留较低的分辨率来实现较高的压缩比。
J2K_POSITION_COMPONENT_RESOLUTION_LAYER [3] Position-axis秩序。图像开始是一系列从左上角开始的块。随着更多的数据被解码,图像的其他部分变得可见。空间定位存储的图像数据。
J2K_COMPONENT_POSITION_RESOLUTION_LAYER [4] Color-axis秩序。图像一开始是灰色的。随着更多的数据被解码,颜色会被添加。按颜色通道存储的图像数据,从通道Y开始,然后是U,然后是v。如果使用转换到YUV选项,则RGB的最低解压缩图像级别为灰度。否则,输出只有红色通道。

累进传输设置(仅限高级用户)

这些变量控制后小波代码块的大小。取值范围在2到10之间,两个值的和不超过12。

错误弹性设置

指示是否在“包的开始”和“包头的结束”处包含标记。这些标记有助于检测传输过程中的文件损坏。如果这些标记存在于JPEG2000压缩流中,那么解码器很容易找到包的边界,或者在流错误的情况下检查大小。

bUseSOPMarker

标志,指示是否使用SOP标记。可能的值是:

价值 意义
真正的 使用SOP标记。如果为TRUE,则在任何给定的tile部分中的每个包都将带有一个SOP标记段。SOP标记包括包的大小。
不要使用SOP标记。(默认)

bUseEPHMarker

标志,表示是否使用EPH标记。可能的值是:

价值 意义
真正的 使用EPH记号笔。如果为TRUE,则在任何给定的tile部分中的每个包头都附加一个EPH标记段。
请勿使用EPH记号笔。(默认)

感兴趣的区域设置

bUseROI

标志,指示是否使用感兴趣的区域。可能的值是:

价值 意义
真正的 使用在uROIControl成员中指定的感兴趣的区域。
不要使用感兴趣的区域。如果不想使用感兴趣的区域,则将其设置为FALSE。否则,可能会有显著的压缩和速度性能损失。

uROIControl

标志,指示要使用的感兴趣区域。有关可能值的列表,请参阅J2KREGIONOFINTEREST

价值 意义
J2K_USE_OPTION_RECT 使用FILEJ2KOPTIONS结构的rcROI成员中指定的矩形来定义感兴趣的区域。
J2K_USE_LEAD_REGION 使用LEAD位图区域来定义感兴趣的区域。(任何区域形状都可以;它将被内部的过滤器转换为一个矩形。)

fROIWeight

保留以备将来使用。

rcROI

L_RECT结构,它包含图像中感兴趣区域的边界。

频道设置

uAlphaChannelActiveBits

值,指示如何控制alpha通道的活动位。可能的值是:

价值 意义
1 8位alpha通道的256级将使用简单的阈值转换为值255或0的两个级别。阈值为127,因此所有值> 127将被设置为255,所有值<= 127将被设置为0。
如果alpha通道设置为双电平图像,将得到较好的压缩比。
8 所有256级的8位alpha通道将被压缩。这是默认值。
此选项应用于32位图,否则将不起作用。

bAlphaChannelLossless

标志,指示是否使用无损alpha通道保存J2K/JP2有损映像。可能的值是:

价值 意义
真正的 保存与无损alpha通道。这是默认值。
保存无损耗alpha通道。
合成的图像是32位的。该成员的值控制J2K/JP2有损压缩的alpha通道的压缩类型。
该选项应该在32位图上使用;否则就没有效果。

uPrecinctSize

指定precint大小。有关可能值的列表,请参阅J2KPRECINCTSIZE

该特性在版16或更高版本。

评论

JPEG2000图像格式提供了优越的压缩性能和健壮的文件处理。一些J2K选项可以直接影响压缩性能,而其他选项则主要影响最终文件的大小。关于高级选项的说明继续在下面。

主要选项(上面列出的)包括:

一些将此结构作为参数的函数要求在函数调用之前初始化结构。必须将uStructSize成员设置为结构的总大小(以字节为单位)。使用sizeof()操作符来计算这个值。不需要初始化结构的函数将使用结构的总大小(以字节为单位)作为附加的函数参数。

在FILE_CMW或FILE_TIF_CMW文件中使用此结构:

当对FILE_CMW或FILE_TIF_CMW文件使用此结构时,只需要以下数据成员:

最终的文件大小/压缩比可以通过几种方式确定。根据uCompressionControl成员中设置的值,用户可以设置目标文件的大小、压缩过程中使用的实际压缩比或压缩过程中使用的质量因子。如果uCompressionControl被设置为J2K_COMPRESSION_RATIO,那么使用的压缩是基于fCompressionRatio数据成员中的压缩比。如果uCompressionControl设置为J2K_COMPRESSION_TARGETSIZE,则使用的压缩基于uTargetFileSize数据成员中所需的目标文件大小。如果uCompressionControl被设置为J2K_COMPRESSION_QFACTOR,那么根据传递给SaveXXX函数的QFactor使用压缩。

无损压缩

对于无损压缩,设置uCompressionControl为j2k_compression_loss。

有损压缩量化

有耗压缩的量化有两种类型:标量派生量化和标量阐述量化。

指数/尾数对要么在码流中为每个子带(阐述量化)发出信号,要么仅为低通子带发出信号,并为所有其他子带派生(派生量化)。在衍生量化的情况下,所有指数/尾数对都是从对应于低通子带的单指数/尾数对派生而来的。

子带的量化步长由子带的动态范围计算,使用下式,其中子带的R = bpp:

量化步长= (2(R -指数))*[1 +(尾数/ 2048)]

如果uCompressionControl的值是J2K_COMPRESSION_RATIO, J2K_COMPRESSION_QFACTOR或J2K_COMPRESSION_TARGETSIZE, balphachannelloss的值是TRUE,那么压缩的J2K/JP2文件将有三个有损组件(红色、绿色和蓝色),另外是无损alpha组件。

如果uCompressionControl的值是j2k_compression_loss,那么balphachannelloss的值将被忽略,所有组件都将是无损的。

alpha通道可以使用抖动L_ColorREsBitmap而且L_DynamicBinaryBitmap在保存J2K/JP2文件之前,以防需要更好的alpha通道质量。

瓷砖和画布设置

uXOsiz, uYOsiz, uXTsiz, uYTsiz, uXTOsiz和uYTOsiz结构成员的值用于在图像中创建瓷砖。允许任意大小的贴图。所有的瓷砖都是相同的大小,除了边界瓷砖。每个贴图都可以单独压缩。这可以在程序运行时减少内存使用量,但也可以在tile的边缘生成工件。工件通常随着贴图尺寸的减小而增加。默认情况下,有一个贴图包含整个图像。

定义参考网格的各种参数如下图所示。

参考网格是由索引从(0,0)到(xsize -1, ysize -1)的点组成的矩形网格。参考网格上的“图像区域”由尺寸参数(Xsiz, Ysiz)和(XOsiz, YOsiz)定义。

具体地说,参考网格上的图像区域由位置处的左上角参考网格点(XOsiz, YOsiz)和位置处的右下角参考网格点定义(Xsiz-1 Ysiz-1)


J2K画布对

J2K瓷砖对

发展顺序设置

对于给定的瓷砖部件,数据包包含来自特定层、特定组件、特定分辨率级别和特定区域的所有压缩图像数据。在码流中找到这些包的顺序称为进展顺序。数据包的排序可以沿着四个轴进行:层、组件、分辨率和位置。

包发展顺序 描述
图层分辨率组件位置 当最需要低样本精度时,这种类型的级数可能是有用的,但需要所有组件的信息。
分辨率层组件位置 这种类型的进展在提供所有图像组件的低分辨率级别版本时可能很有用。
分辨率位置组件层 要使用这个级数,XRsiz和YRsiz值必须是每个组件的2的幂。在提供特定空间位置的所有图像组件的低分辨率版本时,这种类型的进展可能很有用。
位置分量解析层 这种类型的级数可能有助于为所有组件中的特定空间位置提供高样本精度。
组件位置解析层 这种类型的级数在为特定图像组件中的特定空间位置提供高精度时可能有用。

选区定义和建议

该特性在版16或更高版本。

区是小波域中的矩形区域,在给定的分辨率和图像分量内,表示图像上的一个空间区域。

它们用于限制JPEG 2000压缩包的大小,并提供随机访问JPEG 2000压缩流的方法。因此,应该像在JPIP应用程序中一样,将它们用于JPEG 2000文件的交互式传输。一般来说,将图像划分成区域比平铺图像效果更好。因此,建议用户将图像压缩为一个贴图,并使用区域来划分空间区域。这将提供更好的压缩比和图像质量。

使用更小的分区尺寸可以更好地访问压缩流,但会增加压缩流的大小。最好使用J2KPRECINCTSIZE_HIERARCHICAL1_128并且不平铺以生成JPEG 2000文件。

要保存或转换为大尺寸的J2K文件(5000行以上),请使用“J2kLargeImageSave”演示。这个演示将保存大的图像,而不会占用过多的内存、磁盘或CPU。与其他演示加载整个图像/位188金宝搏beat体育官网图到内存然后保存它们不同,这个演示每次加载和保存一行。

LEADTOOLS光栅成像C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。