डेटा कम्प्रेशन करने का प्रयास किया जा रहा है


मैं आविष्कार करने की कोशिश कर रहा हूं..

(पुनरावर्ती दोषरहित यादृच्छिक डेटा संपीड़न)

कहते हैं ; कि यह संभव नहीं है…
मैं उन्हें गलत साबित करने की कोशिश कर रहा हूं…

मैंने क्या प्रयास किया है:

================================================ =
एआरजेड (अल्बर्ट रेडिट ज़िप)

(पुनरावर्ती दोषरहित यादृच्छिक डेटा संपीड़न)

किसी भी आकार की फ़ाइल को लगभग 2600 बाइट्स तक संपीड़ित करता है।
फ्रीबेसिक में लिखा गया कोड..
================================================ =

बुनियादी
dim as ubyte count = 0
do
    if len( bits ) mod 7 <> 0 then bits+= "0" : count+= 1 else exit do
loop

chrs = string( len( bits ) \ 7 , "0" ) + chr( count )
dim as longint place = 0
dim as string m1 , m2
for a as longint = 0 to len( bits ) - 1 step 7

    if bits[ a + 0 ] = 49 then m1 = "1000" else m1 = "0000"
    if bits[ a + 1 ] = 49 then m1[ 1 ]+= 1
    if bits[ a + 2 ] = 49 then m1[ 2 ]+= 1
    if bits[ a + 3 ] = 49 then m1[ 3 ]+= 1
    
    if bits[ a + 4 ] = 49 then m2 = "101" else m2 = "111"
    if bits[ a + 5 ] = 49 then m2[ 2 ]-= 1
    if bits[ a + 6 ] = 49 then m2+= "0"
    
    m1+= m2
    
    chrs[ place ] = val( "&B" + m1 ) : place+= 1
                
next
bits = ""

chrs = Zlibrary.pack( chrs )

loops+= 1

============================================
तब तक लूप करते रहें जब तक यह छोटा न हो जाए..
मैं वास्तविक संपीड़न करने के लिए Zlib.dll को कॉल कर रहा हूं…
============================================

समाधान 1

उद्धरण:

किसी भी आकार की फ़ाइल को लगभग 2600 बाइट्स तक संपीड़ित करता है।

अकेले उस कथन का मतलब है कि आप समझ नहीं पा रहे हैं कि आप क्या कर रहे हैं, और आपके एल्गोरिदम के साथ टकराव की भारी समस्याएं हैं, इससे कोई फर्क नहीं पड़ता कि यह कैसे लिखा गया है या यह क्या कर रहा है।

आपने अभी कहा कि आप केवल 20,800 बिट्स के साथ, संभावित संयोजनों की लगभग अनंत संख्या में बाइट्स का प्रतिनिधित्व कर सकते हैं।

बकवास.

सर्वोत्तम स्थिति में, इसका परिणाम क्रिप्टोग्राफ़िक हैश होगा, संपीड़न नहीं। आपके पास कई संभावित स्रोत हैं जो बिल्कुल समान परिणाम हैश उत्पन्न कर सकते हैं।

समाधान 2

इसके काम न करने का एक अच्छा तकनीकी कारण है, और यही कारण है कि आप SHA या MD5 हैश को “डिक्रिप्ट” नहीं कर सकते हैं: MD5 और SHA को डिक्रिप्ट करना: आप ऐसा क्यों नहीं कर सकते[^]

2600 बाइट्स केवल 20,800 विभिन्न संयोजनों की अनुमति देते हैं: कई लोगों के फोन पर इससे अधिक सेल्फी होती हैं; अकेले अंग्रेजी में लगभग 50 लाख विभिन्न उपन्यास लिखे गए हैं।

コメント

タイトルとURLをコピーしました