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

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

?? encodespiht.m

?? SPIHT coding implementation. using wavelet transforms as a key tool. compression and decoding is don
?? M
字號:
function [n_max, n,out,timeel] = encodeSPIHT(m, max_bits, level)
% encodeSPIHT - SPIHT encoder
%
% parameters:        m - source image
%                    max_bits - maximal bit count on the output
%                    level - transform depth
% outputs:           out - bitstream,
%                    n_max - max. step count
%                    n - last pass info%                    timeel - time elapsed

%-----------   initialization  -----------------

disp(' ');
disp('SPIHT enkoder spusten');

bitctr = 0;
out = 2*ones(1,max_bits - 14);
n_max = floor(log2(abs(max(max(m)'))));
Bits_Header = 0;

%-----------   stream header  ----------------
% image size, max_pass and decomp. depth

out(1,[1 2 3]) = [size(m,1) n_max level]; bitctr = bitctr + 24;
index = 4;
Bits_Header = Bits_Header + 24;

%-----------   LIP, LSP, LIS init   ----------------
temp = [];
timeel = 0;
bandsize = 2.^(log2(size(m, 1)) - level + 1); 
temp1 = 1 : bandsize; 
for i = 1 : bandsize
    temp = [temp; temp1];  
end
LIP(:, 1) = temp(:); 
temp = temp';         
LIP(:, 2) = temp(:);

LIS(:, 1) = LIP(:, 1);
LIS(:, 2) = LIP(:, 2);
LIS(:, 3) = zeros(length(LIP(:, 1)), 1);

pstart = 1;
pend = bandsize / 2;
for i = 1 : bandsize / 2
    LIS(pstart : pend, :) = [];
    pdel = pend - pstart + 1;
    pstart = pstart + bandsize - pdel;
    pend = pend + bandsize - pdel;
end

LSP = [];

n = n_max;

disp('ENCODER: init finished');
disp(['ENKODER: Max steps = ' num2str(n_max)]);

%-----------   encoding   ----------------
while(n > 0)
    bitctr_backup = bitctr;
    tic;
    
    % Sorting Pass
    % LIP pass
    LIPtemp = LIP; temp = 0;
    for i = 1:size(LIPtemp,1)
        temp = temp+1;
        if (bitctr + 1) >= max_bits  
            % bitstream end condition
            if (bitctr < max_bits)
                out(length(out))=[];
            end
            return
        end
        
       % significance?
        if abs(m(LIPtemp(i,1),LIPtemp(i,2))) >= 2^n 
            % output -> 1
            out(index) = 1; bitctr = bitctr + 1; 
            index = index +1;
            
            % sign
            sgn = m(LIPtemp(i,1),LIPtemp(i,2))>=0; 
            out(index) = sgn; bitctr = bitctr + 1; 
            index = index +1;
            
            % into LSP
            LSP = [LSP; LIPtemp(i,:)];
            
            % LIP remove
            LIP(temp,:) = []; temp = temp - 1;     
        else
            % output -> 0 (not significant)
            out(index) = 0; bitctr = bitctr + 1; 
            index = index +1;
        end
    end
    
    % LIS pass
    LIStemp = LIS; temp = 0; i = 1; 
    while ( i <= size(LIStemp,1))
        temp = temp + 1;

        % LIS is entry type A
        if LIStemp(i,3) == 0  
            if bitctr >= max_bits
                return
            end
 
            % returns highest value from the subtree
            max_d = checkDescendant(LIStemp(i,1),LIStemp(i,2),LIStemp(i,3),m); 
            % is there significance?
            if max_d >= 2^n 
                % yes - output -> 1 
                out(index) = 1; bitctr = bitctr + 1;  
                index = index +1;
                x = LIStemp(i,1); y = LIStemp(i,2); 
                
                if (bitctr + 1) >= max_bits
                    if (bitctr < max_bits)
                        out(length(out))=[];
                    end
                    return
                end

                %top-left significance
                if abs(m(2*x-1,2*y-1)) >= 2^n    
                    % YES - into LSP, output -> 1 and sign
                    LSP = [LSP; 2*x-1 2*y-1];    
                    out(index) = 1; bitctr = bitctr + 1;
                    index = index +1;
                    sgn = m(2*x-1,2*y-1)>=0;   
                    out(index) = sgn; bitctr = bitctr + 1;
                    index = index +1;
                else
                    % NOT - into LIP, output -> 0
                    out(index) = 0; bitctr = bitctr + 1;
                    index = index +1;            
                    LIP = [LIP; 2*x-1 2*y-1];
                end
                
                if (bitctr + 1) >= max_bits
                    if (bitctr < max_bits)
                        out(length(out))=[];
                    end
                    return
                end
                
                %top-right significance
                if abs(m(2*x-1,2*y)) >= 2^n   
                    LSP = [LSP; 2*x-1 2*y];
                    out(index) = 1; bitctr = bitctr + 1;
                    index = index +1;
                    sgn = m(2*x-1,2*y)>=0;
                    out(index) = sgn; bitctr = bitctr + 1;
                    index = index +1;
                else
                    out(index) = 0; bitctr = bitctr + 1;
                    index = index +1;
                    LIP = [LIP; 2*x-1 2*y];
                end
                
                if (bitctr + 1) >= max_bits
                    if (bitctr < max_bits)
                        out(length(out))=[];
                    end
                    return
                end
                
                %bottom-left significance
                if abs(m(2*x,2*y-1)) >= 2^n     
                    LSP = [LSP; 2*x 2*y-1];
                    out(index) = 1; bitctr = bitctr + 1;
                    index = index +1;
                    sgn = m(2*x,2*y-1)>=0;
                    out(index) = sgn; bitctr = bitctr + 1;
                    index = index +1;
                else
                    out(index) = 0; bitctr = bitctr + 1;
                    index = index +1; 
                    LIP = [LIP; 2*x 2*y-1];
                end
                
                if (bitctr + 1) >= max_bits
                    if (bitctr < max_bits)
                        out(length(out))=[];
                    end
                    return
                end
                
                %bottom-right significance
                if abs(m(2*x,2*y)) >= 2^n
                    LSP = [LSP; 2*x 2*y];
                    out(index) = 1; bitctr = bitctr + 1;
                    index = index +1; 
                    sgn = m(2*x,2*y)>=0;
                    out(index) = sgn; bitctr = bitctr + 1;
                    index = index +1; 
                else
                    out(index) = 0; bitctr = bitctr + 1;
                    index = index +1;
                    LIP = [LIP; 2*x 2*y];
                end
                
                % space for more descendants?
                if ((2*(2*x)-1) < size(m) & (2*(2*y)-1) < size(m)) 
                    % YES - [x,y] into LIS, LIStemp as type B entry
                    LIS = [LIS; x y 1];          
                    LIStemp = [LIStemp; x y 1];  
                end
                
                % remove [x,y, typ] from LIS
                LIS(temp,:) = []; temp = temp-1; 
                
            else
                % no significance, output -> 0 and no changes
                out(index) = 0; bitctr = bitctr + 1;  
                index = index +1;
            end
        else  
            % type B entry in LIS
            if bitctr >= max_bits
                return
            end
            
            % maximal value from grandchildren
            max_d = checkDescendant(LIStemp(i,1),LIStemp(i,2),LIStemp(i,3),m);  
            
            % do they have significance?
             if max_d >= 2^n  
                % YES - output -> 1, add their parents into LIS, LIStemp as A type
                out(index) = 1; bitctr = bitctr + 1;  
                index = index +1;
                x = LIStemp(i,1); y = LIStemp(i,2); 
                LIS = [LIS; 2*x-1 2*y-1 0; 2*x-1 2*y 0; 2*x 2*y-1 0; 2*x 2*y 0]; 
                LIStemp = [LIStemp; 2*x-1 2*y-1 0; 2*x-1 2*y 0; 2*x 2*y-1 0; 2*x 2*y 0]; 

                % remove [x,y] from LIS
                LIS(temp,:) = []; temp = temp - 1; 
            else
                % NO - output -> 0
                out(index) = 0; bitctr = bitctr + 1; 
                index = index +1;  
            end
        end
        i = i+1;
    end
    
    bitctr_backup2 = bitctr;
    
    % Refinement Pass
    temp = 1;
    value = floor(abs(2^(n_max-n+1)*m(LSP(temp,1),LSP(temp,2))));
    
    % as long as there are items in LSP compliant with the following
    % condition
    while (value >= 2^(n_max+2) & (temp <= size(LSP,1)))  
        if bitctr >= max_bits
            return
        end
        s = bitget(value,n_max+2);
        % save MSB
        out(index) = s; bitctr = bitctr + 1;
        index = index +1;
        temp = temp + 1;
        if temp <= size(LSP,1)
            value = floor(abs(2^(n_max-n+1)*m(LSP(temp,1),LSP(temp,2))));
        end
    end
    
    time = toc;
    timeel = timeel + time;
    
    disp(['ENCODER: Step ' num2str(n_max-n) ' finished in ' num2str(time) 's. Sent (S/R): ' num2str(bitctr_backup2-bitctr_backup) '/' num2str(bitctr-bitctr_backup2) 'bits.']);  
    n = n - 1;
end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品九色蝌蚪自拍| 成人夜色视频网站在线观看| 国产一区二区h| 欧美综合色免费| 精品国产99国产精品| 亚洲最新视频在线播放| 国产精品99久久久久| 欧美日韩国产另类一区| 国产精品麻豆网站| 黄网站免费久久| 91精品午夜视频| 一区二区三区资源| 99视频超级精品| 国产精品视频看| 精品综合久久久久久8888| 精品视频色一区| 一区二区三区免费在线观看| 丁香一区二区三区| 久久青草欧美一区二区三区| 久久精品国产99国产| 91精品在线观看入口| 三级亚洲高清视频| 欧美日韩精品电影| 午夜精品国产更新| 欧美综合亚洲图片综合区| 中文字幕日韩av资源站| 国产v日产∨综合v精品视频| 欧美精品一区二区在线播放 | 国产精品久久久久一区二区三区共 | 爽好久久久欧美精品| 欧美性高清videossexo| 亚洲美女免费视频| 色婷婷综合久久久中文字幕| 国产精品家庭影院| 91免费视频网| 亚洲在线观看免费视频| 欧美三级乱人伦电影| 亚洲福利一区二区| 91精品国产手机| 久草这里只有精品视频| 精品电影一区二区| 成人免费视频视频在线观看免费| 欧美国产欧美综合| 色综合一区二区| 午夜视频一区二区| 日韩免费视频一区二区| 国产一区二区三区高清播放| 亚洲国产精品成人久久综合一区| 99久久国产免费看| 亚洲成人精品一区| 精品sm捆绑视频| 99久久777色| 奇米亚洲午夜久久精品| 国产亚洲精品资源在线26u| 91视频在线观看免费| 日一区二区三区| 国产亚洲欧美一级| 91国偷自产一区二区使用方法| 天天免费综合色| 国产亚洲污的网站| 在线观看免费一区| 狠狠色综合播放一区二区| 国产精品久线在线观看| 91精品国产91热久久久做人人| 国产中文字幕一区| 亚洲一区免费在线观看| 久久久久久日产精品| 欧美在线观看一二区| 国内精品久久久久影院色| 亚洲黄色免费电影| 久久这里只有精品首页| 欧美三级在线播放| 成人免费视频视频在线观看免费 | 韩国精品久久久| 亚洲女厕所小便bbb| 久久夜色精品国产欧美乱极品| 色欧美乱欧美15图片| 国产乱淫av一区二区三区| 亚洲二区在线观看| 国产精品色一区二区三区| 欧美一区二区三区免费| 91福利精品第一导航| 国产盗摄视频一区二区三区| 日韩专区中文字幕一区二区| 日韩码欧中文字| 久久久久久久久久久久久女国产乱| 欧洲av在线精品| 不卡电影免费在线播放一区| 激情另类小说区图片区视频区| 亚洲国产一区视频| 国产精品久久久久aaaa| 久久一区二区视频| 欧美电视剧免费观看| 欧美日韩性生活| 色网站国产精品| 成人精品国产福利| 国产福利一区二区| 狠狠色综合色综合网络| 日本午夜一区二区| 天堂蜜桃91精品| 亚洲成人tv网| 亚洲成人先锋电影| 一区二区三区日本| 亚洲一区二区三区自拍| 亚洲色图视频网| 18欧美乱大交hd1984| 欧美激情综合在线| 亚洲国产岛国毛片在线| 国产精品午夜电影| 国产精品家庭影院| 亚洲欧美一区二区三区极速播放| 国产精品视频一区二区三区不卡| 国产欧美一区二区在线观看| 久久伊人蜜桃av一区二区| 久久综合九色欧美综合狠狠| 精品久久久久久久久久久久包黑料| 91精品免费在线| 欧美一级高清片| 精品成a人在线观看| 国产欧美日韩在线| 中文字幕一区二区三区色视频| 亚洲欧洲无码一区二区三区| 樱桃视频在线观看一区| 亚洲国产人成综合网站| 日本女优在线视频一区二区| 美女久久久精品| 国产东北露脸精品视频| 91在线porny国产在线看| 欧美视频一区在线观看| 欧美一区二区视频观看视频| 精品欧美一区二区三区精品久久| 久久久噜噜噜久噜久久综合| 国产精品高清亚洲| 亚洲成av人**亚洲成av**| 久久精品国产在热久久| 成人免费精品视频| 欧美色精品在线视频| 日韩欧美亚洲另类制服综合在线| 国产三级精品三级| 一区二区三区四区中文字幕| 日本不卡视频在线观看| 国模少妇一区二区三区| zzijzzij亚洲日本少妇熟睡| 91高清视频在线| 欧美tk丨vk视频| 日韩一区有码在线| 捆绑变态av一区二区三区| 国产成人精品一区二区三区四区| 91老师片黄在线观看| 日韩欧美国产小视频| 国产精品久久99| 精品一区二区在线看| 色88888久久久久久影院野外| 在线播放亚洲一区| 中文字幕一区二区三区色视频| 午夜不卡av在线| 99久久综合国产精品| 精品国产欧美一区二区| 亚洲欧洲av一区二区三区久久| 亚洲精品一卡二卡| 国产成人精品aa毛片| 欧美一区二区在线视频| 日韩久久一区二区| 国内精品第一页| 在线成人高清不卡| 亚洲欧美偷拍另类a∨色屁股| 久久精品国内一区二区三区| 欧美色电影在线| 国产女同互慰高潮91漫画| 日本不卡一二三区黄网| 欧美伊人久久久久久久久影院 | 国产a级毛片一区| 91精品国产入口在线| 又紧又大又爽精品一区二区| 国产v综合v亚洲欧| 久久午夜色播影院免费高清| 免费久久精品视频| 欧美男生操女生| 亚洲尤物在线视频观看| 91免费看片在线观看| 中文字幕av一区二区三区免费看| 日本不卡一二三| 6080午夜不卡| 午夜亚洲福利老司机| 在线视频综合导航| 亚洲一区影音先锋| 欧美在线免费观看视频| 一区二区三区高清| 日本道在线观看一区二区| 欧美国产成人精品| 不卡欧美aaaaa| 成人免费视频在线观看| 91丝袜美腿高跟国产极品老师| 欧美国产日韩亚洲一区| 成人午夜又粗又硬又大| 国产午夜亚洲精品羞羞网站| 成人综合激情网| 成人免费小视频| 日本韩国欧美三级| 夜色激情一区二区|