Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Menneisyys2

macrumors 603
Original poster
Jun 7, 2011
5,997
1,101
This article, while containing really technical parts for hardcore geeks / engineers, also applies to beginners, assuming they only read the “2. Which one to go for?” section. As you will see, one cannot clearly state “get only this version” as both have advantages and disadvantages.

On the Internet, there isn't any reliable information on the image quality, speed and scaling differences of the two 30-pin HDMI adapters: the first-generation MC953ZM/A (model number A1388) and the second-generation MD098ZM/A (A1422) one. As I know quite a bit about both video theory, processing and iOS programming and also have the necessary hardware to properly assess HDMI image quality and speed, I found it necessary to come up with an in-depth article on the differences.

Note that, of the two adapter versions, only the second is sold by Apple (see THIS), but still many retailers offer the first one. You can also purchase it for pretty cheap second-hand.

1. Differences

1.1 Image quality


Unfortunately, the new adapter has certain image quality problems.

First, I present you with my test suite, then, ask you to do a blind test and, finally, elaborate on the results.

1.1.1 My new checkerboard test image

I've made a special set of test images, one for each main resolution supported by both the HDMI and the VGA adapters (including the 900p mode of the Lightning adapters). The images are based on the venerable and highly useful ISO 12233 resolution chart. All of these test images available in the following URL's as original .PNGs meaning I haven't applied any kind of destructive JPEG compression to them.

1080p
900p
720p
XGA
SD (720x405)

I've added checkerboards to all these images to both easily check the native resolution and the possible image quality issues. There are several checkerboards in every image. The following is the SD image with my additional annotations:

checkerboard%20annotated.jpg


A large area in the center left contains a one-pixel checkerboard where one pixel represents one square tile. In this image, I've annotated this with a red rectangle. You'll want to zoom in the output image (but not on the rescaled thumbnail I've just shown you!) to properly see how the individual pixels are rendered. It's this one-pixel checkerboard that I provide you with crops below when I compare the image rendering quality of the HDMI adapters.

The top (here, annotated by a green rectangle) shows increasingly-sized checkerboards. On the far left, it'll always start with two-pixel ones; after 100 pixels, they turn into four-pixel ones and so on. In this particular image, I've annotated three different checkerboard areas: on the left, two, in the middle, four and on the right, six pixels is one square tile.

I've output the, for the selected resolution, native image in my custom-written external screen driver app available as an Xcode project HERE. (Note that, in order to keep the size of the ZIP file small, I've removed the just-linked images from it. Make sure you download the images above and copy all of them in the main directory of the app before opening it in Xcode.)

Now, let's go on with a blind test so that you can already see the quality differences of the two adapters.

1.1.2 Blind test

Which of the two crops would you think representing the original checkerboard as close to the original as possible?


(click the above crop for the full image)


(you can also click this crop for the full image)

I'm pretty sure you'd select the second one. The first one has “bleeding”: when a particular pixel is black, a grey pixel is also shown in every direction (up / down / left / right) next to the pixel. No such problem on the second one – it only shows somewhat darker white pixels now and then. They have been inserted by the non-zero H.264 encoding of the Elgato Game Recorder HD, which records directly into an H.264 stream and it's not possible to just capture an uncompressed still image using its desktop app. You always need to create a video recording and, later, capture a frame from the video footage. Note that you can't use screen capturing from the preview image displayed by the capture app. Even if you make it fullscreen on a Full HD(+) screen (like that of the 17” MBP), the resolution won't be Full HD.

This is a generic problem with the new adapter – not only in 1080p (the maximal resolution of A5+-based iDevices), but also in 720p (A4 iDevices). The output of the new adapter on the A4-based iPad1 looks as follows:



And this is that of the old adapter:



(Again: click for the original.)

You're supposed to check out the original, large images. The larger-squared checkerboard areas also very well show the inherent image quality problems:

iPad3%20checkerboard%20NEW%20HDMI%20adapter%20-%204and6.png


(new adapter with considerable “bleeding”, showing checkerboards with 4 and 6 pixels)

iPad3%20checkerboard%20OLD%20HDMI%20adapter%20-%204and6.png

(old adapter without any kind of “bleeding”. Note that there're some H.264 compression artifacts in the image but they're still far less serious than the “bleeding” on the edges of the new adapter.)

1.1.2.3 Is this because of scaling?

Note that this problem has nothing to do with the following:
- chroma subsampling (more on it in future articles)
- inherent scaling in non-native modes – after all, I've explicitly configured the app to output a 1080p and a 720p image in the 1080p and 720p modes, respectively. In scaled modes, the results would be very similar. (Scaled modes include, for example, outputting 720p on a 1080p monitor on an A5+ iDevice, which makes the new adapter automatically do the scaling. See 1.3 Scaling for a more thorough explanation below.)

Scaling as is done by the Lightning adapter would have completely destroyed the fine detail of the one-pixel checkerboard. The larger-squared ones would also look awful. An example:


(outputting a 900p image over the native 900p resolution, upscaled to 1080p by the adapter)



(outputting a 1080p image over the native 900p resolution, upscaled to 1080p by the adapter)

As you can see, the image quality of the second-generation 30 pin HDMI adapter is orders of magnitude better – it has no JPEG compression issues (unlike the Lightning adapter) and doesn't fully destroy small detail by scaling.

More on Lightning HDMI issues later, in my dedicated article on the Lightning adapters.

1.1.2.4 What about mirroring?

The above assumed you use an app with native (non-mirrored) TV output – just like the one I've written and linked to.

However, if you need to mirror your screen as the app you need to display on the external screen doesn't have native TV out, the image quality differences won't be this pronounced. After all, there will ALWAYS be some kind of scaling, which results in considerable image quality degradation, even with the first-generation HDMI adapter.

That is, if you (only / mostly) mirror your (non-gaming) screen, you don't necessarily need / want to prefer the first-generation adapter to the current one.

1.2 Speed

Now, speed is an entirely different question.

As a rule of thumb:

- if you do NOT want to output 3D games onto an external monitor / projector, you do NOT need the second-generation adapter. (On the contrary: because of the higher image quality / crispness of the first-generation one, you will want to prefer it to the second). This includes presentations or even video playback.

- if you DO want to output 3D games, and speed is important, go exclusively for the second-generation one. On iPad 3's, this should always be done; on the iPad 2 (the only other 30-pin iPad with screen mirroring enabled), only(!) if you play using screen mirroring. With the (unfortunately, very few) games with native (non-mirrored) output, the iPad 2 delivers approximately the same speed with the two adapters. Therefore, if you only play, say, Real Racing 2 (a fast title with native TV output) on your iPad 2, you won't want to get the second-generation HDMI adapter.

Let me present you some benchmark videos showing all this. Let's start with the iPad 2 and, then, move on to the iPad 3. (For the iPhone 4S, because of the considerably lower-resolution screen, the differences are far less pronounced than on even the iPad 2, let alone the iPad 3.)

1.2.1 iPad 2 speed comparisons

Let's start with the following YouTube video:

http://www.youtube.com/watch?v=DJ_4trYF2s0

(Note that the video has been shot in 720p60 mode with a camera. Playback speed is half of that; that is, everything will slow down by a factor of two. This way, it's very easy to easily count the actual framerate of the external display.)

First, up to 03:35, I show the native (non-mirrored) TV output of Real Racing 2 (RR2) via the NEW adapter. If you advance the 60p video frame-by-frame, you'll see there's new content every third frame; that is, the video output on the external TV is 60/3 = 20 fps.

Then, after changing the adapter (I also show this process; I had to partly remove the casing so that the wider 30-pin connector of the older HDMI adapter can be inserted in my iPad2) to the old HDMI adapter, I show you:

- RR2 (again, native – non-mirrored – output): the same 20 fps as with the 2nd-gen HDMI adapter. (Between 06:30 and 09:05)

- After Burner (mirrored, as opposed to RR2, which has native TV out support): there are some major slowdowns and framedrops at around 12:29 (the game itself starts at 11:00). For example, the following frame is shown for 13 frames (13/60= 0.2s, meaning 5 fps speed) on the external monitor, while, on the internal one, the action goes on just fine:

ipad2%201stgen%20HDMI%2013%20frames%20lag.jpg


The 2nd-gen adapter in no way produced so abysmal results. You can find out how it runs the game by checking out the following comparative video (seek to 09:50):

https://www.youtube.com/watch?v=ucdt4h6D3g0


- Real Racing 3 (RR3) (mirrored): seek to 14:30 in the first video for the first-generation results and to 05:00 in the second for the second-generation results.

With the 1st gen adapter, there's a new frame every 4th one, that is, the true framerate is 60/4 = 15 fps on the external screen, while, for most of the time, 60 on the internal one. This is far inferior to the results of the 2nd gen adapter, which, for most of the time, delivered the same framerate as the internal screen.

1.2.1.1 iPad 2 speed comparisons with GFXBench (GLBenchmark) 2.7

GFXBench 2.7 (available for free in the AppStore) doesn't have native TV out, which means you need to use mirroring. This, as you may have already guessed, results in some major framerate drop.

In the first on-screen T-Rex scene of GFXBench, the exact delays of each frame are as follows:

Old adapter: 13 – 6 – 9 – 10 – 9 – 10 – 18 – 9 – 9 – 9 – 18 (see from 04:04 at http://youtu.be/-KPSK2hOln4)

New adapter: 13 – 5 – 1- 9 – 5 – 5 – 4 – 5 – 5 – 4 – 4 – 5 – 5 (see at http://youtu.be/uaSD8V3Pwi4, starting at 02:07)

That is, the new adapter is at least(!) twice as fast as the old one in this VERY demanding test.

Again, don't forget that this is a synthetic test. Most real-world, less GPU power-demanding games will run considerably faster on the external screen, particularly if they have native TV output support.

1.2.2 iPad 3 speed comparisons

The following video shows the iPad3 running RR2, RR3, After Burner and the first tests of GLBenchmark 2.7:


https://www.youtube.com/watch?v=3hbBD2w_MRo

The same games with the first-gen adapter:

RR2: https://www.youtube.com/watch?v=fhrW7wpLOPU
RR2 direct capture at 1080p30 (that is, it's played back at nominal speed, unlike camera recordings): https://www.youtube.com/watch?v=GEozeycWzVA
RR3 and After Burner: https://www.youtube.com/watch?v=JtaHh-7rBog

1.2.2.1 iPad 3 and GFXBench

Second-generation adapter: http://youtu.be/pmXIBGiYCUE

It's also much faster than with the 1st gen adapter - but, of course, still much slower than on the iPad 2.

First-generation adapter: https://www.youtube.com/watch?v=_BvUJ5f7OsA

1.2.3 iPad 1



On the iPad 1 running on iOS 5.1.1, I haven't noticed much difference between the adapters, speed-wise. The new adapter produced somewhat more stable results: it did mirror what was on the internal screen at almost exclusively at 30 fps in RR2. The old adapter, on the other hand, were sometimes slower at updating external frames. For example, the following frames were displayed for 3 frames on the external monitor, while for two only on the internal one: 25.270, 25.370, 25.502, 25.603 etc. On the external display, this lag was, then, corrected by showing the next frame only once and not twice. No frames were dropped.


In RR3, the results were pretty much close.

Note that, for this test, I needed to enable native iOS mirroring in System / Library / CoreServices / Springboard.app/K48AP.plist as is explained, say, HERE. Unfortunately, RR2 doesn't support the native TV output on the iPad 1 at all, unlike on later models; that is, I did need mirroring for it to display on the external screen. (And, of course, the RR3 doesn't support native TV out at all.)

The dual videos are as follows:

RR2:
new HDMI: http://youtu.be/OtGA56G_QOc
old HDMI: http://youtu.be/14KItiY401g

RR3:
new HDMI: http://youtu.be/22i2LtYgUdg
old HDMI: http://youtu.be/FDQQOAaMDgo

1.2.4 iPod touch 4G and iPhone 4

Note that you'll need to jailbreak these two iDevices too, should you want to enable full mirroring over HDMI / VGA. Sadly, as with the also-A4-based iPad 1, Real Racing 2, one of the best titles with native (non-mirrored) TV out, doesn't support these devices either. Fortunately, it's very easy to jailbreak all A4-based iDevices, regardless of their iOS version, unlike later models.

With these iDevices, in mirroring mode, the 2nd-gen HDMI adapter is definitely faster than the 1st-gen. Let me show you two iPt4G videos:

2nd-gen adapter, RR3: https://www.youtube.com/watch?v=RrQjBIqq_qM

1st-gen adapter, RR3: http://youtu.be/-07aJhD6tHg

The framerate of the 1st-gen adapter fluctuates between 15 and 30 fps, while, with the 2nd-gen adapter, it's between 30 and 45 fps.

That is, it's the 2nd-gen adapter that you'll need to use for mirrored gaming, even with the "lowly" iPt4G / iPhone 4.

1.3 Scaling

Unfortunately, just like the newer Lightning version, the second-generation HDMI adapyer doesn't communicate the current resolution to the display either. The latter, assuming it's capable of Full HD resolution, will ALWAYS think the adapter emits 1080p (A5+ CPU's) / 720p (A4), no matter what the real resolution is.

This is really disadvantageous when, say, you want to directly capture the output of the adapter – most HDMI capture units can't capture 1080p signals as fast as 720p (or lower) ones. For example, the Elgato Game Capture HD (the one I have and use) “only” captures at 30 fps at 1080p, while it can capture at 60 fps at 720p and below. Most iOS games with native (non-mirrored) video output use 720p (or even 480p, see Gameloft's Asphalt 6/7), which means they could be recorded at 60 the iOS-native fps if the adapter didn't emit 1080p as the resolution (and didn't scale up the video to 1080p).

Fortunately, there isn't a two-step scaling with the new adapter, unlike with the new Lightning adapters.



(continued below)
 
Last edited:

Menneisyys2

macrumors 603
Original poster
Jun 7, 2011
5,997
1,101
(continued from above)

1.4 Recharging

When used as a pass-thru to recharge an iPad, the second-gen adapter recharges somewhat faster – by about 70 mA, assuming a quality cable and the 2A stock charger. (Please see THIS for more info on cables, Amperages etc.) It isn't a drastic difference (advantage) from/over the first-generation adapter, though.
Interestingly, the cable of the second-gen adapter is slightly thinner than that of the first-gen one - but still can provide slightly more Amperage to the iDevice.

1.5 Differences in overscan handling
As is explained in my dedicated article, some monitors (for example, the LG W2253V) automatically disable overscanning when driven from the old HDMI adapter. Not so with the new one. That is, if you do need to disable overscan and you drive your external monitor via the DVI-D input to do this, you will need to stick with the first-gen adapter.
1.6 f.lux and other direct screen content mutators
If you jailbreak and use the absolutely excellent jailbreak tool "f.lux" (you should), you'll need to disable it while mirroring your screen via the new adapter, should you want to avoid the content on the external screen getting yellow(er), depending on the current f.lux setting. You won't need to do the same on the old adapter.
Following are two direct HDMI stream captures of the mirrored screen via the first-gen and the second-gen adapter, in this order. I've chosen to show the GUI of f.lux so that you can see the setting of the app does have an effect on the output of the second-gen adapter, unlike on that of the first-gen one.





1.7 Hardware usability differences

The external hardware of the new adapter is definitely better. As you can see in the, in Section "1.2.1 iPad 2 speed comparisons", above-linked video, the old adapter is incompatible with a lot of cases. The new one's iDevice 30-pin connector is much thinner, making it much more casing-friendly. (You don't need to (partly) remove the casing to use it.) The old adapter is equally thick than the 30-pin VGA adapter.

Also, the new adapter has pressure-sensitive lock and unlock buttons on the sides, making it being hold in its place much more securely than the first one. This will be very important for gamers keeping their iDevice in hand.


2. Which one to go for?
2. Which One to Go For?


Basically, as is evident based on the videos I've provided you with, getting the second-gen HDMI adapter is advantageous on every single iDevice model supporting it; that is, the iPad 1, 2 and 3; the iPod touch 4G and the iPhone 4 / 4S, assuming you want to play 3D games on the external, mirrored screen. (Again: don't forget that all the three A4-based iDevices, that is, the iPad 1, the iPod touch 4G and the iPhone 4 must be jailbroken and manually tweaked for mirroring to be enabled. Without that, only native TV output is available, supported by very few apps.)

If you don't want to mirror games, you don't need the new adapter, except if you have the iPad 3. Then, the higher speed of the adapter can pay off even with non-mirrored (native) games.

With all these devices, if you do need the best possible image quality over a native TV output, you'll want to prefer the 1st-gen adapter. Assuming you want to show your audience the output of a non-3D game, of course. If you "only" mirror your non-gaming screen (meaning automatic scaling), there won't be much noticeable quality difference.


Don't forget that, while the iPad 3 does display it doesn't support the first-generation adapter when you connect the latter to the iPad, after you dismiss the dialog, the iPad will start mirroring.

3. Factual errors on Apple's product page

HERE, Apple states “movies play at up to 720p”. This is wrong: on all A5+ devices, 1080p videos are played back at full resolution: both Apple's own iTunes Store ones (with Apple's HDCP) and third-party ones. It's only on A4 models (iPad 1, iPhone 4 and iPod touch 4G) that the two adapters only drive external displays at 720p.

4. Additional information

Over at TouchArcade, I've been discussing these adapters. I've posted a lot of info there too; see THIS.
 
Last edited:

Menneisyys2

macrumors 603
Original poster
Jun 7, 2011
5,997
1,101
UPDATE (14/May/2013): in the main article, in Section "1.1.1 My new checkerboard test image", I've changed the link to a cleaned-up version of my app, which, among other things, uses a UIActionSheet instead of a UIAlertView to list the available resolutions. You'll want to prefer this to the old way of resolution selection. (More info in my forthcoming article "The Encyclopedia of Games with Native TV Out Support", in Section "1.1.1.9.1 Programmers, prefer UIActionSheets to UIAlertViews!").

The old, non-cleaned-up version is still at its original URL: https://dl.dropboxusercontent.com/u/81986513/052013/hdmi1stvs2nd/ExtDisplayDemo without images.zip .
 

Cyberfit

macrumors newbie
Oct 30, 2013
1
0
Wow, that's an extremely thorough and extensive analysis!


I'm recording my app via HDMI to do a screencast and have a couple of questions which I have tried finding answers to without luck.

- I will use a capture card that can capture 1080p60 in RAW 4:4:4 (no chroma subsampling).
- The app uses very stark contrasts with no gradients anywhere (flat UI) so image quality is of the essence since artifacts are extemely easy to spot under these circumstances.


1. Can the iPad 3 output the app in 1080p60? Is there a difference between mirrored and true (in terms of frame rate)?
2. a) Should I code true HDMI output into the app or is it okay to go with the mirrored version?
2. b) Does this make the app run slower because it needs to produce different shaders etc. for each screen?
3. Since there is such a large difference between Apple's 1st gen and 2nd gen A/V-adapters, are third-party A/V-adapters also different or do they work exactly as either Apples own 1st gen or 2nd gen? If not I guess I should get an Apple adapter.
4. The app uses OpenGL2 with 0 depth (100% 2D). Does this mean that I can capture it using the 1st gen A/V-adapter? Even on an iPad 3?

Basically I want a full 1080p60 recording of the app. Preferably without any scaling (not possible in mirrored of course), no chroma subsampling and at a full 60 frame rate. Do you think this is possible to achieve in any way?

I guess it boils down to the choice of iPad (2 or 3), the choice of adapter (1st or 2nd gen) and the choice of coding true HDMI output into the app (as opposed to mirrored).


I'd be very grateful if you could shine some light on my questions. I've been tearing my hair off for days trying to figure out what to do.

Ps. I assume that the lightning connector and the iPad 4 is totally out of the question, right?


Thanks a million!
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.