Comparing specs of upcoming Linux phones

if i drop this 800 dollahs mediocre ā€œcameraā€ though ā€¦

The 4k 30 sounds awesome.
But I donā€™t understand why the hardware video encoding is necessary. The raspberry pi 3 soc neither has 4k video encoding but it is able to make 4k video. Can someone explain why the hardware encoding is necessary? Or is it just inefficient to let the GPU do the work?

The Librem 5 can output 4K video to a monitor (decode) just like the raspberry pi can. But neither the Raspberry Pi or the Librem 5 supports 4K encoding (taking a raw 4K stream and converting it to an encoded stream, a camera outputs a raw stream).

Having an encoded stream is necessary because otherwise the video will take up hundreds of megabytes every minute. Video encoding is simply compression that is lossy and is specifically optimized for video.

3 Likes

In theory you could create a driver that captures 4K raw video from the image sensor and writes it to a high capacity UHS-I microSD card. The L5ā€™s microSD card uses a USB 2.0 bus, which can probably support up to 40 MB/s in duplex, and there are UHS-I cards that support 90 MB/s writing. Then, you could encode the raw video later with software.

Based on other posts in this forum, WiFi hotspot basically already works.

Do you have any links? This sounds pretty wrong - there is a GUI and has been from the beginning, but it doesnā€™t work (and same with regular CLI methods known from PCs) because from what Iā€™ve seen in the docs the driver needs some special care in order to switch into hotspot mode - it needs to be put into hotspot mode at module load time.

Iā€™m going to play with with sometime soon anyway and weā€™ll see :wink:

Tried it today and I can say that the WiFi hotspot works fine :slight_smile: Software still has rough edges and needs some love, but I got it to work here.

Looking at the driver docs (https://github.com/SiliconLabs/RS911X-nLink-OSD) it seems like monitor and P2P modes should work too, but I havenā€™t tried those so far.

9 Likes

Iā€™m sorry, but thatā€™s not possible in theory because you seriously underestimate how much space raw video takes up. 4K@30fps with 24bit colors I calculated to be around 5.7GB/s. It might however be possible in software to do encoding with a subset of the h264 standard to get it significantly down while still probably being fast enough, but an raw image stream is not possible.

2 Likes

Yes, you are right that it is way more than 40 MB/s, but Iā€™m getting something different than 5.7 GB/s.

Here is what I calculate:
4096 x 2160 pixels x 3 bytes per pixel x 30 frames per second = 796,262,400 bytes/s = 0.8 GB/s

Am I missing something?

thatā€™s 796,26 MB/s (mega-BYTES) x 8 = 6370,1 Mb/s so SATA III (6 gb/s) will be a little bottleneck ā€¦

Sorry you are correct, I wrote GB/s but meant Gb/s, so multiply it by 8 and you get close to what I calculated (I also just did 4000x2000 instead of 4096x2160). Most video applications measure bitrate in Mb/s rather than MB/s and I guess thatā€™s also why itā€™s called bitrate rather than byterate.

My confusion was that the Raspberry Pi 3+ has only 1080p@30p hardware video encoding (H264).
Which is with the calculation mentioned here: 1920x1080 pixels x 3 bytes per pixel x 30 fps = 1.5 Gb/s
But in the picamera documentation:
https://picamera.readthedocs.io/en/release-1.13/fov.html#sensor-modes
there is also a mode to film with 3280 x 2464 @ 15 fps which is 2.9 Gb/s. Which is nearly twice the bitrate. What I missed was that this is only possible with the MJPEG format not with H264.

1 Like

and technically 4K UHD is 3840x2160 - but still very much in the same ballpark.

Do you still need links or are you happy enough as is?

Do you still need links or are you happy enough as is?

I meant that it works after switching the kernel module parameters - it still doesnā€™t work from GUI out-of-box without manual intervention, so if you found anything that says otherwise Iā€™d be happy to see it :smiley:

1 Like

You are probably right - just chinese whispers at work. Anyway, the post (and topic) that I was thinking of are: Librem 5 & Tethering Update 2020

ā€“ 3840 Ɨ 2160 ā€“ 16āˆ¶9 (Ratio: 1.778) - consumer media and display industries,
ā€“ 4096 Ɨ 2160 ā€“ 256āˆ¶135 (ā‰ˆ19āˆ¶10) - digital cinema production.

Yes, but back to main camera, here is link to, for example, ultra-sharp 4K (2880Ɨ2160@24fps) AR0521: CMOS Image Sensor, 5.1 MP, 1/2.5" supports 1440p30 mode for 16:9 video (HDR included) with recording resolutions of 2160p (24 fps) / 1440p (30 fps) / 1080p (60 fps / 30 fps) / 720p (120 fps / 60fps) / WVGA / VGA, so i think that 2880Ɨ2160p24 is max. that we can expect from any 4K wide angle camera within smartphone to be processed (having only 30fps option operational/available on Samsung 13 Mpx Standard or 5Mpx S5K3L6 Wide Angle lens variants):

My main point/guess here is that encoding maximum for S5K3L6XX (ISOCELL 3LXX, 13MP with 4208 x 3120 usable pixels) is 1080p@30fps and 720p@30fps, but without having 720p@60fps support at all?

P.S. @amosbatto, if Replicant have relevant 60fps and 120fps support sources, I apologize! Thanks anyway!

1 Like

In case anyone is shopping for a Linux phone, I have created a table comparing the 12 models that can be bought with Linux preinstalled:

I didnā€™t bother to include phones like the Fairphone 2 and Nexus 5 in the table, because they require that the user install Linux, but the table would be much larger if it covered all the phones on which Ubuntu Touch, Sailfish OS and postmarketOS can be installed.

I also clarified the situation with RAM speeds on the PinePhone. The A64 supports a max of 3GB DDR3-1333 at 666.5MHz, but the max LPDDR3 clock is unspecified and the PinePhone distros are using RAM speeds between 552 and 624 MHz. In other words, the Librem 5 is using LPDDR4-3200, whereas the PinePhone is using between LPDDR3-1104 and LPDDR3-1248, so donā€™t just look at the 30% difference in CPU speeds to estimate the speed of the two phones.

10 Likes

I have to assume that Replicant has access to Samsungā€™s datasheet for the S5K3L6XX, since the data that Replicant posted about the S5K3L6XX is very specific, and they couldnā€™t have gotten that info through testing (since there is not yet support for the MIPI CSI-2 interface in the mainline i.MX 8M driver).

2 Likes

Good work on the spreadsheet. :boom:

1 Like

Thank you for the great table!

I wish it had LibreOffice format and not proprietary Microsoft format.

2 Likes

The problem is that free accounts in Wordpress.com donā€™t allow uploading .ods files (but do allow .xlsx files). However, I have uploaded the file to one of my VPSā€™s, so you can download it now in an OpenDocument format:
http://80.255.11.219/amos/ComparingLinuxPhones.ods

(Technically, XLXS is an open format if you donā€™t mind MS corrupting the standardization process and using binary blobs. :slight_smile: )

6 Likes