Jump to content

Camera2 API


Recommended Posts

  • 3 weeks later...
  • 5 weeks later...
I confirm that Camera2 API has already been opened and some build of GCam works on Pro1.

 

We are still improving the camera once we reach the next milestone we will publish some sample shots.

 

Have you tested "Open Camera"? A very flexible option relying on the Camera2 API (I'm using it on the S8-, and is quite satisfied with what it does)

Link to post
Share on other sites

Help me understand some things.

 

What are the GCam ports?

 

How do they differ from the google camera app on the Pixel phones?

 

Will the resulting photo on the Pro 1 look identical to one taken on a Pixel 3 phone, since the same camera hardware and same app/processing is being done (with the google camera app)?

Link to post
Share on other sites
Help me understand some things.

 

What are the GCam ports?

 

How do they differ from the google camera app on the Pixel phones?

 

Will the resulting photo on the Pro 1 look identical to one taken on a Pixel 3 phone, since the same camera hardware and same app/processing is being done (with the google camera app)?

 

That would be so awesome if this was indeed the case!

Link to post
Share on other sites

Help me understand some things.

 

What are the GCam ports?

 

How do they differ from the google camera app on the Pixel phones?

 

Will the resulting photo on the Pro 1 look identical to one taken on a Pixel 3 phone, since the same camera hardware and same app/processing is being done (with the google camera app)?

That would be so awesome if this was indeed the case!

 

Agreed! LOL

 

I wish we could get some sort of confirmation on this. Having a camera app is one thing. Having a camera app tuned for the particular camera hardware is another thing. My Samsung Galaxy S Relay 4G phone, with Android provided from Samsung, took reasonably good pictures. When I upgraded to CyanogenMod Android, and had to use the camera app they provided, the quality wasn't even close to what the Samsung camera app provided. It routinely takes washed out pictures of people's faces. The Samsung camera app was closed source, and couldn't be used. I did try OpenCamera (as EskeRahn has mentioned above), but it still wan't as good as the original Camera app that was tuned for whatever camera chip is in the phone.

 

Google/Samsung/Apple/Etc. spend millions of dollars to get those high quality photos from the hardware. It would be a really nice perk to get the same exact output from the Pro 1's camera, using the same exact software that Google ships on the Pixels.

 

I simply don't know enough about it to know if there is some intermediate processing software that might be missing or if the ports of the google camera won't have all the code that the true version running on the Pixels has for doing the advanced processing.

 

I'm guessing, at a minimum, once we have phones in our hands, users will be sharing which camera apps they are using and how the output compares between them. Since photo quality can sometimes be a bit subjective, it would be great if we could have someone with a Pixel 3 take the same picture with it and with the Pro 1, so we can see, side-by-side, what the differences are with the stock camera app provided by f(x) tec vs the google camera ports, vs open camera, etc. I have 2 pixels in our household that I can do that with, but they have different camera hardware than the pixel 3/pro 1, so it isn't an apples to apples comparison.

 

I did find this article: https://beebom.com/install-google-camera-mod/

 

It would be interesting to see the results of running the Camera2 API Probe app on the Pro 1.

 

What I still don't understand is what makes some google camera app ports work and others not work? Are the developers doing some sort of phone specific/camera chip specific API calls?

 

I had to hunt around a bit to find this, but this appears to be the google camera apk for Pixel phones.

 

https://forum.xda-developers.com/devdb/project/?id=30490#downloads

 

Unclear if there have been any modifications to the software, but it would be very interesting to see if this will work on the Pro 1.

Link to post
Share on other sites
.

What I still don’t understand is what makes some google camera app ports work and others not work? Are the developers doing some sort of phone specific/camera chip specific API calls?

.

 

As an example the Open Camera App on my Samsung S8- in all the situations I tested produced end results as good as what the accompanying Samsung camera app did. (and the Open Camera app got additional flexibility).

 

WaxBerry have confirmed earlier that Open Camera already works on the current preproduction units.

 

But let us try to straighten things out here in general terms. (Hopefully some more knowledgeable in the field can correct&supplement)

There are multiple things in play. Apart from all the hardware, there is a driver (software/firmware implementing the functions in the API). And finally a program with the user-interface.

 

The hardware might be 100% identical to what you find in other devices.

And we know we can use well known and tested programs like Open Camera as the UI / camera app against a standard API

But the driver is generally manufacturer proprietary software. So the same hardware with the same program on top does not give 100% identical images.

I have no doubt that the hardware providers to some extend help the manufacturers with what is needed for a driver, but there will always be manufacturer specific things. and I bet they are fine tuning the drivers between each iteration of software until release, and most likely also after receiving feedback from us once we get the units and use them in real live.

 

And to make things MORE complex, not all drivers implement ALL functionality in the API. If you download an app like "Camera2 API Probe" and run it, you should not at all be surprised if not all goes green. My S8- was a flagship and is produced in millions, and yet is not implementing everything. See attached output.

 

As I understand it the Open Camera requires SOME functionality to be there, and are able to use further functionalities if they are available.

 

To make things more muddy some manufacturers might NOT implement drivers with a standard API, but have a proprietary API working with there own camera app only.

Luckily (as I understand it) the Pro¹ has chosen the clean path of a standard API, so we in principle can choose between what camera app we want, that expects this standard Camera2 API.

 

[attachment file=14755]

 

 

Link to post
Share on other sites

The driver is a good point. My hope would be that Sony would supply f(x) tec with the same driver that they give to google for the same hardware.

 

It is good that Open Camera works and good that you like the results from it versus Samsung's app, with the hardware used in the S8, but I'm preferential to using the google camera app, as the combination of the Sony camera chip and the google camera app have received top scores from many analysts. Google has put a lot of money into it, and this is one of the possible added benefits of the Pro 1 -- the chance to get the same output from the Pro 1 as the Pixel 3.

 

I've heard before that Open Camera supplies a lot of manual options for those people who like to tweak such things. For my use case, I want something that quickly makes automatic smart decisions for me so that I don't need to do the manual adjustments. I believe there are special features that google has put time and money into as well (portrait mode where they blur the background like SLR cameras, etc).

 

The good news is that we can run more than one camera app at the same time. :-)

 

Regarding which Camera2 API features Open Camera can access on your S8, from my reading, there are some things that you can tweak if you are rooted, that can sometimes provide access to extra features. I don't know if that is applicable to your S8, but I've read about it with other phones.

 

 

Link to post
Share on other sites
The driver is a good point. My hope would be that Sony would supply f(x) tec with the same driver that they give to google for the same hardware.

 

I don't think Sony make the driver for Google. But I assume they provide 'something' to let the manufacturer make their own driver.

 

My point is that there MIGHT be some fancy stuff in Googles driver that is proprietary, and competitors have to create their own variants.

Link to post
Share on other sites

The driver is a good point. My hope would be that Sony would supply f(x) tec with the same driver that they give to google for the same hardware.

I don’t think Sony make the driver for Google. But I assume they provide ‘something’ to let the manufacturer make their own driver.

 

My point is that there MIGHT be some fancy stuff in Googles driver that is proprietary, and competitors have to create their own variants.

 

This (https://source.android.com/devices/camera/versioning) seems to indicate that the chip makers do provide the drivers (Hardware Abstraction Layer = HAL, or in newer versions, it is called Treble) and have to pass google's testing in order to be allowed to use a given version of the Camera API.

 

This also explains it more, especially how the newer architecture insulates the chip makers from having to make changes when Android changes: https://source.android.com/devices/architecture

 

Interestingly enough, while looking for information on the Sony drivers, I couldn't even find the IMX363 on Sony's website.

 

https://www.sony-semicon.co.jp/products_en/IS/sensor2/products/index.html

 

I also found this page that shows which other Phones use the same Sony camera chip.

 

https://en.wikipedia.org/wiki/Exmor

 

ASUS ZenFone 5

ASUS ZenFone 5Z

Xiaomi Mi MIX 2S

Xiaomi Mi MIX 3

Xiaomi Mi 8

Xiaomi Mi 8 EE

Xiaomi Mi 8 SE

Xiaomi Poco F1

Nokia X7/7.1 plus

ZTE Axon 9 Pro

LG V40 ThinQ (rear-main)

LG G8 ThinQ (rear-main)

Smartisan R1

VIVO NEX

Google Pixel 3/3XL

 

Maybe the google camera port for one of these other phones could also be used on the Pro 1, in addition to the one I linked to above for the Pixels. Of course, there are front facing cameras and rear facing cameras, so who knows how that works when the camera app has to support different vendors for front and back. My guess is, since the API is an abstraction layer, then either the software works if all features it assumes will be present are present (implemented by the camera hardware vendor in their driver and thus available in the Camera API feature list), or the software is smart enough to fall back to other options if/when the features are missing.

 

For example, if the front facing camera is chip X and the rear is chip Y, if we use a port of google camera for phone R, and that phone has the same exact X and Y chips, then everything works. If we use a port for phone S, that has A and Y (instead of X and Y), but the A driver and the X driver support the same features, then everything works. If we use a port for phone T, that has B and Y (instead of X and Y), but the B driver has fewer features than the X driver, and if the app is expecting those features, then the app might crash. If the app is adaptive (something like Open Camera falls into this category), then even features are missing from the driver, it will just fall back to using an older feature or skipping the feature altogether.

 

In the case of the google camera app running on Pixels, google only needs to make it work with the front and rear camera chips in the Pixel line of phones. They wouldn't need to be adaptive, technically. Maybe they put some adaptability in there for the benefit of others, or maybe that is what the port developers need to add to make it work on other phones.

 

If we could see the Camera2 Probe output for the Pro 1, there *might* be a better chance of knowing if a given port for another phone will work if the output can be compared and if it matches.

Link to post
Share on other sites

The other variable here is that the Pro 1 has 2 rear facing camera chips, the Sony IMX363 12 MP and another unknown 5 MP camera. It isn't clear what the other one is used for and how non-f(x) tec camera apps would utilize one vs the other vs both together. Pixel 3 phones only have the 12 MP rear facing camera chip. They don't have a secondary one on the rear of the phone.

 

The Pro 1 has a single 8 MP, unknown chip maker, front camera chip. The Pixels have an 8 MP IMX179 (Pixel 1 and 2), two 8 MP IMX355 chips (Pixel 3), or an unknown 8 MP chip (Pixel 3a).

 

It is possible that the front facing camera hardware doesn't need to match as much if there are fewer features being used for selfies than for better, rear facing photos. Either way, it is interesting that the Pro 1 and the Pixel 3a don't state which chip they are using.

Link to post
Share on other sites
  • 2 months later...

According to official specs, Pro 1 will have Sony camera sensor. Sony mobiles are known for not having RAW image support perhaps to not to cannibalize Sony's own point'n'shoot camera market segment.

 

So I wonder if Pro1 will have camera2 API to support apps which can handle RAW imaging?

 

Or is it a hardware limitation of Sony mobile camera sensors and there won't be RAW possible at all?

 

Thanks for any insights.

 

Link to post
Share on other sites
According to official specs, Pro 1 will have Sony camera sensor. Sony mobiles are known for not having RAW image support perhaps to not to cannibalize Sony’s own point’n’shoot camera market segment.

 

So I wonder if Pro1 will have camera2 API to support apps which can handle RAW imaging?

 

Or is it a hardware limitation of Sony mobile camera sensors and there won’t be RAW possible at all?

 

Thanks for any insights.

 

It will support camera2 API, including RAW. (Tested with Open Camera)

Link to post
Share on other sites

According to official specs, Pro 1 will have Sony camera sensor. Sony mobiles are known for not having RAW image support perhaps to not to cannibalize Sony’s own point’n’shoot camera market segment.

 

So I wonder if Pro1 will have camera2 API to support apps which can handle RAW imaging?

 

Or is it a hardware limitation of Sony mobile camera sensors and there won’t be RAW possible at all?

 

Thanks for any insights.

It will support camera2 API, including RAW. (Tested with Open Camera)

 

The more things become known the better this phone looks! :)

Link to post
Share on other sites
  • 3 weeks later...
  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Terms