JPEG2000的Kakadu源代码浅析之三:码流解码(一)

本文详细探讨JPEG2000的码流解码过程,从kdu_codestream的构造开始,包括输入流绑定、通道与分量信息获取、输出流配置,以及解码关键步骤。通过kde_flow_control进行tile级别的解码,深入解析了创建kde_flow_control的工作流程,涉及组件、分辨率和带宽的设置,以及图像二维子带变换的递归解码方法。
摘要由CSDN通过智能技术生成

  本章内容可能要涉及一些信号和图像处理的知识,我将尽可能用较为正式的表述,具体内容可以参考相关书籍。JPEG2000信号与信息处理的一些基础知识也可以参考我的笔记:http://lincoln.yu.googlepages.com/sgnotes.zip

  码流解码过程从main函数中的kdu_codestream codestream的构造声明处开始。随即完成对输入流的绑定,和codestream的一些基本设置。然后根据codestream的已有信息获得通道(channel)个数并从每个通道中取得分量的图像尺寸(dimension)信息。接着完成输出流的配置。随后的两个while嵌套就是进行解码的关键步骤。

  解码是基于一个单元类型为kde_flow_control,以tile为索引的指针数组进行的。第一层while进行行扫描,由for循环对每个数组单元调用advance_tile过程判断是否完成。而第二层while是对行内每个单元在各分量上进行解码。从而advance_components和process_components是核心的解码步骤。

  首先是kde_flow_control的创建,一个kde_flow_control对应一个tile,其横向索引由构造函数参数x_tnum指定(纵向由advance_tile成员函数遍历)。以下是创建的主要工作流程:
  1 导入最关键的参数,码流封装单元codestream;
  2 然后从codestream中打开指定tile,调用kd

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值