📄 encode.c
字号:
fr_ps->header->tc_alloc[i] = 0; } else if (center == 3) /* && matrix != 3 */ { /* 3/2 Phantom Center coding */ for (i = 0; i < 8; i++) { if (((20 * log10(max_sc[3][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC) { if (max_sc[6][i] < max_sc[4][i]) fr_ps->header->tc_alloc[i] = 5; else fr_ps->header->tc_alloc[i] = 3; } else if (((20 * log10(max_sc[4][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC) fr_ps->header->tc_alloc[i] = 4; else fr_ps->header->tc_alloc[i] = 0; } for (i = 8; i < 12; i++) { for (k = 2; k < 7; k++) { min2[k][i] = 0.0; for (l = (sb_groups[i-1] + 1); l <= sb_groups[i]; l++) min2[k][i] += max_sc[k][l]; min2[k][i] = min2[k][i] / (sb_groups[i] - sb_groups[i-1]); } if (((20 * log10(min2[3][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC) { if (min2[6][i] < min2[4][i]) fr_ps->header->tc_alloc[i] = 5; else fr_ps->header->tc_alloc[i] = 3; } else if (((20 * log10(min2[4][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC) fr_ps->header->tc_alloc[i] = 4; else fr_ps->header->tc_alloc[i] = 0; } } else { /* 3/2 no Phantom Center coding */ for (i = 0; i < 8; i++) { if (((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC) { if (max_sc[6][i] < max_sc[5][i]) min = 6; else if (max_sc[6][i] == max_sc[5][i]) { if (max_sc[3][i] <= max_sc[5][i]) min = 5; else min = 6; } else min = 5; } else if (((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC) { min = 6; /* 01/03/1995 JMZ Simplification */ } else { min = 2; } switch (min) { case 5: if (max_sc[4][i] <= max_sc[6][i]) /* left front,Rs*/ fr_ps->header->tc_alloc[i] = 1; else fr_ps->header->tc_alloc[i] = 7; /*R*/ break; case 6: if (max_sc[3][i] <= max_sc[5][i]) /* right front,Ls*/ fr_ps->header->tc_alloc[i] = 2; else fr_ps->header->tc_alloc[i] = 6; /* L */ break; case 2: if (((20 * log10(max_sc[3][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC) { if (max_sc[4][i] <= max_sc[6][i]) fr_ps->header->tc_alloc[i] = 3; else fr_ps->header->tc_alloc[i] = 5; } else { if (((20 * log10(max_sc[4][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC) fr_ps->header->tc_alloc[i] = 4; else fr_ps->header->tc_alloc[i] = 0; } break; } } for (i = 8; i < 12; i++) /*taking the average scalefactor of each sb-group*/ { for (k = 2; k < 7; k++) { min2[k][i] = 0.0; for (l = (sb_groups[i-1] + 1); l <= sb_groups[i]; l++) min2[k][i] += max_sc[k][l]; min2[k][i] = min2[k][i] / (sb_groups[i] - sb_groups[i-1]); } if (((20 * log10(min2[2][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC) { if (min2[6][i] < min2[5][i]) min = 6; else if (min2[6][i] == min2[5][i]) { if (min2[3][i] <= min2[5][i]) min = 5; else min = 6; } else min = 5; } else if (((20 * log10(min2[2][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC) { min = 6; /* 01/03/1995 JMZ Simplification */ } else { min = 2; } switch (min) { case 5: if (min2[4][i] <= min2[6][i]) /* left front,Rs*/ fr_ps->header->tc_alloc[i] = 1; else fr_ps->header->tc_alloc[i] = 7; /*R*/ break; case 6: if (min2[3][i] <= min2[5][i]) /* right front,Ls*/ fr_ps->header->tc_alloc[i] = 2; else fr_ps->header->tc_alloc[i] = 6; /* L */ break; case 2: if (((20 * log10(min2[3][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC) { if (min2[4][i] <= min2[6][i]) fr_ps->header->tc_alloc[i] = 3; else fr_ps->header->tc_alloc[i] = 5; } else { if (((20 * log10(min2[4][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC) fr_ps->header->tc_alloc[i] = 4; else fr_ps->header->tc_alloc[i] = 0; } break; } } } } /* 01/03/1995 JMZ Configuration 3/1 */ if (surround == 1 && center != 0) { /* if (matrix == 3) ->tc_alloc = 0 else if (center == 3) ->tc_alloc = 0,3,4 else if (matrix == 2) ->tc_alloc = 0,1,2,3,4,5 else ->tc_alloc = 0,1,2,3,4 */ if (matrix == 3) { for (i = 0; i < 12; i++) fr_ps->header->tc_alloc[i] = 0; } else if (center == 3) /* && matrix != 3 */ { /* 3/1 Phantom Center coding */ for (i = 0; i < 8; i++) { if (((20 * log10(max_sc[3][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC) { if (max_sc[6][i] < max_sc[5][i]) fr_ps->header->tc_alloc[i] = 4; else fr_ps->header->tc_alloc[i] = 3; } else if (((20 * log10(max_sc[3][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC) fr_ps->header->tc_alloc[i] = 4; else fr_ps->header->tc_alloc[i] = 0; } for (i = 8; i < 12; i++) { for (k = 2; k < 7; k++) { min2[k][i] = 0.0; for (l = (sb_groups[i-1] + 1); l <= sb_groups[i]; l++) min2[k][i] += max_sc[k][l]; min2[k][i] = min2[k][i] / (sb_groups[i] - sb_groups[i-1]); } if (((20 * log10(min2[3][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC) { if (min2[6][i] < min2[5][i]) fr_ps->header->tc_alloc[i] = 4; else fr_ps->header->tc_alloc[i] = 3; } else if (((20 * log10(min2[3][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC) fr_ps->header->tc_alloc[i] = 4; else fr_ps->header->tc_alloc[i] = 0; } } else/* if(matrix==2) { } else*/ { /* 3/1 no Phantom Center coding */ for (i = 0; i < 8; i++) { if (((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC) { if (max_sc[6][i] < max_sc[5][i]) min = 6; else min = 5; } else if (((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC) min = 6; else min = 2; switch (min) { case 5: fr_ps->header->tc_alloc[i] = 1; break; case 6: fr_ps->header->tc_alloc[i] = 2; break; case 2: if (((20 * log10(max_sc[3][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC) { if (max_sc[6][i] <= max_sc[5][i]) fr_ps->header->tc_alloc[i] = 4; else fr_ps->header->tc_alloc[i] = 3; } else { if (((20 * log10(max_sc[3][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC) fr_ps->header->tc_alloc[i] = 4; else fr_ps->header->tc_alloc[i] = 0; } break; } } for (i = 8; i < 12; i++) { for (k = 2; k < 7; k++) { min2[k][i] = 0.0; for (l = (sb_groups[i-1] + 1); l <= sb_groups[i]; l++) min2[k][i] += max_sc[k][l]; min2[k][i] = min2[k][i] / (sb_groups[i] - sb_groups[i-1]); } if (((20 * log10(min2[2][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC) { if (min2[6][i] < min2[5][i]) min = 6; else min = 5; } else if (((20 * log10(min2[2][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC) min = 6; else min = 2; switch (min) { case 5: fr_ps->header->tc_alloc[i] = 1; break; case 6: fr_ps->header->tc_alloc[i] = 2; break; case 2: if (((20 * log10(min2[3][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC) { if (min2[6][i] <= min2[5][i]) fr_ps->header->tc_alloc[i] = 4; else fr_ps->header->tc_alloc[i] = 3; } else { if (((20 * log10(min2[3][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC) fr_ps->header->tc_alloc[i] = 4; else fr_ps->header->tc_alloc[i] = 0; } break; } } } } /* 01/03/1995 JMZ Configuration 3/0 (+2/0) */ if (center != 0 && (surround == 3 || surround == 0)) { if (matrix == 3 || center == 3) { for (i = 0; i < 12; i++) fr_ps->header->tc_alloc[i] = 0; }/* 02/02/97 FdB no matrix == 2 allowed for 3/0 else if (matrix == 2) { for(i = 0; i < 8; i++) { if(((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC) { if(max_sc[6][i] < max_sc[5][i]) fr_ps->header->tc_alloc[i] = 2; else fr_ps->header->tc_alloc[i] = 1; } else if(((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC) fr_ps->header->tc_alloc[i] = 2; else fr_ps->header->tc_alloc[i] = 0; } for(i = 8; i < 12; i++) for(k = 2; k < 7; k++) min2[k][i] = 0.0; for(i = 8; i < 12; i++) { for(k = 2; k < 7; k++) { for(l = (sb_groups[i-1] + 1); l <= sb_groups[i]; l++) { min2[k][i] += max_sc[k][l]; } min2[k][i] = min2[k][i] / (sb_groups[i] - sb_groups[i-1]); } if(((20 * log10(min2[2][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC) { if(min2[6][i] < min2[5][i]) fr_ps->header->tc_alloc[i] = 2; else fr_ps->header->tc_alloc[i] = 1; } else if(((20 * log10(min2[2][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC) fr_ps->header->tc_alloc[i] = 2; else fr_ps->header->tc_alloc[i] = 0; } }*/ else { for (i = 0; i < 8; i++) { if (((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC) { if (max_sc[6][i] < max_sc[5][i]) min = 6; else min = 5; } else if (((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC) min = 6; else min = 2; switch (min) { case 5: fr_ps->header->tc_alloc[i] = 1; break; case 6: fr_ps->header->tc_alloc[i] = 2; break; case 2: fr_ps->header->tc_alloc[i] = 0; break; } } for (i = 8; i < 12; i++) { for (k = 2; k < 7; k++) { min2[k][i] = 0.0; for (l = (sb_groups[i-1] + 1); l <= sb_groups[i]; l++) min2[k][i] += max_sc[k][l]; min2[k][i] = min2[k][i] / (sb_groups[i] - sb_groups[i-1]); } if (((20 * log10(min2[2][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC) { if (min2[6][i] < min2[5][i]) min = 6; else min = 5; } else if (((20 * log10(min2[2][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC) min = 6; else min = 2; switch (min) { case 5: fr_ps->header->tc_alloc[i] = 1; break; case 6: fr_ps->header->tc_alloc[i] = 2; break; case
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -