Personal View site logo
Make sure to join PV on Telegram or Facebook! Perfect to keep up with community on your smartphone.
Panasonic GH1 firmware research, testing
  • i'm looking for constants in the encoder of gh1 to stabilize and improve image qualaty. One of my targets is get stable gop1 settings. I did tons tests and i tired to do this work alone. So i need testers, if someone still want improve gh1 qualaty and want to help in testing, please send me PM. I have found some new settings, i list it below.

    • QP step sizes table.
    • Scaling tables just like in GH2.
    • Min and Max QP.
    • All intra turner.
    • I-frame or somelike limit constant.
    • Min frame size limit(works incorrectly)

    Main problem is i can't control min bitrate, for example when shooting deep black scenes. There is steel error out after 3 sec shooting in such scenes. There is min frame size limit, i guess, i have found. But it's just increases last frame in 1-sec sequence. So need more and more testing.

  • 277 Replies sorted by
  • @humpman

    Good idea is to send me patches you are fully sure about so I'll add them as testers patches, sop everyone could help.

  • Just read good report about attempt of making lossless h.264, here
    My idea is to find prediction related code, and make it to use only Horizontal prediction method.

  • So, there is 3 codec profiles in GH1. Baseline, Main, High.
    Code numbers for each mode:
    * 01 - Baseline
    * 03 - Main
    * 04 - High

    Turning it to Baseline or Main disables quantization scaling tables as specified in profiles standart.
    Also there is Standart setting with variants:
    * 00 - Component
    * 01 - PAL
    * 02 - NTSC
    * 03 - Secam
    * 04 - MAC
    * 05 - Reserved

    Aspect ratio setting that just changing header for players to know, variants:
    * 00 - Standart
    * 01 - Wide
    * 02 - 4:3
    * 03 - More wide
    * 04 - 2.2:1 (Anamorph)
    * 05 - Extremely wide


    1407 x 715 - 357K
  • Screens about QP.

    Init QP settings, for first frame: image

    And two separately placed QP settings, but them working together:
    First part image

    Second part image

  • Limit setting. I don't realy understand is it for I-frame only or for group of pictures in 1 sec. But dropping frames and write errors may appear on high bitrates when this number slow.

    First image

    Second image

    1423 x 493 - 256K
    1419 x 643 - 343K
    1414 x 501 - 275K
  • With these settings and allready exists settings in ptool, i developed stable Baseline 50Mbps cbr style settings. As i said turning to Baseline or Main disables quantization scaling tables and it causes more blocky image, particularly on showdows. Quantization scaling smoothes that blocks, but effects on overall resolution too.

  • @humpman

    Yep, it seems like something similar. Did you tried Chris software and other stream research soft to check it out for sure?

  • Yes, I used it and also other programms like Stream Eye.

  • And how it looks? Only affect initial second?

  • QP_init affect only first frame of first second, it's usefull, cause starting with high QP's appears error immediately.

  • It is good. We need to start same open project on GH2 firmware also.

  • Did on gf1, absolutely same.

  • Still problem on gh1, when i-frames goes higher than about 700kb(777600) it will causes error after several seconds depending on i-frames sizes.

  • New patched firmware. Download link Not stable, no 60p/50p, for those who still use GH1 and want little more then other settings that exist for now. Good for low light and low detailed scenes. Try it.

    Short about settings:
    MJPEG frame rate 2 fps for timelapses.
    AVCHD 1080p 24p/25p constant bitrate about 48Mbps.
    AVCHD 720 50p/60p turned to 25p/24p, less rolling shutter, good for jerky shots.

  • Ok, i'm to stop chasing bitrates and turn to stability. As we know native 24p/25p freezes sometimes in some situations, so i rejected it. This one will be interlace. Did you ever saw differences between native and deinterlaced image on GH1? I didn't. Visually they almost same.
    For first, it's stable on deathchart. It has constant bitrtate about 43 Mbps. Also here i didn't touched 50p/60p modes, they are identical to popular settings for GH1. Main difference in this firmware comparing to other popular settings is about min QP. I set it to 0, when standart setting is 20. So now encoder takes QP value, that he needed to achieve 43Mbps without limitation of min 20. And lower QP = better quality.

    Short about settings:
    MJPEG frame rate 2 fps for timelapses.
    AVCHD 1080 60i/50i constant bitrate about 43Mbps.
    AVCHD 720 50p/60p max bitrate 43Mbps.

    Download link

  • As we know native 24p/25p freezes sometimes in some situations, so i rejected it.

    What situations?

  • @IronFilm as situations i meant trees, bushes, grass etc., also static shots.

  • Can you provide PTOOL setting for your firmware setup? Thanks

  • @yskunto Ok, here you go, i attached settings. Place setc.ini and user.ini together.

    Don't change anything in user.ini if you do not want break your cam!!!, if you want you are welcome.


    391 x 642 - 92K
  • Any chance to adapt the QP to the Lumix G2? Currently, I run it using LPowell Fast 3 GOP v2 setting.

  • @yskunto i did port it for GF1, there is all same and it was simple, but with G2 there is some differences i think, i don't have knowledge too much on it.

  • but with G2 there is some differences i think, i don't have knowledge too much on it.

    By idea all same generation cameras have almost same encoder.

  • I believe that G2 encoder is similar to GF1. The only difference is G2 does not have 4:2:2 capability for MJPEG. It is 4:2:0.

    G2 as well as GF1 does not have true 720p50/60. Both double the actual frame 720p25/30 to achieve 720p50/60. That is all what I know. Vitaliy should now thousand times better. Is your port to GF1 identical to your user.ini?
  • New settings here, scaling tables for i-p frames and fallback. Tables that developed for GH2 not so comfortable for GH1 due to low bitrates. You need edit user.ini file to change tables. Be careful, table size must be exact 192 bytes. Remember, you doing this at your own risk! Ask if you have questions.

    I included own settings, test it.

    Just fast comparison:



    As you can see, on account of lower qp you can note better detalisation and texture.


    385 x 634 - 70K
    716 x 456 - 160K
    660 x 440 - 159K
  • Wow! Great job. I will definitely try it out.