نمایش نتایج 1 تا 8 از 8

نام تاپیک: LZW

  1. #1
    کاربر دائمی آواتار fazel-d
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بورکینافاسو
    پست
    399

    LZW

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

  2. #2
    کاربر دائمی آواتار BOB
    تاریخ عضویت
    خرداد 1383
    محل زندگی
    http://www.mshams.ir
    پست
    450

    نقل قول: LZW

    سلام

    LZW مخفف Lempel-Ziv-Welch است.

    الگوريتم و شرح:
    http://en.wikipedia.org/wiki/Lempel-Ziv-Welch
    http://marknelson.us/1989/10/01/lzw-data-compression/

    پياده‌سازي در جاوا:
    http://www.codeproject.com/KB/java/lzw.aspx

    اجتناب از آن:
    http://www.frugalcorner.com/lzw/lzwfree.html

  3. #3
    کاربر دائمی آواتار fazel-d
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بورکینافاسو
    پست
    399

    نقل قول: LZW

    در مورد این الگوریتم / واقعا توضیحات مختصر بود. ولی می شد چیز هایی رو هم فهمید.
    سوال1 : این نوع از الگوریتم > فشرده سازی بر روی محتوای فیل را دارند یا اصل فایل ( همراه Header و ...)؟

    سوال2 : LZW دارای یک Knowledge base هست که یک سری از حروف به طور پیش فرض در داخل آن است.این Table چگونه و در کجای فایل فشرده شده قرار می گیره؟

  4. #4
    کاربر دائمی آواتار fazel-d
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بورکینافاسو
    پست
    399

    نقل قول: LZW

    جوابی براش نیست
    خواهشا پست ها رو رها نکنید.

  5. #5
    کاربر دائمی آواتار fazel-d
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بورکینافاسو
    پست
    399

    نقل قول: LZW

    به نظر می یاد کسی این تایپیک رو سر نمی زنه!!!!

  6. #6

    نقل قول: LZW

    من به اين الگوريتم احتياج دارم لطفا راهنمايي كنيد نحوه دي كد كردن

  7. #7
    کاربر دائمی آواتار fazel-d
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بورکینافاسو
    پست
    399

    نقل قول: LZW

    در مورد فشرده سازی:
       w = NIL;
    while ( read a character k )
    {
    if wk exists in the dictionary
    w = wk;
    else
    add wk to the dictionary;
    output the code for w;
    w = k;
    }
    ذر ابتدا می بایست فایل رو به صورت کاراکتر به کاراکتر بخوانید. 2 متغییر اصلی به نام های w و k وجود دارد.
    شرح الگوریتم:
    در ابتدا w=Null است و در یک حلقه هر کاراکتری که خوانهده می شود در متغییر k قرار می گیرد. در شرط IF بررسی می شود که w+k در دیکشنری وجود دارد یا نه! ( دیکشنری یک فضا در memory شماست . مثلا یک آرایه نامحدود که آرایه شما به صورت دو بُعدی است. یک بعد آن کد اسکی و در مقابل آن یعنی بُعد دوم اون رشته کاراکتری)
    حالا بعد از بررسی w+k ، اگر در دیکشنری رشته W+k وجود داشته باشد w=w+k می شود. در غیر این صورت w+k در انتهای دیکشنری اضافه می شود و یک کد درج میشود( کدی که باید قرار گیرد مثلا از 256 شروع می شود ، چرا که از کد 0 تا 255 به صورت رزرو شده هستند مثل کاراکتر های a-z یا ...)
    در خط output the code for w; مقدار w در فایل ذخیره شده و در پایان w=k می شود و این روند تا پایان فایل ادامه می یابد.
    نکته: این الگوریتم (LZW) یک الگوریتم با طول ثابت است. یعنی باید بزرگترین کد در دیکشنری یافته شده و طول مابقی کاراکتر ها بر اساس تعداد بیتهایی که بزرگترین عدد به خود اختصاص می دهد ، قرار گیرد. این مطلب رو با یه مثال توضیح می دهم. فرض کنید که در دیگشنری مقادیر AB با کد 256 وجود دارد. 256 دارای 9 بیت است . حال باید تمامی رشته های موجود در دیکشنری مثلا کاراکتر A که 8 بیت است به صورت 9 بیت در فایل Comperssion ذخیره شود

  8. #8
    کاربر جدید
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران
    پست
    1

    نقل قول: LZW

    از مطالبتون استفاده کردم ... من می خوام الگوریتم lzw به زبان C#‎ پیاده سازی کنم . اما نمی دونم باید از کجا شروع کنم .. مثلا اطلاعات تویه دیکشنری باید فرق گذاشت بین حروف بزرگ یا کوچیک یا نه ؟ .....

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •