Programming CellBE and GPUs systems for realtime video encoding In this work scalable parallelization methods for computing in realtime the H.264AVC on multicores platforms, such as the most recent Graphical Processing Units (GPUs) and Cell Broadband Engine (CellBE), are proposed. By applying the Amdahlu0027s law, the most demanding parts of the video coder were identified and the Single Program Multiple Data and Single Instruction Multiple Data approaches are adopted for achieving realtime processing. In particular, video motion estimation and inloop deblocking filtering were offloaded to be executed in parallel on either GPUs or CellBE Synergistic Processor Elements (SPEs). The limits and advantages of these two architectures when dealing with typical video coding problems, such as data dependencies and large input data are demonstrated. We propose techniques to minimize the impact of branch divergences and branch misprediction, data misalignment, conflicts and noncoalesced memory accesses. Moreover, data dependencies and memory size restrictions are taken into account in order to minimize synchronization and communication time overheads, and to achieve the optimal workload balance given the available multiple cores. Data reusing technique is extensively applied for reducing communication overhead, in order to achieve the maximum processing speedup. Experimental results show that real time H.264AVC is achieved in both systems by computing 30 frames per second, with a resolution of 720x576 pixels, when fullpixel motion estimation is applied over 5 reference frames and 32 x 32 search area. When quarterpixel motion estimation is adopted, real time video coding is obtained on GPU for larger search area and on CellBE for smaller search areas.

Cell blade based H.264 video encoding engine for large scale video surveillance applications Video surveillance has become one of the most important tools for public safety and security. In this paper, we present our new work on developing efficient parallel computing algorithms and schemes for implementing H.264 video encoder engine on Cell Broadband Engine (CBE) blade for high performance large scale video surveillance applications. Extending our previous work on H.264 video encoding on CBE, we have developed new parallel computing schemes in computational load partition, dynamic task scheduling, motion estimation, and mode selection. We partition the intensive H.264 video encoding computation load into four major functional modules, namely, the preprocessing module, the motion estimation module, the mode selection and transformquantization module, and the Context Adaptive Binary Arithmetic Coding (CABAC) module. The task scheduler dynamically assigns a waiting computing task to a SPE as soon as it becomes available. Our new implementation has achieved more than 5X performance improvement to encode 32 standarddefinition (SD 720x480 pixel resolution) H.264 video streams simultaneously at 30 frames per second with one Cell Blade that consists of 16 Synergistic Processor Elements (SPEs) and two control Power Processor Elements (PPEs) or 448 SD channels of H.264 video streams on a single chassis Cell Blade Center with 14 Cell Blades.