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

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

?? unezwdos.pas

?? ezw的pascal源碼
?? PAS
字號:
{
UNEZW.PAS

Unit for Embedded Zero Tree decoding.

Based on "Embedded Image Coding Using Zerotrees of Wavelet Coefficients"
by Jerome M. Shapiro, IEEE Transactions on Signal Processing, Vol.41, No.12,
December 1993, pp 3445-3462.

A fifo is used in the dominant pass which results in a so-called Morton order
scan instead of Shapiro's raster scan (see figure 2 in "Analysis Based Coding
of Image Transform and Subband Coefficients" by V. Ralph Algazi and Robert
R. Estes, Jr.).

Morton order scan:
==================

   1 | 2 |  5   6 | 17  18  21  22
  ---+---|        |
   3 | 4 |  7   8 | 19  20  23  24
  -------+--------|
   9  10 | 13  14 | 25  26  29  30
         |        |
  11  12 | 15  16 | 27  28  31  32
  ----------------+---------------
  33  34   37  38 | 49  50  53  54
                  |
  35  36   39  40 | 51  52  55  56
                  |
  41  42   45  46 | 57  58  61  62
                  |
  43  44   47  48 | 59  60  63  64


Raster scan:
============

   1 | 2 |  5   6 | 17  18  19  20
  ---+---|        |
   3 | 4 |  7   8 | 21  22  23  24
  -------+--------|
   9  10 | 13  14 | 25  26  27  28
         |        |
  11  12 | 15  16 | 29  30  31  32
  ----------------+---------------
  33  34   35  36 | 49  50  51  52
                  |
  37  38   39  40 | 53  54  55  56
                  |
  41  42   43  44 | 57  58  59  60
                  |
  45  46   47  48 | 61  62  63  64


Subband distribution:
=====================

  LL | HL | HL   HL | HL   HL   HL   HL
  ---+--- |         |
  LH | HH | HL   HL | HL   HL   HL   HL
  --------+---------|
  LH   LH | HH   HH | HL   HL   HL   HL
          |         |
  LH   LH | HH   HH | HL   HL   HL   HL
  ------------------+------------------
  LH   LH   LH   LH | HH   HH   HH   HH
                    |
  LH   LH   LH   LH | HH   HH   HH   HH
                    |
  LH   LH   LH   LH | HH   HH   HH   HH
                    |
  LH   LH   LH   LH | HH   HH   HH   HH


C. Valens

Created    : 02/05/1998
Last update: 03/05/1998
}

program unezwdos;

{$define debug}
(*{$define disk}*)

uses
{$ifdef disk}
  matrices, diskfifo, disklist;
{$else}
  matrices, fifo, list;
{$endif}

type
  ezw_file_header = record
    height, width: integer;
    threshold: element_type;
  end;

const
(* Code alphabet. *)
  zero = 0; (* binary 0 *)
  one  = 1; (* binary 1 *)
  ztr  = 2; (* binary 00 *)
  pos  = 3; (* binary 01 *)
  neg  = 4; (* binary 11 *)
  iz   = 5; (* binary 10 *)

var
  M: matrix;
  error: boolean;
  ezw_file: file;
  header: ezw_file_header;
  pixels: longint;
  zeroes, ones: longint;
  input_byte, mask: char;


procedure show_code(code: integer);
begin
  case code of
    zero: Write('0');
    one : Write('1');
    pos : Write('p');
    neg : Write('n');
    ztr : Write('t');
    iz  : Write('i');
  end;
end;

(*
* Reads a bit from the input stream.
*)
function get_bit: char;
var
  bit: char;
begin
  if Ord(mask)=0 then begin
    BlockRead(ezw_file,input_byte,1);
    mask := Chr($80);
  end;

  if (Ord(input_byte) and Ord(mask)=0) then begin
    bit := '0';
    Inc(zeroes);
  end
  else begin
    bit := '1';
    Inc(ones);
  end;

  mask := Chr(Ord(mask) shr 1);
  get_bit := bit;
end;

(*
* Reads a code from the input stream.
*)
function input_code(count: integer): integer;
begin
  case get_bit of
    '0': begin
           if count=1 then input_code := zero
           else begin
             case get_bit of
               '0': input_code := ztr;
               '1': input_code := pos;
             end;
           end;
         end;
    '1': begin
           if count=1 then input_code := one
           else begin
             case get_bit of
               '0': input_code := iz;
               '1': input_code := neg;
             end;
           end;
         end;
  end;
end;

(*
* Builds a matrix element from a dominant pass EZW-element and a threshold.
*)
procedure input_element(m: matrix; t: element_type; var s: ezw_element);
var
  d: list_type;
begin
  d.x := s.x;
  d.y := s.y;
  s.code := input_code(2);
{$ifdef debug}
  show_code(s.code);
{$endif}
  if (s.code=pos) then begin
    put_matrix_element(m,s.y,s.x,t);
    append_to_list(d);
  end
  else if (s.code=neg) then begin
    put_matrix_element(m,s.y,s.x,-t);
    append_to_list(d);
  end;
end;

(*
* Performs one dominant pass.
*)
procedure dominant_pass(m: matrix; threshold: element_type);
var
  s: ezw_element;
  d: list_type;
  min_x, max_x, min_y, max_y: integer;
  level: integer;
begin
  s.x := 0;
  s.y := 0;
  input_element(m,threshold,s);
  if (s.code=pos) or (s.code=neg) then Inc(pixels);

  s.x := 1;
  s.y := 0;
  input_element(m,threshold,s);
  put_in_fifo(s);
  s.x := 0;
  s.y := 1;
  input_element(m,threshold,s);
  put_in_fifo(s);
  s.x := 1;
  s.y := 1;
  input_element(m,threshold,s);
  put_in_fifo(s);

  get_from_fifo(s);
  if fifo_empty=FALSE then begin
    if (s.code=pos) or (s.code=neg) then Inc(pixels);
  end;

  while fifo_empty=FALSE do begin
    if s.code<>ztr then begin
      min_x := s.x shl 1;
      max_x := min_x+1;
      min_y := s.y shl 1;
      max_y := min_y+1;
      if (max_x<=m.c) and (max_y<=m.r) then begin
        for s.y:=min_y to max_y do begin
          for s.x:=min_x to max_x do begin
            input_element(m,threshold,s);
            put_in_fifo(s);
          end;
        end;
      end;
    end;
    get_from_fifo(s);
    if fifo_empty=FALSE then begin
      if (s.code=pos) or (s.code=neg) then Inc(pixels);
    end;
  end;

end;

(*
* Performs one subordinate pass.
*)
procedure subordinate_pass(m: matrix; threshold: element_type);
var
  i: Longint;
  temp: element_type;
  d: list_type;
  found: boolean;
begin
  if threshold>0 then begin
    for i:=0 to pixels-1 do begin
      get_list_element(d,i,found);
      if found=TRUE then begin
        temp := get_matrix_element(m,d.y,d.x);
        if input_code(1)=one then begin
{$ifdef debug}
          show_code(one);
{$endif}
          if temp<0 then begin
            put_matrix_element(m,d.y,d.x,temp-threshold);
          end
          else begin
            put_matrix_element(m,d.y,d.x,temp+threshold);
          end;
        end
{$ifdef debug}
        else show_code(zero);
{$endif}
      end;
    end;
  end;
end;

(*
* EZW-decodes file f into matrix m.
*)
procedure EZW_decode(m: matrix);
var
  threshold: element_type;
begin
  pixels := 0;
  threshold := header.threshold;
  while threshold<>0 do begin
    dominant_pass(m,threshold);
    subordinate_pass(m,threshold shr 1);
    threshold := threshold shr 1;
  end;
end;

(*
* Main.
*)
begin
  Writeln;

  Assign(ezw_file,'out.ezw');
  Reset(ezw_file,1);
  BlockRead(ezw_file,header,SizeOf(header));

  create_matrix(M,header.height,header.width,error);
  if error=TRUE then Exit;
  clear_matrix(M);

  zeroes := 0;
  ones := 0;
  input_byte := Chr(0);
  mask := Chr(0);
  EZW_decode(M);

{$ifdef debug}
  Writeln;
  write_matrix(m);
  Writeln(zeroes+ones,' bits: ',zeroes,' zeroes, ',ones,' ones.');
{$endif}

  Close(ezw_file);
  destroy_matrix(M);
  destroy_fifo;
  destroy_list;
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区不卡| 亚洲1区2区3区4区| 国产精品美女久久久久久2018 | 91.com视频| 欧美剧在线免费观看网站| 欧美婷婷六月丁香综合色| 欧美在线啊v一区| 欧美日韩三级一区| 在线成人av网站| 日韩一区二区精品葵司在线| 日韩午夜三级在线| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产麻豆精品theporn| 国产真实乱偷精品视频免| 国产精品资源在线| 成人av一区二区三区| 91亚洲男人天堂| 欧美亚洲尤物久久| 日韩一级大片在线观看| 精品成人一区二区| 国产精品福利影院| 亚洲综合色在线| 美女一区二区久久| 国产寡妇亲子伦一区二区| 99国产精品国产精品毛片| 欧美性猛片aaaaaaa做受| 欧美军同video69gay| 久久中文娱乐网| 亚洲色图视频网| 日韩精品久久久久久| 国产真实乱偷精品视频免| 99麻豆久久久国产精品免费| 欧美在线视频全部完| 精品日产卡一卡二卡麻豆| 国产精品污网站| 亚洲成人免费观看| 国产福利91精品一区二区三区| 91视频精品在这里| 日韩欧美国产一区二区三区 | 国产综合一区二区| 成人中文字幕在线| 欧美三区免费完整视频在线观看| 日韩一区二区在线免费观看| 亚洲国产岛国毛片在线| 亚洲成精国产精品女| 国产一区二区在线看| 91精品福利视频| 精品成人一区二区三区四区| 亚洲精品大片www| 国产最新精品精品你懂的| 在线亚洲免费视频| xf在线a精品一区二区视频网站| 亚洲色大成网站www久久九九| 奇米777欧美一区二区| www.在线成人| 26uuu国产日韩综合| 亚洲高清不卡在线观看| 成人免费视频网站在线观看| 欧美另类久久久品| 亚洲欧美一区二区视频| 激情欧美一区二区三区在线观看| 欧美性一二三区| 国产精品国产精品国产专区不蜜 | 亚洲国产精品欧美一二99| 国产精品18久久久| 日韩一区二区三区视频在线观看| 亚洲精品视频在线看| 国产剧情在线观看一区二区| 欧美日韩高清影院| 国产精品人人做人人爽人人添| 日韩成人免费看| 欧美在线短视频| ㊣最新国产の精品bt伙计久久| 国产在线精品不卡| 欧美激情一区三区| 五月激情综合色| 97精品视频在线观看自产线路二| 日韩一卡二卡三卡四卡| 亚洲国产精品尤物yw在线观看| 白白色亚洲国产精品| 久久久五月婷婷| 国产专区综合网| 欧美大片顶级少妇| 理论片日本一区| 国产精品国产三级国产aⅴ入口| 国产在线精品视频| 国产在线视视频有精品| 7777精品伊人久久久大香线蕉超级流畅 | 国产激情91久久精品导航| 在线成人午夜影院| 婷婷综合久久一区二区三区| 在线国产亚洲欧美| 亚洲欧美日韩系列| 波多野结衣一区二区三区| 国产视频一区在线观看| 国产在线一区二区| 久久久国产午夜精品 | 欧洲一区二区三区在线| 中文字幕制服丝袜一区二区三区| 国产精品77777| 国产亚洲精品福利| 成人毛片在线观看| 亚洲国产精品精华液2区45| 国产iv一区二区三区| 国产精品乱码人人做人人爱| 国产精品一二三| 国产精品久线观看视频| 不卡免费追剧大全电视剧网站| 国产精品三级av| 成人免费高清在线| 专区另类欧美日韩| 欧美天天综合网| 丝袜美腿亚洲色图| 欧美成人一区二区三区在线观看| 狠狠色丁香久久婷婷综合_中 | 国产午夜精品久久| 成人动漫一区二区在线| 亚洲欧美二区三区| 欧美日韩在线免费视频| 天堂成人免费av电影一区| 91麻豆精品国产91久久久久| 日韩成人精品视频| 久久久久久9999| zzijzzij亚洲日本少妇熟睡| 亚洲精品精品亚洲| 欧美精品精品一区| 韩国成人精品a∨在线观看| 国产色91在线| 91久久香蕉国产日韩欧美9色| 日一区二区三区| 久久婷婷色综合| 99久久精品免费| 亚洲超丰满肉感bbw| 欧美成人精品1314www| 国产高清视频一区| 亚洲精品久久久蜜桃| 日韩女优视频免费观看| 成人免费看黄yyy456| 亚洲成人午夜影院| 久久久久久亚洲综合| 色天天综合色天天久久| 老司机午夜精品| 中文字幕日韩一区| 日韩一区二区三区在线观看| 成人夜色视频网站在线观看| 夜夜揉揉日日人人青青一国产精品| 日韩一级黄色片| 91视频国产资源| 北条麻妃国产九九精品视频| 肉丝袜脚交视频一区二区| 国产三级一区二区| 3d成人动漫网站| 99热精品一区二区| 久草在线在线精品观看| 日韩理论片网站| 精品福利视频一区二区三区| 日本久久电影网| 国产一区二区精品在线观看| 亚洲国产三级在线| 亚洲国产精品精华液ab| 欧美一区二区国产| 91成人在线精品| 国产精品一区二区三区99| 婷婷久久综合九色国产成人| 国产精品麻豆欧美日韩ww| 精品国产一区二区三区忘忧草 | 欧美视频中文字幕| 高清beeg欧美| 精品在线你懂的| 日韩精品电影在线观看| 亚洲色图另类专区| 亚洲国产精品99久久久久久久久| 91精品国产综合久久久久久漫画| 一本大道av伊人久久综合| 国产精品综合视频| 日本伊人精品一区二区三区观看方式 | 亚洲欧洲av在线| 国产午夜精品福利| 精品国内二区三区| 欧美一区二区三区视频免费| 欧美综合一区二区| 91网上在线视频| aaa国产一区| 春色校园综合激情亚洲| 国产乱码精品一区二区三区五月婷| 日精品一区二区| 一区2区3区在线看| 亚洲欧美日韩国产综合| 国产精品久久久久久久第一福利| 精品少妇一区二区三区视频免付费 | 日韩精品一区二区三区老鸭窝| 欧美在线免费观看亚洲| 色诱视频网站一区| 波多野结衣亚洲一区| 成人在线综合网站| 国产精品乡下勾搭老头1| 麻豆免费精品视频| 久久精品国产77777蜜臀| 美国毛片一区二区| 精品一区二区三区在线视频|