function [ vlcStream ] = vlc( runSymbols )
% huffman table --> take each combination and encode in a stream
getTheGlobals;
global d15a;
global d15b;
global d16a;
global d16b;
global d17a;
global d17b;
rows = size(runSymbols);
% Col 1 = run length
% Col 2 = level
runLength = runSymbols(:, 1);
level = runSymbols(:, 2);
ESCAPE_CODE = '000001';
END_SEQ = '10';
vlcStream = [];
%% Find row which has the keypair
for i = 1:rows
[tf, index]=ismember(d15a, runSymbols(i,:), 'rows');
row = find(index);
if ~isempty(row) % If found in table 15
s = sign(level(i)) < 0;
data = sprintf('%s%d', d15b{row}, s);
else % Go to tables 16/17
% Find row in RL tables
[tf, index] = ismember(d16a, runLength(i), 'rows');
row_length = find(index);
% Find row in Levels tables
[tf, index] = ismember(d17a, level(i), 'rows');
row_level = find(index);
% Concatenate with Escape code
data = sprintf('%s%s%s',ESCAPE_CODE, d16b{row_length}, d17b{row_level} );
end
% Add to stream
vlcStream = [vlcStream data];
end
% EOB
vlcStream = [ vlcStream END_SEQ];
end
Comments
0 B
|👍
/👎
0 B
|👍
/👎