Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Marvin

Pages: 1 [2]
Reverse Engineering / Re: (M)JPEG encoder
« on: September 20, 2012, 07:29:24 PM »
 I guess they did this on purpose to make reverse engineering more difficult...

one off-topic thing, nanomad there is a grammar mistake in your headline "All your websites are belong to us", it should be "All your websites belong to us" or "All your websites are ours"

Reverse Engineering / Re: (M)JPEG encoder
« on: September 20, 2012, 06:31:22 PM »
I believe the code was written by Japanese programmers, "Jukai" is a place in japan (sea of trees), where many people go there and commit suicide. Jukai is a place that's often associated with death.

Just a thought about resolution. Some guys removed the OLPF from their 5d MkIII's and the resolution was much better though obviously more susceptible to moire and aliasing. Has anyone tried this with a lower spec camera? secondhand 550d's are going very cheap these days so might be worth risking?

Removing OLPF won't help much about resolution, it was just an urban legend, those people who removed it have already put it back because it brings significant downsides to the image, such as serious IR pollution, focus shift and dust.

For H264 profiles and levels, here are some information for reference:

With H264 parameters, here is a table that correspond each profile and its value:


66   Baseline
77   Main
88   Extended

(FRExt profies):

100   High
110   High 10bit
122  High 4:2:2
244   High 4:4:4
44    CAVLC 4:4:4 Intra
118  Multiview High Profile
128  Stereo High Profile

IntraProfile = 0/1, Activate Intra Profile for FRExt (0: false, 1: true, e.g. Profile_IDC=110, IntraProfile=1  =>  High 10 Intra Profile)

Levels are very simple, Level_IDC = 51 means 5.1, 41 means 4.1, just take out the dot :-)

Nice job Jason :)

How did you manage to achieve 170Mbps? 600D uses H264 Baseline Profile Level 5.0 if I remember correctly, if you look at the specification, it says maximum datarate is set to 135Mbps.

Anyway If 600D can achieve constant 169Mbps and is stable for a few minutes then I'm very optimistic that 5D Mark III might be able to hit constant 300Mbps in ALL-I (max datarate set by H264 spec)

Let me share with you my findings with the H264 parameters in the .ini file, I did tons of experiments with Alex back in May, during the quiet days after the "Hello World" :-)

I'll start with ALL-I.

Code: [Select]
Transform8x8Flag = 2
Profile = 100
Level = 51

It seems that these parameters can't be changed (ERR70 if modified). Profile 100 and Level 51 means "High Profile, Level 5.1" in H264 specifications, this is even more advanced than standard Bluray codec which is High Profile Level 4.1.

Code: [Select]
BitRate = 90000000
This parameter might interest most of the people here :P yes it can be changed to maximum 300000000, which is 300Mbps (specified in H264 standards), compared to original 90Mbps default by Canon. But please note that this value is currently only a cap and does not keep the video file at this bitrate. More on this later.

Code: [Select]
EntropyCodingMode = 0
Another interesting parameter, there are two modes which are "Context-Adaptive Variable Length Coding (CAVLC), Context-Adaptive Binary Arithmetic Coding (CABAC)". default 0 is CAVLC which is lower encoding efficiency but easier for playback. value of 1 enables CABAC which is said to bring 10%-15% quality increase under the same given bitrate.

Code: [Select]
IntraPicInitQP = 20
InterPicInitQP = 20
QpOffsetForB = 0

can't be changed if I remember correctly, seems related to initial Quantitization Parameter, more on this later...

Code: [Select]
MinQpI = 10
MinQpP = 10
MinQpB = 10
MaxQpI = 51
MaxQpP = 51
MaxQpB = 51

an important set of parameters, these values affect the actual video bitrate, for ALL-I, after numerous ERR70s I found out that the three "MinQp" values can be changed up to 7, and "MaxQp" values can be changed up to 20. QP stands for Quantitization Parameter which is the lower the number the better, a value of "0" means lossless encoding :-)

Video shot with these values changed/unchanged did show a noticeable difference in bitrate. Under the same scene and same exposure, I got 70Mbps compared to 40Mbps with Canon default value. Together with the previous "Bitrate" parameter set to 300Mbps I was able to get 151Mbps under ISO12800 compared to 92Mbps default.

Code: [Select]
MinBitrate = 0
MaxBitrate = 0

can't be changed.

Code: [Select]
SarWidth = 0
SarHeight = 0
AspectRatioIdc = 1
VideoFmtAndVspFlag = 81
VideoFullRangeFlag = 1
TimingInfoPresentFlag = 0

not very important parameters, doesn't affect the video much.

Code: [Select]
RateControlEnable = 2
A mysterious parameter and worth looking into, according to some documents, a value of 0 => CBR, 1 => VBR, 2 = Fixed QP. with 0 I get very small video files from 1Mbps to 5Mbps, 1 gives ERR70, 2 is Canon default which must be Canon's secret of manipulating bitrate.

Code: [Select]
ScalingMatrices = 0
pScalingMatrixAddr[0] = 0
pScalingMatrixAddr[1] = 0
pScalingMatrixAddr[2] = 0
pScalingMatrixAddr[3] = 0
pScalingMatrixAddr[4] = 0
pScalingMatrixAddr[5] = 0

Not sure about the exact meanings but don't seem to affect the video much.

For IPB there is only a few differences.

Code: [Select]
Profile = 100
Level = 41
BitRate = 10000000

IPB uses High Profile Level 4.1, the same as Bluray codec. Bitrate can be changed to maximum 62000000.

Code: [Select]
MinQpI = 10
MinQpP = 10
MinQpB = 10
MaxQpI = 35
MaxQpP = 51
MaxQpB = 51

Alex are you sure these are default values? I don't remember LOL, but for IPB, MinQp and MaxQp can be changed to 6 and 30. resulting bitrate can easily hit 62Mbps which is the upper limit set by H264 specifications.

If you look at the metadata of 5D Mark III's .MOV file, it will tell you that the video is encoded by "EOS encoder", which I think it might be talking to the above parameters directly, if a value is not present, for example, if I change "Profile" to 122 which stands for High 4:2:2 encoding, it will give an ERR70...   or if I change the MinQP to something like 2 or 3, video recording will be stuck at "BUSY".

Hope this information is helpful and can save you some time, good luck folks!

Pages: 1 [2]