Claude Shannon ਦੇ ਮੁੱਖ ਵਿਚਾਰ—ਬਿਟ, ਐਨਟਰਪੀ, ਅਤੇ ਚੈਨਲ ਸਮਰੱਥਾ—ਸਿੱਖੋ ਅਤੇ ਜਾਣੋ ਕਿ ਇਹ ਕੰਪ੍ਰੈਸ਼ਨ, ਤ੍ਰੁੱਟੀ-ਸੁਧਾਰ, ਭਰੋਸੇਯੋਗ ਨੈਟਵਰਕਿੰਗ ਅਤੇ ਆਧੁਨਿਕ ਡਿਜੀਟਲ ਮੀਡੀਆ ਵਿੱਚ ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ।

ਤੁਸੀਂ Claude Shannon ਦੇ ਵਿਚਾਰ ਹਰ ਵਾਰ ਵਰਤਦੇ ਹੋ ਜਦੋਂ ਤੁਸੀਂ ਇਕ ਟੈਕਸਟ ਭੇਜਦੇ ਹੋ, ਵੀਡੀਓ ਦੇਖਦੇ ਹੋ, ਜਾਂ Wi‑Fi ਨਾਲ ਜੁੜਦੇ ਹੋ। ਇਹ ਇਸ ਲਈ ਨਹੀਂ ਕਿ ਤੁਹਾਡਾ ਫੋਨ “Shannon ਨੂੰ ਜਾਣਦਾ” ਹੈ, ਬਲਕਿ ਇਸ ਲਈ ਕਿ ਆਧੁਨਿਕ ਡਿਜੀਟਲ ਸਿਸਟਮ ਇੱਕ ਸਧਾਰਣ ਵਾਅਦੇ 'ਤੇ ਬਣੇ ਹਨ: ਅਸੀਂ ਗੰਦੇ-ਰੇਅਲ-ਵਰਲ্ড ਸੁਨੇਹਿਆਂ ਨੂੰ ਬਿੱਟਾਂ ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹਾਂ, ਉਹ ਬਿੱਟ ਅਪਰਿਪੂਰਾ ਚੈਨਲਾਂ ਰਾਹੀਂ ਭੇਜ ਸਕਦੇ ਹਾਂ, ਅਤੇ ਫਿਰ ਵੀ ਮੂਲ ਸਮੱਗਰੀ ਨੂੰ ਉੱਚ ਭਰੋਸੇਯੋਗਤਾਪੂਰਕ ਰੀਕਵਰ ਕਰ ਸਕਦੇ ਹਾਂ।
ਸੂਚਨਾ ਸਿਧਾਂਤ ਸੁਨੇਹਿਆਂ ਦੀ ਗਣਿਤ ਹੈ: ਕਿਸ ਹੱਦ ਤੱਕ ਇੱਕ ਸੁਨੇਹਾ ਚੋਣ (ਅਣਿਸ਼ਚਿਤਤਾ) ਰੱਖਦਾ ਹੈ, ਇਸਨੂੰ ਕਿਵੇਂ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤਰੀਕੇ ਨਾਲ ਦਰਸਾਇਆ ਜਾ ਸਕਦਾ ਹੈ, ਅਤੇ ਸ਼ੋਰ, ਹਸਤਖੇਪ, ਅਤੇ ਭੀੜ-ਭਾੜ ਦੇ ਸਮੇਂ ਇਸਨੂੰ ਕਿਵੇਂ ਭਰੋਸੇਯੋਗ ਤਰੀਕੇ ਨਾਲ ਭੇਜਿਆ ਜਾ ਸਕਦਾ ਹੈ।
ਇਸ ਦੇ ਪਿੱਛੇ ਗਣਿਤ ਹੈ, ਪਰ ਵਿਵਹਾਰਿਕ ਸੂਝ-ਬੂਝ ਲਈ ਗਣਿਤਜ್ಞ ਹੋਣ ਦੀ ਲੋੜ ਨਹੀਂ। ਅਸੀਂ ਹਰ-ਰੋਜ਼ ਦੇ ਉਦਾਹਰਣ ਵਰਤਾਂਗੇ—ਜਿਵੇਂ ਕਿ ਕੁਝ ਫੋਟੋ ਕਿਉਂ ਬਿਹਤਰ compress ਹੁੰਦੀਆਂ ਹਨ, ਜਾਂ ਜਦੋਂ ਸਿਗਨਲ ਕਮਜ਼ੋਰ ਹੁੰਦਾ ਹੈ ਤਾਂ ਤੁਹਾਡੀ ਕਾਲ ਕਿਵੇਂ ਠੀਕ ਸੁਣਾਈ ਦਿੰਦੀ ਹੈ—ਤਾਕਿ ਗੰਭੀਰ ਫਾਰਮੂਲਾਂ ਤੋਂ ਬਿਨਾਂ ਵਿਚਾਰ ਸਪੱਸ਼ਟ ਹੋਣ।
ਇਹ ਲੇਖ਼ ਚਾਰ Shannon-ਪ੍ਰੇਰਿਤ ਅਸਾਸਾਂ ਤੇ ਕੇਂਦਰਿਤ ਹੈ ਜੋ ਆਧੁਨਿਕ ਤਕਨਾਲੋਜੀ ਵਿੱਚ ਵਿਆਪਕ ਹਨ:
ਅਖੀਰ ਤੇ, ਤੁਸੀਂ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਸੋਚ ਸਕੋਗੇ ਕਿ: ਉੱਚ ਵੀਡੀਓ ਕੁਆਲਿਟੀ ਲਈ ਵਧੇਰੇ ਬੈਂਡਵਿਡਥ ਕਿਉਂ ਲੋੜਦੀ ਹੈ, "ਜਿਆਦਾ ਬਾਰਾਂ" ਹਮੇਸ਼ਾਂ ਤੇਜ਼ ਇੰਟਰਨੈੱਟ ਨਹੀਂ ਦਾਦਾ ਕਰਦੀਆਂ, ਕੁਝ ਐਪਸ ਤੁਰੰਤ ਕਿਉਂ ਮਹਿਸੂਸ ਹੁੰਦੀਆਂ ਹਨ ਜਦਕਿ ਦੂਜੇ buffer ਕਰਦੇ ਹਨ, ਅਤੇ ਹਰ ਸਿਸਟਮ ਆਪਣੀਆਂ ਸੀਮਾਵਾਂ 'ਚ ਕਿਵੇਂ ਫਸ ਜਾਂਦਾ ਹੈ—ਖਾਸ ਕਰਕੇ ਮਸ਼ਹੂਰ Shannon limit।
1948 ਵਿੱਚ, ਗਣਿਤਜ्ञ ਅਤੇ ਇੰਜੀਨੀਅਰ Claude Shannon ਨੇ ਇੱਕ ਕਾਗਜ਼ ਛਪਾਇਆ ਜਿਸਦਾ ਸਿਰਲੇਖ ਨਿੱਜੀ ਤੌਰ 'ਤੇ ਸਧਾਰਣ ਸੀ—A Mathematical Theory of Communication—ਜਿਸਨੇ ਸ਼ਾਂਤੀ ਨਾਲ ਇਹ ਸੋਚ ਬਦਲ ਦਿੱਤੀ ਕਿ ਡਾਟਾ ਭੇਜਣ ਬਾਰੇ ਕਿਵੇਂ ਸੋਚਿਆ ਜਾਵੇ। ਰਚਨਾ ਨੂੰ ਇੱਕ ਕਲਾ ਵਜੋਂ ਦੇਖਣ ਦੀ ਬਜਾਏ, ਉਸਨੇ ਸੁਨੇਹਿਆਂ ਨੂੰ ਇੱਕ ਇੰਜੀਨੀਅਰਿੰਗ ਸਮੱਸਿਆ ਵਜੋਂ ਦੇਖਿਆ: ਇੱਕ ਸਰੋਤ ਸੁਨੇਹੇ ਬਣਾ ਰਿਹਾ ਹੈ, ਇੱਕ ਚੈਨਲ ਉਨਾਂ ਨੂੰ ਲੈ ਕੇ ਜਾਂਦਾ ਹੈ, ਸ਼ੋਰ ਉਹਨਾਂ ਨੂੰ ਖ਼ਰਾਬ ਕਰਦਾ ਹੈ, ਅਤੇ ਇੱਕ ਰਿਸੀਵਰ ਜੋ ਭੇਜਿਆ ਗਿਆ ਸੀ ਉਸਨੂੰ ਮੁੜ ਤਿਆਰ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ।
Shannon ਦਾ ਮੁੱਖ ਫੈਸਲਾ ਇਹ ਸੀ ਕਿ ਸੂਚਨਾ ਨੂੰ ਇਸ ਤਰੀਕੇ ਨਾਲ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਜਾਵੇ ਜੋ ਮਾਪਯੋਗ ਅਤੇ ਮਸ਼ੀਨਾਂ ਲਈ ਉਪਯੋਗੀ ਹੋਵੇ। ਉਸਦੇ ਫਰੇਮਵਰਕ ਵਿੱਚ, ਸੂਚਨਾ ਇਸ ਗੱਲ ਬਾਰੇ ਨਹੀਂ ਕਿ ਸੁਨੇਹਾ ਕਿੰਨਾ ਮਹੱਤਵਪੂਰਨ ਲੱਗਦਾ ਹੈ ਜਾਂ ਇਸਦਾ ਕੀ ਅਰਥ ਹੈ। ਇਹ ਇਸ ਗੱਲ ਬਾਰੇ ਹੈ ਕਿ ਉਹ ਕਿੰਨਾ ਹਰਾਨ ਕਰਦਾ ਹੈ—ਜਦ ਤੁਸੀਂ ਨਤੀਜਾ ਜਾਣਦੇ ਹੋ ਤਾਂ ਕਿੰਨੀ ਅਣਿਸ਼ਚਿਤਤਾ ਘਟਦੀ ਹੈ।
ਜੇ ਤੁਸੀਂ ਪਹਿਲਾਂ ਹੀ ਜਾਣਦੇ ਹੋ ਕਿ ਕੀ ਹੋਵੇਗਾ, ਤਾਂ ਸੁਨੇਹਾ ਲਗਭਗ ਕੋਈ ਜਾਣਕਾਰੀ ਨਹੀਂ ਦਿੰਦਾ। ਜੇ ਤੁਸੀਂ ਸੱਚਮੁੱਚ ਅਣਪਛਾਣ ਹੋ, ਨਤੀਜੇ ਨੂੰ ਜਾਣਨਾ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਦਿੰਦਾ ਹੈ।
ਸੂਚਨਾ ਮਾਪਣ ਲਈ, Shannon ਨੇ ਬਿਟ (binary digit) ਨੂੰ ਲੋਕਪ੍ਰਿਯ ਕੀਤਾ। ਇੱਕ ਬਿਟ ਉਹ ਮਾਤਰਾ ਹੈ ਜੋ ਇੱਕ ਸਧਾਰਣ ਹਾਂ/ਨਹੀਂ ਅਣਿਸ਼ਚਿਤਤਾ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਚਾਹੀਦੀ ਹੁੰਦੀ ਹੈ।
ਉਦਾਹਰਨ: ਜੇ ਮੈਂ ਪੁੱਛਾਂ "ਲਾਈਟ ਚਾਲੂ ਹੈ?" ਅਤੇ ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਕੁਝ ਪਤਾ ਨਹੀਂ ਹੈ, ਤਾਂ ਜਵਾਬ (ਹਾਂ ਜਾਂ ਨਹੀਂ) ਨੂੰ 1 ਬਿਟ ਜਾਣਕਾਰੀ ਸਮਝਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਬਹੁਤ ਸਾਰੇ ਅਸਲ ਸੁਨੇਹੇ ਇਨ੍ਹਾਂ ਬਾਈਨਰੀ ਚੋਣਾਂ ਦੀ ਲੰਬੀ ਲੜੀ ਵਿੱਚ ਟੁੱਟ ਸਕਦੇ ਹਨ, ਇਸ ਲਈ ਟੈਕਸਟ ਤੋਂ ਲੈ ਕੇ ਫੋਟੋ ਅਤੇ ਆਡੀਓ ਤੱਕ ਸਾਰਾ ਕੁਝ ਬਿੱਟਾਂ ਵਜੋਂ ਸਟੋਰ ਅਤੇ ਭੇਜਿਆ ਜਾ ਸਕਦਾ ਹੈ।
ਇਹ ਲੇਖ਼ Shannon ਦੇ ਵਿਚਾਰਾਂ ਦੇ ਪ੍ਰਯੋਗਿਕ ਸੂਝ-ਬੂਝ 'ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰਦਾ ਹੈ ਅਤੇ ਦੱਸਦਾ ਹੈ ਕਿ ਉਹ ਕਿਉਂ ਹਰ ਥਾਂ ਪ੍ਰਗਟ ਹੁੰਦੇ ਹਨ: ਕੰਪ੍ਰੈਸ਼ਨ, ਤ੍ਰੁੱਟੀ-ਸੁਧਾਰ, ਨੈਟਵਰਕ ਭਰੋਸੇਯੋਗਤਾ, ਅਤੇ ਚੈਨਲ ਸਮਰੱਥਾ।
ਇਹ ਭਾਰੀ ਪ੍ਰਮਾਣ-ਸਬੂਤਾਂ 'ਚ ਨਹੀਂ ਜਾਵੇਗਾ। ਤੁਹਾਨੂੰ ਨਤੀਜਾ ਸਮਝਣ ਲਈ ਉੱਚ ਗਣਿਤ ਦੀ ਲੋੜ ਨਹੀਂ: ਜਦ ਤੁਸੀਂ ਸੂਚਨਾ ਨੂੰ ਮਾਪ ਸਕਦੇ ਹੋ, ਤਦ ਤੁਸੀਂ ਉਹ ਸਿਸਟਮ ਡਿਜ਼ਾਈਨ ਕਰ ਸਕਦੇ ਹੋ ਜੋ ਸੰਭਵ ਤੌਰ 'ਤੇ ਸਭ ਤੋਂ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਹੋ—ਅਕਸਰ Shannon ਦੁਆਰਾ ਦਰਸਾਏ ਗਿਆ ਸਿਧਾਂਤਿਕ ਸੀਮਾ ਬਹੁਤ ਨੇੜੇ ਤੱਕ।
ਐਨਟਰਪੀ, ਕੰਪ੍ਰੈਸ਼ਨ, ਜਾਂ ਤ੍ਰੁੱਟੀ-ਸੁਧਾਰ ਬਾਰੇ ਗੱਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਕੁਝ ਰੋਜ਼ਾਨਾ ਸ਼ਬਦ ਨਿਰਧਾਰਤ ਕਰਨਾ ਮਦਦਗਾਰ ਰਹੇਗਾ। Shannon ਦੇ ਵਿਚਾਰ ਉਹਨਾਂ ਟੁਕੜਿਆਂ ਨੂੰ ਨਾਮ ਦੇ ਕੇ ਆਸਾਨ ਹੋ ਜਾਂਦੇ ਹਨ।
ਇੱਕ ਚਿੰਨ੍ਹ ਉਹ ਇੱਕ "ਟੋਕਨ" ਹੈ ਜੋ ਤੁਸੀਂ ਸਹਿਮਤ ਹੋ ਕਿ ਵਰਤੋਂਗੇ। ਉਹ ਸੈਟ ਅੱਖਰਮਾਲਾ ਹੈ। ਅੰਗ੍ਰੇਜ਼ੀ ਟੈਕਸਟ ਵਿੱਚ, ਅੱਖਰਮਾਲਾ ਹੋ ਸਕਦੀ ਹੈ ਅੱਖਰ (ਖਾਲੀ ਥਾਂ ਅਤੇ ਵਿਰਾਮ-ਚਿੰਨ੍ਹ ਸਮੇਤ)। ਕੰਪਿਊਟਰ ਫਾਇਲ ਵਿੱਚ, ਅੱਖਰਮਾਲਾ 0–255 ਬਾਈਟ ਮੁੱਲ ਹੋ ਸਕਦੀ ਹੈ।
ਇੱਕ ਸੁਨੇਹਾ ਉਸ ਅੱਖਰਮਾਲਾ ਤੋਂ ਚਿੰਨ੍ਹਾਂ ਦੀ ਲੜੀ ਹੁੰਦਾ ਹੈ: ਇੱਕ ਸ਼ਬਦ, ਇੱਕ ਵਾਕ, ਇੱਕ ਫੋਟੋ ਫਾਇਲ, ਜਾਂ ਆਡੀਓ ਨਮੂਨਿਆਂ ਦੀ ਸਟ੍ਰੀਮ।
Concrete ਰੂਪ ਵਿੱਚ ਸੋਚੋ, ਇੱਕ ਛੋਟੀ ਅੱਖਰਮਾਲਾ ਕਲਪਨਾ ਕਰੋ: {A, B, C}. ਇੱਕ ਸੁਨੇਹਾ ਹੋ ਸਕਦਾ ਹੈ:
A A B C A B A ...
ਇੱਕ ਬਿਟ ਇਕ ਬਾਈਨਰੀ ਅੰਕ ਹੈ: 0 ਜਾਂ 1. ਕੰਪਿਊਟਰ ਭੰਡਾਰਣ ਅਤੇ ਪ੍ਰਸारण ਲਈ ਬਿੱਟਾਂ ਨੂੰ ਇਸ ਲਈ ਸਟੋਰ ਕਰਦੇ ਹਨ ਕਿਉਂਕਿ ਹਾਰਡਵੇਅਰ ਦੋ ਹਾਲਤਾਂ ਨੂੰ ਭਰੋਸੇਯੋਗ ਤਰੀਕੇ ਨਾਲ ਅਲੱਗ ਕਰ ਸਕਦਾ ਹੈ।
ਇੱਕ ਕੋਡ ਉਹ ਨਿਯਮ ਹੈ ਜੋ ਚਿੰਨ੍ਹਾਂ ਨੂੰ ਬਿੱਟਾਂ (ਜਾਂ ਹੋਰ ਚਿੰਨ੍ਹਾਂ) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਦਰਸਾਉਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਸਾਡੇ {A, B, C} ਅੱਖਰਮਾਲਾ ਲਈ, ਇੱਕ ਸੰਭਵ ਬਾਈਨਰੀ ਕੋਡ ਹੈ:
ਹੁਣ ਕੋਈ ਵੀ ਸੁਨੇਹਾ ਜੋ A/B/C ਤੇ ਬਣਿਆ ਹੈ, ਉਹ ਬਿੱਟਾਂ ਦੀ ਇੱਕ ਸਟ੍ਰੀਮ ਵਿੱਚ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ।
ਇਹ ਸ਼ਬਦ ਅਕਸਰ ਮਿਲਾ-ਝੁਲਾ ਵਰਤੇ ਜਾਂਦੇ ਹਨ:
ਅਸਲ ਸੁਨੇਹੇ ਬੇਕਾਰ ਨਹੀਂ ਹੁੰਦੇ: ਕੁਝ ਚਿੰਨ੍ਹ ਹੋਰਾਂ ਦੇ ਮੁਕਾਬਲੇ ਵੱਧ ਵਾਰ ਆਉਂਦੇ ਹਨ। ਮੰਨੋ A 70% ਵਾਰੀ ਆਉਂਦਾ ਹੈ, B 20%, C 10%. ਇੱਕ ਚੰਗੀ ਕੰਪ੍ਰੈਸ਼ਨ ਸਕੀਮ ਆਮ ਤੌਰ 'ਤੇ ਆਮ ਚਿੰਨ੍ਹਾਂ (A) ਨੂੰ ਛੋਟੇ ਬਿੱਟ ਪੈਟਰਨ ਦੇਵੇਗੀ ਅਤੇ ਦਰਿ rare ਚਿੰਨ੍ਹਾਂ (C) ਨੂੰ ਲੰਮੇ। ਉਹ "ਅਸਮਾਨਤਾ" ਹੀ ਹੈ ਜਿਸਨੂੰ ਅਗਲੇ ਭਾਗ ਐਨਟਰਪੀ ਨਾਲ ਮਾਪੇਗਾ।
Shannon ਦਾ ਸਭ ਤੋਂ ਮਸ਼ਹੂਰ ਵਿਚਾਰ ਐਨਟਰਪੀ ਹੈ: ਇੱਕ ਸਰੋਤ ਵਿੱਚ ਕਿੰਨੀ "ਹੈਰਾਨੀ" ਹੈ, ਇਹ ਮਾਪਣ ਦਾ ਤਰੀਕਾ। ਇੱਥੇ ਹੈਰਾਨੀ ਭਾਵਨਾਤਮਕ ਨਹੀਂ—ਹੈਰਾਨੀ ਇਕ ਅਣਪੇਖੀਤਾ ਹੈ। ਜਿੰਨਾ ਅਣਪੇਖੀਤ ਹੋਏਗਾ, ਅਗਲਾ ਚਿੰਨ੍ਹ ਆਉਣ 'ਤੇ ਉਸਦੇ ਨਾਲ ਜ਼ਿਆਦਾ ਜਾਣਕਾਰੀ ਮਿਲੇਗੀ।
ਕੋਈ ਸਿੱਕਾ ਉਲਟਦੇ ਦੇਖੋ।
ਇਹ "ਔਸਤ ਹੈਰਾਨੀ" ਵਾਲਾ ਫ੍ਰੇਮਵਰਕ ਰੋਜ਼ਾਨਾ ਪੈਟਰਨਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ: ਇੱਕ ਟੈਕਸਟ ਫਾਇਲ ਜਿਸ ਵਿੱਚ ਦੁਹਰਾਏ ਗਏ spaces ਅਤੇ ਆਮ ਸ਼ਬਦ ਹਨ ਉਹ random ਅੱਖਰਾਂ ਵਾਲੀ ਫਾਇਲ ਨਾਲੋਂ ਅਸਾਨੀ ਨਾਲ ਪੇਸ਼ਗੀ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਕੰਪ੍ਰੈਸ਼ਨ ਆਮ ਤੌਰ 'ਤੇ ਇਸ ਲਈ ਕੰਮ ਕਰਦੀ ਹੈ ਕਿ ਇਹ ਆਮ ਚਿੰਨ੍ਹਾਂ ਨੂੰ ਛੋਟੇ ਕੋਡ ਅਤੇ rare ਚਿੰਨ੍ਹਾਂ ਨੂੰ ਲੰਮੇ ਕੋਡ ਦੇਂਦੀ ਹੈ। ਜੇ ਸਰੋਤ ਅਨੁਮਾਨਯੋਗ (ਘੱਟ ਐਨਟਰਪੀ) ਹੈ, ਤਾਂ ਤੁਸੀਂ ਜ਼ਿਆਦਾਤਰ ਵਾਰ ਛੋਟੇ ਕੋਡਾਂ 'ਤੇ ਨਿਰਭਰ ਹੋ ਸਕਦੇ ਹੋ ਅਤੇ ਥਾਂ ਬਚਾ ਸਕਦੇ ਹੋ। ਜੇ ਇਹ ਲਗਭਗ random-ਨੁਮਾ (ਉੱਚ ਐਨਟਰਪੀ) ਹੈ, ਤਾਂ ਘੱਟ ਸਮੱਸਾ ਹੈ ਕਿ ਤੁਸੀਂ ਘਟਾ ਸਕੋਂਗੇ ਕਿਉਂਕਿ ਕੁਝ ਵੀ ਬਹਾਲ ਹੀ ਇੰਨੇ ਵਾਰ ਨਹੀਂ ਆਉਂਦਾ ਜਿਸ ਨੂੰ ਫਾਇਦਾ ਹੋਵੇ।
Shannon ਨੇ ਦਰਸਾਇਆ ਕਿ ਐਨਟਰਪੀ ਇੱਕ ਸੰਕਲਪਿਕ ਬੰਧਨ ਹੈ: ਇਹ ਉਹ ਭੇਟਾਂ ਪ੍ਰਤੀ ਚਿੰਨ੍ਹ ਔਸਤ ਬਿਟਾਂ ਦੀ ਸਭ ਤੋਂ ਵਧੀਆ ਨੀਵ ਹੈ ਜੋ ਤੁਸੀਂ ਉਸ ਸਰੋਤ ਦੇ ਡੇਟਾ ਨੂੰ ਐਨਕੋਡ ਕਰਕੇ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹੋ।
ਜ਼ਰੂਰੀ: ਐਨਟਰਪੀ ਕੋਈ ਕੰਪ੍ਰੈਸ਼ਨ ਐਲਗੋਰਿਦਮ ਨਹੀਂ ਹੈ। ਇਹ ਤੁਹਾਨੂੰ ਦੱਸਦੀ ਹੈ ਕਿ ਸਿਧਾਂਤੀ ਤੌਰ 'ਤੇ ਕੀ ਸੰਭਵ ਹੈ—ਅਤੇ ਜਦੋਂ ਤੁਸੀਂ ਪਹਿਲਾਂ ਹੀ ਸੀਮਾ ਦੇ ਨੇੜੇ ਹੋ।
ਕੰਪ੍ਰੈਸ਼ਨ ਉਹ ਹੁੰਦੀ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਸੁਨੇਹਾ ਲੈਂਦੇ ਹੋ ਜੋ ਘੱਟ ਬਿੱਟਾਂ ਵਿੱਚ ਦਰਸਾਇਆ ਜਾ ਸਕਦਾ ਹੈ, ਅਤੇ ਤੁਸੀਂ ਅਸਲ ਵਿੱਚ ਇਸਨੂੰ ਘਟਾਉਂਦੇ ਹੋ। Shannon ਦੀ ਮੁੱਖ ਸੂਝ ਇਹ ਹੈ ਕਿ ਨੀਵ ਐਨਟਰਪੀ ਵਾਲੇ ਡੇਟਾ (ਜ਼ਿਆਦਾ ਅਨੁਮਾਨਯੋਗ) ਕੋਲ "ਘੱਟ ਹੋਣ ਦੀ ਜਗ੍ਹਾ" ਹੁੰਦੀ ਹੈ, ਜਦਕਿ ਉੱਚ-ਐਨਟਰਪੀ ਡੇਟਾ ਕੋਲ ਨਹੀਂ।
ਦੁਹਰਾਏ ਪੈਟਰਨ ਸਪੱਸ਼ਟ ਫਾਇਦੇ ਹਨ: ਜੇ ਇੱਕ ਫਾਇਲ ਵਿੱਚ ਇੱਕੋ-ਹੀ ਕ੍ਰਮ ਕਈ ਵਾਰ ਆਉਂਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਉਸ ਕ੍ਰਮ ਨੂੰ ਇੱਕ ਵਾਰੀ ਸਟੋਰ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਕਈ ਵਾਰੀ ਹਵਾਲਾ ਦੇ ਸਕਦੇ ਹੋ। ਪਰ ਸਪਸ਼ਟ ਦੁਹਰਾਵਾਂ ਤੋਂ ਬਿਨਾਂ ਵੀ, ਪੱਖੀ ਆਵਿਰਤੀ ਮਦਦ ਕਰਦੀ ਹੈ।
ਜੇ ਇਕ ਟੈਕਸਟ 'ਚ "e" ਬਹੁਤ ਵਾਰੀ ਆਉਂਦਾ ਹੈ ਪਰ "z" ਕਮ ਆਉਂਦਾ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਹਰ ਚਰਿੱਤਰ 'ਤੇ ਇਕੋ ਜਿਹੇ ਬਿੱਟਾਂ ਦੀ ਲੋੜ ਨਹੀਂ। ਜਿੰਨਾ ਜ਼ਿਆਦਾ ਅਸਮਾਨ ਆਵਿਰਤੀ ਹੈ, ਉਤਨਾ ਵਧੇਰਾ predictability ਅਤੇ compressibility।
ਅਸਮਾਨ ਆਵਿਰਤੀ ਦਾ ਲਾਭ ਉਠਾਉਣ ਦਾ ਇੱਕ ਅਮਲੀ ਤਰੀਕਾ ਵੈਰੀਏਬਲ-ਲੰਬਾਈ ਕੋਡਿੰਗ ਹੈ:
ਯਥਾਰਥ ਵਿੱਚ, ਇਹ ਔਸਤ ਬਿੱਟ ਪ੍ਰਤੀ ਚਿੰਨ੍ਹ ਨੂੰ ਘਟਾਉਂਦਾ ਹੈ ਬਿਨਾਂ ਜਾਣਕਾਰੀ ਗਵਾਉਂਦੇ।
ਅਸਲ ਦਿਨ-ਚੱਲ ਹਕੀਕਤ ਦੇ lossless compressors ਕਈ ਵਿਚਾਰ ਮਿਲਾਕੇ ਵਰਤਦੇ ਹਨ, ਪਰ ਆਮ ਤੌਰ 'ਤੇ ਤੁਸੀਂ ਇਹ ਪਰਿਵਾਰ ਸੁਣੋਗੇ:
Lossless compression ਅਸਲ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਦੁਹਰਾਉਂਦਾ ਹੈ (ਉਦਾਹਰਨ: ZIP, PNG)। ਇਹ ਸਾਫਟਵੇਅਰ, ਦਸਤਾਵੇਜ਼, ਅਤੇ ਕਿਸੇ ਵੀ ਚੀਜ਼ ਲਈ ਜ਼ਰੂਰੀ ਹੈ ਜਿੱਥੇ ਇੱਕ ਵੀ ਗਲਤ ਬਿੱਟ ਮਹੱਤਵ ਰੱਖਦੀ ਹੈ।
Lossy compression ਜਾਣਬੂਝ ਕੇ ਉਹ ਜਾਣਕਾਰੀ ਕੱਡ ਦਿੰਦਾ ਹੈ ਜੋ ਲੋਕ ਆਮ ਤੌਰ 'ਤੇ ਮਹਿਸੂਸ ਨਹੀਂ ਕਰਦੇ (ਉਦਾਹਰਨ: JPEG ਫੋਟੋ, MP3/AAC ਆਡੀਓ)। ਉਦਦੇਸ਼ ਹੁੰਦਾ ਹੈ "ਉਹੀ ਅਨੁਭਵ" ਬਣਾਇਆ ਜਾਏ, ਅਕਸਰ ਬਹੁਤ ਛੋਟੀਆਂ ਫਾਇਲਾਂ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਦ੍ਰਿਸ਼ਟੀਗਤ ਨਿੱਕੀਆਂ ਵਿਸਥਾਰ ਹਟਾ ਕੇ।
ਹਰ ਡਿਜੀਟਲ ਸਿਸਟਮ ਇੱਕ ਨਾਜ਼ੁਕ ਧਾਰਨਾ 'ਤੇ ਖੜ੍ਹਾ ਹੈ: ਇੱਕ 0 ਇੱਕ 0 ਹੀ ਰਹਿਣੀ ਚਾਹੀਦੀ ਹੈ, ਅਤੇ ਇੱਕ 1 ਇੱਕ 1। ਅਸਲ ਵਿਚ, ਬਿੱਟਾਂ ਫਲਿੱਪ ਹੋ ਸਕਦੀਆਂ ਹਨ।
ਟ੍ਰਾਂਸਮਿਸ਼ਨ 'ਚ, ਬਿਜਲੀ ਹਸਤਖੇਪ, ਕਮਜ਼ੋਰ Wi‑Fi ਸਿਗਨਲ, ਜਾਂ ਰੇਡੀਓ ਸ਼ੋਰ ਇੱਕ ਸਿਗਨਲ ਨੂੰ ਥੋੜ੍ਹਾ-ਬਹੁਤ ਬਦਲ ਸਕਦੇ ਹਨ ਤਾਂ ਜੋ ਰਿਸੀਵਰ ਗਲਤ ਤਰੀਕੇ ਨਾਲinterpret ਕਰ ਲਵੇ। ਸਟੋਰੇਜ ਵਿੱਚ, ਛੋਟੇ ਭੌਤਿਕ ਪ੍ਰਭਾਵ—ਫਲੈਸ਼ ਮੈਮੋਰੀ ਦੀ ਘਿਸਾਈ, optical ਮੀਡੀਆ 'ਤੇ ਖ਼ਰੋਸ਼, ਜਾਂ ਇੱਛਾ ਰਹਿਤ ਰੇਡੀਏਸ਼ਨ—ਭੰਡਾਰਤ ਪ੍ਰਭਾਵ ਬਦਲ ਸਕਦੇ ਹਨ।
ਕਿਉਂਕਿ ਗਲਤੀਆਂ ਅਣਿਵਾਰਯ ਹਨ, ਇੰਜੀਨੀਅਰ ਜ਼ਰੂਰਤ ਮੁਤਾਬਕ redundancy ਜੋੜਦੇ ਹਨ: ਵਾਧੂ ਬਿੱਟ ਜੋ "ਨਵੀਂ" ਜਾਣਕਾਰੀ ਨਹੀਂ ਲਿਆਉਂਦੇ, ਪਰ ਨੁਕਸਾਨ ਦਾ ਪਤਾ ਲਗਾਉਣ ਜਾਂ ਉਸਨੂੰ ਠੀਕ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦੇ ਹਨ।
Parity bit (ਫ਼ੁੱਟਕ ਨਿਰਧਾਰਨ). ਇਕ ਵਾਧੂ ਬਿੱਟ ਜੋ ਕੁੱਲ 1s ਦੀ ਗਿਣਤੀ even (ਜੋੜੀ) ਜਾਂ odd ਰਹੇ—ਇਸ ਨਾਲ ਇੱਕ ਸਿੰਗਲ ਬਿੱਟ ਦੀ ਗਲਤੀ ਹੋਣ 'ਤੇ parity ਚੈਕ fail ਕਰ ਜਾਉਂਦਾ ਹੈ।
Checksum (ਬਲਾਕ ਲਈ ਬਿਹਤਰ ਪਤਾ ਲਾਉਣਾ). ਇਕ ਪੈਕੇਟ ਜਾਂ ਫਾਈਲ ਤੋਂ ਇਕ ਛੋਟੀ ਸੰਖਿਆਗਤ ਸੰਖੇਪ ਰਚਨਾ (ਉਦਾਹਰਨ: ਜੋੜ-ਸੰਖਿਆ checksum, CRC)। ਰਿਸੀਵਰ ਦੁਬਾਰਾ ਗਣਨਾ ਕਰਦਾ ਹੈ ਅਤੇ ਤੁਲਨਾ ਕਰਦਾ ਹੈ।
Repetition code (ਸਧਾਰਣ ਸੁਧਾਰ). ਹਰ ਬਿੱਟ ਨੂੰ ਤਿੰਨ ਵਾਰੀ ਭੇਜੋ: 0 → 000, 1 → 111। ਰਿਸੀਵਰ majority vote ਵਰਤਦਾ ਹੈ।
Error detection ਦਾ ਜਵਾਬ ਹੁੰਦਾ ਹੈ: "ਕੁਝ ਗਲਤ ਹੋਇਆ?" ਜਦੋਂ retries ਸਸਤੇ ਹੁੰਦੇ ਹਨ—ਜਿਵੇਂ ਨੈੱਟਵਰਕ ਪੈਕੇਟ—ਤਦ ਇਹ ਆਮ ਹੁੰਦਾ ਹੈ।
Error correction ਦਾ ਜਵਾਬ ਹੁੰਦਾ ਹੈ: "ਮੂਲ ਬਿੱਟ ਕੀ ਸੀ?" ਜਦੋਂ retries ਮਹਿੰਗੇ ਜਾਂ ਅਸੰਭਵ ਹੁੰਦੇ ਹਨ—ਜਿਵੇਂ streaming ਆਡੀਓ noisy link 'ਤੇ, deep-space communication, ਜਾਂ ਸਟੋਰੇਜ਼ ਜਿੱਥੇ ਦੁਬਾਰਾ ਪੜ੍ਹਨਾ ਵੀ ਗਲਤੀਆਂ ਦੇ ਸਕਦਾ ਹੈ—ਤਦ ਇਹ ਵਰਤੀ ਜਾਂਦੀ ਹੈ।
Redundancy ਵੇਖਣ ਵਿੱਚ ਵਿਅਰਥ ਲੱਗਦੀ ਹੈ, ਪਰ ਇਹੀ ਕਾਰਨ ਹੈ ਕਿ ਆਧੁਨਿਕ ਸਿਸਟਮ ਖ਼ਰਾਬ ਹਾਰਡਵੇਅਰ ਅਤੇ ਸ਼ੋਰ ਵਾਲੇ ਚੈਨਲਾਂ ਦੇ ਬਾਵਜੂਦ ਤੇਜ਼ ਅਤੇ ਭਰੋਸੇਯੋਗ ਹੋ ਸਕਦੇ ਹਨ।
ਜਦ ਤੁਸੀਂ ਹਕੀਕਤੀ ਚੈਨਲ 'ਤੇ ਡੇਟਾ ਭੇਜਦੇ ਹੋ—Wi‑Fi, ਸੈੱਲੁਲਰ, USB ਕੇਬਲ, ਇੱਥੋਂ ਤੱਕ ਕਿ ਇੱਕ ਹਾਰਡ ਡਰਾਈਵ—ਸ਼ੋਰ ਅਤੇ ਹਸਤਖੇਪ ਬਿੱਟਾਂ ਨੂੰ ਫਲਿੱਪ ਕਰ ਸਕਦੇ ਹਨ ਜਾਂ ਚਿੰਨ੍ਹਾਂ ਨੂੰ ਧੁੰਦਲਾ ਕਰ ਸਕਦੇ ਹਨ। Shannon ਦਾ ਵੱਡਾ ਵਾਅਦਾ ਹੈ: ਭਰੋਸੇਯੋਗ ਸੰਚਾਰ ਸੰਭਵ ਹੈ, ਇਥੇ ਤੱਕ ਕਿ noisy ਚੈਨਲ ਵੀ ਵਿਕਰਾਲੀ ਦਰੀਆਂ ਰੱਖ ਕੇ, ਜੇ ਤੁਸੀਂ ਬਹੁਤ ਜਿਆਦਾ ਜਾਣਕਾਰੀ ਨਹੀਂ ਧੱਕਦੇ।
Channel capacity ਚੈਨਲ ਦੀ "ਗਤੀ ਸੀਮਾ" ਹੈ: ਉਹ ਵੱਧ ਤੋਂ ਵੱਧ ਦਰ (bits per second) ਜੋ ਤੁਸੀਂ ਭੇਜ ਸਕਦੇ ਹੋ ਇਸ ਨਾਲ ਕਿ errors ਨੂੰ ਲਗਭਗ-ਨੂੰਨਾਂ ਤੱਕ ਘਟਾਇਆ ਜਾ ਸਕੇ, ਚੈਨਲ ਦੇ ਸ਼ੋਰ ਲੈਵਲ ਅਤੇ ਬੈਂਡਵਿਡਥ/ਪਾਵਰ ਵਰਗੀਆਂ ਪਾਬੰਦੀਆਂ ਦੇ ਮੱਦੇਨਜ਼ਰ।
ਇਹ ਕੱਚੇ symbol rate (ਤੁਸੀਂ ਸਿਗਨਲ ਕਿਵੇਂ ਤੇਜ਼ੀ ਨਾਲ ਟੌਗਲ ਕਰਦੇ ਹੋ) ਦੇ ਬਰਾਬਰ ਨਹੀਂ ਹੈ। ਇਹ ਇਸ ਬਾਰੇ ਹੈ ਕਿ ਸ਼ੋਰ ਦੇ ਬਾਅਦ ਕਿੰਨੀ ਮਾਇਨੇਦਾਰ ਜਾਣਕਾਰੀ ਬਚਦੀ ਹੈ—ਜਦ ਤੁਸੀਂ ਸਮਾਰਟ ਐਨਕੋਡਿੰਗ, redundancy, ਅਤੇ ਡਿਕੋਡਿੰਗ ਸ਼ਾਮਲ ਕਰਦੇ ਹੋ।
Shannon limit ਉਹ ਅਮਲੀ ਨਾਮ ਹੈ ਜੋ ਲੋਕ ਇਸ ਬੰਧਨ ਨੂੰ ਦਿੰਦੇ ਹਨ: ਇਸ ਤੋਂ ਹੇਠਾਂ ਤੁਹਾਨੂੰ ਚਾਹੀਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ, ਤੁਸੀਂ ਸੰਚਾਰ ਨੂੰ ਜਿੰਨਾ ਚਾਹੋ ਭਰੋਸੇਯੋਗ ਬਣਾ ਸਕਦੇ ਹੋ; ਇਸ ਤੋਂ ਉੱਪਰ, ਤੁਸੀਂ ਨਹੀਂ ਕਰ ਸਕਦੇ—ਗਲਤੀਆਂ ਕਿਸੇ ਵੀ ਡਿਜ਼ਾਈਨ ਨਾਲ ਰੁਕਦੀਆਂ ਨਹੀਂ।
ਇੰਜੀਨੀਅਰ ਇਸ ਸੀਮਾ ਦੇ ਨੇੜੇ ਪਹੁੰਚਣ ਲਈ modulation ਅਤੇ error-correcting ਕੋਡਾਂ ਨਾਲ ਬਹੁਤ ਮਹਿਨਤ ਕਰਦੇ ਹਨ। ਆਧੁਨਿਕ ਸਿਸਟਮ ਜਿਵੇਂ LTE/5G ਅਤੇ Wi‑Fi ਪ੍ਰਗਟਕੋਡਿੰਗ ਵਰਤਦੇ ਹਨ ਤਾਂ ਕਿ ਉਹ ਇਸ ਹੱਦ ਦੇ ਨੇੜੇ ਕੰਮ ਕਰ ਸਕਣ ਨਾ ਕਿ ਬਹੁਤ ਸਿਗਨਲ ਪਾਵਰ ਜਾਂ ਬੈਂਡਵਿਡਥ ਖ਼ਰਚਾਂ।
ਇਸਨੂੰ ਇੱਕ ਹਿਲਦੇ-ਡੁੱਲਦੇ ਰਸਤੇ 'ਤੇ ਵਸਤੂਆਂ ਪੈਕ ਕਰਨ ਵਾਲੀ ਟਰੱਕ ਵਜੋਂ ਸੋਚੋ:
Shannon ਨੇ ਕੋਈ ਇਕ "ਸਭ ਤੋਂ ਵਧੀਆ ਕੋਡ" ਨਹੀਂ ਦਿੱਤਾ, ਪਰ ਉਸਨੇ ਸਬੂਤ ਦਿੱਤਾ ਕਿ ਸੀਮਾ ਮੌਜੂਦ ਹੈ—ਅਤੇ ਇਸਦੇ ਨੇੜੇ ਜਾਣ ਲਈ ਮਹਨਤ ਕਰਨੀ ਲਾਇਕ ਹੈ।
Shannon ਦੀ noisy-channel theorem ਅਕਸਰ ਇਹ ਵਾਅਦਾ ਕਰਦੀ ਹੈ: ਜੇ ਤੁਸੀਂ ਡੇਟਾ ਨੂੰ ਇੱਕ ਚੈਨਲ ਦੀ ਸਮਰੱਥਾ ਤੋਂ ਘੱਟ ਦਰ 'ਤੇ ਭੇਜਦੇ ਹੋ, ਤਾਂ ਅਜਿਹੇ ਕੋਡ ਮੌਜੂਦ ਹਨ ਜੋ errors ਨੂੰ ਇੱਛਿਤ ਤੌਰ 'ਤੇ ਬਹੁਤ ਘੱਟ ਕਰ ਸਕਦੇ ਹਨ। ਅਸਲ ਇੰਜੀਨੀਅਰਿੰਗ ਇਸ "ਮੌਜੂਦਗੀ ਸਬੂਤ" ਨੂੰ ਅਮਲੀ ਸਕੀਮਾਂ ਵਿੱਚ ਬਦਲਣ ਬਾਰੇ ਹੈ ਜੋ ਚਿਪ, ਬੈਟਰੀ, ਅਤੇ ਡੈਡਲਾਈਨ ਵਿੱਚ ਫਿੱਟ ਹੋ ਸਕਦੀਆਂ ਹਨ।
ਜਿਆਦਾਤਰ ਵਾਸਤਵਿਕ ਸਿਸਟਮ block codes (ਇੱਕ ਚੁੰਕ ਬਿੱਟਾਂ ਦੀ ਰਕਿਅਤ) ਜਾਂ stream-oriented codes (ਲਗਾਤਾਰ ਲੜੀ ਦੀ ਰੱਖਿਆ) ਵਰਤਦੇ ਹਨ।
Block codes ਨਾਲ, ਤੁਸੀਂ ਹਰ ਬਲਾਕ ਵਿੱਚ ਨਿਆਪੂਰਨ redundancy ਜੋੜਦੇ ਹੋ ਤਾਂ ਕਿ ਰਿਸੀਵਰ ਗਲਤੀਆਂ ਪਛਾਣ ਅਤੇ ਠੀਕ ਕਰ ਸਕੇ। Interleaving ਨਾਲ ਤੁਸੀਂ ਭੇਜੇ ਗਏ ਬਿੱਟਾਂ/ਚਿੰਨ੍ਹਾਂ ਦੀ ਕ੍ਰਮ-ਵਿਨਯਾਸ ਨੂੰ ਦੁਬਾਰਾ ਰੱਖਦੇ ਹੋ ਤਾਂ ਜੋ ਸ਼ੋਰ ਦੇ ਇੱਕ ਬਰਸਟ (ਕਈ ਲਗਾਤਾਰ ਗਲਤੀਆਂ) ਨੂੰ ਕਈ ਬਲਾਕਾਂ ਵਿੱਚ ਫੈਲਾ ਦਿੱਤਾ ਜਾਵੇ—ਜੇਹੜਾ wireless ਅਤੇ ਸਟੋਰੇਜ ਲਈ ਬਹੁਤ ਜ਼ਰੂਰੀ ਹੈ।
ਹੋਰ ਵੱਡਾ ਫਰਕ ਇਹ ਹੈ ਕਿ ਰਿਸੀਵਰ "ਫੈਸਲਾ" ਕਿਵੇਂ ਕਰਦਾ ਹੈ:
Soft decisions decoder ਨੂੰ ਹੋਰ ਜਾਣਕਾਰੀ ਦਿੰਦੀਆਂ ਹਨ ਅਤੇ ਵਿਸ਼ੇਸ਼ਤੌਰ 'ਤੇ Wi‑Fi ਅਤੇ ਸੈੱਲੁਲਰ ਵਿੱਚ ਭਰੋਸੇਯੋਗਤਾ ਵਿੱਚ ਕਾਫੀ ਸੁਧਾਰ ਕਰ ਸਕਦੀਆਂ ਹਨ।
Deep-space communication ਤੋਂ ਲੈ ਕੇ ਉਪਗ੍ਰਹਿ, Wi‑Fi, ਅਤੇ 5G ਤੱਕ, error-correcting codes Shannon ਦੇ ਸਿਧਾਂਤ ਅਤੇ noisy ਚੈਨਲ ਦੀ ਹਕੀਕਤ ਦੇ ਵਿਚਕਾਰ ਅਮਲੀ ਪੁਲ ਹਨ—ਇਨਸਾਨਾਂ ਤੋਂ ਵੱਧ ਬਿੱਟ ਅਤੇ ਗਣਨਾ ਦੇ ਵਚਨ ਦੇ ਬਦਲੇ ਘੱਟ ਡ੍ਰਾਪਡ ਕਾਲਾਂ, ਤੇਜ਼ ਡਾਊਨਲੋਡ, ਅਤੇ ਹੋਰ ਭਰੋਸੇਯੋਗ ਲਿੰਕ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ।
ਇੰਟਰਨੈੱਟ ਕੰਮ ਕਰਦਾ ਹੈ ਭਾਵੇਂ ਕਿ ਹਰ ਇੱਕ ਲਿੰਕ ਪਰਫੈਕਟ ਨਾ ਹੋਵੇ। Wi‑Fi fade ਹੁੰਦੀ ਹੈ, ਮੋਬਾਈਲ ਸਿਗਨਲ ਰੁਕ ਜਾਂਦੇ ਹਨ, ਅਤੇ ਤਾਰਾਂ ਅਤੇ ਫਾਇਬਰ ਵੀ ਸ਼ੋਰ ਅਤੇ ਕਈ ਵਾਰ ਗਲਤੀਆਂ ਭੁਗਤਦੇ ਹਨ। Shannon ਦਾ ਮੁੱਖ ਸੁਨੇਹਾ—ਸ਼ੋਰ ਅਣਿਵਾਰਯ ਹੈ, ਪਰ ਭਰੋਸੇਯੋਗਤਾ ਹਾਸਲ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ—ਨੈਟਵਰਕਿੰਗ ਵਿੱਚ error detection/correction ਅਤੇ retransmission ਦੇ ਮਿਲੇ-ਜੁਲੇ ਯੂਜ਼ ਦੀ ਰਚਨਾ ਵਜੋਂ ਉਭਰਦਾ ਹੈ।
ਡਾਟਾ ਨੂੰ ਪੈਕਟਾਂ ਵਿੱਚ ਵੰਡਿਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਕਿ ਨੈੱਟਵਰਕ ਮੁਸ਼ਕਲ ਘੜੀਆਂ ਤੋਂ ਰਾਹ ਲੱਭ ਸਕੇ ਅਤੇ ਖੋਹ-ਪੋਹ ਤੋਂ ਬਿਨਾਂ ਬਹਾਲ ਹੋ ਸਕੇ। ਹਰ ਪੈਕਟ ਵਿੱਚ ਵਾਧੂ ਬਿੱਟ (headers ਅਤੇ checks) ਹੁੰਦੇ ਹਨ ਜੋ ਰਿਸੀਵਰ ਨੂੰ ਫੈਸਲਾ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦੇ ਹਨ ਕਿ ਜੋ ਆਇਆ ਉਹ ਭਰੋਸੇਯੋਗ ਹੈ ਜਾਂ ਨਹੀਂ।
ARAQ (Automatic Repeat reQuest) ਇੱਕ ਆਮ ਪੈਟਰਨ ਹੈ:
ਜਦੋਂ ਇਕ ਪੈਕਟ ਗਲਤ ਆਉਂਦਾ ਹੈ, ਤੁਹਾਡੇ ਕੋਲ ਮੁੱਖ ਤੌਰ 'ਤੇ ਦੋ ਚੋਣਾਂ ਹੁੰਦੀਆਂ ਹਨ:
FEC ਉਨ੍ਹਾਂ ਲਿੰਕਾਂ 'ਤੇ latency ਘਟਾ ਸਕਦਾ ਹੈ ਜਿੱਥੇ retransmissions ਮਹਿੰਗੇ ਹਨ (ਉੱਚ latency, ਬਿਨਾ ਲਗਾਤਾਰ ਕਨੈਕਸ਼ਨ), ਜਦਕਿ ARQ ਉਹਨਾਂ ਸਮੇਂ ਪ੍ਰਭਾਵਸ਼ালী ਹੈ ਜਦੋਂ ਹਾਨੀਅਰ੍ਹਿੰਗ ਘੱਟ ਹੋਵੇ, ਕਿਉਂਕਿ ਤੁਸੀਂ ਹਰ ਪੈਕਟ 'ਤੇ ਭਾਰੀ redundancy ਨਹੀਂ ਜੋੜਦੇ।
ਭਰੋਸੇਯੋਗਤਾ ਯੰਤ੍ਰਣ capacity ਖਪਤ ਕਰਦੇ ਹਨ: ਵਾਧੂ ਬਿੱਟ, ਵਾਧੂ ਪੈਕਟ, ਅਤੇ ਵਾਧੂ ਉਡੀਕ। Retransmissions ਲੋਡ ਵਧਾਉਂਦੀਆਂ ਹਨ, ਜੋ congestion ਨੂੰ ਬੁਝਾਉ ਸਕਦੀ ਹੈ; congestion ਫਿਰ delay ਅਤੇ loss ਵਧਾਉਂਦੀ ਹੈ, ਜੋ ਹੋਰ retries ਨੂੰ ਚੇਤੇ ਕਰਵਾਉਂਦੀ ਹੈ।
ਅਚਛੀ ਨੈਟਵਰਕ ਡਿਜ਼ਾਈਨ ਇਕ ਸਤੁਲਨ ਦੇ ਖੋਜ ਵਿੱਚ ਹੁੰਦੀ ਹੈ: ਕਾਫ਼ੀ ਭਰੋਸੇਯੋਗਤਾ ਤਾਂ ਜੋ ਡੇਟਾ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਦਿੱਤਾ ਜਾ ਸਕੇ, ਪਰ ਓਵਹੈੱਡ ਘੱਟ ਤਾਂ ਕਿ ਨੈੱਟਵਰਕ ਵੱਖ-ਵੱਖ ਹਾਲਤਾਂ ਵਿੱਚ ਸਿਹਤਮੰਦ throughput ਰੱਖ ਸਕੇ।
ਆਧੁਨਿਕ ਡਿਜੀਟਲ ਸਿਸਟਮਾਂ ਨੂੰ ਇੱਕ ਪਾਈਪਲਾਈਨ ਵਜੋਂ ਸਮਝਣਾ ਲਾਭਦਾਇਕ ਹੈ ਜਿਸਦੇ ਦੋ ਕੰਮ ਹਨ: ਸੁਨੇਹਾ ਛੋਟਾ ਬਣਾਉਣਾ ਅਤੇ ਸੁਨੇਹਾ ਯਾਤਰਾ ਬਚਣਾ। Shannon ਦੀ ਮੁੱਖ ਸੂਝ ਇਹ ਹੈ ਕਿ ਅਕਸਰ ਤੁਸੀਂ ਇਨ੍ਹਾਂ ਨੂੰ ਵੱਖ-ਵੱਖ ਪਰਤਾਂ ਵਜੋਂ ਸੋਚ ਸਕਦੇ ਹੋ—ਹਾਲਾਂਕਿ ਅਸਲ ਉਤਪਾਦ ਕਈ ਵਾਰ ਇਹਨਾਂ ਨੂੰ ਮਿਲਾ ਦੇਂਦੇ ਹਨ।
ਤੁਸੀਂ ਇੱਕ "ਸੋਰਸ" ਨਾਲ ਸ਼ੁਰੂ ਕਰਦੇ ਹੋ: ਟੈਕਸਟ, ਆਡੀਓ, ਵੀਡੀਓ, ਸੈਂਸਰ ਰੀਡਿੰਗ। Source coding ਅਣਪੇਖੀ ਢਾਂਚਾ ਹਟਾਉਂਦੀ ਹੈ ਤਾਂ ਜੋ ਤੁਸੀਂ ਬੇਕਾਰ ਬਿੱਟਾਂ ਨੂੰ ਖਰਚ ਨਾ ਕਰੋ। ਉਹ ZIP ਫਾਇਲਾਂ ਲਈ ਹੋ ਸਕਦਾ ਹੈ, AAC/Opus ਆਡੀਓ ਲਈ, ਜਾਂ H.264/AV1 ਵੀਡੀਓ ਲਈ।
ਕੰਪ੍ਰੈਸ਼ਨ ਇੱਥੇ ਐਨਟਰਪੀ ਨੂੰ ਕਾਰਜਕਾਰੀ ਰੂਪ ਵਿੱਚ ਲਿਆਉਂਦੀ ਹੈ: ਜਿੰਨਾ ਅਨੁਮਾਨਯੋਗ ਸਮੱਗਰੀ, ਉਤਨੇ ਘੱਟ ਬਿੱਟਾਂ ਦੀ ਲੋੜ ਆਮ ਤੌਰ 'ਤੇ ਹੋਵੇਗੀ।
ਫਿਰ ਕੰਪ੍ਰੈੱਸ ਕੀਤੇ ਬਿੱਟਾਂ ਨੂੰ ਇੱਕ noisy ਚੈਨਲ ਤੋਂ ਲੈ ਕੇ ਜਾਣਾ ਪੈਂਦਾ ਹੈ: Wi‑Fi, ਸੈੱਲੁਲਰ, ਫਾਇਬਰ, USB ਕੇਬਲ। Channel coding ਧਿਆਨ ਨਾਲ redundancy ਜੋੜਦੀ ਹੈ ਤਾਂ ਕਿ ਰਿਸੀਵਰ ਗਲਤੀਆਂ ਪਛਾਣ ਅਤੇ ਠੀਕ ਕਰ ਸਕੇ। ਇਹ CRCs, Reed–Solomon, LDPC, ਅਤੇ ਹੋਰ forward error correction (FEC) ਤਕਨੀਕਾਂ ਦੀ ਦੁਨੀਆਂ ਹੈ।
Shannon ਨੇ ਦਿਖਾਇਆ ਕਿ ਸਿਧਾਂਤ ਵਿੱਚ ਤੁਸੀਂ source coding ਨੂੰ ਸਭ ਤੋਂ ਚੰਗੀ ਕੰਪ੍ਰੈਸ਼ਨ ਦੇ ਨੇੜੇ ਅਤੇ channel coding ਨੂੰ ਚੈਨਲ ਸਮਰੱਥਾ ਤੱਕ ਭਰੋਸੇਯੋਗਤਾ ਦੇ ਨੇੜੇ ਅਜ਼ਾਦੀ ਨਾਲ ਡਿਜ਼ਾਈਨ ਕਰ ਸਕਦੇ ਹੋ—ਆਪਸ ਵਿੱਚ।
ਅਸਲ ਵਿੱਚ, ਇਹ ਪ੍ਰਿਥਕਤਾ ਇੱਕ ਚੰਗਾ ਤਰੀਕਾ ਹੈ ਡੀਬੱਗ ਕਰਨ ਲਈ: ਜੇ ਪ੍ਰਦਰਸ਼ਨ ਖਰਾਬ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਪੁੱਛ ਸਕਦੇ ਹੋ ਕਿ ਕੀ ਤੁਸੀਂ ਕੰਪ੍ਰੈਸ਼ਨ (source coding) ਵਿੱਚ ਕੁਝ ਗੁਆ ਰਹੇ ਹੋ, ਲਿੰਕ (channel coding) 'ਤੇ ਭਰੋਸੇਯੋਗਤਾ ਘਟ ਰਹੀ ਹੈ, ਜਾਂ retries ਅਤੇ buffering ਨਾਲ ਬਹੁਤਾ ਲੇਟੇੰਸ ਖਾ ਰਹੇ ਹੋ।
ਜਦ ਤੁਸੀਂ ਵੀਡੀਓ stream ਕਰ ਰਹੇ ਹੋ, ਐਪ ਇੱਕ codec ਵਰਤ ਕੇ ਫਰੇਮਾਂ ਨੂੰ ਕੰਪ੍ਰੈੱਸ ਕਰਦਾ ਹੈ। Wi‑Fi 'ਤੇ, ਪੈਕਟ ਲੌਸਟ ਜਾਂ ਖਰਾਬ ਹੋ ਸਕਦੇ ਹਨ, ਇਸ ਲਈ ਸਿਸਟਮ error detection, ਕਦੇ-ਕਦੇ FEC, ਅਤੇ ਫਿਰ ਲੋੜ ਪੈਣ 'ਤੇ retries (ARQ) ਵਰਤਦਾ ਹੈ। ਜੇ ਕਨੈਕਸ਼ਨ ਮਾੜਾ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ player ਘੱਟ bitrate ਸਟ੍ਰੀਮ 'ਤੇ ਸਵਿੱਚ ਕਰ ਸਕਦਾ ਹੈ।
ਅਸਲ ਸਿਸਟਮਾਂ separation ਨੂੰ ਮੁਹੱਈਆ ਕਰਦੇ ਹਨ ਪਰ ਜ਼ਿਆਦਾਤਰ ਵਾਰੀ ਸਮੇਂ ਦੀ ਲੋੜ ਕਾਰਨ ਇਨ੍ਹਾਂ ਨੂੰ ਮਿਲਾ ਦੇਂਦੇ ਹਨ: retries ਲਈ ਉਡੀਕ buffering ਦਾ ਕਾਰਨ ਬਣੇਗੀ, ਅਤੇ wireless ਹਾਲਤ ਤੇਜ਼ੀ ਨਾਲ ਬਦਲ ਸਕਦੀ ਹੈ। ਇਸੀ ਲਈ streaming stack ਕੰਪ੍ਰੈਸ਼ਨ ਚੋਣਾਂ, redundancy, ਅਤੇ adaptation ਨੂੰ ਇਕੱਠੇ ਮਿਲਾ ਕੇ ਚਲਾਉਂਦਾ ਹੈ—ਸਭ ਕੁਝ ਪੂਰਨ ਤੌਰ 'ਤੇ ਵੱਖ-ਵੱਖ ਨਹੀਂ, ਪਰ Shannon ਦੇ ਮਾਡਲ ਨਾਲ ਹੁਕਮਿਤ।
ਸੂਚਨਾ ਸਿਧਾਂਤ ਬਹੁਤ ਵਾਰੀ ਉਲੇਖਤ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਕੁਝ ਵਿਚਾਰ ਸਧਾਰਨਕਰਨ ਦੀ ਘਲਤੀਆਂ ਨਾਲ ਆਉਂਦੇ ਹਨ। ਹੇਠਾਂ ਕੁਝ ਆਮ ਗਲਤ ਫਹਿਮੀਆਂ ਦਿੱਤੀਆਂ ਹਨ—ਅਤੇ ਅਸਲ ਟਰੇਡਆਫ਼ ਜੋ ਇੰਜੀਨੀਅਰ ਬਣਾਉਂਦੇ ਹਨ ਜਦ ਸਿਸਟਮ ਤਿਆਰ ਕਰ ਰਹੇ ਹੁੰਦੇ ਹਨ।
ਰੋਜ਼ਾਨਾ ਬੋਲਚਾਲ ਵਿੱਚ, "random" ਦਾ ਮਤਲਬ "ਗੁੰਝਲਦਾਰ" ਜਾਂ "ਅਣਪੇਖੀਤ" ਹੋ ਸਕਦਾ ਹੈ। Shannon ਐਨਟਰਪੀ ਥੋੜ੍ਹਾ ਨਿਰਾਲਾ ਹੈ: ਇਹ ਹੈਰਾਨੀ ਨੂੰ ਮਾਪਦਾ ਹੈ ਦਿੱਤੇ probability ਮਾਡਲ ਦੇ ਆਧਾਰ 'ਤੇ।
ਇਸ ਲਈ ਐਨਟਰਪੀ ਅਹਿਸਾਸ ਨਹੀਂ; ਇਹ assumptions ਬਾਰੇ ਸੰਖਿਆਤਮਕ ਨੰਬਰ ਹੁੰਦਾ ਹੈ।
ਕੰਪ੍ਰੈਸ਼ਨ redundancy ਨੂੰ ਹਟਾਉਂਦੀ ਹੈ। Error correction ਅਕਸਰ ਮੱਕਸਦ ਕਰਕੇ redundancy ਜੋੜਦਾ ਹੈ ਤਾਂ ਜੋ ਰਿਸੀਵਰ ਨੁਕਸਾਨ ਤੋਂ ਬਚ ਸਕੇ।
ਇਸ ਨਾਲ ਇੱਕ ਪ੍ਰਯੋਗਿਕ ਟਕਰਾਅ ਪੈਦਾ ਹੁੰਦਾ ਹੈ:
Shannon ਦੀ ਚੈਨਲ ਸਮਰੱਥਾ ਕਹਿੰਦੀ ਹੈ ਕਿ ਹਰ ਚੈਨਲ ਦੀ ਇੱਕ ਅਧਿਕਤਮ ਭਰੋਸੇਯੋਗ throughput ਮੁਕਰਰ ਹੈ ਦਿੱਤੀ ਸ਼ੋਰ ਹਾਲਤਾਂ ਵਿੱਚ। ਉਸ ਸੀਮਾ ਤੋਂ ਹੇਠਾਂ, ਸਹੀ ਕੋਡਿੰਗ ਨਾਲ error ਦਰ ਨੂੰ ਬਹੁਤ ਘੱਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ; ਉਸ ਤੋਂ ਉੱਪਰ, ਗਲਤੀਆਂ ਕਿਸੇ ਵੀ ਤਰਕ ਨਾਲ ਰੋਕਣਯੋਗ ਨਹੀਂ।
ਇਸ ਲਈ "ਕਿਸੇ ਵੀ ਰਫ਼ਤਾਰ 'ਤੇ ਪੂਰਨ ਭਰੋਸੇਯੋਗਤਾ" ਸੰਭਵ ਨਹੀਂ: ਰਫ਼ਤਾਰ ਵਧਾਉਣਾ ਅਕਸਰ ਮਤਲਬ ਹੈ ਉੱਚ error probability, ਜ਼ਿਆਦਾ ਲੇਟੇੰਸ (ਹੋਰ retransmissions), ਜਾਂ ਵਧੇਰੇ ਓਵਰਹੈੱਡ (ਮਜ਼ਬੂਤ ਕੋਡਿੰਗ)।
ਉਤਪਾਦ ਜਾਂ ਆਰਕੀਟੈਕਚਰ ਨੂੰ ਅੰਕਲਨ ਕਰਦਿਆਂ ਪੁੱਛੋ:
ਇਹਨਾਂ ਚਾਰਾਂ ਨੂੰ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਸੈਟ ਕਰਨਾ ਫਾਰਮੂਲ ਯਾਦ ਕਰਨ ਤੋਂ ਜ਼ਿਆਦਾ ਮਹੱਤਵਪੂਰਨ ਹੈ।
Shannon ਦਾ ਮੁੱਖ ਸੁਨੇਹਾ ਇਹ ਹੈ ਕਿ ਸੂਚਨਾ ਨੂੰ ਮਾਪਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ, ਬਚਾਇਆ ਜਾ ਸਕਦਾ ਹੈ, ਅਤੇ ਇੱਕ ਛੋਟੇ ਸੈਟ ਵਿਚਾਰਾਂ ਵਰਤ ਕੇ compress ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਆਧੁਨਿਕ ਨੈੱਟਵਰਕ ਅਤੇ ਸਟੋਰੇਜ ਸਿਸਟਮ ਮੁੱਢਲੀ ਤੌਰ 'ਤੇ rate, ਭਰੋਸੇਯੋਗਤਾ, ਲੇਟੇੰਸ, ਅਤੇ ਗਣਨਾ ਦੇ ਤਰਲ-ਟਰੇਡਆਫ਼ ਹਨ।
ਜੇ ਤੁਸੀਂ ਅਸਲ ਉਤਪਾਦ—APIs, streaming ਫੀਚਰ, ਮੋਬਾਈਲ ਐਪਸ, telemetry ਪਾਈਪਲਾਈਨਾਂ—ਬਣਾ ਰਹੇ ਹੋ, ਤਾਂ Shannon ਦਾ ਫਰੇਮਵਰਕ ਇੱਕ ਉਪਯੋਗੀ ਡਿਜ਼ਾਈਨ ਚੈਕਲਿਸਟ ਹੈ: ਜੋ compress ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਉਸਨੂੰ compress ਕਰੋ; ਜੋ ਜ਼ਰੂਰੀ ਹੈ ਉਸਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰੋ; ਅਤੇ latency/throughput ਬਜਟ ਬਾਰੇ ਸਪਸ਼ਟ ਰਹੋ। ਇੱਕ ਤੁਰੰਤ ਦਰਸ਼ਨ ਇਹ ਹੈ ਕਿ ਜਦੋਂ ਤੁਸੀਂ end-to-end ਸਿਸਟਮ ਦਾ ਪ੍ਰੋਟੋਟਾਈਪ ਤੇਜ਼ੀ ਨਾਲ ਬਣਾਉਂਦੇ ਹੋ ਅਤੇ ਫਿਰ iteration ਕਰਦੇ ਹੋ: ਵਰਗਾ ਝੁਕਾਅ-ਕੋਡਿੰਗ ਪਲੇਟਫਾਰਮ Koder.ai, ਟੀਮਾਂ ਨੂੰ ਇੱਕ chat-driven spec ਤੋਂ React web app, Go backend ਨਾਲ PostgreSQL, ਅਤੇ ਇੱਥੋਂ ਤੱਕ ਕਿ ਇੱਕ Flutter mobile client ਤੱਕ spin up ਕਰਨ ਦੀ ਆਸਾਨੀ ਦਿੰਦਾ ਹੈ, ਫਿਰ ਹਕੀਕਤੀ ਵਰਲ্ড ਟਰੇਡਆਫ਼ (payload size, retries, buffering behavior) ਨੂੰ ਜਲਦੀ ਟੈਸਟ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ। planning mode, snapshots, ਅਤੇ rollback ਵਰਗੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨਾਲ ਤੁਸੀਂ "ਮਜ਼ਬੂਤ ਭਰੋਸੇਯੋਗਤਾ vs ਘੱਟ ਓਵਰਹੈਡ" ਬਦਲ ਵੇਖ ਕੇ ਦੋਹਰਾਉਣ ਕਰ ਸਕਦੇ ਹੋ ਬਿਨਾਂ ਰੁਕਾਵਟ ਦੇ।
ਹੋਰ ਪੜ੍ਹਾਈ ਕਿਸੇ ਹੋਰ ਲਾਗਤ ਵਾਲੀ ਹੋ ਸਕਦੀ ਹੈ ਪਰ ਲਾਭਦਾਇਕ ਹੈ:
ਅੱਗੇ ਵਧਣ ਲਈ, related explainers in /blog ਦੇਖੋ, ਫਿਰ /docs ਵਿੱਚ ਪਾਓ ਕਿ ਸਾਡਾ product ਸੰਚਾਰ ਅਤੇ ਕੰਪ੍ਰੈਸ਼ਨ-ਸੰਬੰਧੀ settings ਅਤੇ APIs ਕਿਵੇਂ ਦਿਖਾਉਂਦਾ ਹੈ। ਜੇ ਤੁਸੀਂ plans ਜਾਂ throughput limits ਦੀ tulna ਕਰ ਰਹੇ ਹੋ, /pricing agla ਕਦਮ ਹੈ।
Shannon ਦਾ ਮੁੱਖ ਬਦਲਾਅ ਇਹ ਸੀ ਕਿ ਉਸਨੇ ਸੂਚਨਾ ਨੂੰ ਘਟਾਈ ਗਈ ਅਣਿਸ਼ਚਿਤਤਾ ਵਜੋਂ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ—ਮਤਲਬ ਕਿ ਇਹ ਮਾਇਨੇ ਜਾਂ ਮਹੱਤਤਾ ਨਹੀਂ, ਬਲਕਿ ਉਹ ਹੈ ਜੋ ਪਤਾ ਲਗਣ ਨਾਲ ਅਣਿਸ਼ਚਿਤਤਾ ਘਟਦੀ ਹੈ। ਇਸ ਤੋਂ ਇੰਜੀਨੀਅਰ ਉਹ ਸਿਸਟਮ ਡਿਜ਼ਾਈਨ ਕਰ ਸਕਦੇ ਹਨ ਜੋ:
ਇੱਕ ਬਿਟ ਉਸ ਜਾਣਕਾਰੀ ਦੀ ਮਾਤਰਾ ਹੈ ਜੋ ਇੱਕ ਹਾਂ/ਨਹੀਂ ਅਣਿਸ਼ਚਿਤਤਾ ਨੂੰ ਸੁਲਝਾਉਣ ਲਈ ਲੋੜੀਂਦੀ ਹੁੰਦੀ ਹੈ। ਡਿਜੀਟਲ ਹਾਰਡਵੇਅਰ ਦੋ ਹਾਲਤਾਂ ਨੂੰ ਭਰੋਸੇਯੋਗ ਤਰੀਕੇ ਨਾਲ ਅਲੱਗ ਕਰ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਕਈ ਕਿਸਮਾਂ ਦੇ ਡਾਟਾ ਨੂੰ ਲੰਮੇ 0 ਅਤੇ 1 ਦੀ ਲੜੀ ਵਿੱਚ ਬਦਲ ਕੇ ਇਕਸਾਰ ਰੂਪ ਵਿੱਚ ਸਟੋਰ ਅਤੇ ਭੇਜਿਆ ਜਾ ਸਕਦਾ ਹੈ।
ਐਨਟਰਪੀ ਕਿਸੇ ਸਰੋਤ ਦੀ ਔਸਤ ਅਣਪੇਖੀਤਾ ਦਾ ਮਾਪ ਹੈ। ਇਹ ਕੰਪ੍ਰੈਸ਼ਨ ਲਈ ਇਹ ਦੱਸਦਾ ਹੈ ਕਿ ਕਿੰਨਾ ਘਟਾਇਆ ਜਾ ਸਕਦਾ ਹੈ:
ਐਨਟਰਪੀ ਕਿਸੇ ਕੰਪ੍ਰੈੱਸਰ ਨਹੀਂ ਹੈ; ਇਹ ਇੱਕ ਮਿਆਰੀ ਹੈ ਜੋ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਔਸਤ ਤੇ ਕੀ ਸੰਭਵ ਹੈ।
ਕੰਪ੍ਰੈਸ਼ਨ ਆਕਾਰ ਘਟਾਉਂਦੀ ਹੈ ਜਿਸ ਨਾਲ ਪੈਟਰਨ ਅਤੇ ਅਸਮਾਨ ਆਵਿਰਤੀ ਦਾ ਫਾਇਦਾ ਲੈ ਕੇ ਡੇਟਾ ਨੂੰ ਘੱਟ ਬਿੱਟਾਂ 'ਚ ਦਰਸਾਇਆ ਜਾਂਦਾ ਹੈ।
ਇਸ ਲਈ text, logs, ਅਤੇ ਸਰਲ ਗ੍ਰਾਫਿਕਸ ਆਮ ਤੌਰ 'ਤੇ ਚੰਗੀਆਂ ਤਰ੍ਹਾਂ compress ਹੁੰਦੇ ਹਨ; encrypted ਜਾਂ ਪਹਿਲਾਂ ਤੋਂ compress ਕੀਤੇ ਡਾਟਾ ਅਕਸਰ ਬਹੁਤ ਘੱਟ ਘਟਦੇ ਹਨ।
Encoding ਸਿਰਫ਼ ਡੇਟਾ ਨੂੰ ਇੱਕ ਚੁਣੀ ਹੋਈ ਰੂਪ ਵਿੱਚ ਬਦਲਣਾ ਹੈ (ਉਦਾਹਰਨ ਲਈ UTF‑8)।
Compression ਇੱਕ ਐਸੀ encoding ਹੈ ਜੋ ਅਸਮਾਨ ਆਵਿਰਤੀ ਨੂੰ ਵਰਤ ਕੇ ਔਸਤ ਬਿਟਾਂ ਦੀ ਗਿਣਤੀ ਘਟਾਉਂਦੀ ਹੈ।
Encryption ਡੇਟਾ ਨੂੰ ਇੱਕ কী ਨਾਲ ਗੁੰਝੀਲਾ ਕਰ ਦੇਂਦਾ ਹੈ ਤਾਂ ਕਿ ਬਾਹਰਲੇ ਲੋਕ ਪੜ੍ਹ ਨਾ ਸਕਣ; ਇਹ ਆਮ ਤੌਰ 'ਤੇ ਡੇਟਾ ਨੂੰ “ਰੈਂਡਮ-ਨੁਮਾ” ਬਣਾਉਂਦਾ ਹੈ, ਜਿਸ ਨਾਲ compress ਕਰਨਾ ਮੁਸ਼ਕਲ ਹੋ ਜਾਂਦਾ ਹੈ।
ਕਿਉਂਕਿ ਹਕੀਕਤ ਵਿੱਚ ਚੈਨਲ ਅਤੇ ਸਟੋਰੇਜ ਪਰਫੈਕਟ ਨਹੀਂ ਹੁੰਦੇ। ਟੈਲੀਫੋਨੀ, Wi‑Fi ਸ਼ੋਰ, ਫਲੈਸ਼ ਮੈਮੋਰੀ ਦੀ ਘੱਸਾਟ ਆਦਿ ਕਾਰਨ 0 ਅਤੇ 1 ਕਦੇ-ਕਦੇ ਉਲਟ ਸਕਦੇ ਹਨ। ਇੰਜੀਨੀਅਰ redundancy ਜੋੜਦੇ ਹਨ ਤਾਂ ਜੋ ਰਿਸੀਵਰ:
ਇਹ “ਵਾਧੂ” ਡੇਟਾ ਭਰੋਸੇਮੰਦੀ ਨੂੰ ਖਰੀਦਦੇ ਹਨ।
Error detection ਤੁਹਾਨੂੰ ਦੱਸਦੀ ਹੈ ਕਿ "ਕੁਝ ਗਲਤ ਹੋਇਆ ਹੈ" (ਜਦੋਂ retransmit ਸੰਭਵ ਹੋਵੇ)।
Error correction ਤੁਹਾਨੂੰ ਉਹ ਦੱਸਦੀ ਹੈ "ਅਸਲ ਡੇਟਾ ਕੀ ਸੀ" (ਜਦੋਂ retransmit ਮਹਿੰਗਾ ਜਾਂ ਅਸੰਭਵ ਹੋਵੇ)।
ਬਹੁਤ ਸਾਰੀਆਂ ਸਿਸਟਮ ਮਿਲਾ ਕੇ ਵਰਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ: ਪਹਿਲਾਂ detect ਕਰੋ, ਕੁਝ ਗਲਤੀਆਂ لوਕਲ طور 'ਤੇ correct ਕਰੋ, ਅਤੇ ਜਰੂਰਤ ਪੈਣ 'ਤੇ retransmit ਕਰੋ।
Channel capacity ਉਹ ਉੱਚਤਮ ਦਰ (bits/sec) ਹੈ ਜਿਸ 'ਤੇ ਤੁਸੀਂ noise ਦੀ ਦਿੱਤੀ ਸਤਰ ਅਤੇ bandwidth/power ਵਰਗੀਆਂ ਪਾਬੰਦੀਆਂ ਦੇ ਹੇਠਾਂ errors ਨੂੰ ਲਗਭਗ-ਨੂੰਨਾਂ (arbitrarily close to zero) ਤੱਕ ਘਟਾ ਸਕਦੇ ਹੋ।
Shannon limit ਇੱਕ ਅਮਲੀ “ਗਤੀ ਸੀਮਾ” ਹੈ: ਇਸ ਤੋਂ ਹੇਠਾਂ ਹੋ ਕੇ ਸੰਚਾਰ ਬਹੁਤ ਭਰੋਸੇਯੋਗ ਬਣਾਇਆ ਜਾ ਸਕਦਾ ਹੈ; ਇਸ ਤੋਂ ਉੱਪਰ ਕਿਸੇ ਵੀ ਤਰਕ ਨਾਲ errors ਲਾਜ਼ਮੀ ਹਨ।
ਨੈਟਵਰਕ ਡੇਟਾ ਨੂੰ ਛੋਟੇ-ਛੋਟੇ packets ਵਿੱਚ ਤੋੜਦੇ ਹਨ ਅਤੇ ਮਿਲੀ-ਗਈ ਵਿਧੀਆਂ ਵਰਤਦੇ ਹਨ:
ਇਸ ਤਰ੍ਹਾਂ ਇੰਟਰਨੈੱਟ ਭਾਵੇਂ ਕਿ ਕੁਝ ਲਿੰਕ ਖ਼ਰਾਬ ਹੋ ਜਾਂਦੇ ਹਨ, ਫਿਰ ਵੀ ਭਰੋਸੇਯੋਗ ਬਣਿਆ ਰਹਿੰਦਾ ਹੈ।
ਕਿਉਂਕਿ ਤੁਸੀਂ ਰੇਟ, ਭਰੋਸੇਮੰਦੀ, ਲੇਟੇੰਸ, ਅਤੇ ਓਵਰਹੈੱਡ ਦੇ ਵਿਚਕਾਰ ਵਪਾਰ ਕਰ ਰਹੇ ਹੋ:
ਇਸ ਲਈ streaming ਸਿਸਟਮ ਅਕਸਰ bitrate ਅਤੇ protection ਨੂੰ Wi‑Fi/cellular ਹਾਲਤਾਂ ਅਨੁਸਾਰ ਅਡਾਪਟ ਕਰਦੇ ਹਨ ਤਾਂ ਜੋ ਉਹ ਸਭ ਤੋਂ ਚੰਗੇ ਟਰੇਡਆਫ਼ 'ਤੇ ਰਹਿਣ।