Talk:XvMC
From MythTV
Contents |
Wikipedia.org article expansion
The wikipedia.org article on XvMC needs to be expanded and cleaned up: http://en.wikipedia.org/wiki/X-Video_Motion_Compensation
MySQL access
Shouldn't MySQL be accessed as the mythtv user, using the password in /etc/mythtv/mysql.txt? --Jrr 19:53, 3 May 2007 (UTC)
- From the command line, it doesn't matter. Either one works. Mythre 17:24, 4 May 2007 (UTC)
Cleanup intro
The lede on this piece should say what XvMC *is*, not just what it does. Is it a driver feature, an X server feature, a feature of video cards...? --Baylink 15:07, 16 February 2006 (UTC)
I added some text to the Software section to address this. Is that what you're looking for? --Trevarthan 03:05, 17 February 2006 (UTC)
The way HDTV is worded is a bit confusing: "when playing High Definition content, abbreviated HDTV, or more commonly just HD". When I read this, I was thinking "what is 'abbreviated HDTV'?" I thought it was talking about lower resolution HDTV, like EDTV/480P. I finally realized the author was explaining the HDTV acronym. I don't really think this is necessary. Most people know what HDTV is these days, and certainly anyone technical enough to be looking into hardware acceleration of MythTV would know what HDTV is. If you want to keep the explanation, at least put it in parentheses or reword it to make it clear that it is explaining the previous acronym. Or, just make a link on "HDTV", pointing to a wikipedia entry explaining what it is (that seems to be more the norm in wikis). The same applies to the SD definition.
"Software" section inaccurate: "XvMC is a software library provided by the X11 system to provide user applications with a standard Application Programming Interface, or API, to hardware specific features." XvMC is not the library, it is only the API that each proprietary hardware must plug into, using their XvMC library. I think something more accurate would be: XvMC is an API within the X11 system, which allows compute intensive operations in video decoding to be offloaded to hardware. The library to integrate the hardware acceleration must be developed for each GPU, interfacing the proprietary hardware to the standard XvMC API.
- Looks Good!
Openchrome needs more info
The VIA Unichrome chipsets have an additional XvMC implementation over and above the normal IDCT (Inverse Discrete Cosine Transform)/MC (Motion Compensation). This is known as VLD (Variable Length Decoder) acceleration (also known as slice level acceleration). With a Unichrome Pro chipset it is possible to achieve HD resolution MPEG2 playback even on low power/low speed Epia processors (~900Mhz).
Currently only VLD level acceleration is supported with the openchrome driver although the chipsets also provide IDCT/MC acceleration.
Support for the Unichrome hardware acceleration is provided by the OpenChrome drivers: http://www.openchrome.org
Information on support of the various chipsets is available here: http://wiki.openchrome.org/tikiwiki/tiki-index.php?page=Supported+hardware+and+caveats
Info on XvMC in Openchrome: http://wiki.openchrome.org/tikiwiki/tiki-index.php?page=How+all+driver+components+fit+together
Other items that could be addressed
- MacOS Hardware acceleration recently added to SVN
- XvMC Related Settings in MythTV (settings on the same page as XvMC in Setup, and have been recommended to change for better playback on the lists): realtime priority threads, Use video as timebase, Extra Audio Buffering
- I believe this is already covered in the MythTV Configuration section, but feel free to add more info. --Trevarthan 18:58, 17 February 2006 (UTC)
- XvMC Wrapper -- function & when used?
- XvMC 2.0 -- Discussed on Xorg mailing list. Status? (standard API regardless of hardware, VLD support, etc.) http://lists.freedesktop.org/archives/xorg/2005-February/thread.html#6007
- Improvements in Intel XvMC drivers. G965/X3000 supports iDCT offload. Driver support?
- [tji] A recent post to the xorg mailing list says there is no iDCT offload currently supported in their drivers, and they have not released the hardware specs. It's on their to-do list for "this year". Doesn't sound overly promising.. http://lists.freedesktop.org/archives/xorg/2007-January/021177.html
- Acceleration of MPEG4/H.264, WMV9, etc supported in many chips?
- I think that some references should be given in order to get XvMC working with nVidia propietary drivers. I'm currently having a nightmare! and I don't have a clue --Josesuarez 01:09, 29 November 2006 (CET)
- I put up a page on the PenLUG wiki http://www.penlug.org/twiki/bin/view/Main/LinuxHardwareInfoNvidia5200 that might help explain how to get good playback of interlaced 1080 with mplayer and xine using the proprietary Nvidia driver for the 5200 card - Peter Knaggs (April 5th, 2007).
- It's been reported in the Gentoo Forums that adding 'Option "UseEvents" "True"' to xorg.conf can help with xvmc being used. (see: http://forums.gentoo.org/viewtopic.php?p=3944082#3944082 )
Jitter
When I enable XvMC on my Nvidia 5200 card it causes the LiveTV picture to jitter or jump up and down at the bottom of the screen (LCD TV). I am using the Nvidia proprietary drivers and I have followed the instructions for modifying the X config and mythconverge database. --Bill 05:42, 4 March 2006 (UTC)
Hardware acceleration processes not yet supported by XvMC
XvMC does have the potential for more than it currently features it supports today. Modern graphic processors (since the DirectX 9 generation and newer) support more than just accelerating motion compensation and iDCT, and they can support more video formats than only MPEG-2 as XvMC does today. NVIDIA's PureVideo Technology and ATI's AVIVO Technology support hardware accelerated decoding for WMV9, VC-1, and H.264 video, (as well as for MPEG-2). Some newer Intel chipsets also support hardware acceleration beyond MPEG-2. Unfortunately, neither NVIDIA or ATI have yet to open up those technologies to Linux nor the API documentations to the open source community, and no publicly known attempt to reverse engineer access to those APIs have been made.
As a temporary (or permanent) solution to this, shaders in and/or Cg code could be written for these processes and added to the XvMC library to gain some of the additional advantages that GPU assisted video decoding brings and Shader Model 3.0 based GPUs can support today. (Best would be if FFmpeg was used as a reference codec and player/utility). Both NVIDIA and ATI have extensive tools for creating and maintaining the process of developing shaders easier than it has been in the past.
Processes that can be accelerated for most video formats
- Motion compensation (mo comp)
- Inverse Discrete Cosine Transform (iDCT)
- Inverse Telecine 3:2 and 2:2 pull-down correction
- Inverse modified discrete cosine transform (iMDCT)
- in-loop deblocking
- intra-frame prediction
- inverse quantization (IQ)
- Variable Length Decoding (VLD), more commonly known as slice level acceleration
- Spatial-Temporal De-Interlacing
- Plus automatic interlace/progressive source detection
- Bitstream processing (CAVLC/CABAC)
Request made to NVIDIA to open up their PureVideo API
http://forums.nvidia.com/index.php?showtopic=35695 http://forums.nvidia.com/index.php?showtopic=35698
