yashsingh1/xdaforums huggingface dataset:
[HTC EVO 3D] stealth919:
I would think the compression issue is definitely on the right track, my HTC Hero took excellent pictures compared to the 2D pictures of my EVO 3D in 2D, obviously you would not think they would downgrade hardware in a phone meant for this and I a year and half newer. I was quite disapointed when I compared the quality after getting the phone, thought the EVO was better because the screen is 3x better than the Hero but when you put them on a computer no contest the EVO is worse. They're both 5mp but the EVO 3D turns out 2mp quality...fail! Hopefully we can decompress and supercharge this camera.
[HTC EVO 3D] beseenwithgreen:
+1 on trying to get this resolved!
[HTC EVO 3D] jason62082:
I was able to compile the AOSP source and make these changes (increasing the compression to 99), but no dice. I tested the with and without this change and it didn't make a lick of difference.

Also, I tried to compile the CM source, but I must not have some of the source. I get compile errors looking for methods that don't exist.
[HTC EVO 3D] beseenwithgreen:
This sucks...not only do we only have a 5M camera where 8M are standard, its not even a good one at that. I dont know about others, but I dont take 3D pics and would much rather have a descent 2D camera :(
[HTC EVO 3D] stealth919:
Found somethimg interesting...crappy the other day. Go to camera settings and you'll see that in 16.9 wide mode, 2 spaces up where it sais 5mp it has 2560x1440 pixels=3.686 Mp...WTF, but put it in 4x3 mode the 5mp line then show 2560x1920 pixels= 4.915 Mp. When you go to Wide screen you robbed and nocked down to a 3.6 Mpixel camera, thats Bulls#!t. Which means in 3D your using 2 widescreens for an effective rate of 7.3 Mpixel...not even combined 10Mp like i originaly thought.
[HTC EVO 3D] gk1984:
I don't see that issue, but I flashed the 2.3.4 htc camera (can't remember the thread off hand, but I think it's the 1 discussing the green hue fixed). I just saw it's in 16:9 and 5MP.
[HTC EVO 3D] stealth919:
Oh mine still shows 5mp but if you look at the small print for thactual pixel it drops the count in widescreen mode, trying to sneek one by us. And this was the same on my camera before and after the update. Guessing the phone couldn't handle a true combined 10mp in 3D mode and they had to keep it under 8 or something. Atleast the green hue is gone.
[HTC EVO 3D] Mnemoch:
Actually the 3d photos are 2mp
[HTC EVO 3D] joeykrim:
interesting! im glad you were able to get aosp camera.apk to compile!

originally, i didn't trace that line back any further, but i remember seeing it imported a bitmap compression package in the headers. now you've sparked my curiousity so i've researched it below. if you want the short answer, skip to the bottom for summary.

long technical answer: doing some more googling i found the bitmap compress method call documented on the android java dev site for Bitmap and quoted below:

Clicking on the word, compress, links to more details around that specific method call and quoted below says:

summary: it appears the compress call does just that, it compresses the image and the only variable we can change is the "quality" of the compression. i think it might be worthwhile to just bypass this compress call. if we don't want the image compressed, why even call compress? i would suggest it is worth compiling the aosp Camera.apk and bypassing the compress call.

hope that helps provide some more insight!
[HTC EVO 3D] gk1984:
I don't know much about programming, but I don't see why skipping the compress call is a good idea. I'm all for keeping jpg format and I've always been under the impression that is a compression. 75 for quality is a bit low which is what it's set to, right? Why not just put it to 100 and maximize the quality?
[HTC EVO 3D] jason62082:
I commented out that line and saw no change. It compiled without any problems. I'm not even sure that piece of code is even being called. Could it be that the camera hardware itself is compressing the image? I'm a little new to Android debugging, but is there a way to step through the code with Eclipse? That might be the only way to figure out what's going on.
[HTC EVO 3D] joeykrim:
at this point, we are more analyzing the AOSP code and looking to understand how the current AOSP functions/methods are coded and how they operate. also looking to understand the impact different calls/methods have on the size and quality of the images.

i think its too early to determine what is ideal or optimal w/o knowing the impact each setting and method call has on the final image.

we're also hoping the htc camera apk is using code/methods/packages similar to the AOSP to make the end result easier to port over. HTC might have completely recoded everything and AOSP might be completely unreleated. i haven't seen any post with decompiled htc camera code yet so for starters we're working with the open source code android gave us.

the camera hardware itself *could* be compressing the image .. the only other place I would know to look would be at the camera drivers in the kernel source code.

Easiest method I use for Android App Debugging is to throw an output in logcat.

on the next line (so we know its inside the same call), right after the source.compress method call, add Log.d(LOG_TAG, "Source.compress called"); LOG_TAG is usually defined as a static string in most android apps so all logcat output is the same throughout the app. if its not defined in the camera app, you can replace with whatever string you want.

this will also require an android.util package and Eclipse should give a prompt.

keep us updated! appreciate all the compiling/testing you're doing!
[HTC EVO 3D] jason62082:
I may have something

Okay, so I think I figured out where the jpg compression happens. In the driver source there's a driver for a Zoran chip. Zoran makes a camera/video processing chip that takes in an image, does something, then sends it back. See www.linuxmedialabs.com/Downloads/LSI/ZR36067.PDF. In \drivers\media\video\zoran\zoran_card.c there is an interesting line:

zr->jpg_settings.jpg_comp.quality = 50;	/* default compression factor 8 */

I'm thinking this is how the compression is initialized. If we set the value to 100, we might be able to increase the quality. Now, how do we get this cooked into a ROM. Can someone help me with this?

EDIT: I don't think the Zoran code is used at all if I look through the shooter configs :( IDK, It looks like it may be done by the Gemini code.
[HTC EVO 3D] joeykrim:
great research. although if the zoran code is not used, that part will not be helpful.

the master location for the best version of working kernel source on the evo 3d: https://github.com/toastcfh/htc-8660-kernel

if you can find camera drivers which are used by the shooter config and a similar compression setting, that would be a great starting point to adjust and compile using toast's version of the kernel source (which most other popular developers on here have forked and built their custom kernels off of).

once you have the kernel compiled, you'll also want to make sure the modules for at least wimax - sequands_sdio.ko and wifi bcm4329.ko compile. my app FlashImageGUI works great for flashing a packaged up .zip. if you don't want to hassle packaging it up, you can either use the flash_image binary itself to load the kernel onto the boot partition and then manually copy the modules over to /system.

although, that kernel source is more than likely only for 2.3.3 android as 2.3.4 android kernel source has not been released yet, as the OTA was just the other week. not sure if you're on android 2.3.4 or android 2.3.3, but if you want to flash back to android 2.3.3, an RUU is posted somewhere around here by football or listed on http://goo-inside.me

my personal speculation is a 2.3.3 kernel should run okay on android 2.3.4, the main changes would be in init.rc .. but thats just my speculation. i haven't looked into any details on kernels for this device.

you're definitely making good progress and approaching it correctly! hope that helps and keep us updated!

EDIT: i started looking thru the shooter config for references to camera drivers

https://github.com/toastcfh/htc-8660-kernel/blob/master/arch/arm/configs/shooter_defconfig#L1494

appears like 3 places i'd start looking at ... i'd grep thru the kernel source to find the ifdef on these ... wish github had a grep feature!

CONFIG_MSM_GEMINI=y

CONFIG_S5K6AAFX=y

CONFIG_SP3D=y
[HTC EVO 3D] jason62082:
It's looking like setting are configured in the sp3d drivers. This is labeled as the "Sharp 3D sensor driver". From doing a little research I'd bet we have the Sharp RJ64SC200 CMOS Camera Module. Unfortunately, all of the setting are just address offsets and data. There are some comments, but nothing related to the compression. The hunt continues.
[HTC EVO 3D] joeykrim:
if you wanna post up a link or two to the specific files on toast's github and even line numbers of interesting items you see, we can follow along.

good luck and keep us updated!
[HTC EVO 3D] il Duce:
OK so I dunno if this'll help you or not, or the EVO3D user base in general. But the sensation guys have a camera hack thread where it appears they're doing some killer hacks, like 0% compression, 40mbps @ 1080p, etc. Here's the thread, maybe Joey can get this type of stuff to toast, if it is kernel level this would be pretty sweet to have :) Subscribed to thread.

http://xdaforums.com/showthread.php?t=1188310
[HTC EVO 3D] jason62082:
This is pretty cool. It works on the 3D. You just need to make sure the file permissions are set write after you replace them with root explorer, then reboot.

However, it doesn't make the pictures any better. It's mostly a theme, which makes sense because there's no way he has the source to HTCCamera. The video may be better because of the media setting, but I didn't explore that. I think that's an old trick anyway.
[HTC EVO 3D] jason62082:
This line looks interesting https://github.com/toastcfh/htc-866...ivers/media/video/msm/msm_gemini_hw_reg.h#L97

#define JPEG_WE_YUB_ENCODE 0x01ff0000

I have no idea what it controls yet, but its some sort of encoder register. Basically, I have been looking for key words like "encode", "decode", "jpeg", "quality", and "compress" in the drivers/media/video/msm/ tree. It's slow going without the MSM8660 register maps, which we will never get.
[HTC EVO 3D] jason62082:
Some Success!

So I recompiled the AOSP Camera App with a different (more direct) change. I modified the following lines in Camera.java:

//mParameters.setJpegQuality(JpegEncodingQualityMappings.getQualityNumber(jpegQuality));
mParameters.setJpegQuality(100);

This seems to actually make an improvement. See the attached pictures. You can see that the HTC picture is 726 kB and the AOSP picture is 1702 kB. All of the other variables were the same. You can notice better detail on the AOSP picture.

I've also attached the compiled test app. It needs some work, but it gets the job done.

This still isn't a truly uncompressed image, but it's progress.
[HTC EVO 3D] joeykrim:
yes, you're correct on all counts. i personally don't know as much about registers as i haven't experimented much with them.

the only other avenue would be if somebody with a device that uses a *similar* camera/drivers has been down this path before and detailed out their work. perhaps an earlier model of this camera, or the same model. only wondering if maybe there has been some information released with other/previous models which *could* be helpful. google searching is about the only method i know to try and find any relevant data. perhaps by the brand model .. might come across leaked spec sheets or something useful .. who knows.

Perfect! Perfect! AOSP image definitely has more detail!

I haven't explored the different image settings and options we have through the diff API calls. I do remember reading on one of the android java doc pages there can be a choice between JPG or PNG. Perhaps PNG might have other settings which provide for better quality? since all the android java docs are online, i'll see if i can sift through them.

This is definitely useful as for anybody who wants to have 2 camera apps. one for 3D and one for higher quality 2D!

Thanks for the post and the progress! Keep us updated!

EDIT: in doing some more research on which values the AOSP camera app uses for the jpg quality settings i've found the following array list:

superfine, fine and normal.

// Change jpeg quality {65,75,85} to {normal,fine,superfine}

setting it to 100 would be a lot higher setting than the app allows by default .. we can call quality level 100 "extrasuperfine" !

the labels for quality are also defined in a hash table to their specific numeric values in JpegEncodingQualityMappings class inside Camera.java

also looks like the AOSP camera app defaults to 85 for the quality setting if nothing is already set/storred in the preference file in two locations.

String quality = pref.getString(KEY_JPEG_QUALITY, "85");

private static final int DEFAULT_QUALITY = 85;

also, on another sidenote, if you felt so inclined to properly modify and add the setting of 100 to all the locations mentioned above (plus the strings.xml and array.xml) you could probably submit the code to cm7 and have it accepted into their official distrbution. the only request i can see them making is to trigger a toast message when its selected warning the user these images will take a lot more space and can possibably fill up the storage memory quicker.

also, could attempt to submit the same patch to AOSP and perhaps they would accept? i have no experience submitting to AOSP so idk there ...
[HTC EVO 3D] kalhohan:
THanks for the camera quality apk.

Do you have some clues for me for editing my camera for reduce compression on 3d Pictures ?

The camera is limited in 3d resolution of 1080p for each eye ( why htc? ) and the compression is just horrible when I display my pictures on 3d vision LCD monitor...
[HTC EVO 3D] jason62082:
There's another thread where I explained why the 3d resolution is only

1080p. It's called camera resolution or something in the q and a section.

Sent from my PG86100
[HTC EVO 3D] empiire:
I'm confused on the higher quality camera apk. Does it still provide for taking 3D pictures or 2D only? I don't use 3D, ever, so it doesn't matter to me but I was just curious. :)
[HTC EVO 3D] jason62082:
Go check out the camera mod thread in the Dev section. This thread is kind of out dated.

Sent from my PG86100
[HTC EVO 3D] empiire:
Ah! Will do so, thank you.
[HTC EVO 3D] |ErosizeD|:
This is easy, just need to modify the correct things on the Smali files....

Actually my mod for EVO3D, have 0% compression at all, photos sizes about 2.5MB and more.

Just need to search for 0x4B ( same as 75 due 75% of compression ) and fix it to 0x64 ( equal to 100% so maximum )

Now i dont remember the right files, where is set compression.
[HTC EVO 3D] Rydah:
I know SteelH has this mod in his Rom, maybe he can help.

Via My HTC Evo 3D On The Now Network From Sprint.
[Samsung Infuse 4G] Khyrdantai:
There was this topic:

http://xdaforums.com/showthread.php?t=1206326

But this:

https://market.android.com/details?id=com.dancingpixelstudios.sixaxiscompatibilitychecker

Says it's incompatible with the Infuse 4G.

This is just the checker, and I would assume that you could at least download the checker to see if it's compatible... or is the fact you CAN'T download it the check itself? Strange~

Also, this is kind of a +1 for adding PS3 Controller compatibility, or if anyone knows of an alternative for the Infuse 4G.
[Samsung Infuse 4G] ssfirme:
I hope it works,it would be cool
[Samsung Infuse 4G] Entropy512:
Not compatible with ANY GalaxyS (or similar) phone. Also not compatible with any HTC Sense phone.

Both Samsung and HTC break the Bluetooth stack in the official firmwares. In fact the general rule (with the Galaxy Tab 10.1 being the only exception) is: If it runs Sense or TouchWiz, it won't work.

Cyanogenmod ports have a fully functional Bluetooth stack (when they have one that works at all - Bluetooth is completely missing from LinuxBozo's CM7 port so far)

I have not yet seen an example of someone "un-breaking" the Bluetooth stack in a stock-based firmware - only in full-blown AOSP/Cyanogenmod ports.
[Samsung Infuse 4G] Khyrdantai:
Wish it was as simple as taking a folder called "Bluetooth" from one phone and just slapping it into the Infuse. Oh well, patience then.
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] DroidMilitia:
Does anybody know of a way to assign a drive letter to a Samsung Galaxy Tab 10.1? I would like to sync a wide variety of files between it and my Windows XP PC via USB cable using third party synchronization software (2BrightSparks SyncBackSE)? The MTP supports manual drag-and-drop, but I need to enable a more sophisticated and automated syncing mechanism than that, and it has to work for all file types.

I tried FTP-based methods via WiFi (via SwiFTP), and found that it worked poorly because the file modification dates were not maintained over FTP.

Any help would be greatly appreciated.
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] mikeyrave:
windows automatically assigns the drive letter...

but i guess you could go to run:

compmgmt.msc

disk managment on the panel

right click drive

?????????

profit
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] cleblanc92:
I don't get (nor can figure out) how to map a drive under Windows 7 (64-bit). It does map the device for access but as "GT-P7510" then "Tablet" then dirs under Windows Explorer. It's not shown in Device Management either. Perhaps it's a Win7 or 64-bit driver issue/limitation?
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] DroidMilitia:
Thank you for your response.

I attached an image showing how different devices show up under "My Computer" on my PC. Windows automatically assigns drive letters to USB mass storage devices. This works wonderfully for a USB hard drive (E: ) or my Motorola Droid X (G: and I: ), which is running Android 2.2.1. Unfortunately, my Galaxy Tab 10.1 (Running Android 3.1) is listed as a "Portable Media Player" under "My Computer" in Windows Explorer. It apparently can only be accessed by Media Transfer Protocol (MTP), which is different from assigning the device a drive letter. This is a huge disadvantage.

I ran Computer Management to try to change the drive letter of the Galaxy Tab 10.1, and do not have the option. I attached an image showing that also. Note that I can change the USB hard drive and Droid X drives which is what I want to do for the Galaxy Tab 10.1.
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] DroidMilitia:
I have the same problem in Windows XP and Win7 32-bit. I think the issue revolves around Samsung's decision to require MTP to communicate with the tablet from a PC, and some tricks will be necessary to get around it. What we need is a way to trick Windows XP / 7 into thinking the Portable Media Device is a drive.
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] AceTrader:
Please try the below

http://www.addictivetips.com/mobile/use-samsung-galaxy-tab-10-1-as-mass-storage-device-guide/
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] cleblanc92:
That's the only time the MTP mode will kick in (when debug is off)....but no, no driveletter access just a device.
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] cleblanc92:
Details on just what MTP is and why we don't easily get a Driveletter.
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] AceTrader:
Sorry. i edited my above post . Please try that method and post here if it works
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] cleblanc92:
Funny I just started that install..
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] DroidMilitia:
Tried and failed. The method described on the addictivetips website does not actually make the Galaxy Tab 10.1 show up as a USB Mass Storage Device, as the page claims. It just enables the Personal Media Player, i.e., MTP mode, which is where we were when we started this thread.
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] cleblanc92:
2nd that result here.
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] AceTrader:
You need to have latest version of kies installed also. you don't need to use kies but is just active in the background and displayed on screen of tab.

Read this thread for more details:

http://xdaforums.com/showthread.php?t=1128220
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] cleblanc92:
This thread is about the fact that the [OP] was trying to find a way to map a driveletter. MTP IS WORKING for us, but we both were hunting for a way/app/tool/cmd/hack to get better windows-drive access -IF- there was a way to obtain it.

We don't need to keep trying drivers and steps that provide the same MTP access we started with. I think this fact got lost so I am restating here.

Seems like a Windows vs Linux limitation so unless there is new info on that aspect I guess we are done here.
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] DroidMilitia:
Well put!

To clear this up for future readers of this thread or potential Galaxy Tab 10.1 buyers I would like to add that the fact that one can "see" the Galaxy Tab 10.1 in the "My Computer" file menu does not mean that it is accessible as a drive. That means that generalized, high-quality, business-grade synchronization software such as SyncBackSE (i.e., non-Kies) that operates on all files rather than just pictures, books, videos, and podcasts, does not work.

Practically, this means that if you bought the tablet because you wanted a tool for easily accessing and reviewing .ppt, .doc, .pdf, .html, .xls, etc., files and you want to easily and quickly sync them with your desktop PC over USB with a single click, you've got a problem. I can sync my Droid X with my PC using SyncBackSE with a single click because Windows sees it as a drive. That makes me happy, as my desktop PC is then effectively in my pocket. Apparently I cannot do that with my Samsung Galaxy Tab 10.1, which bums me out.

Maybe I should return my Samsung Galaxy Tab 10.1, get an iPad 2, jailbreak it, and try using iPhone Explorer. Maybe that would solve the problem, but that is another thread in another forum.
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] therealpure:
I know its not a solution but using Dropbox to sync documents could remove the need to do this. If you want to look at .ppt, .doc etc files then this could allow syncing without wires.

Just an idea
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] cleblanc92:
I think it's just an ease-of-use complaint. I can connect my Android phone to my PC, it gets a driveletter, and I can use ANY Windows program to push or pull content as I please. I can not do that with my tab because of this limitation. Alas, (sigh) an real SD-Card would have addressed this.

GT10.1x2 for the win perhaps?? :)
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] DroidMilitia:
Thank you for the suggestion and the acknowledgement that you understand the problem. It's a decent idea, and there are similar options such as SugarSync that I have also tried. Syncing via FTP would work fine if the files maintained their modification dates, and I haven't found an FTP server app that handles that.

DropBox costs $9.99 per month for between 2 and 50 GB worth of files, and I bought the 32-GB Galaxy Tab 10.1 since I have 20 GB of files that I want to put on it. The principle of payin' for syncin' bothers me. I don't want to pay a monthly fee so that I can sync my files between my PC and my tablet. To me that's like paying a monthly fee for the ability to move my paper books from one wooden shelf to another in my office. I own both shelves and I own the books. Wouldn't I have to be a sucker to pay for the ability to transfer them between shelves? I understand that real books are not electrical signals and cannot be transported over the air or through wires, I'm talking about moving, not syncing, I don't own the wires or the WiFi terminals, etc. I get it. It's just an attempt at a real-world analogy.
[Galaxy Tab 10.1 Q&A, Help & Troubleshooting] claudekenni:
Iam using the samba server app to copy files to my tab

Edit: this one, you need to be rooted

https://market.android.com/details?id=com.funkyfresh.samba&feature=search_result