SOFTWARE

< cofnij

POMYSŁ NA EXTRA KODEK VIDEO


Ostatnio wpadł mi do głowy pomysł na super kodek,który
pozwalałby zmieścić ok. półtora godzinny film w ok.50MB w
jakości zbliżonej do DVD.
Działałoby to tak:

Specjalny dekoder połączony ze specjalnym playerem zawierałby
w sobie pewien algorytm - bardzo złożony algorytm.
Ten algorytm miałby przypisaną mega rozmiarów tablicę składającą
się z miliardów rekordów.
Każdy z tych rekordów zawierałby swój numer porządkowy,dzięki
któremu możliwe byłoby generowanie obrazu w real-time.
A jak by to działało?
Otóż załóżmy ,że komórka (rekord) tablicy o numerze porządkowym 567
zawiera opis całej poziomej (x) linii pixeli,z czego każdy pixel
składałby się z trzech składowych zlewających się na kolor czarny.
Inny numer tablicy posidałby zapisaną linię zawierającą np.
do połowy pixele czerwone,a od połowy niebieskie - cięzko to
ująć słowami (widzę to oczami umysłu) - chodzi mi o to iż ta
mega rozmiarów tablica posiadałaby wszystkie możliwe kombinacje
ułożenia pixeli - wtedy w pliku z filmem nie trzebabyłoby
zapisywać żadnej klatki - tak jak to się robi do tej pory,a
jedynie numer kodowy jednej lini obrazu odpowiadający numerowi
porządkowemu tablicy ,która zawierałaby w sobie rządany układ
pixeli.Taki zapis filmu kolosalnie zmniejszyłby jego rozmiary i
sprawił że film mógłby być zapisany w najlepszej możliwej jakości.
Do tego możnaby dołożyć kolejne algorytmy kompresujące,np.
dwie takie same pixeli otrzymywałyby jeden numer kodowy zamiast
dwóch itd...
Pomysł trochę nierealny,zważywszy, że omawiana tu przeze mnie
tablica musiałabybyś naprawdę gigantycznych rozmiarów.
Trzebabyłoby więć zastąpić ją specjalnym algorytmem,który na żywo
wyliczałby jaki układ pixeli powinien być akurat w komórce o tym
i o tym numerze.
Pozatym odbiorca musiałby posiadać naprawdę szybki procesor,tak
aby algorytm nadąrzał z generowaniem na żywo ok.30 klatek obrazu.
Nie mam najmniejszego pojęcia jak się do tego zabrać,bo kompresją
video nigdy się nie bawiłem - a juz na pewno nie w takim stopniu
jaki tu opisuję.Skorzystać z gotowego kodeka to jedno,a napisać
swój,do tego tak skomplikowany to drugie.
Gdyby ten pomysł wypalił to możnaby zapisywać filmy nawet w zwykłych
plikach TXT - definiując jedynie kolejno numery tablic.
Tak sobie tez myślę,że napewno pomogłoby stworzenie tablicy
3-wymiarowej - trzy tablice nakładające na siebie wartosci R,G,B i
dodatkowe do reszty operacji.
Trzebaby to na spokojnie rozpracować.
Poniżej przedstawiam mniej więcej jak miałoby to wyglądać.
Natomiast gdyby ktoś załapał ten pomysł i miałby jakieś dalsze
wizje co z tym zrobić to śmiało moze pisać do mnie na maila.


Schemat:

1 - plik z filmem zawiera w jednej linijce kod o numerze 12345
2 - Dekoder pobiera ten numer z tego pliku i przekazuje go do
głównego "maszynisty".Ten odnajduje komórkę tablicy o identycznym
numerze i pobiera z niej schemat układu pixeli.
3 - Schemat zostaje odczytany przez funkcję odpowiedzialną za
rysowanie obrazu i wyniku tego rozrysowany na ekranie (1pixel
otrzymuje skadową RxxxGxxxBxxx,drugi RyyyGyyyByyy i tak dalej
zgodnie z opisem pobranym z tablicy)
4 - Linia pixeli zostaje wyrenderowana na ekran ,po czym dekoder
przeskakuje do kolejnej lini i wszystko zaczyna się od początku...


Oczywiście jest to wysoce uproszczony schemat - ale chciałem
to opisać w miarę jak najprościej,aby każdy mógł zrozumieć o co
mi chodzi...
Tak więc może kiedyś DivX odejdzie w niepamięć,a zaczną powstawać
algorytmy kompresji oparte na tym schemacie...
Zainteesowanych tą koncepcją proszę o kontakt.