Artificial Intelligence - هوش مصنوعی

Artificial Intelligence - هوش مصنوعی (http://artificial.ir/intelligence/)
-   نرم افزار MATLAB (http://artificial.ir/intelligence/forum64.html)
-   -   Huffman Coding And Arithmetic Coding (http://artificial.ir/intelligence/thread13716.html)

sarajoun ۰۳-۱۵-۱۳۹۴ ۰۳:۱۶ بعد از ظهر

Huffman Coding And Arithmetic Coding
 
سلام
می خواستم بدونم به کمک ارتمتیک و یا هافمن ، میتونم فایلی رو شامل کاراکترهای حروف انگلیسی و اعداد هستش، مثل:
Asss23fg4
رو فشرده سازی کنم؟ یا اینکه فقط باید فایلم شامل کاراکتر خالی و یا اعداد تنها باشد؟

babak_1234 ۰۳-۱۶-۱۳۹۴ ۰۸:۲۸ قبل از ظهر

نقل قول:

نوشته اصلي بوسيله sarajoun (پست 35368)
سلام
می خواستم بدونم به کمک ارتمتیک و یا هافمن ، میتونم فایلی رو شامل کاراکترهای حروف انگلیسی و اعداد هستش، مثل:
Asss23fg4
رو فشرده سازی کنم؟ یا اینکه فقط باید فایلم شامل کاراکتر خالی و یا اعداد تنها باشد؟


سلام دوست من

فرقی نمیکنه. در حقیقت در فشرده سازی شما با نماد ها(symbols) سروکار دارید.

موفق باشید

sarajoun ۰۳-۱۶-۱۳۹۴ ۰۵:۳۷ بعد از ظهر

ممنون
آخه من یک کد ارتمتیک گرفتم، وقتی کاراکتر میدم مثل
asdrfgvef
فشرده میکنه و حجم کمتر میشه، اما وقتی کاراکتر و عدد رو با هم میدم بهش مثل
asdfa34sd
حجم رو کمتر نمیکنه
و اینکه من چند جا نگاه کردم دیدم نوشته ارتمتیک کدینگ برای متن، ارتمیتک کدینگ برای اعداد، یعنی دوتا کد جدا نوشته بود، گفتم شاید هرکدومو جداگانه میتونه فشرده سازی کنه با یک روش جداگانه و نباید در یک ورودی هر دو کاراکتر حرف و عددی باشه

اگه ارتمتیک یا هافمنی دارین که ورودی شامل حرف و عدد رو فشرده میکنه ،ممنون میشم برام بفرستین
و اینکه آیا میدونین کدوم یکی از این دو(ارتمتیک یا هافمن) رو همچین ورودی(یعنی ورودی شامل حروف و اعداد) بهتر عمل میکنه؟

babak_1234 ۰۳-۱۸-۱۳۹۴ ۱۲:۲۲ بعد از ظهر

نقل قول:

نوشته اصلي بوسيله sarajoun (پست 35378)
ممنون
آخه من یک کد ارتمتیک گرفتم، وقتی کاراکتر میدم مثل
asdrfgvef
فشرده میکنه و حجم کمتر میشه، اما وقتی کاراکتر و عدد رو با هم میدم بهش مثل
asdfa34sd
حجم رو کمتر نمیکنه
و اینکه من چند جا نگاه کردم دیدم نوشته ارتمتیک کدینگ برای متن، ارتمیتک کدینگ برای اعداد، یعنی دوتا کد جدا نوشته بود، گفتم شاید هرکدومو جداگانه میتونه فشرده سازی کنه با یک روش جداگانه و نباید در یک ورودی هر دو کاراکتر حرف و عددی باشه

اگه ارتمتیک یا هافمنی دارین که ورودی شامل حرف و عدد رو فشرده میکنه ،ممنون میشم برام بفرستین
و اینکه آیا میدونین کدوم یکی از این دو(ارتمتیک یا هافمن) رو همچین ورودی(یعنی ورودی شامل حروف و اعداد) بهتر عمل میکنه؟


طبق قضیه تئوری اطلاعات شانون در صورتی تنوع کاراکترها بالا باشه (احتمال رخداد پایین بیاد) بیت های بیشتری برای کدگزاری نیاز داره بنابراین فشرده سازی کمتر اتفاق میوفته.
در ضمن arithmetic coding برای سمبل هایی با تعداد فرکانس پایین مناسبه
به احتمال زیاد کد شما درست کار میکنه. کافیه تعداد فرکانس نماد ها رو بالا ببرید تا اثر فشرده سازی رو ببینید.

موفق باشید

sarajoun ۰۳-۲۲-۱۳۹۴ ۰۷:۴۳ بعد از ظهر

سلام
فایل ورودی من پونزده ها کاراکتر منحصر به فرد داره
ارتمیتیک بهتره یا هافمن؟؟
و اینکه من از این لینک دانلود کردم ارتمتیک رو
Arithmetic coding and decoding for text compression in matlab | download free open source Matlab toolbox, matlab code, matlab source code
اینکه میگین فرکتنسشو بالا ببرم یعنی کجا باید این تغییر رو بدم، تو کدوم قسمتش؟

sarajoun ۰۳-۲۲-۱۳۹۴ ۰۷:۴۵ بعد از ظهر

Arithmetic coding and decoding for text compression in matlab | download free open source Matlab toolbox, matlab code, matlab source code

این لینکش، تو پست قبلی بد اومدش

babak_1234 ۰۳-۲۳-۱۳۹۴ ۰۳:۲۷ بعد از ظهر

سلام دوست من

بالابردن فرکانس یعنی تعداد تکرار کاراکتر های حروف الفبا رو بالا بردن.
درضمن من کد شمارو تست کردم ظاهرا مشکلی نداره.

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

موفق باید

sarajoun ۰۳-۲۴-۱۳۹۴ ۱۰:۲۵ قبل از ظهر

سلام بازم متوجه نمیشم تعداد تکرار کاراکتر ها رو بالا ببرین یعنی چی؟ یعنی فایل ورودی رو منظورتونو تغییر بدم، که نمیشه چون فایل ورودی رو نمیشه دست کاری کرد که. اگر منظورتون تو الگوریتم هستش که لطفا بگین کدوم قسمتو منظورتونه تو کدی که فرستادم تو پست قبلی

من ورودی رو که بهش دادم، تعداد صفر و یک هایی که تولید کرد از تعداد کاراکترهای فایل ورودیم بیشتر بود، خب اینکه فشرده سازی نمیشه که

babak_1234 ۰۳-۲۵-۱۳۹۴ ۰۲:۲۴ بعد از ظهر

نقل قول:

نوشته اصلي بوسيله sarajoun (پست 35426)
سلام بازم متوجه نمیشم تعداد تکرار کاراکتر ها رو بالا ببرین یعنی چی؟ یعنی فایل ورودی رو منظورتونو تغییر بدم، که نمیشه چون فایل ورودی رو نمیشه دست کاری کرد که. اگر منظورتون تو الگوریتم هستش که لطفا بگین کدوم قسمتو منظورتونه تو کدی که فرستادم تو پست قبلی

من ورودی رو که بهش دادم، تعداد صفر و یک هایی که تولید کرد از تعداد کاراکترهای فایل ورودیم بیشتر بود، خب اینکه فشرده سازی نمیشه که

سلام دوست من

منظورم اینه که اگر ۵ تا حرف a استفاده شده بکنیش ۱۰ تا.
اون صفر و یک ها بیت های مورد استفاده هستن. یعنی هر هشت بیت یک بایت هستش.
شما برای نمایش هر کاراکتر در شرایط عادی(غیر فشرده) احتیاج به یک بایت(۸ بیت) دارید. اما در این نوع نمایش بیت کمتری مورد استفاده قرار میگیره.

موفق باشید

sarajoun ۰۳-۲۹-۱۳۹۴ ۱۰:۱۸ قبل از ظهر

آها
پس درست متوجه شدم، منظور شما اینه که من فایل ورودی رو تغییر بدم؟؟
خب نمیشه همچین کاری کرد که من یک فایل دارم و میخام اونو فشرده کنم، نمیتونم که اول توش دستکاری کنم و بعد فشردش کنم


زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۹:۰۸ قبل از ظهر ميباشد.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.