IP Library Granted Patent US 11,303,889
Granted Patent B2
US 11,303,889 · App. 16/533,580 · Granted Apr 12, 2022

Encoder-side decisions for sample adaptive offset filtering

Inventors: Bin Li (Beijing, CN); You Zhou (Sammamish, WA); Jizheng Xu (Beijing, CN); Chih-Lung Lin (Redmond, WA); Feng Wu (Beijing, CN)
Assignee: Microsoft Technology Licensing, LLC
H04N19/117H04N19/132H04N19/14H04N19/157H04N19/172H04N19/1883H04N19/70H04N19/82H04N19/86
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,303,889
App. No.
16/533,580
Granted
Apr 12, 2022
Kind
B2
Abstract

Disclosed herein are exemplary embodiments of innovations in the area of encoding pictures or portions of pictures (e.g., slices, coding tree units, or coding units) and determining whether and how certain filtering operation should be performed and flagged for performance by the decoder in the bitstream. In particular examples, various implementations for setting the sample adaptive offset (SAO) syntax elements in the H.265/HEVC standard are disclosed. Although these examples concern the H.265/HEVC standard and its SAO filter, the disclosed technology is more widely applicable to other video codecs that involve filtering operations (particularly multi-stage filtering operations) as part of their encoding and decoding processes.

Claims (44)

1. In a computing device implementing a video encoder or image encoder, a method comprising:

splitting, by the video encoder or image encoder, a current picture into multiple portions;

with the video encoder or image encoder, encoding the multiple portions of the current picture, thereby producing encoded data, wherein the encoding the multiple portions of the current picture includes:

for a picture portion, among the multiple portions of the current picture, currently being encoded, measuring encoding efficiency of the video encoder or image encoder, the measured encoding efficiency being a processor time or a number of processing cycles of the video encoder or image encoder;

determining, based at least in part on the measured encoding efficiency of the video encoder or image encoder, whether to apply a second stage of filtering for a multi-stage filtering process to a reconstructed version of the picture portion currently being encoded wherein:

if, according to the measured encoding efficiency, the video encoder or image encoder has already cost too much in terms of the processor time or the number of processing cycles, the second stage of filtering is disabled; and

otherwise, the second stage of filtering is enabled; and

specifying one or more syntax elements that selectively disable application of the second stage of filtering based on the determining; and

outputting, as part of a bitstream, the encoded data, the bitstream including the specified one or more syntax elements that control application of the second stage of filtering.

2. The method of claim 1 , wherein the measured encoding efficiency is the processor time, the processor time having been measured in encoding the picture portion currently being encoded, and wherein the determining is performed by comparing the processor time to a threshold value and determining to disable the second stage of filtering if the processor time exceeds the threshold value.

3. The method of claim 1 , wherein the measured encoding efficiency is the number of processor cycles, the number of processor cycles having been measured in encoding the picture portion currently being encoded, and wherein the determining is performed by comparing the number of processor cycles to a threshold value and determining to disable the second stage of filtering if the number of processor cycles exceeds the threshold value.

4. The method of claim 1 , wherein the measured encoding efficiency is the processor time or the number of processor cycles, the processor time or the number of processor cycles having been measured in encoding one or more previously encoded picture portions.

5. The method of claim 1 , wherein the second stage of filtering for the multi-stage filtering process comprises sample adaptive offset (SAO) filtering, and wherein a first stage of filtering for the multi-stage filtering process comprises applying a deblocking filter.

6. One or more nontransitory computer-readable media storing computer-executable instructions which, when executed by a computing device, cause the computing device to perform operations to control a video encoder or image encoder, the operations comprising:

splitting, by the video encoder or image encoder, a current picture into multiple portions;

with the video encoder or image encoder, encoding the multiple portions of the current picture, thereby producing encoded data, wherein the encoding the multiple portions of the current picture includes:

for a picture portion, among the multiple portions of the current picture, currently being encoded, measuring encoding efficiency of the video encoder or image encoder, the measured encoding efficiency being a processor time or a number of processing cycles of the video encoder or image encoder;

determining, based at least in part on the measured encoding efficiency of the video encoder or image encoder, whether to apply a second stage of filtering for a multi-stage filtering process to a reconstructed version of the picture portion currently being encoded wherein:

if, according to the measured encoding efficiency, the video encoder or image encoder has already cost too much in terms of the processor time or the number of processing cycles, the second stage of filtering is disabled; and

otherwise, the second stage of filtering is enabled; and

specifying one or more syntax elements that selectively disable application of the second stage of filtering based on the determining; and

outputting, as part of a bitstream, the encoded data, the bitstream including the specified one or more syntax elements that control application of the second stage of filtering.

7. The one or more nontransitory computer-readable media of claim 6 , wherein the measured encoding efficiency is the processor time, the processor time having been measured in encoding the picture portion currently being encoded, and wherein the determining is performed by comparing the processor time to a threshold value and determining to disable the second stage of filtering if the processor time exceeds the threshold value.

8. The one or more nontransitory computer-readable media of claim 6 , wherein the measured encoding efficiency is the number of processor cycles, the number of processor cycles having been measured in encoding the picture portion currently being encoded, and wherein the determining is performed by comparing the number of processor cycles to a threshold value and determining to disable the second stage of filtering if the number of processor cycles exceeds the threshold value.

9. The one or more nontransitory computer-readable media of claim 6 , wherein the measured encoding efficiency is the processor time or the number of processor cycles, the processor time or the number of processor cycles having been measured in encoding one or more previously encoded picture portions.

10. The one or more nontransitory computer-readable media of claim 6 , wherein the second stage of filtering for the multi-stage filtering process comprises sample adaptive offset (SAO) filtering, and wherein a first stage of filtering for the multi-stage filtering process comprises applying a deblocking filter.

11. An encoding device that implements a video encoder or image encoder, the encoding device being configured to perform operations comprising:

splitting, by the video encoder or image encoder, a current picture into multiple portions;

with the video encoder or image encoder, encoding the multiple portions of the current picture, thereby producing encoded data, wherein the encoding the multiple portions of the current picture includes:

for a picture portion, among the multiple portions of the current picture, currently being encoded, measuring encoding efficiency of the video encoder or image encoder, the measured encoding efficiency being a processor time or a number of processing cycles of the video encoder or image encoder;

determining, based at least in part on the measured encoding efficiency of the video encoder or image encoder, whether to apply a second stage of filtering for a multi-stage filtering process to a reconstructed version of the picture portion currently being encoded wherein:

if, according to the measured encoding efficiency, the video encoder or image encoder has already cost too much in terms of the processor time or the number of processing cycles, the second stage of filtering is disabled; and

otherwise, the second stage of filtering is enabled; and

specifying one or more syntax elements that selectively disable application of the second stage of filtering based on the determining; and

outputting, as part of a bitstream, the encoded data, the bitstream including the specified one or more syntax elements that control application of the second stage of filtering.

12. The encoding device of claim 11 , wherein the measured encoding efficiency is the processor time, the processor time having been measured in encoding the picture portion currently being encoded, and wherein the determining is performed by comparing the processor time to a threshold value and determining to disable the second stage of filtering if the processor time exceeds the threshold value.

13. The encoding device of claim 11 , wherein the measured encoding efficiency is the number of processor cycles, the number of processor cycles having been measured in encoding the picture portion currently being encoded, and wherein the determining is performed by comparing the number of processor cycles to a threshold value and determining to disable the second stage of filtering if the number of processor cycles exceeds the threshold value.

14. The encoding device of claim 11 , wherein the measured encoding efficiency is the processor time or the number of processor cycles, the processor time or the number of processor cycles having been measured in encoding one or more previously encoded picture portions.

15. The encoding device of claim 11 , wherein the second stage of filtering for the multi-stage filtering process comprises sample adaptive offset (SAO) filtering, and wherein a first stage of filtering for the multi-stage filtering process comprises applying a deblocking filter.

16. The encoding device of claim 11 , wherein the picture portion currently being encoded is a coding tree unit.

17. The encoding device of claim 11 , wherein the second stage of filtering for the multi-stage filtering process comprises sample adaptive offset (SAO) filtering.

18. The method of claim 1 , wherein the picture portion currently being encoded is a coding tree unit.

19. The method of claim 1 , wherein the second stage of filtering for the multi-stage filtering process comprises sample adaptive offset (SAO) filtering.

20. The one or more nontransitory computer-readable media of claim 6 , wherein the picture portion currently being encoded is a coding tree unit.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2019
From: LI, BIN; ZHOU, YOU; XU, JIZHENG; LIN, CHIH-LUNG; WU, FENG
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 050464/0218 →
Continuity (2)
Division 15307746
Related Publication 20190364275A1 · Nov 28, 2019