Magic Lantern Forum

Experimental builds (WIP) => Tragic Lantern => Topic started by: 1% on January 06, 2013, 07:08:36 PM

Title: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on January 06, 2013, 07:08:36 PM
So I figured out some stuff about H.264 INI. bitrate.c 5d3/6D will have to be different. Had a start from what was discussed in the I/P thread.

The file:


Transform8x8Flag = 2
Profile = 100
Level = 51
BitRate = 110000000
EntropyCodingMode = 1
IntraPicInitQP = 5
InterPicInitQP = 5
QpOffsetForB = 0
MinQpI = 1
MinQpP = 1
MinQpB = 1
MaxQpI = 13
MaxQpP = 13
MaxQpB = 13
MinBitrate = 60000000
MaxBitrate = 110000000
SarWidth = 0
SarHeight = 0
AspectRatioIdc = 1
VideoFmtAndVspFlag = 81
VideoFullRangeFlag = 1
TimingInfoPresentFlag = 0
RateControlEnable = 1
ScalingMatrices = 0
pScalingMatrixAddr[0] = 0
pScalingMatrixAddr[1] = 0
pScalingMatrixAddr[2] = 0
pScalingMatrixAddr[3] = 0
pScalingMatrixAddr[4] = 0
pScalingMatrixAddr[5] = 0



Transform8x8Flag = 2 Transform flag. Already set to enabled.
Profile = 100 Cannot be changed. Camera has no other profiles loaded.
Level = 51 Can change this lower. 50 is all I've tried so far. But why?
BitRate = 110000000 Target bit rate for CBR/Rate Control. Adhered to for CBR more. Loosly in RC. Max is ~200-300
EntropyCodingMode = 1 1 is CABAC 0 is CAVLC
IntraPicInitQP = 5 Initial QP for inter and intra frames. Limit of 7 for "rate control" mode.
InterPicInitQP = 5 But a limit of 1 for CBR/VBR... haven't tried 0. MUCH better than any digic IV.
QpOffsetForB = 0 Have not tried but probably QP offset for B frames. I guess can be lower or higher than I.
MinQpI = 1 Min QPs for all modes. Can be 7 in RC, can be at least 1 in the other modes. Not strictly adhered
MinQpP = 1 to for VBR and CBR it seems. There can only be 13 QPs in any mode. 7-20 or 1-13 are a start.
MinQpB = 1
MaxQpI = 13  Max QP for modes that switch QP like VBR and RC. RC will only do 6-20 I believe. VBR will do
MaxQpP = 13 1-13 which seems best.
MaxQpB = 13
MinBitrate = 60000000 Min and Max for the VBR function. Don't do anything in other modes but I think max
MaxBitrate = 110000000 has to match target bit rate or you will get a crash.

RateControlEnable = 1

0= CBR - Stays at initQP and tries to get to the target bit rate. Should change QPs but really doesn't in any consistent way. Can use all QPs. 0 should be tried. Drops video when buffer or complexity is too high. Will record with audio and won't stop until sync is lost, which is real reason why audio stops w/ high bit rate, not buffer.

1 = VBR - Uses Min/Max and I think target. Also seems to switch QPs to keep rate in check. Initial QP can't be 1 I think or it won't switch. I set 5 and it hovered around 2, using 1-13 range. If you have settings too high, camera may freeze. I like this mode the best so far.

2 = Standard buffer saving function like tragic lantern but slightly faster and more stoppy. This is what you get by default but we have no good access to the MVR config. I think its on another proc. Will keep BR pretty low and can only use QPs 7-20. I should try with 1-13 again. It kicks in at the 1st buffer square now but still has a tendency to stop. Should have emphasized buffer and not frame size/prediction, tsk tsk.

ScalingMatrices = 0 Need to test this as I think it means you can put custom scaling matrixes to the encoder. The other fields are for address so I guess you load them into memory and then it uses them. Finding how this works would give a big boost to quality according to what I've read.


Other stuff:

Loading the INI can produce a lot of Err70s. Some of these should be patched I think. Some are from settings being incorrect. Sometimes it does it just because it feels like it. A good idea is to wait till the config finishes loading and the text is off the screen.

Another option will be to set the params 1 at a time from memory and not a file. This would make things a bunch easier. The only other solution is to auto-load configs or edit the files with ML and then make the camera reload them.
Having to load the config every start and hope it doesn't error 70 is a pain.

On 6D params are uploaded:
NSTUB(0xFF1F130C, str:ChangeIVAParam_ls_can_open._Transform8x8Flag_P)

Maybe there are others hidden somewhere or we can gain control of the video encoder. The future looks promising. The present is at least 100MBps with LOW qps and audio working.

RateControl will use 1-13, the crash happens if you let it use more than 13 qps.



average DRF                 7.200181
standard deviation          5.679766
max DRF                     13
                           
DRF=1                       219 ( 19.837 %) ####
DRF=2                       337 ( 30.525 %) ######
DRF=3                         0 (  0.000 %)
DRF=4                         1 (  0.091 %)
DRF=5                         2 (  0.181 %)
DRF=6                         2 (  0.181 %)
DRF=7                         2 (  0.181 %)
DRF=8                         1 (  0.091 %)
DRF=9                         1 (  0.091 %)
DRF=10                        1 (  0.091 %)
DRF=11                        2 (  0.181 %)
DRF=12                        1 (  0.091 %)
DRF=13                      535 ( 48.460 %) ##########
DRF>13                        0 (  0.000 %)
                           
I-slices average DRF        7.200181
I-slices std. deviation     5.679766
I-slices max DRF            13
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Marvin on January 06, 2013, 10:25:49 PM
Great work!

Level might be an arbitary value, just a flag or something, it's implemented as 4.1 for IPB, 5.1 for ALL-I

Did you shoot any samples? what's the max average bitrate you got after the hack? under what ISO?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on January 06, 2013, 11:34:46 PM
It produces similar bit rates and results to 600D. IPB makes higher rates for some reason before stopping. I can set it to target whatever rate I write to the file. It does crash/stop a bit more than the custom written version for 600D. Rate control halts with CRF 13 so I had videos producing almost 1/2 frames at CRF 1 and 2 and then 1/2 at like CRF 13. Averages out to better than stock. Video looks just like 600D video but I didn't pixel peep.

Its less dependent on ISO than digicIV. I made an 80Mbps 640x480 video with CBR. I can't open any files with bit rate viewer so haven't seen the graph.

There are a few test functions in the firmware to set some of these. Also need to see if my IPB videos are 5.1 or 4.1, I never new profile was supposed to be lower.

*, they are 5.1
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Marvin on January 07, 2013, 10:03:37 PM
Quote from: 1% on January 06, 2013, 11:34:46 PM
It produces similar bit rates and results to 600D. IPB makes higher rates for some reason before stopping. I can set it to target whatever rate I write to the file. It does crash/stop a bit more than the custom written version for 600D. Rate control halts with CRF 13 so I had videos producing almost 1/2 frames at CRF 1 and 2 and then 1/2 at like CRF 13. Averages out to better than stock. Video looks just like 600D video but I didn't pixel peep.

Its less dependent on ISO than digicIV. I made an 80Mbps 640x480 video with CBR. I can't open any files with bit rate viewer so haven't seen the graph.

There are a few test functions in the firmware to set some of these. Also need to see if my IPB videos are 5.1 or 4.1, I never new profile was supposed to be lower.

*, they are 5.1

You got IPB file with level 5.1? that's pretty impressive, the max bitrate is 300Mbps with 5.1, and only 62Mbps with 4.1 (according to spec)

In my tests I was able to hit 62Mbps with IPB mode. 150Mbps in ALL-I mode.

Maybe high bitrate IPB is better than standard bitrate ALL-I.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on January 07, 2013, 11:25:02 PM
It definitely seems less prone to stop even though gop is standard. I don't know All I at QP 1 or IPB at QP1 is better. 5d3 should be able to match this so if someone loads up a fast CF card and sets BR to 300 we can see the upper limit.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on January 08, 2013, 11:03:46 PM
I've turned on the 4x4 matrixes just by toggling the parameter in the config file:

This is 1. Movies don't play back.
Matrix coefficients                      : BT.709-2, SMPTE 274M, SMPTE 296M


Custom intra4X4 luma     
                              16  21  26  31
                              21  26  31  36
                              26  31  36  31
                              31  36 196   4


setting of 2:



Custom intra4X4 luma     
                              12  26  40  56
                              26  40  56 213
                              40  56  48  21
                              56  48  21 213


Setting of 3 did not work. Which one is better? 1 or 2?

2 Also won't play back. hmmm data looks like its there.

the sps/pps and nal uints are all screwed up again.


Setting both initQPs to -1 lets them be auto picked and will result in RC respecting your min/max and VBR doing actual VBR. It picked 1-26. For CBR not recommended as its a fixed QP mode. Initial is pretty much what it encodes at for the entire duration.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on January 14, 2013, 03:48:23 AM
Quote from: 1% on January 06, 2013, 11:34:46 PM
It produces similar bit rates and results to 600D. IPB makes higher rates for some reason before stopping.

It should also produce better overall quality.  Properly encoded B-frames can decrease bitrate by 20% or so.  In other words, using B-frames at the same quality should reduce file size by 20%, or, using B-frames should increase quality by 20% at the same file size.  I highly doubt the Canon implementation nets 20%, but 10% shouldn't be unreasonable.

Quote from: Marvin on January 07, 2013, 10:03:37 PM
You got IPB file with level 5.1? that's pretty impressive, the max bitrate is 300Mbps with 5.1, and only 62Mbps with 4.1 (according to spec)

With High Profile, yes.  Has it been confirmed that 5d3/6d uses high profile?  (edit:  nevermind, I am catching up on the other thread) The digicIV cameras used baseline profile which reduces the max bitrates to 240Mbps and 50Mbps respectively.  Bear in mind that the level flag is just that, a flag.  You could flag a 8000x8000 resolution video @ 9 gazillion Mbps with 300 reference frames as level 1 if you wanted to.  Afaik, a lot of decoders these days ignore the flag and run a quick analyses themselves to determine playback.

Quote from: 1% on January 08, 2013, 11:03:46 PM


Custom intra4X4 luma     
                              16  21  26  31
                              21  26  31  36
                              26  31  36  31
                              31  36 196   4


setting of 2:



Custom intra4X4 luma     
                              12  26  40  56
                              26  40  56 213
                              40  56  48  21
                              56  48  21 213


Setting of 3 did not work. Which one is better? 1 or 2?

Matrices and how they effect encoding is a fairly detailed topic, however, some very basic theories.  The numbers at the top left represent large flat areas, and the numbers at the bottom right represent very fine details.  Larger numbers mean more detail removal (in a nutshell).

Also, left to right and top to bottom represent vertical and horizontal frequencies.  So in those 2 matrices above, the 1st one is applying some extra compression (detail removal) to the horizontal frequencies, and the second is applying more compression to the vertical frequencies.  This could be very useful due to the way the encoder scales the information from the sensor but would require a decent amount of testing to ascertain best case.

See:  http://en.wikipedia.org/wiki/Quantization_%28image_processing%29

JVT Matrix, which iirc is an official H.264 matrix.
#jvt

INTRA4X4_LUMA =
6,13,20,28,
13,20,28,32,
20,28,32,37,
28,32,37,42

INTRA4X4_CHROMAU =
6,13,20,28,
13,20,28,32,
20,28,32,37,
28,32,37,42

INTRA4X4_CHROMAV =
6,13,20,28,
13,20,28,32,
20,28,32,37,
28,32,37,42

INTER4X4_LUMA =
10,14,20,24,
14,20,24,27,
20,24,27,30,
24,27,30,34

INTER4X4_CHROMAU =
10,14,20,24,
14,20,24,27,
20,24,27,30,
24,27,30,34

INTER4X4_CHROMAV =
10,14,20,24,
14,20,24,27,
20,24,27,30,
24,27,30,34

INTRA8X8_LUMA =
6,10,13,16,18,23,25,27,
10,11,16,18,23,25,27,29,
13,16,18,23,25,27,29,31,
16,18,23,25,27,29,31,33,
18,23,25,27,29,31,33,36,
23,25,27,29,31,33,36,38,
25,27,29,31,33,36,38,40,
27,29,31,33,36,38,40,42

INTER8X8_LUMA =
9,13,15,17,19,21,22,24,
13,13,17,19,21,22,24,25,
15,17,19,21,22,24,25,27,
17,19,21,22,24,25,27,28,
19,21,22,24,25,27,28,30,
21,22,24,25,27,28,30,32,
22,24,25,27,28,30,32,33,
24,25,27,28,30,32,33,35


Here is a overview of the frequencies for an 8x8 matrix.
(http://i.imgbox.com/adsDAonD.gif)


I hope to have a 5d3 in around 2 months.  I hope that I can be much more useful in testing then.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on January 14, 2013, 11:18:52 AM
It should be using the 5.1 in IPB. When its not set the BR is limited to 60MBps. The matrix files don't play back, unfortunately, don't know why.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: g3gg0 on January 14, 2013, 11:47:47 AM
Quote from: 1% on January 14, 2013, 11:18:52 AM
The matrix files don't play back, unfortunately, don't know why.

can you upload (a small) one to http://upload.g3gg0.de ?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on January 14, 2013, 12:06:40 PM
They are all on the 6D thread.


I can make some more when I get back from work:

http://www.qfpost.com/file/d?g=3TjJxDJYB
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on January 14, 2013, 03:10:47 PM
Quote from: 1% on January 14, 2013, 12:06:40 PM
I can make some more when I get back from work:

http://www.qfpost.com/file/d?g=3TjJxDJYB

Here is what mkvtoolnix reported when trying to mux the mov to mkv.

QuoteWarning: 'F:\Downloads\MVI_6990.MOV' track 0: The AVC video track is missing the 'CTTS' atom for frame timecode offsets. However, AVC/h.264 allows frames to have more than the traditional one (for P frames) or two (for B frames) references to other frames. The timecodes for such frames will be out-of-order, and the 'CTTS' atom is needed for getting the timecodes right. As it is missing the timecodes for this track might be wrong. You should watch the resulting file and make sure that it looks like you expected it to.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on January 14, 2013, 06:27:42 PM
Might be worth trying with timecode turned off. If we find how the matrices work we can set custom 4x4's which enhance detail. I'll dig through some more of the TI docs because canon pretty much cribbed TI's proc and removed some modes.

Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on February 07, 2013, 09:36:22 PM
According to H264/14496-10 doc

Transform8x8flag is

0 - Disabled. Only 4x4 transforms are used (default).
1 - Allows the additional use of 8x8 transform. Results in optimal RD performance
since it considers all possible modes
2 - Consider only 8x8 transform modes (i.e. disables 4x4 transform)


scaling matrix and all the addresses mean:

0 Not Present – Disabled (Default)
1 Present only in SPS
2 Present only in PPS
3 Present in both SPS and PPS

they are called ScalingListPresentFlag0
first 5 are for 4x4,  6+7 are for 8x8 which is not present in config

Setting transform to 1 and scaling matrixes to 3 produces video with these characteristics and its playable. all other combos so far seem not to work. 4x4 custom flag is not present however

Color primaries                          : BT.709-2, SMPTE 274M, SMPTE 296M
Transfer characteristics                 : BT.709-2, SMPTE 170M, SMPTE 274M, SMPTE 293M, SMPTE 296M
Matrix coefficients                      : BT.709-2, SMPTE 274M, SMPTE 296M

vs default:

Color primaries                          : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
Transfer characteristics                 : BT.709-5, BT.1361
Matrix coefficients                      : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177

*This breaks 60P
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Marvin on February 10, 2013, 01:35:38 PM
What do you mean by, "This breaks 60P?"
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on February 10, 2013, 04:24:55 PM
720P60 records green instead of video with these settings and the height is wrong.

Here are some encoder docs... we have pretty much the same thing in 5d3/6d

Encoder Parameters
http://www.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=spraba9&fileType=pdf

canon implemented some differently...

data sheet:
http://www.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=sprugx8a&fileType=pdf



FAQ: http://processors.wiki.ti.com/index.php/DaVinciHD_Codecs_FAQ


QuoteHow does the target bit rate relate to the achieved output bit rate?

The transrater produces a bit-stream that has an average bit rate which is within +/- 5% of the target bit rate


Quote
    What is the maximum resolution supported by the TI encoder?

Currently, TI has 2 separate encoders on DM6467. The 720p encoder can support resolutions from QCIF up to 720p. It can also support 1920 x 544 resolution as a special case. The 1080p encode can support resolutions from 640 x 448 up to 1920 x 1088. The restriction on 1080p30 encoder is that the width must be a multiple of 32, and height must be a multiple of 32.Also if the input resolution is 1920x1080, the last 8 lines of the frame need to padded and provided by the application to the encoder


QuoteCan the Hdvicps do encode/decode for 422 chroma format?

No, the Hdvicps do not support 422 chroma format.

    How to do the 422 --> 420 chroma conversion (for encoder) and 422 --> 420 chroma conversion (for display) on DM6467?

The VDCE engine on the DM6467 can be used for the chroma conversions. Alternately, you could even use the DSP to do the chroma conversion.

QuoteCan the VDCE do up-scaling of YUV?

No, the VDCE can be used only for down-scaling the YUV. It does not support up-scaling.

So 422 and 2k or anything is out with the hardware encoder. Scaling is NOT so if YUV buffer is scaled it could be read and encoded via something else.. but dma/CPU are the only options.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Marvin on February 11, 2013, 10:04:12 PM
Nice find, well done :)

does this mean, 1080/50/60p is possible in the hardware?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on February 12, 2013, 04:33:12 AM
Means its not possible, nor is 4:2:2
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Marvin on February 12, 2013, 02:32:51 PM
ok, well I guess 1D C uses a different h264 encoder then.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on February 12, 2013, 03:22:49 PM
Makes me wonder what it uses.  They did mod the design so its not 1:1. But the FPS in 1080 and 720 and behavior + parameters match.

Also camera has no such limitation itself, you could create a 4K 4:22 buffer I bet. Probably easy to switch out encoder part... 650D has no ivaparam but has digic V. well... easy if you're the factory. Would explain the almost identical performance of 600d with digic IV.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Marvin on February 12, 2013, 10:02:56 PM
ok then, maybe we'll just leave the mystery as it is?

which directions are we heading towards now? focusing on the scaling and bitrate parameters?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: nanomad on February 12, 2013, 11:08:43 PM
I did a quick search and couldn't find an HW realtime 4K encoder. I'd really like to see the internal of a 1Dc
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on February 12, 2013, 11:22:50 PM
Quotewhich directions are we heading towards now?

Best thing would be to make the YUV buffer 1:1` and encode that. or figure out the LV jpegs (422). The scaling is what really degrades the image.

You won't get much from anything except 1d firmware decompile. the encoder probably inside the digic package... and I thouht 1dc 2k/4k is jpeg, not 264
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: nanomad on February 13, 2013, 12:09:04 AM
Ah, that explains it then
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Marvin on February 13, 2013, 12:15:35 PM
Quote from: 1% on February 12, 2013, 11:22:50 PM
Best thing would be to make the YUV buffer 1:1` and encode that. or figure out the LV jpegs (422). The scaling is what really degrades the image.

You won't get much from anything except 1d firmware decompile. the encoder probably inside the digic package... and I thouht 1dc 2k/4k is jpeg, not 264

Only 4K is M-JPEG, all other recording formats are H264.

(http://www.eoshd.com/wp-content/uploads/2012/10/caption_0101.jpg)
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on February 13, 2013, 05:30:43 PM
Hmm... is it 4:2:2 though? they co-designed with ti  so they could have solved some of the regular encoder's problems. They renamed the parameters slightly already. Have to look inside to see.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Marvin on February 13, 2013, 06:34:59 PM
Quote from: 1% on February 13, 2013, 05:30:43 PM
Hmm... is it 4:2:2 though? they co-designed with ti  so they could have solved some of the regular encoder's problems. They renamed the parameters slightly already. Have to look inside to see.

Only 4K is JPEG 8bit 4:2:2, H264 is the same options as 5D3, plus 50p/60p mode and s35 mode.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 15, 2013, 05:44:46 PM
Since I can now analyze files:

Transform8x8Flag=
0 - 16x16 only
1 - 8x8 only
2 - Auto 8x8,16x16, sometimes 4x4

Is there a benefit to having pmode be 8x8 all the time? Messing with 4x4 matrices seems to produce broken files or in mode 3 seems to set 8x8flag to 0 more.

So 1 I see 8x8 and 16x16 P mode and so far no 4x4 p-mode. 8x8 flag on all frames.

2 I see all but transform flag is only on some frames.

the 4x4 pops up like this


position             : 112x0
slice_id             : 1
mb_addr              : 112
size (in bits)       : 362
tr, pr, mv size      : 346, 15, 0
mb_type              : Intra  0 (I_4x4)
transform_8x8        : 0
field\frame          : frame
cbp bits             : 0 1101 1 11 0 00
                     :   0111   01   00
                     :   1111
                     :   0101
quant_param          : 1
pmode                : Intra_4x4
ipred Intra_4x4      :
DC           DC           DC           DC         
Vert         Vert         Vert         Vert       
Vert         Vert         Vert         Vert       
Vert         DC           Vert         Vert       
ipred chroma         : DC


Are they worth using vs 8x8 flag on everything?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: driftwood on April 15, 2013, 10:16:36 PM
We need the ability to utilise both 8x8 and 4x4 transform - the finer 4x4 sub blocks consume more memory but when enabled along with 8x8 tend only to be used on strong changes in luma variance (like highlights and vert/horiz lines - edge detection) - the majority of the picture in h264 will be encoded in 8x8. Therefore I suggest to leave Transform8x8Flag=2 (Auto) alone.

When switching on the SIX '0' to '5' 4x4 scaling matrices; have you a way of user-entry (hex) into the sixteen '00' to '15' numbered slots yet? Also have you discovered a way of switching on and edit/entry of the two 8x8s [7] and [8]

I wish I had a 5DMKIII to play with - Id resolve a few of the problems pretty quickly. :-)

Here's a hex version of my GH2 moon setting for the 4x4s (note I have not included the special 'Fallback' matrix which kicks in when the encoder runs out of memory/buffer.

1080p24 Scaling I=0x706, 0xD0A, 0xD0A, 0x140D, 0x130C, 0x140D, 0x1912, 0x1913, 0x1912, 0x1912, 0x241A, 0x2424, 0x241A, 0x2624, 0x2624, 0x2626, 0x706, 0x1210, 0x1210, 0x201E, 0x1F17, 0x201E, 0x3030, 0x3030, 0x3030, 0x3030, 0x7F48, 0x7F48, 0x7F48, 0x7F7F, 0x7F7F, 0x7F7F, 0x706, 0x1210, 0x1210, 0x201E, 0x1F17, 0x201E, 0x3030, 0x3030, 0x3030, 0x3030, 0x7F48, 0x7F48, 0x7F48, 0x7F7F, 0x7F7F, 0x7F7F
1080p24 Scaling P=0x907, 0x1E16, 0x1E16, 0x2824, 0x2820, 0x2816, 0x4B24, 0x4B39, 0x4B4E, 0x4B57, 0x729C, 0x7266, 0x7248, 0xC090, 0xC0FF, 0xFFFF, 0x906, 0x4C24, 0x4C24, 0x7854, 0x684B, 0x7854, 0x7FE4, 0x7FE4, 0x7FE4, 0x7FE4, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x906, 0x4C24, 0x4C24, 0x7854, 0x684B, 0x7854, 0x7FE4, 0x7FE4, 0x7FE4, 0x7FE4, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
1080p24 Scaling B=0xC08,0x120A,0x120A,0x2414,0x180E,0x2414,0x3818,0x3820,0x3820,0x3818,0x4038,0x526C,0x4038,0x6C7F,0x6C7F,0x6C7F, 0x905, 0xD0A, 0xD0A,0x1419,0x120F,0x1419,0x4850,0x4850,0x4850,0x4850,0x546C,0x546C,0x546C,0x608C,0x608C,0x6CB0, 0x905, 0xD0A, 0xD0A,0x1419,0x120F,0x1419,0x4850,0x4850,0x4850,0x4850,0x546C,0x546C,0x546C,0x608C,0x608C,0x6CB0


Note that these matrices are condensed as two of the 6 matrices are identical - I think (in the pps or sps) you'll find Intra scaling_matrix(2) is the same as (1) and Inter scaling_matrix (5) is the same as (4) so you only need to design/devise entry for four scaler tables for each of the three IPB frame types entry - as in to produce Intra Y (0) Inter Y (3), Intra Cb/r (1) and Inter Cb/r (4).


--------- Profiles -----
Level = 51 currently (default) This allows Adaptive 8x8 transform. If it were =40 (level 4) it would probably force the encoder into using 4x4 transform. Give it a try. However, the numbr of macro blocks allowed (and size) will fall.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: driftwood on April 15, 2013, 11:00:14 PM
Here's an SPS (sequence Parameter Set) ripped from the new Panasonic GH3's 24p All-I mode (note the Profile is High Level 50 (5);-


  [00]seq_parameter_set_rbsp() {
    profile_idc                                    = 100 (High)
    constraint_set0_flag                           = 0 (false)
    constraint_set1_flag                           = 0 (false)
    constraint_set2_flag                           = 0 (false)
    constraint_set3_flag                           = 0 (false)
    reserved_zero_4bits                            = 0 (false)
    level_idc                                      = 50
    seq_parameter_set_id                           = 0
    if (profile_idc == 100 || profile_idc == 110 || profile_idc == 122 || profile_idc == 144) {
      chroma_format_idc                            = 1 (4:2:0)
      if (chroma_format_idc == 3)
        residual_colour_transform_flag             = na
      bit_depth_luma_minus8                        = 0 (8)
      bit_depth_chroma_minus8                      = 0 (8)
      qpprime_y_zero_transform_bypass_flag         = 0 (false)
      seq_scaling_matrix_present_flag              = 1 (true)
      if (seq_scaling_matrix_present_flag)
        for (i = 0; i < 8; i++) {
          seq_scaling_list_present_flag[0]         = 1 (true)
          if (seq_scaling_list_present_flag[0])
            scaling_list_4x4[00]                   = 6
            scaling_list_4x4[01]                   = 10
            scaling_list_4x4[02]                   = 14
            scaling_list_4x4[03]                   = 18
            scaling_list_4x4[04]                   = 10
            scaling_list_4x4[05]                   = 13
            scaling_list_4x4[06]                   = 17
            scaling_list_4x4[07]                   = 36
            scaling_list_4x4[08]                   = 13
            scaling_list_4x4[09]                   = 16
            scaling_list_4x4[10]                   = 34
            scaling_list_4x4[11]                   = 96
            scaling_list_4x4[12]                   = 16
            scaling_list_4x4[13]                   = 32
            scaling_list_4x4[14]                   = 72
            scaling_list_4x4[15]                   = 127
          seq_scaling_list_present_flag[1]         = 1 (true)
          if (seq_scaling_list_present_flag[1])
            scaling_list_4x4[00]                   = 6
            scaling_list_4x4[01]                   = 16
            scaling_list_4x4[02]                   = 30
            scaling_list_4x4[03]                   = 48
            scaling_list_4x4[04]                   = 16
            scaling_list_4x4[05]                   = 24
            scaling_list_4x4[06]                   = 48
            scaling_list_4x4[07]                   = 72
            scaling_list_4x4[08]                   = 30
            scaling_list_4x4[09]                   = 48
            scaling_list_4x4[10]                   = 72
            scaling_list_4x4[11]                   = 127
            scaling_list_4x4[12]                   = 48
            scaling_list_4x4[13]                   = 72
            scaling_list_4x4[14]                   = 127
            scaling_list_4x4[15]                   = 127
          seq_scaling_list_present_flag[2]         = 1 (true)
          if (seq_scaling_list_present_flag[2])
            scaling_list_4x4[00]                   = 6
            scaling_list_4x4[01]                   = 16
            scaling_list_4x4[02]                   = 30
            scaling_list_4x4[03]                   = 48
            scaling_list_4x4[04]                   = 16
            scaling_list_4x4[05]                   = 24
            scaling_list_4x4[06]                   = 48
            scaling_list_4x4[07]                   = 72
            scaling_list_4x4[08]                   = 30
            scaling_list_4x4[09]                   = 48
            scaling_list_4x4[10]                   = 72
            scaling_list_4x4[11]                   = 127
            scaling_list_4x4[12]                   = 48
            scaling_list_4x4[13]                   = 72
            scaling_list_4x4[14]                   = 127
            scaling_list_4x4[15]                   = 127
          seq_scaling_list_present_flag[3]         = 1 (true)
          if (seq_scaling_list_present_flag[3])
            scaling_list_4x4[00]                   = 9
            scaling_list_4x4[01]                   = 15
            scaling_list_4x4[02]                   = 20
            scaling_list_4x4[03]                   = 25
            scaling_list_4x4[04]                   = 15
            scaling_list_4x4[05]                   = 20
            scaling_list_4x4[06]                   = 25
            scaling_list_4x4[07]                   = 36
            scaling_list_4x4[08]                   = 20
            scaling_list_4x4[09]                   = 25
            scaling_list_4x4[10]                   = 36
            scaling_list_4x4[11]                   = 96
            scaling_list_4x4[12]                   = 25
            scaling_list_4x4[13]                   = 36
            scaling_list_4x4[14]                   = 96
            scaling_list_4x4[15]                   = 127
          seq_scaling_list_present_flag[4]         = 1 (true)
          if (seq_scaling_list_present_flag[4])
            scaling_list_4x4[00]                   = 16
            scaling_list_4x4[01]                   = 32
            scaling_list_4x4[02]                   = 52
            scaling_list_4x4[03]                   = 74
            scaling_list_4x4[04]                   = 32
            scaling_list_4x4[05]                   = 46
            scaling_list_4x4[06]                   = 74
            scaling_list_4x4[07]                   = 127
            scaling_list_4x4[08]                   = 52
            scaling_list_4x4[09]                   = 74
            scaling_list_4x4[10]                   = 127
            scaling_list_4x4[11]                   = 127
            scaling_list_4x4[12]                   = 74
            scaling_list_4x4[13]                   = 127
            scaling_list_4x4[14]                   = 127
            scaling_list_4x4[15]                   = 127
          seq_scaling_list_present_flag[5]         = 1 (true)
          if (seq_scaling_list_present_flag[5])
            scaling_list_4x4[00]                   = 16
            scaling_list_4x4[01]                   = 32
            scaling_list_4x4[02]                   = 52
            scaling_list_4x4[03]                   = 74
            scaling_list_4x4[04]                   = 32
            scaling_list_4x4[05]                   = 46
            scaling_list_4x4[06]                   = 74
            scaling_list_4x4[07]                   = 127
            scaling_list_4x4[08]                   = 52
            scaling_list_4x4[09]                   = 74
            scaling_list_4x4[10]                   = 127
            scaling_list_4x4[11]                   = 127
            scaling_list_4x4[12]                   = 74
            scaling_list_4x4[13]                   = 127
            scaling_list_4x4[14]                   = 127
            scaling_list_4x4[15]                   = 127
          seq_scaling_list_present_flag[6]         = 1 (true)
          if (seq_scaling_list_present_flag[6])
            scaling_list_8x8[00]                   = 6
            scaling_list_8x8[01]                   = 8
            scaling_list_8x8[02]                   = 10
            scaling_list_8x8[03]                   = 12
            scaling_list_8x8[04]                   = 14
            scaling_list_8x8[05]                   = 16
            scaling_list_8x8[06]                   = 19
            scaling_list_8x8[07]                   = 22
            scaling_list_8x8[08]                   = 8
            scaling_list_8x8[09]                   = 10
            scaling_list_8x8[10]                   = 12
            scaling_list_8x8[11]                   = 14
            scaling_list_8x8[12]                   = 16
            scaling_list_8x8[13]                   = 19
            scaling_list_8x8[14]                   = 22
            scaling_list_8x8[15]                   = 28
            scaling_list_8x8[16]                   = 10
            scaling_list_8x8[17]                   = 12
            scaling_list_8x8[18]                   = 14
            scaling_list_8x8[19]                   = 16
            scaling_list_8x8[20]                   = 19
            scaling_list_8x8[21]                   = 22
            scaling_list_8x8[22]                   = 28
            scaling_list_8x8[23]                   = 36
            scaling_list_8x8[24]                   = 12
            scaling_list_8x8[25]                   = 13
            scaling_list_8x8[26]                   = 15
            scaling_list_8x8[27]                   = 19
            scaling_list_8x8[28]                   = 22
            scaling_list_8x8[29]                   = 32
            scaling_list_8x8[30]                   = 42
            scaling_list_8x8[31]                   = 64
            scaling_list_8x8[32]                   = 13
            scaling_list_8x8[33]                   = 14
            scaling_list_8x8[34]                   = 18
            scaling_list_8x8[35]                   = 21
            scaling_list_8x8[36]                   = 32
            scaling_list_8x8[37]                   = 48
            scaling_list_8x8[38]                   = 96
            scaling_list_8x8[39]                   = 96
            scaling_list_8x8[40]                   = 14
            scaling_list_8x8[41]                   = 17
            scaling_list_8x8[42]                   = 20
            scaling_list_8x8[43]                   = 28
            scaling_list_8x8[44]                   = 42
            scaling_list_8x8[45]                   = 96
            scaling_list_8x8[46]                   = 127
            scaling_list_8x8[47]                   = 127
            scaling_list_8x8[48]                   = 16
            scaling_list_8x8[49]                   = 19
            scaling_list_8x8[50]                   = 24
            scaling_list_8x8[51]                   = 36
            scaling_list_8x8[52]                   = 64
            scaling_list_8x8[53]                   = 96
            scaling_list_8x8[54]                   = 127
            scaling_list_8x8[55]                   = 127
            scaling_list_8x8[56]                   = 18
            scaling_list_8x8[57]                   = 22
            scaling_list_8x8[58]                   = 30
            scaling_list_8x8[59]                   = 42
            scaling_list_8x8[60]                   = 64
            scaling_list_8x8[61]                   = 96
            scaling_list_8x8[62]                   = 127
            scaling_list_8x8[63]                   = 127
          seq_scaling_list_present_flag[7]         = 1 (true)
          if (seq_scaling_list_present_flag[7])
            scaling_list_8x8[00]                   = 9
            scaling_list_8x8[01]                   = 13
            scaling_list_8x8[02]                   = 15
            scaling_list_8x8[03]                   = 17
            scaling_list_8x8[04]                   = 19
            scaling_list_8x8[05]                   = 21
            scaling_list_8x8[06]                   = 23
            scaling_list_8x8[07]                   = 25
            scaling_list_8x8[08]                   = 13
            scaling_list_8x8[09]                   = 14
            scaling_list_8x8[10]                   = 17
            scaling_list_8x8[11]                   = 19
            scaling_list_8x8[12]                   = 21
            scaling_list_8x8[13]                   = 23
            scaling_list_8x8[14]                   = 25
            scaling_list_8x8[15]                   = 28
            scaling_list_8x8[16]                   = 15
            scaling_list_8x8[17]                   = 17
            scaling_list_8x8[18]                   = 19
            scaling_list_8x8[19]                   = 22
            scaling_list_8x8[20]                   = 24
            scaling_list_8x8[21]                   = 26
            scaling_list_8x8[22]                   = 28
            scaling_list_8x8[23]                   = 32
            scaling_list_8x8[24]                   = 17
            scaling_list_8x8[25]                   = 19
            scaling_list_8x8[26]                   = 22
            scaling_list_8x8[27]                   = 24
            scaling_list_8x8[28]                   = 27
            scaling_list_8x8[29]                   = 32
            scaling_list_8x8[30]                   = 48
            scaling_list_8x8[31]                   = 64
            scaling_list_8x8[32]                   = 19
            scaling_list_8x8[33]                   = 21
            scaling_list_8x8[34]                   = 24
            scaling_list_8x8[35]                   = 27
            scaling_list_8x8[36]                   = 32
            scaling_list_8x8[37]                   = 64
            scaling_list_8x8[38]                   = 96
            scaling_list_8x8[39]                   = 127
            scaling_list_8x8[40]                   = 21
            scaling_list_8x8[41]                   = 23
            scaling_list_8x8[42]                   = 26
            scaling_list_8x8[43]                   = 32
            scaling_list_8x8[44]                   = 64
            scaling_list_8x8[45]                   = 96
            scaling_list_8x8[46]                   = 127
            scaling_list_8x8[47]                   = 127
            scaling_list_8x8[48]                   = 23
            scaling_list_8x8[49]                   = 25
            scaling_list_8x8[50]                   = 28
            scaling_list_8x8[51]                   = 48
            scaling_list_8x8[52]                   = 96
            scaling_list_8x8[53]                   = 127
            scaling_list_8x8[54]                   = 127
            scaling_list_8x8[55]                   = 127
            scaling_list_8x8[56]                   = 25
            scaling_list_8x8[57]                   = 28
            scaling_list_8x8[58]                   = 32
            scaling_list_8x8[59]                   = 64
            scaling_list_8x8[60]                   = 127
            scaling_list_8x8[61]                   = 127
            scaling_list_8x8[62]                   = 127
            scaling_list_8x8[63]                   = 127
          }
        }
      }
    log2_max_frame_num_minus4                      = 0 (4)
    pic_order_cnt_type                             = 0
    if (pic_order_cnt_type == 0)
      log2_max_pic_order_cnt_lsb_minus4            = 0 (4)
    else if (pic_order_cnt_type == 1) {
      delta_pic_order_always_zero_flag             = na
      offset_for_non_ref_pic                       = na
      offset_for_top_to_bottom_field               = na
      num_ref_frames_in_pic_order_cnt_cycle        = na
      for(i = 0; i < num_ref_frames_in_pic_order_cnt_cycle; i++)
      }
    num_ref_frames                                 = 2
    gaps_in_frame_num_value_allowed_flag           = 0
    pic_width_in_mbs_minus1                        = 119 (1920)
    pic_height_in_map_units_minus1                 = 67 (1088)
    frame_mbs_only_flag                            = 1
    if (!frame_mbs_only_flag)
      mb_adaptive_frame_field_flag                 = na
    direct_8x8_inference_flag                      = 1 (true)
    frame_cropping_flag                            = 1 (true)
    if (frame_cropping_flag) {
      frame_crop_left_offset                       = 0
      frame_crop_right_offset                      = 0
      frame_crop_top_offset                        = 0
      frame_crop_bottom_offset                     = 4
      }
    vui_parameters_present_flag                    = 1 (true)
    if (vui_parameters_present_flag)
      vui_parameters() {
        aspect_ratio_info_present_flag             = 1 (true)
        if (aspect_ratio_info_present_flag) {
          aspect_ratio_idc                         = 1 (1:1)
          if (aspect_ratio_idc == Extended_SAR) {
            sar_width                              = na
            sar_height                             = na
            }
...
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: driftwood on April 15, 2013, 11:02:27 PM
...continued>>>
          }
        overscan_info_present_flag                 = 1 (true)
        if (overscan_info_present_flag)
          overscan_appropriate_flag                = 0 (false)
        video_signal_type_present_flag             = 1 (true)
        if (video_signal_type_present_flag) {
          video_format                             = 5
          video_full_range_flag                    = 1 (true)
          colour_description_present_flag          = 1 (true)
          if (colour_description_present_flag) {
            colour_primaries                       = 1
            transfer_characteristics               = 1
            matrix_coefficients                    = 1
            }
          }
        chroma_location_info_present_flag          = 0 (false)
        if (chroma_loc_info_present_flag) {
          chroma_location_type_top_field           = na
          chroma_location_type_bottom_field        = na
          }
        timing_info_present_flag                   = 1 (true)
        if (timing_info_present_flag) {
          num_units_in_tick                        = 1001
          time_scale                               = 48000
          fixed_frame_rate_flag                    = 1
          }
        nal_hrd_parameters_present_flag            = 1 (true)
        if (nal_hrd_parameters_present_flag)
          nal_hrd_parameters() {
            cpb_cnt_minus1                         = 0 (1)
            bit_rate_scale                         = 4
            cpb_size_scale                         = 6
            for (SchedSelIdx = 0; SchedSelIdx <= cpb_cnt_minus1; SchedSelIdx++) {
              bit_rate_value_minus1[0]             = 69999
              cpb_size_value_minus1[0]             = 62999
              cbr_flag[0]                          = 0
              }
            initial_cpb_removal_delay_length_minus1 = 16
            cpb_removal_delay_length_minus1        = 30
            dpb_output_delay_length_minus1         = 30
            time_offset_length                     = 24
            }
          }
        vcl_hrd_parameters_present_flag            = 1 (true)
        if (vcl_hrd_parameters_present_flag)
          vcl_hrd_parameters()
            cpb_cnt_minus1                         = 0 (1)
            bit_rate_scale                         = 4
            cpb_size_scale                         = 6
            for (SchedSelIdx = 0; SchedSelIdx <= cpb_cnt_minus1; SchedSelIdx++) {
              bit_rate_value_minus1[0]             = 69999
              cpb_size_value_minus1[0]             = 62999
              cbr_flag[0]                          = 0
              }
            initial_cpb_removal_delay_length_minus1 = 16
            cpb_removal_delay_length_minus1        = 30
            dpb_output_delay_length_minus1         = 30
            time_offset_length                     = 24
            }
          }
        if (nal_hrd_parameters_present_flag || vcl_hrd_parameters_present_flag)
          low_delay_hrd_flag                       = 0 (false)
        pic_struct_present_flag                    = 1 (true)
        bitstream_restriction_flag                 = 0 (false)
        if (bitstream_restriction_flag) {
          motion_vectors_over_pic_boundaries_flag  = na
          max_bytes_per_pic_denom                  = na
          max_bits_per_mb_denom                    = na
          log2_max_mv_length_vertical              = na
          log2_max_mv_length_horizontal            = na
          num_reorder_frames                       = na
          max_dec_frame_buffering                  = na
          }
        }
      }
    }
  [00]pic_parameter_set_rbsp() {
    pic_parameter_set_id                           = 0
    seq_parameter_set_id                           = 0
    entropy_coding_mode_flag                       = 0 (CAVLC)
    pic_order_present_flag                         = 1 (true)
    num_slice_groups_minus1                        = 0 (1)
    if (num_slice_groups_minus1 > 0) {
      slice_group_map_type                         = na
      if (slice_group_map_type == 0)
        for (iGroup = 0; iGroup <= num_slice_groups_minus1; iGroup++) {
        }
      else if (slice_group_map_type == 2)
        for (iGroup = 0; iGroup < num_slice_groups_minus1; iGroup++) {
        }
      else if ((slice_group_map_type == 3) || (slice_group_map_type == 4) || (slice_group_map_type == 5)) {
        slice_group_change_direction_flag          = na
        slice_group_change_rate_minus1             = na
      } else if (slice_group_map_type == 6) {
        pic_size_in_map_units_minus1               = na
        for (i = 0; i <= pic_size_in_map_units_minus1; i++)
        }
      }
    num_ref_idx_l0_active_minus1                   = 0 (1)
    num_ref_idx_l1_active_minus1                   = 0 (1)
    weighted_pred_flag                             = 0 (false)
    weighted_bipred_idc                            = 0
    pic_init_qp_minus26                            = 0 (26)
    pic_init_qs_minus26                            = 0 (26)
    chroma_qp_index_offset                         = 0
    deblocking_filter_control_present_flag         = 1 (true)
    constrained_intra_pred_flag                    = 0 (false)
    redundant_pic_cnt_present_flag                 = 0 (false)
    }
  [00]slice_header() {
    first_mb_in_slice                              = 0
    slice_type                                     = 7 (I slice)
    pic_parameter_set_id                           = 0
    frame_num                                      = 0
    if (!frame_mbs_only_flag) {
      field_pic_flag                               = na
      if (field_pic_flag)
        bottom_field_flag                          = na
      }
    if (nal_unit_type == 5)
      idr_pic_id                                   = 12
    if (pic_order_cnt_type == 0) {
      pic_order_cnt_lsb                            = 0
      if (pic_order_present_flag && !field_pic_flag)
        delta_pic_order_cnt_bottom                 = 0
      }
    if (pic_order_cnt_type == 1 && !delta_pic_order_always_zero_flag) {
      delta_pic_order_cnt[0]                       = na
      if (pic_order_present_flag && !field_pic_flag)
        delta_pic_order_cnt[1]                     = na
      }
    if (redundant_pic_cnt_present_flag)
      redundant_pic_cnt                            = na
    if (slice_type == B)
      direct_spatial_mv_pred_flag                  = na
    if (slice_type == P || slice_type == SP || slice_type == B) {
      num_ref_idx_active_override_flag             = na
      if (num_ref_idx_active_override_flag) {
        num_ref_idx_l0_active_minus1               = na
        if (slice_type == B )
          num_ref_idx_l1_active_minus1             = na
        }
      }
    ref_pic_list_reordering()
    if ((weighted_pred_flag && (slice_type == P || slice_type == SP)) || (weighted_bipred_idc == 1 && slice_type == B))
      pred_weight_table()
    if (nal_ref_idc != 0)
      dec_ref_pic_marking()
    if (entropy_coding_mode_flag && slice_type != I && slice_type != SI)
      cabac_init_idc                               = na
    slice_qp_delta                                 = -7
    if (slice_type == SP || slice_type == SI) {
      if (slice_type == SP)
        sp_for_switch_flag                         = na
      slice_qs_delta                               = na
      }
    if (deblocking_filter_control_present_flag) {
      disable_deblocking_filter_idc                = 0
      if (disable_deblocking_filter_idc != 1) {
        slice_alpha_c0_offset_div2                 = 0 (-1)
        slice_beta_offset_div2                     = -2 (-4)
        }
      }
    if (num_slice_groups_minus1 > 0 && slice_group_map_type >= 3 && slice_group_map_type <= 5)
      slice_group_change_cycle                     = na
    }
  [00]sei() {                                      = 16
    buffering_period() {
      seq_parameter_set_id                         = 0
      if (NalHrdBpPresentFlag) {
        for (SchedSelIdx = 0; SchedSelIdx <= cpb_cnt_minus1; SchedSelIdx++) {
          initial_cpb_removal_delay[00]            = 0
          initial_cpb_removal_delay_offset[00]     = 0
          }
        }
      if (VclHrdBpPresentFlag) {
        for (SchedSelIdx = 0; SchedSelIdx <= cpb_cnt_minus1; SchedSelIdx++) {
          initial_cpb_removal_delay[00]            = 0
          initial_cpb_removal_delay_offset[00]     = 0
          }
        }
      }
    }
  [01]sei() {                                      = 16
    pic_timing() {
      if (CpbDpbDelaysPresentFlag) {
        cpb_removal_delay                          = 0
        dpb_output_delay                           = 0
        }
      if (pic_struct_present_flag) {
        pic_struct                                 = 0 (frame)
        for (i = 0; i < NumClockTS; i++) {
          clock_timestamp_flag[0]                  = 0 (false)
          if (clock_timestamp_flag[0]) {
            ct_type                                = na
            nuit_field_based_flag                  = na
            counting_type                          = na
            full_timestamp_flag                    = na
            discontinuity_flag                     = na
            cnt_dropped_flag                       = na
            n_frames                               = na
            if (full_timestamp_flag) {
              seconds_value                        = na
              minutes_value                        = na
              hours_value                          = na
            } else {
              seconds_flag                         = na
              if (seconds_flag) {
                seconds_value                      = na
                minutes_flag                       = na
                if (minutes_flag) {
                  minutes_value                    = na
                  hours_flag                       = na
                  if (hours_flag)
                    hours_value                    = na
                  }
                }
              }
            if (time_offset_length > 0)
              time_offset                          = 0
            }
          }
        }
      }
    }
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 15, 2013, 11:58:51 PM
I should make some test vids. There doesn't seem to be a way to use only 4x4 transforms or the files come out black.

Choice seems to be auto pick, 16x16 only or 8x8. Need to find decision point for what gets used and patch it.

Also, what is the difference between the 4x4, 8x8, 16x16 pmodes? Seems you can have a search of 4x4 or 8x8 and not have transform 8x8 flag set.

And what about encoding with no p frames? Is IB better than all I or IPB? Because of timecode max gop is FPS.

All-I seems like a bust. It can't handle QPs as high as IPB because of SD interface limits. Maybe would do better on 5d3 CF card.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 16, 2013, 05:05:31 AM
Is there a guide for getting bitrate control to work on 5D3 for dummies?  I'm on a nightly build from March 14th, I don't get any errors showing when loading an ini, but I'm seeing no changes to recordings either.

Quote from: 1% on April 15, 2013, 11:58:51 PM
And what about encoding with no p frames? Is IB better than all I or IPB? Because of timecode max gop is FPS.

All-I seems like a bust. It can't handle QPs as high as IPB because of SD interface limits. Maybe would do better on 5d3 CF card.

I've never known an encoder to do IB only.

I doubt All-I could ever be a serious contention for image quality (for current cameras).  They (I frames) simply require to much bits.  You can up the bits in I frames (and make them good references) in IPB thanks to leaky bucket buffering.

Quote from: 1% on April 15, 2013, 11:58:51 PMAlso, what is the difference between the 4x4, 8x8, 16x16 pmodes?

QuoteH.264 video is split up into 16x16 macroblocks during compression. These blocks can then be further split up into smaller partitions...................
4x4 is generally not very useful and has an extremely high ratio of speed cost to resulting quality gain.

http://mewiki.project357.com/wiki/X264_Settings#partitions

I personally wouldn't be worrying about matracies (yet?).  Thanks to the visual optimizations in H.264, matracies now play (only) a small part in the overall image quality thanks to in-loop deblocking etc.  Bigger gains should be made with GOP size, open-gop, increasing consective B-frames, ref frames, IP and PB ratios.


driftwood, I like the look of these.

chroma_qp_index_offset > Increase QP for chroma.  Human Visual System is less sensitive to chroma.  Increasing the compression in chroma can tweak a little extra 'overall' quality.

weighted_pred_flag
weighted_bipred_idc >  Weighted prediction significantly helps with fades.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 16, 2013, 06:23:59 AM
Heh, I would have to port all of this to 5d3. I have the FW, should try at some point.

You should be able to load *some* of the 6D configs.. there are some error 70s that were patched but you just have to lower a couple parameters. Make sure the INI is in the correct spot as it will show the name being loaded even if the INI is not present.

5d3 might be a bust for the gop changing, a1ex said it would write corrupt headers when altered. 6D is not. Maybe just not tested all the way. I dunno if GOP_SLAVE works, it did not on 6D.

I have to post SPS/PPS of some of the different modes since I can get at that stuff now.. Not sure where all the flags are though, they seem dynamically set per frame.

No open gop, going past FPS results in timecode error or camera freeze if you patch the former.

Fixed QP of 5, flush 6, gop 3, I think CBR config. Did not watch on PC yet, only in camera.

http://www.filedropper.com/mvi9218
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: driftwood on April 16, 2013, 02:14:39 PM
You don't necessarily need to use B frames but it certainly helps with motion prediction with its bi-directional lookup.

If B frames are switched on in an IPB GOP and the GOP is 3 you should only get 'ibb'. At least two consecutive b frames should be used in all IPBs under h264;-

  3 GOP = ibb

  6 GOP = ibbPbb

12 GOP = ibbPbbPbbPbb

15 GOP = ibbPbbPbbPbbPbb

Your MVI_9218 download played back fine on the Mac under Quicktime and Movist. Ill take a look at this in Elecard Stream Analysis

---- POSSIBLE OTHER ENCODER SETTINGS INSIDE? ------

Are there any other encoder settings you have found which instruct the GOP type order of frames/ enable the ipb partitions?

There is a Encoder Setting for 720p, 1080i, and 1080p in the GH2 which allow for example, Encoder Setting 1 720p = 1 to 3

When = 1 (Intra), when = 2 (Intra and P frames only) when = 3 (Full IPB - ie with B frames)

However, when = 1 and the GOP length parameter is > 1 the pic_order_count can go awry, likewise if Encoder Setting 1 720p = 2 or 3 and the GOP is set to = 1 (for Intra) the i frame pic_order is all over the place resulting in playback wobbles.


in-loop deblocking does exactly as it says - it smooths the relationship of side-by-side blocks, with scaling matrices you can actually improve the luma /chroma of the low & hi frequencies. Hence the numbers top left lower than bottom right range in the matrix.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 16, 2013, 04:34:50 PM
There is a setting for how many reference frames to use... I have not tried 2 or 6 in there yet... default is 3, unless in all-I. I got that idea some time last night. Maybe can get IPP somehow. Also, seems i frame written twice at the start in most videos.

I think canon actually does IBPP, IBPP. Just 3 makes IPPIPP. I'll make some more with different settings like rate control or vbr with 8x8 flag forced and auto.

There is a setting to set SPS/PPS directly, I don't know if it includes all/any flags. Besides that have to hack the encoder code directly.

Here is a plain old rate control vid:

http://www.filedropper.com/mvi8982

Also still had issue in one vid with frame skip/drop. Maybe I need to dump to card after 9 frames not 6. The short gop did help a bunch. I took 3 vids in succession. last 2 are fine, the 3rd one is the one uploaded in previous post. The 1st had drops.

* I can make IPP too now.. going longer produces a crash, will try to patch and see if I can make 6 ref frames or different patterns.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: driftwood on April 16, 2013, 10:11:23 PM
I analysed the MVI_9218.mov file and had to rip out the annexb stuff using ffmpeg to read it in codecvisa. The strange thing was I saw Slice 0 = B frame, Slice 1 = B frame, Slice 2 = IRD (first Intra reference frame) and the rest wouldn't open. Was that mov file generated with some of the recent changes?

Can you set it to provide a picture parameter set (pps) for every slice/frame?

You only need 2 ref frames to begin with. Get everything else working first!

You said "Just 3 makes IPPIPP." There must be another encoder setting somewhere to enable B frames so that you can do ibb in the 3GOP?

Send me/upload as many variable mov recordings a s you can and I will analyse them
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 16, 2013, 10:32:50 PM
I think I mis-typed that.

Its either IPP or IBB... IPP seems to skip more.

Right now porting to 113 and having issues so we'll be back shortly... I hope :)
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: driftwood on April 16, 2013, 10:37:12 PM
Hang on, I just re-read your earlier post - are you saying the 5DmkIII encoder is the same as the Texas Instruments TMS320DM365 H.264 Encoder?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 16, 2013, 11:15:12 PM
Close... very similar design. Canon changed some parameters. Like initqp of -1 worked and I got that from the docs.


I'm on a nightly build from March 14th, I don't get any errors showing when loading an ini, but I'm seeing no changes to recordings either.


I think my little jaunt into 113 answered this riddle... if you're loading configs and no changes are taking place there is a possible explanation. 113 5d3 should be same as 113 6D... was there a 5d3 112?  It seems canon has disabled this mode now. So now have to find a way to enable it to fix 5d3 (if really disabled) and 113 (6D)
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 17, 2013, 08:00:47 AM
Quote from: 1% on April 16, 2013, 11:15:12 PM
I think my little jaunt into 113 answered this riddle...

That's good.  I was getting worried I was just stupid.  I tried copying the files exactly as in your 6D folder upload, and all manner of other stuff, and it just wasn't working.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 17, 2013, 05:37:16 PM

    gui_stop_menu();
    call("IVAParamMode", CARD_DRIVE "ML/H264.ini");
    NotifyBox(2000, "%s", 0x4da10);


This is how 5d3 loads a config... so you have to rename to H264.ini... try it that way.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 18, 2013, 02:11:38 AM
Quote from: 1% on April 17, 2013, 05:37:16 PM

    gui_stop_menu();
    call("IVAParamMode", CARD_DRIVE "ML/H264.ini");
    NotifyBox(2000, "%s", 0x4da10);


This is how 5d3 loads a config... so you have to rename to H264.ini... try it that way.

I've tried that, also with lower case H, copied into different folders, copied onto both cards.  I built the latest nightly also.

Any chance you can add some feedback confirmation to the code.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 18, 2013, 02:45:43 AM
If it shows on the screen then its "loaded"... There is a memory location that should turn to 1 when in ivaparam mode.

0x4da10 is where the name gets stored in both the actual function and for ML.

I have to find/update all of these for 5d3. Or its disabled/broken. I am planning on porting the 6D br file to 5d3 but I have no way to test... I guess I can build you a bin once I properly check the firmware... Have to find all of the asserts to patch and rest of memory locations. But... I have the FW so its doable.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 18, 2013, 03:10:44 AM
After selecting the option, I get 'ML/H264.ini' overlayed on screen.  After about 1 second, all ML overlays disappear and immediately re-appear.

Does the same thing if I have no ini files on the card.

Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 18, 2013, 04:09:35 AM
Needs some checking it looks like. Or they disabled it. I'll see what happens with 6D 113
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 22, 2013, 07:40:22 PM
Ok, appears to be working on 6D 113 so here is a 5d3 built off repo today with br6d instead of br5d3. I think I found all locations correctly but try in C-Mode first so you can reset easily if anything went wrong:

It loads configs like this: call("IVAParamMode", CARD_DRIVE "ML/cbr.ini");

So I think that is the card you have ML on... Try both A/B if nothing happens.

http://www.qfpost.com/file/d?g=RTSntPz1v (http://www.qfpost.com/file/d?g=RTSntPz1v)

BTW.. not sure if GOP is working as it didn't work on 6D with same location g3ggo found... I think he found where it selects B/P/I frame instead of "gop". I don't want to alter video parameters as I have no camera to test.

*fixed the cache hacks which I #ifdef'd but didn't update. I can't find the correct location for one of the player hacks but thats not so serious.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 23, 2013, 12:31:39 AM
Maybe I'm stupid, and/or my understanding of how it all works is flawed.  I can't seem to make bitrate changes via ini.  It has to be loading and making a difference though as bitrate viewer shows differences in max bitrate and bitrate pumping where it's either flushing the frames to fast, or not fast enough.  I'm really confused.

Changing 'config loaded' to disabled leads to [1] idle: stack overflow.  Canon dialog and picture freeze, ML dialog artifacts.  Battery has to be pulled.

Changing 'Autoload Conf' to override and adjusting InitQP is where the money is at.  All-I and IPB can both be pushed to 180mb/s (holy fucking crap :) time for a lexar 1000x) on my sandisk 60MB/s cf.

Pushing bitrate to far in IPB mode leads to [7] task main: stack overflow, battery pull.  Pushing to far in All-I leads to canon dialog buffer full, movie stop (no freeze).

Flush rate working good.  Stops bitrate pumping :)

GOP does not appear to be working as reported by mediainfo.  Using InitQP adjustments means files can no longer be opened in bitrate viewer.  In the link below is InitQP 45, Flush 30, GOP 24.

https://dl.dropboxusercontent.com/u/34113196/Camera%20stuff/D46A6572.MOV

edit:  Great time for an update 1%.  I just realized the 5D3 got RAW histogram too :)
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 23, 2013, 01:06:36 AM
I made an oops: I set enco mode to wrong location... it was overwriting a pointer not mode :(

http://www.qfpost.com/file/d?g=WivCFe2se (http://www.qfpost.com/file/d?g=WivCFe2se)

Have some raw spot meter too :)

New StreamEye will analyze... if you recontainerize they will analyze too.

Also, you can set autoload to off and adjust the default profile 4.1 config. But configs should load with correct location.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 23, 2013, 01:46:48 AM
Crash on config disable gone.
Can still make it crash on massive bitrates in IPB.

Changing Autoload Conf (override) to (off) still allows changing of InitQP.  You have to exit Q menu and load config or else it stays in override even with the option set to off.

Both of these are giving level 4.1 with the same bitrate

Transform8x8Flag = 2
Profile = 100
Level = 41
BitRate = 120000000
EntropyCodingMode = 1
IntraPicInitQP = -1
InterPicInitQP = -1
QpOffsetForB = 0
MinQpI = 1
MinQpP = 1
MinQpB = 1
MaxQpI = 26
MaxQpP = 26
MaxQpB = 26
MinBitrate = 40000000
MaxBitrate = 120000000
SarWidth = 0
SarHeight = 0
AspectRatioIdc = 1
VideoFmtAndVspFlag = 81
VideoFullRangeFlag = 1
TimingInfoPresentFlag = 0
RateControlEnable = 1


Transform8x8Flag = 2
Profile = 100
Level = 51
BitRate = 550000000
EntropyCodingMode = 1
IntraPicInitQP = 5
InterPicInitQP = 5
QpOffsetForB = 0
MinQpI = 1
MinQpP = 1
MinQpB = 1
MaxQpI = 13
MaxQpP = 13
MaxQpB = 13
MinBitrate = 120000000
MaxBitrate = 550000000
SarWidth = 0
SarHeight = 0
AspectRatioIdc = 1
VideoFmtAndVspFlag = 81
VideoFullRangeFlag = 1
TimingInfoPresentFlag = 0
RateControlEnable = 0
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 23, 2013, 01:58:16 AM
Its weird that profile changing isn't taking. Try All_I with 4.1 or downgrading 4.1 to 4.0.

Did the CABAC setting take?

That is Fixed QP5 vs Rate control, Should be different. Unless canon neutered configs on 5d3 somehow.

And yes, menu has to be reloaded to re-read whether config is loaded or not.

Also is it showing the correct drive on the screen when it loads a config? Not sure what ML takes as CARD_DRIVE

It should work Like:

Autoload ON: Set initqp or BR and changes don't take effect, read from config.
Override: Loads Config + Overrides InitQP + Target Rate if set
Autoload OFF: pref from a cold boot- change INITQP and Target, should apply when you leave menu

It may show an initQP/BR set with autoload or when it hasn't updated yet. Then should write OFF over it.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 23, 2013, 02:15:15 AM
IPB always level 4.1
All-I always level 5.1

No CABAC :(

Quote from: 1% on April 23, 2013, 01:58:16 AM
Also is it showing the correct drive on the screen when it loads a config? Not sure what ML takes as CARD_DRIVE

If I create a ML folder on the CF card to place the ini files.  It complains about having ML on both cards and won't load.

edit:  It doesn't show a drive.  Just "ML/whatever.ini"
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 23, 2013, 02:29:41 AM
Its weird configs aren't working on 5d3, if it says config loaded in the menu the location must be getting set to 1.

You'd have to check logs and see if ivaparam mode messages are in them. The text on the screen is just a return so whether it loaded or not it will say what you tried to load.

If 5d3 can record QP1 to the CF card without jerking or defective frames then that is theoretically the best quality. The only other parameters that seem to matter are CABAC vs CAVLC and transform 8x8 flag. The profile is only loosely enforced and doubly so without any rate control mechanism active. All frames will be QP1... there is another thing we can do but I have to reverse it... set SPS/PPS directly. But its complicated since its 1 function and has to set P/I/B and "0" "1" frames. It should work if the QP/Target locations worked tho.

Also gop can be altered with video parameters but I don't know if the lenght on 5d3 is the same as 6D.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 23, 2013, 02:55:35 AM
Quote from: 1% on April 23, 2013, 02:29:41 AM
You'd have to check logs and see if ivaparam mode messages are in them.

I'm not sure how to do this.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 23, 2013, 03:23:08 AM
PROP_VIDEO_MODE is 0x80000039 .. you can look with property browser.. need the lenght to try changing gop.


http://www.qfpost.com/file/d?g=vv13nWgb7 (http://www.qfpost.com/file/d?g=vv13nWgb7)

Has debug mesage logging on don't click me.

Hit it once to start log and again to save it. Saves to root of the card like 1MB.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 23, 2013, 03:38:16 AM
https://dl.dropboxusercontent.com/u/34113196/Camera%20stuff/DM.LOG

I searched the log for 'iva' and nothing was found.

I was in override mode.  Switched that off, selected VBR mode and loaded config.  Recorded small sample.  Switched to CBR mode and loaded config and recorded small sample.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 23, 2013, 04:25:18 AM
Thing with debug log is that canon dumps a ton of messages and its easy to overwrite stuff. Don't even record a movie, just start and hit load config manually like 10 times.

This is what it looks like:

encdrwrapSetIVAParamMode:B:/ML/rc.ini

If this isn't showing maybe have to call it by address on 5d3?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 23, 2013, 04:48:15 AM
encdrwrapSetIVAParamMode:ML/cbr.ini

Missing the B:/ which I assume is the card drive.

https://dl.dropboxusercontent.com/u/34113196/Camera%20stuff/DM1.LOG
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 23, 2013, 05:13:58 AM
Quote from: 1% on April 23, 2013, 01:58:16 AM
It should work Like:

Autoload ON: Set initqp or BR and changes don't take effect, read from config.
Override: Loads Config + Overrides InitQP + Target Rate if set
Autoload OFF: pref from a cold boot- change INITQP and Target, should apply when you leave menu

It may show an initQP/BR set with autoload or when it hasn't updated yet. Then should write OFF over it.

Can't comment on the reading from config, but the only way to adjust Initqp is with Override.  In any other mode, Bitrate and InitQP are greyed out and can't be adjusted.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 23, 2013, 06:07:55 AM
Set config to disable or set autoload to off & reboot. You have to reload the menu to refresh it.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: a1ex on April 23, 2013, 09:06:19 AM
On 5D3, you need to say A:/ or B:/. The FIO calls have a wrapper that autodetects the drive, but here you need to write it explicitely.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 23, 2013, 09:41:43 AM
Might be worth having a user option to select.  Or detect which drive ML is installed on and run from there.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: a1ex on April 23, 2013, 09:49:57 AM
It already does that, but for regular file I/O calls, not for hacks.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 23, 2013, 05:57:31 PM
http://www.qfpost.com/file/d?g=mF0qzViJY (http://www.qfpost.com/file/d?g=mF0qzViJY)

Ok, now loads configs from B:/.  It was turning on IVA mode since you couldn't change QP/BR but drive was not being selected. Thanks!
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 24, 2013, 12:24:15 AM
Yep, that did it.

I'll do some testing today and report back.

edit:  The ability to edit ini files in camera would be cool.  Am I asking to much?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 24, 2013, 01:42:24 AM
I made 1 recording using this ini.
Just realized as I was copy pasting that bitrate and maxbitrate weren't the same.  Maybe 1 to many 0's in max bitrate ;-)

Transform8x8Flag = 2
Profile = 100
Level = 51
BitRate = 800000000
EntropyCodingMode = 1
IntraPicInitQP = -1
InterPicInitQP = -1
QpOffsetForB = 0
MinQpI = 1
MinQpP = 1
MinQpB = 1
MaxQpI = 26
MaxQpP = 26
MaxQpB = 26
MinBitrate = 100000000
MaxBitrate = 8000000000
SarWidth = 0
SarHeight = 0
AspectRatioIdc = 1
VideoFmtAndVspFlag = 81
VideoFullRangeFlag = 1
TimingInfoPresentFlag = 0
RateControlEnable = 1


That worked for the first recording, then adjusted shutter timing to get 23.976 shutter.

I got 2 crashlogs.  This one and another the same except for task MovieRecorder
lv:1

ASSERT: 0
at ./MovieRecorder/EncDrvWrapper.c:1865, task MovieRecorder
lv:0 mode:3


Magic Lantern version : v2.3.NEXT.2013Apr23.5D3113
Mercurial changeset   : badff1b15d04 (unified) tip
Built on 2013-04-23 15:51:36 by user@D610.
Free Memory  : 253K + 3838K


And https://dl.dropboxusercontent.com/u/34113196/Camera%20stuff/LOG000.LOG

With bitrate from the above ini changed to 8000000000 to match maxbitrate, first time hit record camera, crash, battery pull.  Put battery in and try again, err 70.  Guess it doesn't like stupid bitrate.

When I muxed a file into mkv, mkvtoolnix reported,
Warning: 'O:\DCIM\100EOS5D\D46A6713.MOV': This file contains at least one frame with a negative timecode. All timecodes will be adjusted by 00:00:00.125 so that none is negative anymore.

Bitrate viewer still complained trying to open the file and I have no access to streameye :-(

Using vbr config and switching to override mode without loading the config again, crash.

https://dl.dropboxusercontent.com/u/34113196/Camera%20stuff/LOG001.LOG

Using vbr config, switch to override, load config and all works good.  Restart camera still in override mode and crash on record, remove battery and try again err 70.  Same crash logs as before, not sure if the log000 are the same.

https://dl.dropboxusercontent.com/u/34113196/Camera%20stuff/LOG002.LOG

Tried changing the GOP, mediainfo reports standard GOP, but I don't really trust it, and I can't think of any other way I have to check.
Here is a small file with GOP 3 to check.
https://dl.dropboxusercontent.com/u/34113196/Camera%20stuff/D46A6721.MOV


Using the below ini, push record, LV and ML overlays all keep working fine, you can't stop recording, nothing it written to card and ML says error writing, restart, and restarts.

Transform8x8Flag = 2
Profile = 100
Level = 51
BitRate = 500000000
EntropyCodingMode = 1
IntraPicInitQP = -1
InterPicInitQP = -1
QpOffsetForB = 2
MinQpI = 1
MinQpP = 1
MinQpB = 1
MaxQpI = 15
MaxQpP = 15
MaxQpB = 15
MinBitrate = 50000000
MaxBitrate = 200000000
SarWidth = 0
SarHeight = 0
AspectRatioIdc = 1
VideoFmtAndVspFlag = 81
VideoFullRangeFlag = 1
TimingInfoPresentFlag = 0
RateControlEnable = 1


At some stage in the future, I wonder if it's possible to put some sanity checks in.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 24, 2013, 02:55:30 AM
QuoteAm I asking to much?

I'm a bit of a shitty coder but there may be a way to change the parameters on the fly. An in camera text editor would take care of it too. There is also probably a better way to handle all of this.

Give it a second to load up at startup, don't hit record right away. Go in and out of the menu and check that loaded says yes. I may have to patch a few more errors for 5D3 too, thought I got all the asserts. Once you have decent settings its usually good to go on startup at least from my experience with 6D.

Gop is probably going to have to be done from video parameters property. It didn't work on 6D till I did it that way.

Min/Max only apply to VBR mode. The other modes ignore it. We can add some sanity checks when we figure out what's good. I think max 500Mb/s in IPB and 300 in all I. Its just a target rate anyway, if it can't generate it at QP1 it can't go any higher.

If you override a dynamic config it won't flip QPs, just record fixed QP.

Any stutter or green frames, etc? I had that problem at QP1 with flush rate but it was generating 400Mb/s

Quote[LVKAO] Unfortunately Bad Face

This is amusing... maybe related to why the not writing error happens. I have to investigate it more rather than just resetting after 10s.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 24, 2013, 03:13:52 AM
Quote from: 1% on April 24, 2013, 02:55:30 AM
Any stutter or green frames, etc? I had that problem at QP1 with flush rate but it was generating 400Mb/s

Haven't noticed any stuttering.  Green frames only once with as you say QP1 and flush rate set to stop bitrate pumping.  Was only the first second or 2 iirc.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 24, 2013, 03:49:04 AM
Makes me wish I had cf :) Maybe those errors are write errors if 5d3 isn't experiencing them. I though the encoder wasn't keeping up but I think the encoder just can't write out fast enough.

That assert is:
FF1EA0F4 arString = %s , pString = %s

It looks like a file reading error.

I can patch it but it could be from how you edit the files. Some text editors screw things up. I used notepad++ on windows and pluma on linux. I had problems with notepad for some reason.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 24, 2013, 06:33:01 AM
I found the frame skips.  When the buffer doesn't flush fast enough.  It must be related to CABAC (processor load) also.
I can push close to 200MB/s with CAVLC, but with CABAC I get to around 150MB/s and it shits itself.  Tried playing with a heap of flush rate options but doesn't appear to be any difference, which is what makes me think it's processor related.

Just to clarify, if I push to hard in CAVLC it either stops recording or errors out.  But I can adjust the flush rate to get that high without frame loss (skipping).
I can push CABAC high enough to stop or error also, but only around 150MB/s before it cracks the shits and starts throwing frames away.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 25, 2013, 02:38:33 PM
Can I get some pointers how I can merge your changes with the source to build my own?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 25, 2013, 03:44:48 PM
Swap bitrate 5d3.c for bitrate-6d in the makefile

https://bitbucket.org/OtherOnePercent/tragic-lantern-6d/raw/7caa1b2946342c74ddd9abc0c2132776108045b2/src/bitrate-6d.c
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 25, 2013, 04:52:02 PM
Cheers, that did the trick.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 29, 2013, 04:28:48 PM
Just in case anyone needs this: 5d3 w/ br and TCC. I dunno if LV rec should have been recompiled: I guess test it.

http://www.qfpost.com/file/d?g=4uFsXjjgm
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 29, 2013, 04:41:33 PM
What's TCC?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 29, 2013, 05:26:00 PM
Its like picoC but faster. Lets you run the LV recorder.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 30, 2013, 02:23:25 AM
te'
  [E] failed to link modules
Unloading modules...


Then

tcc: error: undefined symbol 'Packmem_PopEDmacForMemorySuite'
  [E] failed to link modules
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 30, 2013, 02:27:32 AM
I guess g3gg0 forgot to rename the stub in main. I fixed it on 6D first time I saw it... will have to make it again.

BTW magic.sym is a text file... I think you could probably rename it if you don't want to wait.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on April 30, 2013, 02:37:47 AM
Cheers 1%, I'll take a look at getting it working myself.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on April 30, 2013, 02:39:23 AM
G3ggo made a new recorder today. Have to fix it for 6D and then I can roll out new bins for both. I have 2 more stubs to find on 6D.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: driftwood on June 09, 2013, 12:14:10 AM
Guys where can I find your last h264 configs for MKIII before you moved over to RAW?

Also looking at a recent bitrate-6d.c

Can you refine/ fill in the missing '?' MKIII's video_modes;-

video_mode[0] = ?
video_mode[1] = mode/size ?
video_mode[2] =FPS
video_mode[3] = GOP settings
video_mode[4]= ?
video_mode[5] = Ref frames (M=Header) How many max ref frames? (eg 2 ?)

Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on June 09, 2013, 01:44:00 AM
https://bitbucket.org/OtherOnePercent/tragic-lantern-6d/downloads/H264inis.zip



/*    30I  30IPB   24I 24IPB 60I 60IPB 30IPB
0 -    0 0 0   0 0 0
1 -    0    0 0 0   1 1 2   Mode/Size
2 -    1e   1e 18 18   3C 3C 1e FPS
3 -    1 f 1 c   1 f f GOP
4 -    0 0 0 0   0 0 0
5 -    1 3 1 3   1 3 3 Ref Frames (M= in Header)
*/


0 and 4 are 0 so ????
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: driftwood on June 09, 2013, 02:52:20 AM
Ta.  :)
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on June 09, 2013, 06:46:06 AM
Da?

I guess best way would be to find what is linked to the missing values in FW.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: driftwood on June 10, 2013, 12:43:53 AM
1% Have you made a provision yet for entering matrix values for the 4x4s/and two 8x8s once switched on?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on June 10, 2013, 12:53:07 AM
I had a problem with those.. the video would come out black. Only had success with forced 8x8 transforms but I don't know if that was better than letting it chose.

Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: driftwood on June 11, 2013, 04:12:53 AM
slowly going thru all the history of testing ML h264 on mkIII and reading up on all the threads. Looks like a better look of the FW is needed.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: asombrir on August 05, 2013, 05:09:19 PM
I am trying to get a grasp on the encoder/bitrate options for the 6D. Can someone help me a little. I read some on using CBR config select. What is the rate control config select? And on the autoload conf, I am lost on what to do. Left it on override, what does turning it on or off do? I ordered a VAF filter for my 6D so I want to know what I am doing with the encoder options before it gets here. I read what all I can find, but a lot the options for other camera models are not found (at least for me) on the current build. Sorry if these are relatively simple questions, any help much appreciated.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on August 28, 2013, 08:13:40 PM
Its pretty easy:

Config select - Choses which h264 ini to load
Autoload - load chosen config at startup (for convenience)

Override - override the init QP and target rate on either selected config or the default eeko encoder if no config is loaded.

Quoteut a lot the options for other camera models are not found (at least for me) on the current buil

Yep, they don't exist.

I just load the rate control and go with that since really hardcore rates + flush rate can drop frames as the encoder is overloaded. For the first time we can write faster than the IC can encode.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: asombrir on August 28, 2013, 09:24:19 PM
Thanks you @1%, I had been wondering why those options were not available and felt like I did not understand the options there to choose from. I will try it again now.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: asombrir on August 31, 2013, 01:47:55 PM
@1%, what are some of your preferred settings? I am specifically wondering how to best utilize the configure select and what bit rate numbers are actually the most successful with the 6D. I am using it some to try and understand, but for lack of being able to find any information I am specifically curious as to what settings you are using. Looking at boards for other camera models usually has me more confused trying to understand the details of what I am doing. I had been doing this. config:cbr fixed qp, autoload:override and then messed with various bit rate numbers. I did not realize then I might have been doing it properly (or closer than I had thought) a couple weeks back.

Once I understand all this I want to make a how to video so maybe it will help the next new 6D ML user. Learning to film in raw was no problem, now I want to learn what else I can do successfully with ML. Thank you for any help.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on August 31, 2013, 08:38:36 PM
I usually load the RC config as is in IPB mode 24fps.

For fixed QP I pick something like 10-15.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: asombrir on September 05, 2013, 11:02:34 PM
Thanks again 1%, that helped me some as well. Been messing with it for the last two days just testing settings. Trying to decide if I want to shoot this gig tomorrow in raw or cranked bitrate. These new sandisk extremes are getting me a little better write with raw, The new 80mb ones, Had no trouble with writing the encoder settings.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: asombrir on September 08, 2013, 01:58:12 PM
Well I ran all day for my gig using the encoder set on 15 bit rate, I stayed on the configure select: rate control and had it set on the IPB on the canon side. I had a couple small hiccups, but nothing major. One of my older sandisk extreme 40mb cards would not record at all on encoder (for some reason it was fine recording raw). But both of my newer 80mb sandisk cards did great on these settings. One of the 32g cards did the freeze once and no recording for a second. I shut it off and on and it was fine after. Overall it was nice and I am more than happy with the results. Thanks again for helping me get going on this.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: manniac on September 19, 2013, 03:36:57 AM
I'm trying to get my 5D3 read the h264.ini file to increase bitrates on my mov files. (I do not want RAW. I need H264.)

Unfortunately there is little information on how this works. This thread seemed to be the only one that I found, but allthough I read through every single post and tried out different versions of h264.ini files, I could not get it to work. I put the file in ML/h264.ini and selected "Load h264.ini". I'm not sure if the file was actually loaded or if it is in the right place. I just don't know how to find out IF it was loaded...
I use the latest nightly build (19.09.2013)

Can anyone please tell me, what do I have to do to make the 5D3 record at a higher bitrate? Your help would be greatly appreciated! :)
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: manniac on September 28, 2013, 01:04:20 AM
Does anyone have an answer for me, please? :)
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on September 28, 2013, 01:40:59 AM
You can modify the 5DIII bitrate file... the paths were messed up when this came up for me or compile off my repo, its more advanced anyway. If you read from the beginning, 5DIII write > what the encoder can output for once.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: manniac on September 28, 2013, 02:06:10 AM
Hey 1%!
Thanks for your answer!

I used the exact code of your first post and saved it in ML/h264.ini
I then recorded a 10s clip.
Next I loaded ML/H264.ini
Now I recorded a second 10s clip.

There were no differences in size or quality of the two files. Shouldn't the second file be bigger and have better quality?
I also tried changing the parameters, but none made a difference.

What am I doing wrong?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on September 28, 2013, 03:10:52 AM
Your not doing anything wrong, just config loading on 5DIII is broken, it tells you the name but never loads the file.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: manniac on September 28, 2013, 03:13:11 AM
I see :(
How can it be fixed? Can anyone fix it?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on September 28, 2013, 04:16:36 AM
I guess hard set the path:

ie
call("IVAParamMode", "A:/ML/cbr.ini");
A:/ CF
B:/ SD

Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: manniac on September 28, 2013, 08:07:12 PM
 :o Unfortunately I don't understand..
I'm not a programmer (not a good one, at least).
Can I do anything without changing and compiling the source code?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on September 28, 2013, 08:27:55 PM
Maybe dig up the old builds I made for 5DIII but I don't think they had raw.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: manniac on September 29, 2013, 01:53:53 AM
Using old builds will not help me, because, as you said, they don't have raw - which I also need.
I'm trying to compile this thing myself now - because I need bitrate changes on my 5D3.

Unfortunately I ran into a problem with the compiler, which i have to set up first..

I installed everything on my win7 machine as described here: http://www.magiclantern.fm/forum/index.php?topic=2899.msg14021#msg14021
(I used gcc version 4.7.2 and also changed the  according settings in the makefile.user)
The installation seemed to be successful.

Then i did a "make clean" and a "make 5D3".
This is what I got:

$ make 5D3
make -C  ../platform/5D3.113
make[1]: Entering directory `/home/manniac/magic-lantern/platform/5D3.113'
[ VERSION  ]   ../../platform/5D3.113/version.bin
[ CPP      ]   magiclantern.lds
[ AS       ]   ../../platform/5D3.113/stubs.o
[ VERSION  ]   ../../platform/5D3.113/version.c
[ CC       ]   version.o
[ CC       ]   boot-hack.o
[ CC       ]   mem.o
../../src/mem.c: In function 'memcheck_remove':
../../src/mem.c:409:49: warning: assignment makes integer from pointer without a cast [enabled by default]
[ CC       ]   ico.o
[ CC       ]   edmac.o
[ CC       ]   menu.o
../../src/menu.c: In function 'menu_post_display':
../../src/menu.c:2394:24: warning: initialization makes pointer from integer without a cast [enabled by default]
[ CC       ]   debug.o
[ CC       ]   cfn.o
[ CC       ]   gui.o
[ CC       ]   picstyle.o
[ CC       ]   exmem.o
[ CC       ]   bmp.o
[ CC       ]   rbf_font.o
[ CC       ]   config.o
[ CC       ]   stdio.o
[ CC       ]   bitrate-5d3.o
[ CC       ]   lcdsensor.o
[ CC       ]   tweaks.o
[ CC       ]   lens.o
[ CC       ]   property.o
[ CC       ]   propvalues.o
[ CC       ]   gui-common.o
[ CC       ]   chdk-gui_draw.o
[ CC       ]   movtweaks.o
[ CC       ]   menuhelp.o
[ CC       ]   menuindex.o
[ CC       ]   focus.o
[ CC       ]   notify_box.o
[ CC       ]   dialog_test.o
[ CC       ]   vram.o
../../src/vram.c: In function 'vram_redirect_lv_buffer':
../../src/vram.c:581:35: warning: assignment makes integer from pointer without a cast [enabled by default]
[ CC       ]   aj_port.o
[ CC       ]   fps-engio.o
[ CC       ]   shoot.o
../../src/shoot.c:4608:6: warning: conflicting types for 'set_interval_index' [enabled by default]
../../src/shoot.c:464:9: note: previous implicit declaration of 'set_interval_index' was here
[ CC       ]   hdr.o
[ CC       ]   lv-img-engio.o
[ CC       ]   state-object.o
[ CC       ]   tasks.o
[ CC       ]   vsync-lite.o
[ CC       ]   tskmon.o
[ CC       ]   battery.o
[ CC       ]   imgconv.o
[ CC       ]   histogram.o
[ CC       ]   falsecolor.o
[ CC       ]   audio-ak.o
[ CC       ]   zebra.o
[ CC       ]   beep.o
[ CC       ]   crop-mode-hack.o
[ CC       ]   ph_info_disp.o
[ CC       ]   flexinfo.o
[ CC       ]   fileprefix.o
[ CC       ]   console.o
[ CC       ]   tcc-glue.o
make -C ../../tcc
make[2]: Entering directory `/home/manniac/magic-lantern/tcc'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/home/manniac/magic-lantern/tcc'
[ CC       ]   module.o
[ CC       ]   video_hacks.o
[ CC       ]   fio-5d3.o
[ CC       ]   misc.o
[ CC       ]   afma.o
[ CC       ]   raw.o
[ CC       ]   chdk-dng.o
[ CC       ]   edmac-memcpy.o
[ CC       ]   asm.o
[ AR       ]   strrchr.o
[ AR       ]   dietlibc.a
[ AR       ]   lib_a-setjmp.o
[ AR       ]   newlib-libc.a
[ LD       ]   magiclantern
c:/program files/cygwin64/home/manniac/arm-toolchain472/bin/../lib/gcc/arm-none-eabi/4.7.2\libgcc.a(unwind-arm.o): In function `unwind_phase2':
C:\msys\1.0\home\yagarto\gcc-build\arm-none-eabi\libgcc/../../../gcc-4.7.2/libgcc/unwind-arm-common.inc:289: undefined reference to `abort'
c:/program files/cygwin64/home/manniac/arm-toolchain472/bin/../lib/gcc/arm-none-eabi/4.7.2\libgcc.a(unwind-arm.o): In function `__gnu_Unwind_Resume':
C:\msys\1.0\home\yagarto\gcc-build\arm-none-eabi\libgcc/../../../gcc-4.7.2/libgcc/unwind-arm-common.inc:487: undefined reference to `abort'
C:\msys\1.0\home\yagarto\gcc-build\arm-none-eabi\libgcc/../../../gcc-4.7.2/libgcc/unwind-arm-common.inc:505: undefined reference to `abort'
c:/program files/cygwin64/home/manniac/arm-toolchain472/bin/../lib/gcc/arm-none-eabi/4.7.2\libgcc.a(pr-support.o): In function `_Unwind_GetDataRelBase':
C:\msys\1.0\home\yagarto\gcc-build\arm-none-eabi\libgcc/../../../gcc-4.7.2/libgcc/config/arm/pr-support.c:394: undefined reference to `abort'
c:/program files/cygwin64/home/manniac/arm-toolchain472/bin/../lib/gcc/arm-none-eabi/4.7.2\libgcc.a(pr-support.o): In function `_Unwind_GetTextRelBase':
C:\msys\1.0\home\yagarto\gcc-build\arm-none-eabi\libgcc/../../../gcc-4.7.2/libgcc/config/arm/pr-support.c:400: undefined reference to `abort'
collect2.exe: error: ld returned 1 exit status
../../src/Makefile.src:176: recipe for target `magiclantern' failed
make[1]: *** [magiclantern] Error 1
make[1]: Leaving directory `/home/manniac/magic-lantern/platform/5D3.113'
Makefile:33: recipe for target `5D3' failed
make: *** [5D3] Error 2


Everything looks good, but in the end the compiler fails and I have no idea why. :/
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on September 29, 2013, 03:50:46 AM
I think the problem is yagarto. I can compile using cygwin/msys.. I think thats the preffered route. Also if you have space/bandwidth there is a virtual machine image lurking around here with the toolchain set up.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: RenatoPhoto on September 29, 2013, 03:56:22 AM
The easy way:
Quick Guide and Solutions for VirtualBox
http://www.magiclantern.fm/forum/index.php?topic=7579.0
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: manniac on September 29, 2013, 04:35:19 AM
thanks, I will give virtualbox a try - but to be honest with you: I read the installation instructions before and they seemed even more complicated than cygwin :)) also: 1.3 GB? :-OOOO
Anyway, I'll try and let you know if it worked..
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: manniac on September 29, 2013, 06:55:13 AM
Virtualbox now works for me, and I got the bitrate thing running. Thanks!
the only strange thing is: all fonts in ML are terribly big now..

I still have one question: Is there a reason, why you don't change
call("IVAParamMode", CARD_DRIVE "ML/H264.ini");
to
call("IVAParamMode", "B:/ML/H264.ini");
in bitrate-5d3.c ?

wouldn't that be better anyway, so people can use it?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on September 29, 2013, 07:13:29 AM
copy new fonts to ML/fonts

For me on SD cams its B:/
For 5d3 I guess can be A:/ or b:/, however you run ML.

In my port the 6D stuff runs on 5DIII minus the gop control (prop changing, I'm not comfortable adding without testing)
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: marekk on February 07, 2014, 12:21:14 PM
Hi.. I've just switched from 60D to 5D3 and I would like to record some videos in h264 with max bitrate. I've found 1% post with some ini files, also replaced CARDDRIVE with B: letter in bitrate-5d3.c file. I tested it with rc.ini file and bitrate is much better now (around 9-10MB/s). Maybe someone found the best stable settings for 5d3 with max bitrate and quality ? thanks in advance for your help.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: ouuzi on March 02, 2014, 07:42:05 PM
I am also interested about this.Can you help us out?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on March 02, 2014, 08:10:03 PM
If the config is really loaded you'll get better rates on IPB and similar rates on all-I. Remember the indicators are in megabits, if you're getting 9 megabits something loaded wrong.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: tjaja on March 02, 2014, 08:34:32 PM
Learning to compile is the way offcourse but does someone have a working file for the 5d3? I dont care if it is the newest version just one where i can modify and load the ini.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: a1ex on March 02, 2014, 08:40:25 PM
I've updated the 5D3 code to load the INI file (should be in next nightly, but you will have to add the ini file yourself). This should have been a pull request.

I didn't try it.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: kgv5 on March 02, 2014, 08:51:12 PM
@Marekk, Did you see any difference between stock h264 and the high bitrate one?

Quote from: marekk on February 07, 2014, 12:21:14 PM
Hi.. I've just switched from 60D to 5D3 and I would like to record some videos in h264 with max bitrate. I've found 1% post with some ini files, also replaced CARDDRIVE with B: letter in bitrate-5d3.c file. I tested it with rc.ini file and bitrate is much better now (around 9-10MB/s). Maybe someone found the best stable settings for 5d3 with max bitrate and quality ? thanks in advance for your help.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: tjaja on March 02, 2014, 09:23:17 PM
Thnx A1ex!
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on March 02, 2014, 09:28:10 PM
Also FYI you may not be able to get some configurations without patches. If you set something like profile and get an error 70 then you know at least its loading the config.

Average on safe RC for me is 60-70Mb/s IPB... stock is 24Mb/s or less.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: ouuzi on March 02, 2014, 09:50:09 PM
Is there an improvement with these settings?which file you recommend for the 5d?
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on March 02, 2014, 10:24:37 PM
I've used the RC mainly. Its fairly predictable and consistent. Remember I have no 5DIII, what I would to to test this is actually compile off my repo wth the 6D bitrate controls so you have all the patches.

You can configure it from garbled 1Mb/s mess up to where the video is 400Mb/s and has problems recording/playing back.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: tjaja on March 03, 2014, 03:05:10 AM
I got an error 70 when changing the maxbitrate and targeted bitrate to 180000000 the first time, but when rebooting and loading it again it didnt crash.
So it is working on the nightly 3-3-2014. Just had to create a h264.ini, copy the settings in it, and put it in ML folder.
So easy I could do it.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: Audionut on March 03, 2014, 04:14:15 AM
Quote from: 1% on March 02, 2014, 10:24:37 PM
Remember I have no 5DIII, what I would to to test this is actually compile off my repo wth the 6D bitrate controls so you have all the patches.

The last time I tried (probably a month or more ago), it wouldn't compile.  I immediately put it on the back burner because the photo stuff with ADTG was more interesting.

I'll have a better look at it later today.




Compiled 5D3.123 with iso research.  Using the rc.ini file from here (http://www.magiclantern.fm/forum/index.php?topic=4124.msg48436#msg48436), renamed to H264.ini

Loading the ini file worked fine :)
Pressing record caused a crash requiring battery pull.

ASSERT: 0
at ./MovieRecorder/EncDrvWrapper.c:1931, task MovieRecorder
lv:0 mode:3


Magic Lantern version : v2.3.NEXT.2014Mar03.5D3123
Mercurial changeset   : d5486956e2bb (test) tip
Built on 2014-03-03 04:43:33 UTC by magiclantern@magiclantern-VirtualBox.
Free Memory  : 149K + 3919K


https://dl.dropboxusercontent.com/u/34113196/LOG000.LOG
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: kgv5 on March 03, 2014, 08:52:24 PM
The same but i have managed to record some h264 footage with ini loaded. I had many crashes with battery out though.

EDIT: i have used rc.ini (and renamed to h264.ini) from 1% H264inis.zip.
Recorded 2 clips: according to mediainfo the stock one had 52mbit, with ini loaded 73mbit.

I will make some further tests.

Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on March 03, 2014, 10:08:11 PM
Yea, those have to be all patched out. I only had it going on 5DIII 1.1.3.. they didn't want *too* much tweaking with the encoder. You can get by without patches following what I found in the first few posts when editing the config.
Title: Re: 5d3/6D IVA Params Hacking. The new BR control on FF digic V.
Post by: 1% on March 05, 2014, 08:14:46 PM
Compare the configs I had posted up in my repo... each one is a different mode, rc/vbr/cbr. I've been using those. The encoders between the two are the same.

And then test! seriously, so few people tried it out, there wasn't too much feedback.