فشرده‌سازی داده‌ها

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

کدگذاری منبع روش‌های فشرده‌سازی یک منبع اطلاعات را مطالعه می‌کند. منابع اطلاعاتی طبیعی، مانند گفتار یا نوشتار انسان‌ها، دارای افزونگی است؛ برای مثال در جمله «من به خانه‌مان برگشتم» ضمایر «مان» و شناسه «م» در فعل جمله را می‌توان از جمله حذف نمود بدون اینکه از مفموم مورد نظر جمله چیزی کاسته شود. این توضیح را می‌توان معادل با انجام عمل فشرده سازی روی اطلاعات یک منبع اطلاعات دانست؛ بنابراین منظور از فشرده سازی اطلاعات کاستن از حجم آن به نحوی است که محتوی آن دچار تغییر نامناسبی نشود.

در علوم کامپیوتر و نظریه اطلاعات، فشرده سازی داده‌ها یا کد کردن داده‌ها، در واقع فرایند رمزگذاری اطلاعات با استفاده از تعداد بیت‌هایی (یا واحدهای دیگر حامل داده) کمتر از آنچه یک تمثال رمزگذاری نشده از همان اطلاعات استفاده می‌کند و با به کار گرفتن روش‌های رمزگذاری ویژه‌ای است.

مانند هر ارتباطی، ارتباطات با اطلاعات فشرده، تنها زمانی کار می‌کند که هم فرستنده و هم گیرندهٔ اطلاعات، روش رمزگذاری را بفهمند. به عنوان مثال این نوشته تنها زمانی مفهوم است که گیرنده متوجه باشد که هدف پیاده‌سازی با استفاده از زبان فارسی بوده. به همین ترتیب، دادهٔ فشرده سازی شده تنها زمانی مفهوم است که گیرنده روش رمزگشایی آن را بداند.

فشرده سازی به این دلیل مهم است که کمک می‌کند مصرف منابع با ارزش، مانند فضای هارد دیسک و یا پهنای باند ارسال، را کاهش دهد. البته از طرفی دیگر، اطلاعات فشرده سازی شده برای اینکه مورد استفاده قرار بگیرند باید از حال فشرده خارج شوند و این فرایند اضافه ممکن است برای بعضی از برنامه‌های کاربردی زیان آور باشد. برای مثال یک روش فشرده سازی برای یک فیلم ویدئویی ممکن است نیازمند تجهیزات و سخت‌افزار گران‌قیمتی باشد که بتواند فیلم را با سرعت بالایی از حالت فشرده خارج سازد که بتواند به طور همزمان با رمزگشایی پخش شود (گزینه‌ای که ابتدا رمزگشایی شود و سپس پخش شود، ممکن است به علت کم بود فضای برای فیلم رمزگشایی شده حافظه امکان‌پذیر نباشد). بنابراین طراحی روش فشرده سازی نیازمند موازنه و برآیندگیری بین عوامل متعددی است. از جمله این عوامل درصد فشرده سازی، میزان پیچیدگی معرفی شده (اگر از یک روش فشرده سازی پر اتلاف استفاده شود) و منابع محاسباتی لازم برای فشرده سازی و رمزگشایی اطلاعات را می‌توان نام برد. فشرده سازی به دو دسته فشرده‌سازی اتلافی (فشرده‌سازی با اتلاف) و فشرده‌سازی بهینه فشرده‌سازی بی‌اتلاف اطلاعات تقسیم می‌شوند. کدگذاری منبع، علم مطالعه روش‌های انجام این عمل، برای منابع متفاوت اطلاعاتی موجود است.

فشرده سازی بهینه در مقابل اتلافی[ویرایش]

الگوریتم‌های فشرده سازی بهینه معمولاً فراوانی آماری را به طریقی به کار می‌گیرند که بتوان اطلاعات فرستنده را اجمالی تر و بدون خطا نمایش دهند. فشرده سازی بهینه امکان‌پذیر است چون اغلب اطلاعات جهان واقعی دارای فراوانی آماری هستند. برای مثال در زبان فارسی حرف "الف" خیلی بیش تر از حرف "ژ" استفاده می‌شود و احتمال اینکه مثلاً حرف "غین" بعد از حرف "ژ" بیاید بسیار کم است. نوع دیگری از فشرده سازی، که فشرده سازی پر اتلاف یا کدگذاری ادراکی نام دارد که در صورتی مفید است که درصدی از صحت اطلاعات کفایت کند. به طور کلی فشرده سازی اتلافی توسط جستجو روی نحوهٔ دریافت اطلاعات مورد نظر توسط افراد راهنمایی می‌شود. برای مثال، چشم انسان نسبت به تغییرات ظریف در روشنایی حساس تر از تغییرات در رنگ است. فشرده سازی تصویر به روش JPEG طوری عمل می‌کند که از بخشی از این اطلاعات کم ارزش تر "صرف نظر" می‌کند. فشرده سازی اتلافی روشی را ارائه می‌کند که بتوان بیشترین صحت برای درصد فشرده سازی مورد نظر را به دست‌آورد. در برخی موارد فشرده سازی شفاف (نا محسوس) مورد نیاز است؛ در مواردی دیگر صحت قربانی می‌شود تا حجم اطلاعات تا حد ممکن کاهش بیابد.

روش‌های فشرده سازی بهینه برگشت پذیرند به نحوی که اطلاعات اولیه قابلیت بازیابی به طور دقیق را دارند در حالی که روش‌های اتلافی، از دست دادن مقداری از اطلاعات را برای دست یابی به فشردگی بیشتر می‌پذیرند. البته همواره برخی از داده وجود دارند که الگوریتم‌های فشرده سازی بهینهٔ اطلاعات در فشرده سازی آن‌ها ناتوان اند. در واقع هیچ الگوریتم فشرده سازی ای نمی‌تواند اطلاعاتی که هیچ الگوی قابل تشخیصی ندارند را فشرده سازی کند. بنابراین تلاش برای فشرده سازی اطلاعاتی که قبلاً فشرده شده‌اند معمولاً نتیجهٔ عکس داشته (به جای کم کردن حجم، آن را زیاد می‌کند)، هم چنین است تلاش برای فشرده سازی هر اطلاعات رمز شده‌ای (مگر حالتی که رمز بسیار ابتدایی باشد).

در عمل، فشرده سازی اتلافی نیز به مرحله‌ای می‌رسد که فشرده سازی مجدد دیگر تأثیری ندارد، هرچند یک الگوریتم بسیار اتلافی، مثلاً الگوریتمی که همواره بایت آخر فایل را حذف می‌کند، همیشه به مرحله‌ای می‌رسد که دیگر فایل تهی می‌شود.

مثالی از یک الگوریتم اتلافی در مقابل یک الگوریتم بهینه، می‌توان رشتهٔ مقابل است:

۲۵٫۸۸۸۸۸۸۸۸۸

این رشته می‌تواند به روش بهینه به شکل زیر فشرده شود:

۸[۹]۲۵

که خوانده می‌شود "بیست و پنج ممیز ۹ تا هشت"، و رشتهٔ اصلی دقیقاً بازسازی می‌شود و تنها به شکل کوچک تری نوشته می‌شود. در عوض در روش اتلافی از

۲۶

استفاده می‌شود که مقدار دقیق عبارت در ازای حجم کمتر از دست خواهد رفت.

الگوریتم‌ها و برنامه‌های اجرایی نمونه[ویرایش]

مثال فوق مثال بسیار ساده‌ای از یک رمزنگاری الگو-طول (کدبندی طول اجرا، که در آن "الگو" عبارت است از رشته‌ای از عناصر که به طور متوالی تکرار شده است و "طول" تعداد تکرار آن است) است. این روش اغلب برای بهینه‌سازی فضای دیسک در کامپیوترهای اداری و یا استفادهٔ بهتر از طول باند اتصال در یک شبکهٔ کامپیوتری به کار می‌رود. برای داده‌های نمادی مانند متن‌ها، صفحه گسترده‌ها ( Spreadsheet)، برنامه‌های اجرایی و… غیراتلافی بودن ضروری است زیرا تغییر کردن حتی یک بیت داده قابل قبول نمی‌باشد (مگر در موارد بسیار محدود). برای داده‌های صوتی و تصویری کاهش قدری از کیفیت بدون از دست دادن طبیعت اصلی داده قابل قبول می‌باشد. با بهره بردن از محدودیت‌های سیستم حواسی انسان، می‌توان در حجم زیادی از فضا صرفه جویی کرد و در عین حال خروجی ای را تولید کرد که با اصل آن تفاوت محسوسی ندارد. این روش‌های فشرده سازی اتلافی به طور کلی یک برآیند گیری سه جانبه بین سرعت فشرده سازی، حجم نهایی فشرده سازی و میزان کیفیت قابل چشم پوشی (درصد اتلاف قابل قبول) است.

نظریه[ویرایش]

سابقهٔ نظری فشرده سازی برای فشرده سازی‌های بهینه توسط نظریهٔ اطلاعات (که رابطه نزدیکی با نظریهٔ اطلاعات الگوریتمی دارد) و برای فشرده سازی‌های اتلافی توسط نظریهٔ آهنگ-پیچیدگی ( Rate–distortion theory) ارائه شده‌اند. این شاخه‌های مطالعاتی در اصل توسط کلوده شانون( Claude Shannon)، که مقالاتی بنیادی در این زمینه در اواخر دهه‌ای ۱۹۴۰ و اوایل دههٔ ۱۹۵۰ به چاپ رسانده است به وجود آمده. "رمزنگاری" و "نظریهٔ رمزگذاری" نیز رابطه بسیار زیادی با این زمینه دارند. ایدهٔ فشرده سازی رابطهٔ عمیقی با آمار استنباطی دارد.

آنتروپی[ویرایش]

دو جملهٔ زیر را در نظر می‌گیریم:

# فردا هوا گرفته و ابری خواهد بود.
# من یک میلیارد برنده شدم.

اگر چه جملهٔ دوم کوتاه‌تر از اولی‌ست، بار اطلاعاتی بیشتری نسبت به آن دارد.

جستارهای وابسته[ویرایش]

منابع[ویرایش]

پیوند به بیرون[ویرایش]