327 lines
66 KiB
HTML
327 lines
66 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8" lang="cs">
|
|
<meta name="viewport" content="initial-scale=1">
|
|
<title>Example using ipynb2html.js</title>
|
|
<link rel="stylesheet" href="../packages/ipynb2html/dist/notebook.min.css">
|
|
<link
|
|
rel="stylesheet"
|
|
href="https://cdn.jsdelivr.net/npm/katex@0.13.11/dist/katex.min.css"
|
|
crossorigin="anonymous">
|
|
<link
|
|
rel="stylesheet"
|
|
href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@10.7.3/build/styles/default.min.css"
|
|
crossorigin="anonymous">
|
|
<script src="https://cdn.jsdelivr.net/npm/marked@2.0.7/marked.min.js" crossorigin="anonymous"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/ansi_up@5.0.1/ansi_up.js" crossorigin="anonymous"></script>
|
|
<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@10.7.3/build/highlight.min.js" crossorigin="anonymous"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/katex@0.13.11/dist/katex.min.js" crossorigin="anonymous"></script>
|
|
<script defer src="../packages/ipynb2html/dist/ipynb2html.js" onload="ipynb2html.autoRender();"></script>
|
|
<style>
|
|
html, body {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
.nb-notebook {
|
|
width: 99%;
|
|
max-width: 750px;
|
|
margin: 0 auto;
|
|
padding: 3em 6em 1em 6em;
|
|
background-color: white;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<script type="application/x-ipynb+json">
|
|
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# The DCT (Discrete Cosine Transform)\n",
|
|
"\n",
|
|
"Jim Mahoney | Computer Science @ Marlboro College |\n",
|
|
"cs.marlboro.edu | Jan 2019 | MIT License\n",
|
|
"\n",
|
|
"An explanation and illustration of the math behind the Discrete Cosine Transform\n",
|
|
"and the concepts used in lossy JPEG image compression - low pass filtering."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# imports \n",
|
|
"import numpy as np\n",
|
|
"from numpy import *\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"from matplotlib.pyplot import *\n",
|
|
"import matplotlib.image as mpimg\n",
|
|
"\n",
|
|
"%matplotlib inline\n",
|
|
"\n",
|
|
"# software versions: \n",
|
|
"# python 3.6, numpy 1.15, matplotlib 3.0.2, Pillow 5.4.1 (python imaging library)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## The basic linear algebra with N = 2\n",
|
|
"\n",
|
|
"You can think of a vector - a list of numbers - as coefficients times basis vectors.\n",
|
|
"\n",
|
|
"$$ f_0 \\left[ \\begin{array}{c} 1 \\\\ 0 \\end{array} \\right] + f_1 \\left[ \\begin{array}{c} 0 \\\\ 1 \\end{array} \\right] $$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Using a different basis, different coefficients can describe the same vector.\n",
|
|
"\n",
|
|
"$$ G_0 \\frac{1}{\\sqrt{2}} \\left[ \\begin{array}{c} 1 \\\\ 1 \\end{array} \\right] + \n",
|
|
"G_1 \\frac{1}{\\sqrt{2}} \\left[ \\begin{array}{c} 1 \\\\ -1 \\end{array} \\right] $$\n",
|
|
"\n",
|
|
"(The sqrt(2)'s give the basis vectors length 1, i.e. \"normalizes\" them.)\n",
|
|
"\n",
|
|
"This transormation <b>f</b> to <b>G</b> is a DCT (Discrete Cosine Transform). \n",
|
|
"For a vector with 2 components, this perhaps isn't all that exciting, \n",
|
|
"but does still transform the original $(f_0, f_1)$ into low and high frequency components $(G_0, G_1)$.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### quick quiz 1\n",
|
|
"\n",
|
|
"If $f_0 = 3$ and $f_1 = 5$, what are the G's?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### the matrix math\n",
|
|
"\n",
|
|
"This transform can be written as a matrix multiplication.\n",
|
|
"\n",
|
|
"$$ \n",
|
|
"f_0 \\left[ \\begin{array}{c} 1 \\\\ 0 \\end{array} \\right] + f_1 \\left[ \\begin{array}{c} 0 \\\\ 1 \\end{array} \\right] = \n",
|
|
"\\left[ \\begin{array}{c} f_0 \\\\ f_1 \\end{array} \\right] = \n",
|
|
"G_0 \\frac{1}{\\sqrt{2}} \\left[ \\begin{array}{c} 1 \\\\ 1 \\end{array} \\right] + \n",
|
|
"G_1 \\frac{1}{\\sqrt{2}} \\left[ \\begin{array}{c} 1 \\\\ -1 \\end{array} \\right] =\n",
|
|
"\\frac{1}{\\sqrt{2}} \\left[ \\begin{array}{cc} 1 & 1 \\\\ 1 & -1 \\end{array} \\right] \n",
|
|
"\\left[ \\begin{array}{c} G_0 \\\\ G_1 \\end{array} \\right]\n",
|
|
"$$\n",
|
|
"\n",
|
|
"Moreover, this orthnormal matrix has the interesting and useful property that\n",
|
|
"its transpose is its inverse. That makes the equation easy to invert."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### quick quiz 2\n",
|
|
"\n",
|
|
"Show that the matrix times its transpose is the identity, and use that to find the G's."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### two dimensions\n",
|
|
"\n",
|
|
"The same idea can be applied to 2D images rather than 1D vectors,\n",
|
|
"by applying the 1D transform to each row and column of the image.\n",
|
|
"\n",
|
|
"The 2D basis images for N=2 are then the outer products of the 1D basis vectors.\n",
|
|
"From lowest (0,0) to highest (1,1) spatial frequency these basis images are :"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"0, 0 :\n",
|
|
"[[0.5 0.5]\n",
|
|
" [0.5 0.5]]\n",
|
|
"\n",
|
|
"0, 1 :\n",
|
|
"[[ 0.5 -0.5]\n",
|
|
" [ 0.5 -0.5]]\n",
|
|
"\n",
|
|
"1, 0 :\n",
|
|
"[[ 0.5 0.5]\n",
|
|
" [-0.5 -0.5]]\n",
|
|
"\n",
|
|
"1, 1 :\n",
|
|
"[[ 0.5 -0.5]\n",
|
|
" [-0.5 0.5]]\n",
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"basis = (1/sqrt(2) * array([1, 1]), 1/sqrt(2) * array([1, -1]))\n",
|
|
"for i in [0,1]:\n",
|
|
" for j in [0,1]:\n",
|
|
" print(\"{}, {} :\".format(i,j))\n",
|
|
" print(outer(basis[i], basis[j]))\n",
|
|
" print()\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### quick quiz\n",
|
|
"\n",
|
|
"For an image $ f = \\left[ \\begin{array}{cc} 5 & 8 \\\\ 4 & -1 \\end{array} \\right]$, what are the correspoding four $G$ coefficients?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## N = 8\n",
|
|
"\n",
|
|
"JPEG image compression uses the same sort of transform but with 8 coefficients, not 2.\n",
|
|
"\n",
|
|
"The matrix is defined by this formula :\n",
|
|
"\n",
|
|
"$$ \n",
|
|
"G_u = \\sqrt{\\frac{2}{N}} \\frac{1}{\\sqrt{2}} f_0 + \n",
|
|
"\\sqrt{\\frac{2}{N}} \\sum_{x=1}^7 f_x \\, cos\\left( \\frac{\\pi}{8} (u + \\frac{1}{2}) x \\right)\n",
|
|
"$$\n",
|
|
"\n",
|
|
"See http://en.wikipedia.org/wiki/Discrete_cosine_transform\n",
|
|
"and http://www.whydomath.org/node/wavlets/dct.html for the details.\n",
|
|
"In the wikipedia entry, we're using the JPEG transform which corresponds\n",
|
|
"to the \"Some authors further multiply the X0 term by 1/sqrt(2) and multiply the resulting matrix \n",
|
|
"by an overall scale factor of sqrt(2/N)\" variation, \n",
|
|
"where their $(k, n)$ indices are my $(u, x)$, \n",
|
|
"and their $(X_k, x_n)$ is my $(G_u, f_x)$.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([[ 0.354, 0.354, 0.354, 0.354, 0.354, 0.354, 0.354, 0.354],\n",
|
|
" [ 0.49 , 0.416, 0.278, 0.098, -0.098, -0.278, -0.416, -0.49 ],\n",
|
|
" [ 0.462, 0.191, -0.191, -0.462, -0.462, -0.191, 0.191, 0.462],\n",
|
|
" [ 0.416, -0.098, -0.49 , -0.278, 0.278, 0.49 , 0.098, -0.416],\n",
|
|
" [ 0.354, -0.354, -0.354, 0.354, 0.354, -0.354, -0.354, 0.354],\n",
|
|
" [ 0.278, -0.49 , 0.098, 0.416, -0.416, -0.098, 0.49 , -0.278],\n",
|
|
" [ 0.191, -0.462, 0.462, -0.191, -0.191, 0.462, -0.462, 0.191],\n",
|
|
" [ 0.098, -0.278, 0.416, -0.49 , 0.49 , -0.416, 0.278, -0.098]])"
|
|
]
|
|
},
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# The 8 x 8 DCT matrix thus looks like this.\n",
|
|
"N = 8\n",
|
|
"dct = np.zeros((N, N))\n",
|
|
"for x in range(N):\n",
|
|
" dct[0,x] = sqrt(2.0/N) / sqrt(2.0)\n",
|
|
"for u in range(1,N):\n",
|
|
" for x in range(N):\n",
|
|
" dct[u,x] = sqrt(2.0/N) * cos((pi/N) * u * (x + 0.5) )\n",
|
|
" \n",
|
|
"np.set_printoptions(precision=3)\n",
|
|
"dct"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The corresponding eight 1D basis vectors (the matrix rows) oscillate with successively higher spatial frequencies."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 648x864 with 8 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Here's what they look like.\n",
|
|
"figure(figsize=(9,12))\n",
|
|
"for u in range(N):\n",
|
|
" subplot(4, 2, u+1)\n",
|
|
" ylim((-1, 1))\n",
|
|
" title(str(u))\n",
|
|
" plot(dct[u, :])\n",
|
|
" plot(dct[u, :],'ro')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Like the N=2 case, the vectors are orthnormal. \n",
|
|
"In other words, their dot products are 0, and each has length 1. \n",
|
|
"Here are a few illustrative products."
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.7.2"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 1
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|