'''کدگذاری منبع''' روشهای فشردهسازی یک منبع اطلاعات را مطالعه میکند. [[منابع اطلاعاتی]] طبیعی، مانند گفتار یا نوشتار انسانها، دارای [[افزونگی]] است؛ برای مثال در جمله «من به خانهمان برگشتم» ضمایر «مان» و شناسه «م» در [[فعل]] جمله را میتوان از جمله حذف نمود بدون اینکه از مفموم مورد نظر جمله چیزی کاسته شود. این توضیح را میتوان معادل با انجام عمل فشرده سازیفشردهسازی روی اطلاعات یک منبع اطلاعات دانست؛ بنابراین منظور از فشرده سازیفشردهسازی اطلاعات کاستن از حجم آن به نحوی است که محتوی آن دچار تغییر نامناسبی نشود.
در [[علوم کامپیوتر]] و [[نظریه اطلاعات]]، فشرده سازیفشردهسازی دادهها یا کد کردن دادهها، در واقع فرایند رمزگذاری اطلاعات با استفاده از تعداد بیتهایی (یا واحدهای دیگر حامل داده) کمتر از آنچه یک مثال رمزگذاری نشده از همان اطلاعات استفاده میکند و با به کار گرفتن روشهای رمزگذاری ویژهای است.
مانند هر ارتباطی، ارتباطات با اطلاعات فشرده، تنها زمانی کار میکند که هم فرستنده و هم گیرندهٔ اطلاعات، روش رمزگذاری را بفهمند. به عنوان مثال این نوشته تنها زمانی مفهوم است که گیرنده متوجه باشد که هدف پیادهسازی با استفاده از [[زبان فارسی]] بوده. به همین ترتیب، دادهٔ فشرده سازیفشردهسازی شده تنها زمانی مفهوم است که گیرنده روش رمزگشایی آن را بداند.
== ضرورت فشرده سازیفشردهسازی ==
[[فشرده سازی]] به این دلیل مهم است که کمک میکند مصرف منابع با ارزش، مانند فضای [[هارد دیسک]] یا [[پهنای باند]] ارسال، را کاهش دهد، که این نکته در کاهش هزینه و جلوگیری از اتلاف وقت کمک میکند. البته از طرفی دیگر، اطلاعات فشرده سازیفشردهسازی شده برای اینکه مورد استفاده قرار بگیرند باید از حال فشرده خارج شوند و این فرایند اضافه ممکن است برای بعضی از برنامههای کاربردی زیان آور باشد. برای مثال یک روش فشرده سازیفشردهسازی برای یک فیلم ویدئویی ممکن است نیازمند تجهیزات و سختافزار گرانقیمتی باشد که بتواند فیلم را با سرعت بالایی از حالت فشرده خارج سازد که بتواند به طوربهطور همزمانهمزمان با رمزگشایی پخش شود (گزینهای که ابتدا رمزگشایی شود و سپس پخش شود، ممکن است به علت کم بود فضای برای فیلم رمزگشایی شده حافظه امکانپذیر نباشد). بنابراین طراحی روش فشرده سازیفشردهسازی نیازمند موازنه و برآیندگیری بین عوامل متعددی است. از جمله این عوامل [[درصد فشرده سازی]]، [[میزان پیچیدگی معرفی شده]] (اگر از یک روش فشرده سازیفشردهسازی پر اتلاف استفاده شود) و منابع محاسباتی لازم برای فشرده سازیفشردهسازی و رمزگشایی اطلاعات را میتوان نام برد. فشرده سازیفشردهسازی به دو دسته فشردهسازی اتلافی ([[فشردهسازی با اتلاف]]) و فشردهسازی بهینه [[فشردهسازی بیاتلاف اطلاعات]] تقسیم میشوند. [[کدگذاری منبع]]، علم مطالعه روشهای انجام این عمل، برای منابع متفاوت اطلاعاتی موجود است.
== فشرده سازیفشردهسازی بهینه در مقابل اتلافی ==
[[الگوریتم]]های فشرده سازیفشردهسازی بهینه معمولاً فراوانی آماری را به طریقی به کار میگیرند که بتواند اطلاعات فرستنده را اجمالی تر و بدون خطا نمایش دهد. فشرده سازیفشردهسازی بهینه امکانپذیر است چون اغلب اطلاعات جهان واقعی دارای فراوانی آماری هستند. برای مثال در زبان فارسی حرف "الف" خیلی بیش تربیشتر از حرف "ژ" استفاده میشود و احتمال اینکه مثلاً حرف "غین" بعد از حرف "ژ" بیاید بسیار کم است. نوع دیگری از فشرده سازی، که فشرده سازیفشردهسازی پر اتلاف یا کدگذاری ادراکی نام دارد که در صورتی مفید است که درصدی از صحت اطلاعات کفایت کند. به طوربهطور کلی فشرده سازیفشردهسازی اتلافی توسط جستجو روی نحوهٔ دریافت اطلاعات مورد نظر توسط افراد راهنمایی میشود. برای مثال، [[چشم انسان]] نسبت به تغییرات ظریف در روشنایی حساس تر از تغییرات در رنگ است. [[فشرده سازیفشردهسازی تصویر]] به روش [[ویکیپدیا:JPEG|JPEG]] طوری عمل میکند که از بخشی از این [[اطلاعات کم]] ارزش تر "صرف نظر" میکند. فشرده سازیفشردهسازی اتلافی روشی را ارائه میکند که بتوان بیشترین صحت برای درصد فشرده سازیفشردهسازی مورد نظر را به دستآورد. در برخی موارد فشرده سازیفشردهسازی شفاف (نا محسوس) مورد نیاز است؛ در مواردی دیگر صحت قربانی میشود تا حجم اطلاعات تا حد ممکن کاهش بیابد.
روشهای فشرده سازیفشردهسازی بهینه برگشت پذیرند به نحوی که اطلاعات اولیه قابلیت بازیابی به طوربهطور دقیق را دارند در حالی که روشهای اتلافی، از دست دادن مقداری از اطلاعات را برای دست یابی به فشردگی بیشتر میپذیرند.
البته همواره برخی از [[داده ها]] وجود دارند که الگوریتمهای فشرده سازیفشردهسازی بهینهٔ اطلاعات در فشرده سازیفشردهسازی آنها ناتوان هستند. در واقع هیچ الگوریتم فشرده سازیفشردهسازی ای نمیتواند اطلاعاتی که هیچ الگوی قابل تشخیصی ندارند را فشرده سازیفشردهسازی کند. بنابراین تلاش برای فشرده سازیفشردهسازی اطلاعاتی که قبلاً فشرده شدهاند معمولاً نتیجهٔ عکس داشته (به جای کم کردن حجم، آن را زیاد میکند)، هم چنین است تلاش برای فشرده سازیفشردهسازی هر اطلاعات رمز شدهای (مگر حالتی که رمز بسیار ابتدایی باشد).
در عمل، [[فشرده سازیفشردهسازی اتلافی]]نیز به مرحلهای میرسد که فشرده سازیفشردهسازی مجدد دیگر تأثیری ندارد، هرچند یک الگوریتم بسیار اتلافی، مثلاً الگوریتمی که همواره بایت آخر فایل را حذف میکند، همیشه به مرحلهای میرسد که دیگر فایل تهی میشود.
مثالی از یک الگوریتم اتلافی در مقابل یک الگوریتم بهینه، میتوان رشتهٔ مقابل است:
== الگوریتمها و برنامههای اجرایی نمونه ==
مثال فوق مثال بسیار سادهای از یک [[رمزنگاری الگو-طول]] ([[کدبندی طول اجرا]]، که در آن "الگو" عبارت است از رشتهای از عناصر که به طوربهطور متوالی تکرار شده استشدهاست و "طول" تعداد تکرار آن است) است. این روش اغلب برای [[بهینهسازی]] فضای دیسک در کامپیوترهای اداری یا استفادهٔ بهتر از طول باند اتصال در یک شبکهٔ کامپیوتری به کار میرود. برای دادههای نمادی مانند متنها، صفحه گستردهها ([[ویکیپدیا:Spreadsheet|Spreadsheet]])، برنامههای اجرایی و… غیراتلافی بودن ضروری است زیرا تغییر کردن حتی یک بیت داده قابل قبول نمیباشد (مگر در موارد بسیار محدود). برای دادههای صوتی و تصویری کاهش قدری از کیفیت بدون از دست دادن طبیعت اصلی داده قابل قبول میباشد. با بهره بردن از محدودیتهای سیستم حواسی انسان، میتوان در حجم زیادی از فضا صرفه جویی کرد و در عین حال خروجی ای را تولید کرد که با اصل آن تفاوت محسوسی ندارد. این روشهای [[فشرده سازیفشردهسازی اتلافی]] به طوربهطور کلی یک برآیند گیریبرآیندگیری سه جانبه بین سرعت فشرده سازی، حجم نهایی فشرده سازیفشردهسازی و میزان کیفیت قابل چشم پوشی (درصد اتلاف قابل قبول) است.
== نظریه ==
سابقهٔ نظری فشرده سازیفشردهسازی برای فشرده سازیهای بهینه توسط [[نظریهٔ اطلاعات]] (که رابطه نزدیکی با نظریهٔ اطلاعات الگوریتمی دارد) و برای فشرده سازیهای اتلافی توسط [[نظریهٔ آهنگ-پیچیدگی]] ([[ویکیپدیا:Rate–distortion theory|Rate–distortion theory]]) ارائه شدهاند. این شاخههای مطالعاتی در اصل توسط کلوده شانون([[ویکیپدیا:Claude Shannon|Claude Shannon]])، که مقالاتی بنیادی در این زمینه در اواخر دههای ۱۹۴۰ و اوایل دههٔ ۱۹۵۰ به چاپ رسانده است به وجود آمده. "[[رمزنگاری]]" و "[[نظریهٔ رمزگذاری]]" نیز رابطه بسیار زیادی با این زمینه دارند. ایدهٔ فشرده سازیفشردهسازی رابطهٔ عمیقی با [[آمار استنباطی]] دارد.
== فرمتهای فشردهسازی ==
== فرمت های فشرده سازی ==
* [[ZIP]] و [[RAR]]
* [[EXE]]
|