Browse Source

Save T's in the struct

master
Apostolos Fanakis 6 years ago
parent
commit
4ccc9d1c03
  1. 39
      Level_3/AACoder3.m
  2. BIN
      Level_3/encoded.mat

39
Level_3/AACoder3.m

@ -39,6 +39,15 @@ function AACSeq3 = AACoder3(fNameIn, fnameAACoded)
% Declares constant window type
WINDOW_TYPE = 'KBD';
% Declares constant numbers of bands for long and short windows
LONG_WINDOW_NUMBER_OF_BANDS = 69;
SHORT_WINDOW_NUMBER_OF_BANDS = 42;
% Declares persistent variable holding the TNS tables and initializes if empty
persistent TNSTables;
if isempty(TNSTables)
TNSTables = load('TableB219.mat');
end
% Reads the audio file
[originalAudioData, ~] = audioread(fNameIn);
@ -111,8 +120,34 @@ function AACSeq3 = AACoder3(fNameIn, fnameAACoded)
[SL, sfcL, GL] = AACquantizer(frameF(:, 1), frameTypes{i+1}, SMRL);
[SR, sfcR, GR] = AACquantizer(frameF(:, 2), frameTypes{i+1}, SMRR);
TL = 0;
TR = 0;
if ~strcmp(frameTypes{i+1}, 'ESH')
TL(LONG_WINDOW_NUMBER_OF_BANDS, 1) = 0;
TR(LONG_WINDOW_NUMBER_OF_BANDS, 1) = 0;
for band = 1:LONG_WINDOW_NUMBER_OF_BANDS
frameWlow = TNSTables.B219a(band, 2) + 1;
frameWhigh = TNSTables.B219a(band, 3) + 1;
subFrameF = frameF(frameWlow:frameWhigh);
TL(band) = sumsqr(subFrameF) ./ SMRL(band);
TR(band) = sumsqr(subFrameF) ./ SMRR(band);
end
plot(TL);
else
TL(SHORT_WINDOW_NUMBER_OF_BANDS, 1) = 0;
TR(SHORT_WINDOW_NUMBER_OF_BANDS, 1) = 0;
for subFrameIndex = 1:8
currFrameStart = (subFrameIndex - 1) * 128 + 1;
currFrameStop = currFrameStart + 127;
subFrame = frameF(currFrameStart:currFrameStop);
for band = 1:SHORT_WINDOW_NUMBER_OF_BANDS
frameWlow = TNSTables.B219b(band, 2);
frameWhigh = TNSTables.B219b(band, 3);
subFrameF = subFrame(frameWlow + 1:frameWhigh + 1);
TL(band, subFrameIndex) = sumsqr(subFrameF) ./ SMRL(band);
TR(band, subFrameIndex) = sumsqr(subFrameF) ./ SMRR(band);
end
end
end
[streamL, huffcodebookL] = encodeHuff(SL, huffLUT);
[streamR, huffcodebookR] = encodeHuff(SR, huffLUT);

BIN
Level_3/encoded.mat

Binary file not shown.
Loading…
Cancel
Save