📄 flush_arithmetic_encoder.m
字号:
function [output_bits] = flush_arithmetic_encoder
global Low High UnderFlow_Bits
global K
MSB2 = bitget(Low, K-1);
OutputBit( MSB2 );
output_bits = 1;
UnderFlow_Bits = UnderFlow_Bits + 1;
while ( UnderFlow_Bits > 0 )
OutputBit( ~MSB2 );
output_bits = output_bits + 1;
UnderFlow_Bits = UnderFlow_Bits - 1;
end
for i=1:16
OutputBit( 0 );
end
return
function OutputBit( bit )
global out_bit_file
out_bit_file.rack = bitset(out_bit_file.rack, out_bit_file.mask, bit);
out_bit_file.mask = out_bit_file.mask - 1;
if ( out_bit_file.mask == 0 )
if ( fwrite( out_bit_file.file, out_bit_file.rack, 'uint8' ) ~= 1 )
fprintf( 'Fatal error in OutputBit!\n' );
else
out_bit_file.rack = uint8(0);
out_bit_file.mask = 8;
end
end
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -