Intel IJL 简明操作

更新时间:2023-06-30 09:14:55 阅读: 评论:0

第一章 准备
一、需要以下的三个库
1. IJL 动态链接库 (IJL15.DLL),
2. IJL 引入库 (IJL15.LIB),
3. IJL 产品推销头文件 (IJL.H).
二、建立IJL应用程序的步骤
1. 在每一个将调用IJL函数的模块中包含头文件IJL.H
2. 在项目中增加IJL15.LIB
3. 编译程序。
第二章 结构描述
现在最多的JPEG模式是基本基线模式和扩展基线模式的连续离散余弦变换。IJL1.5完全支持这两种模式的编码及解码,
一、IJL I/O数据结构体系
1. 内存中含有一个常规的象素buffer.
2. 一个标准的I/O文件包含JPEG bit stream.
3. 一个内存buffer包含一个JPEG bit stream.
二、支持的数据格式
1 Top-down or bottom-up pixel buffers.
Windows, device-independent bitmaps (DIBs) 数据在内存中有两种排列方式 bottom-up and top-downbottom-up DIB, buffer 是从最底行的最左象素开始, 接着是次底行. 而顶行的数据是在buffer 的最后。GDI 使用的Bottom-up DIBtop-down DIB的排列顺序是颠倒的. 最顶行最左侧的象素是buffer王文格的第一个字节,而最底行的象素在buffer的最后。DirectDraw使用top-down DIBsRGB DIBs, 图象的排列方式由 "/en-us/library/ms779712.aspx"BITMAPINFOHEADER结构的成员变量 biHeight 来指示。如 biHeight 是正数, 图象是bottom-up. 如果 biHeight是负数, 图象是top-downYUV 格式的DIBs 总是top-down, biHeight 的符号被忽略。
2如何调整生物钟、象素缓冲区与自定义行尾填充。
3、使用普通象素缓冲之内的一个矩形。
4、从一个大的JPEG 图象中指定矩形解码。
5JPEG文件交换格式(JFIF) 的编码和解码
IJL 提供JFIF files 的解码,JFIF 规格版本是1.01 and 1.02。编码是JFIF version 1.01.IJL 也支持解码嵌入式的未压缩的缩略图,使用1 or 3 bytes/pixel 适应JFIF versions 1.01 and 1.02. 压缩的缩略图未被支持。
数据精度必须是每颜色通道 8-bits
三、JPEG属性和数据存贮
IJL JPEG 属性” 包括全局的和图象属性的JPEG 信息。控制结构确定I/O 特性的处理选项,象二次抽样和颜色转换需求。
IJL 使用 JPEG_CORE_PROPERTIES 结构存放 JPEG 属性数据。这个结构被描述为两个部分,第一部份由一组封包的共用库参数组成,另一部份由低级的嵌入的结构组成。Figure 3-2 附件B - Data Structure and Type Definitions).
用户必须尊循以下的两个JPEG_CORE_PROPERTIES规则:
1. 用户必须提供(allocate) JPEG_CORE_PROPERTIES 数据结构。
2. 同样的 JPEG_CORE_PROPERTIES 数据结构可能被一连串的JPEG encodings /decodings 在初始化时和清理时再生。
JPEG_PROPERTIES 是低级的数据结构且它包含一个在JPEG_CORE_PROPERTIES 中每个高级数据结构的复本及一些附加字段。IJL内部使用JPEG_PROPERTIES, 而不是JPEG_CORE_PROPERTIES, 所以这个结构隔离了内部的变量。
对于高级用户醉驾撞死人JPEG_PROPERTIES 数据结构可能会使用一些扩充的接口性能。例如:用户可能要自定义的Huffman 表或 量化表(quantization tables 直接至JPEG_PROPERTIES 而越过默认表(Chapter 7, Advanced IJL Features 有更多的信息)
JPEG_CORE_PROPERTIES and JPEG_PROPERTIES数据结构的默认值在头文件IJL.H中的注释中
四、多线程支持
JPEG_CORE_PROPERTIES 被设计在局部为单线程。是 锁定 的无参数将允许多个线程访问相同的 JPEG_CORE_PROPERTIES 结构。 但是,所有的实现细节,IJL 允许多个 JPEG_CORE_PROPERTIES 存储和代码访问由多个线程。
第三章 接口详述
IJL 提供标准C的函数,其模仿简单的读/写栈来建立JPEG_CORE_PROPERTIES雨后散步数据结构。
JPEG_CORE_PROPERTIES 的内部函数负责初始化、释放内存,及与IJL交换数据及参数。
IJL函数调用失败时返回一个错误码;调用成功返回的是正的(IJL_OK, IJL_INTERRUPT_OK, IJL_ROI_OK) 成功码。了解详情参看 Appendix B - Data Structure and Type Definitions 转换错误码至一个文本描述,使用函数 ijlErrorStr()
函数 ijlGetLibVersion() 返回IJL库的版本及其它相关信息。
注意,ijlErrorStr()ijlGetLibVersion() 函数返回的是一个指向静态变量的指针,所以应用程序不需要释放这些指针。
The Intel® JPEG Library Application Programming Interface
/
/ 初始化 IJL.
IJLERR ijlInit (JPEG_CORE_PROPERTIES *jcprops);
// Clean up the IJL.
IJLERR ijlFree (JPEG_CORE_PROPERTIES *jcprops);
// U the IJL to read data from a buffer or a file.
IJLERR ijlRead (JPEG_CORE_PROPERTIES *jcprops, IJLIOTYPE iotype);
// U the IJL to write data into a buffer or a file.
IJLERR ijlWrite (JPEG_CORE_PROPERTIES *jcprops, IJLIOTYPE iotype);
// Return the version number of the IJL.
const IJLibVersion* ijlGetLibVersion( );
// Return a pointer to a string with error description.
const char* ijlErrorStr(IJLERR code);
此段描述设计及执行一些IJL的共用特性,及一些例子。
一、初始化
在使用之前,IJL必须初始化,使用ijlInit( )完成初始化。在每一个分配JPEG_CORE_PROPERTIES 斑马的英语怎么读数据结构的时候,只能进行一次初始化。
如果一个程序需要调用多个编、解码函数,应用程序需要在任一调用之前调用ijlInit( )更多的初始化需要在每个编、解码调用之间进行。
使用ijlFree( )释放 JPEG_CORE_PROPERTIES 且必须与初始化一一对应。
二、释放
ijlFree( )释放内存及相关的系统资源。
严字成语
三、读数据
使用ijlRead(JPEG_CORE_PROPERTIES *jcprops, IJLIOTYPE iotype)函数访问JPEG的压缩数据。第二个参数用来指定在解码期间的JPEG的数据单元(如:一个文件或一个缓存区),访问模式(mode of access,及缩放比例。
有如下两种约定:XXXX 代表访问模式
1. IJL_JBUFF_XXXX (表示JPEG数据是一个缓存).
2. IJL_JFILE_XXXX(表示JPEG数据是一个标准文件).
读数据时,访问模式必须是: READPARAMS, READHEADERREADENTROPY, READWHOLEIMAGE,READONEHALF READONEQUARTERREADONEEIGHTH READTHUMBNAIL
IJLIOTYPE
描述
IJL_JXXXX_READPARAMS
表示读JPEG 参数 如:高,宽,通道数量,二次抽样等。,
例如如下的分析:
SOI | [tables/misc] like APPn and DQT |
SOF | [tables/misc] like DHT | stops at SOS
Note: bit stream must start with SOI marker.
IJL_JXXXX_READHEADER
表示读一些特征数据,如:霍夫曼表,量化表,其它杂项。
例如:
SOI | [tables/misc] | EOI (or stops at SOF or SOS)
Note: bit stream must start with SOI marker.
IJL_JXXXX_READENTROPY
表示读压缩图片的格式。与 READWHOLEIMAGE相同,除了位流可能包含的特征表。.
For example
SOI | [tables/misc] | SOF [tables/misc] like DHT | SOS | EOI
Note: in this ca only (READENTROPY), APP0 gments are skipped over.
文化建设实施方案
IJL_JXXXX_READWHOLEIMAGE
表示读压缩图片数据的交换格式,如:整个的JPEG位流。
例如:
SOI | [tables/misc] like APPn and DQT |
SOF [tables/misc] like DHT | SOS | EOI
IJL_JXXXX_READONEHALF
图象解码比例是½
(See READENTROPY).
IJL_JXXXX_READONEQUARTER
图象解码比例是¼.
(See READENTROPY).
IJL_JXXXX_READONEEIGHTH
图象解码比例是1/8
(See READENTROPY).
IJL_JXXXX_READTHUMBNAIL
试图解码在数据流中嵌入的缩略图
(See READPARAMS).
READPARAMS 被用来确定JPEG 的高和宽,用以分配输出的缓存或显示引擎。然后,读其余的数据使用 READWHOLEIMAGE or READENTROPY

本文发布于:2023-06-30 09:14:55,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1061372.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:解码   数据   模式   图象   函数   使用   数据结构
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图