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

近期下载者

相关文件


收藏者