You are on page 1of 13

Analysis and Implementation of Video Compression using MPEG Standard

Elbahlul Fgeea, Aboagela Dogmanb, *Naima Agnasha


aDepartment of Electrical Engineering and Computer, Libyan Academy for Postgraduate Studies, Libya
bDepartment of Networking, Faculty of IT, University of Zintan, Zintan, Libya

*Crossponding author: agnashnaima@gmail.com


ABSTRACT
Multimedia applications have been growing rapidly over the past decades. Saving and transmitting
uncompressed version of these applications may not be practical. This is because they require large storage
space as well as dedicated bandwidth for transmission. Therefore, there was a need to compress these
applications, in particular video applications in effective manner.
Video codec is defined as the process of compression and decompression of digital video files. Several standards
were introduced for video compression. The most widely implemented standards are MPEG-x family, and H.26x
family.
In this paper, the implementation of video MPEG codec was performed using MATLAB software. The results
show the process of MPEG compression starting from splitting the video into sequences frame, converting each
frame into 𝑌𝐶𝑏𝐶𝑟 format, applying motion prediction, performing transformation and quantization, and finally
applying entropy coding via Run Length Encoding, and Huffman algorithm. Although, the compression ratio
was around 20%, the results show trivial difference between original frames and reconstructed frames. The
Peak Signal-to-Noise Ratio PSNR is used to measure the quality between the original and a compressed frame.
The average PSNR was around 41.02 which is showing good quality of compressed frame.
Keywords: MPEG, DCT, quantization, RLE, and Huffman algorithm.

1. INTRODUCTION
Over the past decade, there has been a rapidly increase in the use of video in digital form.
This is due to the extensive use of the Internet world wide. Video can be seen as a sequence
of images which are displayed in order. Each of these images is called a frame. However,
there are minor changes in the consecutive frames such as a slight difference in the color.
Therefore, video compression standards do not encode all the information in the video.
some of this information are redundant and can be eliminated, some of them are not
important and may loss during the compression [1].
Video compression techniques can be classified to lossy and lossless compression
techniques. Lossless compression technique is used to encode computer originated data
files whereas lossy compression is used to encode audio, and video files. There are a variety
of lossy compression standards. The most widely implemented standards are MPEG-x
family, and H.26x family [2]. In this paper, the implementation of video MPEG codec was
performed and analyzed using MATLAB software.

1.1. MPEG STANDARD


MPEG stands for “Motion Picture Expert Group”. As its name implies, MPEG is one of the
most widely deployed compression schemes used for encoding video, movies, and motion
pictures. The video files that have extensions of MP4, and audio files that have extensions
of MP3 are compressed by MPEG standard [2].
MPEG has different set of standard. These includes: MPEG 1, 2, 4, and 7. MPEG-1 was
published in 1992. MPEG-1 aimed to provide VHS quality with a bandwidth of 1,5 Mbps.
MPEG-2 was released in 1994, which allowed a higher quality with a slightly higher
bandwidth. MPEG-4 was released in 1998 which in turn provided lower bit rates (10Kb/s
to 1Mb/s) with a good quality. MPEG-7 is well known as multimedia content description

1
Fgee et al

interface. It is a suite of standards for description and search of audio, visual and
multimedia content [3] – [6]
MPEG applies similar techniques as JPEG expect the prediction of motion. This is because
the video is a series of successive frames. Figure (1) illustrates the JPEG diagram. The
process starts with converting each frame into 𝑌𝐶𝑏𝐶𝑟 format, performing transformation
and quantization, and finally applying entropy coding via Run Length Encoding, and
Huffman algorithm

Figure (1): JPEG Pipe Line Diagram [7].

2. RELATED WORKS
Several studies have been carried out on video compression. For instance, performance
evaluation of entropy coding for MPEG-4 video codec was studied. In their paper, algorithm
for Context Adaptive Binary Arithmetic Coding (CABAC) is proposed for MPEG-4 Video
Codec. They stated that the compression efficiency can be up to 30% better when
compared to traditional entropy coding technique [4]. Performance analysis of various
video compression standards were examined in [5], between MPEG, and H.264.
In [6], performance analysis of various video compression techniques was carried out. They
compared MPEG-2, H.261, and H.264 video compression standards. the results showed
that the compression of H.264 is better than MPEG-2 and H.261.
In this study, the implementation and analysis of MPEG video codec was examined using
MATLAB. The following sections explain the MPEG compression steps, the experimental
procedure for implementing and analyzing MPEG by MATLAB, the discussion of obtained
results, and the finally the study conclusion.

3. MPEG COMPRESSION STEPS

2
Fgee et al

The encoding process of MPEG is performed in two main stages: first stage is to prepare
data for MPEG compression. This includes the resolution reduction of video frames which
results in dividing each frame into macroblocks.
The second stage is to apply MPEG compression on the prepared data. This stage includes:
applying motion predication at macroblocks level. Then, the Discrete Cosine
Transformation (DCT), quantization, and zig-zag operation are used to reduce the spatial
redundancy. Finally, the entropy coding using the Run Length Encoding (RLE) and the
Huffman coding algorithm are applied to the output of quantization [1] – [2].

3.1 DATA PREPARATION IN MPEG


Data preparation in MPEG includes: the resolution reduction which is the change of each
video frame from Red, Green, Blue (RGB) format to YCbCr format (luminance and
chrominance). YCbCr format is in turn divided into macroblocks [1]

3.1.1 CONVERT RGB TO YCbCr


The colour image is mainly composite of three colors Red, Green, and Blue. Each pixel of
the image is a mixed from these colors with different scale. The RGB coordinates represents
the three-dimensional of the point of the given color within the cube or its faces or along
its edges as shown in Figure (2).

Figure (2): RGB coordinates [8].

Each frame (single image) in the video is represented in RGB model. This model must be
changed to a digital form in order to be compressed. RGB model must be changed to
𝑌𝐶𝑏 𝐶𝑟 model. Where Y is the luminance of the image that represents the brightness. 𝐶𝑏 is
the chrominance of the image that represents the difference between gray and blue
whereas 𝐶𝑟 is the chrominance of the image that represents the difference between gray
and red [7]. The following equation is used to covert the image from analog form (𝑌𝑈𝑉) into
digital form (𝑌𝐶𝑏 𝐶𝑟 ) [8].

𝑌 0.299 0.587 0.114 𝑅 0


[𝐶𝑏 ] = [−0.169 −0.334 0.500 ] [𝐺 ] + [128] (1)
𝐶𝑟 0.500 −0.419 −0.081 𝐵 128
The advantage of 𝑌𝐶𝑏 𝐶𝑟 is that it can be compressed using a ratio of 4:2:2 or 4:2:0 in
contrast with RGB which is compressed using 4:4:4 ratio.

3
Fgee et al

There are two system of 𝑌𝐶𝑏 𝐶𝑟 . The NTSC system which has resolution of 𝑌 = 352 ∗ 240 and
𝐶𝑏 = 𝐶𝑟 = 176 ∗ 120, and PAL system which has resolution of 𝑌 = 352 ∗ 288 and 𝐶𝑏 = 𝐶𝑟 =
176 ∗ 144 [9].

3.1.2 DIVISION INTO MACROBLOCKS


After each frame is converted into a digital form 𝑌𝐶𝑏 𝐶𝑟 , it is divided into many blocks called
Macroblocks. The Macroblocks of 16*16 samples represent the luminance components
whereas Macroblocks of 8*8 represent the chrominance components as shown in Figure
(3). The macroblocks are then used as inputs to Discrete Cosine Transformer (DCT) at the
compression stage [9].

Figure (3): Macroblocks for luminance and chrominance components [9]

3.2 DATA COMPRESSION IN MPEG


The compression process includes six operations: apply motion prediction, Discrete Cosine
Transformer (DCT), Quantization, Zig-zag, and entropy coding using the Run Length
Encoding (RLE) and the Huffman coding algorithm. The following subsections details these
operations.

3.2.1 APPLY MOTION PREDICTION


An MPEG video is a sequence of frames which often have small differences between them.
Thus, the MPEG-standard reduces this temporal redundancy by considering three types
of frames: I-frames (intra), P-frames (predicted) and B-frames (bidirectional).
The I-frame is an independent frame which has no reference to other frames. It is
composed onto blocks of 8x8 pixels and sent directly to DCT.
The P-frames can be predicted using forward prediction which is based on an earlier I-
frame or P-frame. A motion vector is calculated to determine the value and direction of the
prediction. A motion vector is composed to 8x8 pixels blocks and sent to the DCT.
The B-frames can be predicted using bidirectional prediction which used based on
previous or next P-frame. Thus, two motion vectors are calculated. One to determine the
value and direction of the forward prediction, and the other to determine the value and
direction of the backward prediction. The motion vectors are composed to 16x16 pixels

4
Fgee et al

blocks and sent to the DCT. The set of I frame, P frame, and B frame makes Group of
Picture GoP as shown in Figure (4) [2],[9].

Figure (4) GoP in MPEG [2].

3.2.2 DISCRETE COSINE TRANSFORMER (DCT)


According to [8], DCT is linear transformer function which is used to convert sets of
numbers (𝑎0 + 𝑎1 + 𝑎2 + ⋯ + 𝑎𝑛−1 ) into frequency domain called coefficients (𝑤0 + 𝑤1 + 𝑤2 +
⋯ + 𝑤𝑛−1 ). The results are data that can be represented by a set of coefficients
(𝑤0 + 𝑤1 + 𝑤2 + ⋯ + 𝑤𝑛−1 ).
The main advantage of DCT is that the power of original data (𝑎0 + 𝑎1 + 𝑎2 + ⋯ + 𝑎𝑛−1 ) may
be concentrated by few coefficients depending on the correlation of original data. In other
words, most of DCT coefficients can be zero or values near to zero.
There are two main coefficients generated from DCT: DC coefficient, and ACs coefficients.
The DC is the most important coefficient whereas ACs start from most important
coefficients to the least important coefficients. Equation (2) is used to calculate the DC
coefficient for 𝑘 = 0
(𝑎0 + 𝑎1 + 𝑎2 + ⋯ + 𝑎𝑛−1 )
𝑤0 = (2)
√𝑛
Where 𝑎0 … 𝑎𝑛−1 represent set of number 𝑛 , 𝑤0 represent the weight of DC coefficient.
The rest of coefficients where 𝑘 > 0 are called ACs coefficients. Equation (3) is used to
calculate the AC coefficients for 𝑘 = 1: n − 1, Where 𝑎0 … 𝑎𝑛−1 represent set of number 𝑛 ,
𝑤𝑘 represent the weight of 𝑘 AC coefficient.
𝑛−1
2 𝜋 1
𝑤𝑘 = √ ∑ 𝑎𝑡 cos [ (𝑡 + ) 𝑘] 𝑘 = 0, 1, … … 𝑛 − 1 (3)
𝑛 𝑛 2
𝑡=0

3.2.3 QUANTIZATION

Quantization is defined as the process of reducing the number of bits needed to store an
integer value by reducing the precision of the integer. Quantization matrix is calculated by

5
Fgee et al

dividing each coefficient of the DCT output on the corresponding element of the
quantization table [1]. Equation (4) is used to calculate the quantized matrix.
𝑂𝑢𝑡𝑝𝑢𝑡 𝑜𝑓 𝐷𝐶𝑇
Quantized matrix = 𝑄𝑢𝑎𝑛𝑡𝑖𝑧𝑎𝑡𝑖𝑜𝑛 𝑡𝑎𝑏𝑙𝑒
(4)

The elements of quantization arrays are constant for luminance and chrominance as
shown in Table (1).

Table (1): Quantization Table [1]


(a) For Luminance (b) For Chrominance

16 11 10 16 24 40 51 61 17 18 24 47 99 99 99 99

12 12 14 19 26 58 60 55 18 21 26 66 99 99 99 99

14 13 16 24 40 57 69 56 24 26 56 99 99 99 99 99

14 17 22 29 51 87 80 62 47 66 99 99 99 99 99 99

18 22 37 56 68 109 103 77 99 99 99 99 99 99 99 99

24 35 55 64 81 104 113 92 99 99 99 99 99 99 99 99

49 64 78 87 103 121 120 101 99 99 99 99 99 99 99 99

72 92 95 98 112 100 103 99 99 99 99 99 99 99 99 99

3.2.4 ZIG-ZAG SCANNING


The zig-zag scanning as shown in Figure (5) is applied on the quantized DCT coefficients.
The same pattern is used for luminance and chrominance matrix. The purpose of zig-zag
is to organize the quantized DCT coefficients in such a way to be ready for conversion into
single dimensional matrix by RLE [10].

Figure (5): Zig-zag pattern

3.2.5 RUN LENGTH ENCODING


Run-length encoding (RLE) is defined as a lossless compression method. RLE represents
data sequences by displaying redundant data in a single data value representing the
repeated block, and how many times it appears in the image. The outputs of zig-zag
scanning are the inputs of RLE [10]. As an example of RLE, the string of
AAAAAABBCCCDDD can be encoded using RLE to be A6B2C3D3.

6
Fgee et al

3.2.6 ENTROPY CODING


In entropy coding in Ref [11], DC components are differentially coded as (Size, Value). The
code for Value is derived from Size_and_Value Table as shown in Table (2) whereas the
code for Size is derived from Huffman Table for DC component SIZE field as shown in Table
(3).
AC components (range –1023 - 1023) are coded as pairs (S1, S2): S1 is (Run Length/SIZE),
where Run Length is the length of the consecutive zero values [0..15], and SIZE is the
number of bits needed to code the next nonzero AC component's value [0-A]. (0,0) is the
End of Block for the 8x8 block. S2: (Value) is the value of the AC component.
S1, and S2 are using Huffman Table for AC Run/Size Pairs as shown in Table (4) [11].

Table (3): Huffman Table for


Table (2): size and value table [11]
DC component SIZE field [11]
SIZE Value Code SIZE Code Length Code

0 0 --- 0 2 00

1 -1,1 0,1 1 3 010

2 -3, -2, 2,3 00,01,10,11 2 3 011

3 -7,…, -4, 4,…, 7 000,…, 011, 100,…111 3 3 100

0000,…, 0111, 1000,…, 4 3 101


4 -15,…, -8, 8,…, 15
1111
5 3 110

-2047,…, -1024, 6 4 1110


11 …
1024,… 2047
7 5 11110

Table (4): Huffman Table for AC Run/Size Pairs [11]


R/S Length Code R/S Length Code

0/0 4 1010 0/0 4 1010

0/1 2 00 0/1 2 00

0/2 2 01 0/2 2 01

0/3 3 100 0/3 3 100

0/4 4 1011 0/4 4 1011

0/5 5 11010 0/5 5 11010

0/6 7 1111000 0/6 7 1111000

0/7 8 11111000 0/7 8 11111000

4. EXPERIMENTAL PROCEDURE

MPEG Codec introduced by [12] was implemented and further developed using MATLAB
[13]. In MPEG Codec the functions of Encoder.m and Decoder.m were based on other

7
Fgee et al

helper functions which was written to perform a specific task for Encoder or Decoder
function. Table (5) shows task for each helper functions.
Table (5): Helper function for MPEG codec [12]
Helper function Task

exhaustiveSearchAlgorithm.m This function is required for Motion Compensation


This function is used to find the difference between successive
differentialCoding.m
frames
zigZag.m This function function performs RLE
inverseZigZag.m This is the inverse function of zigZag.m
inverseDifferentialCoding.m This is the inverse function of differentialCoding.m
inverseDCT. M This the inverse function of DCT

inbuildDecoder.m This function is used in line with Decoder.m

The MPEG codec reads uncompressed video and split it into frames in RGB format. The
RGB format is then converted to 𝑌𝐶𝑏𝐶𝑟 format. The luminance components that retains
maximum information is left out of the compression whereas high compression is applied
to chrominance components.
The Display.m function was added to MPEG codec in order to clearly identify each step of
MPEG compression. The README.m can be run to invoke the whole project.

5. RESULTS AND DISCUSSION

In this study, Wildlife Windows 7 Sample Video found in [14] was compressed. The
uncompressed video was read and split into frames in RGB format. Figure (5a) shows the
original uncompressed frame in RGB format whereas Figures (5b) – (5d) show the original
uncompressed frame with the three colors red, green, and blue respectively. In order to
transform frame through DCT, it must be changed to 𝑌𝐶𝑏𝐶𝑟 format. Figure (6a) shows the
original frame in 𝑌𝐶𝑏𝐶𝑟 format. Figure (6b) shows the Luminance component of the frame
that represents brightness whereas Figure (6c) shows the variance chrominance between
gray and blue, and Figure (6d) shows the variance chrominance between gray and red.
After the frame is converted into a digital form 𝑌𝐶𝑏 𝐶𝑟 , it is divided into many blocks called
Macroblocks. The Macroblocks of 16*16 samples represent the luminance components
whereas Macroblocks of 8×8 represent the chrominance components.

8
Original Image in RGB format Red color in RGB format

Fgee et al
Original Image in RGB format Red color in RGB format

Green color
(a) Original in RGB
frame format
in RGB format (b)Blue color
Original in RGB
frame in Redformat
format

Green color in RGB format Blue color in RGB format


Original Image in YCbCr format Luminance Component Y

(c) Original frame in Green format (d) Original frame in Blue


format
Figure (5): Original frame in: (a) RGB, (b) Red, (c) Green, (d) Blue
Original Image in YCbCr format Luminance Component Y

Chrominance Component
(a) Original frame (Cb)
in YCbCr format Chrominance
(d) LuminanceComponent
component Y (Cr)

Chrominance Component (Cb) Chrominance Component (Cr)

(b) Chrominance component Cb (c) Chrominance component Cr

Figure (6): (a) YCbCr format, (b) Luminance component Y, (c) Chrominance component Cb, (d)
Chrominance component Cr

Table (6) represents sample of chrominance component 𝐶𝑏 with Macroblock size of 8×8.
The values of Macroblock represented in Table (6) were processed by DCT in order to
produce DCT coefficients which are presented in Table (7). The output coefficients of DCT

9
Fgee et al

are further quantized to produce the quantized DCT coefficient which are presented in
Table (8). The assumption is that the quantization table of chrominance has a value of 14.

Table (6): Sample Macroblock (8×8) of chrominance component Cb


126 126 127 120 118 121 125 122
121 119 123 114 113 117 120 119
121 120 125 117 114 119 121 119
128 128 132 124 122 129 130 127
128 126 135 125 124 129 131 130
119 119 130 120 119 126 127 125
117 118 129 122 125 133 135 131
122 123 134 130 130 138 139 137
Table (7): Corresponding DCT coefficients of Sample Macroblock in Table (6)
-9.6243 14.4610 -12.2500 10.6860 -4.8039 14.4470 18.5000 0.9535
1.7381 -1.8370 13.9920 -1.7498 -6.8625 0.7866 1.4442 -1.4091
-0.3572 0.5194 -7.4471 -0.8878 6.9105 0.4036 2.3097 -0.4823
-0.5983 0.4884 -3.3931 -1.6237 -1.8615 0.2329 2.1243 -0.1370
0.5576 -0.3779 16.7500 0.2141 0.2310 0.5656 0.0000 0.0150
0.8659 -1.0106 -1.4986 -0.9634 1.0935 -0.4602 -0.6337 0.4010
-1.9053 1.9316 2.2729 0.1361 -3.1124 -0.7794 -0.9567 0.1836
1.2236 -1.2587 -4.4957 0.0794 1.6727 -0.1818 -0.0114 -0.7866

Table (8): Corresponding quantized values of DCT


coefficients in Table (7)
0 1 0 0 0 1 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0

The values presented in Table (9) are the values of Macroblock (8×8) of chrominance
component Cb for reconstructed frame. These values are corresponded to the values of
Macroblock (8×8) of chrominance component Cb of the original frame presented in Table
(6).

Figure (7a) shows the reconstructed frame in 𝑌𝐶𝑏𝐶𝑟 format whereas Figure (7b) – (7d) show
Luminance and chrominance components (𝐶𝑏𝐶𝑟) for the reconstructed frame respectively.
In Figures (8a) – (8d), the reconstructed frame in RGB format with the three colors red,
green, and blue are presented.

10
Fgee et al

Table (9): Macroblock (8×8) of chrominance component


Cb for reconstructed frame
127 126 128 119 117 123 125 123
121 120 123 114 112 118 120 118
120 120 125 116 114 120 122 120
128 127 133 124 122 128 130 128
128 127 135 126 124 130 132 130
118 120 130 121 119 125 127 125
116 118 129 123 124 133 135 130
122 124 135 129 130 139 141 136

Figure (9) shows the difference between the original frame and the reconstructed frame. In
Reconstructed Image in YCbCr format Luminance Component Y
this study, the Peak Signal-to-Noise Ratio PSNR is used to measure the quality between
the original and a compressed image. PSNR was computed between the two frames shown
in Figure (9). The value of PSNR is 41.02. The higher the PSNR, the better quality of the
compressed, or reconstructed frame. Typical values for the PSNR (30 - 50)db []
Reconstructed Image in YCbCr format Luminance Component Y

(a) reconstructedComponent
Chrominance frame in YCbCr
(Cb) (b) LuminanceComponent
Chrominance component Y (Cr)

Chrominance Component (Cb) Chrominance Component (Cr)

(c) Chrominance component Cb (d) Chrominance component Cr


Figure (7): (a) reconstructed YCbCr format, (b) Luminance component Y, (c) Chrominance
component Cb, (d) Chrominance component Cr

11
Reconstructed Image in RGB format Red color of Reconstructed Image
Fgee et al
Reconstructed Image in RGB format Red color of Reconstructed Image

Reconstructed Image in RGB format

(a) Reconstructed frame in RGB format (b) Reconstructed frame in Red


Green color of Reconstructed Image Blue color of Reconstructed Image

Green color of Reconstructed Image Blue color of Reconstructed Image

(c) Reconstructed frame in Green (d) Reconstructed frame in Blue

Figure (8):Image
Original Reconstructed frame in: (a)Reconstructed
in RGB format RGB, (b) Red, Image
(c) Green, (d) format
in RGB Blue

Luma Component of Difference frame for Current Frame No. 8 at ENCODER

(a) Original frame (b) Reconstructed frame

Figure (9): comparison between: (a) Original frame, and (b) reconstructed frame
Original
Figure (10) shows the predicted motion vector which Image in with
is associated RGB frame
format presented in
figure (9a).
Motion Vector for Frame No. 8
60

40

20

0
0 10 20 30 40 50 60 70 80 90
Figure (10): The motion vector of the frame in figure (9a)

12
Fgee et al

6. CONCLUSION
In this study, an implementation of video MPEG codec was carried out. The results show
the process of MPEG compression starting from splitting the video into sequences frames,
converting each frame into 𝑌𝐶𝑏𝐶𝑟 format, applying motion prediction, performing
transformation and quantization, and finally applying entropy coding via Run Length
Encoding, and Huffman algorithm. The PSNR was used to measure the quality between
the original and reconstructed frames as the higher PSNR represents better quality of the
compressed frames. The average of PSNR was around 42.08.

7. REFERENCES
[1] Z., Fan, and D. R. Bull "Intelligent image and video compression: communicating pictures".
Academic Press, 2021.
[2] A D Marshall, "MPEG compression", available online at
https://users.cs.cf.ac.uk/dave/Multimedia/node255.html, accessed on 20/12/2022.
[3] F. Chad, D. J. LeGall, J. L. Mitchell, and W. B. Pennebaker. " MPEG video compression standard
", Springer Science & Business Media, 2007.
[4] R. Nigam, A. Mishra, A.K. Diwakar, " Performance evaluation of entropy coding for MPEG-4
video codec" International Advanced Research Journal in Science, Engineering and Technology,
Vol. 1, Issue 4, December 2014
[5] R. G. Deshpande and L. L. Ragha, "Performance analysis of various video compression
standards," International Conference on Global Trends in Signal Processing, Information
Computing and Communication (ICGTSPICC), Jalgaon, India, pp. 148-151, 2016.
[6] A. Gupta, D. Goyal, and N. Hemrajani " Performance Analysis of Various Video Compression
Techniques", International Journal of Science and Research (IJSR), Vol(2), Issue(8), pp 335 –
338, 2013.
[7] S. Asadollah, R. Bahrampour, M. S. Rostami, and M. A. Mobarhan. "Evaluation of Huffman and
arithmetic algorithms for multimedia compression standards." (IJCSEA), 2011.
[8] Discrete Cosine Transform and Image Compression part 1, available online at:
https://www.youtube.com/watch?v=gQHwvJ9Lvno, accessed on 29/12/2022.
[9] Motion Picture Expert Group, MPEG compression steps, available online at:
https://www.youtube.com/watch?v=lAkuix41XJ8, last accessed on 29/12/2022.
[10] MPEG Video Compression, available online at: http://www.bretl.com/mpeghtml/mpeg2vc.HTM
last accessed on 29/12/2022
[11] Image Compression Standards, available online at:
https://www.slideserve.com/rmoriarty/image-compression-standards-jpeg powerpoint-ppt-
presentation, last accessed on 29/12/2022
[12] C. Prabhudesai "MPEG/H.264/HEVC Video Codec in MATLAB", available online at
https://github.com/rite2hhh/MPEG-Codec last accessed on 21/12/2022
[13] MATLAB R2013a Student Version (32-bit), available on at:
https://uk.mathworks.com/matlabcentral/answers/98268-how-do-i-download-matlab-and-
other-mathworks-products, last accessed on 15/12/2022
[14] Wildlife Windows 7 Sample Video, available online at:
https://www.youtube.com/watch?v=a3ICNMQW7Ok, accessed on 31/12/2022
[15] K., Sergey, M. Zriakhov, V. Lukin, and B.Vozel. "MSE and PSNR prediction for ADCT coder
applied to lossy image compression." IEEE 9th International Conference on Dependable Systems,
Services and Technologies (DESSERT), pp. 613-618, 2018.

13

You might also like