Configurable Video Codin g Fast, Flexible Multimedia Processing Iain Richardson and Maja Bystrom OneCodec Ltd  onecodec.com openvideocoding.org Embedded Systems Convention,  Boston, September 2010
What we will talk about
 
Low quality Low compression High computation High quality High compression Low computation POOR PERFORMANCE GOOD PERFORMANCE
We have problems
 
 
Lots of Options = Good Performance
What happens if we keep increasing  the options?
A New Approach:  Configurable Video Coding   MPEG Reconfigurable Video Coding Fully Configurable Video Coding Configurable Video Decoder Compressed video Decoder Configuration Decoder Configuration  Parsing/Instantiation Video Frames
 
 
Coded video Video Frames Video Decoder CONVENTIONAL STANDARDS Reconfigurable Video Decoder Coded video Config Video Tool Library Video Frames MPEG  RECONFIGURABLE VIDEO CODING Universal Video Decoder v C Video Frames C v C v FULLY CONFIGURABLE VIDEO CODING
RVC Vision:  Working within the Standard FU  Instantiation Compressed Video Decoder Description MPEG Video  Tool Library (FUs) Decoder  Instantiation Decoder  Decoder Model  Instantiation Abstract Decoder Model  Video Frames Standardized Toolset
How it Works: Encoder  Selected  FUs Video Tool Library (Functional  Units) BSDL Decoder Description Language (DDL) DDL  Generator Specifies FUs and their connections Functional Units are described in the dataflow-oriented language CAL basic components are “actors” tokens interface between actors FNL  Generator FU Network Language (FNL) Bitstream syntax description
CAL Example from Janneck, et al. “Translating Dataflow Programs to Efficient Hardware: an MPEG-4 Simple Profile Case Study”, DATE, 2008. actor ForemanSource() int (size=8) MPEG, int (size=8)  COMPARE  = = >  int  (size=8) dataout, int (size=32) errors : int mismatch :=0; int (size=24) count := 0; action MPEG:[mpeg], COMPARE:[comp] = = > dataout:[mpeg] guard mismatch = 0 do mismatch := bitxor(mpeg, comp); count := count +1; end action = = > errors:[ bitor( lshift(count,0)), bitand(old mismatch, 0xFF))] guard mismatch := 0 do  mismatch := 0; end end ForemanSource MPEG COMPARE dataout errors
How it Works: Decoder  FU  Instantiation Compressed Video Decoder  Instantiation Decoder  Decoder Model  Instantiation FNL FNL decoder BSDL MPEG Video  Tool Library (FUs) Parser Generation  Abstract Decoder Model Parser Decoder  Description (FUs with connections) Video Frames
Decoder Instantiation Options Examples  taken from  Gorin, et al., “A MPEG RVC decode implementation based on Low Level Virtual Machine (LLVM), MPEG  m17318,  ( Kyoto), 2010 Compressed Video C synthesis using Orcc + compilation Decoder  Compressed Video Java synthesis using Orcc + compilation Decoder  Video Frames Video Frames
Performance: Hardware Synthesis Data taken from Janneck, et al. “Translating Dataflow Programs to  Efficient Hardware: an MPEG-4 Simple Profile Case Study”, DATE, 2008.  Hardware Synthesis Method Processing Time (MB/s) Size (Slices, BRAM) VHDL 180k 4637 CAL 290k 3872
  RVC Benefits Shorter time to market Rapid upgrades Custom decoders Cheaper  decoders Modular hardware? Current +  new formats Research opportunities Better video quality Customizable to content
RVC Challenges Supporting Tools Profilers Schedulers Software Synthesis Tool Library Additional Platforms Encoding  Toolbox
Fully Configurable Video Coding
How it works: Encoder Algorithm/ function code Decoder Description Syntax (DDS) Parser Configuration engine chooses functions/algorithms which are specified in reduced form of C
Variables Program Decoding Tool Variables Program Decoding Tool UVD engine Video Frames Variables Program Decoding Tool DDS Compressed Video Bitstream DDS decoder How it works: Decoder
Seven-entry program instruction sets Variable and data descriptors Decoder Description Syntax … Operation Symbol/ Descrip. Type OPCODE Type (out) out Type (in 1) in1 Type (in 2) in2  out = in1 + in2 +  int 0 - idx - idx - idx out = in1 – in2 - int 1 - idx - idx - idx for(init,cond,post) {} for loop - 34 offset idx offset idx offset idx offset idx flag idx - -
Universal Video Decoder DDS Function decoder/ Initialise DDS Compressed Video Decoder Execution Manager Data  Function Object Data  Instructions Data  Function Object Data  Instructions Machine executable code JIT Compiler Optimiser M/C Code generator
Demonstration config video …
FCVC Benefits Shorter time to market Instantaneous upgrades Custom decoders Cheaper  decoders Modular hardware? Current +  new formats Better video quality Research opportunities Customizable to content Customizable to resources
FCVC Challenges Adaptive  coding  algorithms Universal Video Decoder Fast Software  UVDs Efficient Hardware UVDs Decoder Description Syntax Finalize DDS Standard  decoders in DDS Transport protocols
For Further Information or to Participate mpeg.chiariglione.org/visions/rvc/ www.openvideocoding.org embedded.eecs.berkeley.edu/caltrop sourceforge.net/projects/opendf sourceforge.net/apps/trac/orcc onecodec.com
Contact Information Twitter:  @onecodec [email_address] [email_address]

Configurable Video Coding

  • 1.
    Configurable Video Coding Fast, Flexible Multimedia Processing Iain Richardson and Maja Bystrom OneCodec Ltd onecodec.com openvideocoding.org Embedded Systems Convention, Boston, September 2010
  • 2.
    What we willtalk about
  • 3.
  • 4.
    Low quality Lowcompression High computation High quality High compression Low computation POOR PERFORMANCE GOOD PERFORMANCE
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
    Lots of Options= Good Performance
  • 10.
    What happens ifwe keep increasing the options?
  • 11.
    A New Approach: Configurable Video Coding MPEG Reconfigurable Video Coding Fully Configurable Video Coding Configurable Video Decoder Compressed video Decoder Configuration Decoder Configuration Parsing/Instantiation Video Frames
  • 12.
  • 13.
  • 14.
    Coded video VideoFrames Video Decoder CONVENTIONAL STANDARDS Reconfigurable Video Decoder Coded video Config Video Tool Library Video Frames MPEG RECONFIGURABLE VIDEO CODING Universal Video Decoder v C Video Frames C v C v FULLY CONFIGURABLE VIDEO CODING
  • 15.
    RVC Vision: Working within the Standard FU Instantiation Compressed Video Decoder Description MPEG Video Tool Library (FUs) Decoder Instantiation Decoder Decoder Model Instantiation Abstract Decoder Model Video Frames Standardized Toolset
  • 16.
    How it Works:Encoder Selected FUs Video Tool Library (Functional Units) BSDL Decoder Description Language (DDL) DDL Generator Specifies FUs and their connections Functional Units are described in the dataflow-oriented language CAL basic components are “actors” tokens interface between actors FNL Generator FU Network Language (FNL) Bitstream syntax description
  • 17.
    CAL Example fromJanneck, et al. “Translating Dataflow Programs to Efficient Hardware: an MPEG-4 Simple Profile Case Study”, DATE, 2008. actor ForemanSource() int (size=8) MPEG, int (size=8) COMPARE = = > int (size=8) dataout, int (size=32) errors : int mismatch :=0; int (size=24) count := 0; action MPEG:[mpeg], COMPARE:[comp] = = > dataout:[mpeg] guard mismatch = 0 do mismatch := bitxor(mpeg, comp); count := count +1; end action = = > errors:[ bitor( lshift(count,0)), bitand(old mismatch, 0xFF))] guard mismatch := 0 do mismatch := 0; end end ForemanSource MPEG COMPARE dataout errors
  • 18.
    How it Works:Decoder FU Instantiation Compressed Video Decoder Instantiation Decoder Decoder Model Instantiation FNL FNL decoder BSDL MPEG Video Tool Library (FUs) Parser Generation Abstract Decoder Model Parser Decoder Description (FUs with connections) Video Frames
  • 19.
    Decoder Instantiation OptionsExamples taken from Gorin, et al., “A MPEG RVC decode implementation based on Low Level Virtual Machine (LLVM), MPEG m17318, ( Kyoto), 2010 Compressed Video C synthesis using Orcc + compilation Decoder Compressed Video Java synthesis using Orcc + compilation Decoder Video Frames Video Frames
  • 20.
    Performance: Hardware SynthesisData taken from Janneck, et al. “Translating Dataflow Programs to Efficient Hardware: an MPEG-4 Simple Profile Case Study”, DATE, 2008. Hardware Synthesis Method Processing Time (MB/s) Size (Slices, BRAM) VHDL 180k 4637 CAL 290k 3872
  • 21.
    RVCBenefits Shorter time to market Rapid upgrades Custom decoders Cheaper decoders Modular hardware? Current + new formats Research opportunities Better video quality Customizable to content
  • 22.
    RVC Challenges SupportingTools Profilers Schedulers Software Synthesis Tool Library Additional Platforms Encoding Toolbox
  • 23.
  • 24.
    How it works:Encoder Algorithm/ function code Decoder Description Syntax (DDS) Parser Configuration engine chooses functions/algorithms which are specified in reduced form of C
  • 25.
    Variables Program DecodingTool Variables Program Decoding Tool UVD engine Video Frames Variables Program Decoding Tool DDS Compressed Video Bitstream DDS decoder How it works: Decoder
  • 26.
    Seven-entry program instructionsets Variable and data descriptors Decoder Description Syntax … Operation Symbol/ Descrip. Type OPCODE Type (out) out Type (in 1) in1 Type (in 2) in2 out = in1 + in2 + int 0 - idx - idx - idx out = in1 – in2 - int 1 - idx - idx - idx for(init,cond,post) {} for loop - 34 offset idx offset idx offset idx offset idx flag idx - -
  • 27.
    Universal Video DecoderDDS Function decoder/ Initialise DDS Compressed Video Decoder Execution Manager Data Function Object Data Instructions Data Function Object Data Instructions Machine executable code JIT Compiler Optimiser M/C Code generator
  • 28.
  • 29.
    FCVC Benefits Shortertime to market Instantaneous upgrades Custom decoders Cheaper decoders Modular hardware? Current + new formats Better video quality Research opportunities Customizable to content Customizable to resources
  • 30.
    FCVC Challenges Adaptive coding algorithms Universal Video Decoder Fast Software UVDs Efficient Hardware UVDs Decoder Description Syntax Finalize DDS Standard decoders in DDS Transport protocols
  • 31.
    For Further Informationor to Participate mpeg.chiariglione.org/visions/rvc/ www.openvideocoding.org embedded.eecs.berkeley.edu/caltrop sourceforge.net/projects/opendf sourceforge.net/apps/trac/orcc onecodec.com
  • 32.
    Contact Information Twitter: @onecodec [email_address] [email_address]