Welcome, Guest. Please login or register.

Author Topic: Opinions / Info - AmigaOS 4.x Systems  (Read 18434 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Hans_

Re: Opinions / Info - AmigaOS 4.x Systems
« on: March 16, 2014, 09:43:34 PM »
Quote from: Boot_WB;760859

* RadeonHD cards are currently supported in 2D only (Respect to Hans's 2D work, which seems to function well from what I have read (haven't used myself)). Hardware video scaling on these cards requires 3D drivers, which are dependent upon Hyperion's Gallium3D work, which has been some years and appears to have made little progress.

Correction, hardware scaling could be done today using CompositeTags(). All that is required is for application developers to actually use it.

What can't be done (yet) is directly display YUV bitmaps, which is one of the key things that makes video playback with overlay faster. None of this has anything to do with 3D drivers or lack thereof. 3D drivers won't magically change anything.

Quote from: Boot_WB;760859
Consequently, video playback performance on these cards really sucks, so until/if/when/somewhere-over-the-rainbow 3D drivers arrive (and video scaling via textures) you're probably better off sticking with a Radeon 9xxx if you want to be able to watch videos or play 3D games.

Define "video playback sucks." My experience has been that video playback of non-HD content via Radeon HD cards is pretty good.** I certainly don't have trouble playing DVDs. If you're talking about HD content, then I'm pretty sure that no AmigaOS system with a Radeon 9xxx can play that smoothly either.

According to these benchmarks, a Sam460ex with a Radeon HD card (and no overlay) actually plays back video better than a Sam440 with overlay. NOTE: These results were obtained with MPEG-4 video, which is more CPU intensive than the MPEG-2 on DVDs.

Hans


** On systems with an actual PCIe port.
Join the Kea Campus - upgrade your skills; support my work; enjoy the Amiga corner.
https://keasigmadelta.com/ - see more of my work
 

Offline Hans_

Re: Opinions / Info - AmigaOS 4.x Systems
« Reply #1 on: March 16, 2014, 10:53:35 PM »
Quote from: takemehomegrandma;760881
Well, you kind of said it yourself there. Even the Efika 5k2 could play DVD resolution MPEG-2 streams on a 9xxx card, and if this is your peak performance on a system with PCIe and Radeon HD, then it actually kind of sucks IMHO.

Where did I say that DVD resolution was peak performance? I've noticed a lot of nonsense about how horrible video playback is without overlay, with someone going as far as saying that he'd rather hang himself. He was talking about 480p at the time...

My question still stands.

Quote from: takemehomegrandma;760881
Maybe not OS4 systems, but many of the more popular G4 based MorphOS systems with Radeon 9xxx cards can usually manage proper x264 720p streams, which is a HD resolution, and the G5 systems does x264 1080p.


I assume that you're talking about the low-end H.264 profiles here (i.e., basic MPEG-4), because decoding full HD H.264 AVC with a software decoder is multi-core territory. That's a bit misleading to claim HD playback when only a subset of such HD files can actually be decoded in real-time. Or, are you really claiming that a MorphOS G5 system can handle any 1080p video, including H.264 AVC?

Hans
Join the Kea Campus - upgrade your skills; support my work; enjoy the Amiga corner.
https://keasigmadelta.com/ - see more of my work
 

Offline Hans_

Re: Opinions / Info - AmigaOS 4.x Systems
« Reply #2 on: March 16, 2014, 11:36:10 PM »
Quote from: takemehomegrandma;760881
Well, you kind of said it yourself there. Even the Efika 5k2 could play DVD resolution MPEG-2 streams on a 9xxx card, and if this is your peak performance on a system with PCIe and Radeon HD, then it actually kind of sucks IMHO.

Just following up on this; I downloaded and played a 720p DIVX (so MPEG-4) clip on my A1-X1000 with no noticeable frame-skipping. This was with a Radeon HD 7750, so no overlay was available.

The exact stats are:
Code: [Select]
RAM Disk:BigBuckBunny_DivX_HD720p_ASP.divx
Video: AVI, 1280 x 720, 24.00 fps
Audio: 01 [MP3] 16-bit 48000 Hz, Stereo
Total Nr of Frames:   14710
Nr of Frames played:  14689
Nr of Frames skipped: 21 (1%)
Total Playback Time:  612.853 seconds
Average Framerate:    24.002 fps
Displayed Framerate:  23.968 fps

NOTE: If you do the calculations, you'll see that it skipped 0.14% of frames, not 1% as DvPlayer states above.

Don't get me wrong, overlay/textured-video would improve things. However, I think that some people are significantly overstating the problem.

Hans
Join the Kea Campus - upgrade your skills; support my work; enjoy the Amiga corner.
https://keasigmadelta.com/ - see more of my work
 

Offline Hans_

Re: Opinions / Info - AmigaOS 4.x Systems
« Reply #3 on: March 17, 2014, 03:29:29 AM »
Quote from: Boot_WB;760897
Easy to implement for eg mplayer? Why has no-one done this..?
IMHO, yes, it should be pretty easy. I have no idea why no-one has done this yet. Maybe everyone has been busy with other projects...


Quote from: Boot_WB;760897
Apologies, I must have misunderstood Karlos, or plans have changed (http://www.amiga.org/forums/archive/index.php/t-61993.html)

Karlos wrote:
Quote
Right now, as far as I know no specific implementation exists for the RadeonHD drivers. With adequate 3D support, however, implementing a hardware video surface via video texturing becomes feasible. Since both 3D and video playback are desirable features, it makes sense to focus on the overlap.

What would be the best approach to improving video playback in your experience Hans? (Who do OS4.x users nag at to get this done... :D )
Well, once OpenGL with shader support is available, then application developers could easily write their own GPU assisted YUV=>RGB conversion code. So, he's correct in that. However, that doesn't mean that 3D is the only way, nor would the appearance of 3D drivers magically improve anything.

Don't nag anyone; we're aware of the situation and the various options to fix it. :razz:


Quote from: Boot_WB;760897
I was trying to be fair but frank. "Pretty good" doesn't sound like a ringing endorsement. Can DVDs be watched on Sam460 with no frame dropping? Does resizing/fullscreening impact upon playback? Can you watch video windowsed/scaled whilst doing other stuff (eg web browsing)? What percent cpu is used by stuff that could/should be offloaded to overlay/textured-video?*
Yes, I can watch a DVD on the Sam460 without frame skipping. At least, I didn't notice any skipping last time I tried. No video scaling for now. However, that's not due to driver limitations. I can't remember what the CPU usage was.

Overlay/textured-video handles the YUV=>RGB conversion and scaling. That alone helps quite a bit, but its still no match for a hardware decoder.

BTW, the DVD drive can also have a big effect on DVD playback. There are a lot of poor quality drives out there, or drives that really need a firmware update. My A1-XE G4 stopped being able to play DVDs smoothly after "upgrading" to a new DVD drive. So, if someone else with a Sam460 can't play DVDs smoothly, then their DVD drive would be the prime suspect.


Quote
From the same thread (PCI>PCIe adapter notwithstanding, how much bandwidth does 480p video need anyway...), albeit an extreme case:
For 704x480 @24fps, you need:
- 30.9 MiB/s when using 32-bit RGBA
- 11.6 MiB/s for the YUV420p pixel format (a possibility with overlay/textured-video)

Based on this GfxBench2D result, a Sam440ep-flex with Radeon HD 6670 can manage:
- 13.52 MiB/s with a CPU-based copy routine
- 90.23 MiB/s if DMA is used via WritePixelArray()/BlitBitMap()

AFAIK, MPlayer and DvPlayer use their own CPU-based copy routine, so the copy bandwidth is killing any chance of smooth playback (NOTE: the CPU needs time to decode the video too). Needless to say, I encourage developers to use WritePixelArray()/BlitBitMap() for transfers to/from VRAM.

By contrast, here are the bandwidth results for the Radeon M9 in a Sam440ep (link):
- 53.45 MiB/s CPU copy
- 90.98 MiB/s WritePixelArray
Clearly the bandwidth is enough for 480p video, especially if overlay is used.

Hans
Join the Kea Campus - upgrade your skills; support my work; enjoy the Amiga corner.
https://keasigmadelta.com/ - see more of my work
 

Offline Hans_

Re: Opinions / Info - AmigaOS 4.x Systems
« Reply #4 on: March 19, 2014, 06:43:50 AM »
Quote from: Boot_WB;760954
No problem, and thanks for the clarification. Could you elaborate on what other options might be available, or what direction you envisage development in this area going. It's interesting and educational. :)


Well, they've pretty much all been covered already. Using a HW video decoder (Radeon HD cards have one) would be the best solution, but it's a huge job. Another option would be waiting for Gallium3D to be available, and updating video players to use custom shaders. Next is textured video, which uses the GPU to render YUV bitmaps straight to screen. It essentially does the same job as the Gallium3D option, but is easier to use (no need to set up custom OpenGL shaders). Finally, while Radeon HD cards don't have overlay hardware, it could probably be emulated. However, that would be more complicated than textured video, and be far less flexible.


Quote from: Boot_WB;760954
So is video playback is currently limited to windowed 1:1 scaling, with no fulll-screen mode?

Full screen too, although the video might not completely fill the screen. In the case of a 720p video, it matches a 1280x720 screen perfectly, so it does completely fill the screen.

Hans
Join the Kea Campus - upgrade your skills; support my work; enjoy the Amiga corner.
https://keasigmadelta.com/ - see more of my work