70 likes | 159 Views
The Trade-Offs of Software Programmability in Video Processors. Jonah Probell Sorin Cismas Amit Gulati Steve Leibson. Jonah Probell. Digital video & microprocessor designer Entrepreneur Intellectual property developer http://jonahprobell.com. Software Programmable.
E N D
The Trade-Offs of Software Programmability in Video Processors Jonah Probell Sorin Cismas Amit Gulati Steve Leibson DesignCon 2005
Jonah Probell • Digital video & microprocessor designer • Entrepreneur • Intellectual property developer http://jonahprobell.com DesignCon 2005
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
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
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
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
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