lzw compression grant friedline robert frankeny thomas sutcavage

29
LZW Compression LZW Compression Grant Friedline Grant Friedline Robert Frankeny Robert Frankeny Thomas Sutcavage Thomas Sutcavage

Upload: neal-ray

Post on 03-Jan-2016

226 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

LZW CompressionLZW CompressionGrant FriedlineGrant Friedline

Robert FrankenyRobert Frankeny

Thomas SutcavageThomas Sutcavage

Page 2: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Client Client

Dr. Michael Spring, professor at University Dr. Michael Spring, professor at University of Pittsburgh School of Information of Pittsburgh School of Information Science Science

The “users” for this applet will be current The “users” for this applet will be current students of Dr. Spring classes and students of Dr. Spring classes and students in the Information Science students in the Information Science program program

Page 3: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Client / User RequirementsClient / User Requirements

EncodingEncoding (AKA compression) shall (AKA compression) shall display the character typed and the display the character typed and the corresponding dictionary code saved corresponding dictionary code saved

DecodingDecoding (AKA decompression) stage (AKA decompression) stage shall show the code dictionary being shall show the code dictionary being processed and the resulting output processed and the resulting output

Page 4: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

BackgroundBackground

LZW compression was originally LZW compression was originally programmed by Abraham Lempel and programmed by Abraham Lempel and Jacob Ziv Jacob Ziv

Terry Welch made modification 1984 Terry Welch made modification 1984 which increased its usabilitywhich increased its usability

Dictionary is built to alias each group of Dictionary is built to alias each group of elements in the string elements in the string

Page 5: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Project GoalProject Goal

Develop a Web-based, Java applet, that Develop a Web-based, Java applet, that can be used by a student to learn the can be used by a student to learn the basic concepts of LZW compressionbasic concepts of LZW compression

Page 6: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Task AnalysisTask Analysis

User GoalsUser Goals

TASKS, ACTIONS, and WIDGETS TASKS, ACTIONS, and WIDGETS

1. Start Applet 1. Start Applet

2. Compression 2. Compression

3. Decompression3. Decompression

4. Restarting 4. Restarting

Page 7: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

The LZW applet DemoThe LZW applet Demo

Robert FrankenyRobert Frankeny

www.sis.pitt.edu/~frankeny/LZWwww.sis.pitt.edu/~frankeny/LZW

Page 8: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

EncodingEncoding

Page 9: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

DecodingDecoding

Page 10: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

User StudyUser Study

Main type of user study was doing Main type of user study was doing interviews interviews

Interviewed 10 students questions which Interviewed 10 students questions which we felt would best provide heuristic we felt would best provide heuristic feedback feedback

Page 11: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

User StudyUser Study

Do you understand what the applet is Do you understand what the applet is doing? doing? Yes (8 responses)Yes (8 responses) No (2 responses)No (2 responses)

The “no” responses were not sure where the The “no” responses were not sure where the original string to be decoded came from. After original string to be decoded came from. After explanation that the original string was explanation that the original string was arbitrary, understanding for its purpose arbitrary, understanding for its purpose became less of an issue.became less of an issue.

Page 12: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

User StudyUser Study

Does it feel like any buttons are missing Does it feel like any buttons are missing from fulfilling the goal? from fulfilling the goal? No (7 responses)No (7 responses) Yes (3 responses)Yes (3 responses)

Of the “yes” responses, 2 inquired about the Of the “yes” responses, 2 inquired about the possibility of encoding a string manually. 1 possibility of encoding a string manually. 1 inquired about a way to manually modify the inquired about a way to manually modify the original dictionary.original dictionary.

Page 13: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

User StudyUser Study

Are the comment descriptions that appear Are the comment descriptions that appear on the applet informative? on the applet informative? Yes (9 responses)Yes (9 responses) No (1 response)No (1 response)

The “no” response suggested that some The “no” response suggested that some animations be used.animations be used.

Page 14: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

User StudyUser Study

At any point, do you become stuck as to At any point, do you become stuck as to what to do next?what to do next? Yes (7 response)Yes (7 response) No (3 responses)No (3 responses)

Of the “no” responses, some users were Of the “no” responses, some users were tempted to click inside the text fields that tempted to click inside the text fields that

were used for visual purposes only.were used for visual purposes only.

Page 15: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Interface Drafts and PrototypesInterface Drafts and Prototypes

ExampleExample Applet available on the web for LZWApplet available on the web for LZW Showed level of compressionShowed level of compression Did not show decode functionDid not show decode function

Page 16: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Interface Drafts and PrototypesInterface Drafts and Prototypes

Prototype 1Prototype 1 impractical to design an educational tool to impractical to design an educational tool to

display an extensive dictionary display an extensive dictionary encoding and decoding can be better shown encoding and decoding can be better shown

using a smaller sample dictionary using a smaller sample dictionary Clear Button and an Encoding/Decoding Clear Button and an Encoding/Decoding

Toggle Button provided desirable options Toggle Button provided desirable options

Page 17: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Interface Drafts and PrototypesInterface Drafts and Prototypes

Prototype 2Prototype 2 incorporated comments displayed directly on incorporated comments displayed directly on

the applet the applet elaborate on the calculations being derived elaborate on the calculations being derived

behind the scenes in an effort to convey the behind the scenes in an effort to convey the encoding/decoding method to the user in an encoding/decoding method to the user in an interactive way interactive way

Page 18: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Interface Drafts and PrototypesInterface Drafts and Prototypes

Prototype 3Prototype 3 review with Dr. Spring and a review of our review with Dr. Spring and a review of our

user surveys combined to produce a few user surveys combined to produce a few modifications for the final prototype modifications for the final prototype

Dr. Spring suggested that we should read in a Dr. Spring suggested that we should read in a string instead of having the user input a string instead of having the user input a manual string manual string

Page 19: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Interface Drafts and PrototypesInterface Drafts and Prototypes

Prototype 4 (final version)Prototype 4 (final version)

Following another meeting with Dr. Spring, the fourth prototype Following another meeting with Dr. Spring, the fourth prototype evolved. This version contains two dictionaries, one for encode, one evolved. This version contains two dictionaries, one for encode, one for decode. for decode. This version moved from Box layout to This version moved from Box layout to borderborder layout. layout. The The clearclear button has be replaced with a button has be replaced with a Start overStart over button. The button. The Start Start overover button can be used to back up to see the prior process. button can be used to back up to see the prior process.The input is hard coded. This assures repeating character strings. It The input is hard coded. This assures repeating character strings. It also prevents the user from entering an illegal character (this also prevents the user from entering an illegal character (this prototype has limited dictionary capabilities).prototype has limited dictionary capabilities).The display boxes have been set to read-only. This was done The display boxes have been set to read-only. This was done because some users were temped to type in the display box.because some users were temped to type in the display box.

Page 20: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Heuristic AnalysisHeuristic Analysis

Speaking the User’s Language Speaking the User’s Language

Using Simple and Natural Dialogue Using Simple and Natural Dialogue

Providing Feedback Providing Feedback

Error Prevention Error Prevention

Page 21: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Heuristic AnalysisHeuristic Analysis

strongest of these Heuristics appeared to strongest of these Heuristics appeared to be Providing Feedback and Speaking the be Providing Feedback and Speaking the User’s Language User’s Language

weaker of our Heuristics appeared to be weaker of our Heuristics appeared to be Using Simple and Natural Dialogue Using Simple and Natural Dialogue

Page 22: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Heuristic Analysis Heuristic Analysis by Jakob Nielsenby Jakob Nielsen

Visibility of system statusVisibility of system status The system should always keep users informed about what is going on, The system should always keep users informed about what is going on,

through appropriate feedback within reasonable time. through appropriate feedback within reasonable time. Match between system and the real worldMatch between system and the real world

The system should speak the users' language, with words, phrases and The system should speak the users' language, with words, phrases and concepts familiar to the user, rather than system-oriented terms. Follow concepts familiar to the user, rather than system-oriented terms. Follow real-world conventions, making information appear in a natural and real-world conventions, making information appear in a natural and logical order. logical order.

User control and freedomUser control and freedom Users often choose system functions by mistake and will need a clearly Users often choose system functions by mistake and will need a clearly

marked "emergency exit" to leave the unwanted state without having to marked "emergency exit" to leave the unwanted state without having to go through an extended dialogue. Support undo and redo. go through an extended dialogue. Support undo and redo.

Consistency and standardsConsistency and standards Users should not have to wonder whether different words, situations, or Users should not have to wonder whether different words, situations, or

actions mean the same thing. Follow platform conventions. actions mean the same thing. Follow platform conventions.

Page 23: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Heuristic AnalysisHeuristic Analysis

Error preventionError prevention Even better than good error messages is a careful design which Even better than good error messages is a careful design which

prevents a problem from occurring in the first place. prevents a problem from occurring in the first place.

Recognition rather than recallRecognition rather than recall Make objects, actions, and options visible. The user should not Make objects, actions, and options visible. The user should not

have to remember information from one part of the dialogue to have to remember information from one part of the dialogue to another. Instructions for use of the system should be visible or another. Instructions for use of the system should be visible or easily retrievable whenever appropriate. easily retrievable whenever appropriate.

Flexibility and efficiency of useFlexibility and efficiency of use Accelerators -- unseen by the novice user -- may often speed up Accelerators -- unseen by the novice user -- may often speed up

the interaction for the expert user such that the system can cater the interaction for the expert user such that the system can cater to both inexperienced and experienced users. Allow users to to both inexperienced and experienced users. Allow users to tailor frequent actions. tailor frequent actions.

Page 24: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Heuristic AnalysisHeuristic Analysis

Aesthetic and minimalist designAesthetic and minimalist design Dialogues should not contain information which is irrelevant or Dialogues should not contain information which is irrelevant or

rarely needed. Every extra unit of information in a dialogue rarely needed. Every extra unit of information in a dialogue competes with the relevant units of information and diminishes competes with the relevant units of information and diminishes their relative visibility. their relative visibility.

Help users recognize, diagnose, and recover from Help users recognize, diagnose, and recover from errorserrors

Error messages should be expressed in plain language (no Error messages should be expressed in plain language (no codes), precisely indicate the problem, and constructively codes), precisely indicate the problem, and constructively suggest a solution. suggest a solution.

Help and documentationHelp and documentation Even though it is better if the system can be used without Even though it is better if the system can be used without

documentation, it may be necessary to provide help and documentation, it may be necessary to provide help and documentation.documentation.

Page 25: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

ImplementationImplementation

Java applet technology Java applet technology

Java components Java components JButtonsJButtons JTextAreas JTextAreas Box Layout design Box Layout design

Page 26: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Final User Meeting Final User Meeting

Dr. Spring Dr. Spring April 22, 2003 April 22, 2003 impressed with our execution of the algorithm impressed with our execution of the algorithm expressed that he could have given us some expressed that he could have given us some

more requirements at the start to enhance the more requirements at the start to enhance the product product

Page 27: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Limitations of the SystemLimitations of the System

Due to time constraints we were unable to Due to time constraints we were unable to come up with code snippets to cover all of come up with code snippets to cover all of the possible issues.the possible issues.

The input sting to be encoded is fixed.The input sting to be encoded is fixed.

The dictionary is not customizable.The dictionary is not customizable.

Page 28: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Future EnhancementsFuture Enhancements

animations along with comments animations along with comments concerning the system’s actions concerning the system’s actions

ability to edit the original dictionary and or ability to edit the original dictionary and or encode a string manually encode a string manually

user preferences user preferences

Page 29: LZW Compression Grant Friedline Robert Frankeny Thomas Sutcavage

Group ContributionsGroup Contributions

Grant FriedlineGrant Friedline Wrote Event Handler & PrototypingWrote Event Handler & Prototyping Initial Prototype CodingInitial Prototype Coding HTML page for AppletHTML page for Applet Interview questions and corresponding heuristicsInterview questions and corresponding heuristics

Robert FrankenyRobert Frankeny User StudyUser Study Final Prototype CodingFinal Prototype Coding HTML page for AppletHTML page for Applet

Thomas SutcavageThomas Sutcavage Testing Testing Prepared PowerPoint SlidesPrepared PowerPoint Slides Wrote ReportWrote Report Help guide HTLM Help pageHelp guide HTLM Help page