Pure JavaBased Streaming MPEG Player Osama Tolba Hector

Pure Java-Based Streaming MPEG Player Osama Tolba, Hector Briceño, and Leonard Mc. Millan Laboratory for Computer Science M. I. T. 11/3/98 Java-Based MPEG Player

Presentation Overview 1. Motivation 2. System Architecture 3. Novel IDCT Algorithm 4. Results 11/3/98 Java-Based MPEG Player 2

1. Motivation z. Explosion in multimedia Web content z. Cross-platform functionality z. Applet: no need to pre-install native plug-ins z. Streaming: no need for large auxiliary storage z. TV set-top decoders z. Customized sessions (multiple streams, etc. ) 11/3/98 Java-Based MPEG Player 3

Java Pros Java Cons z Platform independent z Small footprint z Compact programs (40 KB Jar file) z Networking routines z Interpreted (slow) z Security restrictions z Display performance z Evolving API: 1. 0, 1. 1 z Varied results (JIT) 11/3/98 Java-Based MPEG Player 4

2. Modular System Architecture z. Source-player architecture z. Customizable session z. Memory requirements 11/3/98 Java-Based MPEG Player 5

Proxy Server z. Overcomes security restrictions z. Forwards bits to decoder z. Limited buffer z. Implemented in C 11/3/98 Java-Based MPEG Player 6

3. Forward-Mapping IDCT z. Decoder bottlenecks z. FMIDCT: Mc. Millan & Westover, DCC ’ 92 z. Combined table lookup 11/3/98 Java-Based MPEG Player 7

Forward-Mapping IDCT Luminance or Chroma 11/3/98 K u, v: 8 x 8 Basis Java-Based MPEG Player Dequantized DCT Coefficients 8

IDCT Basis Functions z. Unique coefficients in each basis function z. Shared coefficients z. Only 28 out of 4096 Unique Coefficients 11/3/98 Java-Based MPEG Player 9

Improved FMIDCT z. Basis function symmetry z 4 x 4 accumulator arrays instead of 8 x 8 z. Reduced computation, fit in registers 4 4 Q H Q -H V V -D 11/3/98 D A B Q H Q -H -V -D -V D C D K 1, 1: Type D Symmetry Java-Based MPEG Player 10

FMIDCT Flow Chart For each symmetry type Retrieve scaled basis vector Symmetry Types Accumulate in Qa, Qb, Qc, Qd Qf = Q a + Q b + Q c + Q d Hf = (Qa - Qb + Qc - Qd) R Vf = R (Qa + Qb - Qc - Qd) Df = R (Qa - Qb - Qc + Qd) R 11/3/98 Java-Based MPEG Player Mirroring matrix 11

Dequantizer Cache p = {level, qval, qscale, type} • type: intra/inter-frame encoding N I u, v = dequantize(p) Translate to index of scaled vector Y Index = cache. Entry[H(p)] 11/3/98 • qval: quantized symbol • qscale: element quantizer scale Hashing: H(p) In cache? • Level: macroblock quantizer scale Store index in cache Java-Based MPEG Player 12

4. Results z 176 x 144 @ 28 fps, 352 x 240 @ 11 fps z. Decode: 1. 8 M pix/sec, Display: 670 K pix/sec decode 11/3/98 Java-Based MPEG Player display 13

User Interface • http: //compvid. lcs. mit. edu/cv/mpeg/ • Std menus / controls 11/3/98 • PIP / visual controls Java-Based MPEG Player 14

Summary z. Portable, streaming player z. Efficient FMIDCT algorithm z. Modular design, customizable sessions z. Promising performance, bottlenecks exist Further Work: z. Time vs. quality trade-off z. Rate control, skip frame display 11/3/98 Java-Based MPEG Player 15

Acknowledgements z. Sponsored by DARPA (agreement F 30602 -971 -0283) zhttp: //www. mpeg. org 11/3/98 Java-Based MPEG Player 16
- Slides: 16