Aceasta este comanda epsilon care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
EPSILON - puternic compresor de imagine wavelet Open Source
REZUMAT
epsilon COMMAND [OPŢIUNI] DOSARE...
DESCRIERE
EPSILON este un puternic compresor de imagini wavelet Open Source. Proiectul este vizat
procesare paralelă și robustă a imaginii. Pachetul sursă EPSILON constă din două părți principale:
bibliotecă și codec portabil, bine proiectat, sigur pentru fire, construit pe partea de sus a bibliotecii.
API-ul bibliotecii este foarte curat, simplu și atent documentat.
Algoritmul de compresie EPSILON se bazează pe transformarea wavelet și așa-numita încorporată
codificare. Prima este o teorie matematică binecunoscută, iar cea de-a doua este o teorie foarte eficientă,
metodă totuși simplă de codificare progresivă a imaginii. Algoritmul real folosit în EPSILON este
numit SPECK - Set Partitioned Embedded bloCK coder introdus de Asad Islam și William
Pearlman.
În acest moment, EPSILON acceptă peste 30 de filtre wavelet și are interfață automată
pentru adăugarea altora noi. Scenariul numit make_filterbank.pl traduce fișiere XML cu filtru
descrieri la codul sursă C potrivit pentru EPSILON. Deci, singura operare manuală este
pentru a copia și lipi rezultatul programului în codul sursă al EPSILON. După recompilare
noi filtre vor fi gata de utilizare. Special Note: dacă reușiți să adăugați filtre noi,
va rog sa mi le trimiteti. Acestea vor fi incluse în arborele sursă principală.
Proiectul EPSILON urmează o veche și fructuoasă tradiție UNIX de a păstra totul simplu. De exemplu,
EPSILON funcționează cu PPM (Portable PixelMap) și PGM Numai imagini (Portable GrayMap). ei
oferă funcționalitate de bază și servesc ca cel mai mic numitor comun pentru schimb
imagini truecolor și în tonuri de gri între diferite platforme și sisteme de operare. In cautarea
pentru un convertor? Încerca Netpbm (http://netpbm.sourceforge.net/) - instrument perfect Open Source-
kit cu peste 220 de utilitati la indemana!
Pentru stocarea și schimbul de imagini comprimate EPSILON își definește propriul PSI (ePSIlon)
tipul fisierului. Formatul PSI este conceput având în vedere simplitatea și toleranța la erori. A
fișierul tipic PSI este format din mai multe blocuri independente. Fiecare bloc reprezintă o țiglă din
imaginea originală și au antet complet autonom. Fiecare bloc este protejat cu
CRC și (de fapt, cu două CRC: unul pentru antet și altul pentru date) separate
din alte blocuri cu un marker unic special. Această tehnică simplă, dar eficientă face
sincronizarea fluxului și localizarea erorilor aproape banale. Mai mult, anteturile de bloc sunt
salvate ca text simplu: le puteți edita manual cu editorul de text preferat. Verifică
afară!
EPSILON are o mulțime de caracteristici interesante. De exemplu, puteți controla fin
raportul de compresie (mulțumită codării încorporate), distribuiți manual bugetul de biți între imagini
canale, comutați la diferite moduri de codificare și filtrare și așa mai departe. EPSILON de asemenea
acceptă fișiere URIAȘE cu memorie constantă și complexitate liniară în timp.
O altă caracteristică plăcută este suportul multi-threading. Încercați să (re)compilați EPSILON cu Pthreads
activat (consultați INSTALARE pentru mai multe informații) și cu siguranță veți observa o accelerare semnificativă a codării
(presupunând că aveți procesor multicore sau mai multe procesoare pe computer).
Începând cu versiunea 0.6.1, EPSILON acceptă și modul de grupare. Aceasta este o caracteristică foarte puternică
dacă aveți mai multe mașini conectate la o rețea de mare capacitate, să spunem gigabit Ethernet sau
și mai rapid. Pentru a construi versiunea EPSILON compatibilă cu clusterul, vă rugăm să citiți fișierul INSTALARE.
Deși EPSILON are un set bogat de opțiuni speciale ad-hoc, nu sunteți obligat să le utilizați
lor. Valorile implicite sunt de obicei în regulă. Interfața de linie de comandă a EPSILON este foarte prietenoasă
și conceput pentru a fi similar cu GZIP or BZIP. Asa de, `epsilon foo.ppm' si `epsilon -d
bar.psi' este de obicei suficient.
OPŢIUNI
comenzi:
-e, --encode-file
Codificați fișierele specificate. Aceasta este o acțiune implicită dacă nu este dată nicio comandă.
-d, --decode-file
Decodați fișierele specificate.
-t, --truncate-file
Trunchiați fișierele specificate. Datorită codării încorporate, trunchierea blocurilor este echivalentă
pentru a bloca recomprimarea. Cu alte cuvinte, trunchierea comprimă și mai mult fișierele PSI.
-s, --start-node
Porniți nodul cluster. Notă: această opțiune este disponibilă în versiunea EPSILON compatibilă cu clusterele
numai și este destinat nodurilor SLAVE. Cu alte cuvinte, ar trebui să invocați epsilon -s
pe fiecare nod SLAVE din clusterul dvs. Oprirea nodului cluster este și mai simplă: omoara-i pe toti
epsilon.
Această comandă rulează un program demon care acceptă conexiuni TCP la un anumit port
(2718 implicit). Pentru fiecare conexiune, un nou proces copil este bifurcat și principalul
programul așteaptă următoarea conexiune. Codificarea și decodificarea statisticilor este realizată de SYSLOG
folosind facilitatea LOG_DAEMON.
Dacă aveți DSH (Distributed SHell) instalat pe nodul MASTER, puteți utiliza și două
scripturi la îndemână și anume start_epsilon_nodes.pl si stop_epsilon_nodes.pl, Pentru
pornirea și, respectiv, oprirea tuturor nodurilor cluster.
Configurația gazdei este preluată de la așa numitul .epsilon.noduri fişier. În mod implicit,
verificări ale programului .epsilon.noduri în directorul curent. Dacă nu există un astfel de fișier,
încercări de program .epsilon.noduri în directorul principal al utilizatorului. Puteți și în mod explicit
specificați locația fișierului ca argument pentru script. Formatul fișierului este descris mai jos.
-a, --list-all-fb
Listați toate băncile de filtre disponibile. Această comandă arată ID-ul, NUMELE și TIPUL de ortogonalitate
pentru fiecare banc de filtre disponibil. Începând cu versiunea 0.8.1, EPSILON acceptă și ridicarea
implementarea unei renumite transformări wavelet biortogonale Daubechies 9/7. Funcționează
mai rapid decât omologul generic bazat pe filtre. ID-ul implicit este daub97lift
-V, --versiune
Imprimați versiunea programului.
Opţiuni la utilizare cu `--encode-file' comanda:
-f, --filtru-id=ID
ID-ul bancului de filtre Wavelet. Vezi si --list-all-fb comanda.
-b, --dimensiunea blocului=VALUE
Mărimea blocului de utilizat: 32, 64, 128, 256, 512 sau 1024. Valoarea implicită este 256. Utilizarea
blocuri foarte mici precum și utilizarea blocurilor foarte mari nu este recomandată: primul
adaugă o suprasarcină substanțială a antetului, iar acesta din urmă încetinește codificarea/decodificarea
fără niciun profit în calitatea imaginii. Cu toate acestea, în unele circumstanțe rare acest lucru
regula este cu totul opusă.
-n, --mod-normal
Utilizați așa-numitul mod normal de procesare. Acest mod poate fi folosit cu ambele
filtre ortogonale și biortogonale. În practică, ar trebui să evitați acest parametru
cu excepția cazului în care faci niște cercetări în wavelets.
-o, --mode-otlpf
Utilizați așa-numitul mod de procesare OTLPF. În câteva cuvinte, OTLPF este un fel de hack to
reduce artefactele de limită atunci când imaginea este împărțită în mai multe plăci (ca de obicei
se întâmplă). Din cauza constrângerilor matematice, această metodă poate fi aplicată la biortogonale
numai filtre. Această opțiune este activată implicit.
-r, --raport=VALUE
Cu acest parametru puteți controla fin raportul de compresie dorit. Această valoare este
nu este obligat să fie integral: de exemplu, valoarea de 34.102 este în regulă. Pentru
motive evidente pentru care raportul de compresie ar trebui să fie mai mare de 1. Deși bit-ul lui EPSILON
algoritmul de alocare este destul de precis, rapoartele de compresie prea mari vor fi tăiate
din cauza antetelor de bloc deasupra capului. Pe de altă parte, imagine goală (de exemplu, complet neagră)
cu siguranță va fi codificat doar în câteva sute de octeți, indiferent de
raportul de compresie dorit. Cu toate acestea, pentru o imagine din viața cea mai reală și
rapoartele de compresie (să spunem 10..200) raportul de compresie real va fi foarte apropiat
la valoarea pe care o dorești. Raportul de compresie implicit este 10.
-2, --două treceri
În mod implicit, EPSILON utilizează algoritmul de alocare a biților cu rată constantă de biți (CBR). CBR este
destul de rapid și oferă de obicei o calitate acceptabilă a imaginii. Dacă calitatea imaginii este a
îngrijorare, încercați algoritmul de alocare de biți cu rată de biți variabilă (VBR) în două treceri.
VBR oferă rezultate mai bune decât CBR, dar rulează de aproximativ două ori mai lent.
-N, --lista-noduri
Fișier cu configurația cluster. Notă: această opțiune este disponibilă în cluster-aware
Numai versiunea EPSILON și este destinată nodului MASTER. Fiecare linie din acest fișier ar trebui
respectă următorul format:
utilizator@gazdă:port^număr_de_CPU
Toate campurile sunt obligatorii. Nu sunt permise comentarii, spații sau rânduri goale aici. The
al doilea câmp poate fi fie adresa IP, fie numele gazdei. Ultimul câmp este de fapt
numărul de conexiuni TCP simultane cu un nod SLAVE corespunzător. De obicei asta
este setat la numărul de procesoare sau ceva mai mare.
Dacă omiteți această opțiune, EPSILON va încerca .epsilon.noduri în curent şi acasă
director (în această ordine).
Nota 1: câmpul „utilizator” este folosit de start_epsilon_nodes.pl si stop_epsilon_nodes.pl la
SSH în caseta țintă.
Nota 2: „port” este portul nodului EPSILON, nu SSH.
-T, --fire
Numărul de fire de codare. Notă: această opțiune este disponibilă în EPSILON care acceptă fire
numai versiunea.
--Raportul Y=VALUE, --Cb-raport=VALUE, --Cr-raport=VALUE
Procent de buget de biți pentru canalele Y, Cb și, respectiv, Cr. Valorile ar trebui
da 100% cu totul. Rețineți că aceste opțiuni au sens pentru truecolor (adică PPM)
doar imagini. Valorile implicite sunt 90-5-5.
--fără reeșantionare
În mod implicit, EPSILON reeșantionează imaginile truecolor folosind așa-numita reeșantionare 4:2:0
sistem. Acest truc în esență accelerează codificarea/decodificarea fără a se sacrifica
Calitatea imaginii. De obicei, nu există niciun motiv pentru a dezactiva reeșantionarea.
Opţiuni la utilizare cu `--decode-file' comanda:
-T, --fire
Numărul de fire de decodare. Notă: această opțiune este disponibilă în EPSILON care acceptă fire
numai versiunea.
-N, --lista-noduri
Fișier cu configurația cluster. Notă: această opțiune este disponibilă în cluster-aware
Numai versiunea EPSILON și este destinată nodului MASTER. Fiecare linie din acest fișier ar trebui
respectă următorul format:
utilizator@gazdă:port^număr_de_CPU
Toate campurile sunt obligatorii. Nu sunt permise comentarii, spații sau rânduri goale aici. The
al doilea câmp poate fi fie adresa IP, fie numele gazdei. Ultimul câmp este de fapt
numărul de conexiuni TCP simultane cu un nod SLAVE corespunzător. De obicei asta
este setat la numărul de procesoare sau ceva mai mare.
Dacă omiteți această opțiune, EPSILON va încerca .epsilon.noduri în curent şi acasă
director (în această ordine).
--ignore-hdr-crc
Ignorați erorile CRC din antet.
--ignore-data-crc
Ignorați erorile CRC de date.
--ignore-format-err
Sari peste blocurile malformate.
Opţiuni la utilizare cu `--truncate-file' comanda:
-r, --raport=VALUE
Raportul de trunchiere dorit. Vezi si --truncate-file comanda.
Opţiuni la utilizare cu `--start-node' comanda:
-P, --port=VALUE
În mod implicit, nodul cluster ascultă numărul portului 2718. Cu această opțiune puteți seta
alt număr de port.
Comun opţiuni:
-H, --oprire-pe-erori
În mod implicit, dacă ceva eșuează, EPSILON trece la următorul fișier de intrare. Cu asta
opțiune puteți modifica comportamentul implicit: EPSILON se va opri la prima eroare. Notă
că în modul MPI această opțiune nu este disponibilă și EPSILON se oprește întotdeauna la erori.
-q, --Liniște
În mod implicit, EPSILON arată statistici frumoase în timpul funcționării sale. Cu această opțiune
poți cere lui EPSILON să tacă.
-O, --output-dir=DIR
Director de ieșire pentru fișierele codificate, decodificate și trunchiate. Dacă nu este setat, ieșire
fișierele vor fi salvate în același director ca și cele de intrare.
Ajutor opţiuni:
-?, --Ajutor
Afișează mesajul de ajutor.
--utilizare
Afișează un mesaj scurt de utilizare.
EXEMPLE
Codați toate fișierele PPM din directorul curent cu algoritmul VBR cu două treceri:
epsilon *.ppm -2
Codați fișierul PGM cu un raport de compresie de 1:100 folosind 4 fire:
epsilon -e mare.pgm -r 100 -T 4
Decodați toate fișierele în / tmp director, operați în liniște:
epsilon -dq *.psi -O / tmp
Decodați o listă de fișiere puternic corupte:
epsilon -d *.psi --ignore-hdr-crc --ignore-data-crc --ignore-format-err
Porniți nodul cluster cu un număr de port non-standard:
epsilon -s -P 1234
Codificați fișierele utilizând configurația personalizată a clusterului:
epsilon *.ppm *.pgm -N /path/to/.epsilon.nodes
Codați fișierul cu motorul MPI folosind toate procesoarele disponibile:
mpirun C epsilon test.ppm
Utilizați epsilon online folosind serviciile onworks.net