JPEG
所属分类:图形图象
开发工具:C/C++
文件大小:501KB
下载次数:33
上传日期:2008-10-16 10:07:10
上 传 者:
Terry.B
说明: Intel(R) Integrated Performance Primitives JPEG for Linux*
由IPP优化的高效JPEG Codec
(Intel (R) Integrated Performance Primitives JPEG for Linux* from IPP optimized high-performance JPEG Codec)
文件列表:
JPEG\makefile_sample_jpeg (5998, 2004-01-20)
JPEG\project\evcproject\ARMV4Dbg\evcproject.obj (8905, 2005-01-24)
JPEG\project\evcproject\ARMV4Dbg\evcproject.pch (167100, 2005-01-24)
JPEG\project\evcproject\ARMV4Dbg\evcproject.res (32, 2005-01-24)
JPEG\project\evcproject\ARMV4Dbg\evcproject.sbr (699833, 2005-01-24)
JPEG\project\evcproject\ARMV4Dbg\jpgtab.obj (2678, 2005-01-24)
JPEG\project\evcproject\ARMV4Dbg\jpgtab.sbr (627, 2005-01-24)
JPEG\project\evcproject\ARMV4Dbg\StdAfx.obj (7676, 2005-01-24)
JPEG\project\evcproject\ARMV4Dbg\StdAfx.sbr (699608, 2005-01-24)
JPEG\project\evcproject\ARMV4Dbg\vc60.pdb (69632, 2005-01-24)
JPEG\project\evcproject\evcproject.cpp (501, 2005-01-21)
JPEG\project\evcproject\evcproject.rc (1289, 2005-01-21)
JPEG\project\evcproject\evcproject.vcb (66560, 2005-01-24)
JPEG\project\evcproject\evcproject.vcl (3264, 2005-01-24)
JPEG\project\evcproject\evcproject.vco (54784, 2005-01-24)
JPEG\project\evcproject\evcproject.vcp (7273, 2005-01-21)
JPEG\project\evcproject\evcproject.vcw (548, 2005-01-21)
JPEG\project\evcproject\newres.h (924, 2005-01-21)
JPEG\project\evcproject\resource.h (111, 2005-01-21)
JPEG\project\evcproject\StdAfx.cpp (297, 2005-01-21)
JPEG\project\evcproject\StdAfx.h (944, 2005-01-21)
JPEG\src\arm_linux\image\jpeg\decoder\jpgdec.c (10403, 2004-01-20)
JPEG\src\arm_linux\image\jpeg\encoder\jpgenc.c (15282, 2004-01-20)
JPEG\src\arm_linux\image\jpeg\general\jpgmain.c (11711, 2004-01-20)
JPEG\src\arm_linux\image\jpeg\general\jpgmisc.c (18186, 2004-01-20)
JPEG\src\arm_linux\image\jpeg\general\jpgtab.c (5986, 2004-01-20)
JPEG\src\arm_linux\image\jpeg\_include\sampjpeg.h (7494, 2004-01-20)
JPEG\src\include\sampdefs.h (3249, 2004-01-20)
JPEG\src\arm_linux\image\jpeg\decoder (0, 2005-01-24)
JPEG\src\arm_linux\image\jpeg\encoder (0, 2005-01-24)
JPEG\src\arm_linux\image\jpeg\general (0, 2005-01-24)
JPEG\src\arm_linux\image\jpeg\_include (0, 2005-01-24)
JPEG\src\arm_linux\image\jpeg (0, 2005-01-21)
JPEG\project\evcproject\ARMV4Dbg (0, 2005-01-24)
JPEG\src\arm_linux\image (0, 2005-01-21)
JPEG\project\evcproject (0, 2005-01-24)
JPEG\src\arm_linux (0, 2005-01-21)
JPEG\src\include (0, 2005-01-24)
... ...
Intel(R) Integrated Performance Primitives JPEG Sample Code for Linux*
*******************************************************************************
CONTENTS:
1. Disclaimers
2. Overview
3. Package Contents
4. Directory Structure and File List
5. System Requirements
6. Installation and Build
7. Running the software
8. Intel(R) IPP Functional Coverage
9. Key Module Descriptions
10. Known Limitations
11. Technical Support and Feedback
12. License Definitions
*******************************************************************************
1. Disclaimers
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL(R) PRODUCTS.
NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL
PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S
TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY
WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO
SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING
TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY
PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
Intel products are not intended for use in medical, life saving, life
sustaining, critical control or safety systems, or in nuclear facility
applications. Intel may make changes to specifications and product descriptions
at anytime, without notice.
===============================================================================
2. Overview
The JPEG encoder/decoder sample code supports encoding and decoding JPEG pictures
compatible with CCITT T.81 subsets, which only includes baseline interleave
encoding and decoding. The purpose of JPEG encoder/decoder sample code is to
provide an example to show how to use Intel(R) IPP JPEG primitives to build up
the basic tools of a JPEG encoder/decoder, such as DCT/IDCT,
quantization/dequantization and huffman encoding/decoding
Additional information on this software as well as other Intel software
performance products is available at
http://developer.intel.com/software/products/.
===============================================================================
3. Package Contents
The JPEG encoder/decoder sample code package contains the following:
* Readme file
* Makefile
* Sample code source files and header files
===============================================================================
4. Directory Structure and File List
The following files reside in these directories, where ~ is the directory
chosen as the root of this sample code package:
~ Root path of Intel(R) IPP 4.0 sample code package
makefile_sample_jpeg Make file for the JPEG encoder/decoder sample code
readme_jpeg.txt Readme file
~/src/arm_linux/image/jpeg/
JPEG sample code source file directory
./general/jpgmain.c source file for JPEG main entry function
./general/jpgtab.c source file for tables
./general/jpgmisc.c source file for mixed functions, such as format
parsing functions
./encoder/jpgenc.c source file for JPEG encoder and encoder initialization/free
functions
./decoder/jpgdec.c source file for JPEG decoder and decoder initialization/free
functions
./_include/sampjpeg.h JPEG encoder/decoder header file
~/src/include General header file directory
sampdefs.h General header file
===============================================================================
5. System Requirements
This sample code is targeted for Intel(R) PCA Processors with
Intel(R) Wireless MMX(TM) Technology.
It requires:
Hardware requirements:
* Host machine: An Intel(R) Pentium(R) 4 Processor based PC with 128MB RAM,
or better.
* Target platform: Intel(R) PCA Processors with Intel(R) Wireless MMX(TM)
Technology.
Software requirements:
* Operating system on host machine: Red Hat* Linux* Release 7.2, or higher
version.
* Development tools: iwmmxt_le-gcc 3.3 (MontaVista), glibc 2.3.2 and binutils
2.14 20030612. Red Hat* RPM version 4.0.3 or higher version
* Intel(R) IPP 4.0 for Linux* on Intel(R) PCA Processors with Intel(R) Wireless
MMX(TM) Technology Image Coding Component Library.
===============================================================================
6. Installation and Build
Extract all files in l_ipp-PCA-JPEG_*.tgz to a desired folder. Please
make sure to preserve the directory structure. The files for this sample
will be found in the ./ipp_sample/PCA/JPEG/ folder.
Follow the steps below to build JPEG encoder/decoder application. Before that,
make sure the Intel(R) IPP 4.0 for Linux* on Intel(R) PCA Processors with
Intel(R) Wireless MMX(TM) Technology has already been installed on
the same host machine.
1) Modify makefile_sample_jpeg to make sure the variable PATH_IPP_ROOT is
current Intel(R) Integrated Performance Primitives installation path. With
default settings, the variable should be:
PATH_IPP_ROOT=/opt/intel/ippwmmx40
Modify other toolchain paths if neccessary in this make file.
2) Make the application with command: make -f makefile_sample_jpeg.
Unzip the package with command: unzip jpegsample.zip.
This step is supposed already done.
Follow the steps below to build JPEG encoder/decoder application. Before that,
make sure the Intel(R) Integrated Performance Primitives for the Intel(R)
PXA25x and PXA26x Processors Version 4.0 (Linux) has already been installed on
the same host machine.
1) Modify makefile_sample_jpeg to make sure the variable PATH_IPP_ROOT is current
Intel(R) Integrated Performance Primitives installation path. With default
settings, the variable should be:
PATH_IPP_ROOT=/usr/local/ipp/ippwmmx40b
Modify other toolchain paths if neccessary in this make file.
2) Make the application with command: make -f makefile_sample_jpeg
===============================================================================
7. Running the software
If successfully built, the executable will be generated in path $(PATH_USR_BIN)
defined in the make file, with default name jpeg. The command line format
is:
encoder with high quality:
jpeg -enc inputfile outputfile -h
encoder with low quality:
jpeg -enc inputfile outputfile -l
decoder:
jpeg -dec inputfile outputfile
Simply type "jpeg -help" to invoke help infomation.
===============================================================================
8. Intel(R) IPP Functional Coverage
The JPEG encoder/decoder sample demonstrates how to combine the DCT-quantization,
huffman encoding, huffman decoding, dequantization-IDCT to construct the baseline
JPEG encoder/decoder. Correspondingly, the sample incorporates the following
Intel(R) IPP JPEG coding domain primitives:
Functional Category Primitive Name
Initializaton ippiDCTQuantFwdTableInit_JPEG_8u16u
ippiDCTQuantInvTableInit_JPEG_8u16u
ippiEncodeHuffmanSpecInit_JPEG_8u
ippiDecodeHuffmanSpecInit_JPEG_8u
DCT-Quantization ippiDCTQuantFwd_JPEG_16s
Dequantization-IDCT ippiDCTQuantInv_JPEG_16s
Huffman Encoding ippiEncodeHuffman8x8_Direct_JPEG_16s1u_C1
Huffman Decoding ippiDecodeHuffman8x8_Direct_JPEG_1u16s_C1
Color convertion ippiBGRToYCbCr411LS_MCU_8u16s_C3P3R
ippiYCbCr411ToBGRLS_MCU_16s8u_P3C3R
Please refer to Intel(R) IPP 4.0 for Linux* on Intel(R) PCA Processors with
Intel(R) Wireless MMX(TM) Technology, Reference Manual (Version 4.0)
for the usage of these primitives.
Notes: The Intel(R) IPP functions used in Intel(R) IPP 4.0 sample code is
different from that used for Intel(R) IPP 3.0 sample code, please see
section 10 for details.
===============================================================================
9. Key Module Descriptions
Structures:
1) jpeg_enc_state
Description:
jpeg encoder state structure, which contains picture attibutes,
including picture size and color format, tables for quantization and
huffman encoding. Besides, it also contains the quality requirement
indicator and DC prediction state values.
2) jpeg_dec_state
Description:
jpeg decoder state structure, which contains picture attibutes,
including picture size and color format, tables for dequantization and
huffman decoding. Besides, it also contains DC prediction state values.
Functions:
1) encoder_init_alloc_jpeg()
Location:
jpgenc.c
Description:
JPEG encoder initialization function.
(1) Parse BMP file header.
(2) Convert input data from BGR to YUV format.
(3) Load and initialize tables for quantization and huffman encoding.
(4) Allocate memories for input, output and working buffer.
Calling Procedure:
It's called by main function. It calls read_bmp_file to parse BMP file
header. It calls ippiDCTQuantFwdTableInit_JPEG_16u and
ippiEncodeHuffmanTableInit_JPEG_8u to process the quantization and
huffman encoding tables. It calls ippiBGRToYCbCr411LS_MCU_8u16s_C3P3
to convert color format from BGR to YUV411.
2) encode_jpeg()
Location:
jpgenc.c
Description:
JPEG encoder function.
It encodes the input raw YUV data of a picture into a JPEG file
(1) Write JPEG header.
(2) Do the DCT-quantization.
(3) Do the huffman encoding.
Calling Procedure:
It's called by main function. It calls write_head_information to write
the JPEG header. It calls write_sos_information to write JPEG SOS marker.
It calls ippiDCTQuantFwd_JPEG_16s to do the integrated DCT-quantization.
It calls ippiEncodeHuffman_Direct_JPEG_16s1u to do the huffman encoding.
3) encoder_free_jpeg()
Location:
jpgenc.c
Description:
JPEG encoder free function.
(1) Free the working buffer of the encoder state structure.
(2) Free the input, output buffer.
Calling Procedure:
It's called by main function after the JPEG encoder completes successfully.
4) decoder_init_alloc_jpeg()
Location:
jpgdec.c
Description:
JPEG decoder initialization function.
(1) Parse JPEG header
(2) Load and initialize tables for dequantization and huffman decoding.
(3) Allocat memories for working buffer and input, output buffer.
Calling Procedure:
It's called by main function. It calls read_jpeg_header to parse the JPEG
file header. It calls ippiDCTQuantInvTableInit_JPEG_16u32s and
ippiDecodeHuffmanTableInit_JPEG_8u to initialize the quantization and huffman
decoding table.
5) decode_jpeg
Location:
jpgdec.c
Description:
JPEG decoder function
It decodes the JPEG format stream into BGR raw data
(1) Decode huffman encoded coefficients
(2) Do the dequantization and IDCT transform
(3) Color conversion from YUV to BGR
Calling Procedure:
It's called by main function. It calls ippiDecodeHuffman_Direct_JPEG_1u16s
to decode the huffman encoded coefficient. It calls ippiDCTQuantInv_JPEG_16s
to do the dequantization-IDCT. It calls ippiYCbCr411ToBGRLS_MCU_16s8u_P3C3
to convert YUV data into BGR data.
6) decoder_free_jpeg
Location:
jpgdec.c
Description:
JPEG decoder free function.
(1) Free the working buffer of the decoder state structure.
(2) Free the input, output buffer.
Calling Procedure:
It's called by main function after the JPEG decoder completes successfully.
7) read_bmp_file()
Location:
jpgmisc.c
Description:
BMP parsing function
(1) Parse the JPEG header information.
Calling Procedure:
It's called by encoder_init_alloc_jpeg() to parse the BMP header.
8) write_head_information()
Location:
jpgmisc.c
Description:
JPEG header packing function
(1)Write and packing the information to the JPEG file header.
Calling Procedure:
It's called by function encode_jpeg() to pack the JPEG file header.
9) write_sos_information()
Location:
jpgmisc.c
Description:
JPEG SOS information packing function
(1)Write and packing the information to the JPEG SOS segment.
Calling Procedure:
It's called by function encode_jpeg() to pack the JPEG SOS segment.
10) read_jpeg_header
Location:
jpgmisc.c
Description:
JPEG header parsing function
(1)Read and parsing JPEG header from the JPEG file
Calling Procedure:
It's called by function decoder_init_alloc_jpeg to parsing the JPEG file
header information.
11) read_sos
Location:
jpgmisc.c
Description:
JPEG SOS information parsing function
(1)Parse the SOS information from the JPEG SOS segment.
Calling Procedure:
It's called by function decoder_init_alloc_jpeg to parsing the JPEG SOS
segment information.
===============================================================================
10. Known Limitations
Intel(R) IPP functions updating from Intel(R) IPP 3.0 JPEG sample code
Intel(R) IPP 3.0 Primitives Intel(R) IPP 4.0 Primitives
ippiDCTQuantFwdTableInit_JPEG_16u ippiDCTQuantFwdTableInit_JPEG_8u16u
ippiDCTQuantInvTableInit_JPEG_16u32s ippiDCTQuantInvTableInit_JPEG_8u16u
ippiEncodeHuffmanTableInit_JPEG_8u ippiEncodeHuffmanSpecInit_JPEG_8u
ippiDecodeHuffmanTableInit_JPEG_8u ippiDecodeHuffmanSpecInit_JPEG_8u
ippiEncodeHuffman_Direct_JPEG_16s1u ippiEncodeHuffman8x8_Direct_JPEG_16s1u_C1
ippiDecodeHuffman_Direct_JPEG_1u16s ippiDecodeHuffman8x8_Direct_JPEG_1u16s_C1
ippiBGRToYCbCr411LS_MCU_8u16s_C3P3 ippiBGRToYCbCr411LS_MCU_8u16s_C3P3R
ippiYCbCr411ToBGRLS_MCU_16s8u_P3C3 ippiYCbCr411ToBGRLS_MCU_16s8u_P3C3R
===============================================================================
11. Technical Support and Feedback
To receive support or provide feedback for JPEG encoder/decoder sample code,
please refer to the "Technical Support and Feedback" section of the release
notes provided in the Intel(R) IPP 4.0 for Linux* on Intel(R) PCA Processors with
Intel(R) Wireless MMX(TM) Technology Reference Manual (Version 4.0) product
installation.
===============================================================================
12. License Definitions
By downloading and installing this sample, you hereby agree that the accompanying
Materials are being provided to you under the terms and conditions of the
End User License Agreement for the Intel(R) Integrated Performance Primitives
(Intel(R) IPP) product previously accepted by you.
Intel, Intel IPP, Intel PCA, Intel XScale, and Pentium III are trademarks or
registered trademarks of Intel Corporation or its subsidiaries in the United
States and other countries.
Copyright(C) 2003-2004 Intel Corporation.
近期下载者:
相关文件:
收藏者: