This document provides an introduction to a course on multimedia data compression taught by Prof. Khaled Mostafa. It discusses why data compression is needed to reduce the large sizes of multimedia files like images and video. It then describes different types of compression techniques including lossless compression, lossy compression, and hybrid techniques. Specific algorithms covered in the course are also listed such as JPEG, MPEG, Lempel-Ziv 77 (LZ77), and dictionary-based compression methods. Examples are provided to illustrate how LZ77 compression works.
The document discusses data compression fundamentals including why compression is needed, information theory basics, classification of compression algorithms, and compression performance metrics. It notes that high quality audio, video, and images require huge storage and bandwidth that compression addresses. Compression algorithms involve modeling data redundancy and entropy encoding. Lossy compression achieves higher compression but with reconstruction error, while lossless compression exactly reconstructs data. Key metrics include compression ratio, subjective quality scores, and objective measures like PSNR.
The document discusses data compression fundamentals including why compression is needed, information theory basics, classification of compression algorithms, and the data compression model. It notes that digital representations of analog signals require huge storage and bandwidth for transmission. Compression aims to represent source data with as few bits as possible while maintaining acceptable fidelity through modeling and coding phases. Algorithms can be lossless or lossy depending on whether reconstruction is exact. Performance is evaluated based on compression ratio, quality, complexity, and delay.
This document discusses digital image processing and image compression. It covers 5 units: digital image fundamentals, image transforms, image enhancement, image filtering and restoration, and image compression. Image compression aims to reduce the size of image data and is important for applications like facsimile transmission and CD-ROM storage. There are two types of compression - lossless, where the original and reconstructed data are identical, and lossy, which allows some loss for higher compression ratios. Factors to consider for compression method selection include whether lossless or lossy is needed, coding efficiency, complexity tradeoffs, and the application.
These slides cover the fundamentals of data communication & networking. it covers Data compression which compression data for transmitted over communication channel. It is useful for engineering students & also for the candidates who want to master data communication & computer networking.
Types of Data compression, Lossy Compression, Lossless compression and many more. How data is compressed etc. A little extensive than CIE O level Syllabus
This document discusses various image compression methods and algorithms. It begins by explaining the need for image compression in applications like transmission, storage, and databases. It then reviews different types of compression, including lossless techniques like run length encoding and Huffman encoding, and lossy techniques like transformation coding, vector quantization, fractal coding, and subband coding. The document also describes the JPEG 2000 image compression algorithm and applications of JPEG 2000. Finally, it discusses self-organizing feature maps (SOM) and learning vector quantization (VQ) for image compression.
The document is a glossary of terms related to sound design and production for computer games. It contains definitions for over 20 terms researched by the student from online sources. For each term, the student provides a short definition found on the internet along with the URL source, and also describes how the term relates to their own production practice if applicable. The terms cover areas such as sound file formats, audio limitations, recording systems, and MIDI instruments.
This document discusses how Sony utilizes the Cell Broadband Engine (Cell/B.E.) processor in the PlayStation 3. It describes how the Cell/B.E.'s power is needed for graphics-intensive games and virtual worlds, as well as media processing and folding@home. However, accessing the full performance of the Cell/B.E. is challenging due to its complexity. Sony addresses this through its SPURS environment, which uses techniques like job streaming and multi-buffering to schedule and optimize work across the SPEs and PPU, improving programming accessibility and resource utilization.
The document discusses data compression fundamentals including why compression is needed, information theory basics, classification of compression algorithms, and compression performance metrics. It notes that high quality audio, video, and images require huge storage and bandwidth that compression addresses. Compression algorithms involve modeling data redundancy and entropy encoding. Lossy compression achieves higher compression but with reconstruction error, while lossless compression exactly reconstructs data. Key metrics include compression ratio, subjective quality scores, and objective measures like PSNR.
The document discusses data compression fundamentals including why compression is needed, information theory basics, classification of compression algorithms, and the data compression model. It notes that digital representations of analog signals require huge storage and bandwidth for transmission. Compression aims to represent source data with as few bits as possible while maintaining acceptable fidelity through modeling and coding phases. Algorithms can be lossless or lossy depending on whether reconstruction is exact. Performance is evaluated based on compression ratio, quality, complexity, and delay.
This document discusses digital image processing and image compression. It covers 5 units: digital image fundamentals, image transforms, image enhancement, image filtering and restoration, and image compression. Image compression aims to reduce the size of image data and is important for applications like facsimile transmission and CD-ROM storage. There are two types of compression - lossless, where the original and reconstructed data are identical, and lossy, which allows some loss for higher compression ratios. Factors to consider for compression method selection include whether lossless or lossy is needed, coding efficiency, complexity tradeoffs, and the application.
These slides cover the fundamentals of data communication & networking. it covers Data compression which compression data for transmitted over communication channel. It is useful for engineering students & also for the candidates who want to master data communication & computer networking.
Types of Data compression, Lossy Compression, Lossless compression and many more. How data is compressed etc. A little extensive than CIE O level Syllabus
This document discusses various image compression methods and algorithms. It begins by explaining the need for image compression in applications like transmission, storage, and databases. It then reviews different types of compression, including lossless techniques like run length encoding and Huffman encoding, and lossy techniques like transformation coding, vector quantization, fractal coding, and subband coding. The document also describes the JPEG 2000 image compression algorithm and applications of JPEG 2000. Finally, it discusses self-organizing feature maps (SOM) and learning vector quantization (VQ) for image compression.
The document is a glossary of terms related to sound design and production for computer games. It contains definitions for over 20 terms researched by the student from online sources. For each term, the student provides a short definition found on the internet along with the URL source, and also describes how the term relates to their own production practice if applicable. The terms cover areas such as sound file formats, audio limitations, recording systems, and MIDI instruments.
This document discusses how Sony utilizes the Cell Broadband Engine (Cell/B.E.) processor in the PlayStation 3. It describes how the Cell/B.E.'s power is needed for graphics-intensive games and virtual worlds, as well as media processing and folding@home. However, accessing the full performance of the Cell/B.E. is challenging due to its complexity. Sony addresses this through its SPURS environment, which uses techniques like job streaming and multi-buffering to schedule and optimize work across the SPEs and PPU, improving programming accessibility and resource utilization.
1. Steganoid is a tool for hiding information in images and audio files using steganography and AES encryption for added security.
2. It uses a least significant bit encoding scheme to hide data in the pixel values of images or sample values of audio. The hidden information is first encrypted with AES before being encoded.
3. The tool provides two layers of security - steganography and AES encryption. It allows hiding data larger than the cover file size and ensures data consistency even if the file format is changed. It can also be used for digital watermarking.
The presentation layer is responsible for data representation, compression, encryption and formatting for transmission between applications. It encodes application data into messages and decodes received messages. Common data representations include ASN.1 and XDR. Lossy and lossless compression techniques are used to reduce file sizes. Encryption transforms plaintext into ciphertext using keys to protect confidentiality during transmission.
This document summarizes image processing techniques in the Android environment. It discusses compressed, saturated, and cropped images created using mathematical operations and techniques like JPEG lossy compression. It also covers adding text to images and adjusting brightness/contrast. Key aspects of image processing like compression, techniques like JPEG, and performance metrics for evaluating Android apps like CPU usage, memory usage, and GPU are overviewed.
DISCRETE COSINE TRANSFORM WITH ADAPTIVE HUFFMAN CODING BASED IMAGE COMPRESSION
code with ressult
ABSTRACT
Method of compression which is Huffman coding based on histogram information and image segmentation. It is used for lossless and lossy compression. Theamount of image will be compressed in lossy manner, and in lossless manner, depends on theinformation obtained by the histogram of the image. The results show that the difference betweenoriginal and compressed images is visually negligible. The compression ratio(CR) and peak signal tonoise ratio(PSNR) are obtained for different images. The relation between compression ratio and peaksignal to noise ratio shows that whenever we increase compression ratio we get PSNR high. We can alsoobtain minimum mean square error. It shows that if we get high PSNR than our image quality is better.
This document provides an overview of data compression techniques. It discusses how data compression reduces the number of bits needed to represent data, saving storage space and transmission bandwidth. It describes lossy compression methods like JPEG and MPEG that eliminate redundant information, resulting in smaller file sizes but some loss of data quality. Lossless compression methods like ZIP and GIF are also covered, which compress data without any loss for file types like text where quality is important. Specific lossless compression techniques like run length encoding, Huffman coding, Lempel-Ziv coding are explained. The document concludes with a brief mention of image, video, audio and dictionary based compression methods.
This document provides an overview of data compression techniques. It discusses how data compression reduces the number of bits needed to represent data, saving storage space and transmission bandwidth. It describes lossy compression methods like JPEG and MPEG that eliminate redundant information, resulting in smaller file sizes but some loss of data quality. Lossless compression methods like ZIP and GIF are also covered, which compress data without any loss for file types like text where quality is important. Specific lossless compression techniques like run length encoding, Huffman coding, Lempel-Ziv coding are explained. The document concludes with a brief mention of image, video, audio and dictionary based compression methods.
This document introduces khmer, a platform for scalable sequence analysis. It discusses how khmer uses k-mers to provide implicit read alignments and assemble sequences using de Bruijn graphs. It also describes some of the challenges with k-mers, such as each sequencing error resulting in novel k-mers. The document outlines khmer's data structures and algorithms for efficiently counting k-mers and represents de Bruijn graphs. It discusses how khmer has been applied to real biological problems and highlights areas of current research using khmer, such as error correction, variant calling, and assembly-free comparisons of data sets.
This document contains a glossary of terms related to sound design and production. It defines terms like foley artistry, sound libraries, file formats like .wav and .mp3, audio limitations involving sound processor units and digital sound processors, audio recording systems, audio sampling concepts, and how they relate to the student's own production practice of manipulating sounds to create new sounds. The student researched definitions for each term and explained how some of the concepts, like using MIDI keyboards and sound sequencers, directly applied to their work, while other terms they were unfamiliar with or did not use in their projects.
This document provides definitions for key terms related to sound design and production for computer games. It includes a glossary with over 20 terms defined, along with relevant URLs. For each term, the student also provides a brief description of how the term relates to their own production practice, such as using sound libraries to choose sounds or converting YouTube videos to mp3 format. The glossary covers areas such as sound design methodology, file formats, audio limitations, recording systems, sampling, and MIDI instruments.
Presentation on Graphical password-technology to make system more securedSanjeev Kumar Jaiswal
A graphical password is an authentication system that works by having
the user select from images, in a specific order, presented in a graphical
user interface (GUI). Graphical passwords may offer better security than
text-based passwords because many people, in an attempt to memorize
text-based passwords, use plain words
1. The document provides definitions for various audio and sound design terms, sourced from online research.
2. Definitions include formats like .wav, .aiff, and .mp3, concepts like lossy compression, and hardware like sound cards and digital signal processors.
3. It also defines audio recording and playback systems from analogue to digital, surround sound, and direct audio using pulse code modulation.
1. DiscoGAN is a method for learning to discover cross-domain relations without explicitly paired data using generative adversarial networks.
2. It uses two coupled GANs to map each domain into the other domain to allow for domain transfer while preserving key attributes.
3. Results show DiscoGAN performs better than other methods and is more robust to the mode collapse problem due to the symmetry granted by coupling the two GANs.
Design and Implementation of EZW & SPIHT Image Coder for Virtual ImagesCSCJournals
The main objective of this paper is to designed and implemented a EZW & SPIHT Encoding Coder for Lossy virtual Images. .Embedded Zero Tree Wavelet algorithm (EZW) used here is simple, specially designed for wavelet transform and effective image compression algorithm. This algorithm is devised by Shapiro and it has property that the bits in the bit stream are generated in order of importance, yielding a fully embedded code. SPIHT stands for Set Partitioning in Hierarchical Trees. The SPIHT coder is a highly refined version of the EZW algorithm and is a powerful image compression algorithm that produces an embedded bit stream from which the best reconstructed images. The SPIHT algorithm was powerful, efficient and simple image compression algorithm. By using these algorithms, the highest PSNR values for given compression ratios for a variety of images can be obtained. SPIHT was designed for optimal progressive transmission, as well as for compression. The important SPIHT feature is its use of embedded coding. The pixels of the original image can be transformed to wavelet coefficients by using wavelet filters. We have anaysized our results using MATLAB software and wavelet toolbox and calculated various parameters such as CR (Compression Ratio), PSNR (Peak Signal to Noise Ratio), MSE (Mean Square Error), and BPP (Bits per Pixel). We have used here different Wavelet Filters such as Biorthogonal, Coiflets, Daubechies, Symlets and Reverse Biorthogonal Filters .In this paper we have used one virtual Human Spine image (256X256).
1. The document provides definitions for various terms related to sound design and production. It includes a glossary with over 20 terms defined along with the relevant URLs where the definitions were found.
2. For each term, the document asks the reader to describe the relevance of the term to their own production practice. Short descriptions are provided for most terms.
3. The glossary covers topics such as sound file formats, audio limitations, audio recording systems, audio sampling, and MIDI instruments. It provides concise yet informative definitions for technical sound and audio terms.
The document is a glossary assignment for a games design course on sound design. It contains definitions for over 20 key terms related to sound design and production. For each term, it provides a short definition from an online source as well as any relevant details about how the term relates to the student's own production practice. The glossary covers areas such as foley artistry, sound file formats, audio limitations, recording systems, sampling, and more.
The document is a glossary of terms related to sound design and production for computer games. It contains definitions of terms researched by the student from online sources, along with explanations of how each term relates to the student's own production practice. The glossary covers areas such as sound design methodology, sound file formats, audio limitations, audio recording systems, audio sampling, and MIDI keyboard instruments.
This document contains a glossary of terms related to sound design and production for computer games. It provides researched definitions for over 20 terms, sourced from websites. For each term, it also describes the relevance to the author's own production practice, such as describing file formats used for storing sounds. The glossary covers areas such as sound file formats, audio hardware, audio recording and sampling techniques, and software used for sound design.
AN EMERGING TREND OF FEATURE EXTRACTION METHOD IN VIDEO PROCESSINGcscpconf
Recently the progress in technology and flourishing applications open up new forecast and defy
for the image and video processing community. Compared to still images, video sequences
afford more information about how objects and scenarios change over time. Quality of video is
very significant before applying it to any kind of processing techniques. This paper deals with
two major problems in video processing they are noise reduction and object segmentation on
video frames. The segmentation of objects is performed using foreground segmentation based
and fuzzy c-means clustering segmentation is compared with the proposed method Improvised
fuzzy c – means segmentation based on color. This was applied in the video frame to segment
various objects in the current frame. The proposed technique is a powerful method for image
segmentation and it works for both single and multiple feature data with spatial information.
The experimental result was conducted using various noises and filtering methods to show which is best suited among others and the proposed segmentation approach generates good quality segmented frames.
1. The document provides definitions for key terms related to sound design and production for computer games. It includes definitions for terms like foley artistry, sound libraries, audio file formats (wav, aiff, au, smp), lossy compression (mp3), sound processors (SPU, DSP), memory (RAM), mono/stereo/surround sound, direct audio techniques like pulse code modulation, and analogue recording systems.
2. For each term, it gives a short definition from an online source and describes how the term relates to the individual's own audio production practice, discussing experiences using tools like sound libraries, different file formats, compression types, and pan techniques.
3. The glossary
The document provides definitions and explanations of terms related to sound design and production for computer games. It contains a glossary with 15 terms and their definitions sourced from online references. For each term, the author also provides a short description of how the term relates to their own production practice. The glossary covers areas such as sound file formats, audio recording systems, MIDI, software tools, and more. The purpose is to research and explain industry-specific terminology for a course assignment on sound for computer games.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
1. Steganoid is a tool for hiding information in images and audio files using steganography and AES encryption for added security.
2. It uses a least significant bit encoding scheme to hide data in the pixel values of images or sample values of audio. The hidden information is first encrypted with AES before being encoded.
3. The tool provides two layers of security - steganography and AES encryption. It allows hiding data larger than the cover file size and ensures data consistency even if the file format is changed. It can also be used for digital watermarking.
The presentation layer is responsible for data representation, compression, encryption and formatting for transmission between applications. It encodes application data into messages and decodes received messages. Common data representations include ASN.1 and XDR. Lossy and lossless compression techniques are used to reduce file sizes. Encryption transforms plaintext into ciphertext using keys to protect confidentiality during transmission.
This document summarizes image processing techniques in the Android environment. It discusses compressed, saturated, and cropped images created using mathematical operations and techniques like JPEG lossy compression. It also covers adding text to images and adjusting brightness/contrast. Key aspects of image processing like compression, techniques like JPEG, and performance metrics for evaluating Android apps like CPU usage, memory usage, and GPU are overviewed.
DISCRETE COSINE TRANSFORM WITH ADAPTIVE HUFFMAN CODING BASED IMAGE COMPRESSION
code with ressult
ABSTRACT
Method of compression which is Huffman coding based on histogram information and image segmentation. It is used for lossless and lossy compression. Theamount of image will be compressed in lossy manner, and in lossless manner, depends on theinformation obtained by the histogram of the image. The results show that the difference betweenoriginal and compressed images is visually negligible. The compression ratio(CR) and peak signal tonoise ratio(PSNR) are obtained for different images. The relation between compression ratio and peaksignal to noise ratio shows that whenever we increase compression ratio we get PSNR high. We can alsoobtain minimum mean square error. It shows that if we get high PSNR than our image quality is better.
This document provides an overview of data compression techniques. It discusses how data compression reduces the number of bits needed to represent data, saving storage space and transmission bandwidth. It describes lossy compression methods like JPEG and MPEG that eliminate redundant information, resulting in smaller file sizes but some loss of data quality. Lossless compression methods like ZIP and GIF are also covered, which compress data without any loss for file types like text where quality is important. Specific lossless compression techniques like run length encoding, Huffman coding, Lempel-Ziv coding are explained. The document concludes with a brief mention of image, video, audio and dictionary based compression methods.
This document provides an overview of data compression techniques. It discusses how data compression reduces the number of bits needed to represent data, saving storage space and transmission bandwidth. It describes lossy compression methods like JPEG and MPEG that eliminate redundant information, resulting in smaller file sizes but some loss of data quality. Lossless compression methods like ZIP and GIF are also covered, which compress data without any loss for file types like text where quality is important. Specific lossless compression techniques like run length encoding, Huffman coding, Lempel-Ziv coding are explained. The document concludes with a brief mention of image, video, audio and dictionary based compression methods.
This document introduces khmer, a platform for scalable sequence analysis. It discusses how khmer uses k-mers to provide implicit read alignments and assemble sequences using de Bruijn graphs. It also describes some of the challenges with k-mers, such as each sequencing error resulting in novel k-mers. The document outlines khmer's data structures and algorithms for efficiently counting k-mers and represents de Bruijn graphs. It discusses how khmer has been applied to real biological problems and highlights areas of current research using khmer, such as error correction, variant calling, and assembly-free comparisons of data sets.
This document contains a glossary of terms related to sound design and production. It defines terms like foley artistry, sound libraries, file formats like .wav and .mp3, audio limitations involving sound processor units and digital sound processors, audio recording systems, audio sampling concepts, and how they relate to the student's own production practice of manipulating sounds to create new sounds. The student researched definitions for each term and explained how some of the concepts, like using MIDI keyboards and sound sequencers, directly applied to their work, while other terms they were unfamiliar with or did not use in their projects.
This document provides definitions for key terms related to sound design and production for computer games. It includes a glossary with over 20 terms defined, along with relevant URLs. For each term, the student also provides a brief description of how the term relates to their own production practice, such as using sound libraries to choose sounds or converting YouTube videos to mp3 format. The glossary covers areas such as sound design methodology, file formats, audio limitations, recording systems, sampling, and MIDI instruments.
Presentation on Graphical password-technology to make system more securedSanjeev Kumar Jaiswal
A graphical password is an authentication system that works by having
the user select from images, in a specific order, presented in a graphical
user interface (GUI). Graphical passwords may offer better security than
text-based passwords because many people, in an attempt to memorize
text-based passwords, use plain words
1. The document provides definitions for various audio and sound design terms, sourced from online research.
2. Definitions include formats like .wav, .aiff, and .mp3, concepts like lossy compression, and hardware like sound cards and digital signal processors.
3. It also defines audio recording and playback systems from analogue to digital, surround sound, and direct audio using pulse code modulation.
1. DiscoGAN is a method for learning to discover cross-domain relations without explicitly paired data using generative adversarial networks.
2. It uses two coupled GANs to map each domain into the other domain to allow for domain transfer while preserving key attributes.
3. Results show DiscoGAN performs better than other methods and is more robust to the mode collapse problem due to the symmetry granted by coupling the two GANs.
Design and Implementation of EZW & SPIHT Image Coder for Virtual ImagesCSCJournals
The main objective of this paper is to designed and implemented a EZW & SPIHT Encoding Coder for Lossy virtual Images. .Embedded Zero Tree Wavelet algorithm (EZW) used here is simple, specially designed for wavelet transform and effective image compression algorithm. This algorithm is devised by Shapiro and it has property that the bits in the bit stream are generated in order of importance, yielding a fully embedded code. SPIHT stands for Set Partitioning in Hierarchical Trees. The SPIHT coder is a highly refined version of the EZW algorithm and is a powerful image compression algorithm that produces an embedded bit stream from which the best reconstructed images. The SPIHT algorithm was powerful, efficient and simple image compression algorithm. By using these algorithms, the highest PSNR values for given compression ratios for a variety of images can be obtained. SPIHT was designed for optimal progressive transmission, as well as for compression. The important SPIHT feature is its use of embedded coding. The pixels of the original image can be transformed to wavelet coefficients by using wavelet filters. We have anaysized our results using MATLAB software and wavelet toolbox and calculated various parameters such as CR (Compression Ratio), PSNR (Peak Signal to Noise Ratio), MSE (Mean Square Error), and BPP (Bits per Pixel). We have used here different Wavelet Filters such as Biorthogonal, Coiflets, Daubechies, Symlets and Reverse Biorthogonal Filters .In this paper we have used one virtual Human Spine image (256X256).
1. The document provides definitions for various terms related to sound design and production. It includes a glossary with over 20 terms defined along with the relevant URLs where the definitions were found.
2. For each term, the document asks the reader to describe the relevance of the term to their own production practice. Short descriptions are provided for most terms.
3. The glossary covers topics such as sound file formats, audio limitations, audio recording systems, audio sampling, and MIDI instruments. It provides concise yet informative definitions for technical sound and audio terms.
The document is a glossary assignment for a games design course on sound design. It contains definitions for over 20 key terms related to sound design and production. For each term, it provides a short definition from an online source as well as any relevant details about how the term relates to the student's own production practice. The glossary covers areas such as foley artistry, sound file formats, audio limitations, recording systems, sampling, and more.
The document is a glossary of terms related to sound design and production for computer games. It contains definitions of terms researched by the student from online sources, along with explanations of how each term relates to the student's own production practice. The glossary covers areas such as sound design methodology, sound file formats, audio limitations, audio recording systems, audio sampling, and MIDI keyboard instruments.
This document contains a glossary of terms related to sound design and production for computer games. It provides researched definitions for over 20 terms, sourced from websites. For each term, it also describes the relevance to the author's own production practice, such as describing file formats used for storing sounds. The glossary covers areas such as sound file formats, audio hardware, audio recording and sampling techniques, and software used for sound design.
AN EMERGING TREND OF FEATURE EXTRACTION METHOD IN VIDEO PROCESSINGcscpconf
Recently the progress in technology and flourishing applications open up new forecast and defy
for the image and video processing community. Compared to still images, video sequences
afford more information about how objects and scenarios change over time. Quality of video is
very significant before applying it to any kind of processing techniques. This paper deals with
two major problems in video processing they are noise reduction and object segmentation on
video frames. The segmentation of objects is performed using foreground segmentation based
and fuzzy c-means clustering segmentation is compared with the proposed method Improvised
fuzzy c – means segmentation based on color. This was applied in the video frame to segment
various objects in the current frame. The proposed technique is a powerful method for image
segmentation and it works for both single and multiple feature data with spatial information.
The experimental result was conducted using various noises and filtering methods to show which is best suited among others and the proposed segmentation approach generates good quality segmented frames.
1. The document provides definitions for key terms related to sound design and production for computer games. It includes definitions for terms like foley artistry, sound libraries, audio file formats (wav, aiff, au, smp), lossy compression (mp3), sound processors (SPU, DSP), memory (RAM), mono/stereo/surround sound, direct audio techniques like pulse code modulation, and analogue recording systems.
2. For each term, it gives a short definition from an online source and describes how the term relates to the individual's own audio production practice, discussing experiences using tools like sound libraries, different file formats, compression types, and pan techniques.
3. The glossary
The document provides definitions and explanations of terms related to sound design and production for computer games. It contains a glossary with 15 terms and their definitions sourced from online references. For each term, the author also provides a short description of how the term relates to their own production practice. The glossary covers areas such as sound file formats, audio recording systems, MIDI, software tools, and more. The purpose is to research and explain industry-specific terminology for a course assignment on sound for computer games.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
1. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
1
Introduction
to
Multimedia
Data Compression
Prof. Khaled Mostafa El- Sayed
Prof. Khaled Mostafa El- Sayed
khaledms@fci-cu.edu.eg
Khaledms@gmail.com
Faculty of Computers and Information
Cairo University
Feb 2015
2. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
2
Course Reference
“Introduction to Data Compression”
By Khalid Sayood
Fourth Edition , 2012
(The Morgan Kaufmann Series in Multimedia Information and Systems)
3. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
3
Why Compress?
● To reduce the volume of data to be
transmitted (text, fax, images)
● To reduce storage requirements (speech,
audio, video)
● To reduce the bandwidth required for
transmission
4. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
4
Image Data Size
Gray Image (one Byte / Pixel)
● For 1024*768 Pixel Gray Image
● Original Size = 1024*768 * 1 Byte = 768 K bytes
Color Image (Three Bytes / Pixel {Red, Green, Blue})
● For 1024*768 Pixel Color Image
● Original Size = 1024*768 * 3 Bytes = 2304 K bytes
5. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
5
Video Data Size
Video (25 Frame / Second)
For 1 Minute 1024*768 Pixel Video clip
● Original Size (for 1 Sec) = 1024*768 * 3 Bytes * 25
Frames = 57600 K bytes
● Original Size (for 1 Min) = 1024*768 * 3 Bytes * 25
Frames / Sec * 60 Sec/Min = 57600 * 60 = 3456000 K
bytes = 3.456 GB
● What About 2 Hours Movie ?? (3.456 * 120 Min = !!!!)
● What of using NTSC system (30 Frame / Sec) !!!
6. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
6
How is compression possible?
[1] Redundancy in digital audio, image, and video data
[2] Properties of human perception
Digital audio is a series of sample values;
Image is a rectangular array of pixel values;
Video is a sequence of images played out at a certain
rate
Neighboring sample values are correlated
7. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
7
Redundancy
Adjacent audio samples are similar (predictive
encoding); samples corresponding to silence (silence
removal)
In digital image, neighboring samples on a scanning
line are normally similar (spatial redundancy)
In digital video, in addition to spatial redundancy,
neighboring images in a video sequence may be similar
(temporal redundancy)
8. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
8
Human Perception Factors
Compressed version of digital audio, image, video
need not represent the original information exactly
Perception sensitivities are different for different signal
patterns
Human eye is less sensitive to the higher spatial
frequency components than the lower frequencies
9. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
9
Classification of
Compression Techniques
[1] Lossless compression
lossless compression for legal and medical documents, computer
programs
exploit only data redundancy
[2] Lossy compression
digital audio, image, video where some errors or loss can be tolerated
exploit both data redundancy and human perception properties
[3] Near Lossless Compression
It is a lossy compression with a predefined max accepted error
10. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
10
Classification of
Compression Techniques
[4] Hybrid Techniques
A compression algorithm that utilizes many lossy/lossless
techniques to achieve high compression ratio with best quality.
(.e.g. JPEG, MPEG, H264,..)
Constant bit rate versus variable bit rate coding ??
11. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
11
Image Quality Measure
Subjective
● Evaluated by human observers
● Do not require the original copy as a reference
● Reliable, accurate yet impractical
Objective
● Easy to operate (automatic)
● Often requires the original copy as the reference
(measures fidelity rather than quality)
● Works better if taking HVS model into account
12. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
12
Image Quality
Gray Image 400 * 500 Pixels
Image Size = 400 * 500 * 1 byte/pixel
=200,000 byte =~ 200 Kbyte
What will be the degradation in Quality
if this image is compressed using lossy
compression ?
● Degradation in smoothness ?
● Degradation in Eye details ?
● Degradation in Sharpness of finger
edges?
13. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
13
Image Quality
Gray Image 400 * 500 Pixels
Image Size = 400 * 500 * 1 byte/pixel
=200,000 byte =~ 200 Kbyte
What will be the degradation in Quality
if this image is compressed using lossy
compression ?
● Degradation in smoothness ?
● Degradation in Eye details ?
● Degradation in Sharpness of finger
edges?
Sorry, this is the compressed version with size 38Kbyte Only
Is this quality accepted for you ??
The compressed size is about 1/5 of the original size
20. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
20
Lempel Ziv 77 Algorithm
A B A A B A B A A B B B B B B B B B B B B A
Search Window Look Ahead Window
Sliding Window
<Position , Length , Next Symbol >
TAG
21. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
21
Lempel Ziv 77 Algorithm
Search Buffer: It contains a portion of the recently encoded
sequence.
Look-Ahead Buffer: It contains the next portion of the sequence to
be encoded.
Once the longest match has been found, the encoder encodes it with
a triple <Position , Length , Next Symbol >
Position :the offset or position of the longest match from the
lookahead buffer
Length :the length of the longest matching string
Next Symbol :the codeword corresponding to the symbol in the
look-ahead buffer that follows the match
22. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
22
Lempel Ziv 77 Algorithm
longest match
is found and
all the characters
are compared
searches the search buffer for the longest match
Output <Position , Length , Next Symbol >
Shift window “Length” characters
Output <0 , 0 , Next Symbol >
Shift window 1 character
End
Start
Yes
No
23. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
23
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
?
There is no “A” in search buffer
Position=0, Length =0, next Symbol=”A”
24. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
24
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
?
There is no “B” in search buffer
Position=0, Length =0, next Symbol=”B”
<0,0,”B”>
25. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
25
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
Only “A” exists in search buffer
Go Back two Steps, Pick One Symbol
Position=2, Length =1, next Symbol=”A”
<0,0,”B”>
<2,1,”A”>
26. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
26
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
“BA” exists in search buffer
Go Back three Steps, Pick Two Symbol
Position=3, Length =2, next Symbol=”B”
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
27. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
27
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
“AAB” exists in search buffer
Go Back five Steps, Pick Three Symbol
Position=5, Length =3, next Symbol=”B”
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<5,3,”B”>
28. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
28
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
“BB” exists in search buffer
Go Back two Steps, Pick two Symbol
Position=2, Length =2, next Symbol=”B”
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<5,3,”B”>
<2,2,”B”>
29. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
29
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
“BBBBB” exists in search buffer
Go Back five Steps, Pick five Symbol
Position=5, Length =5, next Symbol=”B”
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<5,3,”B”>
<2,2,”B”>
<5,5,”B”>
30. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
30
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
“B” exists in search buffer
Go Back One Steps, Pick One Symbol
Position=1, Length =1, next Symbol=”A”
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<5,3,”B”>
<2,2,”B”>
<5,5,”B”>
<1,1,”A”>
31. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
31
LZ77 (Compression Ratio)
Remember
1 Bit can represent 2 Values (0,1) [0-1]
2 Bits can represent 4 values (00,01,10,11) [0-3]
3 Bits can represent 8 Values (000,001,010,011,100,101,110,111) [0-7]
In General
N Bits can be used to represent 2N
Values [1 - 2N
-1]
32. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
32
LZ77 (Compression Ratio)
<0,0,”A”> <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
Original Size = Number of Symbols * Bits used to Store one Symbol
= 22 Symbols * 8 Bits / Symbol = 176 bits
(Store “Symbol” ASCII Code in 8 Bits)
Max “Position” Value = 5 Store “Position” Value in 3 Bits
Max “Length” Value=5 Store “Length” Value in 3 Bits
Max Symbols = 256 Symbol Store “Symbol” ASCII Code in 8 Bits
Tag size = 3 + 3 + 8 =14 Bits
Number of Tags = 8 Tags
Compressed Size=8*14=112 bits
Tag = < Position, Length ,Next Symbol Code>
33. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
33
LZ77 (Compression Ratio)
Effect of Increasing length of Search Window
Higher Probability to find matched strings ( Decrease Number of Tags)
Increase Number of Bits used to Store “Position” values
Effect of Increasing length of Look Ahead Buffer
Higher Probability to match longer strings( Decrease Number of Tags)
Increase Number of Bits used to Store “Length” values
Tag = < Position, Length ,Next Symbol Code>
34. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
34
LZ 77 (Decompression)
A B
<0,0,”A”>
Don't pick any symbol from Search Window
Add Symbol=”A”
Add Symbol=”B”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
35. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
35
LZ 77 (Decompression)
A B A A
<0,0,”A”>
Go back Two Positions in search window
pick One symbol from Search Window
Add Symbol=”A”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
36. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
36
LZ 77 (Decompression)
A B A A B A B
<0,0,”A”>
Go back Three Positions in search window
pick Two symbols from Search Window
Add Symbol=”B”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
37. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
37
LZ 77 (Decompression)
A B A A B A B A A B B
<0,0,”A”>
Go back Five Positions in search window
pick Three symbols from Search Window
Add Symbol=”B”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
38. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
38
LZ 77 (Decompression)
A B A A B A B A A B B B B B
<0,0,”A”>
Go back Two Positions in search window
pick Two symbols from Search Window
Add Symbol=”B”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
39. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
39
LZ 77 (Decompression)
A B A A B A B A A B B B B B B B B B B B
<0,0,”A”>
Go back Five Positions in search window
pick Five symbols from Search Window
Add Symbol=”B”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
40. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
40
LZ 77 (Decompression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
Go back One Positions in search window
pick One symbol from Search Window
Add Symbol=”B”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
41. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
41
LZ 77 (Compression)
(Handling Repetitive Sequence)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
“AAB” exists in search buffer
Go Back five Steps, Pick Three Symbol
Position=5, Length =3, next Symbol=”B”
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<5,3,”B”>
Back to Previous Example
Can We manipulate Consecutive “B”s more efficient ?
42. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
42
LZ 77 (Compression)
(Handling Repetitive Sequence)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
There are Ten Consecutive “B” in Look Ahead Buffer
“B” exists in search buffer One position Backward
Go Back One Steps, Pick Ten Symbols
Position=1, Length =10, next Symbol=”A”
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<5,3,”B”> <1,10,”A”>
YES, We Can
43. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
43
LZ 77 (Decompression)
(Handling Repetitive Sequence)
A B A A B A B A A B B B
<0,0,”A”>
Go back One Position in search window
pick Ten symbols from Search Window (in 10 Steps)
Add Symbol=”A”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Pick ONE (out of Ten) Symbol
44. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
44
LZ 77 (Decompression)
(Handling Repetitive Sequence)
A B A A B A B A A B B B B
<0,0,”A”>
Go back One Position in search window
pick Ten symbols from Search Window (in 10 Steps)
Add Symbol=”A”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Pick Two (out of Ten) Symbol
45. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
45
LZ 77 (Decompression)
(Handling Repetitive Sequence)
A B A A B A B A A B B B B B
<0,0,”A”>
Go back One Position in search window
pick Ten symbols from Search Window (in 10 Steps)
Add Symbol=”A”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Pick Three (out of Ten) Symbol
46. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
46
LZ 77 (Decompression)
(Handling Repetitive Sequence)
A B A A B A B A A B B B B B B
<0,0,”A”>
Go back One Position in search window
pick Ten symbols from Search Window (in 10 Steps)
Add Symbol=”A”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Pick Four (out of Ten) Symbol
Repeat , Five, Six, Seven, Eight, Nine, and Ten
47. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
47
LZ 77 (Decompression)
(Handling Repetitive Sequence)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
Go back One Position in search window
pick Ten symbols from Search Window (in 10 Steps)
Add Symbol=”A”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Pick Ten (out of Ten) Symbol
48. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
48
LZ 77 (Compression)
(Handling Repetitive Sequence)
A B A A B A B A B A B A B A B A B A B A B A
<0,0,”A”>
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<2,10,”A”>
Can We Apply the same Technique on
Consecutive “Two Symbols” ?
There are Ten Consecutive Symbols “AB” in Look Ahead Buffer
“AB” exists in search buffer Adjacent to Look Ahead Buffer
Go Back Two Steps, Pick Ten Symbols
Position=2, Length =10, next Symbol=”A”
End of
Look Ahead Buffer
49. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
49
LZ 77 (Compression)
(Handling Repetitive Sequence)
A B A A B A B A B A B A B A B A B A B A B A
<0,0,”A”>
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<2,10,”A”>
There are Four Consecutive Symbols “BA” in Look Ahead Buffer
“BA” exists in search buffer Adjacent to Look Ahead Buffer
Go Back Two Steps, Pick Four Symbols
Position=2, Length =4, next Symbol=NULL
<2,4,NULL>
50. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
50
LZ 77
A B A A B A B A B A B A B A B A B A B A B A
<0,0,”A”>
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<2,14,”A”>
What if we use BIGGER look Ahead Buffer ?
There are 14 Consecutive Symbols “AB” in Look Ahead Buffer
“AB” exists in search buffer Adjacent to Look Ahead Buffer
Go Back Two Steps, Pick Ten Symbols
Position=2, Length =14, next Symbol=”A”
End of
Look Ahead Buffer
51. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
51
LZ 77 (Compression)
(Handling Repetitive Overlapped Sequence)
C A B R A C A D A B R A R R A R R A D <0,0,”C”>
C A B R A C A D A B R A R R A R R A D <0,0,”A”>
C A B R A C A D A B R A R R A R R A D <0,0,”B”>
C A B R A C A D A B R A R R A R R A D <0,0,”R”>
52. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
52
LZ 77 (Compression)
(Handling Repetitive Overlapped Sequence)
C A B R A C A D A B R A R R A R R A D <3,1,”C”>
C A B R A C A D A B R A R R A R R A D <2,1,”D”>
C A B R A C A D A B R A R R A R R A D <7,4,”R”>
C A B R A C A D A B R A R R A R R A D <3,5,”D”>
53. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
53
Compression Ratio
<0,0,”C”> <0,0,”A”> <0,0,”B”> <0,0,”R”> <3,1,”C”> <2,1,”D”> <7,4,”R”>
<3,5,”D”>
Original Size = Number of Symbols * Bits used to Store one Symbol
= 19 Symbols * 8 Bits / Symbol = 152 bits
(Store “Symbol” ASCII Code in 8 Bits)
Max “Position” Value = 7 Store “Position” Value in 3 Bits
Max “Length” Value=5 Store “Length” Value in 3 Bits
Max Symbols = 256 Symbol Store “Symbol” ASCII Code in 8 Bits
Tag size = 3 + 3 + 8 =14 Bits
Number of Tags = 8 Tags
Compressed Size=8*14=112 bits
54. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
54
Advantages and Disadvantage of
LZ77
Advantages of LZ77
● Probabilities of symbols is not required to be known a priori.
(suitable for Real time Compression).
● That is, the longer the size of the sliding window, the better the
performance of data compression
● No coding table Required for Decompression.
Disadvantage of LZ77
A straightforward implementation would require up to [Look Ahead
Buffer Size] * [Search Window Size] Symbol comparisons per Tag
produced. Complexity of comparison is very large
55. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
55
LZ 78 (Compression)
Start
Read Symbol in S
{ T && S }
is in Dictionary ?
Save Tag < N ,S>
Store {T && S } in Dictionary
T=S
T={T && S }
Last Symbol
End
Yes (at Index N) No
No
Yes
Set Store T=””
S Buffer to Ready Symbol
T Temporary Storage buffer
N Index (pointer) in Dictionary
{ T && S } Concatenation (T,S)
Tag = < iNdex in Dict , Next Symbol>
56. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
56
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1
2
3
4
5
6
7
8
9
10
11
Compress the Following Text
(22 Characters)
Custom Dictionary
(first Word is reserved as Empty)
<Index in dictionary , Next Symbol >
TAG
57. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
57
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2
3
4
5
6
7
8
9
10
11
“A” is not in the dictionary
Save “A” as < 0,”A”>
Add Symbol=”A” to Dictionary
< 0 , “A” >
58. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
58
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3
4
5
6
7
8
9
10
11
“B” is not in the dictionary
Save “B” as < 0,”B”>
Add Symbol=”B” to Dictionary
< 0 , “B” >
< 0 , “A” >
59. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
59
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4
5
6
7
8
9
10
11
“A” is in the dictionary BUT “AA” is NOT
Save “AA” as < 1,”A”>
Add Symbols=”AA” to Dictionary
< 0 , “B” >
< 1 , “A” >
< 0 , “A” >
60. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
60
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4 BA
5
6
7
8
9
10
11
“B” is in the dictionary BUT “BA” is NOT
Save “BA” as < 2,”A”>
Add Symbols=”BA” to Dictionary
< 1 , “A” >
< 2 , “A” >
< 1 , “A” >
< 0 , “B” >
< 0 , “A” >
61. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
61
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6
7
8
9
10
11
“BA” is in the dictionary BUT “BAA” is NOT
Save “BAA” as < 4,”A”>
Add Symbols=”BAA” to Dictionary
< 0 , “A” >
< 1 , “A” >
< 4 , “A” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
62. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
62
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7
8
9
10
11
“BA” is in the dictionary BUT “BAB” is NOT
Save “BAA” as < 4,”B”>
Add Symbols=”BAB” to Dictionary
< 0 , “A” >
< 1 , “A” > <4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” >
63. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
63
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8
9
10
11
“B” is in the dictionary BUT “BB” is NOT
Save “BB” as < 2,”B”>
Add Symbols=”BB” to Dictionary
< 0 , “A” >
< 1 , “A” > <4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
64. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
64
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8 BBB
9
10
11
“BB” is in the dictionary BUT “BBB” is NOT
Save “BBB” as < 7,”B”>
Add Symbols=”BBB” to Dictionary
< 0 , “A” >
< 1 , “A” > <4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
65. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
65
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8 BBB
9 BBBB
10
11
“BBB” is in the dictionary BUT “BBBB” is NOT
Save “BBBB” as < 8,”B”>
Add Symbols=”BBBB” to Dictionary
< 0 , “A” >
< 1 , “A” > <4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
66. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
66
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8 BBB
9 BBBB
10
11
“A” is in the dictionary
Save “A” as <1 ,NULL> or < 0,”A”>
Add NOTHING to Dictionary
< 0 , “A” >
< 1 , “A” > <4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<7 , “B” > <0 , “A” > or
<1, NULL>
67. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
67
LZ 78 (De-Compression)
0 –-----
1 A
2
3
4
5
6
7
8
9
10
11
Get symbol at Index [0] in Dictionary {“”}
Concatenate Symbol “A” , Obtain {“A”}
Add {“A”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A
68. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
68
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3
4
5
6
7
8
9
10
11
Get symbol at Index [0] in Dictionary {“”}
Concatenate Symbol “B” , Obtain {“B”}
Add {“B”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B
69. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
69
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4
5
6
7
8
9
10
11
Get symbol at Index [1] in Dictionary {“A”}
Concatenate Symbol “B” , Obtain {“AA”}
Add {“AA”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A
70. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
70
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4 BA
5
6
7
8
9
10
11
Get symbol at Index [2] in Dictionary {“B”}
Concatenate Symbol “A” , Obtain {“BA”}
Add {“BA”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A B A
71. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
71
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6
7
8
9
10
11
Get symbol at Index [4] in Dictionary {“BA”}
Concatenate Symbol “A” , Obtain {“BAA”}
Add {“BAA”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A B A B A A
72. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
72
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7
8
9
10
11
Get symbol at Index [4] in Dictionary {“BA”}
Concatenate Symbol “B” , Obtain {“BAB”}
Add {“BAB”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A B A B A A B A B
73. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
73
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8
9
10
11
Get symbol at Index [2] in Dictionary {“B”}
Concatenate Symbol “B” , Obtain {“BB”}
Add {“BB”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A B A B A A B A B B B
74. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
74
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8 BBB
9
10
11
Get symbol at Index [7] in Dictionary {“BB”}
Concatenate Symbol “B” , Obtain {“BBB”}
Add {“BBB”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A B A B A A B A B B B B B B
75. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
75
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8 BBB
9 BBBB
10
11
Get symbol at Index [8] in Dictionary {“BBB”}
Concatenate Symbol “B” , Obtain {“BBBB”}
Add {“BBBB”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A B A B A A B A B B B B B B B B B B
76. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
76
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8 BBB
9 BBBB
10
11
Get symbol at Index [1] in Dictionary {“A”}
Concatenate Symbol “NULL” , Obtain {“A”}
Add NOTHING to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A B A B A A B A B B B B B B B B B B A
77. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
77
LZ 78 Compression Ratio
Original Size = Number of Symbols * Bits used to Store one Symbol
= 22 Symbols * 8 Bits / Symbol = 176 bits
(Store “Symbol” ASCII Code in 8 Bits)
Max “Index” Value = 8 Store “Index” Value in 4 Bits
Max Symbols = 256 Symbol Store “Symbol” ASCII Code in 8 Bits
Tag size = 4 + 8 =12 Bits
Number of Tags = 10 Tags
Compressed Size=10*12=120 bits
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
78. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
78
LZ 78: Main Features
● No use of the sliding window.
● Instead of the triples used in the LZ77, only pairs are used in
the LZ78. Specifically, only the Position (index in the list)
of the matched string and the Next Symbol following the
matched string need to be encoded (in the Tag).
● Use encoded text as a dictionary which, potentially, does not
have a fixed size.
● Each time a Tag is issued, the encoded string is included in
the dictionary.
● Once a preset limit to the dictionary size has been reached,
it is reset to zero, i.e., it must be restarted.
●
79. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
79
LZW (Compression)
Start
Read Symbol in S
{ T && S }
is in Dictionary ?
Save Tag < N >
Store {T && S } in Dictionary
T=S
N= Index of T in Dictionary
T={T && S }
N= Index in Dictionary
Last Symbol
End
Yes No
No
Yes
Read Symbol in T
N= Index of T in Dictionary
S Buffer to Ready Symbol
T Temporary Storage buffer
N Index (pointer) in Dictionary
{ T && S } Concatenation (T,S)
Tag = < iNdex in Dict >
80. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
80
LZW Compression
A B A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129
130
131
132
133
134
135
136
137
138
139
140
141
142
“A” exists in the table at index [97]
“AB” does NOT exist in the table
Save Symbol “A” as [97]
Add “AB” to Dictionary
65
81. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
81
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130
131
132
133
134
135
136
137
138
139
140
141
142
“B” exists in the table at index [98]
“BA” does NOT exist in the table
Save Symbol “B” as [98]
Add “BA” to Dictionary
65
66
82. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
82
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131
132
133
134
135
136
137
138
139
140
141
142
“A” exists in the table at index [97]
“AA” does NOT exist in the table
Save Symbol “A” as [97]
Add “AA” to Dictionary
65
66
65
83. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
83
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132
133
134
135
136
137
138
139
140
141
142
“AB” exists in the table at index [128]
“ABA” does NOT exist in the table
Save Symbol “AB” as [128]
Add “ABA” to Dictionary
65
66
65
128
84. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
84
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133
134
135
136
137
138
139
140
141
142
“AB” exists in the table at index [128]
“ABB” does NOT exist in the table
Save Symbol “AB” as [128]
Add “ABB” to Dictionary
65
66
65
128
128
85. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
85
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134
135
136
137
138
139
140
141
142
“BA” exists in the table at index [129]
“BAA” does NOT exist in the table
Save Symbol “BA” as [129]
Add “BAA” to Dictionary
65
66
65
128
128
129
86. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
86
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135
136
137
138
139
140
141
142
“ABA” exists in the table at index [131]
“ABAA” does NOT exist in the table
Save Symbol “ABA” as [131]
Add “ABAA” to Dictionary
65
66
65
128
128
129
131
87. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
87
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136
137
138
139
140
141
142
“ABAA” exists in the table at index [134]
“ABAAA” does NOT exist in the table
Save Symbol “ABAA” as [134]
Add “ABAAA” to Dictionary
65
66
65
128
128
129
131
134
88. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
88
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137
138
139
140
141
142
“AA” exists in the table at index [130]
“AAB” does NOT exist in the table
Save Symbol “AA” as [130]
Add “AAB” to Dictionary
65
66
65
128
128
129
131
134
130
89. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
89
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138
139
140
141
142
“BA” exists in the table at index [129]
“BAB” does NOT exist in the table
Save Symbol “BA” as [129]
Add “BAB” to Dictionary
65
66
65
128
128
129
131
134
130
129
90. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
90
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139
140
141
142
“B” exists in the table at index [98]
“BB” does NOT exist in the table
Save Symbol “B” as [98]
Add “BB” to Dictionary
65
66
65
128
128
129
131
134
130
129
66
91. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
91
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139 BBB
140
141
142
“BB” exists in the table at index [138]
“BBB” does NOT exist in the table
Save Symbol “BB” as [138]
Add “BBB” to Dictionary
65
66
65
128
128
129
131
134
130
129
66
138
92. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
92
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139 BBB
140 BBBB
141
142
“BBB” exists in the table at index [139]
“BBBB” does NOT exist in the table
Save Symbol “BBB” as [139]
Add “BBBB” to Dictionary
65
66
65
128
128
129
131
134
130
129
66
138
139
93. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
93
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139 BBB
140 BBBB
141
142
“BB” exists in the table at index [138]
Save Symbol “BB” as [138]
Add NOTHING to Dictionary
65
66
65
128
128
129
131
134
130
129
66
138
139
138
94. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
94
LZW De-Compression
A
... ...
65 A
66 B
... ...
... ...
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
Pick symbol at Index [97] from the Dictionary; “A”
Add NOTHING to Dictionary
(as this is the first symbol)
65
66
65
128
128
129
131
134
130
129
66
138
139
138
95. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
95
LZW De-Compression
A B
... ...
65 A
66 B
... ...
... ...
128 AB
129
130
131
132
133
134
135
136
137
138
139
140
141
142
Pick symbols at Index [98] from the Dictionary; “B”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
96. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
96
LZW De-Compression
A BA
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130
131
132
133
134
135
136
137
138
139
140
141
142
Pick symbols at Index [97] from the Dictionary; “A”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
97. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
97
LZW De-Compression
A B A A B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131
132
133
134
135
136
137
138
139
140
141
142
Pick symbols at Index [128] from the Dictionary; “AB”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
98. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
98
LZW De-Compression
A B A A B A B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132
133
134
135
136
137
138
139
140
141
142
Pick symbols at Index [128] from the Dictionary; “AB”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
99. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
99
LZW De-Compression
A B A A B A B B A
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133
134
135
136
137
138
139
140
141
142
Pick symbols at Index [129] from the Dictionary; “BA”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
100. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
100
LZW De-Compression
A B A A B A B B A A B A
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134
135
136
137
138
139
140
141
142
Pick symbols at Index [131] from the Dictionary; “ABA”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
101. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
101
LZW De-Compression
A B AA B A B B A A B A ? ? ?
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ???
135
136
137
138
139
140
141
142
Pick symbols at Index [134] from the Dictionary
Symbols at Index [134] are not constructed yet
Assume they are “???” for the time being
Continue the algorithm
65
66
65
128
128
129
131
134
130
129
66
138
139
138
PROBLEM
134 IS UNKNOWN
102. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
102
LZW De-Compression
A B A A B A B B A A B A ? ? ?
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABA?
135
136
137
138
139
140
141
142
Pick symbols at Index [134] from the Dictionary; “???”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
???
103. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
103
LZW De-Compression
A B A A B A B B A A B A A B A A
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135
136
137
138
139
140
141
142
Pick symbols at Index [134] from the Dictionary; “ABA?”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
ABA?
Still at 134
104. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
104
LZW De-Compression
A B A A B A B B A A B A A B A A
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135
136
137
138
139
140
141
142
Pick symbols at Index [134] from the Dictionary; “ABAA”
65
66
65
128
128
129
131
134
130
129
66
138
139
138
ABAA
Construct Unknown Symbols by Concatenating
Symbols in Previous Step “ABA”
and First Symbol in Previous Step “A”
Still at 134
105. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
105
LZW De-Compression
A B A A B A B B A A B A A B A A A A
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136
137
138
139
140
141
142
Pick symbols at Index [130] from the Dictionary; “AA”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
106. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
106
LZW De-Compression
A B A A B A B B A A B A A B A A A A B A
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137
138
139
140
141
142
Pick symbols at Index [129] from the Dictionary; “BA”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
107. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
107
LZW De-Compression
A B A A B A B B A A B A A B A A A A B A B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138
139
140
141
142
Pick symbols at Index [98] from the Dictionary; “B”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
108. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
108
LZW De-Compression
A B A A B A B B A A B A A B A A A A B A B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 ???
139
140
141
142
Pick symbols at Index [138] from the Dictionary; “???”
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Construct Unknown Symbols by Concatenating
Symbols in Previous Step “B”
and First Symbol in Previous Step “B”
PROBLEM
138 IS UNKNOWN
109. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
109
LZW De-Compression
A B A A B A B B A A B A A B A A A A B A B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139
140
141
142
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
110. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
110
LZW De-Compression
A B A A B A B B A A B A A B A A A A B A B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139 ???
140
141
142
65
66
65
128
128
129
131
134
130
129
66
138
139
138
PROBLEM
139 IS UNKNOWN
Pick symbols at Index [139] from the Dictionary; “???”
Construct Unknown Symbols by Concatenating
Symbols in Previous Step “BB”
and First Symbol in Previous Step “B”
111. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
111
LZW De-Compression
A B A A B A B B A A B A A B A A A A B A B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139 BBB
140
141
142
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
112. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
112
LZW De-Compression
A B A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139 BBB
140 BBBB
141
142
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Pick symbols at Index [138] from the Dictionary; “BB”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
113. Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
الحاسبات كلية
المعـلومات و
113
LZW Compression Ratio
Original Size = Number of Symbols * Bits used to Store one Symbol
= 28 Symbols * 8 Bits / Symbol = 224 bits
(Store “Symbol” ASCII Code in 8 Bits)
Max “Index” Value = 139 Store “Index” Value in 8 Bits
Tag size = 8 Bits
Number of Tags = 14 Tags
Compressed Size=14*8=112 bits
65
66
65
128
128
129
131
134
130
129
66
138
139
138