Lempel-Ziv یکی از الگوریتم های بی اتلاف و "دیکشنری پایه" فشرده سازی است که در سال 1977 توسط دو دانشمند کامپیوتر اسرائیلی به نام های Abraham Lempel و Jacob Ziv ارائه شد و تا به حال مشتقات بسیاری از آن ایجاد شده است. منظور از "دیکشنری پایه" این است که این الگوریتم برای رمزکردن اطلاعات از یک دیکشنری یا پایگاه اطلاعات استفاده می کند؛ این دیکشنری در طول اجرای الگوریتم ایجاد و تکمیل می شود؛ یا به عبارت دیگر به صورت On-the-Fly ایجاد می شود.
در این الگوریتم، قسمت های مختلفی از ورودی (با توجه به قسمت های قبلی) توسط کد های خاص و متمایزی جایگزین می شوند. در آخر ورودی به صورت سلسله ای از این کد ها در خواهد امد. کد های جایگزین شده از روی منبع داده ای که به آن "دیکشنری" (Dictionary) گفته می شود انتخاب خواهند شد و دیکشنری نیز بر اساس ورودی ایجاد و تکمیل می شود. تصویر متحرک زیر چگونگی کارکرد این الگوریتم برای یک ورودی مشخص را نشان می دهد.




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