1d19f0e7
Chunk
staged.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
## -*- coding: utf-8 -*-
from numpy import array, vstack, hstack, kron, ones
from random import SystemRandom
sysrnd = SystemRandom()
def uMask(u=7):
return array([[(x + y < u) & (x + y > 0) for x in range(8)] for y in range(8)])
acMaskBlock = array(
[[False] + [True for x in range(7)]] +
[[True for x in range(8)] for y in range(7)]
)
def acMask(h1, w1, mask=acMaskBlock):
"""Return a mask of the given size for the AC coefficients of a
JPEG coefficient matrix."""
(h, w) = (h1 / 8, w1 / 8)
A = vstack([mask for x in range(h)])
A = hstack([A for x in range(w)])
return A
def repmat(M, rep): return kron(ones(rep), M)
def getfreq(A, i, j):
"""
Return a submatrix of a JPEG matrix A including only frequency (i,j)
from each block.
"""
(M, N) = A.shape
return A[xrange(i, M, 8), :][:, xrange(j, N, 8)]
|