X-Git-Url: http://plrg.eecs.uci.edu/git/?p=IRC.git;a=blobdiff_plain;f=Robust%2Fsrc%2FTests%2FssJava%2Fmp3decoder%2FLayerIIIDecoder.java;h=8714428bb07d9728353fddea7c47c1e4c08cc26b;hp=4ec6a8980fa2dd3af0c34436b1cdaf9875faeaa2;hb=8ba6ffae3e7090c3f0a1693727d1cfc4bd493c03;hpb=228b915898f49d8496fb35619969d2917a17a4e1 diff --git a/Robust/src/Tests/ssJava/mp3decoder/LayerIIIDecoder.java b/Robust/src/Tests/ssJava/mp3decoder/LayerIIIDecoder.java index 4ec6a898..8714428b 100644 --- a/Robust/src/Tests/ssJava/mp3decoder/LayerIIIDecoder.java +++ b/Robust/src/Tests/ssJava/mp3decoder/LayerIIIDecoder.java @@ -47,7 +47,7 @@ // 10th added for get_scale_factors // llth added for decode // @LATTICE("IS1D*,RO= 3; sfb--) { + TERMINATE: for (sfb = 12; sfb >= 3; sfb--) { i = sfBandIndex[sfreq].s[sfb]; lines = sfBandIndex[sfreq].s[sfb + 1] - i; i = (i << 2) - i + (j + 1) * lines - 1; - - while (lines > 0) { + TERMINATE: while (lines > 0) { if (ro[1][i / 18][i % 18] != 0.0f) { // MDM: in java, array access is very slow. // Is quicker to compute div and mod values. @@ -1515,7 +1541,7 @@ final class LayerIIIDecoder implements FrameDecoder { sb = sfBandIndex[sfreq].s[sfb + 1] - temp; i = (temp << 2) - temp + j * sb; - for (; sb > 0; sb--) { + TERMINATE: for (; sb > 0; sb--) { is_pos[i] = scalefac[1].s[j][sfb]; if (is_pos[i] != 7) if (lsf) @@ -1533,8 +1559,7 @@ final class LayerIIIDecoder implements FrameDecoder { temp = sfBandIndex[sfreq].s[11]; sb = sfBandIndex[sfreq].s[12] - temp; i = (temp << 2) - temp + j * sb; - - for (; sb > 0; sb--) { + TERMINATE: for (; sb > 0; sb--) { is_pos[i] = is_pos[sfb]; if (lsf) { @@ -1550,7 +1575,7 @@ final class LayerIIIDecoder implements FrameDecoder { i = 2; ss = 17; sb = -1; - while (i >= 0) { + TERMINATE: while (i >= 0) { if (ro[1][i][ss] != 0.0f) { sb = (i << 4) + (i << 1) + ss; i = -1; @@ -1569,7 +1594,7 @@ final class LayerIIIDecoder implements FrameDecoder { i = sfBandIndex[sfreq].l[i]; for (; sfb < 8; sfb++) { sb = sfBandIndex[sfreq].l[sfb + 1] - sfBandIndex[sfreq].l[sfb]; - for (; sb > 0; sb--) { + TERMINATE: for (; sb > 0; sb--) { is_pos[i] = scalefac[1].l[sfb]; if (is_pos[i] != 7) if (lsf) @@ -1584,12 +1609,11 @@ final class LayerIIIDecoder implements FrameDecoder { for (@LOC("THIS,LayerIIIDecoder.RO1") int j = 0; j < 3; j++) { @LOC("THIS,LayerIIIDecoder.RO1") int sfbcnt; sfbcnt = -1; - for (sfb = 12; sfb >= 0; sfb--) { + TERMINATE: for (sfb = 12; sfb >= 0; sfb--) { temp = sfBandIndex[sfreq].s[sfb]; lines = sfBandIndex[sfreq].s[sfb + 1] - temp; i = (temp << 2) - temp + (j + 1) * lines - 1; - - while (lines > 0) { + TERMINATE: while (lines > 0) { if (ro[1][i / 18][i % 18] != 0.0f) { // MDM: in java, array access is very slow. // Is quicker to compute div and mod values. @@ -1608,7 +1632,7 @@ final class LayerIIIDecoder implements FrameDecoder { temp = sfBandIndex[sfreq].s[sfb]; sb = sfBandIndex[sfreq].s[sfb + 1] - temp; i = (temp << 2) - temp + j * sb; - for (; sb > 0; sb--) { + TERMINATE: for (; sb > 0; sb--) { is_pos[i] = scalefac[1].s[j][sfb]; if (is_pos[i] != 7) if (lsf) @@ -1626,8 +1650,7 @@ final class LayerIIIDecoder implements FrameDecoder { sfb = (temp << 2) - temp + j * sb; sb = sfBandIndex[sfreq].s[12] - temp2; i = (temp2 << 2) - temp2 + j * sb; - - for (; sb > 0; sb--) { + TERMINATE: for (; sb > 0; sb--) { is_pos[i] = is_pos[sfb]; if (lsf) { @@ -1644,7 +1667,7 @@ final class LayerIIIDecoder implements FrameDecoder { i = 31; ss = 17; sb = 0; - while (i >= 0) { + TERMINATE: while (i >= 0) { if (ro[1][i][ss] != 0.0f) { sb = (i << 4) + (i << 1) + ss; i = -1; @@ -1664,7 +1687,7 @@ final class LayerIIIDecoder implements FrameDecoder { i = sfBandIndex[sfreq].l[i]; for (; sfb < 21; sfb++) { sb = sfBandIndex[sfreq].l[sfb + 1] - sfBandIndex[sfreq].l[sfb]; - for (; sb > 0; sb--) { + TERMINATE: for (; sb > 0; sb--) { is_pos[i] = scalefac[1].l[sfb]; if (is_pos[i] != 7) if (lsf) @@ -1675,7 +1698,7 @@ final class LayerIIIDecoder implements FrameDecoder { } } sfb = sfBandIndex[sfreq].l[20]; - for (sb = 576 - sfBandIndex[sfreq].l[21]; (sb > 0) && (i < 576); sb--) { + TERMINATE: for (sb = 576 - sfBandIndex[sfreq].l[21]; (sb > 0) && (i < 576); sb--) { is_pos[i] = is_pos[sfb]; // error here : i >=576 if (lsf) { @@ -1753,10 +1776,10 @@ final class LayerIIIDecoder implements FrameDecoder { for (ss = 0; ss < 8; ss++) { @LOC("THIS,LayerIIIDecoder.SI1") int src_idx1 = sb18 + 17 - ss; @LOC("THIS,LayerIIIDecoder.SI1") int src_idx2 = sb18 + 18 + ss; - @LOC("THIS,LayerIIIDecoder.OUT") float bu = out_1d[src_idx1]; - @LOC("THIS,LayerIIIDecoder.OUT") float bd = out_1d[src_idx2]; - out_1d[src_idx1] = (bu * cs[ss]) - (bd * ca[ss]); - out_1d[src_idx2] = (bd * cs[ss]) + (bu * ca[ss]); + @LOC("THIS,LayerIIIDecoder.OUT") float bu = inter[src_idx1]; + @LOC("THIS,LayerIIIDecoder.OUT") float bd = inter[src_idx2]; + inter[src_idx1] = (bu * cs[ss]) - (bd * ca[ss]); + inter[src_idx2] = (bd * cs[ss]) + (bu * ca[ss]); } } } @@ -1776,32 +1799,32 @@ final class LayerIIIDecoder implements FrameDecoder { private void hybrid(@LOC("THIS,LayerIIIDecoder.SI") int ch, @LOC("THIS,LayerIIIDecoder.SI") int gr) { @LOC("THIS,LayerIIIDecoder.SI1") int bt; - @LOC("SB") int sb18; + @LOC("THIS,LayerIIIDecoder.SI1") int sb18; // gr_info_s gr_info = (si.ch[ch].gr[gr]); //remove alias // @LOC("THIS,LayerIIIDecoder.TS") float[] tsOut; //remove alias // float[][] prvblk; for (sb18 = 0; sb18 < 576; sb18 += 18) { - bt = - ((si.ch[ch].gr[gr].window_switching_flag != 0) - && (si.ch[ch].gr[gr].mixed_block_flag != 0) && (sb18 < 36)) ? 0 - : si.ch[ch].gr[gr].block_type; + if ((si.ch[ch].gr[gr].window_switching_flag != 0) && (si.ch[ch].gr[gr].mixed_block_flag != 0) + && (sb18 < 36)) { + bt = 0; + } else { + bt = si.ch[ch].gr[gr].block_type; + } // tsOut = out_1d; // Modif E.B 02/22/99 - for (@LOC("SB") int cc = 0; cc < 18; cc++) + for (@LOC("THIS,LayerIIIDecoder.SI1") int cc = 0; cc < 18; cc++) tsOutCopy[cc] = out_1d[cc + sb18]; inv_mdct(bt); - for (@LOC("SB") int cc = 0; cc < 18; cc++) + for (@LOC("THIS,LayerIIIDecoder.SI1") int cc = 0; cc < 18; cc++) out_1d[cc + sb18] = tsOutCopy[cc]; // Fin Modif // overlap addition - // prvblk = prevblck; //eliminated unnecessary areas - out_1d[0 + sb18] = rawout[0] + prevblck[ch][sb18 + 0]; prevblck[ch][sb18 + 0] = rawout[18]; out_1d[1 + sb18] = rawout[1] + prevblck[ch][sb18 + 1]; @@ -1844,10 +1867,9 @@ final class LayerIIIDecoder implements FrameDecoder { /** * */ - @LATTICE("THIS