[mythtv] [mythtv-commits] Ticket #2649: Opengl video renderer

Steven Adeff adeffs.mythtv at gmail.com
Wed Jan 24 18:09:11 UTC 2007


On 1/24/07, MythTV <mythtv at cvs.mythtv.org> wrote:
> #2649: Opengl video renderer
> -----------------------------------------+----------------------------------
>  Reporter:  mark_kendall at btinternet.com  |        Owner:  danielk
>      Type:  enhancement                  |       Status:  new
>  Priority:  minor                        |    Milestone:  unknown
> Component:  mythtv                       |      Version:  head
>  Severity:  medium                       |   Resolution:
> -----------------------------------------+----------------------------------
> Comment (by mark_kendall at btinternet.com):
>
>  Version 2 of the OpenGL renderer(substantially re-written).
>
>  * Major changes
>      * Implements a simple, multipass filtering structure utilising
>  multiple framebuffer objects and/or multiple fragment programs.
>      * Includes opengl versions of each of the existing deinterlacers
>  (onefield, kernel, linearblend, bob) (N.B. these will deinterlace normal
>  softblend osd)
>      * Adds 3 new progressive scan versions of onefield, linearblend and
>  kerneldeint
>      * Mix and match software and opengl deinterlacers for main/fallback
>  deinterlacers.
>      * Adds an opengl rendered OSD. This uses the existing YUV osd frame
>  and alpha mask but does utilise the full screen size and resolution.
>      * Software yuv2rgb fallback if fragment programs are not available on
>  the graphics hardware.
>      * Added a seperate opengl class to handle the window/context and all
>  opengl resources (textures, fragment programs, framebuffers and 'non-
>  standard' function calls)
>      * Resizing of interactive tv is now handled in hardware if using the
>  opengl osd.
>
>  * Issues
>      * Xrandr support is at least partially broken.
>      * Some deinterlacers assume topfield first field ordering.
>      * Small off-by-one rendering innacuracies of interactive tv(MHEG) when
>  using opengl osd.
>
>  * Performance/quality
>      * NVidia 62XX series seems to be about the minimum needed for standard
>  definition progressive scan (using progressive kerneldeint - which is by
>  far the most GPU hungry) (FX5200 cannot cope with more then basic opengl
>  deinterlacing)
>      * NVidia 7600GS copes well with SD main video, pip and opengl osd
>  rendered at 720P
>      * Quality of the progressive scan deinterlacers is pretty good. They
>  cope very well with low to moderate movement but less well with fast
>  motion. (Also seem to handle frame rate discrepancies better than bobdeint
>  - eg PAL at 60Hz)
>      * If the GPU cannot handle the demands, CPU utilisation seems to go
>  through the roof...
>
>  * To Do
>      * Additional filters (lanczos and/or kaiser, denoise) - needs some
>  upstream intergration (also need some help with lanczos)
>      * More advanced deinterlacers (I've started to look at edge detection)
>      * Framerate conversions e.g. PAL to NTSC rates
>      * Performance improvements (minimise opengl state changes, does pip
>  need deinterlacing)
>      * Offscreen rendering for use by preview pip (ie hardware color
>  conversion and scaling) and maybe transcode?

Mark, excuse my ignorance, just a couple questions...

What do you mean by "progressive scan versions of onefield, linearblend and
 kerneldeint"?

What are your prospects in fixing the top-field deitnerlacing issue?

Does this include a higher quality resize like has been discussed on
this list before? (ie SD recordings and DVD playback resizing to 720p
or 1080p resolution with all the filter goodies you seem to be
implementing)

I've got a 6200TC on my dedicated frontend, which currently runs
0.20-fixes, is your work dependent on being compiled with SVN?

Finally, Thanks for your work! this looks to be some amazing
advancements for us HDTV users.
I'm also interested in what you find you can do with offscreen
rendering, I'd love to be able to throw a 7xxx series card into my
backend to do some really fast transcodes!

-- 
Steve
Before you ask, read the FAQ!
http://www.mythtv.org/wiki/index.php/Frequently_Asked_Questions
then search the Wiki, and this list,
http://www.gossamer-threads.com/lists/mythtv/
Mailinglist etiquette -
http://www.mythtv.org/wiki/index.php/Mailing_List_etiquette


More information about the mythtv-dev mailing list