Upload
yossi-cohen
View
2.387
Download
1
Tags:
Embed Size (px)
DESCRIPTION
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
Citation preview
1
Yossi Cohen
3D Video forAndroid
2
Content Intro to 3D Video3D Video in H.2643D Video in HDMI 1.4aAndroid 3D Video encoding
TI OMAP4 ConfigurationQualcomm Configuration
3
Intro to 3D Video
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.
5
3D Video Delivery
6
Legacy 3D Video DeliveryDifferent 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 3Dand Configure the right packing mode
7
Side-by-Side 3D Example BlueRay video with Full HD SBSResolution is 3840X1280
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
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
10
H.264 3D Video
11
H.264 3D ProfilesEncoding of one stream video slices halved into
R/L screens can be done in ANY H.264 Profile.Alternative encoding are:
MVCStereo-High
12
H.264 AVC 3D encoding modeThere are two options for 3D H.264 AVC encoding:Regular encoding of a single video stream with
two L/R frames packed into one FrameCodec is unaware that the video is 3DNo signaling information is sent
Informing the Encoder the video is 3DEncoder will insert Frame-Packing informationTV / Sink should switch automatically to 3D correct frame
packing according to signaled information
13
H.264 3D SignalingH264 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 NALFrame 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).
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
15
MVC – Multi View CodingMVC is a standard for compression of multiple
video streams into one encoded streamsAll streams are encoded as differences (deltas)
from the first stream (like SVC)MVC with 2 video streams is 3D stereo
16
H.264 Stereo ModeH.264 Stereo Mode is like MVC with only two
cameras.
17
Wireless Dongle
Wireless 3D Video transmission
HDMIConverter
Automatic 3D Video
H.264 with SEI FPA over Wireless
3D Video over HDMI 1.4a
H.264 Decoder
H.264Encoder
18
3D VIDEO COMPRESSION ON ANDROID
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
20
TI 3D Configuration
OMX_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 = 0
OMX_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 );
21
Qualcomm Configuration
Unfortunately couldn’t find a method for this on Qualcomm processors. If you know please email me or comment and I’ll update this presentation
22
Thank you!
Video Expert
Lectures on Video / Android / VoIP
Android Native Developer
More About me:
Yossi [email protected]://www.mobilevideotech.com
+972-545-313092
23
Resources Overview of the Stereo and Multiview Video Coding Extensions of
the H.264/MPEG-4 AVC Standard
http://www.practical-home-theater-guide.com/3d-tv-formats.html
High-Definition Multimedia Interface Specification Version 1.4a Extraction of 3D Signaling Portion