VESA Display Stream Compression IP User Guide
VESA Display Stream Compression IP User Guide
0 User
Guide
Introduction
Display Stream Compression (DSC) is a visually lossless video compression targeted for display devices. As there is
demand for higher video resolutions and higher frame rates, the data bandwidth required to transmit the video keeps
increasing. To transmit high video resolutions such as 4K and 8K, the source, transmission path, that is the display
cable, and the display should support higher data rates. These high data rates increase the cost of the source, cable
and the display. DSC is used to reduce the data rate required to transmit high resolution videos and there by reducing
the cost. DSC was first introduced by Video Electronics Standards Association (VESA) in 2014. DSC compression is
supported by the latest versions of the popularly used protocols such as HDMI, Display port, and MIPI DSI.
DSC implements compression by combining a group of pixels in a horizontal line. The compression algorithm uses
several stages such as prediction, quantization, entropy encoding, and rate control. There are two types of algorithms
for prediction, which are Modified Median Adaptive Filter (MMAP) and Mid-Point Prediction (MPP). The predicted
data is quantized based on the rate control to achieve constant bandwidth at the output. The quantized data is then
passed to the Variable Length Coding (VLC) that minimizes the bits used to represent the quantized output. These
compression stages are implemented for Y, Cb, and Cr component and the outputs of these stages are combined at
the end using a substream multiplexer.
DSC supports splitting a video frame into multiple slices horizontally with equal size. The slicing of a frame allows
parallel processing of slices to handle high resolution video frames. The DSC IP supports two slices and uses MMAP
and MPP predictions.
Features
Supported Families
1. Hardware Implementation....................................................................................................................... 3
1.1. Inputs and outputs........................................................................................................................3
1.2. Configuration Parameters............................................................................................................ 3
1.3. Hardware Implementation of DSC IP........................................................................................... 4
2. Testbench................................................................................................................................................7
2.1. Simulation.....................................................................................................................................7
3. License..................................................................................................................................................10
4. Installation Instructions.......................................................................................................................... 11
5. Resource Utilization.............................................................................................................................. 12
6. Revision History.................................................................................................................................... 13
Microchip Information................................................................................................................................... 14
The Microchip Website..........................................................................................................................14
Product Change Notification Service.................................................................................................... 14
Customer Support................................................................................................................................. 14
Microchip Devices Code Protection Feature.........................................................................................14
Legal Notice.......................................................................................................................................... 15
Trademarks........................................................................................................................................... 15
Quality Management System................................................................................................................ 16
Worldwide Sales and Service................................................................................................................17
1. Hardware Implementation
The following figure shows the DSC IP block diagram.
Figure 1-1. DSC Encoder IP Block Diagram
Slice1
Bitstream PPS
Bitstream
MUX
Slice
Slice2 Multiplexer
Bitstream
Rate control
Decoder
Model
VLC MUXWORD_Y
Line Prediction & Entropy Balance
Y Component Quantization FIFO
Buffer encoder
picture quality by way of its QP decisions. Lower QP on flat areas of the image and Higher QP on busy areas of the
image ensures you to maintain constant quality for all the pixels.
2. Testbench
Testbench is provided to check the functionality of the DSC IP.
2.1 Simulation
The simulation uses a 432x240 image in YCbCr444 format represented by three files, each for Y, Cb, and Cr as input
and generates a .txt file format that contains one frame.
To simulate the core using the testbench, perform the following steps:
1. Go to Libero® SoC Catalog tab, expand Solutions-Video, double-click DSC_Encoder, and then click OK.
Note: If you do not see the Catalog tab, navigate to View > Windows menu and click Catalog to make it
visible.
Figure 2-1. DSC Encoder IP Core in Libero SoC Catalog
2. Go to the Files tab, right-click simulation, and then click Import Files.
3. Import the img_in_luma.txt, img_in_cb.txt, img_in_cr.txt, and DSC_out_ref.txt files from the
following path: ..\<Project_name>\component\Microchip\SolutionCore\ DSC_Encoder\<DSC
IP version>\Stimulus.
The imported file is listed in the simulation folder as shown in the following figure.
Figure 2-3. Imported Files
4. Go to Libero SoC Stimulus Hierarchy tab, select the testbench (DSC_Encoder_tb. v), right-click and then
click Simulate Pre-Synth Design > Open Interactively. The IP is simulated for one frame.
Note: If you do not see the Stimulus Hierarchy tab, navigate to View > Windows menu, and then click
Stimulus Hierarchy to make it visible.
Figure 2-4. Simulating the 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.
3. License
VESA DSC IP is provided only in encrypted form.
Encrypted RTL source code is license locked, which needs to be purchased separately. You can perform simulation,
synthesis, layout, and program the Field Programmable Gate Array (FPGA) silicon using the Libero design suite.
Evaluation license is provided for free to explore the VESA DSC IP features. The evaluation license expires after an
hour’s use on the hardware.
4. Installation Instructions
DSC IP core must be installed to the IP Catalog of the Libero SoC software. This is done automatically through the
IP Catalog update function in the Libero SoC software, or the IP core can be manually downloaded from the catalog.
Once the IP core is installed in the Libero SoC software IP Catalog, the core can be configured, generated, and
instantiated within the SmartDesign tool for inclusion in the Libero projects list.
5. Resource Utilization
The following table lists the resource utilization of a sample DSC IP design made for PolarFire FPGA
(MPF300TS-1FCG1152I package) and generates compressed data by using 4:4:4 sampling of input data.
Table 5-1. Resource Utilization
Resource Usage
DFFs 11132
4LUT 21988
LSRAM 48
uSRAM 0
Math Blocks 2
6. Revision History
The revision history describes the changes that were implemented in the document. The changes are listed by
revision, starting with the current publication.
Table 6-1. Revision History
Microchip Information
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
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-