mpeg4_decoder

所属分类:Linux/Unix编程
开发工具:Unix_Linux
文件大小:40KB
下载次数:63
上传日期:2006-02-23 10:41:55
上 传 者arsen_mmx
说明:  Linux下的基于intel的ipp库的MPEG4解码程序源码,嵌入式开发,适用PXA270开发板
(Linux-based Intel's ipp for MPEG4 decoding procedures source, embedded development, application development board PXA270)

文件列表:
mpeg4_decoder\doc (0, 2006-02-22)
mpeg4_decoder\makefile_sample_mpeg4_dec (9091, 2005-09-29)
mpeg4_decoder\src\arm_linux\include\sampdefs.h (3249, 2005-09-29)
mpeg4_decoder\src\arm_linux\include (0, 2006-02-22)
mpeg4_decoder\src\arm_linux\video\mpeg4\decoder\mp4dblck.c (22834, 2005-09-29)
mpeg4_decoder\src\arm_linux\video\mpeg4\decoder\mp4dbuff.c (7209, 2005-09-29)
mpeg4_decoder\src\arm_linux\video\mpeg4\decoder\mp4dinit.c (20671, 2005-09-29)
mpeg4_decoder\src\arm_linux\video\mpeg4\decoder\mp4dmain.c (7063, 2005-09-29)
mpeg4_decoder\src\arm_linux\video\mpeg4\decoder\mp4dmblk.c (26627, 2005-09-29)
mpeg4_decoder\src\arm_linux\video\mpeg4\decoder\mp4dpars.c (22760, 2005-09-29)
mpeg4_decoder\src\arm_linux\video\mpeg4\decoder\mp4dtble.c (3064, 2005-09-29)
mpeg4_decoder\src\arm_linux\video\mpeg4\decoder\mp4dutil.c (14331, 2005-09-29)
mpeg4_decoder\src\arm_linux\video\mpeg4\decoder\mp4dvops.c (15520, 2005-09-29)
mpeg4_decoder\src\arm_linux\video\mpeg4\decoder (0, 2006-02-22)
mpeg4_decoder\src\arm_linux\video\mpeg4\_include\sampmp4.h (24221, 2005-09-29)
mpeg4_decoder\src\arm_linux\video\mpeg4\_include (0, 2006-02-22)
mpeg4_decoder\src\arm_linux\video\mpeg4 (0, 2006-02-22)
mpeg4_decoder\src\arm_linux\video\_include\sampvc.h (2416, 2005-09-29)
mpeg4_decoder\src\arm_linux\video\_include (0, 2006-02-22)
mpeg4_decoder\src\arm_linux\video (0, 2006-02-22)
mpeg4_decoder\src\arm_linux (0, 2006-02-22)
mpeg4_decoder\src (0, 2006-02-22)
mpeg4_decoder (0, 2006-02-22)

September 7, 2005 Intel(R) Integrated Performance Primitives Version 5.0 MPEG-4 Video Decoder Sample Code for Linux* on Intel(R) Personal Internet Client Architecture Processors ================================================================ CONTENTS: 1. Overview 2. Package Contents 3. Directory Structure and File List 4. System Requirements 5. Installation and Build 6. Running the Software 7. Intel IPP Functional Coverage 8. Key Module Descriptions 9. Known Limitations 10. Technical Support and Feedback 11. License Definition 12. Disclaimer and Legal Information ================================================================ 1. Overview The MPEG-4 video decoder sample code supports a subset of video streams compatible with ISO/IEC 14496-2 (2nd edition 2001-12-01) MPEG-4 simple profile, and does not support Error Resilience and Short Header. The purpose of MPEG-4 video decoder sample code is to provide an example to show how to use Intel(R) Integrated Performance Primitives (Intel(R) IPP) Video Coding primitives to build up the basic visual tools of an MPEG-4 video decoder, including I-VOP, P-VOP, AC/DC prediction, 4-MV and UMV. Additional information on this software as well as other Intel software performance products is available at http://developer.intel.com/software/products/. ================================================================ 2. Package Contents The MPEG-4 video decoder sample code package contains the following: * Readme file * Makefile * Sample code source files and header files ================================================================ 3. 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 5.0 sample code package makefile_sample_mpeg4_dec Make file for MPEG-4 video decoder sample code ~/doc readme_mpeg4_dec.txt Readme file ~/src/arm_linux/video/mpeg4/decoder MPEG-4 sample code source file directory mp4dmain.c Source file for MPEG-4 video decoder entry function mp4dinit.c Source file for decoder initialization functions mp4dpars.c Source file for stream syntax parsing functions mp4dbuff.c Source file for stream buffer processing functions mp4dvops.c Source file for VOP or frame decoding functions mp4dmblk.c Source file for macroblock decoding functions mp4dblck.c Source file for block decoding functions mp4dtble.c Source file for constant tables mp4dutil.c Source file for utility functions ~/src/include General header file directory sampdefs.h General header file ~/src/arm_linux/video/_include Video shared header file directory sampvc.h Video shared header file ~/src/arm_linux/video/mpeg4/_include MPEG-4 video decoder header file directory sampmp4.h MPEG-4 video decoder header file ================================================================ 4. System Requirements This sample code is targeted for Intel(R) Personal Internet Client Architecture (PCA) Processors with Intel(R) Wireless MMX(TM) Technology. It requires: Hardware requirements: * Host PC: An Intel(R) Pentium(R) 4 processor 1.5 GHz, with 512 MB RAM, or greater * Target platform: platforms that support Intel PCA Processors with Intel Wireless MMX technology, such as the Intel(R) PXA27x Processor Development Kit Software requirements: * Operating system on host machine: Red Hat* Linux* Release 7.2, or higher version * Development tools: -- iwmmxt_le-gcc 3.3.1 (MontaVista), glibc 2.3.2 and binutils 2.14 20030612 -- Red Hat* RPM version 4.0.3 or higher version * Intel IPP 5.0 for Linux on Intel PCA Processors with Intel Wireless MMX Technology Image Coding Component Library ================================================================ 5. Installation and Build Extract all files in l_ipp-PCA-MPEG4-decode_*.tgz to a desired folder. Please make sure to preserve the directory structure. The files for this sample are in the ./ipp_sample/PCA/MPEG4-decode/ folder. Follow the steps below to build the MPEG-4 video decoder application. Before you begin, make sure the Intel IPP 5.0 for Linux on Intel PCA Processors with Intel Wireless MMX Technology has already been installed on the same host machine. 1) Modify makefile_sample_mpeg4_dec to make sure the variable PATH_IPP_ROOT is the current Intel Integrated Performance Primitives installation path. The default installation path should be: PATH_IPP_ROOT=/opt/intel/ipp/5.0/pca_wmmx In the given make file, the path is set the same as user root path: PATH_IPP_ROOT=$(PATH_USR_ROOT) Modify other toolchain paths if necessary in this make file. 2) Make the application with command: make -f makefile_sample_mpeg4_dec ================================================================ 6. Running the Software If successfully built, the executable will be generated in the path $(PATH_USR_BIN) defined in the make file, with the default name mpeg4dec. The command line format is: mpeg4dec inputfile outputfile Simply type mpeg4dec to invoke help information. ================================================================ 7. Intel IPP Functional Coverage The MPEG-4 video decoder sample demonstrates how to combine the I-VOP/P-VOP Decoding, Motion Vector Decoding, Motion Compensation, AC/DC Prediction, IDCT, Inverse Quantization, VLC Decoding to construct the baseline MPEG-4 video decoder. Correspondingly, the sample incorporates the following Intel IPP Video Coding Domain primitives: Functional Category Primitive Name IDCT ippiDCT8x8Inv_Video_16s_C1I ippiDCT8x8Inv_Video_16s8u_C1R AC/DC Prediction ippiPredictReconCoefIntra_MPEG4_16s Inverse Quantization ippiQuantInvIntra_MPEG4_16s_I ippiQuantInvInter_MPEG4_16s_I VLC Decoding ippiDecodeVLCZigzag_IntraDCVLC_MPEG4_1u16s ippiDecodeVLCZigzag_IntraACVLC_MPEG4_1u16s ippiDecodeVLCZigzag_Inter_MPEG4_1u16s Motion Compensation ippiMCBlock_RoundOff_8u ippiMCBlock_RoundOn_8u ippiMCReconBlock_RoundOn ippiMCReconBlock_RoundOff Motion Vector Decoding ippiDecodePadMV_PVOP_MPEG4 ippiLimitMVToRect_MPEG4 Frame Expansion ippiExpandFrame_H263_8u Please refer to the Intel Integrated Performance Primitives on Intel Personal Internet Client Architecture Processors Reference Manual (Version 5.0) for the use of these primitives. ================================================================ 8. Key Module Descriptions Structures: 1) mp4_dec_state Description: MPEG-4 video decoder general state structure, which contains parsed semantic information on Video Object (VO), Video Object Layer(VOL) and Video Object Plane(VOP) level as well as working buffers. It is used to decode all the MPEG-4 frames successively. 2) mp4_dec_vop_infor Description: MPEG-4 video decoder high-level state structure, which contains parsed semantic information on Video Object Plane, MacroBlock and Block level as well as the working buffer passed from the decoder general state structure. It is used to decode all the Blocks of one individual MPEG-4 frame. Functions: 1) decoder_init_alloc_mpeg4() Location: mp4dinit.c Description: MPEG-4 video decoder initialization function. (1) Parses the VO and VOL syntax information. (2) Allocates the working buffer and initializes the decoder general state structure accordingly. (3) Locates the following 24-bit sync code to start decoding. Calling Procedure: It's called from the main function before decoding the first frame and calls to parse_voandvol_header_mpeg4() to parse VO and VOL information and get_working_buffer_mpeg4() to allocate the decoder working buffer. 2) decode_mpeg4() Location: mp4dvops.c Description: MPEG-4 frame decoding function. (1) Locates the following 24-bit sync code to guarantee a complete frame of bitstream has been loaded into the buffer. (2) Parses VOP syntax information. (3) Decodes one frame or VOP. (4) Updates decoder general state structure. Calling Procedure: It's called from the main function and calls to parse_vop_header_mpeg4() to parse the VOP information and decode_ivop_mpeg4() or decode_pvop_mpeg4() to decode frame according to the current vop coding type. 3) decoder_free_mpeg4() Location: mp4dinit.c Description: MPEG-4 video decoder free function. Frees the working buffer of the decoder general state structure. Calling Procedure: It's called from the main function after all the frames have been decoded and does not call to any lower-level functions. 4) decode_ivop_mpeg4() Location: mp4dvops.c Description: MPEG-4 IVOP decoding function. (1) Initializes MPEG-4 decoder high-level state structure (2) Loops to decode each MacroBlock in the IVOP in zigzag order. Calling Procedure: It's called from decode_mpeg4() if the frame is IVOP and calls to init_vop_dec_infor_mpeg4() to initialize decoder high-level state and decode_mb_ivop_mpeg4() to decode each MacroBlock in the IVOP. 5) decode_pvop_mpeg4() Location: mp4dvops.c Description: MPEG-4 PVOP decoding function. (1) Initializes MPEG-4 decoder high-level state structure. (2) Loops to decode each MacroBlock in the PVOP in zigzag order. Calling Procedure: It's called from decode_mpeg4() if the frame is PVOP and calls to init_vop_infor_dec_mpeg4() to initialize decoder high-level state and decode_mb_pvop_mpeg4() to decode each MacroBlock in the PVOP. 6) decode_mb_ivop_mpeg4() Location: mp4dmblk.c Description: MPEG-4 Macroblock in IVOP decoding function. (1) Parses MacroBlock syntax information. (2) Decodes this intra MacroBlock texture data. Calling Procedure: It's called from decode_ivop_mpeg4() and calls to parse_mb_mpeg4() to parse the MacroBlock information and decode_intra_mb_mpeg4() to decode the texture data of this MacroBlock. 7) decode_mb_pvop_mpeg4() Location: mp4dmblk.c Description: MPEG-4 Macroblock in PVOP decoding function. (1) Parses MacroBlock syntax information. (2) Decodes this intra or inter MacroBlock texture data. Calling Procedure: It's called from decode_pvop_mpeg4() and calls to parse_mb_mpeg4() to parse the MacroBlock information and decode_intra_mb_mpeg4() or decode_inter_mb_mpeg4() to decode the texture data of this MacroBlock according to its derived type. 8) decode_intra_mb_mpeg4() Location: mp4dmblk.c Description: MPEG-4 intra MacroBlock decoding function. (1) Decodes four luminance blocks coefficients. (2) Decodes two chrominance blocks coefficients. Calling Procedure: It's called from decode_ivop_mpeg4() or decode_pvop_mpeg4() if the MacroBlock is intra. It calls to decode_block_intradc_mepg4() or decode_block_intradcac_mpeg4() to decode each block according to whether the block has only intra DC transform coefficient in the bitstream. 9) decode_inter_mb_mpeg4() Location: mp4dmbck.c Description: MPEG-4 inter MacroBlock decoding function. (1) Motion vector decoding and limitation for luminance blocks. (2) Decodes four luminance blocks coefficients and motion compensation. (3) Motion vector look up and limitation for chrominance blocks. (4) Decodes two chrominance blocks coefficients and motion compensation. Calling Procedure: It's called from decode_pvop_mepg4() if the MacroBlock is inter. It calls to decode_block_inter_mpeg4() to decode each block if it has any transform coefficients in the bitstream. It calls to ippiDecodePadMV_PVOP_MPEG4() to perform motion vector decoding, calls to ippiLimitMVToRect_MPEG4() to perform motion vector limitation, calls to ippiMCBlock_RoundOn_8u()/ippiMCBlock_RoundOff_8u() or ippiMCReconBlock_RoundOn()/ippiMCReconBlock_RoundOff() to perform motion compensation according to the rounding control status and the coded block pattern. 10)decode_block_inter_mpeg4() Location: mp4dblck.c Description: MPEG-4 inter block decoding function. (1) VLC decoding of inter DC and AC coefficients (2) Inverse quantization (3) IDCT Calling Procedure: It's called from decode_inter_mb_mpeg4() if the block has any transform coefficients in the bitstream. It calls to ippiDecodeVLCZigzag_Inter_MPEG4_1u16s() to perform VLC decoding, calls to ippiQuantInvInter_MPEG4_16s_I() to perform inverse quantization, calls to ippiDCTInv_8x8_16s_I to perform IDCT. 11)decode_block_intradc_mpeg4() Location: mp4dblck.c Description: MPEG-4 intra block decoding function with only intra DC transform coefficient in the bitstream (1) VLC decoding of intra DC coefficient (2) AC/DC prediction (3) Inverse quantization (4) IDCT Calling Procedure: It's called from decode_intra_mb_mpeg4() if the block has only intra DC transform coefficient in the bitstream. It calls to ippiPredictReconCoefIntra_MPEG4_16s() to perform AC/DC prediction, calls to ippiQuantInvIntra_MPEG4_16s_I() to perform inverse quantization, calls to ippiDCTInv_8x8_16s8u to perform IDCT. 12)decode_block_intradcac_mpeg4() Location: mp4dblck.c Description: MPEG-4 intra block decoding function with both intra DC and AC transform coefficients in the bitstream (1) VLC decoding of intra DC and AC coefficients (2) AC/DC prediction (3) Inverse quantization (4) IDCT Calling Procedure: It's called from decode_intra_mb_mpeg4() if the block has both intra DC and AC transform coefficients in the bitstream. It calls to ippiDecodeVLCZigzag_IntraACVLC_MPEG4_1u16s() to perform VLC decoding, calls to ippiPredictReconCoefIntra_MPEG4_16s() to perform AC/DC prediction, calls to ippiQuantInvIntra_MPEG4_16s_I() to perform inverse quantization, calls to ippiDCTInv_8x8_16s8u to perform IDCT. ================================================================ 9. Known Limitations This MPEG-4 video decoder sample code is only for demonstration purpose. Its error handling feature is limited. ================================================================ 10. Technical Support and Feedback To receive support or provide feedback for AAC decoder sample code, please refer to the "Technical Support and Feedback" section of the release notes provided in the Intel IPP V5.0 for Linux on Intel PCA Processors with Intel Wireless MMX Technology product installation. ================================================================ 11. License Definition 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 IPP product previously accepted by you. ================================================================ 12. Disclaimer and Legal Information The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its suppliers or licensors. Title to the Material remains with Intel Corporation or its suppliers and licensors. The Material may contain trade secrets and proprietary and confidential information of Intel Corporation and its suppliers and licensors, and is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without Intel(R) prior express written permission. No license under any patent, copyright, trade secret or other intellectual property right is granted to or conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement, estoppel or otherwise. Any license under such intellectual property rights must be express and approved by Intel in writing. Unless otherwise agreed by Intel in writing, you may not remove or alter this notice or any other notice embedded in Materials by Intel or Intel(R) suppliers or licensors in any way. INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL(R) PRODUCTS. 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. The information in this document is subject to change without notice and Intel Corporation assumes no responsibility or liability for any errors or inaccuracies that may appear in this document or any software that may be provided in association with this document. This document and the software described in it are furnished under license and may only be used or copied in accordance with the terms of the license. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. The information in this document is provided in connection with Intel products and should not be construed as a commitment by Intel Corporation. Intel products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications. Designers must not rely on the absence or characteristics of any features or instruct ... ...

近期下载者

相关文件


收藏者