View Single Post
Old 8th January 2011, 14:04   #10899  |  Link
TDiTP_
Registered User
 
Join Date: Jul 2010
Location: Siberia
Posts: 50
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.

Last edited by TDiTP_; 28th December 2011 at 22:09. Reason: add info
TDiTP_ is offline