240 likes | 273 Views
Multi-CPU Video Processing. Igor Jánoš. Goal of This Project. Decode and process a full-HD video clip using only software resources Dimension – 1920 x 1080 pixels. Motivation. High computational power demands for HD video Latest trend – integrate more CPU cores in one chip
E N D
Multi-CPU Video Processing Igor Jánoš
Goal of This Project • Decode and process a full-HD video clip using only software resources • Dimension – 1920 x 1080 pixels
Motivation • High computational power demands for HD video • Latest trend – integrate more CPU cores in one chip • Systems without powerful GPU • GPU is busy with another job
Video Filters • Deinterlace • Noise reduction • Color controls • No dependencies among resulting pixels • Very good for thread-parallel processing
Deinterlace Filter • Produces frames at doubled rate – higher memory demands • Combines odd and even lines from successive frames • Half-pixel shift to reduce comb effect • Reads 2 frames • Writes 2 frames
Previous Frame Current Frame Generated Interlaced Frame Output Frame 1 Output Frame 2
Denoise Filter • Gradual noise reduction • Threshold – reduces temporal noise • Weighted averaging • More difficult to compute • Reads 2 frames • Writes 1 frame
Color Controls Filter • Reads 1 frame • Writes 1 frame • Easy to compute in Y-U-V color space
Basic algorithm idea • “Divide & Conquer” approach • Assign a part of a larger job for each CPU core
Experiment • Use processing filters with live video and offline content • Standard Definition • High Definition
Conclusion • Software-only thread-parallel processing is possible in real-time • Memory performance is the bottleneck • DI performance drop after exceeding memory page size • Latest Quad-Core CPUs from Intel with enlarged L2 cache - 40% faster
Future Work • Different frame buffer structure • Hybrid encoder/decoder (GPU + Multi-core CPU) • GPU – motion estimation & compensation, color space conversion, deblocking • CPU – VLC, transformations, intra predictions