That is commonly how it's done, but you do lose some bitrate efficiency that way, and it doesn't parallelize perfectly as many operations need to be performed across the whole frame after the slices are reassembled, before the next frame/slices can be processed. x264 did this, but (somewhat recently) dumped this method for something better.
Video encoders chop up frames into slices anyway for different reasons (different slice characteristics, concealment for transmission errors). Full-frame slices were common for MPEG-1 but modern codecs almost invariably use sliced frames now.
No (remotely decent) MPEG encoder made in the past 2 decades uses a fixed GOP-size. That's horribly inefficient.
I think you are wrong about that, lots of encoders still use fixed size GOPS. There's nothing inherently 'inefficient' about it, as fixed GOP *size* does not imply fixed-GOP *structure*. Even then, with 2-pass encoding (which you want anyway if you're concerned about quality) you already figured out the video characteristics after the 1st pass, including GOP structure, so parallelization on the GOP level is still an option.
Do *WHAT* to the luma and chroma channels?
Luma and chroma-U/chroma-V are independent, so you can process them in parallel. Modern codecs can even use different motion vectors for luma/chroma, so with these you can even parallelize motion estimation.
That sounds like a core relay race... each one sitting idle most of the time, as it waits for data from the previous. It doesn't matter how fast you can do DCT and quantization, since the (slow) motion estimation, scene-change detection, and rate control first need to process the frame to decide how to change what happens to the next frame.
It was only a suggestion, of course you would be limited by the most expensive stage, but assigning different encoder/decoder stages to different cores is still a whole lot better than single-threaded encoding/decoding. It's exactly what heterogenuous multicore systems like the Cell BE use, with cores to spare and autonomous DMA transfers.
Parallel quantization is useless, because quant levels are different for each frame due to bitrate constraints and frame complexity. Parallel DCT is useless, since you need to know whether it's going to be an I, P, or B frame, and the differential from the previous frame, to do anything. etc.
I wasn't talking about parallelizing quantization (which is cheap anyway) or DCT.
A little bit of knowledge is a dangerous thing... You've mostly come up with lots of ways to keep the CPUs maxed-out, doing busy work that can't help speed-up encoding at all.
Excuse me, but isn't keeping the cores busy exactly what you want, as long as each core does something useful? It's idle cores that don't speed up anything.
As for the 'little bit of knowledge': I've written my own MPEG-1 parallel decoder for the PS3 so I guess I know what I'm talking about. Although not nearly complete or useful for anything other than educational purposes, it does use some of the techniques I described with fine results.
You could of course split each frame in slices, and process these in parallel. Or skip the video N frames between each core, with N being the number of frames between MPEG keyframes. Or have core 1 do the luma and core 2 and 3 the chroma channels. Or pipeline the whole thing and have core 1 do the DCT, core 2 the dequant etc. and have core 3 reconstruct the output reference frame while core 1 already starts the next frame.
Plenty of ways to parallelize decoding, and even more for encoding...
I thought I agreed with the parent poster, but after reading your post I have to say I also agree with what you said.
Maybe the system should only punish an obvious lack of remorse extra heavy. Like going to a party and having fun like in this case, or declaring that you don't give a shit that you injured someone. True remorse is hard to act but I think there are people who can be convincing enough, especially the really bad guys (real psychopaths, they are often very intelligent and the social skills to persuade others into believing anything). A true lack of remorse is easy to prove and will never be acted.
I suppose it's my fault for forgetting that MS chose such an insane default. But I shouldn't have my games ruined by a notification after I've put up with the significant performance drain that all that hard drive accessing resulted in.
Yeah, I had the death-clock update popup make me 2 nice dual-layer DVD coasters in the past. Gladly I just saw it going down the second time so after that I knew what happened. Just can't believe how they could have put this in like this by default.
Well of course you cannot argue that an infallible chain of trust would be a good thing, but I'm not entirely convinced such a thing can ever exists in this world, where commercial interests and general user ignorance will always provide ample opportunities to use the system to your own ends, creating a false sense of security.
That said, the question in this case was if a user-CA would be a bad thing. I still don't think it's a bad idea if you are careful with the implementation. IE: make sure no-one ever, ever sees the machine with the CA setup with which the root and CA certs where created, except the maintainer (that means *no* network access whatsoever), and the CA certs are only provided to customers/visitors by a secure channel (physical or electronical). If they just import the CA cert once and get the client certs the usual way, they can be pretty safe they're talking to you.
Well how do we know that a certificate signed by Thawte is trusworthy then? Almost every piece of unwanted software I ever encountered that used SSL verification was signed by Thawte, they sell certificates to anyone. Yet, it is installed as a 'thrustworthy' CA by default in Windows.
The issue is: people cannot trust the issuer of the certificate anyway, because they know nothing about them. I'm not 100% sure about this, but I think the CA always has to be set-up using the domain name it is valid for, I think you cannot spoof it without getting an invalid certifcate. So as an end user, at least you have the domain name as a reference. The only other alternative is to not use SSL verification at all, seeing that it is pretty easy to get a certificate from a 'trusted' provider.
It's only giving a false sense of security if people do not trust your web site. If the certificate authority is setup well, the server certificates are created from it like they should, and the certificate authority server is secured well enough (ie: not accessible from the outside in any way) the setup is in no way 'less safe' or trusworthy than using a known certificate authority. It's not like anyone can fake your CA or the client certificates.
I don't really see the difference between OS X privilege escalation using a password prompt and sudo or Vista using UAC. If you allow the program admin privileges you're screwed, and I believe it's just as easy to implement this on Vista as it is on OS X. On linux it might be a little bit harder because different distro's use different sudo configurations.
As for the ARDAgent vulnerability: that's a completely different story, it's a serious security flaw that needs to be fixed very, very fast.
In the Settlers games, the forrester guys wouldn't plant new trees for you to chop down if you played a pirated copy. Took me a while to figure out that it was, in fact, impossible to finish a single game like that. Evil but ingenious as there was no warning whatsoever.
On the other hand, assuming they can find a variety of Banana which is easy to cultivate, resistant to this disease, AND tasty, then it'll be a huge boon to their economy. It could do more good for Africa than all the foreign aid of the last three decades combined. Or, of course, the 3 or 4 big banana companies of the earth (which are all 'western'), will jump into the void and start exploiting African banana farmers, let them work in dangerous conditions, using chemicals, and not nearly paying them enough to make a proper living. So more or less re-create the current status quo in latin-american banana farming but now in africa...
The only thing slow about Java are the GUI libraries and the initial VM startup, for non-interactive stuff it is actually very fast. Anyone wanting to develop GUI applications using Java should use some kind of native GUI library through JNI.
Not that many, in fact. There's the Arcade (used to be core) without a hard drive, the Premium with a 20GB HD and the Elite with a 120GB HD. In between there have been a few mobo/die shrink revisions but you can't really call that 'new versions' as they add or remove no functionality whatsoever.
Now as for the PS3, you have: 1) the 20GB with full backwards compatibility, 4x usb, cardreader 4) the 40GB with full BC, 4x USB, cardreader 2) the 80GB with full BC, 4x USB, cardreader 3) the 60GB with partial BC, 4x USB, cardreader 4) the 40GB without any BC, 2x USB, no cardreader 5) the 80GB without BC, 2x USB, no cardreader
I probably missed a few combinations, I think there's a 120GB version coming as well, and they also did a die shrink on the CPU in between.
The DRM argument doesn't impress me, both my Macs also run Windows and Linux. I've never run into any DRM issues on OS X, and as I'm using my computer like an end-user does most of the time, not as a free-software fundamentalist, I don't really mind running proprietary software if it's good.
Now take a step back and try reading that as a non-techy.
I'll help: it doesn't matter what hardware is in it, Apple makes PC's that are special in the sense that they are well-integrated boxes that run an alternative OS. Simple as that, period...
Why is it so hard for Slashdot people to understand the hardware is just the medium the computer runs on, it's the software and experience that sets them apart. As of yet, no other vendor can offer the same *computer systems* that Apple offers, so that *does* make them 'special' compared to 'normal PCs'
Added to that: you are running a heavy physics PPC application on a new iMac (which is x86). No wonder your machine is slow, it's running through an emulator which makes it about 4 times slower on average and using 8 times more memory. For a physics app I would guess its even worse. Use a G5 machine for such applications or get/recompile an x86 version.
I would also recommend upgrading your OS version, 10.3.9 is like stone-age OS X.
All the other 'issues' don't really impress me. Changing your Icon Theme? Uninstalling an application? Changing the background image? Problems with the right button on the mighty mouse?
It just sounds like you don't know a lot about OS X yet and refuse to take a few minutes finding out how to solve these issues, and you are using outdated software compiled for a different CPU architecture. If these are the only issues you have with OS X, you don't actually have issues with OS X, you just have issues with the way it works, and with the applications you need to use on them.
So what you're actually saying is that Macs are special in the hardware sense in that they are designed and produced differently than the average PC, although their internals are very similar to PC's (Apple does use special CPU steppings and GPU firmware FWIW), and special in the software sense in that they are the only personal computers that can run OS X legally and fully supported.
Can you no please explain how Macs are *not* special from common PC's again?
If you don't understand that the friggin CPU architecture is not what makes hardware superior or inferior for the majority of Apple's target audience, you are most likely not part of this majority...
Apple hardware is superior in the sense that it is integrated, quiet and (to a lot of people) good-looking. The user experience of the hardware and software combines is what makes the hardware superior. I'm not going into the 'Apple hardware is overpriced' argument too much anymore, but let me say this: Apple hardware in the US (in $) is actually *much* cheaper than Dell hardware in Europe (in â), does that make Dell overpriced too? Seeing that the there are literally no competing products with the same form factor and level of integration that are actually cheaper, the 'overpriced' argument does not hold for me. Also, there's a difference between 'price' and 'value' that seems to be hard to see for some people. Something can be cheap but worthless (or devaluate really fast), while something expensive may in fact be a bargain...
Yeah those wankel engines are pretty cool. That said, my second car (over 18 years old already) has a 1294cc engine that puts out 105 bhp @7800 rpm, so conventional piston engines don't do too bad either... I kinda like the new small BMW turbo engines that are used in e.g. the Mini Cooper S. The Peugoet 308RC concept gets 200+ bhp from this engine, which has a 1.6 litre capacity:-P
There's lots of new 3-cylinder cars driving around (at least here in Europe), first that comes to mind are the Citroen C1/Peugeot 107/Toyota Aygo (which are the same cars). But there's probably some more... There's 5-cylinder ones as well btw (Focus ST for example). And one of my friends' car has a 12-valve engine, 4 cylinder with 3 valves/cylinder...;-)
There is no reason you should ever spend this much on cables. Ever. In fact, go ahead and do a blind test between Monster Cable and a coat hanger, and I defy you to be able to tell which is which. It's even extra-funny when people spend these kind of prices for digital cabling. So true. I had this discussion with one of my friends who still seems to think anything more expensive is better, tried to explain to him that a $100 HDMI cable is in no way better than a $20 one, as the connection is digital and as such should either pass a 100% lossless signal or not work at all. It didn't help, he still thinks he should always go for the most expensive solution anyway. He's now looking at a 900 (analog, stereo!) amplifier together with 1 550 subwoofer and 2 250 speakers. I have no idea what on earth he is going to hook it up to but he just doesn't seem to understand that this kind of equipment only makes sense for true audiophiles (which he isn't), and I think they would *still* prefer a decent headphone.
There's a lot more to programming in a specific programming language than just the syntax, you know. It will take even a very, very experienced C++ programmer a lot of time to master the most common Java or C# libraries, or to learn all the weird deviations of the traditional OO model that e.g. Delphi implements. C++ is relatively basic in the sense that it does not have a library of standard functions as large as Java, and still it takes years and years to get proficient in it, mostly because you have so many ways to do the same. What seems like a good idea in language X might be a very bad idea in language Y, although they might be very similar syntactically...
If they want to hit 2029 they not only need full understanding and perfect simulation of our brains, but they also need to start raising this 'human intelligence' pretty fast. If it takes 18 years to raise a human child to be able to interpret, value and effect the world around it in a sensible way, there is no reason to assume a computer can do it any faster.
There's a lot more involved in creating human AI, most importantly semantics for all the things around us. And not 1 single set of semantics, but loads of them for loads of concepts. The meaning of anything said or written is so much influenced by culture, religion, emotional state, education, tuition and other stuff like that. It's naive to think you can reproduce human intelligence by just simulating the medium (brains), and even that is miles beyond our technical capabilities and knowledge of the way our brains work *and* develop when we mature.
That is commonly how it's done, but you do lose some bitrate efficiency that way, and it doesn't parallelize perfectly as many operations need to be performed across the whole frame after the slices are reassembled, before the next frame/slices can be processed. x264 did this, but (somewhat recently) dumped this method for something better.
Video encoders chop up frames into slices anyway for different reasons (different slice characteristics, concealment for transmission errors). Full-frame slices were common for MPEG-1 but modern codecs almost invariably use sliced frames now.
No (remotely decent) MPEG encoder made in the past 2 decades uses a fixed GOP-size. That's horribly inefficient.
I think you are wrong about that, lots of encoders still use fixed size GOPS. There's nothing inherently 'inefficient' about it, as fixed GOP *size* does not imply fixed-GOP *structure*. Even then, with 2-pass encoding (which you want anyway if you're concerned about quality) you already figured out the video characteristics after the 1st pass, including GOP structure, so parallelization on the GOP level is still an option.
Do *WHAT* to the luma and chroma channels?
Luma and chroma-U/chroma-V are independent, so you can process them in parallel. Modern codecs can even use different motion vectors for luma/chroma, so with these you can even parallelize motion estimation.
That sounds like a core relay race... each one sitting idle most of the time, as it waits for data from the previous. It doesn't matter how fast you can do DCT and quantization, since the (slow) motion estimation, scene-change detection, and rate control first need to process the frame to decide how to change what happens to the next frame.
It was only a suggestion, of course you would be limited by the most expensive stage, but assigning different encoder/decoder stages to different cores is still a whole lot better than single-threaded encoding/decoding. It's exactly what heterogenuous multicore systems like the Cell BE use, with cores to spare and autonomous DMA transfers.
Parallel quantization is useless, because quant levels are different for each frame due to bitrate constraints and frame complexity. Parallel DCT is useless, since you need to know whether it's going to be an I, P, or B frame, and the differential from the previous frame, to do anything. etc.
I wasn't talking about parallelizing quantization (which is cheap anyway) or DCT.
A little bit of knowledge is a dangerous thing... You've mostly come up with lots of ways to keep the CPUs maxed-out, doing busy work that can't help speed-up encoding at all.
Excuse me, but isn't keeping the cores busy exactly what you want, as long as each core does something useful? It's idle cores that don't speed up anything.
As for the 'little bit of knowledge': I've written my own MPEG-1 parallel decoder for the PS3 so I guess I know what I'm talking about. Although not nearly complete or useful for anything other than educational purposes, it does use some of the techniques I described with fine results.
You could of course split each frame in slices, and process these in parallel. Or skip the video N frames between each core, with N being the number of frames between MPEG keyframes. Or have core 1 do the luma and core 2 and 3 the chroma channels. Or pipeline the whole thing and have core 1 do the DCT, core 2 the dequant etc. and have core 3 reconstruct the output reference frame while core 1 already starts the next frame.
Plenty of ways to parallelize decoding, and even more for encoding...
I thought I agreed with the parent poster, but after reading your post I have to say I also agree with what you said.
Maybe the system should only punish an obvious lack of remorse extra heavy. Like going to a party and having fun like in this case, or declaring that you don't give a shit that you injured someone. True remorse is hard to act but I think there are people who can be convincing enough, especially the really bad guys (real psychopaths, they are often very intelligent and the social skills to persuade others into believing anything). A true lack of remorse is easy to prove and will never be acted.
I suppose it's my fault for forgetting that MS chose such an insane default. But I shouldn't have my games ruined by a notification after I've put up with the significant performance drain that all that hard drive accessing resulted in.
Yeah, I had the death-clock update popup make me 2 nice dual-layer DVD coasters in the past. Gladly I just saw it going down the second time so after that I knew what happened. Just can't believe how they could have put this in like this by default.
Well of course you cannot argue that an infallible chain of trust would be a good thing, but I'm not entirely convinced such a thing can ever exists in this world, where commercial interests and general user ignorance will always provide ample opportunities to use the system to your own ends, creating a false sense of security.
That said, the question in this case was if a user-CA would be a bad thing. I still don't think it's a bad idea if you are careful with the implementation. IE: make sure no-one ever, ever sees the machine with the CA setup with which the root and CA certs where created, except the maintainer (that means *no* network access whatsoever), and the CA certs are only provided to customers/visitors by a secure channel (physical or electronical). If they just import the CA cert once and get the client certs the usual way, they can be pretty safe they're talking to you.
Well how do we know that a certificate signed by Thawte is trusworthy then? Almost every piece of unwanted software I ever encountered that used SSL verification was signed by Thawte, they sell certificates to anyone. Yet, it is installed as a 'thrustworthy' CA by default in Windows.
The issue is: people cannot trust the issuer of the certificate anyway, because they know nothing about them. I'm not 100% sure about this, but I think the CA always has to be set-up using the domain name it is valid for, I think you cannot spoof it without getting an invalid certifcate. So as an end user, at least you have the domain name as a reference. The only other alternative is to not use SSL verification at all, seeing that it is pretty easy to get a certificate from a 'trusted' provider.
It's only giving a false sense of security if people do not trust your web site. If the certificate authority is setup well, the server certificates are created from it like they should, and the certificate authority server is secured well enough (ie: not accessible from the outside in any way) the setup is in no way 'less safe' or trusworthy than using a known certificate authority. It's not like anyone can fake your CA or the client certificates.
I don't really see the difference between OS X privilege escalation using a password prompt and sudo or Vista using UAC. If you allow the program admin privileges you're screwed, and I believe it's just as easy to implement this on Vista as it is on OS X. On linux it might be a little bit harder because different distro's use different sudo configurations.
As for the ARDAgent vulnerability: that's a completely different story, it's a serious security flaw that needs to be fixed very, very fast.
In the Settlers games, the forrester guys wouldn't plant new trees for you to chop down if you played a pirated copy. Took me a while to figure out that it was, in fact, impossible to finish a single game like that. Evil but ingenious as there was no warning whatsoever.
$ osascript -e 'tell app "ARDAgent" to do shell script "touch /tmp.tmp"' /tmp.tmp /tmp.tmp /tmp.tmp /tmp.tmp: Permission denied
$ ls -l
-rw-rw-rw- 1 root admin 0 Jun 19 11:19
$ rm -rf
rm:
Seems pretty exploitable to me...
The only thing slow about Java are the GUI libraries and the initial VM startup, for non-interactive stuff it is actually very fast. Anyone wanting to develop GUI applications using Java should use some kind of native GUI library through JNI.
Not that many, in fact. There's the Arcade (used to be core) without a hard drive, the Premium with a 20GB HD and the Elite with a 120GB HD. In between there have been a few mobo/die shrink revisions but you can't really call that 'new versions' as they add or remove no functionality whatsoever.
Now as for the PS3, you have:
1) the 20GB with full backwards compatibility, 4x usb, cardreader
4) the 40GB with full BC, 4x USB, cardreader
2) the 80GB with full BC, 4x USB, cardreader
3) the 60GB with partial BC, 4x USB, cardreader
4) the 40GB without any BC, 2x USB, no cardreader
5) the 80GB without BC, 2x USB, no cardreader
I probably missed a few combinations, I think there's a 120GB version coming as well, and they also did a die shrink on the CPU in between.
The DRM argument doesn't impress me, both my Macs also run Windows and Linux. I've never run into any DRM issues on OS X, and as I'm using my computer like an end-user does most of the time, not as a free-software fundamentalist, I don't really mind running proprietary software if it's good.
Now take a step back and try reading that as a non-techy.
I'll help: it doesn't matter what hardware is in it, Apple makes PC's that are special in the sense that they are well-integrated boxes that run an alternative OS. Simple as that, period...
Why is it so hard for Slashdot people to understand the hardware is just the medium the computer runs on, it's the software and experience that sets them apart. As of yet, no other vendor can offer the same *computer systems* that Apple offers, so that *does* make them 'special' compared to 'normal PCs'
Added to that: you are running a heavy physics PPC application on a new iMac (which is x86). No wonder your machine is slow, it's running through an emulator which makes it about 4 times slower on average and using 8 times more memory. For a physics app I would guess its even worse. Use a G5 machine for such applications or get/recompile an x86 version.
I would also recommend upgrading your OS version, 10.3.9 is like stone-age OS X.
All the other 'issues' don't really impress me. Changing your Icon Theme? Uninstalling an application? Changing the background image? Problems with the right button on the mighty mouse?
It just sounds like you don't know a lot about OS X yet and refuse to take a few minutes finding out how to solve these issues, and you are using outdated software compiled for a different CPU architecture. If these are the only issues you have with OS X, you don't actually have issues with OS X, you just have issues with the way it works, and with the applications you need to use on them.
So what you're actually saying is that Macs are special in the hardware sense in that they are designed and produced differently than the average PC, although their internals are very similar to PC's (Apple does use special CPU steppings and GPU firmware FWIW), and special in the software sense in that they are the only personal computers that can run OS X legally and fully supported.
Can you no please explain how Macs are *not* special from common PC's again?
If you don't understand that the friggin CPU architecture is not what makes hardware superior or inferior for the majority of Apple's target audience, you are most likely not part of this majority...
Apple hardware is superior in the sense that it is integrated, quiet and (to a lot of people) good-looking. The user experience of the hardware and software combines is what makes the hardware superior. I'm not going into the 'Apple hardware is overpriced' argument too much anymore, but let me say this: Apple hardware in the US (in $) is actually *much* cheaper than Dell hardware in Europe (in â), does that make Dell overpriced too? Seeing that the there are literally no competing products with the same form factor and level of integration that are actually cheaper, the 'overpriced' argument does not hold for me. Also, there's a difference between 'price' and 'value' that seems to be hard to see for some people. Something can be cheap but worthless (or devaluate really fast), while something expensive may in fact be a bargain...
Yeah those wankel engines are pretty cool. That said, my second car (over 18 years old already) has a 1294cc engine that puts out 105 bhp @7800 rpm, so conventional piston engines don't do too bad either... I kinda like the new small BMW turbo engines that are used in e.g. the Mini Cooper S. The Peugoet 308RC concept gets 200+ bhp from this engine, which has a 1.6 litre capacity :-P
There's lots of new 3-cylinder cars driving around (at least here in Europe), first that comes to mind are the Citroen C1/Peugeot 107/Toyota Aygo (which are the same cars). But there's probably some more... There's 5-cylinder ones as well btw (Focus ST for example). And one of my friends' car has a 12-valve engine, 4 cylinder with 3 valves/cylinder... ;-)
Now where did all the euro-symbols go??
There's a lot more to programming in a specific programming language than just the syntax, you know. It will take even a very, very experienced C++ programmer a lot of time to master the most common Java or C# libraries, or to learn all the weird deviations of the traditional OO model that e.g. Delphi implements. C++ is relatively basic in the sense that it does not have a library of standard functions as large as Java, and still it takes years and years to get proficient in it, mostly because you have so many ways to do the same. What seems like a good idea in language X might be a very bad idea in language Y, although they might be very similar syntactically...
If they want to hit 2029 they not only need full understanding and perfect simulation of our brains, but they also need to start raising this 'human intelligence' pretty fast. If it takes 18 years to raise a human child to be able to interpret, value and effect the world around it in a sensible way, there is no reason to assume a computer can do it any faster.
There's a lot more involved in creating human AI, most importantly semantics for all the things around us. And not 1 single set of semantics, but loads of them for loads of concepts. The meaning of anything said or written is so much influenced by culture, religion, emotional state, education, tuition and other stuff like that. It's naive to think you can reproduce human intelligence by just simulating the medium (brains), and even that is miles beyond our technical capabilities and knowledge of the way our brains work *and* develop when we mature.
So in short, this prediction is BS.
Dude, why do you know all this? You need to get out more ;-)