After
this post of tebasuna51 i decided to check all possible DTS-HD 7.1-layouts. I suppose that for all configurations Arcsoft makes correction for standard location of speakers in a 7.1 audio system and i suppose that we should use Wave_Format_Ex with MaskChannel = 0x063F for all layouts. I calculated the coefficients for every mix (some test samples were used and i have a DTS-HD M.A.S.).
I do not know the BD on which layouts from 1 till 5 were used but it can appear in the future.
=============================================
Results:
0).
Not compliant with Wave_Format_Ex; eac3to/arcsoft decodes it to Standart Mask = 0x063F (FL FR FC LFE BL BR SL SR). Mix:
Code:
FL = 0.68039*L FR = 0.68039*R
FC = 0.68039*C LFE = 0.68039*LFE
SL = 0.60065*Ls SR = 0.60065*Rs
BL = 0.31953*Ls + 0.68039*Lsr BR = 0.31953*Rs + 0.68039*Rsr
In other words (in dBs terms):
Code:
FL = L(-3.3 dB) FR = R(-3.3 dB)
FC = C(-3.3 dB) LFE = LFE(-3.3 dB)
SL = Ls(-4.4 dB) SR = Rs(-4.4 dB)
BL = Ls(-9.9 dB) + Lsr(-3.3 dB) BR = Rs(-9.9 dB) + Rsr(-3.3 dB)
The two conditions were satisfied:
- Decoder avoids overflow: sum of the coefficients for every speaker less or equal 1.
- Decoder preserves acoustic power contribution (~0.4629) for every speaker:
Code:
L: 0.68039^2 = 0.4629 LFE: 0.68039^2 = 0.4629
R: 0.68039^2 = 0.4629 C: 0.68039^2 = 0.4629
Ls: 0.31953^2 + 0.60065^2 = 0.4629 Rs: 0.31953^2 + 0.60065^2 = 0.4629
Lsr: 0.68039^2 = 0.4629 Rsr: 0.68039^2 = 0.4629
So.. this is correct mix.
1).
Not compliant with Wave_Format_Ex; eac3to/arcsoft decodes it to Standart Mask = 0x063F (FL FR FC LFE BL BR SL SR). Mix:
Code:
FL = 0.58579*L + 0.41421*Lw FR = 0.58579*R + 0.41421*Rw
FC = 0.58579*C LFE = 0.58579*LFE
SL = 0.51713*Ls + 0.41421*Lw SR = 0.51713*Rs + 0.41421*Rw
BL = 0.27514*Ls BR = 0.27514*Rs
In other words (in dBs terms):
Code:
FL = L(-4.6 dB) + Lw(-7.6 dB) FR = R(-4.6 dB) + Rw(-7.6 dB)
FC = C(-4.6 dB) LFE = LFE(-4.6 dB)
SL = Ls(-5.7 dB) + Lw(-7.6 dB) SR = Rs(-5.7 dB) + Rw(-7.6 dB)
BL = Ls(-11.2 dB) BR = Rs(-11.2 dB)
The two conditions were satisfied:
- Decoder avoids overflow: sum of the coefficients for every speaker less or equal 1.
- Decoder preserves acoustic power contribution (~0.3431) for every speaker:
Code:
L: 0.58579^2 = 0.3431 LFE: 0.58579^2 = 0.3431
R: 0.58579^2 = 0.3431 C: 0.58579^2 = 0.3431
Lw: 0.41421^2 + 0.41421^2 = 0.3431 Ls: 0.51713^2 + 0.27514^2 = 0.3431
Rw: 0.41421^2 + 0.41421^2 = 0.3431 Rs: 0.51713^2 + 0.27514^2 = 0.3431
I do not give a similar calculations for the other layouts below, you can double-check the figures yourselves
This is correct mix too.
2).
This layout is compatible with Wave_Format_Ex with Mask = 0x560F (FL FR FC LF SL SR TFL TFR), but eac3to/arcsoft decodes it to Mask = 0x063F. Mix:
Code:
FL = 0.58579*L + 0.41421*Lh FR = 0.58579*R + 0.41421*Rh
FC = 0.58579*C LFE = 0.58579*LFE
SL = 0.51713*Ls SR = 0.51713*Rs
BL = 0.27514*Ls BR = 0.27514*Rs
In other words (in dBs terms):
Code:
FL = L(-4.6 dB) + Lh(-7.6 dB) FR = R(-4.6 dB) + Rh(-7.6 dB)
FC = C(-4.6 dB) LFE = LFE(-4.6 dB)
SL = Ls(-5.7 dB) SR = Rs(-5.7 dB)
BL = Ls(-11.2 dB) BR = Rs(-11.2 dB)
Decoder avoids overflow and preserves acoustic power contribution (~0.3431) for all speakers except Lh, Rh (~0.1716).
3).
Not compliant with Wave_Format_Ex; eac3to/arcsoft decodes it to Standart Mask = 0x063F (FL FR FC LFE BL BR SL SR). Mix:
Code:
FL = 0.62897*L FR = 0.62897*R
FC = 0.62897*C LFE = 0.62897*LFE
SL = 0.55525*Ls + 0.44474*Lhs SR = 0.55525*Rs + 0.44474*Rhs
BL = 0.29543*Ls BR = 0.29543*Rs
In other words (in dBs terms):
Code:
FL = L(-4.0 dB) FR = R(-4.0 dB)
FC = C(-4.0 dB) LFE = LFE(-4.0 dB)
SL = Ls(-5.1 dB) + Lhs(-7.0 dB) SR = Rs(-5.1 dB) + Rhs(-7.0 dB)
BL = Ls(-10.6 dB) BR = Rs(-10.6 dB)
Decoder avoids overflow and preserves acoustic power contribution (~0.3956) for all speakers except Rhs, Lhs (~0.1978).
4).
Compliant with Wave_Format_Ex, is decoded by eac3to/arcsoft to Mask = 0x0F0F (FL FR FC LFE BC SL SR TC).
Code:
FL = 0.58579*L FR = 0.58579*R
FC = 0.62897*C + 0.41421*Ch LFE = 0.58579*LFE
SL = 0.27514*Ls + 0.41421*Cs SR = 0.27514*Rs + 0.41421*Cs
BC = 0.51713*Ls TC = 0.51713*Rs
In other words (in dBs terms):
Code:
FL = L(-4.6 dB) FR = R(-4.6 dB)
FC = C(-4.0 dB) + Ch(-7.6 dB) LFE = LFE(-4.6 dB)
SL = Ls(-11.2 dB) + Cs(-7.6 dB) SR = Rs(-11.2 dB) + Cs(-7.6 dB)
BC = Ls(-5.7 dB) TC = Rs(-5.7 dB)
Decoder avoids overflow and preserves acoustic power contribution (~0.3433) for all speakers except C, Ch (~0.3956 and ~0.1716).
Looks like ArcSoft decodes as for standard MaskChannel = 0x063F and eac3to uses incorrect Mask.
After such decoding we need rename channels: SL->BL, SR->BR, BC->SL, TC->SR and it will be for "standard location of speakers in a 7.1 audio system".
5).
Compliant with Wave_Format_Ex, is decoded by eac3to/arcsoft to Mask = 0x270F (FL FR FC LF BC SL SR TFC).
Code:
FL = 0.72317*L FR = 0.72317*R
FC = 0.72317*C LFE = 0.72317*LFE
SL = 0.33967*Ls + 0.51135*Cs SR = 0.33967*Rs + 0.51135*Cs
BC = 0.63841*Ls + 0.36158*Oh TFC = 0.63841*Rs + 0.36158*Oh
In other words (in dBs terms):
Code:
FL = L(-2.8 dB) FR = R(-2.8 dB)
FC = C(-2.8 dB) LFE = LFE(-2.8 dB)
SL = Ls(-9.4 dB) + Cs(-5.8 dB) SR = Rs(-9.4 dB) + Cs(-5.8 dB)
BC = Ls(-3.9 dB) + Oh(-8.8 dB) TFC = Rs(-3.9 dB) + Oh(-8.8 dB)
Decoder avoids overflow and preserves acoustic power contribution (~0.5230) for all speakers except Oh (~0.2615).
Again, looks like ArcSoft decodes as for standard MaskChannel = 0x063F and eac3to uses incorrect Mask.
After such decoding we need rename channels: SL->BL, SR->BR, BC->SL, TFC->SR and it will be for "standard location of speakers in a 7.1 audio system".
=============================================
Conclusion:
For all layouts Arcsoft makes correction for standard location of speakers in a 7.1 audio system and i suppose that we should use Wave_Format_Ex with MaskChannel = 0x063F for all layouts and remap (rename) channels for some layouts.
BTW, ArcSoft 1.1.0.0 can decode "normal setup" (-logdts: $84b), but it can't decode 16-bit non-standart 7.1-layouts correctly (noise in FL and FR channels). ArcSoft 1.1.0.7 and 1.1.0.8 decodes all 7.1-layouts correctly.