h263_decoder
所属分类:Linux/Unix编程
开发工具:Unix_Linux
文件大小:29KB
下载次数:60
上传日期:2006-02-23 10:43:56
上 传 者:
arsen_mmx
说明: Linux下的基于intel的ipp库的h.263解码源代码,嵌入式开发,适用PXA270开发板
(Linux-based Intel's ipp for the H.263 codec source code, embedded development, application development board PXA270)
文件列表:
h263_decoder\doc (0, 2006-02-22)
h263_decoder\makefile_sample_h263_dec (7711, 2005-09-29)
h263_decoder\src\arm_linux\include\sampdefs.h (3249, 2005-09-29)
h263_decoder\src\arm_linux\include (0, 2006-02-22)
h263_decoder\src\arm_linux\video\h263\decoder\h263dec.c (7923, 2005-09-29)
h263_decoder\src\arm_linux\video\h263\decoder\h263free.c (1609, 2005-09-29)
h263_decoder\src\arm_linux\video\h263\decoder\h263gob.c (5059, 2005-09-29)
h263_decoder\src\arm_linux\video\h263\decoder\h263init.c (9576, 2005-09-29)
h263_decoder\src\arm_linux\video\h263\decoder\h263main.c (12116, 2005-09-29)
h263_decoder\src\arm_linux\video\h263\decoder\h263mb.c (22824, 2005-09-29)
h263_decoder\src\arm_linux\video\h263\decoder\h263pars.c (10990, 2005-09-29)
h263_decoder\src\arm_linux\video\h263\decoder\h263tbl.c (16942, 2005-09-29)
h263_decoder\src\arm_linux\video\h263\decoder\h263util.c (11537, 2005-09-29)
h263_decoder\src\arm_linux\video\h263\decoder (0, 2006-02-22)
h263_decoder\src\arm_linux\video\h263\_include\samph263.h (10673, 2005-09-29)
h263_decoder\src\arm_linux\video\h263\_include (0, 2006-02-22)
h263_decoder\src\arm_linux\video\h263 (0, 2006-02-22)
h263_decoder\src\arm_linux\video\_include\sampvc.h (2416, 2005-09-29)
h263_decoder\src\arm_linux\video\_include (0, 2006-02-22)
h263_decoder\src\arm_linux\video (0, 2006-02-22)
h263_decoder\src\arm_linux (0, 2006-02-22)
h263_decoder\src (0, 2006-02-22)
h263_decoder (0, 2006-02-22)
September 7, 2005
Intel(R) Integrated Performance Primitives Version 5.0
H.263 Decoder Sample Code for Linux* on Intel(R) Personal
Internet Client Architecture Processors
================================================================
CONTENTS:
1. Overview
2. Package Contents
3. Directory Organization 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 H.263 decoder sample code supports video streams
compatible with ITU-T Recommendation H.263 Version 2, 19***
(H.263+) Baseline (Profile 0). It does not support any optional
mode defined in Annex D to Annex T.
The purpose of H.263 decoder sample code is to provide an
example that shows how to use Intel(R) Integrated Performance
Primitives (Intel(R) IPP) Video Coding Domain primitives to build
up a baseline H.263 decoder.
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 H.263 decoder sample code package contains the following:
* Readme file
* Makefile
* Sample code source files and header files
================================================================
3. Directory Organization 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 H.263 sample
code package
makefile_sample_h263_dec Make file for H.263
sample decoder
~/doc
readme_h263_dec.txt This readme file
~/src/arm_linux/video/h263/decoder Source Path
h263dec.c Functions for picture-level
decoding
h263free.c Function(s) for
resource/memory free
h263gob.c Functions for GOB-level
decoding
h263init.c Functions for initialize
decoder state
h263main.c Main entry of application
h263mb.c Functions for MB-level
decoding
h263pars.c Functions for stream
header parsing
h263tbl.c Tables
h263util.c Functions for bit stream utility
~/src/include General header file path
sampdefs.h General header file
~/src/arm_linux/video/_include Video shared header file path
sampvc.h Video shared header file
~/src/arm_linux/video/h263/_include H.263 decoder header file path
samph263.h H.263 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. System requirements follow:
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 Video Coding Component Library.
================================================================
5. Installation and Build
Extract all files in l_ipp-PCA-H263-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/H263-decode/
folder.
Follow the steps below to build the h.263 decoder application.
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_h263_dec to make sure the variable
PATH_IPP_ROOT is the current Intel Integrated Performance
Primitives installation path. With default settings, the
variable should be:
PATH_IPP_ROOT=/opt/intel/ipp/5.0/pca_wmmx
Modify other toolchain paths if necessary in this make file.
2) Make the application with command:
make -f makefile_sample_h263_dec.
================================================================
6. Running the Software
If successfully built, the executable is generated in the path
$(PATH_USR_BIN) defined in the make file, with the default
name h263dec. The command line format is:
h263dec inputfile outputfile
Simply type h263dec to invoke help information.
================================================================
7. Intel IPP Functional Coverage
The H.263 decoder sample demonstrates how to combine the
I-Picture, P-Picture, Motion Compensation, IDCT, Dequantization,
VLC coding to construct the baseline H.263 decoder. Specifically,
the sample incorporates the following Intel IPP Video Coding
Domain primitives:
Functional Category Primitive Name
Motion vector decoding ippiDecodeMV_H263
ippiDecodeMV_TopBorder_H263
Motion Compensation ippiMCBlock_RoundOn_8u
ippiMCBlock_RoundOff_8u
ippiMCReconBlock_RoundOn
ippiMCReconBlock_RoundOff
MB/Block Copy ippiCopyMB_H263_8u
ippiCopyBlock_H263_8u
MB/Block level decoding ippiDecodeBlockCoef_Intra_H263_1u8u
ippiDecodeBlockCoef_Inter_H263_1u16s
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
1) H.263 Decoder state structure h263_dec_state
Location:
Defined in samph263.h
Description:
This structure reserves the state that is used during the whole
decoding process. It contains current picture, reference picture
information, general stream information, all level stream header
syntax (including picture, GOB, MB headers), current/reference
GOB/MB/Block position pointers, motion vector buffer and
working buffer.
2) decoder_init_alloc_h263
Location:
h263init.c
Description:
It initializes decoder state and allocates work buffer. This
function does the following steps:
(1) Parses picture header and initializes state members.
(2) Calculates necessary work buffer size and allocates buffer.
(3) Separates the whole work buffer into several parts and
initializes the pointers.
(4) Zeros the motion vectors on the border.
Calling procedure:
It's called in main function before decoding the first picture.
3) decode_h263
Location:
h263dec.c
Description:
It decodes one picture from h263 stream in the following steps:
(1) Seeks next PSC code to check if current picture is complete
(last picture is excluded from this step).
(2) Parses picture header and sets h263_dec_state members.
(3) Decodes one picture according to its coding type.
(4) Points the output picture pointer to current picture.
(5) Switches current picture and reference picture pointer.
Calling procedure:
It's called in main function in a loop to decode all pictures in
stream. It will call decode_gob_ipic_h263 or
decode_gob_ppic_h263 according to picture type in a loop to
decode all GOBs in a picture.
4) decoder_free_h263
Location:
h263free.c
Description:
Free allocated memory buffer and set the pointer to NULL. This
function is called after all pictures are decoded.
Calling procedure:
It's called in main function after all decoding work is done.
5) decode_gob_ipic_h263
Location:
h263gob.c
Description:
This function decodes one GOB in I Picture.
Calling procedure:
It's called from decode_h263. It calls decode_mb_ipic_h263 in a
loop to decode all MB in one GOB.
6) decode_gob_ppic_h263
Location:
h263gob.c
Description:
This function decodes one GOB in P Picture.
Calling procedure:
It's called from decode_h263. It calls decode_mb_ppic_h263 in
a loop to decode all MB in one GOB.
7) decode_mb_ipic_h263
Location:
h263mb.c
Description:
It decodes one MB in I Picture in the following steps:
(1) Parses MB header, updates quantizer if MB type is
INTRA_Q.
(2) Initializes block pointer to beginning of current MB.
(3) Calls decode_intra_mb_h263 to decode one INTRA MB.
Calling procedure:
It's called from decode_gob_ipic_h263. According to CBPY or
CBPC block coding pattern information, it calls Intel IPP
ippiDecodeBlockCoef_Intra_H263_1u8u or subroutine
decode_block_intradc_only_h263 to decode the block
coefficients.
8) decode_mb_ppic_h263
Location:
h263mb.c
Description:
It decodes one MB in P Picture in the following steps:
(1) Parses MB header, updates quantizer if MB type is
INTRA_Q or INTER_Q.
(2) Initializes block pointer to beginning of current MB.
(3) If the block is not coded, copies reference block to current
block directly and zeros current motion vector.
(4) If it's coded as INTRA block, calls decode_intra_mb_h263
to decode and zeros current motion vector.
(5) If the block is coded as INTER block, decodes motion vector
and does motion compensation.
Calling procedure:
It's called from decode_gob_ppic_h263. When the block is
coded as INTRA block, it zeros current motion vector and calls
decode_intra_mb_h263 to decode the block. When the block is
coded as INTER block, it first calls
ippiDecodeMV_TopBorder_H263/ippiDecodeMV_H263
to decode motion vectors. Then according to CBPY or CBPC
block coding pattern information and rounding control type, it
calls Intel IPP ippiDecodeBlockCoef_Inter_H263_1u16s,
ippiMCReconBlock_RoundOn/ippiMCReconBlock_RoundOff
or ippiMCBlock_RoundOn_8u/ ippiMCBlock_RoundOff_8u to
do motion compensation.
================================================================
9. Known Limitations
This H.263 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(R) Integrated Performance Primitives (Intel(R) 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 instructions marked "reserved" or "undefined." Intel
reserves these for future definition and shall have no responsibility
whatsoever for conflicts or incompatibilities arising from future
changes to them.
Intel Corporation may have patents or pending patent applications,
trademarks, copyrights, or other intellectual property rights that
relate to the presented subject matter. The furnishing of documents
and other materials and information does not provide any license,
express or implied, by estoppel or otherwise, to any such patents,
trademarks, copyrights, or other intellectual property rights.
Intel may make changes to dates, specifications, product
descriptions, and plans referenced in this document at any time,
without notice.
Intel products may contain design defects or errors known as
errata which may cause the product to deviate from published
specifications. Current characterized errata are available on
request.
Contact your local Intel sales office or your distributor to obtain
the latest specifications and before placing your product order.
Copies of documents which have an ordering number and are referenced
in this document, or other Intel literature may be obtained by
calling 1-800-548-4725 or by visiting Intel's Web site at
http://www.intel.com.
Intel, MMX, Pentium, and Wireless MMX are trademarks or
registered trademarks of Intel Corporation or its subsidiaries in the
United States and other countries.
INTEL CONFIDENTIAL
Copyright (C) 2003-2005 Intel Corporation. All rights reserved
近期下载者:
相关文件:
收藏者: