Novatek (NT9665X) firmware studies

Started to modify my JOOY A1 firmware. Bitrates are changing without any question so video quality is really good now.
But when I increase framerates that Novatek 96558 can handle according to its datasheet (720p at 60 FPS and 480p at 120FPS) I am facing the following problem:
The video framerate for 480p is really 120 FPS (I see it in mediainfo and in videoplayers) but frames on video are changing only at 30 FPS.
So every frame is displayed 4 times, then I see some movement in video and then again the picture stays still for the next 4 frames. Video compression artefacts are changing EVERY frame so it's not a Novatek lack of processing power, I guess. Maybe it's a SONY IMX 322 sensor that cannot capture at these frame rates?
And 720p at 60 FPS is more mysterious. Sometimes there are videos that really are at 60 fps and sometimes not (each frame is displayed twice).

Can this be related to video sensor or is it a firmware problem related to video preview modes? I heard they are somehow connected with main recording modes.
 
Started to modify my JOOY A1 firmware. Bitrates are changing without any question so video quality is really good now.
But when I increase framerates that Novatek 96558 can handle according to its datasheet (720p at 60 FPS and 480p at 120FPS) I am facing the following problem:
The video framerate for 480p is really 120 FPS (I see it in mediainfo and in videoplayers) but frames on video are changing only at 30 FPS.
So every frame is displayed 4 times, then I see some movement in video and then again the picture stays still for the next 4 frames. Video compression artefacts are changing EVERY frame so it's not a Novatek lack of processing power, I guess. Maybe it's a SONY IMX 322 sensor that cannot capture at these frame rates?
And 720p at 60 FPS is more mysterious. Sometimes there are videos that really are at 60 fps and sometimes not (each frame is displayed twice).

Can this be related to video sensor or is it a firmware problem related to video preview modes? I heard they are somehow connected with main recording modes.

Frame skipping for 60 fps and greater is enabled by default for modern Novatek SoCs. It occurs when your camera thinks that there is not enough light.

Have you tried to find out the max bitrate for 96558 chip?
 
Frame skipping for 60 fps and greater is enabled by default for modern Novatek SoCs
Thanks! Will try again tomorrow during bright sunlight.

Have you tried to find out the max bitrate for 96558 chip?
Well, I used 20 Mbit/s instead of 11 Mbit/s without any problem. Going to test even higher bitrate. Will post results later.

========

CMD Script that is using ntkcalc and bfc utilities by Tobi@s to automate compression, decompression and CRC calculation of firmware files. Just drag and drop FW file onto this cmd and select a mode.

https://yadi.sk/d/Uov8WibY3F663H
 
Last edited:
Prompt where to look for increase in bitrate audio and a possibility of disable HDR?
 
Thanks! Will try again tomorrow during bright sunlight.


Well, I used 20 Mbit/s instead of 11 Mbit/s without any problem. Going to test even higher bitrate. Will post results later.

========

CMD Script that is using ntkcalc and bfc utilities by Tobi@s to automate compression, decompression and CRC calculation of firmware files. Just drag and drop FW file onto this cmd and select a mode.

https://yadi.sk/d/Uov8WibY3F663H
Nice script, makes things a lot easier :)
 
Colleagues, explain !!
Here is the screen:
Comparing the contents of files
The difference in the files is two.
I understand that in the offset 68 - CRC32
And in the offset 58A190 - bitrate.
But h_0028 - 2800 = 10240_d
And where is 20 000 ???

This is also in the original file.

What's wrong here?

Thank you.
 

Attachments

  • Fw.jpg
    Fw.jpg
    282.1 KB · Views: 42
Please upload these two firmware files so that we can have a better look at it
 
Colleagues, explain !!
Here is the screen:
Comparing the contents of files
The difference in the files is two.
I understand that in the offset 68 - CRC32
And in the offset 58A190 - bitrate.
But h_0028 - 2800 = 10240_d
And where is 20 000 ???

This is also in the original file.

What's wrong here?

Thank you.
It's not crc32 but a novatek proprietary algorithm (fyi)

The bitrate from memory in novatek seems to be multiplied by 2, exactly.
10240(d)*2(d) is very close to 20800. I dont know how exactly the dsp tries to match the bitrate but since every frame/picture has dynamic size(due to applied compression) it's not possible to hit it exactly. So if you want to modify the bitrate, modify the word @0x0058a195
 
I'm not sure how useful this is, but I just found out that Novatek NT96655 is able to record 1600x900 @ 50 fps.
60 fps is too much, but 50 works.

View attachment 28921
Using this modification for a month daily and it seems to be stable.
Also inspected the recorded videos frame by frame and they seem to have six to seven unique frames out of ten which results in an effective frame rate of 30-35
 
I made a bitrate of 26, but on the Wifi there is no transfer, the FN Cam program writes - an error, without the card, FN Cam sees everything.
If switch to video mode, everything works and everything on the card writes with bitrate 26.
Why is that??
 
I dont fully understand the problem, but I guess you increased the bitrate for wireless preview? maybe the bitrate is too high for wireless transmission
 
maybe the bitrate is too high for wireless transmission
It turns out that way.
If the bitrate is <20, then everything is OK

It is necessary to disconnect wifi !!
How to find it in the firmware?
 
IDA 6.8 found, maybe there is how to disable Wifi?
I'm with English at zeros !!
 
Back
Top