Programmable quantization dead zone and threshold for standard-based h.264 and/or vc1 video encoding
Abstract
A video encoder including an encoder circuit, a quantizer circuit and a control circuit. The encoder circuit may be configured to generate a plurality of coefficient values and motion vectors in response to a video stream, a first control signal, a second control signal, and a number of quantized values. The control circuit may be configured to (i) generate the first control signal, the second control signal, and a quantizer index signal and (ii) set two or more quantization dead zones and two or more offsets to different values, where the quantization dead zones and the offsets are independently programmable. The quantizer circuit may be configured to generate the number of quantized values in response to the coefficient values, the quantizer index signal, the two or more quantization dead zones and the two or more offsets. A first coefficient value may be quantized using a first quantization dead zone and a first offset. A second coefficient value may be quantized using a second quantization dead zone and a second offset. The first and second quantization dead zones generally have different values. The first and second offsets generally have different values. Quantization calculations determining each quantized value take into account respective quantization dead zones and offsets.
Claims
exact text as granted — not AI-modified1 . An apparatus comprising:
an encoder circuit configured to generate a plurality of coefficient values and motion vectors in response to a video stream, a first control signal, a second control signal, and a number of quantized values; a control circuit configured to (i) generate said first control signal, said second control signal, and a quantizer index signal and (ii) set two or more quantization dead zones and two or more offsets to different values, wherein said quantization dead zones and said offsets are independently programmable; and a quantizer circuit configured to generate said number of quantized values in response to said coefficient values, said quantizer index signal, said two or more quantization dead zones and said two or more offsets, wherein a first coefficient value is quantized using a first quantization dead zone and a first offset, a second coefficient value is quantized using a second quantization dead zone and a second offset, said first and second quantization dead zones have different values, said first and second offsets have different values, and quantization calculations determining each quantized value take into account respective quantization dead zones and offsets.
2 . The apparatus according to claim 1 , wherein:
generating each quantized value comprises (i) scaling a corresponding coefficient value based upon a respective quantizer coefficient and a respective offset value, (ii) setting said quantized value to the scaled coefficient value when a magnitude of said scaled coefficient value is greater than a threshold based upon a respective dead zone value, and setting said quantized value to zero when the magnitude of said scaled coefficient value is not greater than the threshold value based upon the respective dead zone value.
3 . The apparatus according to claim 1 , wherein:
4×4 luma and chroma quantization is performed according to a first equation comprising
Y
QQ
(
i
,
j
)
=
[
Y
(
i
,
j
)
·
Q
(
QP
%
6
,
i
,
j
)
+
(
(
(
Off
(
i
,
j
)
+
1
)
·
2
17
+
QP
/
6
)
/
16
)
]
2
17
-
3
+
QP
/
6
,
i
,
j
=
0
…
3
Y
Q
(
i
,
j
)
=
{
0
,
if
abs
(
Y
QQD
(
i
,
j
)
)
≤
7
+
DZ
(
i
,
j
)
Y
QQD
(
i
,
j
)
/
8
,
else
where Y represents the coefficient values, Q represents the quantization coefficients, Off(i,j) represents the offset values and DZ(i,j) represents the quantization dead zone values;
4×4 luma DC quantization is performed according to a second equation comprising
Y
QQD
(
i
,
j
)
=
[
Y
D
(
i
,
j
)
·
Q
(
QP
%
6
,
0
,
0
)
+
(
(
sgn
(
Y
D
(
i
,
j
)
)
·
(
o
LDC
+
1
)
·
2
17
+
QP
/
6
)
/
16
)
]
2
17
-
3
+
QP
/
6
,
i
,
j
=
0
…
3
Y
QD
(
i
,
j
)
=
{
0
,
abs
(
Y
QQD
(
i
,
j
)
)
≤
7
+
d
LDC
Y
QQD
(
i
,
j
)
/
8
,
else
where O LDC =0 . . . 7 has a value ranging from zero through 7 and d LDC has a value ranging from zero through 15; and
2×2 chroma DC quantization is performed according to a third equation comprising
Y
QQD
(
i
,
j
)
=
[
Y
D
(
i
,
j
)
·
Q
(
QP
%
6
,
0
,
0
)
+
(
(
sgn
(
Y
D
(
i
,
j
)
)
·
(
o
CDC
+
1
)
·
2
17
+
QP
/
6
)
/
16
)
]
2
17
-
3
+
QP
/
6
,
i
,
j
=
0
…
3
Y
QD
(
i
,
j
)
=
{
0
,
abs
(
Y
QQD
(
i
,
j
)
)
≤
7
+
d
CDC
Y
QQD
(
i
,
j
)
/
8
,
else
where O CDC has a value ranging from zero through 7 and d CDC has a value ranging from zero through 15.
4 . The apparatus according to claim 1 , wherein said control circuit is further configured to provide a plurality of dead zone threshold values and offset threshold values.
5 . The apparatus according to claim 1 , wherein said control circuit is configured to provide a plurality of parameter sets.
6 . The apparatus according to claim 5 , wherein said plurality of parameter sets comprises a plurality of parameter pairs.
7 . The apparatus according to claim 6 , wherein said plurality of parameter pairs each comprise an offset parameter and a dead zone parameter.
8 . The apparatus according to claim 5 , wherein said plurality of parameter sets comprises 16 parameter sets configured for either 8×8 or 4×4 luma and chroma quantization, one parameter set configured for 2×2 chroma DC quantization and one parameter set configured for 4×4 luma DC quantization.
9 . The apparatus according to claim 1 , wherein said encoder circuit comprises a VC1 compliant encoder/decoder (CODEC) and said quantizer circuit is configured to implement a variable dead zone comprising a rounding factor configured to vary between a first predetermined value and a second predetermined value.
10 . The apparatus according to claim 1 , wherein said quantizer circuit is further configured to implement a programmable offset for standard-based VC1 encoding, wherein a forward quantization matrix parameter is variable between a first predetermined value and a second predetermined value.
11 . A video encoder comprising:
means for generating a plurality of coefficient values and motion vectors in response to a video stream, a first control signal, a second control signal, and a number of quantized values; means for (i) generating said first control signal, said second control signal, and a quantizer index signal and (ii) setting two or more quantization dead zones and two or more offsets to different values, wherein said two or more quantization dead zones and said two or more offsets are independently programmable; means for generating said number of quantized values in response to said coefficient values, said quantizer index signal, said two or more quantization dead zones and said two or more offsets, wherein a first coefficient value is quantized using a first quantization dead zone and a first offset, a second coefficient value is quantized using a second quantization dead zone and a second offset, said first and second quantization dead zones have different values, said first and second offsets have different values, and generating each quantized value comprises (i) scaling a corresponding coefficient value based upon a respective quantizer coefficient and a respective offset value, (ii) setting said quantized value to the scaled coefficient value when a magnitude of said scaled coefficient value is greater than a threshold based upon a respective dead zone value, and setting said quantized value to zero when the magnitude of said scaled coefficient value is not greater than the threshold value based upon the respective dead zone value.
12 . A method for encoding video comprising:
generating a plurality of coefficient values and motion vectors with a video encoder in response to a video stream, a first control signal, a second control signal, and a number of quantized values; generating said first control signal, said second control signal, and a quantizer index signal; setting two or more quantization dead zones and two or more offsets to different values, wherein said two or more quantization dead zones and said two or more offsets are independently programmable; and generating said number of quantized values in said video encoder in response to said coefficient values, said quantizer index signal, said two or more quantization dead zones and said two or more offsets, wherein a first coefficient value is quantized using a first quantization dead zone and a first offset, a second coefficient value is quantized using a second quantization dead zone and a second offset, said first and second quantization dead zones have different values, said first and second offsets have different values, and quantization calculations determining each quantized value take into account respective quantization dead zones and offsets.
13 . The method according to claim 12 , further comprising:
generating each quantized value by (i) scaling a corresponding coefficient value based upon a respective quantizer coefficient and a respective offset value, (ii) setting said quantized value to the scaled coefficient value when a magnitude of said scaled coefficient value is greater than a threshold based upon a respective dead zone value, and setting said quantized value to zero when the magnitude of said scaled coefficient value is not greater than the threshold value based upon the respective dead zone value.
14 . The method according to claim 12 , further comprising:
providing a plurality of parameter sets.
15 . The method according to claim 14 , wherein said plurality of parameter sets comprises a plurality of parameter pairs, wherein said plurality of parameter pairs each comprise an offset parameter and a dead zone parameter.
16 . The method according to claim 14 , wherein said plurality of parameter sets comprises 16 parameter sets configured for either 8×8 or 4×4 luma and chroma quantization, one parameter set configured for 2×2 chroma DC quantization and one parameter set configured for 4×4 luma DC quantization.
17 . The method according to claim 12 , wherein said video encoder is implemented as a VC1 compliant encoder/decoder (CODEC) and a quantizer circuit configured to implement one or more of (a) a variable dead zone comprising a rounding factor configured to vary between a first predetermined value and a second predetermined value, (b) a programmable offset for standard-based VC1 encoding, wherein a forward quantization matrix parameter is variable between a first predetermined value and a second predetermined value and (c) a variable dead zone comprising a rounding factor configured to vary between a first predetermined value and a second predetermined value, and a programmable offset for standard base VC1 encoding, wherein a forward quantization matrix parameter is variable between a third predetermined value and a fourth predetermined value.
18 . The method according to claim 12 , wherein:
4×4 luma and chroma quantization is performed according to a first equation comprising
Y
QQ
(
i
,
j
)
=
[
Y
(
i
,
j
)
·
Q
(
QP
%
6
,
i
,
j
)
+
(
(
(
Off
(
i
,
j
)
+
1
)
·
2
17
+
QP
/
6
)
/
16
)
]
2
17
-
3
+
QP
/
6
,
i
,
j
=
0
…
3
Y
Q
(
i
,
j
)
=
{
0
,
if
abs
(
Y
QQD
(
i
,
j
)
)
≤
7
+
DZ
(
i
,
j
)
Y
QQD
(
i
,
j
)
/
8
,
else
where Y represents the coefficient values, Q represents the quantization coefficients, Off(i,j) represents the offset values and DZ(i,j) represents the quantization dead zone values;
4×4 luma DC quantization is performed according to a second equation comprising
Y
QQD
(
i
,
j
)
=
[
Y
D
(
i
,
j
)
·
Q
(
QP
%
6
,
0
,
0
)
+
(
(
sgn
(
Y
D
(
i
,
j
)
)
·
(
o
LDC
+
1
)
·
2
17
+
QP
/
6
)
/
16
)
]
2
17
-
3
+
QP
/
6
,
i
,
j
=
0
…
3
Y
QD
(
i
,
j
)
=
{
0
,
abs
(
Y
QQD
(
i
,
j
)
)
≤
7
+
d
LDC
Y
QQD
(
i
,
j
)
/
8
,
else
where O LDC =0 . . . 7 has a value ranging from zero through 7 and d LDC has a value ranging from zero through 15; and
2×2 chroma DC quantization is performed according to a third equation comprising
Y
QQD
(
i
,
j
)
=
[
Y
D
(
i
,
j
)
·
Q
(
QP
%
6
,
0
,
0
)
+
(
(
sgn
(
Y
D
(
i
,
j
)
)
·
(
o
CDC
+
1
)
·
2
17
+
QP
/
6
)
/
16
)
]
2
17
-
3
+
QP
/
6
,
i
,
j
=
0
…
3
Y
QD
(
i
,
j
)
=
{
0
,
abs
(
Y
QQD
(
i
,
j
)
)
≤
7
+
d
CDC
Y
QQD
(
i
,
j
)
/
8
,
else
where O CDC has a value ranging from zero through 7 and d CDC has a value ranging from zero through 15.
19 . The method according to claim 18 , wherein:
sixteen 3-bit programmable offsets O ij for 4×4 luma and chroma quantization are utilized according to a first equation
Off
(
i
,
j
)
=
sgn
(
Y
(
i
,
j
)
)
·
O
1
(
i
,
j
)
,
where
O
1
=
[
o
00
o
01
o
02
o
03
o
10
o
11
o
12
o
13
o
20
o
21
o
22
o
23
o
30
o
31
o
32
o
33
]
where O ij has a value ranging from zero through seven; and
sixteen 4-bit programmable dead zones d ij for 4×4 luma and chroma quantization are utilized according to a second equation
D
Z
(
i
,
j
)
=
D
1
(
i
,
j
)
,
where
D
1
=
[
d
00
d
01
d
02
d
03
d
10
d
11
d
12
d
13
d
20
d
21
d
22
d
23
d
30
d
31
d
32
d
33
]
,
where d ij has a value ranging from zero through fifteen.
20 . The method according to claim 18 , wherein:
sixteen 3-bit programmable offsets O ij for 8×8 luma and chroma quantization are utilized according to a third equation
Off
(
i
,
j
)
=
sgn
(
Y
(
i
,
j
)
)
·
O
1
(
i
,
j
)
,
where
O
1
=
[
o
00
o
01
o
02
o
02
o
03
o
03
o
03
o
03
o
10
o
11
o
12
o
12
o
13
o
13
o
13
o
13
o
20
o
21
o
22
o
22
o
23
o
23
o
23
o
23
o
20
o
21
o
22
o
22
o
23
o
23
o
23
o
23
o
30
o
31
o
32
o
32
o
33
o
33
o
33
o
33
o
30
o
31
o
32
o
32
o
33
o
33
o
33
o
33
o
30
o
31
o
32
o
32
o
33
o
33
o
33
o
33
o
30
o
31
o
32
o
32
o
33
o
33
o
33
o
33
]
and sixteen 4-bit programmable dead zones d ij for 8×8 luma and chroma quantization are utilized according to a fourth equation
DZ
(
i
,
j
)
=
D
1
(
i
,
j
)
,
where
D
1
=
[
d
00
d
00
d
00
d
00
d
01
d
01
d
02
d
03
d
00
d
00
d
00
d
00
d
01
d
01
d
02
d
03
d
00
d
00
d
00
d
00
d
01
d
01
d
02
d
03
d
00
d
00
d
00
d
00
d
01
d
01
d
02
d
03
d
10
d
10
d
10
d
10
d
11
d
11
d
12
d
13
d
10
d
10
d
10
d
10
d
11
d
11
d
12
d
13
d
20
d
20
d
20
d
20
d
21
d
21
d
22
d
23
d
30
d
30
d
30
d
30
d
31
d
31
d
32
d
33
]
where the values in the square brackets correspond to the respective values used for 4×4 luma and chroma quantization, but i and j range from zero to seven.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.