Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

3D Video Programming for Android


Published on

Review of 3D Video compression and delivery methods in H.264 and HDMI 1.4a.
Code sample of H.264 3D encoding for Nvidia, TI

Published in: Technology, Business
  • Be the first to comment

3D Video Programming for Android

  1. 1. 3D VideoforAndroid Yossi Cohen 1
  2. 2. Content Intro to 3D Video 3D Video in H.264 3D Video in HDMI 1.4a Android 3D Video encoding  TI OMAP4 Configuration  Qualcomm Configuration 2
  3. 3. 3
  4. 4. What is 3D Video 3d content is made by showing a separate image (video) to each eye. 3D Glasses based technologies:  ANAGLYPH  POLARIZATION  ECLIPSE METHOD 3D Glass-free technologies:  GUIDED LIGHT  LENTICULAR SCREEN  PARALLAX BARRIER This presentation does not discuss the presentation technologies, ,instead we focus on how to compress and deliver the video to the screen. 4
  5. 5. 5
  6. 6. Legacy 3D Video Delivery Different devices delivered 3D Video as one video stream with the two R/L screens merged into one rectangle: 1. DirectTV uses Side-by-Side layout 2. PlayStation uses Top-Bottom layout 3. Blue-Ray Player FULL-HD Side-by-Side User should manually set the TV to 3D and Configure the right packing mode 6
  7. 7. Side-by-Side 3D Example BlueRay video with Full HD SBS Resolution is 3840X1280 7
  8. 8. 3D Video in HDMI 1.3 Delivery of 3D Video in packing of 1 and 2 was possible in HDMI: Side-by-Side 3D in HDMI Top-Bottom 3D in HDMI Problems User should manually configure TV to the correct mode 3D is not viewed as Full-HD. Each eye receives “Half-HD” Quality. Duo to Bandwidth constraints no support for 3D-Full-HD 8
  9. 9. 3D in HDMI 1.4a and HDMI 2+ In Advance HDMI standards, HDMI include Header fields which signals the frame packing mode Example: 3D SBS transmission in HDMI 1.4 9
  10. 10. 10
  11. 11. H.264 3D Profiles Encoding of one stream video slices halved into R/L screens can be done in ANY H.264 Profile. Alternative encoding are:  MVC  Stereo-High 11
  12. 12. H.264 AVC 3D encoding mode There are two options for 3D H.264 AVC encoding: Regular encoding of a single video stream with two L/R frames packed into one Frame  Codec is unaware that the video is 3D  No signaling information is sent Informing the Encoder the video is 3D  Encoder will insert Frame-Packing information  TV / Sink should switch automatically to 3D correct frame packing according to signaled information 12
  13. 13. H.264 3D Signaling H264 Signals 3D Video and the type of Frame Packing (Side-by-Side, Top-Bottom, Interlaced…) by Frame Packing Arrangement structure FPA is an optional message inside the SEI NAL Frame Packing Agreement structure was added to the standard in 2010. A device receiving H.264 stream with SEI-FPA could automatically change its mode to the correct 3D Mode (if it understands those headers and has 3D capabilities). 13
  14. 14. Example of 3D Configuration There are two types of FPA extensions 2004 & 2010 2004 states the frame arrangement SBS, Top-Bottom etc 2010 is more detailed as described below 14
  15. 15. MVC – Multi View Coding MVC is a standard for compression of multiple video streams into one encoded streams All streams are encoded as differences (deltas) from the first stream (like SVC) MVC with 2 video streams is 3D stereo 15
  16. 16. H.264 Stereo Mode H.264 Stereo Mode is like MVC with only two cameras. 16
  17. 17. Wireless 3D Video transmission Automatic 3D Video H.264 3D Video Encoder over HDMI 1.4a Wireless Dongle H.264 HDMI Decoder Converter H.264 with SEI FPA over Wireless 17
  19. 19. TI 3D Configuration For all platforms (Nvidia, TI, QCOM), in the Encoder OMX input pin configuration add the appropriate code according to the processor 19
  20. 20. TI 3D ConfigurationOMX_TI_VIDEO_PARAM_AVCENC_FRAMEPACKINGINFO2010 FramePacking2010;FILL_OMX_VERSION(FramePacking2010 ,OMX_TI_VIDEO_PARAM_AVCENC_FRAMEPACKINGINFO2010);FramePacking2010.nPortIndex = OMX_PORT_INDEX_INPUT;FramePacking2010.eFramePackingType = OMX_TI_Video_FRAMEPACK_SIDE_BY_SIDE;FramePacking2010.nFrame0PositionX = 0;FramePacking2010.nFrame0PositionY = 0;FramePacking2010.nFrame1PositionX = 0;FramePacking2010.nFrame1PositionY = 0OMX_CALL( SetParameter, (OMX_INDEXTYPE) OMX_TI_IndexParamStereoFramePacking2010Settings,&FramePacking2010 );OMX_TI_VIDEO_PARAM_FRAMEDATACONTENTTYPE FrameData;FILL_OMX_VERSION(FrameData ,OMX_TI_VIDEO_PARAM_FRAMEDATACONTENTTYPE);FrameData.nPortIndex = OMX_PORT_INDEX_INPUT;eContentType = OMX_TI_Video_AVC_2010_StereoFramePackingType;OMX_CALL( SetParameter,(OMX_INDEXTYPE)OMX_TI_IndexParamVideoFrameDataContentSettings,&FrameData ); 20
  21. 21. Qualcomm ConfigurationUnfortunately couldn’t find a method for this onQualcomm processors. If you know please email meor comment and I’ll update this presentation 21
  22. 22. Thank you!More About me: Video Expert Yossi Cohen Lectures on Video / Android / VoIP Android Native Developer +972-545-313092 22
  23. 23. Resources Overview of the Stereo and Multiview Video Coding Extensions of the H.264/MPEG-4 AVC Standard High-Definition Multimedia Interface Specification Version 1.4a Extraction of 3D Signaling Portion 23