Synphony C Compiler for Video Applications  


Video usage over the past few years have been growing at an explosive rate. From TV’s, computers to handheld devices, the ability for the user to quickly create and view high quality video content is a key differentiator in the consumer market. Designers across the entire video chain from content creators, delivery networks, and display are facing extreme challenges:

  1. The push is towards higher and higher resolutions and frame rates for more life-like displays to enhance the viewing experience. Higher resolutions require higher data rates and data volume per frame. For example, 1080p HD video at 60 frames per second has 1.2Gbits/sec data rate (~5 times the rate for SD) and requires GOps of processing power.
  2. To cope with the exponential growth of data, standards and formats are constantly evolving. Not only does the designer have to come up with algorithms that deliver a compelling user experience, rapid time to market and support for multiple standards is crucial to success.
  3. New user experiences like 3-D, OLED further exacerbates these challenges.

Traditional RTL design methodologies can not keep up with these requirements, and can leave a design team at a disadvantage with respect to competitors.

Synphony takes the hassle out of detailed RTL design by enabling designers to capture designs at the C level. This allows the designer to focus on the overall architecture and algorithm details, while Synphony C Compiler takes care of the complex task of extracting parallelism and creating high performance processing pipelines on both SoC and FPGA.

Typical Video Designs
  • Encoding, decodeing and transcoding: Single- or multi-standard encoders/decoders/transcoders supporting various standards such as H.264, MPEG-4, MPEG-4 and VC1.
  • Video post processing: Sophisticated frame rate conversion, format conversion, up/down scaling, picture-in-picture, noise reduction and sharpening
  • Display: LED backlighting types of application
  • Video analytics: Edge detection, face detection, lane/sign detection for automotive applications

Demonstration Example
Video scaling is a common application used for providing functionality such as in picture-in-picture displays and for improving video quality, among others. The high pixel rate of HD video along with the compute requirements of high quality scaling filters lead to large computation requirements. This example demonstrates the use of Synphony C Compiler to design a highly configu­rable, picture-in-picture scaler for 1080p@60Hz video in less than 2 man weeks. The overall block diagram of the design and the demonstration setup are shown below. A region in the input video is upscaled and displayed in a picture-in-picture window over the original video.

Applications Video

Design details
  • All functionality coded in C and integrated on the board through an RTL wrapper
  • Configurable input and output windows: Window sizes, positions and scale factors can change every frame
  • Scaled output displayed as picture-in-picture over original video
  • Dynamic scaling and support for non-integral scaling factor
  • Multiple kernels with split screen (Mitchell and box kernel)
  • Controller program determines changes from frame to frame

Time Estimates:
  • Initial Synphony C Compiler design (Full screen output window) – 2-3 days
  • Final design (Picture in Picture, Programmable) – 3-4 days

Customer Case Study: Multi-standard Deblocking Filter
ST Microelectronics used Synphony C Compiler to design a multi-standard deblocking and deringing filter to remove the artifacts created by video decoders. The filter supports H.264, MPEG4 and VC1 video standards as well as multiple formats with support for upscaling and format conversion. For this project, the complete design was created in untimed C. The following table shows the comparison between Synphony C Compiler design and hand design

 Synphony C Compiler Hand RTL
Maximum FrequencyAchievedAchieved
Gate count <167k 167kgate
Power consumption7 mW9 mW
Perf550 cycles/MB768 cycles/MB
Effort11 man months30 man months
Data from DAC 2008:  Multi-standard HD de-blocking filter

Synphony C Compiler design provided 30% higher performance and ~20% lower power than a manual design with approximately the same area. The project also demonstrated ~3x productivity gain compared to the manual design. In addition, ST was able to explore different architectural choices and implementations allowing ST to make decisions rapidly to converge on a highly optimized design

Other Representative Designs:
  • Parts of a multi-standard HD codec for mobile platforms (6 standards including H.264, MPEG2, MPEG4 and VC1)
    • 7 designs ranging from 75k gates – 250k gates
  • Low cost multi-standard codec for mobile platforms -- all major blocks developed in Synphony C Compiler
  • Parts of a multi-standard HD codec for high performance consumer devices (10 standards including H.264 and VC1)
    • 3 designs ranging from120k gates to 400k gates
  • Adaptive video post processing such as noise reduction for 720p and 1080p HDTV: Area and performance were similar to manual designs but Synphony C Compiler provided significant productivity advantage.
  • H.264 Codec: Encoder pipeline for the H.264 video compression standard. This core was developed entirely by Synopsys as an example of the capabilities of Synphony C Compiler. Code example is available from Synopsys
  • Interlacer / Deinterlacer: multi-resolution pixel processor for interlacing / de-interlacing
  • Color-space converters: Multiple color-space converters used to adapt the quality of video to the ambient viewing conditions, and to gauge the impact of visual phenomena on the viewing experience. Examples of color-space converters created in Synphony C Compiler are: CIECAM97, CIECAM02 and Hunt Model.