Mijn broncode

Archief Forum van Eric Smit & Uitgever (http://www.debroncode.nl)

Re: Mijn broncode

Berichtdoor Webmaster » wo 18 aug 2010, 07:33

From: MatrixView

The above is absolutely true. Altough completely false if you give the primenumber
a number of its position. The lowest number is the start of your index.
Ever realized that the positionnumber of a primenumber can be generated the same
as a primenumber and become a primenumber itself...Think guys...think!

CU


Lieve schat, ik denk dat je nog eens naar de testbank moet, want ook dit zal je niet veel winst geven na een paar iteraties. Dat komt omdat iedere vorm van data ná een kleinere transformatie van diezelfde data relatief steeds meer informatie bevat. Het klote hiervan is dat je data dan gemiddeld steeds moeilijker kleiner te transformeren valt in de volgende iteratie...

Ik vraag me nog maar 1 ding af: Beweer jij iedere willekeurige data met "jouw" methode te kunnen verkleinen (iteratief zelfs, zoals je zegt) en van daaruit weer tot de exacte originele data te kunnen komen?

P.S. Zovelen zijn je voorgegaan met eenzelfde idee. Het is op zich een mooi streven, want er spreekt hoop uit, maar wiskunde liegt nou eenmaal niet... Ik begrijp je koppige enthousiasme wel, maar ja...

I was once a believer too.... tòt dat f*cking duivengat! Ignorance is bliss... :-)

Succes.
Avatar gebruiker
Webmaster
Beheerder
 
Berichten: 1848
Geregistreerd: za 14 aug 2010, 13:21

Re: Mijn broncode

Berichtdoor Webmaster » wo 18 aug 2010, 07:33

From: Drazic

@Matrix:
Volgens mij heeft Sloot himself
gezegd dat het lossless zou zijn?
Bovendien zou zijn vinding voor
alle vormen van data werken,
maar niet alles kun je lossy opslaan.
Dus het moet wel lossles zijn.

btw, kijk hier eens is wel interessant:
http://www3.sympatico.ca/mt0000/bicom/bicom.html
Avatar gebruiker
Webmaster
Beheerder
 
Berichten: 1848
Geregistreerd: za 14 aug 2010, 13:21

Re: Mijn broncode

Berichtdoor Webmaster » wo 18 aug 2010, 07:34

From: MatrixView

@Matrix:
Volgens mij heeft Sloot himself
gezegd dat het lossless zou zijn?
Bovendien zou zijn vinding voor
alle vormen van data werken,
maar niet alles kun je lossy opslaan.
Dus het moet wel lossles zijn.

btw, kijk hier eens is wel interessant:
http://www3.sympatico.ca/mt0000/bicom/bicom.html


Hoi Drazic,

Thanx for the link, maar ik kende 'm al... datacompressie is een beetje een hobby van me... :-)
Grappig hè, die eigenschap van (de PPM variant) BiCOM... je kunt ook een normale file zien als gecompresste file en daarmee gaan decompressen...

Ja, over Sloot en (zijn) uitspraken... Ik zou 't graag geloven, maar helaas is dat niet mogelijk... je kan niet -iedere- data-file lossless tot 1024 bytes terugbrengen (ook niet met behulp van 400MB generic database)... zie bewijs in deze thread.

Maar dit kan wellicht wel als je lossy compresst... (alleen laat de kwaliteit dan waarschijnlijk erg te wensen over)... en het zou alleen voor (bewegende) beelden en geluid kunnen... Fouten in tekst en binaries zijn ongeoorloofd.
De repa-base zou dus wel lossless geweest moeten zijn, maar had waarschijnlijk niet zo'n geweldige compressie-ratio)

Het zou wellicht ook kunnen als de database niet generic is. (dan heb je dus ook een database-verstuur-probleem)

Zelf denk ik dat het een combinatie is van beiden. Sloot's database was waarschijnlijk NIET generic en hij compresste ook NIET lossless... (Hij/iemand) heeft dus een "beetje" gejokt... (Wat toch echt niet ondenkbaar is voor iemand die diep in de schulden zit en zich met een leugen daaruit zou kunnen redden). Maar goed, dat is mijn mening.

Zou Sloot dan nog wel een interessante uitvinding hebben? Dat denk ik wel, want tegenwoordig worden de overeenkomsten van micro-stukjes film/beeld/geluid tussen verschillende films nog steeds niet (slim) gecodeerd.
Sloot deed dit wel in zijn codebook (database). Hij sloeg alle gedetailleerde onderdelen van een aantal films maar eenmalig op (dezelde (of gelijkende) onderdelen, kregen eenzelfde code).

Wat betreft het lossy verhaal:
Je zou voor de grap 's even 1 van Sloots verwezen patenten moeten doornemen. Het beschrijft een Quantifier die gelijkende stukjes data eenzelfde code geeft (niet zijn patent). Er werd ook van nog meer andere slimme ideeen (patenten) gebruik gemaakt. De combinatie is waarschijnlijk uniek.

Groet,
MatrixView.
Avatar gebruiker
Webmaster
Beheerder
 
Berichten: 1848
Geregistreerd: za 14 aug 2010, 13:21

Re: Mijn broncode

Berichtdoor Webmaster » wo 18 aug 2010, 07:35

From: Cugel

Wat betreft het lossy verhaal:
Je zou voor de grap 's even 1 van Sloots verwezen patenten moeten doornemen. Het beschrijft een Quantifier die gelijkende stukjes data eenzelfde code geeft (niet zijn patent). Er werd ook van nog meer andere slimme ideeen (patenten) gebruik gemaakt. De combinatie is waarschijnlijk uniek.

Groet,
MatrixView.


Heeft één van jullie wel eens wat gelezen van over kleurenpercentages en de maximale verhoudingen daarvan.
Elektrisch gezien kom je dan op een wel heel erg interessante database uit...wel 5 om te verstaan. Voor het geluid
doe je exact hetzelfde. Optisch gezien zet je die 5 tegenover elkaar. Je geeft elke key ( pixel ) een tijdcode mee.
En die tijdcode daar gaat het om op de keycard. Het enige dat je uitrekend zijn die tijdcodes en dat loopt gewoon op
net als van 1 t/m 10.000.000 tellen....en de scenes geef je ook weer in de database als een reeks van een waarde.
Jullie begrepen al dat juist die waarde een eitje is om weer te geven als priemgetal.

Als je dus een fout in de reeks maakt krijg je helaas wel een wending in de film die de regiseur nog niet bedacht had.
Geschiedenis is dus maar net afhankelijk hoe je het weergeeft of wie het geschreven heeft....
Avatar gebruiker
Webmaster
Beheerder
 
Berichten: 1848
Geregistreerd: za 14 aug 2010, 13:21

Re: Mijn broncode

Berichtdoor Webmaster » wo 18 aug 2010, 07:36

From: Drazic

@MatrixView:

Thanx for the link, maar ik kende 'm al... datacompressie is een beetje een hobby van me... :-)
Grappig hè, die eigenschap van (de PPM variant) BiCOM... je kunt ook een normale file zien als gecompresste file en daarmee gaan decompressen...


Precies! En als je de output daarvan nou ook weer eens zou zien als een gecompressede file, en dat
weer gaat uitpakken, en de output daarvan weer uitpakken, etc. dan kom je na 100x herhalen op een
heeeeeeel groot bestand uit... Volgens jou therorie kan ik dit bestand nooit in 1024 bytes kwijt. Volgens
de wet van Shannon of het pigeon hole effect ook niet. Maar als ik het kleine bestand waar ik mee
begonnen ben + het aantal herhalingen opsla, is dat misschien amper 1024 bytes, en daar kan ik dus
foutloos een bestand van een paar gig mee genereren. Het probleem is alleen hoe je dit process
omdraait zodat je zelf het bestand van 1 gig voor het kiezen hebt, en bruteforcend een weg zoekt
naar het meest optimale kleine bestand ;)

Je zou ook bijv. een md5 hash van een groot databestand op kunnen slaan, vervolgens bruteforcen
(eventueel vanaf een meegegeven offset) tot je bij de goede md5+data uitkomt, en dan opslaan
hoeveel collisions (=zelfde md5 met andere brondata) je onderweg bent tegen gekomen tot de md5
en data kloppend zijn. De ontvanger hoeft nu alleen maar de md5 hash + collisionsaantal te ontvangen
en zou dan collisions kunnen gaan genereren totdat de collisioncount bereikt is, en voila data is weer
terug in orginele staat. Heb dit nooit uitgeprobeerd, en kost misschien wel veel cpu, maar is misschien
een ideetje? Er worden vrijwel geen collisions gevonden voor hashes als MD5 dus waarschijnlijk blijft
de collisioncount die je moet opslaan vrij laag altijd (misschien wel meestal 1 of 2)

Heeft één van jullie wel eens wat gelezen van over kleurenpercentages
en de maximale verhoudingen daarvan.


Ja... Sloot had het over 3D coderen ipv de gebruikelijke 2D. Mijn idee is dat hij over 3D
sprak omdat hij behalve de RGB waardes van een pixel ook de verandering in intensiteit
opsloeg oid (bedoel je dat met kleurenpercentages?)

Elektrisch gezien kom je dan op een wel heel erg interessante database uit...


Verklaar je nader...

Je geeft elke key ( pixel ) een tijdcode mee. En die tijdcode daar gaat het om op de
keycard. Het enige dat je uitrekend zijn die tijdcodes en dat loopt gewoon op net als van
1 t/m 10.000.000 tellen....en de scenes geef je ook weer in de database als een reeks van
een waarde. Jullie begrepen al dat juist die waarde een eitje is om weer te geven als priemgetal.


Ik snap het nut van je tijdcode nog niet echt... Normaal staan de frames toch zowiezo al gesorteerd
op tijd zou je zeggen... En je pixels dus ook...Enigste reden om een tijdcode op te gaan slaan (die
ik kan bedenken) is wanneer je sommige frames/pixels weglaat, en de film toch nog synchroon met
het orgineel wilt kunnen afspelen, of wil je alleen nog maar tijdcodes opslaan en niet de bijhorende kleuren?
Die tijdcodes kun iid heel efficient opslaan, maar je hoe kom je aan de database die je de goede kleur vertelt
voor elke tijdcode? Kortom, ik snap je plan nog niet helemaal, maar ben erg benieuwd naar wat je bedoeld :-)
Avatar gebruiker
Webmaster
Beheerder
 
Berichten: 1848
Geregistreerd: za 14 aug 2010, 13:21

Re: Mijn broncode

Berichtdoor Webmaster » wo 18 aug 2010, 07:37

From: MatrixView

@MatrixView:

Precies! En als je de output daarvan nou ook weer eens zou zien als een gecompressede file, en dat
weer gaat uitpakken, en de output daarvan weer uitpakken, etc. dan kom je na 100x herhalen op een
heeeeeeel groot bestand uit... Volgens jou therorie kan ik dit bestand nooit in 1024 bytes kwijt. Volgens
de wet van Shannon of het pigeon hole effect ook niet. Maar als ik het kleine bestand waar ik mee
begonnen ben + het aantal herhalingen opsla, is dat misschien amper 1024 bytes, en daar kan ik dus
foutloos een bestand van een paar gig mee genereren. Het probleem is alleen hoe je dit process
omdraait zodat je zelf het bestand van 1 gig voor het kiezen hebt, en bruteforcend een weg zoekt
naar het meest optimale kleine bestand :-P


Hoi Drazic,

:-) Het is een leuk idee dat je oppert, maar je vergeet 1 ding... Jij begint al met een file die kleiner is dan 1024 bytes (dus een compressed file waarvan je al weet dat die na N x compressen kleiner zal zijn dan 1024 bytes). Maar dat wil natuurlijk NIET zeggen dat -IEDERE- file tot kleiner dan 1024 bytes gecompressed kan worden.

Probeer maar eens ieder mogelijk bestand van 1025 bytes in 1024 bytes te stoppen... Dat zijn 2^(1025*8) verschillende files... en die kunnen helaas niet allemaal uniek zijn binnen 2^(1024*8) files...

OF

Neem iedere willekeurige file en ga die met Bicom iteratief compressen... Je zult er dan bij bijna iedere file al snel achter komen, dat je compressed file GROTER begint te worden na een aantal iteraties... Het aantal files dat dus lossless in 1024 bytes gepakt kan worden is dus enorm klein (t.o.v. ieder willekeurig ander bestand)

Je zou ook bijv. een md5 hash van een groot databestand op kunnen slaan, vervolgens bruteforcen
(eventueel vanaf een meegegeven offset) tot je bij de goede md5+data uitkomt, en dan opslaan
hoeveel collisions (=zelfde md5 met andere brondata) je onderweg bent tegen gekomen tot de md5
en data kloppend zijn. De ontvanger hoeft nu alleen maar de md5 hash + collisionsaantal te ontvangen
en zou dan collisions kunnen gaan genereren totdat de collisioncount bereikt is, en voila data is weer
terug in orginele staat. Heb dit nooit uitgeprobeerd, en kost misschien wel veel cpu, maar is misschien
een ideetje? Er worden vrijwel geen collisions gevonden voor hashes als MD5 dus waarschijnlijk blijft
de collisioncount die je moet opslaan vrij laag altijd (misschien wel meestal 1 of 2)


Helaas...MD5 bevat niet de INFORMATIE uit het originele bestand... Uit (alleen) een MD5 bestand kun je dus niet het origineel toveren...

Tenzij MD5 voor iedere file uniek is (wat niet zo is) en er een database bestaat waar alle mogelijke files in staan (en dat is onmogelijk) met bijbehorende MD5 waarden, begin je hier niks mee.


Heeft één van jullie wel eens wat gelezen van over kleurenpercentages
en de maximale verhoudingen daarvan.


@Cugel
Nee. Maar ik vrees dat jij ons er "alles" over gaat vertellen in je eigen vage onbegrijpelijke uitleg.

Elektrisch gezien kom je dan op een wel heel erg interessante database uit...
Je geeft elke key ( pixel ) een tijdcode mee. En die tijdcode daar gaat het om op de
keycard. Het enige dat je uitrekend zijn die tijdcodes en dat loopt gewoon op net als van
1 t/m 10.000.000 tellen....en de scenes geef je ook weer in de database als een reeks van
een waarde. Jullie begrepen al dat juist die waarde een eitje is om weer te geven als priemgetal.


Zoals Drazic al zei: leg uit... (liefst met links en duidelijke taal, want de onbegrepen New Wave "professor" uithangen, dat kan iedereen.)
Avatar gebruiker
Webmaster
Beheerder
 
Berichten: 1848
Geregistreerd: za 14 aug 2010, 13:21

Re: Mijn broncode

Berichtdoor Webmaster » wo 18 aug 2010, 07:38

From: Drazic

@MatrixView

Helaas...MD5 bevat niet de INFORMATIE uit het originele bestand...
Uit (alleen) een MD5 bestand kun je dus niet het origineel toveren...


Uit ALLEEN een MD5 niet, maar de truuk zit hem in dat je het collision nummer
ook op slaat. Ik zal me ff nader verklaren (in tegenstelling tot Cugel lol),
stel ik heb de volgende string: "MatrixView" en daar bereken ik de MD5 voor.
Vervolgens ga ik voor string "AAAAAAAA", "AAAAAAAB" , "AAAAAAAC" etc. de
hashes berekenenen... Tot ik aan de orginele string kom ("MatrixView" in dit
geval, ongeveer op de helft, dus hoef niet door te gaan tot "zzzzzzzz").
Als ik noteer hoeveel strings ik onderweg tegen ben gekomen met dezelfde
MD5 hash als "MatrixView" (in veel gevallen zijn dit er 0 en anders 1 of 2),
dan kan ik de tekst weer uitpakken door vanaf een vast punt strings te gaan
genereren ("AAAAAAA" in dit voorbeeld) en als ik de gezochte md5 hash tegenkom
bij een van die strings, hoog ik het collision nummer weer op zoals hierboven,
en als dat nummer gelijk is aan het nummer dat doorgegeven is door de
compressor, dan weet ik dat de huidige string ("MatrixView") de goede moet zijn....

Tenzij MD5 voor iedere file uniek is (wat niet zo is)


Daar dient dat extra getalletje juist voor dat naast elke md5 word opgeslagen
door de compressor, ik noem het de 'collision count' vanaf nu ;)

De vraag is nu alleen of een MD5 + Collision count minder dataopslag vereist
als het orgineel. Ik denk van wel, maar heb dit nooit uitgerekend of getest tot nu toe...
Avatar gebruiker
Webmaster
Beheerder
 
Berichten: 1848
Geregistreerd: za 14 aug 2010, 13:21

Re: Mijn broncode

Berichtdoor Webmaster » wo 18 aug 2010, 07:40

From: MatrixView

Daar dient dat extra getalletje juist voor dat naast elke md5 word opgeslagen
door de compressor, ik noem het de 'collision count' vanaf nu :-P

De vraag is nu alleen of een MD5 + Collision count minder dataopslag vereist
als het orgineel. Ik denk van wel, maar heb dit nooit uitgerekend of getest tot nu toe...


Hey Drazic,

Bedankt voor je duidelijke uitleg. Dat zouden meer mensen moeten doen.

Praktisch gezien zijn computers niet snel genoeg om de "collision count" van een file met een beetje grootte te berekenen. Deze collision count is namelijk (in tegenstelling tot wat je denkt) ENORM groot als de MD5 file veel kleiner is dan de originele file.

Nu theoretisch:

Neem dit hele simpele voorbeeld: stel je voor dat er maar 256 orginele files bestaan. Die zijn dus lossless uncompressed op te slaan in 8 bits. Laten we zeggen dat hun MD5 opgeslagen wordt in 4 bits. (klinkt aardig, want dat is 50% compressie)... Maar helaas zijn er dan maar 2^4 = 16 verschillende (unieke) MD5 files.

Nu, hoe groot is de collision count? Er zijn dus 256 - 16 = 240 files die een bijbehorende MD5 file hebben die exact dezelfde is als van (in ieder geval) 1 andere originele file. Als het goed verdeeld is, is je collision count maximaal
240/16=15 en minimaal 0. En gemiddeld heb je 'm dus te pakken bij (15+0)/2=7,5 (= tussen de 7 en de 8). Om de waarde van de collision count op te slaan heb je gemiddeld dus 3,5 bits (= 4 bits) nodig.

Dus de MD5 + Collision Count zijn gemiddeld op te slaan in 4 + 4 = 8 bits... (=zelfde als aantal orginele files)

Kut hè...

In onze "echte" wereld komen we niet veel md5 collisions tegen omdat we praktisch gezien niet werken met iedere mogelijke file. (Met z'n allen hebben we zelfs maar een heel klein percentage van alle mogelijke files).
Avatar gebruiker
Webmaster
Beheerder
 
Berichten: 1848
Geregistreerd: za 14 aug 2010, 13:21

Re: Mijn broncode

Berichtdoor Webmaster » wo 18 aug 2010, 07:41

From: Drazic

@Matrix

Deze collision count is namelijk (in tegenstelling tot wat je denkt) ENORM groot als de MD5 file veel kleiner is dan de originele file.


Dat valt wel mee... Als je de data in blokken van een bepaalde grootte verdeeld, bijvoorbeeld 500 tekens, dan kunnen collisions alleen binnen een relatief kleine range optreden. Bovendien hebben de collisions een heel handige eigenschap die misschien uitgebuit kan worden: de spreiding over de range is heel erg regelmatig...!

Praktisch gezien zijn computers niet snel genoeg om de "collision count" van een file met een beetje grootte te berekenen.


Als je weer van bijv. 500 tekens uitgaat, dan zou je alle mogelijke hashes van data van 500 tekens in
een (hardwarematige?) lookup table kunnen plaatsen, bovendien kost een hash over kleinere blokken
berekenen veel sneller dan voor "een file met een beetje grootte"....

Nu theoretisch:

<snip>

Dus de MD5 + Collision Count zijn gemiddeld op te slaan in 4 + 4 = 8 bits... (=zelfde als aantal orginele files)


Bedankt voor het rekenwerk! Waarschijnlijk heb je wel gelijk, maar ik was maar een beetje aant brainstormen
in dit topic :-P Het enigste wat ik er op aan wil merken is dat een MD5 die 50% van de orginele data in beslag
neemt zeer zeldzaam is :-) Gaat vrijwel altijd om minder dan een procent en toch zijn er tot op heden nauwelijks
collisions gevonden.. Hoe verklaar je dat? :-P Bovendien is de bloklengte van mijn ideetje fixed, wat de kans op
collisions aanmerkelijk verminderd.. Laten we blijven zoeken ;)
Avatar gebruiker
Webmaster
Beheerder
 
Berichten: 1848
Geregistreerd: za 14 aug 2010, 13:21

Re: Mijn broncode

Berichtdoor Webmaster » wo 18 aug 2010, 07:42

From: Cugel

Een kleurendatabase kun je percentueel verdelen in stapjes van 1% per kleur.
Per kleur dus maar 100 plaatsen, lagere percentages zie je niet!
Per pixel ( oplopend per 1/seconde afhankelijk van de refreshrate ) heb je dus altijd
een bepaalde waarde die wordt ingelezen tijdens het filmen.
Als we de R-database nemen van bijv. 10%R per pixel hoef je daar alleen maar aan te
geven welke seconde(s) dat voorkomt. Deze reeks daar gaat het om...die loopt gewoon
als counter van 0 naar hoe lang de film duurt. Per database geef je dus eerst aan wanneer
ze "op mogen treden". Het grappige is dat het complement van de kleuren zichzelf uitrekend
tot 100% tenzij R of G beide al 100% aangeven. Als er dus niets veranderd aan een specifieke
pixel sla je dus ook niets op. bij bijv. een res van 800 x 600 heeft pixel 1 (~sec =1 ) de positie
linksboven op een tv. Na ~sec=480000 heb je de pixelwaarde van de pixel rechtsonder berekend.
~sec=4800001 is weer linksboven etc. etc. Het enige wat je dus moet doen is opslaan bij welke pixel
de percentuele eigenschappen horen. Dit ziet er gek genoeg bijna in 100% van de gevallen uit als
een piramide vorm en de "secondeplekken" kun je weer vergelijken met een priemgetal.
In de tussentijd van de refreshrate heb je dus tijd om te rekenen, maar dan wel voor elke kleur appart.

Op de X-as staat het percentage van de kleur, op de Y-as de helderheid en op de Z-as de tijdstippen
dat het voorkomt. Probeer het eens uit op een velletje papier of in Excel. Je ziet dat er een max en min
is aan de waarden. Het eerste plaatje moet dus opgeslagen worden juist op de 64Kb USB stick en heeft
een nr. om deze op te roepen. De strings voor de settings van de X, Y, Z waarde gaan als priemgetalnr
door. De kneep zat/zit 'm dus ook in de kwaliteit van dat eerste plaatje.

Je moet je wel voorstellen dat juist het afstellen van kleuren en de eigenschappen van een kleurenkanon
Jan Sloots' paradepaardje waren. Door het uitlezen van de tv kon hij zo zien waar de fout zat.
Elke tv had zijn eigen karaktereigenschappen...vandaar ook dat je eens een film door een osciloscoop moet
kijken...dan zie je meteen wat er gaande is.
Avatar gebruiker
Webmaster
Beheerder
 
Berichten: 1848
Geregistreerd: za 14 aug 2010, 13:21

VorigeVolgende

Keer terug naar Forum Archief (wwww.debroncode.nl)

cron