IP Library Granted Patent US 11,856,204
Granted Patent B2
US 11,856,204 · App. 17/237,722 · Granted Dec 26, 2023

Macroblocking artifact detection

Inventors: Zhou Wang (Waterloo, CA); Kai Zeng (Kitchener, CA)
Assignee: SSIMWAVE INC.
H04N19/14H04N19/172H04N19/176H04N19/30
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,856,204
App. No.
17/237,722
Granted
Dec 26, 2023
Kind
B2
Abstract

Macroblocking artifacts are assessed in an encoded video. Edges are detected and edge strengths are computed at macroblock boundaries in each decoded frame of the video. The detected edges are paired at horizontal or vertical sides of each macroblock to identify macroblock edge pairs. A macroblocking level of the frame is identified according to the macroblock edge pairs. For instance, for each of the macroblock edge pairs, the edges of the pair are identified as being macroblocking edges if edge strengths of both sides of the pair exceed a significance threshold, and the macroblocking level of the frame is determined by aggregating the macroblocking edges in the frame.

Claims (48)

1. A method for assessing macroblocking artifacts in an encoded video, comprising:

detecting macroblock boundaries and comparing strengths of the detected macroblock boundaries in each decoded frame of the video;

pairing the detected macroblock boundaries at both horizontal or both vertical sides of each macroblock to identify parallel macroblock boundary pairs; and

identifying a macroblocking level of the frame according to the parallel macroblock boundary pairs.

2. The method of claim 1 , further comprising:

for each pair of the parallel macroblock boundary pairs, identifying the macroblock boundaries of the pair as being macroblock boundaries if the strengths of both sides of the pair exceed a significance threshold; and

determining the macroblocking level of the frame by aggregating the strengths of the macroblocking boundaries in the frame.

3. The method of claim 1 , further comprising determining macroblock sizes and boundary positions according to aspects of an encoding configuration used to generate the encoded video.

4. The method of claim 1 , further comprising computing the strengths according to a jump in pixel intensity at the macroblock boundary.

5. The method of claim 4 , further comprising scaling the strengths by a scale factor indicative of human visual luminance masking effect, where the scale factor is determined by the pixel intensity or luminance level at the macroblock boundary.

6. The method of claim 4 , further comprising scaling the strengths by a scale factor indicative of human visual texture masking effect, where the scale factor is determined by a local signal energy or activity measure in proximity to the macroblock boundary.

7. The method of claim 1 , further comprising determining whether the strengths are significant by comparing the strengths with a pre-defined visibility threshold.

8. The method of claim 7 , further comprising defining the visibility threshold as a human visual just noticeable difference (JND) or as the JND multiplied by a scale factor.

9. The method of claim 1 , further comprising creating a macroblocking map for each video frame by:

marking pixel positions of detected macroblocking edges; and

determining an intensity level of each position in the macroblocking map as a measure of the strength at that position.

10. The method of claim 9 , further comprising aggregating the macroblocking map to a frame-level macroblocking strength measure, by computing one or more of average, weighted-average, median, percentile, maximum, or minimum of the intensity level of each position in the macroblocking map.

11. The method of claim 9 , further comprising aggregating the macroblocking map to a frame-level macroblocking spread measure, by computing a percentage of area in the frame that contains macroblock boundaries compared to overall area of the frame.

12. The method of claim 9 , further comprising creating a frame-level overall macroblocking level measure by:

aggregating the macroblocking map to a frame-level macroblocking strength measure, by computing one or more of average, weighted-average, median, percentile, maximum, or minimum of the intensity level of each position in the macroblocking map;

aggregating the macroblocking map to a frame-level macroblocking spread measure, by computing a percentage of area in the frame that contains macroblock boundaries compared to overall area of the frame; and

combining the frame-level macroblocking strength measure and the frame-level macroblocking spread measure using computations including one or more of sum, average, product, weighted-average, median, maximum, or minimum.

13. The method of claim 1 , further comprising aggregating per-frame macroblocking levels to macroblocking levels at over a multi-frame time scale, the time scale including one or more of per group-of-picture, per-scene, per video asset, per-second, per-minute, per-hour, or per arbitrary time period.

14. A system for assessing macroblocking artifacts in an encoded video, comprising:

a computing device programmed to:

detect macroblock boundaries and compute strengths at the macroblock boundaries in each decoded frame of the video;

pair the detected macroblock boundaries at both horizontal or both vertical sides of each macroblock to identify parallel macroblock boundary pairs; and

identify a macroblocking level of the frame according to the parallel macroblock boundary pairs.

15. The system of claim 14 , wherein the computing device is further programmed to:

for each of the parallel macroblock boundary pairs, identify the macroblock boundaries of the pair as being macroblocking boundaries if the strengths of both sides of the pair exceed a significance threshold; and

determine a macroblocking level of the frame by aggregating the macroblocking boundaries in the frame.

16. The system of claim 14 , wherein the computing device is further programmed to determine macroblock sizes and boundary positions according to aspects of an encoding configuration used to generate the encoded video.

17. The system of claim 14 , wherein the computing device is further programmed to compute the strengths according to a jump in pixel intensity at the macroblock boundary.

18. The system of claim 17 , wherein the computing device is further programmed to scale the strengths by a scale factor indicative of human visual luminance masking effect, where the scale factor is determined by the pixel intensity or luminance level at the macroblock boundary.

19. The system of claim 17 , wherein the computing device is further programmed to scale the strengths by a scale factor indicative of human visual texture masking effect, where the scale factor is determined by a local signal energy or activity measure in proximity to the macroblock boundary.

20. The system of claim 14 , wherein the computing device is further programmed to determine whether the strengths are significant by comparing the strengths with a pre-defined visibility threshold.

21. The system of claim 20 , wherein the computing device is further programmed to define the visibility threshold as a human visual just noticeable difference (JND) or as the JND multiplied by a scale factor.

22. The system of claim 14 , wherein the computing device is further programmed to create a macroblocking map for each video frame by operations including to:

mark pixel positions of detected macroblocking edges; and

determine an intensity level of each position in the macroblocking map as a measure of edge strength at that position.

23. The system of claim 22 , wherein the computing device is further programmed to aggregate the macroblocking map to a frame-level macroblocking strength measure, by computing one or more of average, weighted-average, median, percentile, maximum, or minimum of the intensity level of each position in the macroblocking map.

24. The system of claim 22 , wherein the computing device is further programmed to aggregate the macroblocking map to a frame-level macroblocking spread measure, by computing a percentage of area in the frame that contains macroblock boundaries compared to overall area of the frame.

25. The system of claim 22 , wherein the computing device is further programmed to create a frame-level overall macroblocking level measure by operations including to:

aggregate the macroblocking map to a frame-level macroblocking strength measure, by computing one or more of average, weighted-average, median, percentile, maximum, or minimum of the intensity level of each position in the macroblocking map;

aggregate the macroblocking map to a frame-level macroblocking spread measure, by computing a percentage of area in the frame that contains macroblock boundaries compared to overall area of the frame; and

combine the frame-level macroblocking strength measure and the frame-level macroblocking spread measure using computations including one or more of sum, average, product, weighted-average, median, maximum, or minimum.

26. The system of claim 14 , wherein the computing device is further programmed to aggregate per-frame macroblocking levels to macroblocking levels at over a multi-frame time scale, the time scale including one or more of per group-of-picture, per-scene, per video asset, per-second, per-minute, per-hour, or per arbitrary time period.

27. The method of claim 1 , wherein the macroblock boundaries are located at rectangular boundaries according to a block unit size of the encoding applied to the video.

Assignments (3)
SECURITY INTEREST Recorded Jul 14, 2025
From: IMAX CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 071935/0813 →
MERGER Recorded Feb 29, 2024
From: SSIMWAVE INC.
To: IMAX CORPORATION
Reel/Frame 066597/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2021
From: WANG, ZHOU; ZENG, KAI
To: SSIMWAVE, INC.
Reel/Frame 056010/0058 →
Continuity (2)
Provisional Application 63019547 · May 4, 2020
Related Publication 20210344930A1 · Nov 4, 2021