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 ... ...
近期下载者:
相关文件:
收藏者: