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.

近期下载者

相关文件


收藏者