1 / 7

Balancing Software Programmability and Performance in Video Processors: Insights from DesignCon 2005

This paper discusses the trade-offs associated with software programmability in video processors, focusing on the impact on performance and efficiency. It explores programmable parameters such as slice types, modes, vectors, and coefficients, and their role in processing video data. Key insights include the implementation of fixed-function state machines, DMA (Direct Memory Access), and enhanced CPU accelerators to optimize video processing tasks such as decoding, prediction, deblocking, and color space conversion. This work aims to provide guidance for designers seeking the right balance between programmability and operational performance.

gusty
Télécharger la présentation

Balancing Software Programmability and Performance in Video Processors: Insights from DesignCon 2005

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Trade-Offs of Software Programmability in Video Processors Jonah Probell Sorin Cismas Amit Gulati Steve Leibson DesignCon 2005

  2. Jonah Probell • Digital video & microprocessor designer • Entrepreneur • Intellectual property developer http://jonahprobell.com DesignCon 2005

  3. Software Programmable struct parameters { slice_type, modes, vectors, coefficients }; loop { parameters = decode_symbols(bitstream); if(slice_type == intra) prediction = intra_pred(mode); else /* slice_type == inter */ predicted = frame_buffer[pred_frame] [row + row_vec][col + col_vec]; residuals = inverse_dct(coefficients); frame_buffer[frame][row][col] = deblock(prediction + residuals); } CPU DesignCon 2005

  4. Fixed Function State Machine Fixed Function Hardwired display frame buffer memory DMA predicted modes / vectors + deblock filter symbol decode inverse DCT bitstream coefficients residuals DesignCon 2005

  5. Enhanced CPU Accelerators coprocessors ISA extensions frame buffer memory struct parameters { slice_type, modes, vectors, coefficients }; loop { parameters = decode_symbols(bitstream); if(slice_type == intra) prediction = intra_pred(mode); else /* slice_type == inter */ predicted = frame_buffer[pred_frame] [row + row_vec][col + col_vec]; residuals = inverse_dct(coefficients); frame_buffer[frame][row][col] = deblock(prediction + residuals); } DMA deblock filter CPU inverse DCT DesignCon 2005

  6. Multiprocessor display frame buffer memory DMA predicted communicate(); function(); communicate(); modes / vectors + deblock filter CPU bitstream symbol decode CPU inverse DCT CPU residuals coefficients communicate(); function(); communicate(); communicate(); function(); communicate(); DesignCon 2005

  7. Other Video Tasks • Decompression • Symbol decode • Prediction DMA • Inverse DCT • Deblocking filter • Frame scaling • Color space conversion • Stream mixing • Stream synchronization • Overlays • Color correction • Interlacing • Digital audio decode and playback DesignCon 2005

More Related