Still, not all were implemented, in particular I could not find altivec code for the ff_pred16x16_vert_* type of functions (found in libavcodec/arm/h264pred_init_arm.c). So these would be the ones I would tackle first.
...
I suggest to allocate ~35 hours initially for this task alone, and take a look at it again -note that it might not mean an actual week, as I am already working on a day job. Since you asked me for a public quote, my rate usually is 30EUR/hour, but as I promised and since working on Altivec is a pleasure, I'm willing to do a discount, at 23EUR/hour (if invoicing within the EU, VAT will be deducted, and I would have to invoice someone for that amount). So, in total 805EUR.
Do you know if the ff_pred16x16_vert_* functions are used a lot during decoding? While 805 Euros should be doable with a bounty, people will expect to see a noticeable improvement. So, we had better make sure that you're working on something that has a high chance of making a difference.
Did you find any other functions which had no altivec versions? I had a quick look at the code myself, and couldn't tell if things like the motion compensation functions were altivec optimised. In particular, quarter-pixel (qpel in the code?) motion compensation is a very computationally intensive task, so if it isn't optimised then it would be a prime target.
Well, to be completely honest, I did ask a good friend of mine, an altivec/libav guru (Luca Barbato/lu_zero if anyone knows him), and he said he can't right now quantify the performance impact these functions have, but he did say that porting them would definitely help. Also, From what I saw, qpel altivec functions exist, at least I can see *_h264_qpel16_*_lowpass_altivec in libavcodec/ppc/h264qpel.c. Now, it may be possible that not all functions are implemented, but I can't really say that without really messing with the code.
I think that it is great that Feanor has taken the time to support us in this. Thank you for your insights so far!
Unfortunately, this is a real chicken and egg situation.
Generally bounties are created to deliver a known output. In this case, the extent of any potential improvement is unknown, therefore quantifying the value of the result is impossible. Of course, feanor needs to be paid for his effort, but it is a risk for any backers if the results do not meet expectations.
Personally I would want to know how much improvement is possible before commiting to a bounty.
Ok it is a risk. Nobody can tell us, how the end result will look like.
I think i will create a bounty for it.
- it is risk for all Altivec owners,no guarantee of a speed advantage - goal is that Prometheus h 264 1920x1080 works on a X1000 - goal is speed advantage on every Altivec Amiga
I need more suggestions
I try to collect the 805€ + Paypal fees, feanor can send me an invoice and i send him the money . Is it ok ?
- it is risk for all Altivec owners,no guarantee of a speed advantage - goal is that Prometheus h 264 1920x1080 works on a X1000 - goal is speed advantage on every Altivec Amiga
Having the Prometheus trailer video playing at full frame-rate might be a bit unrealistic given how uncertain we are of what improvements might be achieved. About all that I'd expect at this stage is, a measurable improvement (i.e., something big enough that we can see the improvement in benchmark test results).
Quote:
I try to collect the 805€ + Paypal fees, feanor can send me an invoice and i send him the money . Is it ok ?
This should be done via a bounty website. Feanor suggested one, although there are others.
However, I think that we should at least see if there is any interest from the MorphOS crowd. They should have a fair number of people with G4/G5 machines, so they should also be interested in any altivec optimizations. If someone interested is also active over at MorphZone, then it would be worth them asking.
It would also be nice to have a slightly clearer picture of what will be done. Are the ff_pred16x16_vert_* functions the only ones missing? How much of a difference do these functions make (benchmarks from x86/ARM machines really could help answer this).
on g5 macosx leopard i can play 1080p mkv ac3 movies with full frame rate be honest on quad i can play 4 at same time ( Here the video ) but there we know video acceleration works and my video board is an old 7800gtx from 2005. you are true, only altivec will not help for have fullhd video running in case of mkv or mp4v. the only way is have the gpu help in decoding.but we know for now it is far . probably the divx will run good in 1080p only with cpu decoding.
i dont know if tommy had test on linuxppc with vlc how there is the result in his x1000 because there gallium works.
Edit: Hans i dont know if it can help but this tool is really useful on MacOsX PPC for video decoding and there are the src . probably something can be used on amigaos
@tlosm No, starting yet a new project (porting Perian) won't help us. Nor will looking at the performance on your quad-core G5 under MacOSX. You're getting side-tracked again. Either we raise the 805 Euros needed for feanor to improve altivec support in ffmpeg's H.264 codec, or we forget about it and wait...
I see no attempt to talk with the MorphOS community. I don't have an account at MorphZone, nor do I have any personal interest in MorphOS. So, this is something that someone else has to do.
805 Euros is very reasonable for the work to be done, but I don't see this project going ahead unless either the MorphOS community (with their G4/G5s) is interested too and/or we become more confident that there will be a significant improvement in performance.
Should there be enough interest, I suggest using power2people to post the bounty. Amigabounty is meant for AmigaOS only, and it appears to not be accepting new bounties at the moment.
@Hans Not sure why you need them? I say we just get it done. I'd donate a few euros. But i don't donate to p2p.
Quote:
805 Euros is very reasonable for the work to be done, but I don't see this project going ahead unless either the MorphOS community (with their G4/G5s) is interested too and/or we become more confident that there will be a significant improvement in performance.
I will not contact any MorphOs user because i don`t have any interests for MorphOs too. Somebody can do that.
I think i will create a bounty at power2people
- it is risk for all Altivec owners,no guarantee of a speed advantage - goal is that Prometheus h 264 1920x1080 works on a X1000 - goal is speed advantage on PAT6 - goal is speed advantage on every Altivec Amiga like G4 - goal is speed advantage on G5 (MorphOs) - OpenScource
I have a Pegasos 2 g4 R9250 running MorphOS and AmigaOS I am happy to help. I can't code or anything I will help test and bench marking etc if that is what you are after Hans?
The goals worry me though. How do you quantify a speed increase?
MPlayer has a built-in benchmark feature. So, we can measure if any improvements have made an impact. The improvement would have to be large enough that it can be measured (i.e., isn't within the variability that you'd get by running the test a few times).
@Fairdinkum Quote:
I have a Pegasos 2 g4 R9250 running MorphOS and AmigaOS I am happy to help. I can't code or anything I will help test and bench marking etc if that is what you are after Hans?
Actually, what I'm after is finding out if members of the MorphOS community would also be interested in contributing financially to this project. Any improvements that feanor makes will quickly be used by MorphOS G4/G5 users, so it makes sense to for them to contribute too.
Some people have been calling for more cooperation between the "camps," so this would be an opportunity for that to happen.
@Antique Quote:
@tommysammy Can you collect the bounty? I'm not doanting to anything at p2p.
You won't donate if it's on p2p (because of its owners?), and others won't donate if it's just a guy collecting the money. I know that I would prefer it if a proper bounty system is used, and would be uneasy if tommysammy collected the money with his personal PayPal account.
Perhaps it would be better if feanor made this a Kickstarter campaign.
Yes, I am aware of the benchmark. What I meant was how much of an improvement is expected / acceptable to justify the expense?
I have seen the prometheus trailer being used as a baseline. How far on average is that from being perfect? This difference from baseline to perfect could be the stated improvement required for a bounty to be deemed successful.
What about waiting the release of Final Edition and see how FE + RadeonHD 2.4 perform together before taking a decision for this bounty? Or is it a known fact that it won't increase the video framerates and it's only decoding that needs improvement?