JPEG2000标准中的Precinct(围地、子区)的定义和划分

JPEG2000标准将图像按颜色空间划分为分量,切片和分辨率。在切片内,通过分辨率、子带和区进行划分。区的大小定义为(2PPx, 2PPy),并根据分辨率r的坐标(trx0, try0)至(trx1-1, try1-1)进行划分。在非最低分辨率下,每个区被划分为编码块,尺寸为2xcb'*2ycb',用于位平面、MQ编码等。区的划分有助于数据包化,减少传输错误影响,但可能增加系统开销并降低压缩效率。" 132177403,19625764,Matlab多子群改进海洋捕食者算法优化,"['算法', '开发语言', 'matlab', '优化']
摘要由CSDN通过智能技术生成

  JPEG2000标准中的Precinct(围地、子区)的定义和划分

       JPEG2000标准对于图像区域的划分还是比较复杂的。对于一副彩色图像,JPEG2000把它按颜色空间划分为分量(component),按图像划分为切片(tile),在切片里面划分为分辨率(resolution)、子带(band)、区(precinct)。

       切片、分辨率、子带还是比较好理解的,因为n级小波变换后就由n+1个分辨率,每个分辨率有3个子带(除去最低分辨率只有1个子带)。但区的划分和实现就有点麻烦了,官方文件ISO/ISE15444也没说清楚。经查阅有关资料和代码,原来如此。。。

       在JPEG2000标准中,区的划分是对特定的切片、分量和分辨率进行的。比如说我们定义的区大小为(2PPx,2PPy),将分辨率r划分如图1所示,其中分辨率r的原点是(trx0,try0),右下角是(trx1-1,try1-1)。

图1

       要注意到,虽然我们说得分辨率r划分为3个子带(最低分辨率为1个子带),但实际上我们的分辨率是一个矩形,对

Changes from version 2.2.2 to version 2.2.3 ------------------------------------------- * Extremely minor changes to avoid mixed use of formatted and unformatted calls to "ostream" objects. These appear to excite a bug in GCC version 3.0. The only file affected is "params.cpp" in "coresys/parameters". Changes from version 2.2.1 to version 2.2.2 ------------------------------------------- Note: none of these have any impact whatsoever on executable code or DLL's. * Renamed the "core" directory as "coresys". A trivial change and my appologies for those whom this might adversely affect. However, the use of the name "core" was causing some people difficulties, since it is identical to the name of a Unix core dump file. * Made the Linux MMX-optimized functions "extern C" instead of "extern", so as to avoid problems caused by different name mangling conventions between various versions of gcc. * Eliminated multi-line comments from assembler files so as to avoid problems created by earlier versions of the gnu assembler. Changes from version 2.2 to version 2.2.1 ----------------------------------------- * Replaced the C++ I/O routines used for image and compressed data transfers with ANSI C I/O functions. This was motivated by the fact that the new-style ANSI C++ I/O package is unbelievably slow, at least as implemented in Microsoft's Visual C++ compiler. The change has no impact whatsoever on the Kakadu core system; it affects only the implementation of a few application level objects -- the core system abstracts all such I/O considerations through interface classes which are implemented by applications. Everything now runs a little faster than it did in version 2.1 and quite a bit faster than it did in the first release of version 2.2. * Made provision for compiling under versions of GCC prior to version 3.0. To use this, you should define GCC_VERSION_LESS_THAN_3. Changes from version 2.1 to version 2.2 --------------------------------------- * Extensive support for ROI (Region of Interest) specification at encode time (see "kakadu.pdf" for more on this). * Migrated from the old-style C++ iostream package to the new standard iostream package -- minimal use of "using namespace std" and never used in common header files, so this should enhance namespace protection and portability. * Added AT&T style versions of the small amount of Pentium assembly code to enable compilation of a high speed version under GCC as well as MSVC. * Some minor bug fixes. Changes from version 2.0.2 to version 2.1 ----------------------------------------- * Extensive support for working with the JP2 file format. The "kdu_show" application demonstrates the capabilities required of a conformant JP2 reader: palette mapping; interpolation of components to a common resolution; application of registration offsets in the CRG marker segment; and colour conversion to an appropriate rendering space (sRGB here). The "kdu_region_decompressor" object provides extensive support for general purpose interactive rendering applications, performing all of the above tasks in a platform independent manner. * It is now possible to directly control rate-distortion slope thresholds used in the construction of quality layers. This capability may also be used to significantly increase compression speed, if a suitable threshold is known, since the encoder then incrementally predicts the point at which there is no point in coding further coding passes. * A number of improvements to the "kdu_show" application, including the ability to arbitrarily zoom into images. * A number of minor bug fixes, including one important bug reported by Aaron Deever of Kodak, and a bug which occasionally manifested itself in the incremental rate prediction heuristic (reported by Jim Andrew of CISRA). * Improved documentation. Changes from version 2.0.1 to version 2.02 ------------------------------------------ * A PDF document (documentation.pdf) has been prepared to guide the new user into some of the more important aspects of the Kakadu system. The first draft is included here. * A very simple compression example and a very simple decompression example have been added to assist developers in familiarizing themselves with the Kakadu system -- the existing demo apps provide perhaps too much functionality to be quickly understood. * A full BIBO (Bounded Input Bounded Output) numerical analysis of the DWT and other processing steps is used to establish the best utilization of limited precision sample data representations. The new version should not be able to fall prey to numerical overflow or underflow difficulties under any circumstances (this could just have been possible with the last version). It also provides slightly higher accuracy. * The automatic heuristic for generating quality layer rate targets has been substantially improved. * A number of minor bugs/limitations were corrected, although these had not manifested themselves in any real examples. Changes from version 2.0 to version 2.01 ---------------------------------------- * One line change in each of "kdu_expand.cpp" and "kdu_compress.cpp" to correct a minor rare bug in these demo applications. * Minor changes in "kdu_show.cpp" to correct a rare bug and improve the user interface in regard to image rotation. * Four lines added to each of "encoder.cpp" and "decoder.cpp" to fix a minor memory leak.
根据引用的资料,pdf预览模糊的问题可能是由于pdfjs版本的问题引起的。如果你使用的是1.9.523版本,可以考虑直接升级到最新版本或者2.x.x以上的版本来解决这个问题。另外,如果你不想升级版本,也可以尝试修改pdf.worker.js文件,具体的解决方法是在"precinct.zeroBitPlanesTree = zeroBitPlanesTree"这行代码下面加上以下代码: for (let l = 0; l < layerNumber; l++) { if (readBits(1) !== 0) { throw new JpxError("Invalid tag tree"); } } 引用提到了一个类似的问题,即上传的pdf文件在预览时模糊不清。如果你需要提高放大后的清晰度,可以尝试使用一些提升清晰度的方法,如使用html2Canvas和jsPDF等工具将网页内容转换为高清的pdf文件进行预览。 引用提到了使用vue实现pdf导出的问题,如果你想要将页面导出为pdf格式,可以创建一个htmlToPdf.js文件,并将其放在指定位置,例如'src/utils/htmlToPdf'。然后可以使用html2Canvas和jsPDF等工具来实现页面导出为pdf格式的功能。 综上所述,如果你遇到pdf.js预览模糊的问题,可以考虑升级pdfjs版本或者修改源码。另外,你也可以尝试使用html2Canvas和jsPDF等工具来提高pdf文件的清晰度。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [解决pdfjs预览pdf失真(花屏)问题](https://blog.csdn.net/weixin_45032067/article/details/126399662)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [pdf.js清晰度提升办法](https://blog.csdn.net/weixin_55027548/article/details/124965344)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [vue实现pdf导出解决生成canvas模糊等问题(推荐)](https://download.csdn.net/download/weixin_38562026/13204130)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值