container.qcif @ 100 kbps. news.qcif @ 100 kbps current and future directions class histories –are...
TRANSCRIPT
Container.qcif @ 100 kbps
30
31
32
33
34
35
36
37
1 19 37 55 73 91 109 127 145 163 181 199 217 235 253 271 289
Frame
PSNR
MPEG-2GTV
News.qcif @ 100 kbps
30
31
32
33
34
35
36
37
1 19 37 55 73 91 109 127 145 163 181 199 217 235 253 271 289
Frame
PSNR
MPEG-2GTV
Current and Future Directions
• Class Histories– Are the significance probabilities of the coefficients
in each class consistent across frames?– If so, can we take advantage of this?
• Bit Allocation– Currently, we assign the same number of bits to
each frame, except possibly the first one. – Can we achieve better results by assigning a
variable numbers of bits to each frame?
Current and Future Directions
• New Classes– Can we design a new set of classes which
better reflects the statistical properties of motion-compensated video?
• Arithmetic Coding vs. Group Testing– What happens if we replace the Group
Tester with an Arithmetic Coder?
Class Histories
• Recall that the optimal group test size is determined by the significance probability of the coefficients in the current class.
• As the Group Tester codes a class, it tracks the number of significant and insignificant coefficients seen so far. These numbers are used to determine the next test size.
• This is inefficient if the class contains few coefficients. By the time we learn the best size, we will be done coding the class!!!
Class Histories
• Question 1: Are the significance probabilities of the classes relatively consistent across frames?
• Answer: Yes! Especially recent frames.
• Question 2: Can we take advantage of this consistency?
• Answer: Yes!
Class Histories Algorithm
• sig[n]– A weighted measure of the number of significant
coefficients seen in class n.
• insig[n]– a weighted measure of the number of insignificant
coefficients seen in class n.
• weight– a parameter between 0 and 1 which determines
how heavily to weight more recent frames.
Class Histories Algorithm
• Initialization– Let sig[n] := 0 for all classes n.– Let insig[n] := 0 for all classes n.
• Update(class n, sig coeffs sc, insig ic)– Let sig[n] := weight * (sig[n] + sc)– Let insig[n] := weight * (insig[n] + ic)
• Results from j frames ago will be scaled by (weight)j. Recall that weight < 1.
Bit Allocation
• A constant bit rate does not result in constant quality.
23
25
27
29
31
33
35
1 14 27 40 53 66 79 92 105 118 131 144 157 170 183 196 209 222 235 248 261 274 287 300
Frame
PSNR
0
500
1000
1500
2000
2500
3000
3500
Bytes
Bit Allocation
• We can measure the quality of individual frames with MSE (distortion) or PSNR (Peak Signal-to-Noise Ratio), but how do we measure the overall quality of the whole video?
• Method 1 (MMSE): Minimize the Mean MSE.• Method 2 (MINMAX): Minimize the Maximum
MSE. Leads to more constant quality, which is more visually appealing (less “flicker”).
Bit Allocation
• Advertisement for next week …
• I’ll be presenting my quals talk, which discusses two new bit allocation algorithms for embedded video coding (like GTV):– The MultiStage algorithm– The Ratio algorithm
Bit Allocation
• A sneak peak at next week’s results …
23
25
27
29
31
33
35
1 14 27 40 53 66 79 92 105 118 131 144 157 170 183 196 209 222 235 248 261 274 287 300Frame
PSNR
0
500
1000
1500
2000
2500
3000
3500
Bytes
New Group Test Classes
• Recall that group testing is most effective when the coefficients in each class are independent and approximately equally likely to become significant.
• We want to redesign the classes come closer to this ideal.
• The history modification allows smaller classes to still be coded efficiently.
New Group Test Classes
• There is a correlation between the significance of corresponding coefficients in adjacent frames.
• Thus, the significance of the previous frame’s corresponding coefficient can be used as a classification criteria.
Bit Allocation
• There is also a correlation between the significance of the Y coefficients and the corresponding U and V coefficients.
• Thus, we can use this as a classification criteria as well.
Arithmetic Coding
• We currently use the Group Tester to encode each bit plane. What if we instead encoded the bit planes using an Arithmetic Coder?
• Advantages of Arithmetic Coding:– Simpler– More computationally efficient– Well known– Better performance when probabilities are close to
50%