The Trade-Offs of Software Programmability i by bQ1Bs1q

VIEWS: 23 PAGES: 7

									    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 */               CPU
      predicted = frame_buffer[pred_frame]
             [row + row_vec][col + col_vec];

    residuals = inverse_dct(coefficients);

    frame_buffer[frame][row][col] =
      deblock(prediction + residuals);
}

                                DesignCon 2005
                            Fixed Function

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


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




                                                 DesignCon 2005
                                 Multiprocessor

                                                            frame buffer memory             display




communicate();
                          modes /                       predicted
function();
                                              DMA
communicate();
                          vectors                                             deblock
                                                                          +    filter
                 symbol                      inverse                           CPU
 bitstream
                 decode                       DCT           residuals
                            coefficients
                  CPU                         CPU                                 communicate();
                                                            communicate();
                                                                                  function();
                                                            function();
                                                                                  communicate();
                                                            communicate();


                                           DesignCon 2005
                      Other Video Tasks

 Decompression
       Symbol decode
       Prediction DMA
       Inverse DCT
       Deblocking filter
   Frame scaling
   Color space conversion         Digital audio decode and playback
   Stream mixing
   Stream synchronization
   Overlays
   Color correction
   Interlacing

                             DesignCon 2005

								
To top