Data and Image Compression

You are here

Credits
6
Types
Elective
Requirements
This subject has not requirements, but it has got previous capacities
Department
MAT
Overall, the course is aimed at understanding the importance of compression, such as before storing or transmitting data, to distinguish between lossless or lossy compression and acquire criteria to decide which one to use in each case, and to become familiar with the corresponding algorithmic and computational aspects.

Teachers

Person in charge

  • Fernando Martínez Sáez ( )

Others

  • Jordi Quer Bosor ( )

Weekly hours

Theory
1
Problems
1
Laboratory
2
Guided learning
0
Autonomous learning
6

Competences

Technical Competences

Common technical competencies

  • CT1 - To demonstrate knowledge and comprehension of essential facts, concepts, principles and theories related to informatics and their disciplines of reference.
    • CT1.2A - To interpret, select and value concepts, theories, uses and technological developments related to computer science and its application derived from the needed fundamentals of mathematics, statistics and physics. Capacity to solve the mathematical problems presented in engineering. Talent to apply the knowledge about: algebra, differential and integral calculus and numeric methods; statistics and optimization.
    • CT1.2C - To use properly theories, procedures and tools in the professional development of the informatics engineering in all its fields (specification, design, implementation, deployment and products evaluation) demonstrating the comprehension of the adopted compromises in the design decisions.
  • CT4 - To demonstrate knowledge and capacity to apply the basic algorithmic procedures of the computer science technologies to design solutions for problems, analysing the suitability and complexity of the algorithms.
    • CT4.1 - To identify the most adequate algorithmic solutions to solve medium difficulty problems.
    • CT4.2 - To reason about the correction and efficiency of an algorithmic solution.
  • CT5 - To analyse, design, build and maintain applications in a robust, secure and efficient way, choosing the most adequate paradigm and programming languages.
    • CT5.2 - To know, design and use efficiently the most adequate data types and data structures to solve a problem.
    • CT5.3 - To design, write, test, refine, document and maintain code in an high level programming language to solve programming problems applying algorithmic schemas and using data structures.
    • CT5.4 - To design the programs¿ architecture using techniques of object orientation, modularization and specification and implementation of abstract data types.
    • CT5.5 - To use the tools of a software development environment to create and develop applications.

Transversal Competences

Reasoning

  • G9 [Avaluable] - Capacity of critical, logical and mathematical reasoning. Capacity to solve problems in her study area. Abstraction capacity: capacity to create and use models that reflect real situations. Capacity to design and perform simple experiments and analyse and interpret its results. Analysis, synthesis and evaluation capacity.
    • G9.1 - Critical, logical and mathematical reasoning capacity. Capacity to understand abstraction and use it properly.

Technical Competences of each Specialization

Computer science specialization

  • CCO1 - To have an in-depth knowledge about the fundamental principles and computations models and be able to apply them to interpret, select, value, model and create new concepts, theories, uses and technological developments, related to informatics.
    • CCO1.1 - To evaluate the computational complexity of a problem, know the algorithmic strategies which can solve it and recommend, develop and implement the solution which guarantees the best performance according to the established requirements.
    • CCO1.2 - To demonstrate knowledge about the theoretical fundamentals of programming languages and the associated lexical, syntactical and semantic processing techniques and be able to apply them to create, design and process languages.

Objectives

  1. To understand what is lossless compression, the circumstancies in which it is applicable, and the most important methods to achieve it.
    Related competences: G7.1, G9.1, G3.2, G7.2, G7.3,
  2. To know the basic principles of information theory and the ways they are applied in relation to compression.
    Related competences: G7.1, G9.1, CCO1.2, CT1.2A, CT1.2C, G3.1, G3.2, CCO1.1, CT4.1, CT4.2, CT5.2, CT5.5, G7.2, CT5.3,
  3. To become familiar with the concepts of lossy compression, the way the degree of compression and its fidelity are measured, and the most important methods used in practice.
    Related competences: CCO1.2, CT1.2A, CT1.2C, CCO1.1, CT4.1, CT4.2, CT5.2, CT5.4, CT5.5, CT5.3,

Contents

  1. Lossless coding
    Source coding. Huffman Algorithm. Arithmetic coding. Dictionary techniques. Other methods.
  2. Lossy compression
    Scalar and vectorial quantization. Discrete transforms. Wavelets. JPEG

Activities

Activity Evaluation act


Development of the lossless compression block in theory classes, laboratory sessions and problem solving sessions.


  • Theory: Exposition of the principles on which lossless compression is based, with indications fo how they are applied.
Objectives: 1
Contents:
Theory
7.5h
Problems
7.5h
Laboratory
15h
Guided learning
0h
Autonomous learning
45h

Development of the lossy compression block in lectures, laboratory sessions and problem solving sessions.


Objectives: 3
Contents:
Theory
7.5h
Problems
7.5h
Laboratory
15h
Guided learning
0h
Autonomous learning
45h

Final exam


Objectives: 2
Week: 15 (Outside class hours)
Type: theory exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h

Teaching methodology

In the theory classes, the fundamentals of the different compression methods will be explained. Later will be implemented in the laboratory classes.

Evaluation methodology

50 % Problems and quizzes.
50 % Lab delivery.

Bibliography

Basic:

Complementary:

Previous capacities

Basic mathematical language.