Changing the default bitrate of Ambarella based cameras using AFT

Discussion in 'Dash Cam Software / Development' started by reverend, Mar 12, 2015.

  1. Tobi@s

    Tobi@s Well-Known Member App Developer

    Messages:
    1,353
    Likes Received:
    804
    Location:
    Bavaria
    Country:
    Germany
    Dash Cam:
    some
    Could you also try to find it in the Rom(rfs) partition? In some rare cases the bitrates are in a separate file in the rom partition
     
  2. Mindaugas92

    Mindaugas92 New Member

    Messages:
    10
    Likes Received:
    0
    Location:
    Lithuania
    Country:
    Lithuania
    Dash Cam:
    G90C
    Ok. I have extracted ROM, but sadly there is no PRI.a7s file in that rom directory.
     
  3. Tobi@s

    Tobi@s Well-Known Member App Developer

    Messages:
    1,353
    Likes Received:
    804
    Location:
    Bavaria
    Country:
    Germany
    Dash Cam:
    some
    Sorry, I wasn't clear enough. (information: PRI = kernel partition, RFS = rom file partiton)

    Just load the RFS.a7s with the bitrate editor instead of PRI.a7s
     
    Mindaugas92 likes this.
  4. Mindaugas92

    Mindaugas92 New Member

    Messages:
    10
    Likes Received:
    0
    Location:
    Lithuania
    Country:
    Lithuania
    Dash Cam:
    G90C
    Still no luck. In rom directory there is only rfs.a7t, and in partition folder there are two types of PRI: PRI.a7h (202 bytes) and PRI.a7s (6,98 mb), also RFS.A7s is found here. Nothing can be opened while leaving custom offset (dec) window blank - getting error. If I type any number in that offset window, it opens the table but numbers contains "E-24" and similar stuff.

    In screenshot bellow there is RFS.A7S opened while using custom offset someone recommended. I can type any number and get some numbers showing
     

    Attached Files:

  5. Tobi@s

    Tobi@s Well-Known Member App Developer

    Messages:
    1,353
    Likes Received:
    804
    Location:
    Bavaria
    Country:
    Germany
    Dash Cam:
    some
    Please use the values (offset/length) from the screenshot below:
    The values cant be random, they specify the address of the bitrate table and its length. In most cases they can be detected automatically

    upload_2017-1-18_20-31-35.png
     
    Mindaugas92 likes this.
  6. Mindaugas92

    Mindaugas92 New Member

    Messages:
    10
    Likes Received:
    0
    Location:
    Lithuania
    Country:
    Lithuania
    Dash Cam:
    G90C
    Oh what a miracle. Works like a charm. You are genius :) Thank you really very much!
     
  7. Mindaugas92

    Mindaugas92 New Member

    Messages:
    10
    Likes Received:
    0
    Location:
    Lithuania
    Country:
    Lithuania
    Dash Cam:
    G90C
    To get more information I would like to ask, what optimal bitrate should I set ? Somewhere on forum I have read that higher bitrate cause chip to heat more rapidly. I don't want it to be damaged by temperature. Now it has bitrate of 18 on highest resollution and quality settings and after few hours journey gadget gets quite warm, but video quality isn't super fine (can a small bitrate change solve that and is safe?).

    I have more questions relating to AFT application. I have found a setting named "AE Table editor", what it does ? It opens a screen with boxes and there are numbers in them. On top there is information that max value must be not higher than 5, but in default some boxes contain number 6 or even 7. What it does and can it be used to achieve better video quality ? For now I am having one problem - blurred sides on video, and, for example, car number plates cannot be recognized if they are not in front of my car but on the side lanes.
     

    Attached Files:

  8. jokiin

    jokiin Well-Known Member Manufacturer

    Messages:
    37,000
    Likes Received:
    18,920
    Location:
    Shenzhen, China - Sydney, Australia
    Country:
    China
    Dash Cam:
    Too many ¯\_(ツ)_/¯
    A7 chipset is ok up to about 28mbit, above that you're just generating more heat but not really gaining much
     
    Mindaugas92 and Falsificator like this.
  9. Mindaugas92

    Mindaugas92 New Member

    Messages:
    10
    Likes Received:
    0
    Location:
    Lithuania
    Country:
    Lithuania
    Dash Cam:
    G90C
    Ok, thanks, I am thinking of 24 bit setting leaving min and max default (0,75 - 1,25). Can you coment about AE Table editor?
     
  10. Mindaugas92

    Mindaugas92 New Member

    Messages:
    10
    Likes Received:
    0
    Location:
    Lithuania
    Country:
    Lithuania
    Dash Cam:
    G90C
    Tried that on different ROM and again got strange numbers in table, seems that table is different in each ROM update. Can you provide information how to find out custom offset and custom length for that table to open normaly ? I would like to learn how these things work :) ROM link is here https://dl.dropboxusercontent.com/u/64768144/firmware.bin
     
  11. Tobi@s

    Tobi@s Well-Known Member App Developer

    Messages:
    1,353
    Likes Received:
    804
    Location:
    Bavaria
    Country:
    Germany
    Dash Cam:
    some
    That's how I'm doing it (using the file you provided):
    1. Load the firmware with AFT
    2. Export all partitions
    3. Open the file PRI.a7s with a hex editor of your choice
    4. Search for this hex pattern: 0x31 0x00 0x36 0x00 0x3a 0x00 0x39 0x00
    4.info: the pattern you are looking for is a unicode representation of 16:9 which gets you almost to the bitrate table location in the binary
    5. You should find something like this:
    upload_2017-1-19_23-16-28.png

    6. Scroll down till the end of the resolutions
    upload_2017-1-19_23-17-9.png

    7. Now comes the "tricky" part, finding the exact start position.
    7.1 Bitrate table has this format [4 byte integer: type] [4 byte float: range min] [4 byte float: range max] [4 byte float: bitrate] (this is repeated n-times)
    7.2 find the first occurrence of the "type" integer (most of the times its something like [03 00 00 00] , sometimes [01 00 00 00] - whatever comes first)
    upload_2017-1-19_23-20-36.png

    7.3 the first occurrence (marked green in the screenshot above) is the location of the bitrate table. get its offset (in this example 0x00487c64)
    8. convert the hex to dec: 0x00487c64 = 4750436
    9. enter the decimal value in the custom offset field in bitrate editor
    10. load the firmware
     
  12. Mindaugas92

    Mindaugas92 New Member

    Messages:
    10
    Likes Received:
    0
    Location:
    Lithuania
    Country:
    Lithuania
    Dash Cam:
    G90C
    Oh, looks quite hard. Never had experience with HEX. Thank you Tobi@s, that is really useful tutorial. Definitely will try to play with :)

    Tried to do that, very good explanation, success at first attempt. Found same number you give and thought damn, probably got something wrong, then opened PRI and realised you did this with my firmware :D thank you, you are great !

    I've adjusted 1090p 60 fps bitrate to 28 mbits from 20 (default), won't it damage the device (by temperature or too much data flow through processor) ? I tried filming and checked temperature, after 10 mins filming gadget's screen is about 40 celsius, while ambient is 23 celsius. Probably everything is fine.
     
    Last edited: Jan 20, 2017
  13. ruckusman

    ruckusman New Member

    Messages:
    2
    Likes Received:
    0
    Country:
    Australia
    I am attempting to locate the bitrate table in a firmware from a DJI camera using the A9s using this tool, not having any luck however as the data structures seem to dissimilar.

    I have downloaded this firmware https://dl.djicdn.com/downloads/osmo/OSMO_FC550_FW_V01.03.00.40.zip

    I have decompiled the firmware to extract the ambarella firmware elements using these tools https://github.com/mefistotelis/phantom-firmware-tools

    First I have unpacked the various total firmware package then separated the OSMO_FC550_FW_V01.03.00.40_m0101.bin into it's various elements

    From this using fgrep the command points me to the OSMO_FC550_FW_V01.03.00.40_m0100_part_sys.a9s partition as being the likely candidate.

    I am unable to locate the bitrate table this partition using the technique described above.

    Can you provide any assistance - I would like to be able to repeat the procedure for other firmware as well share the process on this page for other users
    https://github.com/mefistotelis/phantom-firmware-tools

    thanks

    Glenn
     

Share This Page