Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications, enhancements,
improvements, and other changes to its products and services at any time and to discontinue any product or service without
notice. Customers should obtain the latest relevant information before placing orders and should verify that such information is
current and complete. All products are sold subject to TI’s terms and conditions of sale supplied at the time of order
acknowledgment.
TI warrants performance of its hardware products to the specifications applicable at the time of sale in accordance with TI’s
standard warranty. Testing and other quality control techniques are used to the extent TI deems necessary to support this warranty.
Except where mandated by government requirements, testing of all parameters of each product is not necessarily performed.
TI assumes no liability for applications assistance or customer product design. Customers are responsible for their products and
applications using TI components. To minimize the risks associated with customer products and applications, customers should
provide adequate design and operating safeguards.
TI does not warrant or represent that any license, either express or implied, is granted under any TI patent right, copyright, mask
work right, or other TI intellectual property right relating to any combination, machine, or process in which TI products or services
are used. Information published by TI regarding third-party products or services does not constitute a license from TI to use such
products or services or a warranty or endorsement thereof. Use of such information may require a license from a third party under
the patents or other intellectual property of the third party, or a license from TI under the patents or other intellectual property of
TI.
Reproduction of TI information in TI data books or data sheets is permissible only if reproduction is without alteration and is
accompanied by all associated warranties, con d it ion s, lim ita t io n s, a nd no t ice s. R ep rod uc t io n of th is in fo r m atio n wit h alte r a t ion is an
unfair and deceptive business practice. TI is not responsible or liable for such altered documentation. Information of third parties
may be subject to additional restrictions.
Resale of TI products or services with statements different from or beyond the parameters stated by TI for that product or service
voids all express and any implied warranties for the associated TI product or service and is an unfair and deceptive business
practice. TI is not responsible or liable for any such statements.
TI products are not authorized for use in safety-critical applications (such as life support) where a failure of the TI product would
reasonably be expected to cause severe personal injury or death, unless officers of the parties have executed an agreement
specifically governing such use. Buyers represent that they have all necessary expertise in the safety and regulatory ramifications
of their applications, and acknowledge and agree that they are solely responsible for all legal, regulatory and safety-related
requirements concerning their products and any use of TI products in such safety-critical applications, notwithstanding any
applications-related information or support that may be provided by TI. Further, Buyers must fully indemnify TI and its
representatives against any damages arising out of the use of TI products in such safety-critical applications.
TI products are neither designed nor intended for use in military/aerospace applications or environments unless the TI products
are specifically designated by TI as military-grade or "enhanced plastic." Only products designated by TI as military-grade meet
military specifications. Buyers acknowledge and agree that any such use of TI products which TI has not designated as militarygrade is solely at the Buyer's risk, and that they are solely responsible for compliance with all legal and regulatory requirements in
connection with such use.
TI products are neither designed nor intended for use in automotive applications or environments unless the specific TI
products are designated by TI as compliant with ISO/TS 16949 requirements. Buyers acknowledge and agree that, if they use
any non-designated products in automotive applications, TI will not be responsible for any failure to meet such requirements.
Following are URLs where you can obtain information on other Texas Instruments products and application solutions:
Products Applications
Amplifiers amplifier.ti.comAudio www.ti.com/audio
Data Converters dataconverter.ti.comAutomotive www.ti.com/automotive
DLP® Products www.dlp.com Broadband www.ti.com/broadband
DSP dsp.ti.comDigital Control www.ti.com/digitalcontrol
Clocks and Timers www.ti.com/clocksMedical www.ti.com/medical
This document describes how to install and work with Texas Instruments’
(TI) H.264 1080p@30 Baseline Profile implementation on the DM6467
platform. It also provides a detailed Application Programming Interface
(API) reference and information on the sample application that
accompanies this component.
TI’s codec implementations are based on the eXpressDSP Digital Media
(XDM) standard. XDM is an extension of the eXpressDSP Algorithm
Interface Standard (XDAIS).
Intended Audience
This document is intended for system engineers who want to integrate
TI’s codecs with other software to build a multimedia system based on
the DM6467 platform.
This document assumes that you are fluent in the C language, have a
good working knowledge of Digital Signal Processing (DSP), digital
signal processors, and DSP applications. Good knowledge of
eXpressDSP Algorithm Interface Standard (XDAIS) and eXpressDSP
Digital Media (XDM) standard will be helpful.
How to Use This Manual
This document includes the following chapters:
Chapter 1 - Introduction, provides a brief introduction to the XDAIS
Chapter 2 - Installation Overview, describes how to install, build,
Chapter 3 - Sample Usage, describes the sample usage of the
Chapter 4 - API Reference, describes the data structures and
and XDM standards. It also provides an overview of the codec and
lists its supported features.
and run the codec.
codec.
interface functions used in the codec.
Chapter 5 – Frequently Asked Questions, provides answers to few
frequently asked questions relating to using this encoder.
iii
Read This First
Related Documentation From Texas Instruments
The following documents describe TI’s DSP algorithm standards such
as, XDAIS and XDM. To obtain a copy of any of these TI documents,
visit the Texas Instruments website at
TMS320 DSP Algorithm Standard Rules and Guidelines (literature
number SPRU352) defines a set of requirements for DSP algorithms
that, if followed, allow system integrators to quickly assemble
production-quality systems from one or more such algorithms.
TMS320 DSP Algorithm Standard API Reference (literature number
SPRU360) describes all the APIs that are defined by the TMS320
DSP Algorithm Interoperability Standard (also known as XDAIS)
specification.
Technical Overview of eXpressDSP - Compliant Algorithms for DSP
Software Producers (literature number SPRA579) describes how to
make algorithms compliant with the TMS320 DSP Algorithm
Standard which is part of TI’s eXpressDSP technology initiative.
Using the TMS320 DSP Algorithm Standard in a Static DSP System
(literature number SPRA577) describes how an eXpressDSPcompliant algorithm may be used effectively in a static system with
limited memory.
www.ti.com.
The following documents describe TMS320 devices and related support
tools:
TMS320c64x+ Megamodule (literature number SPRAA68) describes
the enhancements made to the internal memory and describes the
new features which have been added to support the internal memory
architecture's performance and protection.
number SPRU871) describes the C64x+ megamodule peri pherals.
TMS320C64x to TMS320C64x+ CPU Migration Guide (literature
number SPRAA84) describes migration from the Texas Instruments
TMS320C64x™ digital signal processor (DSP) to the
TMS320C64x+™ DSP.
TMS320C6000 Optimizing Compiler v 6.0 Beta User's Guide
(literature number SPRU187N) explains how to use compiler tools
such as compiler, assembly optimizer, standalone simulator, librarybuild utility, and C++ name demangler.
TMS320C64x/C64x+ DSP CPU and Instruction Set Reference Guide
(literature number SPRU732) describes the CPU architecture,
pipeline, instruction set, and interrupts of the C64x and C64x+ DSPs.
DaVinci Technology - Digital Video Innovation Product Bulletin (Rev.
A) (literature number SPRT378A)
iv
The DaVinci Effect: Achieving Digital Video Without Complexity
White Paper (literature number SPRY079)
DaVinci Benchmarks Product Bulletin (literature number SPRT379)
Read This First
DaVinci Technology for Digital Video White Paper (literature number
SPRY067)
The Future of Digital Video White Paper (literature number
SPRY066)
Related Documentation
You can use the following documents to supplement this user guide:
Recommendation and Final Draft International Standard of Joint
Video Specification
Abbreviations
The following abbreviations are used in this document.
Table 1-1. List of Abbreviations
Abbreviation Description
AVC Advanced Video Coding
BP Base Profile
CAVLC Context Adaptive Variable Length
Coding
CIF Common Intermediate Format
COFF Common Object File Format
DMA Direct Memory Access
DMAN3 DMA Manager
DSP Digital Signal Processing
EVM Evaluation Module
GOP Group Of Pictures
HDVICP High Definition Imaging Co-Processors
HEC Header Extension Code
HPI Half Pixel Interpolation
MIR Mandatory Intra Fresh
QCIF Quarter Common Intermediate Format
QP Quantization Parameter
QPI Quarter Pixel Interpolation
v
Read This First
Text Conventions
Abbreviation Description
QVGA Quarter Video Graphics Array
SQCIF Sub Quarter Common Intermediate
Format
VGA Video Graphics Array
XDAIS eXpressDSP Algorithm Interfac e
Standard
XDM eXpressDSP Digital Media
The following conventions are used in this document:
Text inside back-quotes (‘‘) represents pseudo-code.
Program source code, function and macro names, parameters, and
command line commands are shown in a mono-spaced font.
Product Support
Trademarks
When contacting TI for support on this codec, quote the product name
(H.264 1080p@30 Baseline Profile Encoder on DM6467) and version
number. The version number of the codec is included in the Title of the
Release Notes that accompanies this codec.
Code Composer Studio, the DAVINCI Logo, DAVINCI, DSP/BIOS,
eXpressDSP, TMS320, TMS320C64x, TMS320C6000, TMS320DM644x,
and TMS320C64x+ are trademarks of Texas Instruments.
All trademarks are the property of their respective owners.
vi
Contents
Read This First...............................................................................................................iii
About This Manual ....................................................................................................iii
Table 3-1. Process ( ) Implementation........................................................................3-9
Table 4-1. List of Enumerated Data Types.................................................................4-2
Table 4-2. H264 Encoder Specific Enumerations......................................................4-7
Table 5-3. FAQs for H264 Encoder on DM6467. ........................................................5-1
xi
This page is intentionally left blank
xii
Chapter 1
Introduction
This chapter provides a brief introduction to XDAIS and XDM. It also
provides an overview of TI’s implementation of the H.264 1080p@30
Baseline Profile on the DM6467 platform and its supported features.
Topic Page
1.1 Overview of XDAIS and XDM1-2
1.2 Overview of H.264 Base Profile Encoder1-3
1.3 Supported Services and Features1-5
1-1
Introduction
1.1 Overview of XDAIS and XDM
TI’s multimedia codec implementations are based on the eXpressDSP
Digital Media (XDM) standard. XDM is an extension of the eXpressDSP
Algorithm Interface Standard (XDAIS).
1.1.1 XDAIS Overview
An eXpressDSP-compliant algorithm is a module that implements the
abstract interface IALG. The IALG API takes the memory management
function away from the algorithm and places it in the hosting framework.
Thus, an interaction occurs between the algorithm and the framework. This
interaction allows the client application to allocate memory for the algorithm
and also share memory between algorithms. It also allows the memory to
be moved around while an algorithm is operating in the system. In order to
facilitate these functionalities, the IALG interface defines the following
APIs:
The algAlloc() API allows the algorithm to communicate its memory
requirements to the client application. The
algorithm to initialize the memory allocated by the client application. The
algFree() API allows the algorithm to communicate the memory to be
freed when an instance is no longer required.
Once an algorithm instance object is created, it can be used to process
data in real-time. The
algorithm instance that one or more algorithm processing methods is about
to be run zero or more times in succession. After the processing methods
have been run, the client application calls the
to reusing any of the instance’s scratch memory.
The IALG interface also defines three more optional APIs
algNumAlloc(), and algMoved(). For more details on these APIs, see
TMS320 DSP Algorithm Standard API Reference (literature number
SPRU360).
1.1.2 XDM Overview
In the multimedia application space, you have the choice of integrating any
codec into your multimedia system. For example, if you are building a
video decoder system, you can use any of the available video decoders
(such as MPEG4, H.263, or H.264) in your system. To enable easy
integration with the client application, it is important that all codecs with
similar functionality use similar APIs. XDM was primarily defined as an
extension to XDAIS to ensure uniformity across different classes of codecs
algInit() API allows the
algActivate() API provides a notification to the
algDeactivate() API prior
algControl(),
1-2
Introduction
(for example audio, video, image, and speech). The XDM standard defines
the following two APIs:
control()
process()
The control() API provides a standard way to control an algorithm
instance and receive status information from the algorithm in real-time. The
control() API replaces the algControl() API defined as part of the
IALG interface. The
process() API does the basic processing
(encode/decode) of data.
Apart from defining standardized APIs for multimedia codecs, XDM also
standardizes the generic parameters that the client application must pass
to these APIs. The client application can define additional implementation
specific parameters using extended data structures.
The following figure depicts the XDM interface to the client application.
Client Application
XDM Interface
XDAIS Interface (IALG)
TI’s Codec Algorithms
As depicted in the figure, XDM is an extension to XDAIS and forms an
interface between the client application and the codec component. XDM
insulates the client application from component-level changes. Since TI’s
multimedia algorithms are XDM compliant, it provides you with the flexibility
to use any TI algorithm without changing the client application code. For
example, if you have developed a client application using an XDMcompliant MPEG4 video decoder, then you can easily replace MPEG4 with
another XDM-compliant video decoder, say H.263, with minimal changes
to the client application.
For more details, see eXpressDSP Digital Media (XDM) Standard API
Reference (literature number SPRUEC8).
1.2 Overview of H.264 1080p@30 Baseline Profile Encoder
H.264 is the latest video compression standard from the ITU-T Video
Coding Experts Group and the ISO/IEC Moving Picture Experts Group.
H.264 provides greater compression ratios at a very low bit-rate. The new
advancements and greater compression ratios at a very low bit-rate has
made devices ranging from mobile and consumer electroni cs to set-top
boxes and digital terrestrial broadcasting to use the H.264 standard.
1-3
Introduction
Figure 1-1 depicts the working of the H.264 Encoder algorithm.
Figure 1-1. Working of H.264 Video Encoder
In H.264 Encoder, the operations are performed on a set of specific N
macro blocks. The value of N at the most can be 2. The operations such as
Motion Compensation, Transform and Quantization, Run Length Encoding
and Inverse Quantization, and Inverse Transform Blocks are called once,
for all the inter macro blocks in the set of N.
In motion estimation, the encoder searches for the best match in the
available reference frame(s). After quantization, contents of some blocks
become zero.
The H.264 Encoder defines in-loop filtering to avoid blocks across the 4x4
block boundaries. It is the second most computational task of H.264
encoding process after motion estimation. In-loop filtering is applied on all
4x4 edges as a post-process and the operations depend on the edg e
strength of the particular edge.
The H.264 Encoder applies entropy-coding methods to use context-based
adaptivity, which improves the coding performance. All the macro blocks,
which belong to a slice, must be encoded in a raster scan order. Baselin e
profile uses the Context Adaptive Variable Length Coding (CAVLC).
CAVLC is the stage where transformed and quantized co-efficients are
entropy coded using context adaptive table switching across different
symbols. The syntax defined by the H.264 Encoder stores the information
at 4x4 block level.
1-4
From this point onwards, all references to H.264 Encoder means H.264
1080p@30 Baseline Profile Encoder only.
1.3 Supported Services and Features
This user guide accompanies TI’s implementation of H.264 Encoder on the
DM6467 platform.
This version of the codec has the following supported features of the
standard:
eXpressDSP Digital Media (XDM 1.0 IVIDENC1) compliant
Supports YUV420 interleaved color sub-sampling (Y as a single plane
and U & V components interleaved to form the second plane) formats
Supports H.264 Baseline Profile for progressive I and P frames only
Supports multiple slices per frame conforming to H.241 requirement of
fixed bytes per slice
Supports only one motion vector per macro block
Supports rate control at row and frame level
Introduction
Supports DMA based framework
Uses C64x+, HDVICP 0, and HDVICP 1 sub-systems
The 720p quality of this encoder is not at par with the 720p encode
only solution from TI, tradeoffs have been made to get performance for
1080p at the cost of quality
1-5
Introduction
This page is intentionally left blank
1-6
Chapter 2
Installation Overview
This chapter provides a brief description on the system requirements and
instructions for installing the codec component. It also provides information
on building and running the sample test application.
Topic Page
2.1 System Requirements2-2
2.2 Installing the Component2-2
2.3 Before Building the Sample Test Application2-5
2.4 Building and Running the Sample Test Application2-6
2.5 Configuration Files2-7
2.6 Uninstalling the Component2-8
2.7 Evaluation Version2-8
2-1
Installation Overview
2.1 System Requirements
This section describes the hardware and software requirements for the
normal functioning of the codec component.
2.1.1 Hardware
This codec is built and tested on the DM6467 EVM only.
2.1.2 Software
The following are the software requirements for the normal functioning of
the codec:
Development Environment: This project is developed using Code
Composer Studio version 3.3.49.
Code Generation Tools: This project is compiled, assembled,
archived, and linked using the code generation tools version 6.0.8.
2.2 Installing the Component
The codec component is released as a compressed archive. To install the
codec, extract the contents of the zip file onto your local hard disk. The zip
file extraction creates a top level directory called
200_V_H264AVC_E_1_10, under which another directory named
DM6467_BP_001 is created.
Figure 2-1 shows the sub-directories created in the DM6467_BP_001
directory.
Note:
The source folders under H264Encoder (
of a library based (object code) release.
AlgSrc) is not present in case
2-2
Installation Overview
Figure 2-1. Component Directory Structure
Note:
If you are installing an evaluation version of this codec, the directory
name will be 200E_V_H264AVC_E_1_10.
Table 2-1 provides a description of the sub-directories created in the
DM6467_BP_001 directory.
Table 2-1. Component Directories
Sub-Directory Description
2-3
Installation Overview
Sub-Directory Description
Csp\Bios Contains BIOS specific files
Csp\Csl Contains CSL files
Csp\c6x Contains CSL files
Csp\Dman3 Contains DMAN3 related files
\H264Encoder\AlgSrc\enc\Build Contains the algorithm application project (.pjt) file
\H264Encoder\AlgSrc\enc\Build\asm Contains the assembly files generated by the compiler
during compilation
\H264Encoder\AlgSrc\enc\inc Contains algorithm header files
\H264Encoder\AlgSrc\enc\lib Contains the algorithm lib file generated on compilation
of the code
\H264Encoder\AlgSrc\enc\src\asm Contains algorithm source assembly files
\H264Encoder\AlgSrc\enc\src\c Contains algorithm source C files
\H264Encoder\AlgSrc\enc\src\sa Contains algorithm source linear assembly files
\H264Encoder\Arm968\build Contains the ARM968 project file
\H264Encoder\Arm968\src\asm Contains the ARM968 source assembly files
\H264Encoder\Arm968\src\c Contains the ARM968 source C files
\H264Encoder\Client\Build Contains the sample test application project (.pjt) file
\H264Encoder\Client\Test\Inc Contains header files needed for the application code
\H264Encoder\Client\Test\Src Contains application C files
\H264Encoder\Client\Test\TestVecs\Config Contains configuration parameter file
\H264Encoder\Client\Test\TestVecs\Input Contains input test vectors
\H264Encoder \Client\Test\TestVecs\Output Contains output generated by the codec
\H264Encoder\Client\Test\TestVecs\Reference Contains reconstructed outputs generated by the
encoder to verify conformance with decoder
\H264Encoder\Client\Test\Utils Folder that stores basic utilities like file compare and
YUV display executables.
\H264Encoder\Docs Contains user guide and datasheet
\H264Encoder\Inc Contains XDM related header files which allow interface
to the codec library
\H264Encoder\Lib Contains the algorithm library file
2-4
2.3 Before Building the Sample Test Application
This codec is accompanied by a sample test application. To run the sample
test application, you need DSP/BIOS, TI Codec Engine (CE), and HDVICP
API. This version of the codec has been validated with DSP/BIOS version
5.31 . Codec Engine (CE) version 2.10.01 and HDVICP API version
1.01.017
The 1080p encoder uses both the HDVICP resources of the DM6467 to
reduce the DDR bandwidth for achieving performance. Hence,
simultaneous encode/decode is not possible with this encoder.
2.3.1 Installing DSP/BIOS
You can download DSP/BIOS from the TI external website:
2) Set a system environment variable named
to <install directory>\CCStudio_v3.3\<ce_directory>\cetools.
3) Set a system environment variable named
pointing to <install
directory>\CCStudio_v3.3\<ce_directory>\cetools\packages\ti\xdais.
4) Set a system environment variable
to <install
directory>\CCStudio_v3.3\<ce_directory>\cetools\packages\ti\sdo\edm
a3.
2.3.3 Installing HDVICP API
Download HDVICP Library version 1.01.017
1) Extract the HDVICP API zip file to the same location where the Code
Composer Studio is installed. For example: <install
directory>\CCStudio_v3.3.
2) Set a system environment variable named HDVICP_API pointing to
<install
directory>\CCStudio_v3.3\<hdvicp>\200_V_HDVICP_X_1_01\DM6467
_X_001\hdvicp_api
FC_INSTALL_DIR pointing
XDAIS_INSTALL_DIR
EDMA3LLD_INSTALL_DIR pointing
2.4 Building and Running the Sample Test Application
The sample test application that accompanies this codec component will
run in TI’s Code Composer Studio development environment. To build and
run the sample test application in Code Composer Studio, follow these
steps:
1) Extract the .zip file from the package.
2) Verify that you have installed TI’s Code Composer Studio version
3.3.49 and code generation tools version 6.0.8. Start the Code
Composer Studio to view the Parallel Debug Manager (PDM) window.
3) In the PDM window, open the window by double clicking on ARM926,
load the GEL file davincihd_arm.gel and click Debug > Connect.
4) In the PDM window, open the window by double clicking on
C6400PLUS, load the GEL file davincihd_dsp.gel and click
Debug > Connect.
5) Open the test application project file – testh264encoderapp.pjt – in
C6400PLUS window. This file is available in the \Client\Build subdirectory.
6) Select Project > Build to build the sample test application. This
creates an executable file, TestEncoderApp.out in the \Client\Build\Out
sub-directory.
2-6
7) Select
File > Load, browse to the \Client\Build\Out sub-directory,
select the codec executable created in step 6, and load it into Code
Composer Studio in preparation for execution.
Loading...
+ 54 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.