Title: Pure Java-Based Streaming MPEG Player
1Pure Java-Based StreamingMPEG Player
Osama Tolba, Hector Briceño, and Leonard
McMillan Laboratory for Computer Science M.I.T.
2Presentation Overview
- 1. Motivation
- 2. System Architecture
- 3. Novel IDCT Algorithm
- 4. Results
31. Motivation
- Explosion in multimedia Web content
- Cross-platform functionality
- Applet no need to pre-install native plug-ins
- Streaming no need for large auxiliary storage
- TV set-top decoders
- Customized sessions (multiple streams, etc.)
4Java Pros Java Cons
- Platform independent
- Small footprint
- Compact programs (40KB Jar file)
- Networking routines
- Interpreted (slow)
- Security restrictions
- Display performance
- Evolving API 1.0, 1.1
- Varied results (JIT)
52. Modular System Architecture
- Source-player architecture
- Customizable session
- Memory requirements
6Proxy Server
- Overcomes security restrictions
- Forwards bits to decoder
- Limited buffer
- Implemented in C
73. Forward-Mapping IDCT
- Decoder bottlenecks
- FMIDCT McMillan Westover, DCC 92
- Combined table lookup
8Forward-Mapping IDCT
Dequantized DCT Coefficients
Luminance or Chroma
K u, v 8x8 Basis
9IDCT Basis Functions
- Unique coefficients in each basis function
- Shared coefficients
- Only 28 out of 4096
Unique Coefficients
10Improved FMIDCT
- Basis function symmetry
- 4x4 accumulator arrays instead of 8x8
- Reduced computation, fit in registers
4
H
Q
-H
Q
4
V
D
V
-D
B
A
H
Q
-H
Q
-V
-D
-V
D
K1,1 Type D Symmetry
C
D
11FMIDCT Flow Chart
For each symmetry type
Retrieve scaled basis vector
Symmetry Types
Accumulate in Qa, Qb, Qc, Qd
Qf Qa Qb Qc Qd Hf (Qa - Qb Qc - Qd)
R Vf R (Qa Qb - Qc - Qd) Df R (Qa - Qb -
Qc Qd) R
Mirroring matrix
12Dequantizer Cache
p level, qval, qscale, type
- Level macroblock quantizer scale
- qval quantized symbol
- qscale element quantizer scale
- type intra/inter-frame encoding
Hashing H(p)
In cache?
I u,v dequantize(p)
N
Translate to index of scaled vector
Y
Index cacheEntryH(p)
Store index in cache
134. Results
- 176 x 144 _at_ 28 fps, 352 x 240 _at_ 11 fps
- Decode 1.8 M pix/sec, Display 670K pix/sec
display
decode
14User Interface
- http//compvid.lcs.mit.edu/cv/mpeg/
15Summary
- Portable, streaming player
- Efficient FMIDCT algorithm
- Modular design, customizable sessions
- Promising performance, bottlenecks exist
- Further Work
- Time vs. quality trade-off
- Rate control, skip frame display
16Acknowledgements
- Sponsored by DARPA (agreement F30602-97-1-0283)
- http//www.mpeg.org