| August 14, 2010 9:00 AM PDT | |
JPEG old threading model - IPP 6.1 and earlier
- Based on parallel processing of one row of MCUs(Minimum Coded Units) by each thread
- Each thread perform JPEG actions under own MCU row (CC, SS, DCT) in parallel, except VLC(Variable Length Coding) step. (CC-Color Conversion;SS-Sub Sampling;DCT-Discrete Cosine Transform)
- VLC can be done only in serial manner due to data dependency of MCU blocks for this operation
- VLC is main challenge in parallel JPEG processing
JPEG new threading model in IPP 7.0
- JPEG standard allow to split data stream to Independently processed segments called Restart Intervals (RSTI).
- Each restart interval contain a fixed number of MCUs
- RSTI separated by restart markers (RSTm) - New threading model based on parallel processing of this RSTI
- Using RSTI allow to resolve main bottleneck of old model - existence of serial part in JPEG pipeline the VLC.
- It can be achieved due to main property of RSTI - independency of MCU blocks of one RSTI from MCU blocks another RSTI.
- This property allow to do all JPEG operation - CC, SS, DCT and VLC - for each RSTI by threads in parallel
Performance Comparison (IPP 7.0 vs. 6.1)
| Optimization Notice |
|---|
|
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice. Notice revision #20110804 |
This article applies to: Intel® C++ Compiler for Linux* Knowledge Base, Intel® C++ Compiler for Mac OS X* Knowledge Base, Intel® C++ Compiler for Windows* Knowledge Base, Intel® Integrated Performance Primitives Knowledge Base, Intel® Parallel Composer Knowledge Base
For more complete information about compiler optimizations, see our Optimization Notice.


