Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
I will! I'm on iOS 8.4 on my 6+ still, so hope it hasn't changed much. Any specifics settings you suggest? I'll try and take test shots before and after.

No specific setting yet - the LNR-specific breakthrough is still not achieved. The above-explained 0.101 does lessen the LNR but it's in no way as clean as, say, the Note4's almost RAW-like images achievable via Snap Camera. That is, it requires a lot of additional playing with the values. But, at least, I've managed to find the single array that can be tweaked - no longer do we need to apply the same changes to some 300 values any more.

The CNR achievement, though, is reached - the generic 0.15 setting (for all the 100 values) seem to work flawlessly, completely eliminating CNR.
 
No specific setting yet - the LNR-specific breakthrough is still not achieved. The above-explained 0.101 does lessen the LNR but it's in no way as clean as, say, the Note4's almost RAW-like images achievable via Snap Camera. That is, it requires a lot of additional playing with the values. But, at least, I've managed to find the single array that can be tweaked - no longer do we need to apply the same changes to some 300 values any more.

The CNR achievement, though, is reached - the generic 0.15 setting (for all the 100 values) seem to work flawlessly, completely eliminating CNR.
Really looking forward to a fix. Just noticed you always seem to be the one to figure these things out I've noticed lol.
 
Really looking forward to a fix. Just noticed you always seem to be the one to figure these things out I've noticed lol.

Thanks! Just posted a BIG update starting with "Continued at 12/06 01:01EET". My new app, while it surely does needs to be modded to be compatible with the iOS8 + iPhone6+ combo, greatly simplifies and speeds up testing.
 
Thanks! Just posted a BIG update starting with "Continued at 12/06 01:01EET". My new app, while it surely does needs to be modded to be compatible with the iOS8 + iPhone6+ combo, greatly simplifies and speeds up testing.
Great news. Any specific objects or settings you'd like for test photos?
 
Last edited:
Great news. Any specific objects or settings you'd like for test photos?

Nope. Just feel free to play with the source. NOte that it most surely won't handle your phone without modding the code as my code targets the 6s+, not the 6+. The latter may have completely different default values / number of array elements etc. And, of course, the plist won't be in the N66 dir either.

Note that you can remove everything from my code and only keep killing the Camera app as its only one function. Then, it'll still help you with not having to completely shut down and restart the phone between the plist modifications.


BTW, I've just posted a new, fully cleaned up and, now, 4-band-compliant version - see my latest update in my original post.
 
Whelp I spent the afternoon trying some of it out on mine and I get the feeling that changing values on cough syrup is counter productive to progress lol.
Luckily I back stuff up. I might want to try to be a lil more "sober" when I try again in the morning lol.
 
Hope this can all come together with one simple tweak to fix. I don't notice it too much in regular photos (although I still see it) but it really bothers me if there is any degree of depth of field involved. The blurred out background looks awful and smudgy, and that, in my opinion, ruins the entire photo. I have used photo editing apps such as aviary to blur the blurred part a bit just to sort of smooth over that splotchy look. Very crude attempt at mitigating the issue, but it helped a little.
 
Hope this can all come together with one simple tweak to fix. I don't notice it too much in regular photos (although I still see it) but it really bothers me if there is any degree of depth of field involved. The blurred out background looks awful and smudgy, and that, in my opinion, ruins the entire photo. I have used photo editing apps such as aviary to blur the blurred part a bit just to sort of smooth over that splotchy look. Very crude attempt at mitigating the issue, but it helped a little.

Also feel free to play with my app (if you aren't afraid of Xcode / Objective-C) - hope, sooner or later, also standard still photos will also be enhanced. (Currently, only panos are.) Unfortunately, I couldn't still figure out how to enhance them (that is, dial down their noise reduction).
 
Ugh. I HATE noise reduction. Especially for Bayer focal planes. I would have fired the moron who thought heavy NR was a good idea for the iPhone camera.

Have you figured out how to just turn off the NR? I would pay for that capability. Of course, best of all would be RAW, but that just isn't going to happen.
 
Ugh. I HATE noise reduction. Especially for Bayer focal planes. I would have fired the moron who thought heavy NR was a good idea for the iPhone camera.

Have you figured out how to just turn off the NR? I would pay for that capability. Of course, best of all would be RAW, but that just isn't going to happen.

Only for the pano mode. I'm working very hard on the regular still mode.
 
Hey, that's a start. I'll have to try an experiment to see if I can fool pano mode into taking a single frame...

I don't think it'll work. Even if you can capture a single frame (by, say, quickly pressing the shutter icon twice), it'll still be far narrower than a stock 4:3 photo (the photos posted yesterday show what you can expect, size-wise). What is more, as the pano mode reads the (center vertical area of the) sensor about 60 times a second, it'll have a much higher shutter speed than the still mode in low light, meaning significantly worse image quality (higher ISO and when it can't be increased any more, darker image).
 
Today, I also played with AVCaptureSession.plist; that is, some of the video recording parameters. NOTE: modding it requires a complete phone restart so that the changes are seen by the camera, unlike with CameraSetup.plist!

In my first tests, I did the following:

1, I tried to get rid of the binned (practically, half-resolution and, what is worse, ruined with ugly aliasing effects) mode in the 1080p120 (slow-mo) mode. To do this, I used this code:

// 120 fps binned: records at 30 fps with the hack
NSMutableDictionary* FigCaptureStreamFormats_4th = [MultiStream_3rd objectForKey: @"FigCaptureStreamFormats"];
NSMutableDictionary* Video_Binned_120_5th = [FigCaptureStreamFormats_4th objectForKey: @"Video-Binned-120"];

double Video_Binned_120_5th_SensorHeight = [[Video_Binned_120_5th objectForKey: @"SensorHeight"] intValue];
double Video_Binned_120_5th_SensorWidth = [[Video_Binned_120_5th objectForKey: @"SensorWidth"] intValue];
BOOL Video_Binned_120_5th_Binned = [[Video_Binned_120_5th objectForKey: @"Binned"] boolValue];
NSLog(@"binned w: %f, h: %f, binned: %i", Video_Binned_120_5th_SensorWidth, Video_Binned_120_5th_SensorHeight, Video_Binned_120_5th_Binned);
Video_Binned_120_5th_SensorHeight = 1152;
// Video_Binned_120_5th_SensorHeight = 2304;

Video_Binned_120_5th_SensorWidth = 2048;
// Video_Binned_120_5th_SensorWidth = 4096;

Video_Binned_120_5th_Binned = YES;
// Video_Binned_120_5th_Binned = NO;

[Video_Binned_120_5th setObject:[NSNumber numberWithDouble:Video_Binned_120_5th_SensorWidth] forKey: @"SensorWidth"];
[Video_Binned_120_5th setObject:[NSNumber numberWithDouble:Video_Binned_120_5th_SensorHeight] forKey: @"SensorHeight"];
[Video_Binned_120_5th setObject:[NSNumber numberWithBool:Video_Binned_120_5th_Binned] forKey: @"Binned"];


As you can see, the default sensor resolution is 1152*2048 in this case, and the Binned BOOL is YES (enabled). (In the commented-out code, I duplicate the resolution and disable binning.)

Unfortunately, it didn't work - as soon as I executed the now-commented-out instructions, the Slo-mo mode started recording in standard 1080p30.

2, I tried increasing the UHD resolution (2160x3840) to 4k (2304x4096; note that the sensor is 4032 pixels wide, so there's no way to have 4096 pixels of real information.):

// UHD params:
NSMutableDictionary* AVCaptureDeviceFormats_4th = [MultiStream_3rd objectForKey: @"AVCaptureDeviceFormats"];
NSMutableDictionary* UHD30_5th = [AVCaptureDeviceFormats_4th objectForKey: @"UHD30"];
int UHD30_5th_Height = [[UHD30_5th objectForKey: @"Height"] intValue];
int UHD30_5th_Width = [[UHD30_5th objectForKey: @"Width"] intValue];
NSLog(@"UHD30 w: %i, h: %i", UHD30_5th_Width, UHD30_5th_Height);
// defaults:
UHD30_5th_Height = 2160;
UHD30_5th_Width = 3840;

// full sensor - nope, crash:
// UHD30_5th_Height = 3024;
// UHD30_5th_Width = 4032;

// 1080p30: OK:
// UHD30_5th_Width = 1920;
// UHD30_5th_Height = 1080;

// 4k - works but doesn't have wider FoV and seems to be producing softer output:
// UHD30_5th_Height = 2304;
// UHD30_5th_Width = 4096;


[UHD30_5th setObject:[NSNumber numberWithInt:UHD30_5th_Width] forKey: @"Width"];
[UHD30_5th setObject:[NSNumber numberWithInt:UHD30_5th_Height] forKey: @"Height"];


It works but doesn't have a wider FoV (it should, given that it should use more input pixels!) and seems to be producing softer output. That is, for the time being, I don't think slightly increasing the 4k resolution and widening the FoV are doable.

3, Note that there's an experimental 4k mode (with the resolution of 2304x4096), named '4k30', in the plist. I tried referencing it from AVCaptureSessionPreset3840x2160 > DeviceFormat, instead of the standard UHD (2160x3840) mode referenced by default: see the commented-out instruction in bold:

NSMutableArray* AVCaptureDevices_1st = [topLevelDictionary objectForKey: @"AVCaptureDevices"];
NSMutableDictionary* AVCaptureDevices_1st_first_element_2nd = [AVCaptureDevices_1st firstObject];
NSMutableDictionary* MultiStream_3rd = [AVCaptureDevices_1st_first_element_2nd objectForKey: @"MultiStream"];
NSMutableDictionary* AVCaptureSessionPresets_4th = [MultiStream_3rd objectForKey: @"AVCaptureSessionPresets"];
NSMutableDictionary* AVCaptureSessionPreset3840x2160_5th = [AVCaptureSessionPresets_4th objectForKey: @"AVCaptureSessionPreset3840x2160"];
NSString* AVCaptureSessionPreset3840x2160_DeviceFormat = (NSString*)[AVCaptureSessionPreset3840x2160_5th objectForKey: @"DeviceFormat"];
NSLog(@"AVCaptureSessionPreset3840x2160 > DeviceFormat: %@", AVCaptureSessionPreset3840x2160_DeviceFormat);
AVCaptureSessionPreset3840x2160_DeviceFormat = @"UHD30";
// AVCaptureSessionPreset3840x2160_DeviceFormat = @"4k30"; // immeditely crashes after starting video rec, even with hacked validator
[AVCaptureSessionPreset3840x2160_5th setObject:AVCaptureSessionPreset3840x2160_DeviceFormat forKey: @"DeviceFormat"];


Unfortunately, it didn't work. However, I don't give up - hope I'll be able to make this "experimental" mode work, even if it consumes a little more power.
 
It works but doesn't have a wider FoV (it should, given that it should use more input pixels!) and seems to be producing softer output. That is, for the time being, I don't think slightly increasing the 4k resolution and widening the FoV are doable.
No, it won't have a wider FOV because that is determined by the optics and focal plane sensor. Physics gets in the way again. The output is softer because iOS is most likely interpolating to go from 4032 to 4096.
 
No, it won't have a wider FOV because that is determined by the optics and focal plane sensor. Physics gets in the way again. The output is softer because iOS is most likely interpolating to go from 4032 to 4096.

what i meant was the current uhd mode most probably using 3840 pixels of the 4032, assuming there's an 1:1 relation between input sensor and output video file pixels. the rest are used for EIS.

that is, by using a higher-res mode, there's a chance of using more pixels on the sensor (while also sacrifying EIS, of course), which also results in a wider FoV.
 
what i meant was the current uhd mode most probably using 3840 pixels of the 4032, assuming there's an 1:1 relation between input sensor and output video file pixels. the rest are used for EIS.

that is, by using a higher-res mode, there's a chance of using more pixels on the sensor (while also sacrifying EIS, of course), which also results in a wider FoV.
That really depends on the architecture of the focal plane sensor. I seriously doubt that Apple would allow access to the EIS sensor elements or that they would even be usable for imaging, but one never knows. Is there a technical document somewhere describing the details of the sensor and the read-out architecture?
 
That really depends on the architecture of the focal plane sensor. I seriously doubt that Apple would allow access to the EIS sensor elements or that they would even be usable for imaging, but one never knows. Is there a technical document somewhere describing the details of the sensor and the read-out architecture?

By EIS, I meant the pixels dedicated for Electronic Image Stabilization in all regular (non-slowmo) video modes. The stock Camera app always uses EIS, while third-party apps can disable EIS entirely, widening their FoV. (I've published a long tutorial on all this, with executable source code, at https://forums.macrumors.com/thread...-during-video-recording-with-sources.1600908/ , which explains all this.)

By increasing the number of sensor pixels used for generating the image output (and, thus, reducing the number of sensor pixels used for EIS - or not used at all), one doesn't do anything not-allowed - after all, third-party apps can entirely disable EIS. Albeit I don't know whether the number of pixels used for EIS is dynamic or must have a specific value - this needs some additional hacking.

By disabling EIS entirely (which would also be one of the results of using an, as opposed to the standard 4096, 4032-wide semi-4k mode), you would gain a somewhat wider FoV (on the expense of stabilization), which would be welcome in many cases.

BTW, speaking of FoV and my past full sensor readout hacks for previous models (starting with the first iPhone to have a 16:9 modes, the iPhone4), I'll play a lot with this too. Even if can't output 4:3 video but a 16:9 one and even if I can't have 30 fps, such a full-sensor mode would be very useful to make the vertical FoV of the image significantly higher. As does the GoPro 3+ in its 4:3 -> 16:9 compressed mode.
 
I've made some other examples of the image quality differences of

- the original pano mode with very strong noise reduction (resulting in bad smearing)

- the hacked one (gammaC/Y=0)

- a typical example of post processing (color noise reduction) of the hacked output – here, processed with Capture One (C1 for short).

There are three original panos in the Flickr album https://www.flickr.com/photos/33448355@N07/albums/72157662262048202 . Two are original panos; one is the C1-processed hacked one. While the image titles should be evident, I also provide you with direct links:

original pano: https://www.flickr.com/photos/33448355@N07/23140619774/in/album-72157662262048202/

hacked: https://www.flickr.com/photos/33448355@N07/23768787445/in/album-72157662262048202/

c1-processed hacked: https://www.flickr.com/photos/33448355@N07/23768785315/in/album-72157662262048202/

As usual, it's mostly the low-contrast areas that are worth checking out; for example, in this case, the Christmas tree.

As you can expect, the original pano mode with very strong noise reduction produces the worst result: individual branches are definitely harder to visually separate from each other. Also, the color saturation is definitely worse than with the hacked version.

Direct link to the crop: https://www.flickr.com/photos/33448355@N07/23473104030/in/album-72157662262048202/

With the hacked version, there's a lot of color noise (and additional luminance noise, making the image more 'grainy'). However, for the image purists, it's significantly better than the (above) output of the original mode: much more saturated colors, much less smearing, much less watercoloring.

Direct link to the crop:
https://www.flickr.com/photos/33448355@N07/23686376051/in/album-72157662262048202/

Finally, the C1-processed version is between the two.
1, I deliberately refused to apply luminance noise reduction as I don't consider luminance noise be annoying at all (on the contrary – it has a nice “film look”).
2, I didn't reduce color saturation either to get rid of the color noise blotches still remaining after the very strong general CNR. In my opinion, they aren't that bad either.
3, I applied the maximum (100) CNR. Lower values simply wouldn't have worked – much more color noise would have remained. (After all, we're speaking of a Bayer filter combo, which is much more prone to color noise than X-Trans sensor filters. To do some serious low-light shooting, I still prefer Fuji's X-Trans sensors because of the very low color noise, compared to Bayer filters.) Note that not even this high(est) value could completely get rid of color blotches (see Bullet 2 above).

Direct link to the crop:
https://www.flickr.com/photos/33448355@N07/23742669566/in/album-72157662262048202/

Sorry, currently, I can't give you well-lit shots – I'm in Finland and, this time of the year, we have very little Sun (and if we do have like today, I'm at work). If you, on the other hand, want to take a look at my other Finnish panos (shot with high-quality Fuji gear), you're more than welcome to check out my Photosynth collection at https://photosynth.net/userprofilepage.aspx?user=excellenceinpanorama . Note that there are more than 200 panoramas there; all of very high quality.
 
Speaking of pano examples (see my previous post), let me show you another set of panos, also shot this Sunday, in the Helsinki Cathedral, right before the start of the traditional Saint Lucy's Day celebration (Wiki https://en.wikipedia.org/wiki/Saint_Lucy's_Day ; official event video collection: http://areena.yle.fi/1-2406448 ). As with the previous examples, there are three full panos and three crops. The latter show color smearing, saturation etc.

The album with these two times three images is at https://www.flickr.com/photos/33448355@N07/albums/72157662298721761/with/23474062860/ . The individual images:

Full panos:
Default: https://www.flickr.com/photos/33448355@N07/23474062860/in/album-72157662298721761/
Hacked, no NR: https://www.flickr.com/photos/33448355@N07/23401801159/in/album-72157662298721761/
C1 based on Hacked, no NR: https://www.flickr.com/photos/33448355@N07/23401858459/in/album-72157662298721761/

Crops:
Default: https://www.flickr.com/photos/33448355@N07/23401913319/in/album-72157662298721761/
Hacked, no NR: https://www.flickr.com/photos/33448355@N07/23769849685/in/album-72157662298721761/
C1 based on Hacked, no NR: https://www.flickr.com/photos/33448355@N07/23143059053/in/album-72157662298721761/

Pay particular attention to the dark pink antependium (aka parament or hanging). The color smearing (the background also becomes pinkish around the antependium ) is the worst-looking in the default (non-hacked) pano. Obviously, as there's no NR in the hacked shot, there's no color smearing there, either. In the C1-processed, originally hacked shot, there's much less color smearing than in the non-hacked version. In addition, the non-hacked shot has much less color saturation than the hacked one (and the C1-processed version of the latter). Sure, there are some large color blotches in the C1 version (as opposed to the unhacked version), but they aren't really annoying (at least in my opinion).

As you can see, if you're an image purist like me not wanting to lose any detail to noise reduction or still want to apply your own noise reduction, the hacked way is the one to go as it delivers significantly better results than the non-hacked default.

I've also provided three other still shots (not panos), along with their crops (and three independent stills). First, a Panasonic GM1 shot (a micro 4/3 camera; that is, it has a lot larger sensor than the 6s+) shot at ISO3200 (the maximum ISO the camera uses by default, that is, without any overriding).

The OOC JPEG image with default settings; that is, comparatively strong NR leaving absolutely no track of CN (but still not getting rid of the low-frequency, large color blotches): https://www.flickr.com/photos/33448355@N07/23142508584/in/album-72157662298721761/

The output of the RAW of the same input, processed in C1 and without any kind of NR: https://www.flickr.com/photos/33448355@N07/23770666135/in/album-72157662298721761/

The results are what you can realistically expect of current-gen micro-4/3 sensors with Bayer filters. Vastly better than the iPhone results, particularly when the latter is operated in low light in pano mode, but, of course, still significantly noisier than shots taken with full frame or APS-C + X-Trans sensors.

(Incidentally, this shot shows the marching in of the celebrators.)

And a normal still shot of the iPhone6s+ at (the comparatively low) ISO 80: https://www.flickr.com/photos/33448355@N07/23143872973/in/album-72157662298721761/

As you can see (check out the ugly color smearing around the same antependium), the still mode of the 6s+ is, just like with the pano mode, also marred by very strong NR (and the consequent smearing) even at this comparatively low ISO – this is what I really want to get rid of. Yes, and DPReview was also right in their “trashing” the iPhone6s+, at least in this respect.

(Incidentally, should you be interested in my high-quality panos of the same Helsinki Cathedral shot with my Fuji system, check out the following images:

Inside: https://photosynth.net/view/75b88824-7714-4b40-bdc4-8792f74d643e , https://photosynth.net/view/70100dd1-862b-4b0e-8966-33412b30856f (here, the antependium is green, as opposed to the pink one in the above shots)
Outside: https://photosynth.net/view/94881aa2-e1ca-4666-b252-9443872e76bf , https://photosynth.net/view/1ba5fdb4-00c2-4317-ac32-12f391b768ea , https://photosynth.net/view/b64e2b01-83ee-4ff8-83eb-dc353b1949a9 , https://photosynth.net/view/d3a7cb64-fdea-451c-b6f6-884dc5c54862 , https://photosynth.net/view/00cb5bcd-c6dc-4e6a-8278-8f720da7a307 , https://photosynth.net/view/dbe3df5c-fc5c-4fbf-8cd9-7e7027f1fbb9 , https://photosynth.net/view/f5ecab3e-e2e4-4693-827e-8d182e615476 , https://photosynth.net/view/017cdc1c-0f09-44b5-9c46-f1d4dc3f11c0
Baptismal fonts in the Helsinki Cathedral Crypt: https://photosynth.net/view/e341e8fb-d711-49f8-b316-b5101411f90c , https://photosynth.net/view/917ff3da-1a0f-4307-9951-c514eabc3270 , https://photosynth.net/view/10be3f01-5ff8-4339-9b31-02168c8c3648 , https://photosynth.net/view/b460468a-c723-4ddb-9f70-cf6217c90b99 , https://photosynth.net/view/86d29654-279e-4188-9964-bba487bf7be9 , https://photosynth.net/view/882abc7f-b767-46a5-ae3d-6af3a3be196f , https://photosynth.net/view/50b9152a-6ad0-4d69-815b-00b710943f64 )
 
Last edited:
  • Like
Reactions: kalirob99
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.