MICROCHIP PolarFire H.264 I-Frame Encoder IP User Guide
- June 9, 2024
- MICROCHIP
Table of Contents
- Introduction
- Hardware Implementation
- Testbench
- **License
- Installation Instructions
- Resource Utilization
- Revision History
- Microchip FPGA Support
- Microchip Information
- Microchip Devices Code Protection Feature
- Legal Notice
- Trademarks
- Quality Management System
- Worldwide Sales and Service
- References
- Read User Manual Online (PDF format)
- Download This Manual (PDF format)
PolarFire H.264 I-Frame Encoder IP
User Guide
Introduction
H.264 is a popular video compression standard for compression of digital
video. It is also known as MPEG-4 Part10 or Advanced Video Coding (MPEG-4
AVC). H.264 uses block wise approach for compressing the video where the block
size is defined as 16×16 and such block is called a macro block. The
compression standard supports various profiles that define the compression
ratio and complexity of implementation. The video frames to be compressed are
treated as I-Frame, P-Frame and B-Frame. An I-Frame is an intra-coded frame
where compression is done by using the information contained within the frame.
No other frames are required to decode an I-Frame. A P-Frame is compressed by
using the changes with respect to an earlier frame that can be an I-Frame or a
P-Frame. The compression of B-Frame is done by using the motion changes with
respect to both an earlier frame and an upcoming frame. The I-Frame
compression process has four stages–Intra prediction, Integer transformation,
Quantization and Entropy encoding. H.264 supports two types of
encoding–Context Adaptive Variable Length Coding (CAVLC) and Context Adaptive
Binary Arithmetic Coding (CABAC). The current version of the IP implements
Baseline profile and uses CAVLC for entropy encoding. Also, the IP supports
encoding of only I-Frames.
Key Features
- Implements compression on YCbCr 420 video format
- Expects the input in YCbCr 422 video format
- Supports 8-bit for each component (Y, Cb, and Cr)
- ITU-T H.264 Annex B compliant NAL byte stream output
- Standalone operation, CPU, or processor assistance not required
- User configurable quality factor QP during run time
- Computation at the rate of 1 pixel per clock
- Supports compression up to resolution of 1080p 60 fps
Supported Families
- PolarFire® SoC FPGA
- PolarFire® FPGA
Hardware Implementation
The following figure shows the H.264 I-Frame Encoder IP block diagram.
Figure 1-1. H.264 I-Frame Encoder IP Block Diagram
1.1 Inputs and Outputs
The following table lists the input and output ports of H.264 Frame Encoder
IP.
Table 1-1. Input and Output Ports of H.264 I-Frame Encoder IP
Signal Name| Direction| Width| Port Valid Under|
Description
---|---|---|---|---
RESET_N| Input| 1| —| Active-low Asynchronous reset signal to the design.
SYS_CLK| Input| 1| —| Input clock with which incoming pixels are sampled.
DATA_Y_I| Input| 8| —| 8-bit Luma pixel input in 422 format.
DATA_C_I| Input| 8| —| 8-bit Chroma pixel input in 422 format.
DATA_VALID_I| Input| 1| —| Input Pixel data valid signal.
FRAME_END_I| Input| 1| —| End of Frame indication.
FRAME_START_I| Input| 1| —| Start of Frame indication. The rising edge of this
signal is considered as frame start.
HRES_I| Input| 16| —| Horizontal resolution of input image. It must be
multiple of 16.
VRES_I| Input| 16| —| Vertical resolution of input image. It must be multiple
of 16.
QP_I| Input| 6| —| Quality factor for H.264 quantization. The value ranges
from 0 to 51 where 0 represents highest quality and lowest compression and 51
represents highest compression.
DATA_O| Output| 8| —| H.264 encoded data output that contains NAL unit, slice
header, SPS, PPS, and the encoded data of macro blocks.
DATA_VALID_O| Output| 1| —| Signal denoting encoded data is valid.
1.2 Configuration Parameters
The H.264 I-Frame Encoder IP does not use configuration parameters.
1.3 Hardware Implementation of H.264 I-Frame Encoder IP
The following figure shows the H.264 I-Frame Encoder IP block diagram.
Figure 1-2. H.264 I-Frame Encoder IP Block Diagram
1.3.1 Design Description for H.264 I-Frame Encoder IP
This section describes the different internal modules of the H.264 I-Frame
Generator IP. Data input to the IP must be in the form of a raster scan image
in YCbCr 422 format. The IP uses 422 format as input and implements
compression in 420 format.
1.3.1.1 16×16 Matrix Framer
This module frames the 16×16 macro blocks for Y component as per H.264
specification. Line buffers are used to store 16 horizontal lines of input
image and a 16×16 matrix is framed using shift registers.
1.3.1.2 8×8 Matrix Framer
This module frames the 8×8 macro blocks for C component as per H.264
specification for 420 format. Line buffers are used to store 8 horizontal
lines of input image and an 8×16 matrix is framed using shift registers. From
the 8×16 matrix, the Cb and Cr components are separated to frame each 8×8
matrix.
1.3.1.3 4×4 Matrix Framer
The integer transform, quantization, and CAVLC encoding operate on a 4×4 sub-
block within a macro block. The 4×4 matrix framer generates a 4×4 sub-block
from 16×16 or 8×8 macro block. This matrix generator spans through all the
sub-blocks of a macro block before going to the next macro block.
1.3.1.4 Intra Prediction
H.264 uses various intra-prediction modes to reduce the information in a 4×4
block. The intra-prediction block in the IP uses only DC prediction on 4×4
matrix size. The DC component is computed from the adjacent top and left 4×4
blocks.
1.3.1.5 Integer Transform
H.264 uses integer discrete cosine transform where the coefficients are
distributed across the integer transform matrix and the quantization matrix
such that there are no multiplications or divisions in the integer transform.
The integer transform stage implements the transformation using shift and add
operations.
1.3.1.6 Quantization
The quantization multiplies each output of integer transform with a
predetermined quantization value defined by the QP user input value. The range
of QP value is from 0 to 51. Any value more than 51 is clamped to 51. A lower
QP value denotes lower compression and higher quality and vice versa.
1.3.1.7 CAVLC
H.264 uses two types of entropy encoding—Context Adaptive Variable Length
Coding (CAVLC) and Context Adaptive Binary Arithmetic Coding (CABAC). The IP
uses CAVLC for encoding the quantized output.
1.3.1.8 Header Generator
The header generator block generates the block headers, slice headers,
Sequence Parameter Set (SPS), Picture Parameter Set (PPS), and Network
Abstraction Layer (NAL) unit depending on the instance of the video frame.
1.3.1.9 H.264 Stream Generator
The H.264 stream generator block combines the CAVLC output along with the
headers to create the encoded output as per the H.264 standard format.
Testbench
Testbench is provided to check the functionality of H.264 I-Frame Encoder IP.
2.1 Simulation
The simulation uses a 224×224 image in YCbCr422 format represented by two
files, each for Y and C as input and generates a H.264 file format that
contains two frames. The following steps describe how to simulate the core
using the testbench.
1. Go to Libero® SoC Catalog > View > Windows > Catalog, and then expand
Solutions-Video. Double-click H264_Iframe_Encoder, and then click OK.
Figure 2-1. H.264 I-Frame Encoder IP Core in Libero SoC
Catalog 2. Go to the Files
tab and select simulation > Import Files.
Figure 2-2. Import Files 3. Import the
H264_sim_data_in_y.txt, H264_sim_data_in_c.txt, and H264_refOut.txt files from
the following path:
..\
4. To import a different file, browse the folder that contains the required
file, and click Open. The imported file is listed under simulation, see the
following figure.
Figure 2-3. Imported Files![MICROCHIP PolarFire H.264 I-Frame Encoder IP
- Import Files 1](https://manuals.plus/wp-content/uploads/2023/03/MICROCHIP-
PolarFire-H.264-I-Frame-Encoder-IP-Import-Files-1.png) 5. Go to the Stimulus
Hierarchy tab and select H264_frame_Encoder_tb (H264_frame_Encoder_tb. v) >
Simulate Pre-Synth Design > Open Interactively. The IP is simulated for two
frames.
Figure 2-4. Simulating Pre-Synthesis Design ModelSim opens with the testbench file as shown in the following figure.
Figure 2-5. ModelSim Simulation Window
Note: If the simulation is interrupted due to the runtime limit specified in the DO file, use the run -all command to complete the simulation.
**License
**
H.264 I-Frame Encoder IP is provided in encrypted form only under license.
Installation Instructions
The core must be installed into Libero SoC software. It is done automatically
through the Catalog update function in Libero SoC software, or the CPZ file
can be manually added using the Add Core catalog feature. When the CPZ file is
installed in Libero, the core can be configured, generated, and instantiated
within SmartDesign for inclusion in the Libero project.
For more instructions on core installation, licensing, and general use, see
Libero SoC Online Help.
Resource Utilization
The following table lists the resource utilization of a sample H.264 I-Frame
Encoder IP design made for PolarFire FPGA (MPF300TS-1FCG1152I package) and
generates compressed data by using 4:2:2 sampling of input data.
Table 5-1. Resource Utilization of the H.264 I-Frame Encoder IP
Element | Usage |
---|---|
4LUTs | 15160 |
DFFs | 15757 |
LSRAM | 67 |
µSRAM | 23 |
Math Blocks | 18 |
Interface 4-input LUTs | 3336 |
Interface DFFs | 3336 |
Revision History
The revision history table describes the changes that were implemented in the document. The changes are listed by revision, starting with the most current publication.
Revision | Date | Description |
---|---|---|
B | 06/2022 | Changed the title from “PolarFire FPGA H.264 Encoder IP User |
Guide” to “PolarFire FPGA H.264 I-Frame Encoder IP User Guide”.
A| 01/2022| The first publication of the document.
Microchip FPGA Support
Microchip FPGA products group backs its products with various support
services, including Customer Service, Customer Technical Support Center, a
website, and worldwide sales offices. Customers are suggested to visit
Microchip online resources prior to contacting support as it is very likely
that their queries have been already answered.
Contact Technical Support Center through the website at
www.microchip.com/support. Mention the
FPGA Device Part number, select appropriate case category, and upload design
files while creating a technical support case.
Contact Customer Service for non-technical product support, such as product
pricing, product upgrades, update information, order status, and
authorization.
- From North America, call 800.262.1060
- From the rest of the world, call 650.318.4460
- Fax, from anywhere in the world, 650.318.8044
Microchip Information
The Microchip Website
Microchip provides online support via our website at www.microchip.com/. This
website is used to make files and information easily available to customers.
Some of the content available includes:
- Product Support – Data sheets and errata, application notes and sample programs, design resources, user’s guides and hardware support documents, latest software releases and archived software
- General Technical Support – Frequently Asked Questions (FAQs), technical support requests, online discussion groups, Microchip design partner program member listing
- Business of Microchip – Product selector and ordering guides, latest Microchip press releases, listing of seminars and events, listings of Microchip sales offices, distributors and factory representatives
Product Change Notification Service
Microchip’s product change notification service helps keep customers current
on Microchip products. Subscribers will receive email notification whenever
there are changes, updates, revisions or errata related to a specified product
family or development tool of interest.
To register, go to www.microchip.com/pcn and
follow the registration instructions.
Customer Support
Users of Microchip products can receive assistance through several channels:
- Distributor or Representative
- Local Sales Office
- Embedded Solutions Engineer (ESE)
- Technical Support
Customers should contact their distributor, representative or ESE for support.
Local sales offices are also available to help customers. A listing of sales
offices and locations is included in this document.
Technical support is available through the website at:
www.microchip.com/support
Microchip Devices Code Protection Feature
Note the following details of the code protection feature on Microchip products:
- Microchip products meet the specifications contained in their particular Microchip Data Sheet.
- Microchip believes that its family of products is secure when used in the intended manner, within operating specifications, and under normal conditions.
- Microchip values and aggressively protects its intellectual property rights. Attempts to breach the code protection features of Microchip product is strictly prohibited and may violate the Digital Millennium Copyright Act.
- Neither Microchip nor any other semiconductor manufacturer can guarantee the security of its code. Code protection does not mean that we are guaranteeing the product is “unbreakable”. Code protection is constantly evolving. Microchip is committed to continuously improving the code protection features of our products.
Legal Notice
This publication and the information herein may be used only with Microchip
products, including to design, test, and integrate Microchip products with
your application. Use of this information in any other manner violates these
terms. Information regarding device applications is provided only for your
convenience and may be superseded by updates. It is your responsibility to
ensure that your application meets with your specifications. Contact your
local Microchip sales office for additional support or, obtain additional
support at www.microchip.com/en-us/support/design-help/client-support-
services.
THIS INFORMATION IS PROVIDED BY MICROCHIP “AS IS”. MICROCHIP MAKES NO
REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN
OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION INCLUDING BUT NOT
LIMITED TO ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND
FITNESS FOR A PARTICULAR PURPOSE, OR WARRANTIES RELATED TO ITS CONDITION,
QUALITY, OR PERFORMANCE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY
INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL, OR CONSEQUENTIAL LOSS, DAMAGE, COST,
OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE INFORMATION OR ITS USE,
HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE
DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP’S
TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THE INFORMATION OR ITS USE
WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO
MICROCHIP FOR THE INFORMATION.
Use of Microchip devices in life support and/or safety applications is
entirely at the buyer’s risk, and the buyer agrees to defend, indemnify and
hold harmless Microchip from any and all damages, claims, suits, or expenses
resulting from such use. No licenses are conveyed, implicitly or otherwise,
under any Microchip intellectual property rights unless otherwise stated.
Trademarks
The Microchip name and logo, the Microchip logo, Adaptec, AVR, AVR logo, AVR
Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO,
IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch,
MediaLB, megaAVR, Microsemi, Microsemi logo, MOST, MOST logo, MPLAB,
OptoLyzer, PIC, picoPower, PICSTART, PIC32 logo, PolarFire, Prochip Designer,
QTouch, SAM-BA, SenGenuity, SpyNIC, SST, SST Logo, SuperFlash, Symmetricom,
SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron, and XMEGA are
registered trademarks of Microchip Technology Incorporated in the U.S.A. and
other countries.
AgileSwitch, APT, ClockWorks, The Embedded Control Solutions Company,
EtherSynch, Flashtec, Hyper Speed Control, HyperLight Load, Libero,
motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus,
ProASIC Plus logo, Quiet- Wire, SmartFusion, SyncWorld, Temux, TimeCesium,
TimeHub, TimePictra, TimeProvider, TrueTime, and ZL are registered trademarks
of Microchip Technology Incorporated in the U.S.A.
Adjacent Key Suppression, AKS, Analog-for-the-Digital Age, Any Capacitor,
AnyIn, AnyOut, Augmented Switching, BlueSky, BodyCom, Clockstudio, CodeGuard,
CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController,
dsPICDEM, dsPICDEM.net, Dynamic Average Matching, DAM, ECAN, Espresso T1S,
EtherGREEN, GridTime, IdealBridge, In-Circuit Serial Programming, ICSP,
INICnet, Intelligent Paralleling, IntelliMOS, Inter-Chip Connectivity,
JitterBlocker, Knob-on-Display, KoD, maxCrypto, maxView, memBrain, Mindi,
MiWi, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, MultiTRAK, NetDetach,
Omniscient Code Generation, PICDEM, PICDEM.net, PICkit, PICtail, PowerSmart,
PureSilicon, QMatrix, REAL ICE, Ripple Blocker, RTAX, RTG4, SAM- ICE, Serial
Quad I/O, simpleMAP, SimpliPHY, SmartBuffer, SmartHLS, SMART-I.S., storClad,
SQI, SuperSwitcher, SuperSwitcher II, Switchtec, SynchroPHY, Total Endurance,
Trusted Time, TSHARC, USBCheck, VariSense, VectorBlox, VeriPHY, ViewSpan,
WiperLock, XpressConnect, and ZENA are trademarks of Microchip Technology
Incorporated in the U.S.A. and other countries.
SQTP is a service mark of Microchip Technology Incorporated in the U.S.A.
The Adaptec logo, Frequency on Demand, Silicon Storage Technology, and Symmcom
are registered trademarks of Microchip Technology Inc. in other countries.
GestIC is a registered trademark of Microchip Technology Germany II GmbH & Co.
KG, a subsidiary of Microchip Technology Inc., in other countries.
All other trademarks mentioned herein are property of their respective
companies.
© 2022, Microchip Technology Incorporated and its subsidiaries. All Rights
Reserved.
ISBN: 978-1-6683-0715-1
Quality Management System
For information regarding Microchip’s Quality Management Systems, please visit www.microchip.com/quality.
Worldwide Sales and Service
AMERICAS | ASIA/PACIFIC | ASIA/PACIFIC | EUROPE |
---|
Corporate Office
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 480-792-7200
Fax: 480-792-7277
Technical Support:
www.microchip.com/support
Web Address:
www.microchip.com
Atlanta
Duluth, GA
Tel: 678-957-9614
Fax: 678-957-1455
Austin, TX
Tel: 512-257-3370
Boston
Westborough, MA
Tel: 774-760-0087
Fax: 774-760-0088
Chicago
Itasca, IL
Tel: 630-285-0071
Fax: 630-285-0075
Dallas
Addison, TX
Tel: 972-818-7423
Fax: 972-818-2924
Detroit
Novi, MI
Tel: 248-848-4000
Houston, TX
Tel: 281-894-5983
Indianapolis
Noblesville, IN
Tel: 317-773-8323
Fax: 317-773-5453
Tel: 317-536-2380
Los Angeles
Mission Viejo, CA
Tel: 949-462-9523
Fax: 949-462-9608
Tel: 951-273-7800
Raleigh, NC
Tel: 919-844-7510
New York, NY
Tel: 631-435-6000
San Jose, CA
Tel: 408-735-9110
Tel: 408-436-4270
Canada – Toronto
Tel: 905-695-1980
Fax: 905-695-2078| Australia –
Sydney
Tel: 61-2-9868-6733
China – Beijing
Tel: 86-10-8569-7000
China – Chengdu
Tel: 86-28-8665-5511
China – Chongqing
Tel: 86-23-8980-9588
China – Dongguan
Tel: 86-769-8702-9880
China – Guangzhou
Tel: 86-20-8755-8029
China – Hangzhou
Tel: 86-571-8792-8115
China – Hong Kong SAR
Tel: 852-2943-5100
China – Nanjing
Tel: 86-25-8473-2460
China – Qingdao
Tel: 86-532-8502-7355
China – Shanghai
Tel: 86-21-3326-8000
China – Shenyang
Tel: 86-24-2334-2829
China – Shenzhen
Tel: 86-755-8864-2200
China – Suzhou
Tel: 86-186-6233-1526
China – Wuhan
Tel: 86-27-5980-5300
China – Xian
Tel: 86-29-8833-7252
China – Xiamen
Tel: 86-592-2388138
China – Zhuhai
Tel: 86-756-3210040| India – Bangalore
Tel: 91-80-3090-4444
India – New Delhi
Tel: 91-11-4160-8631
India – Pune
Tel: 91-20-4121-0141
Japan – Osaka
Tel: 81-6-6152-7160
Japan – Tokyo
Tel: 81-3-6880- 3770
Korea – Daegu
Tel: 82-53-744-4301
Korea – Seoul
Tel: 82-2-554-7200
Malaysia – Kuala Lumpur
Tel: 60-3-7651-7906
Malaysia – Penang
Tel: 60-4-227-8870
Philippines – Manila
Tel: 63-2-634-9065
Singapore
Tel: 65-6334-8870
Taiwan – Hsin Chu
Tel: 886-3-577-8366
Taiwan – Kaohsiung
Tel: 886-7-213-7830
Taiwan – Taipei
Tel: 886-2-2508-8600
Thailand – Bangkok
Tel: 66-2-694-1351
Vietnam – Ho Chi Minh
Tel: 84-28-5448-2100| Austria – Wels
Tel: 43-7242-2244-39
Fax: 43-7242-2244-393
Denmark – Copenhagen
Tel: 45-4485-5910
Fax: 45-4485-2829
Finland – Espoo
Tel: 358-9-4520-820
France – Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
Germany – Garching
Tel: 49-8931-9700
Germany – Haan
Tel: 49-2129-3766400
Germany – Heilbronn
Tel: 49-7131-72400
Germany – Karlsruhe
Tel: 49-721-625370
Germany – Munich
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
Germany – Rosenheim
Tel: 49-8031-354-560
Israel – Ra’anana
Tel: 972-9-744-7705
Italy – Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
Italy – Padova
Tel: 39-049-7625286
Netherlands – Drunen
Tel: 31-416-690399
Fax: 31-416-690340
Norway – Trondheim
Tel: 47-72884388
Poland – Warsaw
Tel: 48-22-3325737
Romania – Bucharest
Tel: 40-21-407-87-50
Spain – Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
Sweden – Gothenberg
Tel: 46-31-704-60-40
Sweden – Stockholm
Tel: 46-8-5090-4654
UK – Wokingham
Tel: 44-118-921-5800
Fax: 44-118-921-5820
© 2022 Microchip Technology Inc.
and its subsidiaries
User Guide
DS60001756B
References
- {波多野42部无码喷潮在线,18禁美女裸身无遮挡免费网站,国产成人精品一区二三区在线观看,久久精品国产亚洲AⅤ无码}
- Empowering Innovation | Microchip Technology
- Empowering Innovation | Microchip Technology
- Microchip Lightning Support
- microsemi.com/index.php?option=com_docman&task=doc_download&gid=132044
- Client Support Services | Microchip Technology
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>