abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 14:33 | Komunita

Nvidia podpoří projekt Common Voice částkou 1,5 milionu dolarů. Mozilla píše o demokratizaci a diverzifikaci hlasové technologie. Nvidia prostě použije otevřenou databázi hlasových záznamů k trénování svého systému Jarvis, viz úvodní přednáška CEO Nvidie Jensena Huanga na NVIDIA GTC 2021.

Ladislav Hagara | Komentářů: 0
včera 09:00 | IT novinky

Tento týden probíhá virtuální konference NVIDIA GTC 2021 (GPU Technology Conference). Doporučit ke zhlédnutí lze úvodní přednášku CEO Nvidie Jensena Huanga. Z kuchyně představil celou řadu novinek (NVIDIA Grace CPU, NVIDIA DRIVE Atlan, AI-Capable Supercomputer Alps, …). Dění na konferenci lze sledovat na Twitteru.

Ladislav Hagara | Komentářů: 3
včera 08:00 | Nová verze

Byla vydána verze 6.0 softwaru pro správu vlastního cloudu OpenNebula (Wikipedie). Kódový název nové verze je Mutara. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.

Ladislav Hagara | Komentářů: 0
včera 00:55 | Komunita

Vedení Nadace pro svobodný software (FSF) vydalo oficiální prohlášení k návratu Richarda Stallmana (RMS) do vedení FSF. Richard Stallman promluvil ke komunitě kolem svobodného softwaru.

Ladislav Hagara | Komentářů: 23
12.4. 20:33 | Pozvánky

Ve středu 14. dubna pořádá brněnský Red Hat tradiční akci Open House, letos opět ve virtuální podobě. Open House nabízí studentům, ale i zájemcům z široké veřejnosti příležitost poznat Red Hat, jeho kulturu a dozvědět se o stážích a pracovních příležitostech. Letošní program nabídne 3 souběžné streamy od více než 30 přednášejících. Jeden z nich bude věnován technickým přednáškám, kde se dozvíte o různých projektech a produktech, na kterých

… více »
Dorka | Komentářů: 0
12.4. 16:11 | IT novinky

Microsoft kupuje firmu Nuance Communications za 19,7 miliardy dolarů. Nuance Communications se věnuje rozpoznávání řeči pomocí umělé inteligence především ve zdravotnictví. Technologie od Nuance Communications je použita také ve virtuálním asistentovi Siri.

Ladislav Hagara | Komentářů: 12
12.4. 14:44 | Nová verze

Český překladatelský tým LibreOffice vydává příručku LibreOffice Writer verze 6.4. Kniha představuje některé hlavní funkce aplikace LibreOffice Writer:… více »

Zdeněk Crhonek | Komentářů: 0
12.4. 13:33 | Nová verze

Příspěvek na blogu webové aplikace pro spolupráci na zdrojových kódech pomocí gitu Gitea (Wikipedie) představuje novinky nové verze 1.14.0 této v programovacím jazyce Go naprogramované aplikace.

Ladislav Hagara | Komentářů: 0
12.4. 09:00 | Nová verze

V březnu 2016 byl 2D animační software Toonz uvolněn jako open source pod názvem OpenToonz. O víkendu byl OpenToonz vydán ve verzi 1.5.0. Přehled novinek v poznámkách k vydání na GitHubu. Novou verzi bude možné nainstalovat také z Flathubu a Snapcraftu.

Ladislav Hagara | Komentářů: 0
12.4. 08:00 | IT novinky

Společnost Espressif Systems oznámila, že rodinu SoC ESP32 brzy rozšíří o ESP32-C6 s 32bitovým RISC-V jádrem a podporou Wi-Fi 6 a Bluetooth 5 (LE).

Ladislav Hagara | Komentářů: 0
Kolik času v průměru denně trávíte videohovory/-konferencemi? (ať už v práci, škole nebo soukromě)
 (52%)
 (13%)
 (15%)
 (10%)
 (7%)
 (1%)
 (1%)
Celkem 293 hlasů
 Komentářů: 7, poslední 8.4. 12:14
Rozcestník

Jednoduché formáty souborů (NetPBM, Dot, PCAP…)

5.4. 19:15 | Přečteno: 1547× | Linux | Výběrový blog | poslední úprava: 5.4. 20:38

Představíme si formáty souborů vhodné pro rychlé bastlení - zpracování obrazu, ladění datových struktur a síťovou komunikaci. Hlavní zajímavostí je jejich čtení a zápis pomocí ad-hoc skriptů bez použití externích knihoven.

Jedná se o přepis mé přednášky ze Smrště 2018. Z různých ostatních přednášek existují záznamy, třeba se vám budou líbit.

Bitmapový formát Netpbm

Formát obrázků Netpbm vypadá takto:

P5
# libovolné množství komentářů
# každá řádka uvozena vězením
šířka výška
255
surová bitmapová data

Číslo za P na prvním řádku udává formát bitmapových dat, číslo před daty udává rozsah (barevnou hloubku), prakticky vždy chcete 255 (1 bajt na pixel, resp. na barevnou složku u barevného obrázku). Zajímavé formáty bitmapových dat jsou:

Černobílé varianty se označují PGM (graymap), barevné PPM (pixmap).

Čtení

ASCII varianty se získají pomocí convert vstupní.png -compress none výstup.pgm (nebo ppm) a hodí se na grepování. Pár příkladů ze života:

Jediné trochu mrzuté je, že pokud chcete grepovat opravdu konkrétní RGB barvu, tak musíte sestavit regexp, který to bere po správně zarovnaných trojicích. Tohle by asi mohlo fungovat (rozdělí pixely na samostatné řádky):

$ cat out.ppm | sed -re "s/([0-9]+ [0-9]+ [0-9]+)/\1\n/g" | sed -re "s/^ //"

Zápis

Co se zápisu týče, tak tam se asi nejvíc hodí binární formáty (P5, P6), pro takové ty situace „mám v paměti pole a potřebuju ho vyklopit do souboru“. Jednoduše otevřeme soubor, vypíšeme do něj ty tři řádky (P5, velikost, 255) a pak do něj vyklopíme to pole. Můžeme přidat komentář.

Komprese

Pokud to dává smysl (tj. data mají nějakou strukturu, takže to jde komprimovat), je nejlepší soubor prohnat bzipem. Mnoho nástrojů (např. GIMP, ImageMagick…) ho i pak rozpozná a automaticky dekomprimuje a otevře. Kompresní poměr je podobný, někdy i lepší (!) než u PNG, které je na obrázky přímo specializované. Prý je to proto, že ačkoli má PNG lepší kódování (nebere to tupě po řádkách, ale umí se odvolat na předchozí řádky), tak má jako poslední krok obyčejné DEFLATE, které je podstatně horší než bzip2.

Zajímavé je, že některé obrázky se podstatně lépe komprimují otočené o 90° (resp. transponované) - pokud vám tedy záleží na účinnosti a rychlosti (!) komprese, stojí za to podívat se, jestli váš typický obrázek nemá například ve sloupcích podstatně podobnější data než v řádcích, a případně ho otočit. Třeba data z radaru se násobně líp komprimují podle azimutu (protože věci blízko u sebe jsou si samozřejmě velmi podobné) než podle vzdálenosti (kdy kompresor dostane celou scanline pokrývající stovky kilometrů a co pak s tím má jako dělat).

Farbfeld

Existuje ještě jednodušší formát farbfeld, který má pouze velikost a pak natvrdo RGBA 4*16bit hodnoty. To mi už přijde příliš omezené a navíc je to 16bit big endian, takže se s tím blbě pracuje a je to velké. Také není tolik podporovaný, PGM/PPM otevřete v Eye of GNOME, v GIMPu, v lecčems.

Video

Stejně jako PPM (syrové RGB pole) můžeme zpracovávat i video. ffmpeg podporuje formát rgb24 a raw kontejner. Nemá to vůbec žádnou hlavičku, takže rozlišení musíme předat ručně (a když se dám blbě, tak se rozbije synchronizace) a pak už čteme framy. Tady je třeba oneliner co vezme první frame z videa velkého 640x480 a uloží ho jako PPM :-).

$ (echo -ne "P6\n640 480\n255\n"; ffmpeg -i test.mkv -pix_fmt rgb24 -f rawvideo -y - | head -c $(( 640 * 480 * 3 )) ) > soubor.ppm

A takhle se zase ze souboru zpátky udělá video:

$ (while true; do tail -c $(( 640 * 480 * 3 )) soubor.ppm ; done) | ffmpeg -f rawvideo -pix_fmt rgb24 -s 640x480 -i - -y out.mkv

Audio

aplay žere surové samply, je vhodné mu říct formát a samplerate. Geiger counter v bashi:

$ while true; do if [ $(( $RANDOM % 200 )) -eq 1 ]; then echo -n "~"; else echo -n "                "; fi; done | aplay -r 16000 -f U8

(tilda a mezera jsou napsatelné znaky s nejvzdálenějším ASCII kódem)

WAV soubory jsou hlavička a pak následují samply. Pokud víte, v jakém jsou formátu (nejběžnější je signed int16 little endian), můžete začátek souboru přeskočit a číst rovnou ty samply.

Dot: grafy

Zejména pro ladění složitých datových struktur s hromadou ukazatelů se hodí dot. Vytvoříme následující soubor:

digraph{
a->b;
b->c;
c->d;
c->a;
}

a spustíme dot -T png file.dot > file.png.

Dot automaticky rozhodí vrcholy aby se hrany nějak zásadně nekřížily a natahá definované šipky. Samozřejmě se to dá všechno různě formátovat, více viz Graphviz.

Dot jsem objevil náhodou při dělání úkolu do velmi drsného a poučného předmětu Datové struktury 1 a nevím, jak bych to bez něj odladil. Také jsem to použil při řešení jednoho CTF, kde byly soubory, které se navzájem na sebe různě odkazovaly. A někteří ISP to prý používají pro generování mapy své sítě.

PCAP: síť

pcap je formát, ve kterém se ukládají záznamy síťového provozu - používá ho například tcpdump a Wireshark (ten už tedy používá vylepšení pcapng, ale pcap samozřejmě stále umí). Je také překvapivě jednoduchý, na začátku je nějaká celkem nezajímavá hlavička (pcap_hdr_t) a pak je vždycky hlavička paketu (pcaprec_hdr_t, obsahuje jeho délku) a následuje přímo ten paket. Pakety takhle můžete snadno číst (osobně jsem třeba takhle implementoval mergování paketů z několika zdrojů do jednoho pcap souboru) i generovat (normálně si zkopírujte paket a nahrazujte v něm data, a na checksum se vykašlete, různé tsharky a spol. to sežerou i když nesedí).

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

6.4. 00:37 debian+ | skóre: 24 | blog: analyzy
Rozbalit Rozbalit vše Re: Jednoduché formáty souborů (NetPBM, Dot, PCAP…)
Na grafy (ak user klikatko) napríklad program Dia.
debian.plus@protonmail.com
Max avatar 6.4. 02:43 Max | skóre: 69 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Jednoduché formáty souborů (NetPBM, Dot, PCAP…)
Nevím, nevím. Hele, používal jsem to dřív a bylo to peklo. Pak jsem přešel na MS Visio (kvůli práci a kompatibilitě s ostatními firmami, se kterými něco řešíme) a nedá se to srovnat. Ve světě OSS Dia silně zaspala. 100x lepší je yEd.
Nicméně je možné, že Dia křivdím a za ty roku, co jsem to opustil, se zlepšili.
Nicméně kromě Dia a yEd je dost použitelný i Draw v Libreoffice.
Zdar Max
Měl jsem sen ... :(
6.4. 08:58 Gilhad | skóre: 20 | blog: gilhadoviny
Rozbalit Rozbalit vše Re: Jednoduché formáty souborů (NetPBM, Dot, PCAP…)
Koukal jsem na ten yED, ale nejak nemuzu najit pod jakou je licenci ...
Max avatar 6.4. 09:33 Max | skóre: 69 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Jednoduché formáty souborů (NetPBM, Dot, PCAP…)
Custom:
yEd Software License Agreement

Version 1.2
This is a legal agreement ("this Agreement") between yWorks GmbH ("yWorks") and the licensee ("the Licensee").
yWorks licenses the yEd Software ("the Software") only if all the following terms are accepted by the Licensee.
The Software includes the yEd byte code executable and any files and documents associated with it.

By installing the Software, the Licensee is indicating that he/she has read and understands this Agreement and agrees to be bound by its terms and conditions.
If this Agreement is unacceptable to the Licensee, the Licensee must destroy any copies of the Software in the Licensee's possession immediately.

1. LICENSE CONDITIONS
The Licensee is granted a non-exclusive and non-transferable right to install one copy of the Software and use it as an application.
The Software may not be used as part of an automated process.
The Licensee may not reverse engineer, disassemble, decompile, or unjar the Software, or otherwise attempt to derive the source code of the Software.

The Licensee acknowledges that Software furnished hereunder is under test and may be defective.
No claims whatsoever can be made on yWorks based on any expectation about the Software.

2. TERM, TERMINATION AND SURVIVAL
The Licensee may terminate this Agreement at any time by destroying all copies of the Software in possession.
If the Licensee fails to comply with any term of this Agreement, this Agreement is terminated and the Licensee has no further right to use the Software.
On termination, the Licensee shall have no claim on or arising from the Software. The Software and any copies shall be destroyed.

3. NO WARRANTY
The Software is licensed to the Licensee on an "AS IS" basis. The Licensee is solely responsible for determining the suitability of the Software and accepts full responsibility and risks associated with the use of the Software.

4. MAINTENANCE AND SUPPORT
yWorks is not required to provide maintenance or support to the Licensee.

5. LIMITATION OF LIABILITY
In no event will yWorks be liable for any damages, including but not limited to any loss of revenue, profit, or data, however caused, directly or indirectly, by the Software or by this Agreement.

6. DISTRIBUTION
No distribution is to be made of the Software by the Licensee. The Licensee may make one copy of the Software for backup purpose only.

7. AVAILABILITY
The Software is not available to those not permitted by law to have access to the Software.

8. INSERTION OF MARKER
The Software may insert some markers into any output files to identify that the files are generated by the Software. yWorks bears no responsibility for any damages arising.

9. MISCELLANEOUS
This agreement is made and shall be construed in accordance with the laws of Germany.

---------------------------------------------------------------------------

THIRD-PARTY SOFTWARE AND LICENSES
This Software uses the Batik SVG Toolkit, Apache XMLBeans, Apache POI, and FreeHEP VectorGraphics library which are licensed under The Apache Software License (http://www.apache.org/licenses/).
This Software uses the JIDE Docking Framework and the JIDE Action Framework licensed from JIDE Software (http://www.jidesoft.com).
This Software uses icons licensed from Incors GmbH (http://www.incors.com).
This Software includes a parser generated with ANTLR v3, a Swing LnF created by JGoodies, and the TwelveMonkeys library. The BSD License applies to them (http://www.opensource.org/licenses/bsd-license.html).
The Swing LnF created by JGoodies uses some icons from the Tango project (http://www.tango-project.org/) licensed under the Creative Commons Attribution Share-Alike license (http://creativecommons.org/licenses/by-sa/2.5/). 
This Software uses the svg-viewer rendering engine (http://code.google.com/p/svg-viewer/). The MIT License applies to it (http://www.opensource.org/licenses/mit-license.php).
This Software uses the JavaHelp System v2.0_02 (https://javahelp.dev.java.net/). The Sun Microsystems, Inc. Binary Code License Agreement with JavaHelp Version 2.0 Supplemental License Terms applies to it.
The installer for this Software may contain a Java Runtime Environment (JRE). The Oracle Binary Code License Agreement for the Java SE Platform Products applies to it (http://www.oracle.com/technetwork/java/javase/terms/license/).
Zdar Max
Měl jsem sen ... :(
6.4. 19:33 Gilhad | skóre: 20 | blog: gilhadoviny
Rozbalit Rozbalit vše Re: Jednoduché formáty souborů (NetPBM, Dot, PCAP…)
Aha, tak nic, zustanu u dia i nadale ...
Bedňa avatar 8.4. 22:27 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Jednoduché formáty souborů (NetPBM, Dot, PCAP…)
MS Visio? To fakt Maxi?
KERNEL ULTRAS video channel >>>
6.4. 08:50 Zdenek 'Mst. Spider' Sedlak | skóre: 38 | blog: xMstSpider
Rozbalit Rozbalit vše Re: Jednoduché formáty souborů (NetPBM, Dot, PCAP…)
PlantUML a Diagrams (drawio). Na Dia jsem zacinal, ale zamrzla v 199x, bohuzel.

6.4. 21:01 User682 | skóre: 38 | blog: aqarium | Praha
Rozbalit Rozbalit vše Re: Jednoduché formáty souborů (NetPBM, Dot, PCAP…)
zdravim,

dia jsem zkousel a tak nejak na uplne zakladni veci pred hodne par roky stacila.

Pak jsem nasel yEd a to je na nejake kresleni postacujici, pokud clovek nechce nejake lehce slozitelsi diagramy.

Postupne jsem dosel k Visual Paradigm (placeny nastroj, ale je i snad nejake komunity edition) a je to, co jsem shanel. Na dost veci, co z architektury delam, se primo nabizi delat nejake UML a je to navic i srozumitelnejsi okoli. Nebo se to da casem prepouzit.

Posledni 2 roky programuju vcelku dost grafove algoritmy (teorie grafu) a hodne toho delam z tohoto oboru na papire+barevne fixy, kdyz mi to hlava nebere, obcas se divim, ze na to nevezmu nejaky soft. UML a CASE nastroje spise pouzivam na nejake navrhovani vetsich celku nez na reseni konkretnich algoritmu.

gf

9.4. 13:05 Mayhem Weltende
Rozbalit Rozbalit vše Re: Jednoduché formáty souborů (NetPBM, Dot, PCAP…)
Jak se ma linuxsoft? Pozvanky na pivo ani ohlednuti ze neuspesnym rokem uz nejak nevychazeji.

Nechces mi to prodat?
9.4. 15:20 _
Rozbalit Rozbalit vše Re: Jednoduché formáty souborů (NetPBM, Dot, PCAP…)
muzu ti prodat nejake stribrne pribory se slepici, nasel jsem je v lese
Heron avatar 6.4. 10:14 Heron | skóre: 52 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Jednoduché formáty souborů (NetPBM, Dot, PCAP…)
Dot je super. Jednak se to snadno píše ručně, vytvořit si graf závislostí něčeho na něčem (libovolně čeho) je hned. Automatické generování ani nezmiňuju, používá se to i na místech, kde bych to nečekal (systemd-analyze). Sám generuju graf DFA z definice v jednom programu pro kontrolu správnosti zadaných údajů podle jednoduché gramatiky. Jen je škoda, že generování obrázku (graphviz) nenabízí příliš mnoho možností, jak poradit umístění některých nodů - zkoušel jsem to používat pro mapu sítě a není to ono.
Prý je to proto, že ačkoli má PNG lepší kódování (nebere to tupě po řádkách, ale umí se odvolat na předchozí řádky), tak má jako poslední krok obyčejné DEFLATE, které je podstatně horší než bzip2.
Ano, i farbfeld (což je můj oblíbený archivní formát typu jednodušeji už to nejde) prohnaný přes LZMA je menší než i dobře optimalizovaný png. Což je zvláštní, zatímco optimalizace png pro nejlepší kombinace filtrů trvá fakt dlouho, tak obecná komprimace bez znalosti formátu přináší lepší výsledky o mnoho rychleji.
6.4. 10:33 jednoduche_formaty_souboru
Rozbalit Rozbalit vše NetPBM
možnost zpracování bitmapy skriptem se mi líbí, určitě pro to najdu využití, ale třeba v uvedeném příkladu s detekcí deště, jednoduše obrázek předpovědi srážek v nějaké oblasti nezískám, mapy radaru se generují dynamicky, wget by na tohle asi nestačil...
Jendа avatar 6.4. 11:05 Jendа | skóre: 76 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: NetPBM
wget https://www.chmi.cz/files/portal/docs/meteo/rad/inca-cz/data/czrad-z_max3d/pacz2gmaps3.z_max3d.`date -u "+%Y%m%d.%H%M" -d "10 minutes ago"`.0.png
? (s tím že by to chtělo zkusit poslední dva - někdy tam je obrázek už za 3 minuty, někdy to trvá 15)
6.4. 11:48 jednoduche_formaty_souboru
Rozbalit Rozbalit vše Re: NetPBM
dík za odkaz na data, tohle jsem nemohl najít
Jendа avatar 6.4. 11:53 Jendа | skóre: 76 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: NetPBM
Otevřel jsem tu odkazovanou stránku, dal jsem Ctrl+I (Page info), "Images", a tam to je.
Gréta avatar 7.4. 00:20 Gréta | skóre: 30 | blog: Grétin blogísek | Stockholm
Rozbalit Rozbalit vše Re: NetPBM

jj sou to supr fígle :D ;D

🚀 pozice české republiky v otázce obrany planety před asteroidy & kosmopolitní budoucnost lidstva hele 🚀
7.4. 10:32 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: Jednoduché formáty souborů (NetPBM, Dot, PCAP…)
Co jsem ocenil na graphviz formátu až nedávno jsou návazné filtry. Je docela fajn je možnost automaticky generovat graf relativně "tupě", a pak ho podle potřeby "stylovat" pro různé účely pomocí gvpr - obarvit podle typu, nechat jen "zajímavé" texty nebo určitý typ vrcholů, nebo - po profiltrování přes dijkstra - jen nody blízké vybranému a podobně.

Například se takhle dá udělat "proklikávací" graf - z velkého grafu (typicky nečitelného při zobrazení) se zobrazí nody v nějaké vzdálenosti od vybraného, a po kliknutí na jeden z nich zobrazí okolí vedle (a třeba po dvojkliku se skočí na URL v node, který říká o node víc).

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.