Vision+ camera and and possibility to edit bitrate?

Updated the camera to this latest FW and I must say, it looks the best so far! I did just a quick "land" test on my backyard. This little camera is capable of producing much much better picture quality than DJI thought! :-D

Just back from outside tests and yes imo the improvement is clearly noticeable...mediainfo data confirm that with an almost double bit*pixel and 25mbit medium with peak of 30mbit bitrate :D

For testing i will make soon a version for who is interested (more you are better is for testing purposes) with CBR (constant bitrate) and average bitrate.

And of course, in the meantime i'll try to understand how to make 1080 60p work if possible.
 
  • Like
Reactions: Sky Media Drones
I tried setting the command to a value of 9 seeing if it would adopt a new recording scheme. Didn't do anything. Stuck to 1080p30fps.

I edited these 2 portions:

com/dji/preview/SetListView

Code:
         setNode3.setting_name = "\u5f55\u50cf\u5206\u8fa8\u7387\u8bbe\u7f6e";
 setNode3.cmd_type = 24;
setNode3.arrayCmdValues.add(new SetSubNode("1080P 60", 2130837944, 2130837945, 9));
 setNode3.arrayCmdValues.add(new SetSubNode("1080I 60", 2130837944, 2130837945, 6));
 setNode3.arrayCmdValues.add(new SetSubNode("1080P 30", 2130837944, 2130837945, 5));
 setNode3.arrayCmdValues.add(new SetSubNode("1080P 25", 2130837944, 2130837945, 7));
 if (!VisionCmd.isGopro()) {
 setNode3.arrayCmdValues.add(new SetSubNode("960P 30", 2130837944, 2130837945, 4));
 setNode3.arrayCmdValues.add(new SetSubNode("960P 25", 2130837944, 2130837945, 8));
 }
 setNode3.arrayCmdValues.add(new SetSubNode("720P 60", 2130837944, 2130837945, 3));
 setNode3.arrayCmdValues.add(new SetSubNode("720P 30", 2130837944, 2130837945, 2));
 setNode3.arrayCmdValues.add(new SetSubNode("480P 30", 2130837944, 2130837945, 1));



dji/midware/tcp/Vision/VisionCmd

Code:
public static int setCameraRecordPara(final int n, final int n2) {
 int n3;
 if (n >= 0 && n <= 10) {    # WAS PREVIOUSLY 8
 if (n2 >= 0 && n2 <= 2) {
 final RecvPack synSendCmd = synSendCmd(Commend.mobile_request_camera((byte)24, new byte[] { (byte)n, (byte)n2 }));
 if (synSendCmd != null) {
 final byte ccode = synSendCmd.ccode;
 n3 = 0;
 if (ccode == 0) {
 return n3;
 }
 }
 return -1;
 }
 return -1;
 }
 else {
 n3 = -1;
 }
 return n3;
 }
 
  • Like
Reactions: StevenQX
How you tried that? I mean with a simulation, with a rebuild dji app with a resolution added or...?
 
Yes I just added it to my unofficial vision app and rebuilt it with the above modifications using apktool.

I thought perhaps the command value is interpreted by the camera as a "mode". So if you pick the right number, it will select the right mode. I can't find any reference to these numbers 1-8 any where else in the app, so it appears to me it is passed directly to the camera.
 
Yes I just added it to my unofficial vision app and rebuilt it with the above modifications using apktool.

I thought perhaps the command value is interpreted by the camera as a "mode". So if you pick the right number, it will select the right mode. I can't find any reference to these numbers 1-8 any where else in the app, so it appears to me it is passed directly to the camera.

It's impossible imo that the referrement for what to read in the camere firmware is only the index 1-2-3 and so on. I mean, somewhere in the code these values with the classes uses should be tranformed as hex index or something similar. 1,2,3,4 is for easy programming i think, then one of these classes do the job. I've now downloaded the dji SDK, i've installed android studio and i will try to understand if there is something in the code to be understood. I'm a beginner in android programming but i'm a programmer so i understand what you write :)


These valuese for example are the same for every resolution

2130837944, 2130837945. I don't understand what they mean at the moment
 
It's impossible imo that the referrement for what to read in the camere firmware is only the index 1-2-3 and so on. I mean, somewhere in the code these values with the classes uses should be tranformed as hex index or something similar. 1,2,3,4 is for easy programming i think, then one of these classes do the job. I've now downloaded the dji SDK, i've installed android studio and i will try to understand if there is something in the code to be understood. I'm a beginner in android programming but i'm a programmer so i understand what you write :)


These valuese for example are the same for every resolution

2130837944, 2130837945. I don't understand what they mean at the moment

Those refer simply to the record button images (one for normal png, and one for the selected icon png)-- my smali>java converter gets it wrong, they are simply hex addresses.

You may be right. I might have missed something. They are converted to bytes and passed to the camera using the mobile_request_camera command- but even still it should convert the integer to the byte on its own even if I put it to 9.
 
  • Like
Reactions: StevenQX
Those refer simply to the record button images (one for normal png, and one for the selected icon png)-- my smali>java converter gets it wrong, they are simply hex addresses.

You may be right. I might have missed something. They are converted to bytes and passed to the camera using the mobile_request_camera command.
In the firmware 1080 60p is the first in the bitrate table. In my latest version some post above, bitrate is already set to be good for 1080 60p with 30mbit like the gopro while 108030p is 24mbits. If we will be able to make 1080 60p working we could then activate also 1440*1080 60p that is interesting. :D
 
In the firmware 1080 60p is the first in the bitrate table. In my latest version some post above, bitrate is already set to be good for 1080 60p with 30mbit like the gopro while 108030p is 24mbits. If we will be able to make 1080 60p working we could then activate also 1440*1080 60p that is interesting. :D

Do you see any correlation between values 1-8 and anything in the firmware?

Not sure if it's coincidence that the mobile_request_control has a variable for 8.

dji/midware/tcp/vision/Commend
(this is smali code)

Code:
.method public static mobile_request_camera(B[B)Ldji/midware/tcp/SendPack;
 .locals 6

 invoke-static {}, Ldji/midware/tcp/PackUtil;->getSeq()S

 move-result v4

 new-instance v0, Ldji/midware/tcp/SendPack;

 const/16 v1, -0x44ab

 const/16 v2, 0x8

 move v3, p0

 move-object v5, p1

 invoke-direct/range {v0 .. v5}, Ldji/midware/tcp/SendPack;-><init>(SBBS[B)V

 return-object v0
.end method
 
  • Like
Reactions: StevenQX
Do you see any correlation between values 1-8 and anything in the firmware?

Not sure if it's coincidence that the mobile_request_control has a variable for 8.

dji/midware/tcp/vision/Commend
(this is smali code)

Code:
.method public static mobile_request_camera(B[B)Ldji/midware/tcp/SendPack;
 .locals 6

 invoke-static {}, Ldji/midware/tcp/PackUtil;->getSeq()S

 move-result v4

 new-instance v0, Ldji/midware/tcp/SendPack;

 const/16 v1, -0x44ab

 const/16 v2, 0x8

 move v3, p0

 move-object v5, p1

 invoke-direct/range {v0 .. v5}, Ldji/midware/tcp/SendPack;-><init>(SBBS[B)V

 return-object v0
.end method

No there is nothing that refer to 1-8...

It look interesting this 0x44ab...later I'll check I'm from mobile now
 
Hi guys,

I'm a new phantom 2 vision+ owner and still on stock camera firmware(1.2.9g), however I can't help but think that there is something strange going on with the 1080p Wide format aside from the low bitrate. It looks like it's a scaled up lower resolution format and not really a native 1920*1080, thus producing some bad aliasing and lack of details.

The narrow format seems ok although, I don't know if someone already noticed ? I'm posting this here, because I saw the "true hd" effect can be unlocked, maybe this is related ?

Doing some research I only found one guy reporting the problem :

http://www.phantompilots.com/threads/video-quality-narrow-vs-wide-fov.17998/

Here are some screenshots I made directly from VLC in png. The problem is mostly visible in the Inside Wide shot around the wooden frames on the wall, around the door and on the ceiling. (all tests done with the standard sharpening setting) :

https://drive.google.com/folderview...d4Z0Z4OHlVa2p6TVBKSE5IVmpKUy1HaFU&usp=sharing

The original files should be downloaded first to really see what I'm talking about.

Thank you
 
Follow up to my previous post...

Looking again to a test shot done with "soft" sharpening, wich is suposed to be the unprocessed image I think I know why we get such blurry videos...this is probably due to the noise reduction algorithm done by the Ambarella chip. The default internal settings seems to be way too high, and this why we loose so much details. (I've added the soft sharpen test) :

https://drive.google.com/open?id=0B...RuMzVzdnB0N1d4Z0Z4OHlVa2p6TVBKSE5IVmpKUy1HaFU

This is what led me to this conclusion :

"Xiaomi Yi Sharpness Fix - Before/After"

Other Xiaomi Yi users tried lower values like 500 :

The Xiaomi Yi camera is based on a A7 Ambarella chip. Maybe we could also have access to the noise reduction value with the editor and lower it ? of course the downside will be more noise in low light condition.

Again, i'm very new to all this, and just conjecturing, but i'm convinced there's something wrong going on before the bitrate issue.
 
Follow up to my previous post...

Looking again to a test shot done with "soft" sharpening, wich is suposed to be the unprocessed image I think I know why we get such blurry videos...this is probably due to the noise reduction algorithm done by the Ambarella chip. The default internal settings seems to be way too high, and this why we loose so much details. (I've added the soft sharpen test) :

https://drive.google.com/open?id=0B...RuMzVzdnB0N1d4Z0Z4OHlVa2p6TVBKSE5IVmpKUy1HaFU

This is what led me to this conclusion :

"Xiaomi Yi Sharpness Fix - Before/After"

Other Xiaomi Yi users tried lower values like 500 :

The Xiaomi Yi camera is based on a A7 Ambarella chip. Maybe we could also have access to the noise reduction value with the editor and lower it ? of course the downside will be more noise in low light condition.

Again, i'm very new to all this, and just conjecturing, but i'm convinced there's something wrong going on before the bitrate issue.
I think that the sharpness in settings refer only to photo...
 
I think that the sharpness in settings refer only to photo...

It definitly applys to video, you can see the difference in my tests. The soft setting is clean but way too soft.

Maybe in fact the sharpness setting already controls the noise reduction value...and then the problem is elsewhere. I will try to investigate more.
 
  • Like
Reactions: StevenQX
Weird. No Ambarella logo. There are 2 chips without labels however

zd98cVs.jpg
 
  • Like
Reactions: StevenQX
Weird. No Ambarella logo. There are 2 chips without labels however

zd98cVs.jpg
I think that the sharpness in settings refer only to photo...

I have been thinking too about the sharpness setting too. If you select the soft setting you get video without jaggies or haloing around bright white areas and less moire etc. but the image is way too soft. What I think is that if we could adjust the standard sharpness setting a little bit lower, less sharpening.
On TV's image settings you should set sharpness to 0, everything above that is just over sharpening and will reduce the image quality and cause just the same problems as in FC200.
 
  • Like
Reactions: StevenQX
I have been thinking too about the sharpness setting too. If you select the soft setting you get video without jaggies or haloing around bright white areas and less moire etc. but the image is way too soft. What I think is that if we could adjust the standard sharpness setting a little bit lower, less sharpening.
On TV's image settings you should set sharpness to 0, everything above that is just over sharpening and will reduce the image quality and cause just the same problems as in FC200.

The solution to this without firmware modification is to make sharpness low in camera settings and then add desired amount in post production like most professional videographers do.
 
Soon a firmware with reduced sharpness values... there is not so much that can be done with actual knoledge but...it worth a test.

For those who test:
- test with all the 3 sharpness settings (soft normal hard)
- PLEASE REPORT RESULTS HERE
 
StevenQX latest to date released firmware test video:
(video unmodified straight from camera to youtube. Settings: 1080p30, ND3 filter, ISO: Auto, WB: Auto, Metering: Average, Sharpening: Standard)
One of motors failed, but crashed successfully: on trees at first, then on moss, so no visible damage (camera protector saved camera for third time ;) ). Sadly, no more tests till replace motor: hope in the middle of next week.
 

Recent Posts

Members online

No members online now.

Forum statistics

Threads
143,094
Messages
1,467,600
Members
104,980
Latest member
ozmtl