To be precise, digital video is not stored in the YUV colorspace. YUV is the colorspace used by analog PAL hardware. Digital video is compressed from the RGB colorspace (used by CCDs on input and phosphors on output) into the Y'CbCr colorspace and is almost always incorrectly called "YUV".
The benefit of converting to this Y'CbCr colorspace is that you can get cheap, easy compression by simply subsampling the 2 color-difference channels, Cb and Cr, and humans will probably not notice.
Now lets assume that your "healthy budget" means "professional" and not "consumer"... That 1/4 chroma resolution implies a 4:1:1 or 4:2:0 sampling format which is fine for consumer level products like DV and DVDs, but any professional-level hardware will use at least 4:2:2, bringing you up to 16bpp.
Let's try that calculation again:
720(w)*480(h)*16(color)*12000(fps)= 66.4 gigabits per second.
Now for those of you who want to compress this monsterous stream with a beowulf cluster, I'd like you to show me one that can suck a 66.4 Gbps data stream out of a camera.:) right.
That leaves us with the only option of compressing in the camera hardware as the previous poster suggested with an array of encoders, each working on 1 GOP. Assuming we use realtime hardware encoders, we'll need about 401 of them: 12000(camera fps)/(30000/1001)(NTSC fps) = 400.4. I'd recommend setting the 401 encoders to produce 5Mbps MPEG-2 streams to achieve a decent quality. That gives us about 2 Gbps of MPEG-2 output.
BTW, to hold a 30-frame GOP in memory for each encoder while they encode, we'll need almost 8GB of RAM: 720(w)*480(h)*2(color)*8(GOP)*401(encoders) = 7.74GB (Let's try 8-frame GOPs for 2GB of RAM)
To store that 2Gbps video stream, we'll need a single SCSI Ultra320 hard drive. (not bad)
I'm serious. Switching from Java 2 to C# was like getting a major language upgrade. Everything was cleaner, faster and with syntactic features that make coding much easier. Combine C# with the.NET Framework, Managed C++ and standard C/C++, and you have a amazing set of tools. I can easily do things now, that I would never have dared waste my time on in Java.
Only superficially all.NET languages are different, only superficially they are like their originals (syntax etc). In fact all.NET languages are structurally alike, only the syntax is somewhat different.
I am so sick of reading this.NET FUD. When you develop a language for.NET, nobody says that you have to write just another OO language with a new syntax. You can do whatever the hell you want with your language. The only requirements imposed by.NET are that you must support some mechanism to interface with the common language runtime using the common types and maybe the common framework classes.
Let's take Managed C++ for example... I can write a.NET module that has a single function as the entry point from.NET. Once inside that function, I can do anything I want, use any C++ construct I want, all without.NET imposing any constraints on me or my program.
With F#, I can write all the crazy functional non-OO code I want. The only part of my code that must fit the common.NET OO model is the part that interfaces with the outside world. That's IT.
Think of.NET as the glue that binds all these laguages together. Only the parts of your code that touch that glue must fit to its model. This is unavoidable if you want different languages to talk to each other. In the rest of your code, you can use whatever non-.NET constructs you want to use.
The access time of high-rpm scsi drives is amazing. I could care less about throughput when banging on code or playing games, but a fast access time will make everything seem so much faster.
You can get a 15000 rpm drive with scsi, or you can get at most 7200 rpms with IDE.
When Geforce3 came out it didn't have much of a clock speed increase, but boasted features that if taken advantage of by the developers would make the games look *MUCH* better. And yet, the only trend in the gaming industry that I've spotted is cranking up the poly counts.
This chip supports OpenGL 2.0 which may help solve this problem by making all those cool features more accessible to developers.
Why would anyone want PGP built in instead of S/MIME? Mozilla and OE come with S/MIME built-in by default, so why would they ask for a different protocol?
Back in the NES days I would use my index and middle fingers for the b and a buttons, the genesis controller was designed so I could do the same. But once shoulder buttons started to be on all controllers, from the SNES onwards, I couldnt pull that off.
It's too bad they didn't go with ass buttons on the bottom of the controlers instead of those shoulder buttons. Then you could still use use pointer and index fingers on top.:)
Since Hyperthreading is implemented on the hardware level, the motherboard sees a single hyperthread-compatible CPU as two physical CPUs. Thus, software that is written for multiple CPUs will be tricked into thinking there is a second CPU in the system, and will run the appropriate multithreaded code if available. Since Windows XP and 2000 are coded to take advantage of multiple CPU's, it too sees a hypertheaded CPU as two.
It would seem that you don't need special OS support beyond standard SMP.
Many pro-choice supporters argue that there are no ethical ramifications from aborting a pregnancy during the first or second trimester because the fetus could not survive outside of the mother.
What if this technology provided a way for such a fetus to survive outside of the mother? What if abortions no longer killed the fetus, but simply transported it from the mother's womb into an artificial womb in some lab?
Now the ethics have all changed. Pro-life supports can argue that Yes, the fetus can survive outside the mother, refuting the original pro-choice argument. And now the pro-choice supporters would have an alternative to destroying the fetus which they could argue is ethical. Then the other side would argue that it is unethical to abandon the baby, etc. It could go on and on...
The other ethical dilemma could come from mothers not wanting to go through 9 months of pregnancy if they could just stick the embryo in an articifial womb. It would be the easy-way-out. Who knows how the baby would turn out from one of these things, totally un-stimulated. What are the ethics of experimenting with such procedures?
My biggest gripe about programming books is that they tend to fill page after page with code and expect you to wade through it. I would much rather see small snippets of code that do the key work (w/ explanations) and then have a CD-ROM or URL where I can get the full source.
It reminds me of when I discovered font sizes and double-spacing when writing essays inelementary school.
I certainly got a kick out of the fact that 1/5 of the respondents work on open source projects on company time, unbeknownst to their boss. I wonder just how many Employee Agreements contracts have been violated in this way.
If an employer were to discover that their employees worked on these projects on company time, using company equipment, could they have a legal right to close parts of an open project?
Of all the "Slashdot Weenies" who go on about the wonders of open source because you can access the code yourself to fix problems, how many have actually done it?
I know I haven't.
It's one thing to crack open a C file. It's quite another to reverse-engineer the overall design of 50+ poorly commented C files so you know where to begin fixing the annoying little bug.
At work, I optimized some image processing code to use AltiVec and got a 24x improvement (!!!) over the standard C implementation.
The funny part is that I had just finished watching a presentation on AltiVec where the presentor stated that 16x is your theoretical max and that most people cannot get more than 8-10x.
I'm not talking about soft-copy formats. I am talking about physical mediums such as tapes, CDs, DVDs, VHS tapes, LaserDiscs and MiniDiscs that are used to mass-distrubute movies, music and other media, such as the one discussed in this article. You will not find these without copy-protection in the future. With digital technology these days, what company would be stupid enough to sell something that any old joe blow could take home, make 10 identical copies and give them to all his friends?
As for the compression technologies used to encode media and the file formats used to store them, of course you are going to have free-as-in-speach formats. As long as there are programmers out there who want to copy and distribute media, they will be writing software to make it possible. It will not, however be as easily accessible and easy-to-use as something you rent from the video store and pop into your VCR.
If you hold off on the "gotcha" until they are handing you a check, then you only get to warn the most gullible of investors.
OTOH, if you let them know sooner, then you will get to warn a larger number of slightly-less-gullible people about the potential for investment scams.
Only on shlashdot will the headline read "Copy-Protected Digital VHS" instead of "New HD Media Format for Consumers".
Can you honestly expect any new media format to NOT have copy-protection built in? We should just get used to the fact that the companies who bring us all this new technology will want to make sure we pay for it.
The benefit of converting to this Y'CbCr colorspace is that you can get cheap, easy compression by simply subsampling the 2 color-difference channels, Cb and Cr, and humans will probably not notice.
Now lets assume that your "healthy budget" means "professional" and not "consumer"... That 1/4 chroma resolution implies a 4:1:1 or 4:2:0 sampling format which is fine for consumer level products like DV and DVDs, but any professional-level hardware will use at least 4:2:2, bringing you up to 16bpp.
Let's try that calculation again:
720(w)*480(h)*16(color)*12000(fps)= 66.4 gigabits per second.
Now for those of you who want to compress this monsterous stream with a beowulf cluster, I'd like you to show me one that can suck a 66.4 Gbps data stream out of a camera. :) right.
That leaves us with the only option of compressing in the camera hardware as the previous poster suggested with an array of encoders, each working on 1 GOP. Assuming we use realtime hardware encoders, we'll need about 401 of them: 12000(camera fps)/(30000/1001)(NTSC fps) = 400.4. I'd recommend setting the 401 encoders to produce 5Mbps MPEG-2 streams to achieve a decent quality. That gives us about 2 Gbps of MPEG-2 output.
BTW, to hold a 30-frame GOP in memory for each encoder while they encode, we'll need almost 8GB of RAM: 720(w)*480(h)*2(color)*8(GOP)*401(encoders) = 7.74GB (Let's try 8-frame GOPs for 2GB of RAM)
To store that 2Gbps video stream, we'll need a single SCSI Ultra320 hard drive. (not bad)
Now go build it! :)
Flame on. I know you want to.
I am so sick of reading this .NET FUD. When you develop a language for .NET, nobody says that you have to write just another OO language with a new syntax. You can do whatever the hell you want with your language. The only requirements imposed by .NET are that you must support some mechanism to interface with the common language runtime using the common types and maybe the common framework classes.
Let's take Managed C++ for example... I can write a .NET module that has a single function as the entry point from .NET. Once inside that function, I can do anything I want, use any C++ construct I want, all without .NET imposing any constraints on me or my program.
With F#, I can write all the crazy functional non-OO code I want. The only part of my code that must fit the common .NET OO model is the part that interfaces with the outside world. That's IT.
Think of .NET as the glue that binds all these laguages together. Only the parts of your code that touch that glue must fit to its model. This is unavoidable if you want different languages to talk to each other. In the rest of your code, you can use whatever non-.NET constructs you want to use.
You can get a 15000 rpm drive with scsi, or you can get at most 7200 rpms with IDE.
Why would anyone want PGP built in instead of S/MIME? Mozilla and OE come with S/MIME built-in by default, so why would they ask for a different protocol?
:)
It's too bad they didn't go with ass buttons on the bottom of the controlers instead of those shoulder buttons. Then you could still use use pointer and index fingers on top. :)
Or do the drivers always turn this crap on no matter what video is going out?
It would seem that you don't need special OS support beyond standard SMP.
What if this technology provided a way for such a fetus to survive outside of the mother? What if abortions no longer killed the fetus, but simply transported it from the mother's womb into an artificial womb in some lab?
Now the ethics have all changed. Pro-life supports can argue that Yes, the fetus can survive outside the mother, refuting the original pro-choice argument. And now the pro-choice supporters would have an alternative to destroying the fetus which they could argue is ethical. Then the other side would argue that it is unethical to abandon the baby, etc. It could go on and on...
The other ethical dilemma could come from mothers not wanting to go through 9 months of pregnancy if they could just stick the embryo in an articifial womb. It would be the easy-way-out. Who knows how the baby would turn out from one of these things, totally un-stimulated. What are the ethics of experimenting with such procedures?
So, YES there are ethical concerns.
Or maybe they could argue that it is thumbnail sized when they print it on the envelope. :)
I hope that technology like this will further increase the demand for IPv6. Needless to say, it's long overdue.
It reminds me of when I discovered font sizes and double-spacing when writing essays inelementary school.
Go fill in where these HOWTO's left off.
That sounds like interesting work. How did you get into it? REMOVEsean@THISearthtribe.netCRAP
If an employer were to discover that their employees worked on these projects on company time, using company equipment, could they have a legal right to close parts of an open project?
I know I haven't.
It's one thing to crack open a C file. It's quite another to reverse-engineer the overall design of 50+ poorly commented C files so you know where to begin fixing the annoying little bug.
Why would I want to play Quake at a measily 60 fps for 2 years straight, when I can play it for at most 1 hour at a blazing 61 fps? :)
The funny part is that I had just finished watching a presentation on AltiVec where the presentor stated that 16x is your theoretical max and that most people cannot get more than 8-10x.
Go AltiVec!
As for the compression technologies used to encode media and the file formats used to store them, of course you are going to have free-as-in-speach formats. As long as there are programmers out there who want to copy and distribute media, they will be writing software to make it possible. It will not, however be as easily accessible and easy-to-use as something you rent from the video store and pop into your VCR.
OTOH, if you let them know sooner, then you will get to warn a larger number of slightly-less-gullible people about the potential for investment scams.
Can you honestly expect any new media format to NOT have copy-protection built in? We should just get used to the fact that the companies who bring us all this new technology will want to make sure we pay for it.
Speed of Carrier Pigeon Measurement Using Ping