Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > MPEG-4 AVC / H.264

Reply
 
Thread Tools Search this Thread Display Modes
Old 7th February 2009, 10:20   #1  |  Link
vsv
Registered User
 
vsv's Avatar
 
Join Date: Mar 2002
Location: kitchen
Posts: 146
Stereoscopic 3D using MVC with x264 ?

"TDVision's patented technology has also been implemented as Intra-view
coding in the MVC MPEG-4 H.264 extension recommendation initiative by
comparing the difference between left and right channels. This eliminates
redundant information and optimizes the bandwidth required for a given
infrastructure such as cable, satellite, ATSC 1.0/2.0 and Blu-ray disc."
http://3dcinecast.blogspot.com/2009/...irst-3d2d.html

A version of the reference software for MVC including both encoder and
decoder source code is publicly available too:
http://wftp3.itu.int/av-arch/jvt-sit.../JVT-AB207.zip

Panasonic, TDVision and third must be X264
vsv is offline   Reply With Quote
Old 7th February 2009, 10:28   #2  |  Link
Dark Shikari
x264 developer
 
Dark Shikari's Avatar
 
Join Date: Sep 2005
Posts: 8,688
It's insane to try to implement such a spec when they're still finding bugs in it every other week.
Dark Shikari is offline   Reply With Quote
Old 7th February 2009, 10:38   #3  |  Link
vsv
Registered User
 
vsv's Avatar
 
Join Date: Mar 2002
Location: kitchen
Posts: 146
What better for x264 encoding with two views
side-by-side or over-under ?
vsv is offline   Reply With Quote
Old 7th February 2009, 11:56   #4  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
i would say if you are going to encode 2 images in the stream
i would go with one image on top of the other as opposed to side by side. If you want to render the video with a 3d api direct x etc, side by side you'll run out of texture resolution for older cards, where as on top you won't
dukey is offline   Reply With Quote
Old 7th February 2009, 15:33   #5  |  Link
Manao
Registered User
 
Join Date: Jan 2002
Location: France
Posts: 2,855
As far as I can tell, MVC is just AVC with a bunch of SEI messages. No new coding tools have been added (so your post is outdated). So you don't need to modify x264 internals, you just need to create those SEI messages properly.
__________________
Manao is offline   Reply With Quote
Old 7th February 2009, 18:00   #6  |  Link
BeyondTheEyes
Registered User
 
BeyondTheEyes's Avatar
 
Join Date: Jul 2005
Posts: 23
Well, it's a little more than that: while it's true that MVC does not add new encoding tools (e.g. new macroblock modes) on top of AVC, MVC does specify new high-level syntax (from NAL units to slice headers) for inter view prediction (an MVC picture is composed of N >= 2 view components). Therefore I believe MVC could be supported by x264 core engine but (especially) DPB (e.g. reference picture lists) management would require specific adaptation changes.
BeyondTheEyes is offline   Reply With Quote
Old 7th February 2009, 18:32   #7  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,160
Quote:
Originally Posted by vsv View Post
What better for x264 encoding with two views
side-by-side or over-under ?
Given that both views show a pretty similar picture, I'd say:
Interleave the views before encode and separate them after decode (at playback time).
That should give more efficient encoding and avoid ultra-long motion vectors...
__________________
There was of course no way of knowing whether you were being watched at any given moment.
How often, or on what system, the Thought Police plugged in on any individual wire was guesswork.



Last edited by LoRd_MuldeR; 7th February 2009 at 18:43.
LoRd_MuldeR is offline   Reply With Quote
Old 7th February 2009, 20:46   #8  |  Link
vsv
Registered User
 
vsv's Avatar
 
Join Date: Mar 2002
Location: kitchen
Posts: 146
Quote:
Originally Posted by Manao
As far as I can tell, MVC is just AVC with a bunch of SEI messages.
Quote:
Originally Posted by LoRd_MuldeR View Post
Interleave the views before encode and separate them after decode (at playback time).
Yes! Now we need to compare efficience of multiview encoding (MVC) vs over-under and side-by-side with
same stereo3D source.
vsv is offline   Reply With Quote
Old 18th December 2009, 15:35   #9  |  Link
Zerofool
VR, 3D & HDR UHD fan
 
Join Date: Mar 2006
Location: Sofia, Bulgaria
Posts: 53
Sorry for bringing that old topic up, but now that 3D Blu-Ray standard is finalized (using MVC), will you guys consider adding MVC support in x264 at some later time? First we'll have to wait because "The completed specification will be available shortly and provides individual manufacturers and content providers with the technical information and guidelines necessary to develop, announce and bring products to market pursuant to their own internal planning cycles and timetables". So it's finalized, but not out yet . |sources: 1 2 3 4 5 |
There's an Annex H in H.264 standard about MVC and the "Multiview High profile", but I guess you already know that .
Considering 2010 will be the year of Stereoscopic 3D, this will be a great addition to x264.

Last edited by Zerofool; 18th December 2009 at 15:48.
Zerofool is offline   Reply With Quote
Old 18th December 2009, 16:07   #10  |  Link
shon3i
BluRay Maniac
 
shon3i's Avatar
 
Join Date: Dec 2005
Posts: 2,426
Quote:
Originally Posted by Zerofool
will you guys consider adding MVC support in x264 at some later time?
They should first finish that current x264 became full blu-ray compilant :P
shon3i is offline   Reply With Quote
Old 19th December 2009, 01:32   #11  |  Link
Biggiesized
Registered User
 
Biggiesized's Avatar
 
Join Date: Apr 2007
Location: Pittsburgh, PA
Posts: 232
Can you imagine 3-D blocking artifacts?! Trippy!
Biggiesized is offline   Reply With Quote
Old 19th December 2009, 19:35   #12  |  Link
Zerofool
VR, 3D & HDR UHD fan
 
Join Date: Mar 2006
Location: Sofia, Bulgaria
Posts: 53
Quote:
Originally Posted by Biggiesized View Post
Can you imagine 3-D blocking artifacts?! Trippy!
Yes, it's strange, but your brains deal with it better than in 2D, I've seen some old side-by-side XviDs . For low quality, blurry 3D H.264 encodes just head over to YouTube .

Quote:
Originally Posted by shon3i View Post
They should first finish that current x264 became full blu-ray compilant :P
Well, of course, but I'm not talking about BD compatibility, it's about efficient storage and playback of 3D videos on the PC. In all these news about MVC, everybody's mentioning about 50% more space needed for the second image (in most cases). And from my CRF test with current x264 builds in side-by-side and over/under modes (both almost identical in size) the results are 96-100% additional bitrate consummation compared to only the left or right video (which are again very close in size to each other). So for the second image we have additional size ~98% (current x264, no MVC) vs. ~50% (H.264 with MVC, on paper ).
If someone's interested I could post some results data, used settings and sources.
And yes, updated decoders will be needed, but obviously right now Nvidia is working with Arcsoft, Corel and CyberLink (devs of TotalMdedia Theater, WinDVD and PowerDVD), and AMD - with CyberLink. Both companies will host demonstrations of Blu-Ray 3D playback at the upcoming CES (HW Accelerated in the case of nv, no word about amd's). Most likely other decoders will soon follow.

Last edited by Zerofool; 19th December 2009 at 21:22.
Zerofool is offline   Reply With Quote
Old 19th December 2009, 19:39   #13  |  Link
juGGaKNot
Registered User
 
juGGaKNot's Avatar
 
Join Date: Feb 2008
Posts: 733
VideoLeft = AVIsource("C:\x264\movie.avi", audio=false)
VideoRight = AVIsource("C:\x264\movie3D.avi", audio=false)
VideoStacked = StackHorizontal(VideoRight,VideoLeft)
ConvertToYV12(VideoStacked)

works for me
__________________
Quote:
Originally Posted by Dark Shikari View Post
If they can beat x264 in visual quality on ordinary test clips without postprocessing, I'll eat my hat.
juGGaKNot is offline   Reply With Quote
Old 21st December 2009, 01:36   #14  |  Link
jakor
Registered User
 
Join Date: Jan 2002
Posts: 56
Quote:
Originally Posted by LoRd_MuldeR View Post
Given that both views show a pretty similar picture, I'd say:
Sorry to say that but your statement above is fundamentally wrong.
Given that two pictures represent the same scene - but even if the cameras are parallel - it is not possible to perform efficent MC between them. For example - with 2 views given - the ratio between two P frames - one from the same view - the next in time axis and the other - the same scene, but other view is 1:20.
__________________
great idea generator
complicated code creator
jakor is offline   Reply With Quote
Old 26th December 2009, 23:48   #15  |  Link
Blue_MiSfit
Derek Prestegard IRL
 
Blue_MiSfit's Avatar
 
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,757
I wouldn't say I've observed 2x more bitrate being necessary in the split-screen 3D test clips I've encoded for various HDTV manufacturers using x264. More, sure, but definitely not 2x more. For example, I did an encode of a segment from some really awful movie about dinosaurs and giant snakes attacking a city in 3D, and got quite good results at ~8mbps CBR for 1080p, with a 1 second buffer ... streaming is a real bummer lols

~MiSfit
Blue_MiSfit is offline   Reply With Quote
Old 27th December 2009, 23:03   #16  |  Link
BlackSharkfr
Registered User
 
Join Date: Dec 2005
Posts: 133
I use x264 for encoding stereoscopic 3D content.
My #1 issue at the moment isn't really the bitrate or the increase of bitrate required for stereo video.

The main issue I have at the moment is media player not being able to detect the stereo video format automatically.
At the moment, watching stereo video systematically requires user input to find out what format is being used.

Many different stereo video formats are being used :
-Separate files for L and R views
-Dual streams L+R in single file
-line interleave (encoded as progressive)
-line interleave (encoded as interlaced)
-Stacked L+R views in single video frame
>-stacked horizontally
>-stacked vertically
>->- left eye view then right eye view
>->- right ee view then left eye view

or any ther possible way of storing two eye views in a video file.

This requires tagging the files/streams in a standard way, and then the stereoscopy enabled media player to reckognize these tags.
I have seen the stereoscopy tag for matroska files in mkvmerge-gui, but not only it is unsufficient (it only supports dual streams orhas a vague "both views in one stream") but no media player is capable of actually using them.


I am not a developer and i can't code, but i wish that the arrival of MVC will bring more attention to the issues encountered by stereo video users.
BlackSharkfr is offline   Reply With Quote
Old 28th December 2009, 13:24   #17  |  Link
moviefan
Registered User
 
Join Date: Jul 2005
Posts: 438
One short question concerning this 3D stuff for Blu-rays as I find it very interesting: There's for example the movie "My Bloody Valentine 3D", is this movie based on MVC? I guess not, since the standard isn't in use for product sale right now correct? What is the difference between this MVC and 3D Blu-rays that are available by now?
moviefan is offline   Reply With Quote
Old 28th December 2009, 13:54   #18  |  Link
Reimar
Registered User
 
Join Date: Jun 2005
Posts: 278
Quote:
Originally Posted by BlackSharkfr View Post
I am not a developer and i can't code, but i wish that the arrival of MVC will bring more attention to the issues encountered by stereo video users.
I don't think this kind of "nobody can be bothered to fix the small and easy issues, so let's make a really difficult solution"-thinking is really going to work.
If stereo doesn't work well with the current stuff it IMHO is because nobody cares, and MVC sure isn't going to help there.
And concerning bandwidth: I find it hard to imagine that MVC will do significantly better than encoding the views as successive frames and increasing the number of reference frames...
Reimar is offline   Reply With Quote
Old 28th December 2009, 16:22   #19  |  Link
Manao
Registered User
 
Join Date: Jan 2002
Location: France
Posts: 2,855
Quote:
I find it hard to imagine that MVC will do significantly better than encoding the views as successive frames [...]
That is exactly what MVC is intended for. As BlackSharkfr noticed, what is missing in his case is mostly signalization stuff (like AR, frame rate, overscan, but for 3D material), and MVC does just that, and nothing else. Originally, they did want to improve coding efficiency, but that would have broken compatibility and cost too much.
__________________
Manao is offline   Reply With Quote
Old 28th December 2009, 19:20   #20  |  Link
BeyondTheEyes
Registered User
 
BeyondTheEyes's Avatar
 
Join Date: Jul 2005
Posts: 23
Quote:
Originally Posted by Manao View Post
That is exactly what MVC is intended for. As BlackSharkfr noticed, what is missing in his case is mostly signalization stuff (like AR, frame rate, overscan, but for 3D material), and MVC does just that, and nothing else. Originally, they did want to improve coding efficiency, but that would have broken compatibility and cost too much.
I would like to clarify something, as already stated in a previous post (here): MVC is not about SEI messages, but also specifies a new decoding process (cf. Annex H of the H.264/AVC recommendation) that enables the interview prediction of one view (for instance the right-eye view) from the so-called base view (in that example the left-eye view). A legacy H.264/AVC decoder (i.e. that is capable of decoding High profile Elementary Streams), even if some sort of signalization is present, will not be able to completely handle an MVC Elementary Stream (i.e. decode both views), since new NAL unit types will be present in that stream, and (among other things) a modified (in comparison with the one specify in legacy H.264/AVC profiles) process for reference picture lists will be signaled in that stream. While it's true that the currently specified MVC profiles do not specify any new encoding tools at the macroblock level beyond legacy H.264/AVC ones, MVC does specify a bunch of new stuffs compared with H.264/AVC. BTW, coding efficiency is also improved compared with simulcast or legacy interleaving methods, but obviously not by a very significant percentage. What is key is the backward compatibility of MVC with H.264/AVC (both for the video specification and the MPEG-2 TS specification), which will enable 3D Blu-ray titles to be decoded on legacy 2D Blu-ray players (their integrated H.264/AVC High profile decoder will only output the H.264/AVC compatible base view).
BeyondTheEyes is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 06:55.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.