亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? perform_arith_fixed.m

?? signal procesing toolbox
?? M
字號:
function y = perform_arith_fixed(x, h, n)% perform_arith_fixed - arithmetic coding% % Coding:%   y = perform_arith_fixed(x, h, n);% Decoding:%   x = perform_arith_fixed(y, h);%%   Copyright (c) 2008 Gabriel Peyreif nargin==2    dir=1;elseif nargin==3    dir=-1;else    error('Wrong number of arumgnets');endh = round(h*100000); if dir==1    y = arithenco(x,h);else    y = arithdeco(x, h, n);endfunction code = arithenco(seq, counts)%ARITHENCO Encode a sequence of symbols using arithmetic coding.%   CODE = ARITHENCO(SEQ, COUNTS) generates binary arithmetic code %   corresponding to the sequence of symbols specified in the vector SEQ. %   The vector COUNTS contains the symbol counts (the number of times each%   symbol of the source's alphabet occurs in a test data set) and represents%   the source's statistics.%%   Example: %     Consider a source whose alphabet is {x, y, z}. A 177-symbol test data %     set from the source contains 29 x's, 48 y's and 100 z's. To encode the %     sequence yzxzz, use these commands:%%       seq = [2 3 1 3 3];%       counts = [29 48 100];%       code = arithenco(seq, counts) %                   %   See also ARITHDECO.%   Copyright 1996-2002 The MathWorks, Inc.%   $Revision: 1.3 $ $Date: 2002/06/17 12:22:10 $%   References:%         [1] Sayood, K., Introduction to Data Compression, %         Morgan Kaufmann, 2000, Chapter 4, Section 4.4.3.         % Check the incoming orientation and adjust if necessary[row_s, col_s] = size(seq);if (row_s > 1),    seq = seq.';end[row_c, col_c] = size(counts);if (row_c > 1),    counts = counts.';end% Compute the cumulative counts vector from the counts cum_counts = [0, cumsum(counts)];% Compute the Word Length required.total_count = cum_counts(end);N = ceil(log2(total_count)) + 2;% Initialize the lower and upper bounds.dec_low = 0;dec_up = 2^N-1;E3_count = 0;% Obtain an over estimate for the length of CODE and initialize CODEcode_len = length(seq) * ( ceil(log2(length(counts))) + 2 ) + N;code = zeros(1, code_len);code_index = 1;% Loop for each symbol in SEQfor k = 1:length(seq)    symbol = seq(k);    % Compute the new lower bound    dec_low_new = dec_low + floor( (dec_up-dec_low+1)*cum_counts(symbol+1-1)/total_count );    % Compute the new upper bound    dec_up = dec_low + floor( (dec_up-dec_low+1)*cum_counts(symbol+1)/total_count )-1;    % Update the lower bound    dec_low = dec_low_new;        % Check for E1, E2 or E3 conditions and keep looping as long as they occur.    while( isequal(bitget(dec_low, N), bitget(dec_up, N)) || ...        (isequal(bitget(dec_low, N-1), 1) && isequal(bitget(dec_up, N-1), 0) ) ),                % If it is an E1 or E2 condition,        if isequal(bitget(dec_low, N), bitget(dec_up, N)),            % Get the MSB            b = bitget(dec_low, N);            code(code_index) = b;            code_index = code_index + 1;                    % Left shifts            dec_low = bitshift(dec_low, 1) + 0;            dec_up = bitshift(dec_up, 1) + 1;                        % Check if E3_count is non-zero and transmit appropriate bits            if (E3_count > 0),                % Have to transmit complement of b, E3_count times.                code(code_index:code_index+E3_count-1) = bitcmp(b, 1).*ones(1, E3_count);                code_index = code_index + E3_count;                E3_count = 0;            end            % Reduce to N for next loop            dec_low = bitset(dec_low, N+1, 0);            dec_up  = bitset(dec_up, N+1, 0);                    % Else if it is an E3 condition            elseif ( (isequal(bitget(dec_low, N-1), 1) && ...            isequal(bitget(dec_up, N-1), 0) ) ),                        % Left shifts            dec_low = bitshift(dec_low, 1) + 0;            dec_up  = bitshift(dec_up, 1) + 1;            % Reduce to N for next loop            dec_low = bitset(dec_low, N+1, 0);            dec_up  = bitset(dec_up, N+1, 0);                        % Complement the new MSB of dec_low and dec_up            dec_low = bitxor(dec_low, 2^(N-1) );            dec_up  = bitxor(dec_up, 2^(N-1) );                        % Increment E3_count to keep track of number of times E3 condition is hit.            E3_count = E3_count+1;        end    endend % Terminate encodingbin_low = de2bi(dec_low, N, 'left-msb');if E3_count==0,    % Just transmit the final value of the lower bound bin_low           code(code_index:code_index + N - 1) = bin_low;    code_index = code_index + N;else   % Transmit the MSB of bin_low.    b = bin_low(1);   code(code_index) = b;   code_index = code_index + 1;      % Then transmit complement of b (MSB of bin_low), E3_count times.    code(code_index:code_index+E3_count-1) = bitcmp(b, 1).*ones(1, E3_count);   code_index = code_index + E3_count;   % Then transmit the remaining bits of bin_low   code(code_index:code_index+N-2) = bin_low(2:N);   code_index = code_index + N - 1;end          % Output only the filled valuescode = code(1:code_index-1);% Set the same output orientation as seqif (row_s > 1)    code = code.';end%----------------------------------------------------------function eStr = errorchk(seq, counts)% Function for validating the input parameters. eStr.ecode = 0;eStr.emsg = '';% Check to make sure a vector has been entered as input and not a matrixif (length(find(size(seq)==1)) ~= 1)    eStr.emsg = ['The symbol sequence parameter must be a vector of positive ',...                 'finite integers.'];    eStr.ecode = 1; return;    end% Check to make sure a character array is not specified for SEQif ischar(seq)    eStr.emsg = ['The symbol sequence parameter must be a vector of positive ',...                 'finite integers.'];    eStr.ecode = 1; return;    end% Check to make sure that finite positive integer values (non-complex) are % entered for SEQif ~all(seq > 0) || ~all(isfinite(seq)) || ~isequal(seq, round(seq)) || ...    ~isreal(seq)    eStr.emsg = ['The symbol sequence parameter must be a vector of positive ',...                 'finite integers.'];    eStr.ecode = 1; return;    endif length(find(size(counts)==1)) ~= 1    eStr.emsg = ['The symbol counts parameter must be a vector of positive ',...                 'finite integers.'];    eStr.ecode = 1; return;    end% Check to make sure that finite positive integer values (non-complex) are% entered for COUNTSif ~all(counts > 0) || ~all(isfinite(counts)) || ~isequal(counts, round(counts)) || ...     ~isreal(counts)    eStr.emsg = ['The symbol counts parameter must be a vector of positive ',...                 'finite integers.'];    eStr.ecode = 1; return;    end% Check to ensure that the maximum value in the SEQ vector is less than or equal% to the length of the counts vector COUNTS.if max(seq) > length(counts)    eStr.emsg = ['The symbol sequence parameter can take values only between',...                 ' 1 and the length of the symbol counts parameter.'];    eStr.ecode = 1; return;    end% [EOF]function dseq = arithdeco(code, counts, len)%ARITHDECO Decode binary code using arithmetic decoding.%   DSEQ = ARITHDECO(CODE, COUNTS, LEN) decodes the binary arithmetic code%   in the vector CODE (generated using ARITHENCO) to the corresponding%   sequence of symbols. The vector COUNTS contains the symbol counts (the%   number of times each symbol of the source's alphabet occurs in a test%   data set) and represents the source's statistics. LEN is the number of%   symbols to be decoded. %   %   Example: %     Consider a source whose alphabet is {x, y, z}. A 177-symbol test data %     set from the source contains 29 x's, 48 y's and 100 z's. To encode the %     sequence yzxzz, use these commands:%%       seq = [2 3 1 3 3];%       counts = [29 48 100];%       code = arithenco(seq, counts)   %            %     To decode this code (and recover the sequence of  %     symbols it represents) use this command:%            %       dseq = arithdeco(code, counts, 5)%            %   See also ARITHENCO.%   Copyright 1996-2002 The MathWorks, Inc.%   $Revision: 1.2 $ $Date: 2002/04/14 20:12:32 $%   References:%         [1] Sayood, K., Introduction to Data Compression, %         Morgan Kaufmann, 2000, Chapter 4, Section 4.4.3.% Check the incoming orientation and adjust if necessary[row_cd, col_cd] = size(code);if (row_cd > 1),    code = code.';end[row_c, col_c] = size(counts);if (row_c > 1),    counts = counts.';end% Compute the cumulative counts vector from the counts vectorcum_counts = [0, cumsum(counts)];% Compute the Word Length (N) required.total_count = cum_counts(end);N = ceil(log2(total_count)) + 2;% Initialize the lower and upper bounds.dec_low = 0;dec_up = 2^N-1;% Read the first N number of bits into a temporary tag bin_tagbin_tag = code(1:N);dec_tag = bi2de(bin_tag, 'left-msb');% Initialize DSEQdseq = zeros(1,len);dseq_index = 1;k=N;ptr = 0;% This loop runs untill all the symbols are decoded into DSEQwhile (dseq_index <= len)        % Compute dec_tag_new    dec_tag_new =floor( ((dec_tag-dec_low+1)*total_count-1)/(dec_up-dec_low+1) );        % Decode a symbol based on dec_tag_new    ptr = pick(cum_counts, dec_tag_new);        % Update DSEQ by adding the decoded symbol    dseq(dseq_index) = ptr;    dseq_index = dseq_index + 1;        % Compute the new lower bound    dec_low_new = dec_low + floor( (dec_up-dec_low+1)*cum_counts(ptr-1+1)/total_count );        % Compute the new upper bound    dec_up = dec_low + floor( (dec_up-dec_low+1)*cum_counts(ptr+1)/total_count )-1;        % Update the lower bound    dec_low = dec_low_new;        % Check for E1, E2 or E3 conditions and keep looping as long as they occur.     while ( isequal(bitget(dec_low, N), bitget(dec_up, N)) | ...        ( isequal(bitget(dec_low, N-1), 1) & isequal(bitget(dec_up, N-1), 0) ) ),                % Break out if we have finished working with all the bits in CODE        if ( k==length(code) ), break, end;        k = k + 1;        % If it is an E1 or E2 condition, do        if isequal(bitget(dec_low, N), bitget(dec_up, N)),            % Left shifts and update            dec_low = bitshift(dec_low, 1) + 0;            dec_up  = bitshift(dec_up,  1) + 1;            % Left shift and read in code            dec_tag = bitshift(dec_tag, 1) + code(k);            % Reduce to N for next loop            dec_low = bitset(dec_low, N+1, 0);            dec_up  = bitset(dec_up,  N+1, 0);            dec_tag = bitset(dec_tag, N+1, 0);                % Else if it is an E3 condition                elseif ( isequal(bitget(dec_low, N-1), 1) & ...            isequal(bitget(dec_up, N-1), 0) ),            % Left shifts and update            dec_low = bitshift(dec_low, 1) + 0;            dec_up  = bitshift(dec_up,  1) + 1;            % Left shift and read in code            dec_tag = bitshift(dec_tag, 1) + code(k);                        % Reduce to N for next loop            dec_low = bitset(dec_low, N+1, 0);            dec_up  = bitset(dec_up,  N+1, 0);            dec_tag = bitset(dec_tag, N+1, 0);                        % Complement the new MSB of dec_low, dec_up and dec_tag            dec_low = bitxor(dec_low, 2^(N-1) );            dec_up  = bitxor(dec_up,  2^(N-1) );            dec_tag = bitxor(dec_tag, 2^(N-1) );        end    end % end whileend % end while length(dseq)% Set the same output orientation as codeif (row_cd > 1)    dseq = dseq.';end%-------------------------------------------------------------function [ptr] = pick(cum_counts, value);% This internal function is used to find where value is positioned% Check for this case and quickly exitif value == cum_counts(end)    ptr = length(cum_counts)-1;    returnendc = find(cum_counts <= value);ptr = c(end);% EOF

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品女人毛片| 亚洲欧美自拍偷拍色图| 久久蜜桃av一区精品变态类天堂| 久久青草欧美一区二区三区| 中文字幕佐山爱一区二区免费| 性欧美大战久久久久久久久| 国产美女视频一区| 日本高清不卡aⅴ免费网站| 4438成人网| 日韩理论在线观看| 精品一区二区三区在线观看| 色呦呦日韩精品| 久久亚洲影视婷婷| 午夜精品影院在线观看| 成人综合在线网站| 日韩视频一区二区在线观看| 亚洲精品你懂的| 国产精品主播直播| 91麻豆精品国产91久久久久久久久| 国产精品护士白丝一区av| 亚洲成人动漫精品| 99久久99久久久精品齐齐| 精品久久一二三区| 婷婷综合另类小说色区| 91一区二区三区在线观看| 337p日本欧洲亚洲大胆色噜噜| 一区二区三区四区在线播放 | 亚洲欧美日韩中文播放 | 欧美男人的天堂一二区| 美女视频免费一区| 久久国产夜色精品鲁鲁99| 不卡一区在线观看| 欧美成人官网二区| 亚洲一区二区三区在线看| 成人午夜av影视| 亚洲精品一区二区三区福利| 亚洲成人在线观看视频| 色婷婷综合激情| 国产精品乱人伦| 国产乱码一区二区三区| 欧美成人欧美edvon| 五月婷婷激情综合网| 在线中文字幕不卡| 亚洲毛片av在线| av中文字幕亚洲| 中文字幕欧美激情一区| 粉嫩av亚洲一区二区图片| 欧美伊人久久久久久午夜久久久久| 精品久久久久久综合日本欧美| 日韩精品亚洲一区二区三区免费| 欧美亚洲国产一区二区三区va| 玉足女爽爽91| 欧美视频完全免费看| 亚洲va天堂va国产va久| 欧美日韩精品三区| 日韩va欧美va亚洲va久久| 91精品麻豆日日躁夜夜躁| 毛片一区二区三区| 国产三区在线成人av| 成人深夜视频在线观看| 日韩一区日韩二区| 色成年激情久久综合| 亚洲福利电影网| 欧美日本精品一区二区三区| 美国av一区二区| 国产欧美一区二区在线观看| 91丨九色丨蝌蚪富婆spa| 一区二区在线观看视频| 678五月天丁香亚洲综合网| 久色婷婷小香蕉久久| 国产欧美日韩精品一区| 91免费看视频| 日本三级韩国三级欧美三级| 国产日韩欧美在线一区| 色激情天天射综合网| 奇米色一区二区| 国产欧美久久久精品影院| 91成人看片片| 韩国毛片一区二区三区| 18欧美乱大交hd1984| 久久精品国产成人一区二区三区| 欧美美女黄视频| 精品一区二区三区久久| 国产精品福利一区二区三区| 欧美色国产精品| 国产一区二区精品在线观看| 亚洲精品日韩专区silk| 欧美成人一区二区| 99精品热视频| 久久丁香综合五月国产三级网站| 国产精品国产馆在线真实露脸| 欧美另类久久久品| 成人小视频免费在线观看| 图片区日韩欧美亚洲| 亚洲欧美在线另类| 欧美精品一区二区三区久久久| 91在线视频播放| 捆绑调教一区二区三区| 一区二区三区四区在线免费观看 | 一区二区三区欧美激情| 91原创在线视频| 蜜芽一区二区三区| 中文字幕在线观看一区| 精品日韩成人av| 精品视频在线免费观看| 国产福利精品一区二区| 日本不卡高清视频| 亚洲综合在线观看视频| 日本一区二区三区电影| 日韩免费性生活视频播放| 欧美日韩中文字幕精品| 91亚洲精品久久久蜜桃网站 | 国产精品网站在线观看| 欧美一级二级三级乱码| 色成年激情久久综合| 成人国产免费视频| 国产精品一区二区无线| 久草这里只有精品视频| 日本不卡视频一二三区| 香蕉久久夜色精品国产使用方法 | 奇米影视一区二区三区| 天天综合色天天综合| 欧美国产日韩在线观看| 欧美午夜一区二区三区| www.色综合.com| 成人午夜av在线| 粉嫩在线一区二区三区视频| 国产精品一区免费视频| 国产在线精品免费av| 久久99精品久久久久久| 久久电影网站中文字幕| 久久99国产精品久久| 久久精品国产99国产| 久久激情五月婷婷| 91在线高清观看| 成人免费三级在线| 白白色亚洲国产精品| av在线这里只有精品| 色综合一区二区三区| 91丝袜呻吟高潮美腿白嫩在线观看| 99国产精品久久久久久久久久久| 一本到不卡免费一区二区| 在线视频综合导航| 久久精品国产在热久久| 久久精品国产网站| 国产剧情一区二区| 成人中文字幕在线| 99re66热这里只有精品3直播| 一本一道综合狠狠老| 欧美日韩免费观看一区二区三区| 欧美男男青年gay1069videost| 欧美一区二区三区在线看| 2023国产精品自拍| 国产精品久久久久9999吃药| 亚洲精品乱码久久久久久久久| 午夜免费欧美电影| 韩国三级电影一区二区| 99视频精品全部免费在线| 欧美色图在线观看| 精品福利一区二区三区免费视频| 中文在线免费一区三区高中清不卡| 日韩一区在线播放| 日韩精品五月天| 成人一区二区视频| 欧美日韩一区不卡| 久久久久久一二三区| 亚洲激情在线激情| 久久99精品一区二区三区三区| www.日本不卡| 91精品福利在线一区二区三区| 久久久久久亚洲综合影院红桃| 樱花草国产18久久久久| 黄页视频在线91| 在线观看一区日韩| 久久五月婷婷丁香社区| 亚洲一区在线观看视频| 国产又黄又大久久| 欧美日韩精品二区第二页| 亚洲精品在线三区| 亚洲国产日韩一区二区| 国产成人午夜视频| 在线不卡一区二区| 亚洲私人影院在线观看| 韩国一区二区在线观看| 欧美美女一区二区三区| 亚洲欧洲精品一区二区三区不卡| 蜜臀精品一区二区三区在线观看 | 一区二区三区丝袜| 欧美一区二区三区婷婷月色| 日韩欧美国产综合在线一区二区三区 | 国产91在线看| 日韩精品一区二区三区在线播放| 五月婷婷激情综合网| 在线亚洲一区二区| 亚洲免费在线视频| 不卡的av网站| 国产精品高潮久久久久无| 丁香网亚洲国际| 欧美国产成人精品| 国产成人精品三级|