Film se v obrázku kromě „zvýšené“ velikosti (Pepíček: „Mami, mám zvýšenou teplotu!“ — Maminka: „A kolik máš?“ — Pepíček: „Dva milióny tři sta dvacet pět tisíc osm set padesát jedna devět.“ — Maminka: „Tak to místo obvodního lékaře půjdeme k obvodnímu astrofyzikovi.“) nijak neprojeví. Vzhled JPEGu se tím nijak nezmění a vložený soubor je na JPEG obrázku nezávislý. Díky tomu, že jsou použity pouze obrazové tagy, film dokonce není odstraněn běžnými filtry, které se snaží sanitizovat přídavnou informaci v JPEGu jako EXIF.
Jako dítě jsem vytočil kolečko nulování váhy v koupelně tak daleko, že se mechanismus rozebral a rodičům se ho již nepodařilo složit. Dnes rozeberu JPEG a vložím do něj různě velké filmy a 31GB video. Na rozdíl od váhy bude tentokrát složení úspěšné – složí se jak některé prohlížeče, tak mobilní aplikace a dokonce i iOS.
Vyrobil jsem JPEG vyfocením Měsíce a mraků. Obsahuje přírodní kvantizační tabulky. Vložil jsem 65 MB dalších, nadbytečných kvantizačních tabulek. Nahrál jsem ho na iPhone X přes Airdroid s úspěchem. Když jsem se na něj chtěl podívat aplikací EXIF prohlížeče Exif Lite, tato opakovaně padala a nic nezobrazila.
V galerii iPhonu se obrázek zobrazí a po stažení Airdroidem dostaneme identický soubor jako před nahráním na telefon. Předběžný test uspěl, teď napíšu C program, který do DQT tabulek vkládá libovolné soubory: Jpeginsert.
Celovečerní JPEGy
Můžete si Jpeginsert nainstalovat a vyzkoušet na těchto zábavních JPEGách, které jsem připravil. Pak si povíme, jak program funguje:
Velikost výsledného JPEGu | Obrázek, do kterého jsem data zakódoval (obrázek v článku neobsahuje zakódovaná data, na Internetovém archivu ano) | Typ | Doba hraní | Formát | Licence |
---|---|---|---|---|---|
3,8 MB | Audio – hudba | 1 min 32 s | mp3 320 kbps | CC-BY Jimmy Fontanez, Doug Maxwell | |
Urban Lullaby: chytlavá R&B a soulová melodie od Jimmyho Fontaneze a Douga Maxwella, která se mi moc líbila a byla použitá v níže uvedeném videu z Paříže. Příkaz k přehrání (obsahuje URL obrázku s vloženými daty): jpeginsert_play_url.sh https://archive.org/download/Urban_Lullaby_audio_in_JPG/lullaby_with_audio.jpg |
|||||
529 MB | Video přednášky | 1 h 5 min | H.264 720p 30 Hz | CC-BY Elonka Dunin | |
Slavné nerozluštěné kódy: kryptoložka Elonka Dunin rozebírá zejména tajemný Voynichův kodex, který nikdo nerozluštil, ani NSA, a 4. nerozluštěnou část šifrované sochy Kryptos vně budovy CIA. Příkaz k přehrání (obsahuje URL obrázku s vloženými daty): jpeginsert_play_url.sh https://archive.org/download/Famous_Unsolved_Codes_by_Elonka_Dunin_video_in_JPG/Famous_Unsolved_Codes_video_inside.jpg |
|||||
818 MB | Dronové video | 34 min | H.264 1080p 30 Hz | CC-BY The Dronalist z YoutTube | |
Gigantická Eiffelovka rozkročená nad nepatrnýma lidičkama a záplavy pařížských paláců a střech, které, pro mě překvapivě, nejsou červené ani zelené ale šedé a bílé. Řeka, mosty, bulváry, oblouky, parky, paláce a katedrály a na 2:15 se dron otáčí nad kruhovým objezdem rychlostí stejnou jako kroužící auta, takže to vypadá jako že auta stojí a země se pod nimi točí (toto je mimochodem princip Fourierovy transformace). Příkaz k přehrání (obsahuje URL obrázku s vloženými daty): jpeginsert_play_url.sh https://archive.org/download/Paris_Drone_France_video_in_JPG/Paris_Drone_France_video_inside.jpg |
|||||
1,2 GB | Dronové video | 43 min | H.264 1080p 30 Hz | CC-BY The Dronalist z YoutTube | |
Brooklynský most, slunce a lesknoucí se voda a skla mrakodrapů, ulice, křižovatky, světla, auta, metro, mosty a nadjezdy. Příkaz k přehrání (obsahuje URL obrázku s vloženými daty): jpeginsert_play_url.sh https://archive.org/download/New_York_Drone_video_in_JPG/New_York_Drone_Cinematic_Aerials_video_inside.jpg |
|||||
2,47 GB | Dokumentární video | 5 h 45 min | H.264 1080p 30 Hz | CC-BY Plainly Difficult z YouTube | |
Dokumentární maratón o jaderných a chemických haváriích, výbuších, kontaminacích a katastrofách od youtubera Plainly Difficult. 16 kilo uranu v kýblu, které chytlo jadernou reakci. Gigantický smrtící chemický výbuch v Bhopálu. Komu bouchlo radioaktivní americium do obličeje a incident rozchodil, ale měl z toho 4 infarkty? Radioaktivní kůlna. Momentový klíč zapadl do jaderného sila, kde raketa vybouchla, 740-tunové víko vyletělo do výšky 60 metrů a jadernou hlavici to odhodilo 200 metrů. Toto je sborník jeho 4. roku tvorby. Příkaz k přehrání (obsahuje URL obrázku s vloženými daty): jpeginsert_play_url.sh https://archive.org/download/Plainly_Difficult_Year_4/Plainly_Difficult_Year_4_video_inside.jpg |
|||||
4,00 GB | Dokumentární video | 8 h 23 min | H.264 1080p 30 Hz | CC-BY Plainly Difficult z YouTube | |
Po výbuchu Challengeru přestaly raketoplány létat a chloristan amonný do raketových motorů se výrobci hromadil až do 3 800 tun, kdy v jeho blízkosti svářel svářeč. Detonace dosáhla čísla 3,5 na Richterově stupnici. A mnoho dalších skutečných příběhů: i Švýcaři roztavili jaderný reaktor, stále hořící požár uhelného dolu, protržené přehrady, pády mostů, experimenty na dětech, výbuchy chemiček, dioxiny, pád jaderného reaktoru z vesmíru a korunu tomu nasadí černá královna všech jaderných výbuchů: Černobyl. Příkaz k přehrání (obsahuje URL obrázku s vloženými daty): jpeginsert_play_url.sh https://archive.org/download/Plainly_Difficult_Year_5/Plainly_Difficult_Year_5_video_inside.jpg |
|||||
31,0 GB | Video záznam | 9 h 38 min | MPEG2 480p 30 Hz | Public Domain | |
Gigantický 31 GB JPEG z původního 116 kB 720×540 screenshotu je největší z těchto všech JPEGů do kterých jsem vložil data. 15 let starý záznam ze Senátu Spojených států člověk místo zábavního zážitku spíš použije na testování implementací JPEG dekodérů a webových prohlížečů. Příkaz k přehrání (obsahuje URL obrázku s vloženými daty): jpeginsert_play_url.sh https://archive.org/download/Senate_Proceeding_video_inside_JPEG/senate_proceeding_12-17-07.mpeg2_inside.jpg |
Koukáme se do specifikace JPEG
ITU (vlevo), která vydala JPEG, byla založená před 156 lety při rozvoji mezinárodního telegrafu, a je jednou z nejstarších mezinárodních organizací vůbec a částí OSN. CC-BY-SA 3.0 Filzstift, Wikimedia Commons
182stránková Specifikace JPEGu ITU-T T.81 ze září roku 1992 se stala absolutním hitem, i po 30 letech se stále masivně používá. Z těch ostatních hitů roku 1992 je můj nejoblíbenější asi Rage – Run To You. Teď se podíváme do specifikace, co nám tam ty Spojené národy vymyslely. Moje oblíbená záhlaví:
- B.2 Syntax JPEGu
- B.2.4 Syntax tabulek a různých marker segmentů
- B.2.4.1 Syntax kvantizačních tabulek (ta 0×FF 0×DB DQT věc uvnitř JPEGu)
Opět se podíváme do Měsíce a mraků. Tabulka je v bloku pouze jedna (n=1):
Do koeficientů Qk – samotného obsahu tabulky – si můžeme dát co chceme, ve standardu se ale píše, že obsahy těch koeficientů mají být nenulové. Přídavné kvantizační tabulky se nepoužijí, přepíšou se pak zase těmi původními. Při testu se nezdálo, že by nuly někdo kontroloval. Nacpal jsem do souboru těch nul asi 65 megabajtů a nestěžovali si:
V příštím díle ale dodržím specifikaci JPEGu nenulovými hodnotami a data — velká čísla — tak budu muset přepočítat z 256kové číselné soustavy na 255kovou.
Anketa
Který z těchto hitů z roku 1992 je váš nejoblíbenější?
- Specifikace ITU-T T.81 (JPEG)
- Dunbarovo číslo
- První detekovaná exoplaneta
- protokol SOCKS
- 2 Unlimited – Workaholic
- Bon Jovi – Keep The Faith
- Snap! – Rhythm Is A Dancer
- Technotronic – Move This
- Rage – Run To You
- Roxette – How Do You Do!
- Dr. Alban – It's My Life
- Aphex Twin: Heliosphan
- Mike Oldfield: Tubular Bells II