Log in

View Full Version : whatever happened to hardware decoders ?


secondoff
13th November 2007, 05:42
Back in 1998 I had a 233 mhz laptop that was not strong enough to reasonably play DVDs. It came with this PCMCIA card by a company called "margi" that did all of the mpeg decoding.

It was beautiful - the CPU was not used at all, and everything was offloaded. There was no software decoding at all. I really always thought this was the simplest and most elegant way to do things - just offload the decoding to some dedicated device and forget about it. Especially nice was the fact that it was a pcmcia form factor.

-----

Now fast forward to 2007 and I just bought the latest and greatest mac mini. The idea being that, finally, with this latest 2.0ghz core2duo, it will be fast enough to play whatever high bitrate h.264 and VC1 content I throw at it.

I was, of course, wrong.

But it got me thinking - why keep chasing after a faster CPU ? Whatever happened to hardware video decoders ?

That is why I am posting in the h.264 forum - I would like it very much if someone would explain to me, technically, what (if any) reason there is that I can't just go out and buy a nice little h.264 decoder USB stick to plug into any old computer and play all the high bitrate h.264 I please (with my CPU at 0% utilization) ??

And while we're at it, I have four USB ports in back - why not a VC1 decoder and so on....

Is this coming ? Will there be twenty of them on display at the upcoming CES and then everybodies old 2.8ghz p4 will be able to play 40mbps h.264 ?

All comments appreciated.

Dark Shikari
13th November 2007, 05:51
Most modern graphics cards support H.264/VC-1 hardware decoding.

secondoff
13th November 2007, 06:04
right - I am talking about laptops and small form factor devices.

Specifically, the mac mini - but there are many other devices whose owners would greatly benefit from this kind of thing.

Was my pcmcia mpeg decoder card a rare kind of a thing in the world ?

Dark Shikari
13th November 2007, 06:21
right - I am talking about laptops and small form factor devices.

Specifically, the mac mini - but there are many other devices whose owners would greatly benefit from this kind of thing.

Was my pcmcia mpeg decoder card a rare kind of a thing in the world ?The 8500 and 8600 are most definitely available for laptops and other small form-factor devices. They're not desktop-only.

secondoff
13th November 2007, 06:39
No, I am talking about a laptop or mac mini that I _already own_.

I can't upgrade the graphics on my mac mini, or on my subnotebook.

But I can plug in a pc-card or a USB stick.

So what I am asking is, is there any technical reason that a h.264 hardware decoder could not be put on a USB stick ? If not, do you think we will ever see one ?

It seems like a lot of people with existing systems would like one...

Inventive Software
13th November 2007, 06:48
Bandwidth is probably one reason, and the fact that H.264 and VC-1 are about 5 orders of magnitude more computationally intensive to decode than MPEG-2, so it's more complicated to code efficiently. MS proved it can be done with their VC-1 decoder though, because that's used on a chip in their HD-DVD drive for playback, but IIRC the code is something like a million lines! That may or may not include H.264 and MPEG-2. :)

akupenguin
13th November 2007, 07:40
Bandwidth is probably one reason, and the fact that H.264 and VC-1 are about 5 orders of magnitude more computationally intensive to decode than MPEG-2
You mean a factor of 5, less than 1 order of magnitude.
Bandwidth can't be a reason, because decoded video takes the same amount of bandwidth no matter what format it was decoded from, and external MPEG2 decoders were possible.

MS proved it can be done with their VC-1 decoder though, because that's used on a chip in their HD-DVD drive for playback, but IIRC the code is something like a million lines!
That had better be lines of Verilog, not any computer language. Or, no, I wouldn't believe even that; it takes on the order of 100k fpga logic elements, and each LOC produces multiple LEs. Unless you're saying MS's implementation is 100x bigger than libavcodec's, which would go a long way towards explaining why you said it's 10000x slower?

fields_g
13th November 2007, 15:53
1) Software decoding more flexible
2) Modern computers (CPU + GPU) are very powerful and underutilized


Like mentioned before, chips that are capable of vc-1 and h.264 decoding are abundant. IPODs, PSP, cell phones, HD/bluray players. A problem with many of these implementations are that not all the high level h.264 features are enabled because of how the decoder chip was created or the firmware that is supporting it. Just look around to see the threads with people seeking the RIGHT settings for their hardware.

In theory it would be possible to take these already manufactured chips and put them in a USB/PCMCIA/PCI/PCI express form. Sure, you might not be able to decode ALL h.264 material due to the chips limitations, but could do some. I believe this inflexiblity is one of the reasons they haven't stormed the market. The other, and more important reason, is that the modern processor is VERY powerful and most people barely take advantage of them, unless you are encoding video, etc. Let's not forget that the GPUs are there also!

MPEG-2 decoding boards disappeared because of the increase of CPU power and the integration of MPEG-2 decoding acceleration into the graphics card. Anyone who would think about making them should know their market will never expand. It is stuck with a shrinking pool of people who bought their computers already and are too thrifty not to get a new one, and therefore too thrifty to buy their product.

secondoff
13th November 2007, 16:30
I agree with everything you just said, but it still doesn't change the fact that there are X number of people in the world with mac minis connected to their televisions, and Y number of people with other SFF PCs, etc. The point is, these systems cannot be altered/upgraded, and if you are trying to watch a 40mbps h.264 video, you _are_ in fact, maxing out your CPU, and the presence of whatever onboard (gma 950?) you have is not helping much.

Ok, so the answer to my question is, it can be done. I am really, really surprised nobody has done it - the mac mini market alone is of reasonable size to make it worthwhile...

Dark Shikari
13th November 2007, 16:50
I agree with everything you just said, but it still doesn't change the fact that there are X number of people in the world with mac minis connected to their televisions, and Y number of people with other SFF PCs, etc. The point is, these systems cannot be altered/upgraded, and if you are trying to watch a 40mbps h.264 video, you _are_ in fact, maxing out your CPU, and the presence of whatever onboard (gma 950?) you have is not helping much.

Ok, so the answer to my question is, it can be done. I am really, really surprised nobody has done it - the mac mini market alone is of reasonable size to make it worthwhile...Anyone who can't afford to buy better than a Mac Mini is not going to be able to afford an expensive miniaturized hardware decoder stick.

Guest
13th November 2007, 17:50
That had better be lines of Verilog, not any computer language. STMicro's "hardware" solution uses a VLIW co-processor running real code.

SeeMoreDigital
13th November 2007, 20:01
Given that it's now possible to buy tiny camcorders capable of capturing MPEG-2 or MPEG-4 AVC video at 1920x1080, store it on HDD and then allow smooth playback of the afore mentioned video when directly connected to a TV via HDMI, I find it rather bemusing why todays super-duper video cards, with all their speedy GPU's and massive on-board memory chips struggle to playback the same content :eek:

RaynQuist
13th November 2007, 20:03
I'm guessing you're trying to decode 1080p since you said 40mbps, in that case anything PCI and slower doesn't have enough bandwidth to transmit the decoded pictures raw. You can of course recompress it, but that better be really easy to decompress considering your target market

JohnnyMalaria
13th November 2007, 22:11
what (if any) reason there is that I can't just go out and buy a nice little h.264 decoder USB stick to plug into any old computer and play all the high bitrate h.264 I please (with my CPU at 0% utilization) ??


Technical, no. You can buy USB2.0 h.264 realtime encoders, so decoders would be very feasible.

Market driven, yes. For most, software decoding is sufficient.

Sagekilla
14th November 2007, 01:07
Technical, no. You can buy USB2.0 h.264 realtime encoders, so decoders would be very feasible.

Market driven, yes. For most, software decoding is sufficient.

Yeah, but I'm willing to bet those real time encoders probably don't support many of the higher end encoding features (Because of complexity and lack of support in decoders) and thus, lesser video quality than a more flexible software based solution.

With that said, I would gladly drop $100 or $150 if someone released an FPGA based H.264 encoder/decoder with support for modifying it to add specific functionality, like that found in x264. Maybe it's just a pipe dream, but if anyone ever released it I'd be on that like a fat kid on cake.

celtic_druid
14th November 2007, 04:33
Read somewhere that Intel was using a 1X PCIe card with a broadcom chipset to do HDDVD/BluRay decoding since their G965 can't handle it.

Doesn't mean that it would be possible via USB, but it does mean that it is possible and that there are solutions available. The Mac Mini I believe has a mini PCI-e connector, so USB wouldn't be the only option anyway.

http://www.broadcom.com/press/release.php?id=1010620
available in three add-in card formats (including desktop PCI Express®, PCI Express mini-card or ExpressCard™ 34), and as a chipset solution for PC motherboard applications.

Turtleggjp
14th November 2007, 07:19
I agree with everything you just said, but it still doesn't change the fact that there are X number of people in the world with mac minis connected to their televisions, and Y number of people with other SFF PCs, etc. The point is, these systems cannot be altered/upgraded, and if you are trying to watch a 40mbps h.264 video, you _are_ in fact, maxing out your CPU, and the presence of whatever onboard (gma 950?) you have is not helping much.

Ok, so the answer to my question is, it can be done. I am really, really surprised nobody has done it - the mac mini market alone is of reasonable size to make it worthwhile...

I think that statement right there says it all. If you know you cannot alter or upgrade the system, then you know what it can do out of the box, and it will never be able to do any more than that. Such systems may have some benefits (reliability? stability?) but when it comes to more advanced stuff like adding video accelerators, if it didn't come with it, it can't do it. That right there is one reason I personally would never buy such a system.

Here's the problem with your USB stick idea. Let's say such a device existed. You feed it with 40 mbps h.264 video and it decodes it. Now what? You've got this huge stream of uncompressed video that now has to flow back out of the USB stick. I don't think that 480 mbps (or even Firewire b's 800 mbps) is enough bandwidth to carry such a large amount of data. PCI Express x1 might have enough (250MB/sec?), but now you are talking more about internal stuff. Again, if it didn't come with it, you probably can't add it later.

Matt

foxyshadis
14th November 2007, 08:01
1080p60 to RGB is a hair under 500MBps, even best-case as YV12 it's 190 MBps. Even at 24fps it's still much too high for USB, just barely works for firewire. If mac minis had expresscard, you could get PCIE and do all of this without a problem, but they don't.

On the other hand, nothing says it has to return the raw data; there are plenty of external and removeable PCMCIA/Expresscard sound cards, that output directly instead of feeding back in. You should email ATI, Nvidia, Intel, Matrox, and other graphics makers about this kind of USB decoding stick. Strike up a bit of demand.

If you have an intel mac mini, you can update it with any T7xxx or X7xxx on the market, though. The boost is pretty substantial. If it's a PPC mini, the best you can do is to find a compatible G4 somewhere, probably used.

celtic_druid
14th November 2007, 08:05
Who says you can't alter or upgrade the system? As far as I can tell you could just rip out the wireless card and replace it with a broadcom card, that's if there are drivers to get it working.

Yoshiyuki Blade
14th November 2007, 12:09
Given that it's now possible to buy tiny camcorders capable of capturing MPEG-2 or MPEG-4 AVC video at 1920x1080, store it on HDD and then allow smooth playback of the afore mentioned video when directly connected to a TV via HDMI, I find it rather bemusing why todays super-duper video cards, with all their speedy GPU's and massive on-board memory chips struggle to playback the same content :eek:

Only a small amount of hardware is used for dedicated video decoding. Something like 1 million transistors out of the 680 million on my 8800 gtx? I don't know the exact numbers, but its very small in comparison. The rest of the horsepower is reserved for gaming.

bill_baroud
14th November 2007, 14:20
With that said, I would gladly drop $100 or $150 if someone released an FPGA based H.264 encoder/decoder with support for modifying it to add specific functionality, like that found in x264. Maybe it's just a pipe dream, but if anyone ever released it I'd be on that like a fat kid on cake.

That's the price for entry-level FPGA Dev Kit, just buy an H264 IP (or code it :D) and your almost there.


@Yoshiyuki Blade : well, nowadays, they don't even bother, they do it with the hundred of pixel pipelines available, so it's just a matter of drivers. But that's too expensive to code, so it always just stay as marketing BS...

Sagekilla
15th November 2007, 02:04
That's the price for entry-level FPGA Dev Kit, just buy an H264 IP (or code it :D) and your almost there.


@Yoshiyuki Blade : well, nowadays, they don't even bother, they do it with the hundred of pixel pipelines available, so it's just a matter of drivers. But that's too expensive to code, so it always just stay as marketing BS...

Only problem I could imagine is the IP core being a bit more then the $100 for the dev kit!

And as to what does the actual decoding, it's not really the shaders anymore. Both Nvidia and AMD does it on a dedicated core which, like said before, takes up only a few million transistors. I'd imagine that it would be quite easy to mass produce it (less transistors = more dies from a silicon wafer) but like you said there's probably just marketing BS that keeps it from being a viable add-on card any sort.

bill_baroud
15th November 2007, 13:18
With set top box and other HD devices now, there should be quite a lot of H264 decoding chipset, like Ambarella or WWComs (http://www.wwcoms.com/products/introduction.html) ones.

Everything is here, you just need to convince some investors that your product can sell in thousand ;)
But you still have the problem of integrating your custom hardware with software, look how the graphics card vendors solutions are limited to a few big software players.