Jump to content

cik buutiska ir statiska (nemainiiga) datu kopresija par 25%


diegs
 Share

Recommended Posts

Cool! 8-) Taisi ātrāk augšā, es arī gribu programmu, kura jebkuru manu failu varēs saspiest līdz 1 baita izmēram (un pēcāk arī atspiest atpakaļ)! :D

 

Pievienots: Moš vispirms uztaisi to kā standalone arhivatoru? Tas būs daudz vieglāk, un tirgus arī gana plašs. Pēcāk varēs arī domāt par HDD kontrolieriem. :roll:

Labots - Vilx-
Link to comment
Share on other sites

  • Replies 198
  • Created
  • Last Reply

Top Posters In This Topic

  • Vilx-

    31

  • paulis

    7

  • bubu

    17

  • diegs

    35

Top Posters In This Topic

hmmm... neesmu meegjinaajis kompreseet saspiestu failu veelreiz, jo shii metode nav domaata pielietot atkaartotai kopreseeshanai. bet var atkaartoti kompreseet ar jebkuru citu spiedeeju. metode NAV paredzeeta sapiest kaadu failu un saspiestu glabaat, bet gan saspiest visu info - sisteemu ieskaitot - un to darbinaat. tas ir kaut kas liidziigs, kaa bija 98 windai disk compress vai liidziigi, bet sisteema radikaali atshkjiras no taa disk-compress jeb kaa vinju tur. taatad, uztaisam 100GB HDD par 125GB HDD un priecaajamies par papildus 25GB. piemeeram, ja viena TB haardam uzlaizh virsuu manu metodi, tad vienkaarshi ieguustam liekus 250GB. NEMAINIIGI! ;)

 

Pievienots

da jebko var saspiest liidz vienam bitam - un shis bits pie tam buus nulliite. bet valjaa tu vinju nedabuusi, kameer nebuus izgudrota metode, no kaa sastaav bits... hehe, vareetu sastaaveet no 16 bitinjiem. un tad, protams, uzrastos kaads, kas idiotiski iedomaatos, ka infu var saspiest un dabuut nemainiigi atpakalj no VIENA BITINJA... utt. utjp. :p

Labots - diegs
Link to comment
Share on other sites

ok, mūs jau Tu neklausīsi, cik saprotu. Es vēlreiz saku, ka, manuprāt, tas nav iespējams, taču neapšaubāmi pat ejot maldu ceļos var atklāt kaut ko jaunu (daudzi atklājumi tā ir izdarīti). Katrā ziņā ļoti apsveicami (salīdzinot ar "kā man uzinstalēt cs serveri") ir tas, ka notiek kaut kāds pētījums.

Link to comment
Share on other sites

Guest drunk_lizard

man vienam izskataas, ka pilsonis inx pa sjo laiku, kameer mees jamo nejutaam, ir lietojis kautko stipraaku par opiju?

 

Pievienots

da jebko var saspiest liidz vienam bitam - un shis bits pie tam buus nulliite. bet valjaa tu vinju nedabuusi, kameer nebuus izgudrota metode, no kaa sastaav bits... hehe, vareetu sastaaveet no 16 bitinjiem. un tad, protams, uzrastos kaads, kas idiotiski iedomaatos, ka infu var saspiest un dabuut nemainiigi atpakalj no VIENA BITINJA... utt. utjp. :p

 

mjaaaaa....

 

upd> inx, meklee latnetaa taadu Snake5, ljoti iespeejams, ka divataa juus uztaisiisiet apveersumu.....

Link to comment
Share on other sites

Aleksej, tas jau dazhus meeneshus VAIRS NAV tikai peetiijums. :) taa ir realitaate, bet iisti nezinu, kaa pareizaak "savu beernu palaist pasaulee". taadeelj par HDD ideju ljoti nopriecaajos, jo, iedomaajies! es tak neaptveeru fiichu par HDD controlieri un draiveri... :oops: un vislaik kauko bakstījos gar kaut kaadu apceri par... ai, lai nu paliek. :)

Link to comment
Share on other sites

Pievienots

da jebko var saspiest liidz vienam bitam - un shis bits pie tam buus nulliite. bet valjaa tu vinju nedabuusi, kameer nebuus izgudrota metode, no kaa sastaav bits... hehe, vareetu sastaaveet no 16 bitinjiem. un tad, protams, uzrastos kaads, kas idiotiski iedomaatos, ka infu var saspiest un dabuut nemainiigi atpakalj no VIENA BITINJA... utt. utjp. :p

Ar šādiem apgalvojumiem vari mēģināt izskaidrot Visuma rašanās teoriju!

Link to comment
Share on other sites

Inx, diegs, vai kā nu Tevi sauc - dodu pēdējo iespēju nepadarīt sevi par izsmieklu, bet tikai par pārpratumu.

 

Tu apgalvo, ka vari absolūti jebkuru pilnīgi patvaļīgu failu ar dajebkādu saturu saspiest par 25%? Un pēc tam vēl viennozīmīgi atspiest vaļā, par izejas datiem ņemot tikai šos saspiestos datus?

 

Ja tā, tad jau patiesi vari šo algoritmu vienam un tam pašam failam laist virsū N reizes, līdz faila izmērs būs palicis daži baiti.

 

Vai tas patiesi ir tas, ko Tu mums te apgalvo?

Link to comment
Share on other sites

To: WILZ

 

kur ir nepareizs apgalvojums?! es, vienkaarshi, zobojos par cilveeku, kursh zobojas par mani, sakot ka infu var saspiest liidz vienam bitam un peec tam - ash, jamais sagribeeja to infu korekti dabuut atpakalj. shajaa gadiijumaa IR JAAIEPAZIISTAS ar Shenona teoriju, lai nerunaa stulbiibas, un necenshas arii mani padariit par idinju. es sheit nerakstiitos, ja buutu palicis tikai pie taas teoretizeeshanas par teemu, kaa es sheit teoretizeeju pirms vairaakiem gadiem.

Link to comment
Share on other sites

Vilx-

 

labi, labi - nee, es NEKUR NEAPGALVOJU, ka sho kompresijas metodi var laist virsuu failiem neskaitaamas reizes. metode straadaa TIKAI un VIENIIGI ar 8-bit kodiem, un nevis ar 6-bit kodiem, kas arii ietaupa tos 25%. iespeejams, ka skaidriibas labad lietderiigaak buutu sho metodi nosaukt par 6-bit datu apstraadi, bet arii tas nebuutu korekti, jo datus apstraadaa 8-bit procis. taa kaa, grozies kaa gribi - mazaak par 6 bitiem NEDRIIKST buut, lai info, apstraadaajot, buutu korekta, un apstraadaata tiek tad, kad dat. atminjaa taa tiek paarveidota atpakalj uz 8-bit, lai procis muljkjiibas nesastraadaa. un, luudzu, nesaaciet tik zaagjeet par datu magjistraaleem! ja kaads nezina, tad procha adresaacija ir veidota uz 8-bit arhitektuuras. taadeelj arii datiem ir jaabuut korektiem un, grozies kaa gribi, mazaak par 6-bit nesanaak. atkaartoju - shii kompresija NAV domaata, lai saspiestu kaukaadu informaaciju un to vienkaarshi uzglabaatu un priecaatos par to, ka es, piem., DVD vareeju ierakstiit pusotru filmu. tam ir domaatas citas kompresijas metodes. ;)

 

To Aleksejs

 

paldies par saitu, bet man neder LV, jo tur jau vairaak kaa gadu nedziivoju, un jau braucot prom no Latvijas, ar visu gjimeni braucaam uz neatgrieshanos.

Link to comment
Share on other sites

OK, tad es pavisam vairāk nesaprotu, ko tā Tava metode spēj. Man ir kaut kāds patvaļīgs fails X. Es viņu iebaroju Tavam maģiskajam algoritmam. Ko es dabonu ārā?

Link to comment
Share on other sites

DazzleWand

Shaads domu gaajiens man bija ~ kautkur beerniibaa :mrgreen:

 

Kaa lai dabon 8bitus > 6bitos. Statiski :mrgreen:

 

 

Ja panjem tiirus 8bitus, tad kopumaa iespeejamas 256kombinaacijas:

 

00000000

00000001

00000010

...

...

11111110

11111111

 

Tu apgalvo, ka speej "izteikt" shos 8bitus ar 6bitiem.

Ja panjem tiirus 6bitus, tad kopumaa iespeejamas 64kombinaacijas:

000000

000001

000010

....

....

111110

111111

__________________________________________________________

 

Liidz ar to gala rezultaataa uz vienu 6bit virkni pienaakas četras 8bit virknes. Kaa tu zinaasi, uz kuru no četrām 8bit virkneem atteicas taa tava ieguutaa viena 6bit virkne?

 

Tak panjem uzraksti vienkaarshu programminju savai kompresijas metodei ar ciklu ( compress & decompress ir tavas kompresijas metodes implementaacijas):

 

for (char x=0; x<256; x++)
{
 char y,z;
 y = compress(x);
 z = decompress(y);

 printf(" %x   =	%x  ",  x, z );
}

 

P.S. Kods visriizaak, ka neiet. Bet nu ideja ta skaidra. Tad arii redzeesi savus statiskos 25% :mrgreen::mrgreen::mrgreen:

 

 

Atbildot uz tavu jautaajumu par statiskas 25% kompresijas buutiskumu un svariigumu: TAS IR ĻOTI BOOT'ISKI !

( gan tiešā, gan pārnestā nozīmē )

Labots - DazzleWand
Link to comment
Share on other sites

Var jau arī jebkuru informāciju "saspiest", tikai tad jādod līdzi specifiska vārdnīca, kas dažkārt var būt lielāka par sākotnējo informācijas apjomu... ;)

 

Un kā būtu, ja autors vienkārši aizietu parunāties par savu ideju pie kādas no universitātes atbilstošajiem profesoriem?

Labots - japets
Link to comment
Share on other sites

DazzleWand

 

ja viss buutu tik vienkaarshi, kaa tu raksti, tad shito jau es buutu uztaisiijis pirms vairaakiem gadiem. ja tu buutu pieveersis uzmaniibu manis rakstiitajam, tad buutu arii ieveerojis, kaadu matemaatiku es izmantoju. peec tava domu gaajiena var uztaisiit arii 4-bit kompresiju, bet tajaa es neatradu iespeeju izvietot vairaak kaa 128 simbolus - taadeelj naacaas paariet uz 6 bitiem. :p

 

---

 

es arii ierunaajos, ka vaards KOMPRESIJA vareetu arii nebuut iisti pareizs, bet neko citu liidz shim neesmu izdomaajis, jo ta IR un NAV datu kompresija. :-?

Link to comment
Share on other sites

diegs, LŪDZU atbildi uz manu jautājumu - ja es Tavam algoritmam iebaroju patvaļīgu failu X, ko es dabūšu gala rezultātā?

Link to comment
Share on other sites

To Japets

:-D :-D :-D :-D :-D :-D :-D :-D

kaapeec tu domaa, ka neesmu bijis aprunaaties. atceros, ka arii par datu kopresiju RTU uzrakstiiju siiku maaciibu materiaalu. bet tas bija kaadus gadus triis vai chetrus atpakalj... ;)

 

..droshvien pa shiem gadiem esmu savu nabaga praatinju izkuukojis. jaaaaaaaaaaaaaaa... ekh, vecums nenaak viens. :-D

Link to comment
Share on other sites

Ja no sākotnējā informācijas apjoma tiek iegūts mazāks apjoms, no kura sākotnējā informācija ir atjaunojama, tad tā ir kompresija.

Vai lietojot Tavu whatever tie panākts iepriekš aprakstītais?

Link to comment
Share on other sites

Vilx- - es nesaprotu, ko tu domaa ar galarezultaatu... ja veelies failu, tad ieguusti failu, kursh ir par 25% mazaaks kaa taa origjinaals + cits faila nosaukums. ja veelies saspiest, piem., EXE un tad darbinaat, tad tas fails tev arii paliks ar taadu pashu nosaukumu un tipu, un to varees pie noteiktiem apstaakljiem "darbinaat" taapat kaa "origjinaalu".

 

japets, teoreetiski, taa, protams, IR datu saspieshana, bet praktiski to var izmanto dazhaadi:

 

- kaa ierastu datu kopresijas metodi, taadu kaa WinRAR un liidziigi;

- kaa visparastaako 8bit sisteemu, tikai viens baits ir 6bit, bet paarveidoshana uz 8bit, lai datora iekshas to saprstu notiek "na ljetuu" atminjaa.

Link to comment
Share on other sites

OK. Un kas tagad notiktu, ja šo rezultējošo failu (kas ir par 25% mazāks nekā oriģināls) atkal padotu Tavam algoritmam kā ievaddatus?

 

Un nesāc, lūdzu, filozofēt par 8 bitiem un 6 bitiem. Man ir pilnīgi vienalga, ko dara Tavs algoritms. Galvenais ir tas, ka viņam var padot failu, un galarezultātā saņemt par 25% mazāku failu. Un, lai pavisam nebūtu divdomību - fails ir virkne ar 8 bitu lieliem baitiem. Es saprotu no Tevis, ka tāds tiek gan ievadīts, gan arī izvadīts.

Link to comment
Share on other sites

Vilx- padodot veelreiz tu dabuutu "4 bitu failu" kuru diega algoritms meegjinaatu atkompreseet kaa "6-u bitu failu" un sacuukotu ...

Link to comment
Share on other sites

Nē, nē, nē. Es esmu no vienas baitu virknes ieguvis citu baitu virkni. Kāpēc gan lai es nevarētu vēlreiz šo virkni iebarot algoritmam? Ar ko šī konkrētā baitu virkne ir īpaša? A ja nu es pašā sākumā na haļavu būtu izvēlējies šo baitu virkni?

Link to comment
Share on other sites

bet dabiigi, ka fails saakotneeji tiek ievadiits 8bit formaa. izvadiits 8bit formaa tikai tad, kad procim, atminjai utt. tas jaapstraadaa. uzglabaashana ir 6bit kodaa. kas tur ko nesarast?!

Link to comment
Share on other sites

Ok, vēlreiz, un lēnām. Definēju: baits = 8 biti. Dots:

Melnās kastes programma A, kura kā ievaddatus ņem vienu baitu virkni X (failu), un izvada citu baitu virkni Y (failu) ar sekojošām īpašībām:

  • Y garums ir par 25% mazāks nekā X garums;
  • Ievadot Y otrai melnās kastes programmai B, mēs atpakaļ iegūstam oriģinālo X.

Ja ir šādas divas programmas, tad kāpēc lai A izvadu tai nepadotu vēlreiz kā ievadu, un neiegūtu vēl mazāka izmēra rezultātu W? Ja mēs tagad padosim W programmai B, mēs iegūsim Y. Un, padodot Y programmai B, mēs iegūsim X. Kur problēma?

Labots - Vilx-
Link to comment
Share on other sites

saspiestu failu izstraadaataa programmatuura vairs neljauj atkaartoti saspiest, jo, kaa jau te dazhi teica, fails tiktu sacuukots. tas it kaa ir miinuss, bet shim miinusam shobriid nav nekaada noziime un domaaju, arii nebuus nekaada noziime. :)

Link to comment
Share on other sites

Tiktu sacūkots? Tātad ir tādas baitu virknes, kuras pēc izlaišanas caur Tavu algoritmu vairs nav atjaunojamas?

Link to comment
Share on other sites

Guest ADEX

Kāpēc lai nevarētu saspiest 6-bitīgus simbolus, ja var 8-bitīgus?

Skaties. Ņemam 4 baitus (piemēram):

0100101 00110110 11001010 11001101

Saspiežam līdz četriem 6-bitīgiem:

01001 001101 110010 110011

Un pārveidojam par trīs 8-bitīgiem, vienkārši izdzēšot atstarpes un saliekot tās par jaunu ik pēc 8 bitiem:

0100100 11011100 10110011

Un atkal mums ir 8-bitīgi simboli, kurus var kompresēt tālāk. Pēdējais simbols, iespējams, nebūs pilni 8 biti (atkarīgs no faila izmēra), bet pēdējo jau var arī atstāt nekompresētu. ;-)

 

P.S. Kāpēc šitas vēl nav kuriozos?

Link to comment
Share on other sites

Labi, man apnikās. Ja inx diegs nav gana spējīgs lai saprastu acīmredzamo, tad tur vairs nevar palīdzēt. Enīvei, man šķiet, ka gan jau viņš ir izdomājis kaut kādu interesantu algoritmu, taču tas nav tas, ko viņš domā. Vai arī viņš to nemāk mums pateikt - tā sacīt, komunikāciju problēma.

 

Ja pēc pāris gadiem redzēsim tirgū universālo kompresoru, kas spējīgs dajebko saspiest dajebcik mazu, zināsim - viņš bija gudrāks par mums visiem! :mrgreen:

Link to comment
Share on other sites

Autors apgalvo, ka uzglabāšana ir 6 bitu formā (lasiet autoru, ne kementētājus), proti- uzglabāšanas baits ir 6bitīgs, resp. baitu skaits failā paliek nemainīgs, bet tā kā procesors nemāk darboties ar 6bitīgiem, piespiedu kārtā jāatjauno iztrūkstošos bitus. Saprotiet šo apgalvojumu kā gribat, bet tas kontrolieris, kurš jāpārprogrammē, ir iekš HDD, ne mātes plates vai vispār OSa. NTFS kompresija tāpat kā DOSiskais kompresētais cietnis- tikai tādiem, kur var būt FAT16, resp. cietie līdz 2GB. Forši, bet acīmredzot tieši šī iemesla pēc 2GB flašā, kuru nesen nopirku, ir FAT16 failsistēma. Ja nēsātu daudz worda un citus dokumentus, varētu Windowzisko kompresiju izmantot, bet ja kāda XVID filma...

 

Autors apgalvo, ka uzglabāšana ir 6 bitu formā (lasiet autoru, ne komentētājus), proti- uzglabāšanas baits ir 6bitīgs, resp. baitu skaits failā paliek nemainīgs, bet tā kā procesors nemāk darboties ar 6bitīgiem, piespiedu kārtā jāatjauno iztrūkstošos bitus. Saprotiet šo apgalvojumu kā gribat, bet tas kontrolieris, kurš jāpārprogrammē, ir iekš HDD, ne mātes plates vai vispār OSa. NTFS kompresija tāpat kā DOSiskais kompresētais cietnis- tikai tādiem, kur var būt FAT16, resp. cietie līdz 2GB. Forši, bet acīmredzot tieši šī iemesla pēc 2GB flašā, kuru nesen nopirku, ir FAT16 failsistēma. Ja nēsātu daudz worda un citus dokumentus, varētu Windowzisko kompresiju izmantot, bet ja kāda XVID filma...

Link to comment
Share on other sites

Učuks - Pirmkārt, Tev nav īsti izpratnes par NTFS kompresiju, DOS kompresētajiem diskiem, un dažādajām failu sistēmām. Bet tas ir cits stāsts citai reizei.

 

Es joprojām apgalvoju, ka nevar paņemt patvaļīgu failu ar 100 gab. 8-bitīgiem baitiem, un pārveidot to par failu ar 100 gab. 6-bitīgiem baitiem. To var triviāli matemātiski pierādīt, un šajā topikā to jau vismaz 10 reizes dažādi cilvēki mēģināja pateikt.

Link to comment
Share on other sites

Guest drunk_lizard

NC, m nejaaj mozgu ar hufmani!

mees te izklaideejamies!

mums labi paziistams korjisjss ir atklaajis revolucionaaru metodi!!!!!

taa balstaas uz visuma melno caurumu teoriju!!!!

un molcjatj!

tu tak labi zini (relativitaate), ka ir teoreetiska iespeeja dajebko reduceet uz neko!

halelujaa - es iestaajos inx sektaa!

Link to comment
Share on other sites

Slikti esi lasījs. Hufmanis tika pieminēts. Un ne tikai hufmanis, arī Shanons un entropija tika pieminēti.

Un viss nebalstās uz Hufmani. Ir efektīvāki kompresēšanas algoritmi, jo Hufmanis nespēj nokodēt simbolu ar mazāk kā vienu bitu. Piemēram, Golomb-Rice coding spēj.

Labots - bubu
Link to comment
Share on other sites

bitu. Bet saproti, ka tas nav visiem simboliem. Tas ir tikai simboliem ar lielākajām frekvencēm tekstā. Un tas "mazāk kā bits" ir jāsaprot statistiski uz visu tekstu, nevis ikkatram simbolam.

 

Hufmanis acīmredzami kodē kā minimums 1 bitu uz simbolu.

Labots - bubu
Link to comment
Share on other sites

Guest drunk_lizard

bubu, visu cienju!

luudzu atsuuti man kautko sakompreseetu mazaak kaa viens bits

pieljauju, ka mana sjobriideejaa datorsisteema to nesapratiis, taapeec atsuuti pa pastu....

btw - nenjemam veeraa sjobriid praktiski neizmantojamaas nanotehnologjijas, fionus, fotonus un citas teoreetiskaas informaacijas neseeju daljas....

Link to comment
Share on other sites

Ja ar 1 bitu tiek apzīmēta 2 simbolu kombinācija, tad ar cik bitiem tiek kodēts katrs simbols? ;)

Link to comment
Share on other sites

drunk_lizard: tu nepareizi saprati. Ne jau ka kautkāds konkrēts simbols (piem ascii burts 'A') tiek nokodēts par kautko mazāku par bitu. Bet gan kopumā, ja tekstā burts 'A' atkārtojas visbiežāk, tad hufmaņa kompresija burtam A iedalīs visīsāko kodu - ideālā gadījumā vienu bitu. Taču ir kompresijas algoritmi, kas spēj nokodēt šos visus burtus A dotajā tekstā tā, ka kopējā kompresētajā informācijā bitu skaits, kas apraksta kur un cik daudz ir šie burti A būs mazāks par burtu A daudzumu. T.i. Ja man ir 28 burti A, un ja es šo informāciju varu nokodēt ar mazāk kā 28 bitiem, tad esmu panācis savu - simbola A kodējums aizņem mazāk par vienu bitu. Vajag piemēru? Lūdzu: 01000001 00011100. Divi baiti pierakstīti binārā sistēmā. Pirmais baits ir burts 'A' ascii kodā, otrs baits ir skaitlis 28 pierakstīts binārā sistēmā. Šo sauc par RLE kodēšanu. Atkompresējot šos divus baitus iegūsi 28 baitus ar oriģināliem 28 burtiem 'A'. Iegūtājai kompresijai simbols 'A' vidēji aizņem 16/28 ~= 0.57 bitus.

 

Hufmaņa gadījumā es šos 28 burtus A varu nokodēt ar minimums 28 vien-bitu virknīti (28 bitiem). Un ne mazāk. Papildus tiem 28-bitiem būs arī jāsūta līdzi vārdnīca ar to 'A' burta kodu.

Labots - bubu
Link to comment
Share on other sites

Guest
Slēgta tēma, pievienot komentāru nav iespējams.
 Share


×
×
  • Izveidot jaunu...