Forum: De Broncode (104 topics)  
Topic: Mijn broncode (deel 2)  
MatrixView
11-3-2005 10:26:00
[De eerste thread werd een beetje lang en onoverzichtelijk, vandaar: deel 2]

Cugel wrote:
"Je zou jezelf eens af moeten vragen in hoeveel signalen jijzelf beeld ontvangt met je ogen.
Maw...wat wordt er nu exact uitgezonden wat jij ontvangt en denkt/weet te zien.
Data is slim...wij rangschikken deze alleen fout met de huidige comm. methoden.
Lees eens wat over DNA/RNA!"

Dat is heel erg relatief, want dat kan voor iedere persoon anders zijn en ook zelfs van keer tot keer voor eenzelfde persoon verschillen. Ieder persoon merkt op/herkent andere details / kleuren en objecten. Ik denk niet dat je doelt op object-herkenning in voor en achtergrond, want al lijken we dit -als mensen- heel snel en gemakkelijk te doen, het is volgens mij toch een vrij ingewikkeld process in onze hersenen.

Als je het nog meer -basic- bedoelt, zien we gekleurde patronen en merken we de direct zichtbare verschillen op tussen vlakken in het beeld. Maar ook dat is relatief. Zelf ben ik bijvoorbeeld gedeeltelijk kleurenblind.

Ik denk niet dat we natuurlijke beelden als -simpel- moeten gaan afdoen. In een natuurlijk beeld zit een enorme hoeveelheid informatie... dit zijn geen Nijntje-tekeningen of Mondriaan-paintings (>1930).

De huidige digitale communicatie en opslag is vooral gericht op -foutvermindering-.
Bij Losless is dat -totaal- en bij Lossy is dat menselijk gezien en/of processgericht -goed genoeg-.
Uiteindelijk sturen we dus toch een enorme hoeveelheid informatie over en in binaire/digitale vorm ken ik daarvan aardig de beperkingen qua logische grootte.

Maar zoals ik al eens eerder zei, valt er toch nog een hoop winst te halen als je uitgaat van het feit dat er (zolang je maar klein genoeg gaat) altijd heel veel overeenkomsten zitten tussen 2 verschillende gegevens (bv files).

Bij films wordt er nu nog steeds voor een aantal frames binnen een film, (gelijkende) overeenkomsten bijgehouden en verschillen gecodeerd. Maar er wordt nog steeds niet gebruik gemaakt van de overeenkomsten die in tijd wat verder uit elkaar liggen OF (gelijkende) overeenkomsten tussen meerdere films. Daar is namelijk een database voor nodig.

Nu neem ik even een zeer simpel en stom voorbeeld: Denk aan 2 verschillende (horror)films... maar dan op (sub...)beeld-niveau. De (in ieder geval: gelijkende) overeenkomsten zijn enorm. Gemakshalve neem ik horrorfilms als voorbeeld, omdat deze nogal veel dezelfde donker gekleurde sub-beeldjes hebben...Maar dat kun je nog veel algemener maken als je de kleuren splitst (in analoge vorm is dit al zo) in basiskleuren. Daarmee bedoel ik het feit dat bv. 1000-den totaal verschillende kleuren toch allemaal uit exact dezelfde hoeveelheid groen bestaan.

Als je dit alles slim kunt coderen, door gebruik te maken van een database, waarin dergelijke (sub...sub.... beeldjes staan) of nog slimmer... formules die met een geringe hoeveelheid parameters een enorme hoeveelheid van (gerangschikte) sub beeldjes kunnen genereren... of nog mooier... formules die parameters voor volgende formules kunnen genereren die weer... etc...

Sloot maakte hier volgens mij grof gebruik van...maar zeker weten doe ik niks. Maar hoe maak je zoiets generiek voor iedere bestaande en toekomstige film...? Dat zie ik nog niet. Vandaar dat ik denk dat zijn methode lossy (gelijkend = genoeg) en gebruik maakte van een niet-generieke database (voor een beperkte hoeveelheid films).

Dan is er nog 't analoge verhaal... Hij was een tv-reparateur, geen wiskundige of informaticus en volgens mij al helemaal geen echte digitaal (binair) kenner. Nu weet ik zelf evenveel van analoge technologie als een pak hooi, maar daar wordt aan gewerkt.

Cugel, wat voor nut heeft ontwikkelings-biologische kennis van Dna/Rna in dit verhaal? Dit is geen afzeik-vraag!
Maar een term als: "data is slim" klinkt mij zo loos in de oren... Wat we ermee doen, DAT kan slim zijn, of hoe we het rangschikken kan OOK slim zijn...

Als er iets niet duidelijk is voor iemand in het hierbovenstaande wil ik dit best uiteenzetten.

CU guys.
 
Troebelwater
11-3-2005 20:47:00
Hallo allemaal,
'k heb de indruk dat jullie je bezig houden met compressie (als oplossing).
Maar sloot had toch iets van algoritmen, dus dat je voor beeld een nummer verzint
en dat omtovert naar een code?
 
MatrixView
12-3-2005 0:16:00
[quote]Hallo allemaal,
'k heb de indruk dat jullie je bezig houden met compressie (als oplossing).
Maar sloot had toch iets van algoritmen, dus dat je voor beeld een nummer verzint
en dat omtovert naar een code?[/quote]

Nou, om even een bridge over -troubled water- heen te leggen... dat ligt er maar net aan wat jij of Sloot onder compressie verstaat. In mijn bovenstaande concept heb ik het eerst nog maar even over rangschikking en codering van data in de database en laat ik de klassieke compressiemethoden even op stal.

Ieder beeld een nummer geven is niet genoeg... je zult onderdelen van dat beeld ook slim moeten "nummeren".

Lees de patenten van Sloot nog even door.
 
Troebelwater
12-3-2005 6:43:00
Heb ik gedaan, maar daar heb ik niet zo'n verstand van, i.e. beelden, analoge signalen, logische poorten etc.
'k programmeer zelf ook een beetje, vooral basic, of vba in excel.
C++, java, c# ken ik alleen voorwat betrefd kern statements, heb daar nooit iets zinnigs mee kunnen maken.
Geloof een venstertje in java en een applet met getekende rondjes er in :).

Maar 'k ben dus vanuit het perspectief van de pc aan't denken.
Zo vraag ik me alf af of je dmv een algo en een nummer een tekst kunt reconstrueren.
Omdat dat na mijn idee de kern van de zaak is, immers er was spraken van 5 algoritmen.
En kern gegevens die zijn dan gewoon hardware matig vast gelegd (kan best zijn dat ik nu aan't ijlen ben),
'k ben in de veronderstelling dat er bij een pc ook van alles is in gebakken.

Vanuit het perspectief van de pc kan je geloof ik zeggen, byte waarde en ascii tabel:
00000000 <=> NULL, waarmee ik wil zeggen de combinatie van "enen en nullen" is een
bepaalde waarde in de tabel

Als Sloot nu es alleen maar de enen heeft gebruik ipv een combinatie van, dan hoeft je de combinatie
van ook niet telkens te berekenen? (wanneer dat zo bij een pc het geval zou zijn, kan me niet voorstellen
dat een ascii tabel is in gebakken, dus vinden er telkens berekeningen plaats)

Al is het dan maar zoals bij C of C++, dat de ascii tabel in een array staat, dan heb je toch een constante pointer naar
het eerste element en vervolgens een berekening naar element x. 'k heb gelezen dat de benaderin van een willekeurig element in een array daarom altijd even snel is omdat je steeds dezelfde berekening hebt.
Wat 'k nu probeer te zeggen is, dan is er toch steeds praken van berekeningen, maar mischien is de inrichting
bij Sloot zo geweest dat het effect van de bewerking geen berekenig is geweest maar een effect zoals bij
bucket sort: element x, ok dan daarna toe, dus een toewijzings of schuif effect.

Hoe zien jullie dat, is bv een algo met een nummer om vervolgens een regeltekst te reproduseren überhaupt
wel mogelijk of ben ik gewoon helemaal verkeerd aan't denken?

grts



 
 
MatrixView
12-3-2005 17:04:00
Hoi TW,

De patenten van Sloot die iedereen kan inzien zijn toch vrij simpel... het gedeelte waar 't echt om draait heeft hij , om redenen waar we alleen naar kunnen gissen, weggelaten. Zoals hij zelf zei waren dit de formules die de sleutel aanmaakte behorende bij de opslag en natuurlijk de andere kant op (decodering).

Wat jij wilt weten is of dat uberhaupt kān, als ik je goed begrijp... Laten we 's kijken naar het voorbeeld dat je gebruikt: kun je met een getal als input voor een -algoritme- (wat overigens een ruimer begrip is dan een -formule-), iedere zinvolle regel tekst produceren...? (nog afgezien van alle mogelijke talen en spelling)

Dat hangt van een aantal dingen af, denk ik:
- Hoe groot mag dat getal zijn?
- Hoe groot mag de database zijn? Of mag je daar geen gebruik van maken?
- Mag deze database dynamisch zijn? Of moet ie fixed zijn?
- Moet de database generic zijn of alleen voor een specifieke dataset?

Er zijn dus echt vele manieren om dit aan te pakken: Wat je bv. zou kunnen doen is met behulp van een fixed database de zin coderen naar een nummer (dat bij decodering/decompressie weer diezelfde zin moet opleveren).

Je database zou bijvoorbeeld alle characters, lettergrepen, woorden en veel gebruikte woord-combinaties kunnen bevatten, waarvoor voor ieder genoemd onderdeel een code bestaat. De meest gebruikte codes zou je een zo klein mogelijke code kunnen geven (=Huffman codering).

Je uiteindelijke nummer kan stukken kleiner zijn dan de opslaggrootte van de zin zelf (de database-grootte niet meegerekend).

Het probleem is dat -gemiddeld- de nummers toch niet echt superklein zijn en nog vervelender: Er zijn ZOVEEL verschillende zinnen die allemaal een uniek nummer moeten opleveren dat je niet een compressie-ratio krijgt waar je u tegen zegt.

De methode Lempel-Ziv lijkt hier een klein beetje op, al maakt die gebruik van een dynamische database, die weer opgebouwd wordt tijdens decodering/decompressie.

Het is toch erg handig om te weten wat er voor methoden bestaan, want anders ben ik bang dat je het wiel vroeg of laat opnieuw gaat uitvinden, en dat is echt zonde van je tijd.

Nog even over arrays: Je kunt een element uit een simpele array opvragen door bij het geheugen-adres van het eerste element het (indexnummer * grootte van het data-type ) op te tellen.
 
 
Troebelwater
14-3-2005 13:51:00
Op zich was 'k niet van plan om regels te hanteren, zoal hoe groot mag een getal zijn.
'k was ook niet van plan om iets met een database te doen voor verdere compressie.

Dus ik hanteer om te beginnen geen regels, omdat ik eerst de kern gedachte ga na jagen.
Die is naar ik denk, corrigeer me als ik het fout heb, het produceren van een algo of een formule om tekst naar
een getal of code om te zetten en dan vervolgens de code of het nummer met het algo terug omzetten naar tekst.

Ik acht het ook niet onwaarschijnlijk dat ik het wiel opnieuw aan het uitvinden ben :)

Maar dan nog de vraag, gaat het eigenlijk wel om een tekst om te zetten naar een getal met een algo?
 
Troebelwater
14-3-2005 19:04:00
P.s. bericht van MatrixView wordt ook gewaardeerd :)
 
Cugel
14-3-2005 23:15:00
[quote][

Cugel, wat voor nut heeft ontwikkelings-biologische kennis van Dna/Rna in dit verhaal? Dit is geen afzeik-vraag!
Maar een term als: "data is slim" klinkt mij zo loos in de oren... Wat we ermee doen, DAT kan slim zijn, of hoe we het rangschikken kan OOK slim zijn...



CU guys.
[/quote]

Sorry, zie mijn antwoord bij mythbusters..

DNA is eigenlijk ook een groeiende formule die altijd groeit in een bepaald Patroon daar de randwaarden altijd een format qua minimum en maximum hebben voor parameters. De ogen hebben
altijd een bereik wat vast ligt in een spectrum, het gehoor in een range aan frequenties.
De clou zit dus niet zo zeer in de data...(die is overal hetzelfde van origine) maar hoe je de formule laat groeien.
En die richting moet je dus eerst op. Niet eerst proberen om data zoals die nu opgeslagen wordt in dat systeem te stoppen, dat werkt nooit.