370 likes | 778 Views
H.264 to VP6 Transcoding. Jay R Padia MS Student, UT Arlington E-mail : jaypadia@uta.edu June 09, 2008. Outline. About Me About VP6 Comparison – VP6 & H.264 Available research – H.263 to VP6 transcoder Challenges Available resources. About VP6. Developed by On2 Technologies, Inc.
E N D
H.264 to VP6 Transcoding Jay R Padia MS Student, UT Arlington E-mail: jaypadia@uta.edu June 09, 2008
Outline • About Me • About VP6 • Comparison – VP6 & H.264 • Available research – H.263 to VP6 transcoder • Challenges • Available resources
About VP6 • Developed by On2 Technologies, Inc. • Proprietary codec licensed by Adobe • Used for Flash 8 Video and higher versions • Good Compression • Quality – half the bandwidth for same video quality • Portability – supports most hardware and OS • Stability • Memory Usage – uses less host device memory
VP6 Fundamentals • YUV 4:2:0 Internal Format • MB Modes and Mode based coding • ¼ pixel Motion estimation on 16x16 and 8x8 blocks • 8x8 DCTs only • Linear Quantization • Prediction Filter ( in the loop but in different spot) • Two Entropy Strategies ( akin to VLC, and one akin to Cabac) • Extensive Context Encoding
VP6 – Motion Estimation Golden Frames – A new reference frame stored in a buffer Modes • Intra ( No spatial prediction modes) • Inter Nearest MV ( check 12 nearest neighbors ). • Inter Near MV Mode • Inter 0,0 MV Mode • Inter New MV Mode • Inter Four MV Mode • Golden 0,0 MV mode • Golden Nearest MV • Golden Near MV • Gold New MV
VP6 - DC Prediction, DCT, Quantization • DC Prediction is based on the left and the block above • Both blocks have same prediction frame: predictor is average of the two values • DCT not exactly standard. Need to match it exactly or you get bitstream drift. Butterfly is used for optimization • Quantization occurs off predicted DC value
VP6 – Entropy Coding • Bool Coder • Based on Simplified Binary Arithmetic Coder • Not – CABAC • Typical Huffman Encoding • Context Based Entropy Coding • DC Coding Context (Dimensions) • AC Coding Context (Dimensions)
Comparison – H.264 vs VP6 Comparison of H.264 features and VP6 features
Available research– H.263 to VP6[6] Transcoding H.263 to VP6 • Uses pixel domain transcoding • Transcoder designed on the basis of similarities and dissimilarities between the two standards
Available Research– H.263 to VP6[6] • Both H.263 and VP6 support 1 MV and 4 MV => Motion Vectors can be reused to some extent • However large number of MB modes in VP6 => Motion Vectors cannot be used directly • Not all modes evaluated for a given H.263 mode. • Reduce complexity by constraining evaluated MB modes
Available Research– H.263 to VP6[6] Complexity reduction using • Dynamic Search Range This range is fixed in encoding process Search range changed based on Maximum motion vector component for current MB • Dynamic Search Window Dynamic refinement window reduces complexity by using H.263 MV H.263 MV used to determine the position of the fixed size window
Challenges – H.264 to VP6 • Both H.264 and VP6 use integer discrete cosine transform (IDCT). H.264 has 4x4 block transform and VP6 has 8x8 block transform. In [14] conversion of 8x8 DCT to 4x4 integer DCT is shown. A similar method can be applied to proposed transcoder. • H.264 and VP6 have deblocking filters. Both the deblocking filters need to be compared • H.264 Baseline has only I & P frames. So does VP6 • Multiple reference frames in H.264. Upto 2 reference frames allowed in VP6. Multiple reference frames and quarter pixel MVs achieve similar RD results [13]
Challenges – H.264 to VP6 • Block sizes differ in H.264 and VP6. Large number of MB modes in H.264 make it difficult to make a decision to select output mode in transcoding • Also H.264 allows intra-prediction which is absent in VP6. • Available research described in [15] related to conversion of MB modes in H.264 to and from MPEG-4 gives us an opportunity investigate results which can be used in our current research to make a decision on VP6 mode selection. • According to [13], in H.264 intraprediction the modes mainly used are horizontal, vertical and DC.
Available resources • List of references – related literature mainly on MPEG2 to H.264 transcoder, H.264 to MPEG4 – Part 2 transcoder and other literature related to transcoders • License of use and source code for VP6 along with documentation; courtesy: On2 Technologies, Inc • Motivation to learn and guidance of group members
References • S. Kwon, A. Tamhankar and K. R. Rao, “Overview of H.264 / MPEG – 4 Part 10”, J VCIR, vol 17, pp 186-216, April 2006 • I. Richardson, V-Codex, “White Paper – An overview of H.264 Advanced Video Coding”, 2007, www.vcodex.com • J. Emigh, “New Flash Player rises in the Web-Video Market” IEEE Computer 39, 14–16 (2006). • T. Uro, “The quest for a new video codec in Flash 8,” http://www.kaourantin.net/2005/08/quest-for-new-videocodec-in-flash-8.html, August 13, 2005. • On2 Technologies, Inc., “White Paper – On2 VP6 for Flash 8 Video”, http://www.On2.com, September 12, 2005. • C. Holder and H. Kalva, “H.263 to VP6 Video Transcoder”, SPIE, vol . 6822 (VCIP), pp. 68222B, San Jose , CA , Jan . 2008.
References • J. Bialkowski, A. Kaup and K. Illgner, “Overview of Low-Complexity Video Transcoding from H.263 to H.264,” Proceedings of the IEEE International Conference on Multimedia & Expo (ICME), pp. 49-52, 2006. • P. Kunzelmann and H. Kalva, “Reduced Complexity H.264 to MPEG-2 Transcoder,” Proceedings of the IEEE, International Conference on Consumer Electronics, Las Vegas, USA, January 10-14, 2007. • A. Vetro, C. Christopulos, and H. Sun, “Video transcoding architectures and techniques: An overview,” IEEE Signal Process. Mag., vol. 20, pp. 18–29, Mar. 2003. • ITU-T Recommendation H.264 – Advanced Video Coding for Generic Audio-Visual services • On2 Technologies, Inc., “White Paper – TrueMotion VP7 Video Codec”, http://www.On2.com, January 10, 2005.
References • I. Ahmad, et al, “Video Transcoding: An Overview of Various Techniques and Research Issues”, IEEE Transactions on Multimedia, vol 7, pp 793-804, Oct 2005 • J. Bialkowski, M. Barkowsky and A. Koup, “Overview of Low-Complexity Video Transcoding from H.263 to H.264”, IEEE Conference on Multimedia and Expo 2006, vol 9, pp 49-52, July 2006 • J. Lee and K. Chung, “DCT Block Conversion for H.264/AVC Video Transcoding”, Euro-Par 2005, LNCS 3648, pp 919-927, 2005 • J. Hur and Y. Lee, “H.264 to MPEG-4 Transcoding using Block-Type Information”, IEEE Region 10 TENCON 2005, pp 1-6, Nov 2005 • R. Pereira, K. R. Rao, A. Kruafak, “Efficient Transcoding of an MPEG-2 Bit Stream to an H.264 Bit Stream”, IEEE International symposium on Communications and Information Technologies, ISCIT 06, pp 687-691, Oct 2006
H.264 & VP6 H.264/AVC • Published in 2003 • Published by ITU-T (International Telecom Union) and ISO/IEC by the JVT (Joint Video Team) TrueMotion VP6 • Developed by On2 Technologies • Adopted by Adobe for Flash Player 8 • Licensed by Adobe
H.264 [1][2] • One of the most widely accepted video coding standards • Block-oriented Motion-Estimation based codec • Higher coding efficiency than previous standards, MPEG-1,2,4 part 2, H.261 & H.263 • Simple syntax specifications • Seamless integration of video coding into all current protocols • More error robustness • Various applications like video broadcasting, video streaming, video conferencing, D-Cinema, HDTV
Why VP6? – Why Flash? Importance of Flash • Flash: An emerging leader in Video on Web over Real Player, Windows Media Player and Apple Quicktime [3] Features [3][4] • Complete website development package (not just Video & Audio) • Supports on-demand streaming (no need to download) • Supports multiple platforms • Can be embedded in the browser • Downloads by itself • Provides full ‘alpha-transparency’ • Occupies less memory space
Why VP6 for Flash 8 Why did Adobe select VP6 over other codecs [4] • Good Compression • Quality – half the bandwidth for same video quality • Portability – supports most hardware and OS • Stability • Memory Usage – uses less host device memory • Adaptability to internet connection speeds • Performance • Legacy Hardware Support • Support from provider
Comparison – VP6 & Flash MX[5] • Flash MX – Older version based on H.263 • Flash 8 with VP6 scores over Flash MX VP6 - True to Original Flash MX – Oversaturated color Color Space Comparison
Comparison – VP6 & Flash MX VP6 – Smoother picture Flash MX - Blocky Image VP6 – Closer to Original Flash MX – Artificial Artifacts
Comparison – VP6 & Flash MX VP6 – Details preserved MX – low and high contrast VP6 – Closer to original MX – blocky low contrast background
Comparison – VP6 & Flash MX VP6 Flash MX – Edges blocky VP6 – too many fishes? Flash MX – !!!!!
Current Research – H.263 to VP6[6] Challenges • Large number of coding modes in VP6 16 x 16 and 8 x 8 modes like H.263 but Inter 8 x 8 macro blocks (MB) can have mixed blocks Inter MBs in VP6 can be coded using 9 different modes • ¼ resolution motion vectors (MV) • Allowing multiple reference frames The modes are characterized by the number of motion vectors (1 vs. 4), reference frame used, whether motion vectors are coded
Current Research – H.263 to VP6[6] Conclusion • VP6 widely used in online video services with Flash 8 • Low complexity transcoding to VP6 holds significance • Proposed transcoder can reduce complexity by more than 50% without significant loss in PSNR • This research can be used as a basis of reference for transcoding other standards to VP6
Proposed – H.264 to VP6 • The current study enables us to propose a new challenge – Transcoding H.264 to VP6 • Significant as H.264 is the new widely accepted industry standard Available resources • H.263 to H.264 transcoding algorithm • H.264 to MPEG2 transcoding algorithm • Video Transcoding Architectures and techniques • H.264 Standard (from ITU-T) Challenge • VP6 – Not much of published work
Proposed – H.264 to VP6 • Heterogeneous transcoder provides conversion between various standards • Syntax conversion module • Extracted MVs converted to be compatible with encoding nature of output bitstream Heterogenous Video Transcoder [12]
Proposed – H.264 to VP6 • Our aim is to reduce computational complexity • Need to omit ME and also avoid DCT/IDCT if possible • Blocks of I & B and intra – P transcoded in frequency domain • Inter – block in P frames in spatial domain motion compensation • Thus both spatial domain and frequency domain. So Hybrid Domain Transcoding Architecture (HDTA) Closed Loop Hybrid domain Transcoder [12]
Proposed – H.264 to VP6 DCT Conversion block implement at DCT domain[14] Reduction in the number of calculations from proposed method[14] back
The DCT conversion can be obtained in a multitude of steps as shown [] Bi = Li * B * RiB: 8 x 8 DCT Matrix; Bi: 4 x 4 Matrix; i = 0, 1, 2, 3 L0 = L1 = ( I4x4,04x4 )4x8 L2 = L3 = ( 04x4,I4x4 )4x8 R0 = R2 = ( I4x4;04x4 )8x4 R1 = R3 = ( 04x4;I4x4 )4x8 Using the distributive property of the DCT If H is the matrix used for getting the integer DCT from DCT, we have However to got our H.264 coefficients we need the modiefied H matrix –H’ For modified H matrix H’, we have back
H.264 to VP6 • The table[15] shows how the modes are converted in a cascaded pixel domain transcoder • This information is used to decide the MB conversion modes as shown in the figure[15] on the right back
Future – VP7 Codec from On2 • Best Video Compression technology according to On2 • Upto 50% image quality improvement over VP6 • Better performance than WMV 9, Real 10, H.264 & MPEG-2 • Ideal for embedded chipsets • Compresses HD materials with no restriction on encoder • ‘Fast Compress’ mode that can encode in real time • Constant datarate or variable datarate encoding
About Me • Masters Student • Started Spring 2008 • Courses • Research Topic – H.264 to VP6 Transcoder