iOS iPhone 3GS hardware decode - iOS 6
#1
Hello.

I have an iPhone 3GS with iOS 6 (jailbreak -old bootrom) and I've recently tried latest stable XBMC v11 and some of your monthly and nightlies versions of v12.

I have some questions regarding information about hardware acceleration and software decoding of XBMC and iPhone 3GS

1) Is hardware acceleration supported on iPhone 3GS the same way as on A4, A5 and other better CPUs ? When you first released XBMC for iOS, you didn't mention iPhone 3GS, only iPad, iPod and iPhone 4.


2) The hardware decoding performance of 3GS (not the software based on CPU) is the same as of iPhone 4, 4S, 5 ?


3) Is there a name of this hw decoder ? (the chip I mean).

Is it inside the CPU (ARM Cortex A8) or GPU (Power VR) ?

Does this hw acceleration has anything to do with NEON SIMD instructions inside Cortex A8 ? (It shouldn't, I think)


4) Is there any chance by using VideoToolBox to accelerate anything else than H.264 in hardware for iOS (on any iDevice) ?


5) Does the software version of video decoder (ffmpeg) used by XBMC utilize NEON SIMD instructions ?


6) For me v11 is very stable but after 40 sec of playing anything in hardware acceleration, starts stuterring even on easy 720p clips. Alpha versions of v12 don't have this problem, but they are crashing often.

Thanks in advance for your replies !

Reply
#2
iOS6 is not support yet, they changed how hw decode works.
Reply
#3
OK for iOS 6.

I read somewhere that VideoToolBox is a public API now, but still not easily accessible.

What about the first 5 questions ?

Where could I find more info, if not here with the first developers using VideoToolBox and hw decode for iDevices ?
Reply
#4
1) yes
2) yes
3) PowerVR VXD, http://www.imgtec.com/powervr/powervr-video.asp. The hw decoder has nothing to do with NEON SIMD. That's a ARM vector processor.
4) h264 part 2 (divx) in addition normal h264 part 10. The PowerVR VXD can also do mpeg2 and vc1 but Apple does not expose those.
5) for some codecs (both audio and video), yes.
6) where's the question ?
Reply
#5
Thank you for your answers.

1) Have you already implemented DivX HW acceleration for iOS (iDevices) ? Is it in your ToDo list ?

For NEON SIMD instructions I'm interested in H.264, WMV3, MPEG2, DivX, VC-1 software video codecs.

2) Are the NEON instructions used in any of the above software video codecs ?


P.S

I would be grateful if you could send me in PM directly the fact sheet of VXD, or a link to download it.

I mean this fact sheet http://www.imgtec.com/powervr/insider/po...tsheet=VXD

Thank you!
Reply
#6
(2012-10-24, 11:59)NikosD Wrote: Thank you for your answers.

1) Have you already implemented DivX HW acceleration for iOS (iDevices) ? Is it in your ToDo list ?

For NEON SIMD instructions I'm interested in H.264, WMV3, MPEG2, DivX, VC-1 software video codecs.

2) Are the NEON instructions used in any of the above software video codecs ?


P.S

I would be grateful if you could send me in PM directly the fact sheet of VXD, or a link to download it.

I mean this fact sheet http://www.imgtec.com/powervr/insider/po...tsheet=VXD

Thank you!

1) It's there but disabled, there's an unsolved issue with h264 part 2. Video frames are not being displayed in the right order.
2) yes, you really have to understand how ffmpeg works, they have a codec, it uses codec specific code but also uses generic routines that might or might not have neon implementations. It's not like they write the entire codec using neon, that would be silly and unmanageable. Look in libavcodec source code, there's an arm dir, any files that have neon in them are functions written in neon.

Go to the imgtec website, register and you too can download what they have. I'm not here to be someone's download bitch Smile
Reply
#7
Thank you!

Maybe with iOS 6 and the change of how HW acceleration works, you could achieve HW acceleration of DivX too.

About libavcodec and power vr doc for VXD, i thought that would be easy answers for you, that's why I asked them.
Of course you are right about doing things of our own and sorry for asking for some "easy" help.

Reply
#8
Are you asking all these questions for helping us in any way?
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
Reply
#9
I don't know to be honest with you.
I don't know if by asking those specific questions you could probably be helped somehow. I hope you do.

I know that YOU helped ME to find things regarding HW acceleration - Video hardware processors - decoding performance.

So after a lot of digging and googling I found out these, that I want to share with you. My little survey.

Regarding my second question, all of the iPhones from 3GS to 5 have a video accelerator of PowerVR VXD family.

I'm not sure about the working clocks of these VXD video accelerators and if all of them are integrated inside PowerVR SGX GPU and I don't know If they have the same clock as the GPU but in any case, every iPhone from 3GS to 5 uses a different VXD accelerator.

iPhone 3GS = PowerVR SGX535@150 MHz + VXD370

iPhone 4 = PowerVR SGX535@200 MHz + VXD375

iPhone 4S = PowerVR SGX543MP2@200 MHz + VXD385 (most probable)

iPhone 5 = PowerVR SGX543MP3@266 MHz + VXD390

So because of possible different clocks of various VXD processors inside iPhones and because of definitely different VXD architectures, we could say for sure that hardware acceleration performance of iPhones is not the same across the line.

The answer to my 2nd question is NO.

I use frequently tools for video benchmarking of software and hardware video codecs like DXVAChecker and GraphStudio Next in Windows OS.

Is there any similar tool for iOS ?

Ah, one more thing...Smile

Looking inside FFmpeg libavcodec, I saw NEON support for H.263 and H.264 for sure.
It has also some generic NEON optimizations for iDCT, FFT and other parts of audio and video algorithms used by audio and video codecs.


Reply
#10
Generally VDU decode clock does not matter much, these things are quite fast. What does matter is memory bandwidth. We discovered that pushing around decoded 1080p can consume a lot of memory bandwidth. That's why we setup A4 devices to do a VDU downscale when decoding 1080p, there just is not enough memory bandwidth to decode AND display the video...
Reply
#11
Memory bandwidth is not clock independent.
By increasing clock frequency, memory bandwidth is increased too.
And the decoding performance arises too.
Of course other architectural features like the bus width, registers etc are crucial.

The best proof is the mentioned above PDF of PowerVR VXD which says that you need 100Mhz to decode 1080p30 fps, you need 266Mhz to decode 1080p60 fps and you need 400Mhz to decode 4k@30 fps.

Which means full dependence of decoding capability by VXD clock.
Reply
#12
decode, not decode and display. with that you are involving other SoC components. So the clock of the GPU/VDU is not as important as the memory speed and possible the CPU speed.
Reply
#13
Judging by an other video acceleration API (DXVA), I would say that CPU is very little involved.
GPU is involved for scaling and rendering of frames, but the key player of the whole process is decoding by video processor and in our case is VXD.
Reply
#14
sure, sure Smile
Reply
#15
You know better. The only knowledge I have of iOS is as a user, but I know DXVA pretty good.

Can you estimate when will iOS 6 be supported for HW acceleration ?

Where exactly do I have to look for such announcement ?

I don't mind installing alpha nightly or monthly versions of XBMC on my iPhone 3GS.

Thanks!
Reply

Logout Mark Read Team Forum Stats Members Help
iPhone 3GS hardware decode - iOS 60