IP Library › Granted Patent US 12,200,235
Granted Patent B2
US 12,200,235 · App. 18/486,986 · Granted Jan 14, 2025

Optimizing encoding operations when generating encoded versions of a media title

Inventors: Ioannis Katsavounidis (San Jose, CA); Anne Aaron (Menlo Park, CA); Jan De Cock (Cupertino, CA)
Assignee: NETFLIX, INC.
H04N19/42H04N19/103H04N19/142H04N19/177H04N19/179H04N19/146H04N19/147H04N19/154
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 12,200,235
App. No.
18/486,986
Granted
Jan 14, 2025
Kind
B2
Abstract

In various embodiments, a sequence-based encoding application partitions a set of shot sequences associated with a media title into multiple clusters based on at least one feature that characterizes media content and/or encoded media content associated with the media title. The clusters include at least a first cluster and a second cluster. The sequence-based encoding application encodes a first shot sequence using a first operating point to generate a first encoded shot sequence. The first shot sequence and the first operating point are associated with the first cluster. By contrast, the sequence-based encoding application encodes a second shot sequence using a second operating point to generate a second encoded shot sequence. The second shot sequence and the second operating point are associated with the second cluster. Subsequently, the sequence-based encoding application generates an encoded media sequence based on the first encoded shot sequence and the second encoded shot sequence.

Claims (42)

1. A computer-implemented method for encoding media content, the method comprising:

partitioning a media title into a plurality of shot sequences;

generating a plurality of encoded shot sequences based upon the plurality of shot sequences and a first encoder configuration;

generating a set of encoding recipes using an encoder based upon at least one compensated target metric value, and the plurality of encoded shot sequences, wherein each encoding recipe included in the set of encoding recipes includes a plurality of encoding points for the plurality of shot sequences; and

generating a plurality of target encoded media sequences based upon the plurality of shot sequences, a second encoder configuration, and at least one encoding recipe included in the set of encoding recipes, wherein the second encoder configuration is different from the first encoder configuration, and wherein at least a portion of the target encoded media sequences is subsequently streamed to an endpoint device during playback of the media title.

2. The computer-implemented method of claim 1 , wherein generating the plurality of target encoded media sequences comprises generating encoded shot sequences based upon the second encoder configuration and the at least one encoding recipe, and combining different encoded shot sequences to generate at least one target encoded media sequence.

3. The computer-implemented method of claim 1 , further comprising generating the at least one compensated target metric value based upon at least one target metric value and a configuration factor.

4. The computer-implemented method of claim 3 , wherein the configuration factor represents an impact of varying a configuration of the encoder from the first encoder configuration and the second encoder configuration.

5. The computer-implemented method of claim 1 , wherein generating the target encoded media sequences comprises selecting a target metric value and using the plurality of encoding points from an encoding recipe from the set of encoding recipes to generate associated encoded shot sequences.

6. The computer-implemented method of claim 1 , wherein each encoding recipe included in the plurality of encoding recipes is associated with a different target metric value and includes an encoding point for each shot sequence included in the plurality of shot sequences.

7. The computer-implemented method of claim 1 , wherein an encoding point is associated with a target value for a bit rate, a visual quality metric, or a distortion metric.

8. The computer-implemented method of claim 1 , wherein generating the set of encoding recipes, for each compensated target metric value included in a plurality of compensated target metric values, generating an associated encoding recipe based upon a plurality of encoded shot sequences generated by the encoder using the first encoder configuration.

9. The computer-implemented method of claim 8 , wherein generating the associated encoding recipe for a first compensated target metric value included in the plurality of target metric values comprises:

generating a plurality of shot encode points, wherein each shot encode point included in the plurality of shot encode points includes an encoding point, an encoded shot sequence from the plurality of encoded shot sequences, a bit rate, and a distortion level;

generating a plurality of distortion curves by plotting the plurality of shot encode points based upon the bitrate and the distortion level from each shot encode point from the plurality of shot encode points;

evaluating the plurality of shot encode points along the plurality of distortion curves to generate a convex hull;

selecting a shot encode point included in the convex hull that resides closest to the compensated target metric value; and

generating the associated encoding recipe based upon the selected shot encode point.

10. The computer-implemented method of claim 1 , wherein the first encoder configuration and the second encoder configuration specify at least one of a quality parameter of the encoder or a speed parameter of the encoder, and wherein the first encoder configuration specifies at least one of a faster speed or a lower quality than the second encoder configuration.

11. A non-transitory computer-readable medium storing program instructions that, when executed by a processor, configures the processor to perform the steps of:

partitioning a media title into a plurality of shot sequences;

generating a plurality of encoded shot sequences based upon the plurality of shot sequences and a first encoder configuration;

generating a set of encoding recipes using an encoder based upon the plurality of encoded shot sequences; and

generating a plurality of target encoded media sequences based upon the plurality of shot sequences, a second encoder configuration, and at least one encoding recipe included in the set of encoding recipes, wherein the second encoder configuration is different from the first encoder configuration, and wherein at least a portion of the target encoded media sequences is subsequently streamed to an endpoint device during playback of the media title.

12. The non-transitory computer-readable medium of claim 11 , wherein generating the plurality of target encoded media sequences comprises generating encoded shot sequences based upon the second encoder configuration and the at least one encoding recipe, and combining different encoded shot sequences to generate at least one target encoded media sequence.

13. The non-transitory computer-readable medium of claim 11 , wherein the set of encoding recipes is further generated based upon at least one compensated target metric value, and the compensated target metric value comprises at least one of a target bitrate, a target quality score, or a target distortion level.

14. The non-transitory computer-readable medium of claim 11 , wherein the set of encoding recipes is further generated based upon at least one compensated target metric value, and further comprising generating the compensated target metric value based on a configuration factor, wherein the configuration factor represents an impact of varying a configuration of the encoder from the first encoder configuration and the second encoder configuration.

15. The non-transitory computer-readable medium of claim 11 , wherein generating the target encoded media sequences comprises selecting a target metric value and using a plurality of encoding points included in an encoding recipe from the set of encoding recipes to generate associated encoded shot sequences.

16. The non-transitory computer-readable medium of claim 11 , wherein a plurality of encoding points included in an encoding recipe specify how to encode the plurality of shot sequences to generate the plurality of target encoded media sequences.

17. The non-transitory computer-readable medium of claim 11 , wherein generating the set of encoding recipes comprises, for each compensated target metric value included in a plurality of compensated target metric values, generating an associated encoding recipe based upon a plurality of encoded shot sequences generated by the encoder using the first encoder configuration.

18. The non-transitory computer-readable medium of claim 17 , wherein generating the plurality of encoding recipes comprises:

generating the plurality of encoded shot sequences;

performing a plurality of convex hull operations on the plurality of encoded shot sequences to generate a convex hull; and

generating the plurality of encoding recipes based upon the convex hull.

19. The non-transitory computer-readable medium of claim 17 , wherein the first encoder configuration and the second encoder configuration specify at least one of a quality parameter of the encoder or a speed parameter of the encoder, and wherein the first encoder configuration specifies at least one of a faster speed or a lower quality than the second encoder configuration.

20. A system, comprising:

a memory storing instructions; and

a processor that is coupled to the memory and, when executing the instructions, is configured to:

partition a media title into a plurality of shot sequences;

generate a plurality of encoded shot sequences based upon the plurality of shot sequences;

generate a set of encoding recipes using an encoder based upon the plurality of encoded shot sequences; and

generate a plurality of target encoded media sequences based upon the plurality of shot sequences and at least one encoding recipe included in the set of encoding recipes wherein at least a portion of the target encoded media sequences is subsequently streamed to an endpoint device during playback of the media title.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2023
From: KATSAVOUNIDIS, IOANNIS; AARON, ANNE; DE COCK, JAN
To: NETFLIX, INC.
Reel/Frame 065952/0001 →
Continuity (7)
Continuation 17504412 · Oct 18, 2021
Continuation 16054621 · Aug 3, 2018
Continuation In Part 15902976 · Feb 22, 2018
Provisional Application 62550517 · Aug 25, 2017
Provisional Application 62534170 · Jul 18, 2017
Provisional Application 62462873 · Feb 23, 2017
Related Publication 20240163465A1 · May 16, 2024
References Cited (136)
US 5612742A · Krause et al. · 1997 [cited by applicant]
US 7394410B1 · Wegener · 2008 [cited by applicant]
US 8837601B2 · Ronca et al. · 2014 [cited by applicant]
US 8982942B2 · Gao et al. · 2015 [cited by applicant]
US 9036712B1 · Cote et al. · 2015 [cited by applicant]
US 9131202B1 · Espeset et al. · 2015 [cited by applicant]
US 9398301B2 · Ronca et al. · 2016 [cited by applicant]
US 9584700B2 · Morovic et al. · 2017 [cited by applicant]
US 10074382B2 · Hoerich et al. · 2018 [cited by applicant]
US 10097339B1 · Pogue · 2018 [cited by applicant]
US 10666992B2 · Katsavounidis · 2020 [cited by applicant]
US 10742708B2 · Katsavounidis et al. · 2020 [cited by applicant]
US 10778354B1 · Hegar et al. · 2020 [cited by applicant]
US 11153581B1 · Purushe · 2021 [cited by applicant]
US 20020116715A1 · Apostolopoulos · 2002 [cited by applicant]
US 20040161158A1 · Kondo et al. · 2004 [cited by applicant]
US 20050031219A1 · Puri et al. · 2005 [cited by applicant]
US 20050111824A1 · Hunter et al. · 2005 [cited by applicant]
US 20070047639A1 · Ye · 2007 [cited by applicant]
US 20070064793A1 · Wang et al. · 2007 [cited by applicant]
US 20080043832A1 · Barkley et al. · 2008 [cited by applicant]
US 20080232466A1 · Faerber et al. · 2008 [cited by applicant]
US 20090295905A1 · Civanlar et al. · 2009 [cited by applicant]
US 20100189183A1 · Gu et al. · 2010 [cited by applicant]
US 20100202671A1 · Chen et al. · 2010 [cited by applicant]
US 20100290520A1 · Kamisli et al. · 2010 [cited by applicant]
US 20110052087A1 · Mukherjee · 2011 [cited by applicant]
US 20110069939A1 · Choi et al. · 2011 [cited by applicant]
US 20110075734A1 · Sakazume · 2011 [cited by applicant]
US 20110090949A1 · Gu · 2011 [cited by applicant]
US 20110286525A1 · Kamisli et al. · 2011 [cited by applicant]
US 20120147958A1 · Ronca et al. · 2012 [cited by applicant]
US 20120195369A1 · Guerrero · 2012 [cited by applicant]
US 20120330632A1 · Oganov et al. · 2012 [cited by applicant]
US 20130051768A1 · Soroushian et al. · 2013 [cited by applicant]
US 20130089154A1 · Chen et al. · 2013 [cited by applicant]
US 20130223510A1 · Coudurier et al. · 2013 [cited by applicant]
US 20130329781A1 · Su et al. · 2013 [cited by applicant]
US 20140040498A1 · Oyman et al. · 2014 [cited by applicant]
US 20140201324A1 · Zhang et al. · 2014 [cited by applicant]
US 20140219346A1 · Ugur et al. · 2014 [cited by applicant]
US 20140241418A1 · Garbas et al. · 2014 [cited by applicant]
US 20140294362A1 · Pettersson et al. · 2014 [cited by applicant]
US 20150071346A1 · Ronca et al. · 2015 [cited by applicant]
US 20150127337A1 · Heigold et al. · 2015 [cited by applicant]
US 20150179224A1 · Bloch et al. · 2015 [cited by applicant]
US 20150370796A1 · Abramson et al. · 2015 [cited by applicant]
US 20160094802A1 · Thomas et al. · 2016 [cited by applicant]
US 20160212433A1 · Zhu et al. · 2016 [cited by applicant]
US 20160379057A1 · Katsavounidis · 2016 [cited by applicant]
US 20170078376A1 · Coward et al. · 2017 [cited by applicant]
US 20170078686A1 · Coward et al. · 2017 [cited by applicant]
US 20170186147A1 · He et al. · 2017 [cited by applicant]
US 20180007355A1 · Borel et al. · 2018 [cited by applicant]
US 20180041788A1 · Wang et al. · 2018 [cited by applicant]
US 20180063536A1 · Carmel et al. · 2018 [cited by applicant]
US 20180063549A1 · Amer et al. · 2018 [cited by applicant]
US 20180160161A1 · Reznik et al. · 2018 [cited by applicant]
US 20180240502A1 · Katsavounidis · 2018 [cited by applicant]
US 20180241795A1 · Katsavounidis · 2018 [cited by applicant]
US 20180242002A1 · Katsavounidis · 2018 [cited by applicant]
US 20180242015A1 · Katsavounidis · 2018 [cited by applicant]
US 20180302456A1 · Katsavounidis et al. · 2018 [cited by applicant]
US 20180343458A1 · Katsavounidis et al. · 2018 [cited by applicant]
US 20190028529A1 · Katsavounidis · 2019 [cited by applicant]
US 20190028745A1 · Katsavounidis · 2019 [cited by applicant]
CN 1393109A · 2003 [cited by applicant]
CN 1778117A · 2006 [cited by applicant]
CN 102668495A · 2012 [cited by applicant]
CN 102833538A · 2012 [cited by applicant]
CN 103501445A · 2014 [cited by applicant]
CN 103501446A · 2014 [cited by applicant]
CN 103918009A · 2014 [cited by applicant]
CN 103999090A · 2014 [cited by applicant]
CN 104185024A · 2014 [cited by applicant]
CN 104346613A · 2015 [cited by applicant]
CN 104737149A · 2015 [cited by applicant]
CN 104767999A · 2015 [cited by applicant]
CN 105868700A · 2016 [cited by applicant]
CN 106537923A · 2017 [cited by applicant]
EP 2410749A1 · 2012 [cited by applicant]
JP 2005260576A · 2005 [cited by applicant]
WO 0232141A2 · 2002 [cited by applicant]
Non Final Office Action received for U.S. Appl. No. 17/532,869 dated Feb. 26, 2024, 39 pages. [cited by applicant]
Yu et al., “Efficient Rate Control for JPEG-2000”, IEEE Transactions on Circuits and Systems for Video Technology, vol. 16, No. 5, May 1, 2006, pp. 577-589. [cited by applicant]
“Advanced video coding for generic audiovisual services”, I T U -T Rec. H.264 and ISO/IEC 14496-10 (AVG), 2003, 282 pages. [cited by applicant]
“High effciency video coding”, I T U -T Rec. H.265 and ISO/IEC 23008-2 (HEVC), 2013, 317 pages. [cited by applicant]
Grange et al., “VP9 Bitstream & Decoding Process Specification”, Version 0.6, Retrieved from https://storage.googleapis.com/downloads.webmprojecl.org/docs/vp9/vp9-bitstream-specification-v0.6-20160331-draft.pdf, 2016, 1… [cited by applicant]
Suehring, Karsten, “H.264/AVC software”, http://iphome.hhi.de/suehring/tml/, retrieved May 17, 2020, 1 page. [cited by applicant]
“High Efficiency Video Coding (HEVC) I JCT-VG”, Fraunhofer Heinrich Hertz Institute, hllps://hevc.hhi.fraunhofer.de, retrieved Apr. 17, 2020, 2 pages. [cited by applicant]
“webproject / libvpx”, https://github.com/webmprojecl/libvpx, retrieved Apr. 17, 2020, 5 pages. [cited by applicant]
Bjontegaard, Gisle, “Calculation of average psnr differences between rd curves,” I T U -T Q.6/SG16 VCEG 13th meeting, https://www.itu.int/wflp3/av-arch/video-site/0104_Aus/VCEG-M33.doc, 2001, 4 pages. [cited by applicant]
Katsavounidis, Ioannis, “Netflix—“Chimera” video sequence details and scenes”, https://www.cdvl.org/documents/NETFLIX_Chimera_4096x2160_Download_Instructions.pdf, Nov. 2, 2015, 189 pages. [cited by applicant]
Wang et al., “Image Quality Assessment: From Error Visibility to Structural Similarity”, DOI:10.1109/TIP.2003.819861, IEEE Transactions on Image Processing, vol. 13, No. 4, Apr. 2004, pp. 600-612. [cited by applicant]
Sheikh et al., “Image Information and Visual Quality”, DOI:10.1109/TIP.2005.859378, IEEE Transactions on ImageProcessing, vol. 15, No. 2, Feb. 2006, pp. 430-444. [cited by applicant]
Netflix / VMAF, https://github.com/Netflix/vmaf, retrieved on Apr. 17, 2020, 4 pages. [cited by applicant]
Li et al., “Full-Reference Video Quality Assessment by Decoupling Detail Losses and Additive Impairments”, DOI:10.1109/TCSVT.2012.2190473, Circuits and Systems for Video Technology, IEEE Transactions, vol. 22, No. 7, Ju… [cited by applicant]
Winkler, Stefan, “Analysis of Public Image and Video Databases for Quality Assessment”, DOI:10.1109/JSTSP.2012.2215007, IEEE Journal of Selected Topics in Signal Processing, vol. 6, No. 6, Oct. 2012, pp. 516-625. [cited by applicant]
Cortes et al., “Support-Vector Networks”, Machine Learning, vol. 20, 1995, pp. 273-297. [cited by applicant]
Manohara et al., “Optimized shot-based encodes: Now streaming!”, Netflix Technology Blog, https://netflixtechblog.com/optimized-shot-based-encodes-now-streaming-4b9464204830, Mar. 9, 2018, 15 pages. [cited by applicant]
“Mirror/x264”, https://github.com/mirror/x264, retrieved on May 17, 2020, 1 page. [cited by applicant]
“FFmpeg/FFmpeg”, https://github.com/FFmpeg/FFmpeg, retrieved on May 17, 2020, 3 pages. [cited by applicant]
“Videolan/x265”, https://github.com/videolan/x265, Dec. 16, 2020, 2 pages. [cited by applicant]
“Eve-VP9 Maximize the Capabilities of VP9 for Your Video Streaming”, Two Orioles, https://www.twoorioles.com/eve-vp9, retrieved on May 17, 2020, 7 pages. [cited by applicant]
“Per-Title Encode Optimization”, The Netflix tech blog, link: http://techblog.netflix.com/2015/12/per-title-encode-Jptimization.html, Dec. 14, 2015, 17 pages. [cited by applicant]
Wang et al., “Videoset: A large-scale compressed video quality dataset based on JND measurement”, http://dx.doi.org/10.1016/j.jvcir.2017.04.009, Journal of Visual Communication and Image Representation, vol. 46, 2017, p… [cited by applicant]
Mareddy et al., “Simplifying Media Innovation at Netflix with Archer”, Netflix Technology Blog, https://netflixtechblog.com/simplifying-media-innovation-at-netflix-with-archer-3f8cbb0e2bcb, Jun. 20, 2018, 20 pages. [cited by applicant]
Katsavounidis, Ioannis, “Dynamic optimizer—a perceptual video encoding optimization framework”, Netflix Technology Blog, https://netflixtechblog.com/dynamic-optimizer-a-perceptual-video-encoding-optimization-framework-e… [cited by applicant]
Westerink et al., “An Optimal Bit Allocation Algorithm for Sub-Band Coding”, ICASSP-88, International Conference on Acoustics, Speech, and Signal Processing, Apr. 11-14, 1988, pp. 757-760. [cited by applicant]
Riskin, Eve A., “Optimal Bit Allocation via the Generalized BFOS Algorithm”, IEEE Transactions on Information Theory, vol. 37, No. 2, Mar. 1, 1991, pp. 400-402. [cited by applicant]
Wu et al., “Rate-Constrained Picture-Adaptive Quantization for JPEG Baseline Coders”, IEEE International Conference on Acoustics, Speech, and Signal Processing, Apr. 27-30, 1993, pp. 389-392. [cited by applicant]
Sermadevi et al., “Efficient Bit Allocation for Dependent Video Coding”, Proceedings of the Conference on Data Compression, Mar. 23, 2004, 6 pages. [cited by applicant]
Ramchandran et al., “Bit Allocation for Dependent Quantization with Applications to Multiresolution and MPEG Video Coders”, IEEE Transactions on Image Processing, Sep. 1994, vol. 3, No. 5, pp. 533-545. [cited by applicant]
Ortega et al., “Rate-Distortion Methods for Image and Video Compression”, IEEE Signal Processing Magazine, vol. 15, No. 6, Nov. 1998, pp. 23-50. [cited by applicant]
Wiegand et al., “Overview of the H.264/AVC Video Coding Standard”, IEEE Transactions Circuits and Systems for Video Technology, DOI: 10.1109/TCSVT.2003.815165, vol. 13, No. 7, Jul. 2003, pp. 560-576. [cited by applicant]
Zhao et al., “Another example of software replacing hardware: Real-time software MPEG-2 SDI/HD encoding for digital tv broadcasting”, in NAB Broadcast Engineering Conference, 2003, pp. 37-40. [cited by applicant]
“High Quality Video Encoding at Scale”, The Netflix tech blog, link: http://techblog.netnix.com/2015/12/high-qualityvideo-encoding-at-scale.html., Dec. 9, 2015, 8 pages. [cited by applicant]
Richardson, Iain E. G., “H. 264 and MPEG-4 video compression: video coding for next-generation multimedia”, John Wiley & Sons, 2004, 305 pages. [cited by applicant]
R. G. Keys, “Cubic convolution interpolation for digital image processing,” IEEE Trans. on Acoustics, Speech, and Signal Processing, vol. ASSP-29, No. 6, Dec. 1981, pp. 1153-1160. [cited by applicant]
“Lanczos Resampling”, Wikipedia, http://en.wikipedia.org/wiki/Lanczos, retrieved on Feb. 20, 2018, 5 pages. [cited by applicant]
Katsavounidis et al., “Native Resolution Detection of Video Sequences,” SMPTE 2015 Annual Technical Conference and Exhibition, manuscript version dated Sep. 3, 2015, 26 pages. [cited by applicant]
Li et al., “Toward a Practical Perceptual Video Quality Metric”, Nelflix Technology Blog, https://nelflixtechblog.com/toward-a-practical-perceptual-video-quality-metric-653f208b9652, Jun. 6, 2016, 21 pages. [cited by applicant]
Wikipedia, “x264”, https://en.wikipedia.org/wiki/X264, Wikipedia, retrieved on Feb. 20, 2018, 5 pages. [cited by applicant]
Tavakoli et al., “Quality of Experience of Adaptive Video Streaming: Investigation In Service Parameters and Subjective Quality Assessment Methodology”, Signal Processing: Image Communication, vol. 39, 2015, pp. 432-443. [cited by applicant]
“Consumer Digital Video Library”, http://www.cdvl.org/, retrieved on Feb. 20, 2018, 1 page. [cited by applicant]
Sullivan et al., Rate-distortion optimization for video compression; IEEE signal processing magazine, vol. 15, No. 6, 1998, pp. 74-90. [cited by applicant]
Thiede et al., “Peaq-the ITU standard for objective measurement of perceived audio quality,” Journal of the Audio Engineering Society, vol. 48, No. 1/2, 2000, pp. 3-29. [cited by applicant]
Katsavounidis, Ioannis, “Netflix—El Fuente” Video Sequence Details and Scenes, http://www.cdvl.org/documents/ElFuente_summary.pdf, Jul. 28, 2015, 64 pages. [cited by applicant]
Tan et al., “Video Quality Evaluation Methodology and Verification Testing of HEVC Compression Performance”, IEEE Transactions on Circuits and Systems for Video Technology, XP011592174, DOI: 10.1109/TCSVT.2015.2477916, … [cited by applicant]
Hanhart et al., “Calculation of average coding efficiency based on subjective quality scores”, Journal of Visual Communication and Image Representation, Academic Press, XP028661468, http://dx.doi.org/10.1016/j.vcir.2013… [cited by applicant]
Ortega, Antonio, “Optimal bit allocation under multiple rate constraints”, Proceedings of Data Compression conference—DCC '96, 10.1109/DCC.1996.488340, 1996, pp. 349-358. [cited by applicant]
Final Office Action received for U.S. Appl. No. 17/532,869 dated Nov. 2, 2023, 46 pages. [cited by applicant]
Final Office Action received for U.S. Appl. No. 16/053,754 dated Mar. 18, 2024, 14 pages. [cited by applicant]
Non Final Office Action received for U.S. Appl. No. 16/053,754 dated Jul. 17, 2024, 15 pages. [cited by applicant]
Final Office Action received for U.S. Appl. No. 17/532,869 dated Aug. 16, 2024, 47 pages. [cited by applicant]
Notice of Allowance received for U.S. Appl. No. 16/053,754 dated Nov. 15, 2024, 21 pages. [cited by applicant]