MÉTODO PARA PROCESSAR UM FLUXO DE VÍDEO CODIFICADO USANDO UM PROCESSADOR

BR112022025555B1Active Publication Date: 2026-08-04DOLBY LABORATORIES LICENSING CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
BR112022025555
Authority / Receiving Office
BR · BR
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-03-25
Filing Date
2021-06-15
Publication Date
2026-08-04
Estimated Expiration
2041-06-15

Smart Images

  • Figure 00000065_0000
    Figure 00000065_0000
  • Figure 00000066_0000
    Figure 00000066_0000
  • Figure 00000066_0001
    Figure 00000066_0001
Patent Text Reader

Abstract

Scalable Frame Rate Video Coding. This section discusses methods and systems for frame rate scalability. Support is provided for input and output video sequences with variable frame rates and variable shutter angles within scenes, or for input video sequences with fixed input frame rates and shutter angles, but allowing a decoder to generate video output at a different output frame rate and shutter angle than the corresponding input values. Techniques are also presented that allow a decoder to more computationally efficiently decode a specific target frame rate and shutter angle with backward compatibility from those allowed.
Need to check novelty before this filing date? Find Prior Art

Description

1 / 61 “METHOD FOR PROCESSING AN ENCODED VIDEO STREAM USING A PROCESSOR” Reference to related deposit requests

[001] This application claims the benefit of priority of U.S. Patent Application No. 16 / 901,911, filed June 15, 2020, and U.S. Patent Application No. 17 / 212,701, filed March 25, 2021, which are incorporated herein in their entirety by reference. TECHNOLOGY

[002] This document refers, in general, to images. More particularly, one embodiment of the present invention relates to scalable frame rate video encoding. FUNDAMENTALS

[003] Depending on the usage in question, the term 'dynamic range' (DR) can refer to a capacity of the human visual system (HVS) to perceive a range of intensities (e.g., luminance, luma) in an image, for example, from darker grays (blacks) to brighter whites (reflections). In this sense, DR refers to an intensity 'referred to the scene'. DR can also refer to the capacity of a display device to adequately or approximately render a range of intensities of a particular amplitude. In this sense, DR refers to an intensity 'referred to the display'. Unless a particular sense is explicitly specified as having a particular significance at any point in the description of this document, it should be inferred that the term can be used in either sense, for example, interchangeably.

[004] Depending on the usage in question, the term high dynamic range (HDR) refers to a DR amplitude that exceeds 14 to 15 orders of magnitude of the human visual system (HVS). In practice, the DR by which a human being can simultaneously perceive an extensive amplitude in intensity range can be of Petition 870260034244, dated 04 / 13 / 2026, page 7 / 135 2 / 61 somewhat truncated, in relation to HDR.

[005] In practice, images comprise one or more color components (e.g., luma Y and chroma Cb and Cr) where each color component is represented by a precision of n bits per pixel (e.g., n=8). Using linear luminance encoding, images where n < 8 (e.g., 24-bit JPEG color images) are considered standard dynamic range (SDR) images, while those where n > 8 can be considered high dynamic range images. HDR images can also be stored and distributed using high-precision floating-point formats (e.g., 16-bit), such as the OpenEXR file format developed by Industrial Light and Magic.

[006] Currently, the distribution of high dynamic range video content, such as Dolby Vision from Dolby Labs or HDR10 on Blu-ray, is limited to 4K resolution (e.g., 4096 x 2160 or 3840 x 2160, and similar) and 60 frames per second (fps) by the capabilities of many playback devices. In future versions, it is anticipated that content with resolutions up to 8K (e.g., 7680 x 4320) and 120 fps may be available for distribution and playback. It is desirable that future content types be compatible with existing playback devices in order to simplify an ecosystem of HDR playback content, such as Dolby Vision. Ideally, content producers should be able to adopt and distribute future HDR technologies without also needing to derive and distribute special versions of the content that are compatible with existing HDR devices (such as HDR10 or Dolby Vision).As assessed by the inventors, improved techniques for the scalable distribution of video content, especially HDR content, are desirable.

[007] The approaches described in this section are approaches that can be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, except where indicated otherwise, one should not Petition 870260034244, dated April 13, 2026, page 8 / 135 3 / 61 assume that any approaches in this section qualify as merely prior art by virtue of their inclusion in this section. Similarly, issues identified in relation to one or more approaches should not be assumed to have been recognized in any prior art based on this section, except where otherwise indicated. BRIEF DESCRIPTION OF THE DRAWINGS

[008] One embodiment of the present invention is illustrated by way of example, and without limitation, in the figures of the accompanying drawings, wherein similar numerical references refer to similar elements, and wherein: Figure 1 shows an example process for a video delivery pipeline; Figure 2 shows an exemplary process of combining consecutive original frames to render a target frame rate at a target shutter angle according to an embodiment of this invention; Figure 3 shows an exemplary representation of an input sequence with variable input frame rate and variable shutter angle in a container with a fixed frame rate according to an embodiment of this invention; and Figure 4 shows an exemplary representation for temporal scalability at various frame rates and shutter angles with backward compatibility according to an embodiment of this invention. DESCRIPTION OF EXEMPLARY MODALITIES

[009] In this document, exemplary embodiments relating to frame rate scalability for video encoding are described. In the following description, for explanatory purposes, several specific details are presented to provide a complete understanding of the various embodiments of the present invention. However, it will become apparent that the various embodiments of Petition 870260034244, dated 04 / 13 / 2026, p. 9 / 135 4 / 61 The present invention can be practiced without these specific details. In other cases, well-known structures and devices will not be described in exhaustive detail in order to avoid unnecessarily obscuring, concealing or obscuring embodiments of the present invention. SUMMARY

[010] The exemplary embodiments described in this document refer to frame rate scalability in video encoding. In one embodiment, a system with a processor receives an encoded bitstream comprising encoded video frames, wherein one or more encoded frames are encoded at a first frame rate and a first shutter angle. The processor receives a first indicator that indicates the presence of a group of encoded frames to be decoded at a second frame rate and a second shutter angle; it accesses from the encoded bitstream the values ​​of the second frame rate and the second shutter angle for the group of encoded frames, and generates decoded frames at the second frame rate and the second shutter angle based on the group of encoded frames, the first frame rate, the first shutter angle, the second frame rate, and the second shutter angle.

[011] In a second embodiment, a decoder with a processor: receives an encoded bitstream comprising groups of encoded video frames, wherein all encoded video frames in the encoded bitstream are encoded at a first frame rate; receives a series of combined N frames; receives a value for a baseline frame rate; accesses a group of N consecutive encoded frames, where the / -th encoded frame in the group of N consecutive encoded frames, where / = 1, 2, ^N, represents an average of up to i frames of input video encoded in Petition 870260034244, dated 04 / 13 / 2026, page 10 / 135 5 / 61 an encoder at the baseline frame rate and an i-th shutter angle based on a first shutter angle and the first frame rate; It accesses the encoded bitstream or user input values ​​for a second frame rate and a second shutter angle, to decode the group of N consecutive encoded frames at the second frame rate and the second shutter angle; and generates decoded frames at the second frame rate and the second shutter angle based on the group of N consecutive encoded frames, at the first frame rate, the first shutter angle, the second frame rate, and the second shutter angle.

[012] In a third embodiment, an encoded video stream structure comprises: an encoded image section that includes the encoding of a sequence of video images; and a signaling section that includes the encoding of: a shutter interval time scale parameter that indicates the number of time units that pass in one second; A shutter interval clock tick parameter that indicates a number of time units of a clock operating at the frequency of the shutter interval time scale parameter, where the shutter interval clock tick parameter divided by the shutter interval time scale parameter indicates an exposure duration value; A shutter interval duration indicator that shows whether the exposure duration information is fixed for all temporal sublayers in the encoded image section; and if the shutter interval duration indicator shows that the Petition 870260034244, dated 04 / 13 / 2026, page 11 / 135 6 / 61 exposure duration information is fixed, so a decoded version of the video image sequence for all temporal sublayers in the encoded image section is decoded by computing the exposure duration value based on the shutter interval time scale parameter and the shutter interval clock tick parameter, otherwise the signaling section includes one or more sublayer parameter arrays, where the values ​​in one or more sublayer parameter arrays combined with the shutter interval time scale parameter are used to compute for each sublayer a corresponding sublayer exposure duration value to display a decoded temporal sublayer version of the video image sequence. Example of a video delivery processing pipeline.

[013] Figure 1 describes an exemplary process of a conventional video delivery pipeline (100) showing various stages from video capture to video content display. A sequence of video frames (102) is captured or generated using an image generation block (105). The video frames (102) can be digitally captured (e.g., by digital cameras) or generated by a computer (e.g., using computer animation) to provide video data (107). Alternatively, the video frames (102) can be captured on film by a film camera. The film is converted to a digital format to provide video data (107). In a production phase (110), the video data (107) is edited to provide a video production stream (112).

[014] The production stream video data (112) is then provided to a processor in the block (115) for post-production editing. The post-production editing block (115) may include adjusting or modifying colors or brightness in particular areas of an image to improve image quality or Petition 870260034244, dated 04 / 13 / 2026, page 12 / 135 7 / 61 achieve a particular look for the image according to the creative intent of the video creator. Sometimes this is referred to as “color timing” or “color leveling.” Other editing (e.g., scene selection and sequencing, scene cropping, adding computer-generated visual special effects, judder or blur control, frame rate control, etc.) can be performed on the block (115) to produce a final version (117) of the production for distribution. During post-production editing (115), the video images are viewed on a reference screen (125). After post-production (115), the final production video data (117) can be delivered to the encoding block (120) for downstream delivery to decoding and playback devices such as television sets, signal decoders, cinemas, and the like.In some embodiments, the encoding block (120) may include encoded audio and video, such as those defined by ATSC, DVB, DVD, Blu-ray, and other delivery formats, to generate an encoded bitstream (122). In a receiver, the encoded bitstream (122) is decoded by the decoding unit (130) to generate a decoded signal (132) that represents an identical or near approximation of signal (117). The receiver may be fixed to a target screen (140) which may have completely different characteristics from the reference screen (125). In this case, a display management block (135) may be used to map the dynamic range of the decoded signal (132) to the characteristics of the target screen (140) generating a mapped display signal (137). Scalable coding

[015] Scalable coding is already part of a number of video coding standards, such as MPEG-2, AVC and HEVC. In embodiments of this invention, scalable coding is extended to improve performance and flexibility, especially as it relates to very high resolution HDR content. Petition 870260034244, dated 04 / 13 / 2026, page 13 / 135 8 / 61

[016] As used here, the term “shutter angle” denotes an adjustable shutter setting that controls the proportion of time the film is exposed to light during each frame interval. For example, in a shutter angle-exposure-time mode 360 frame interval (1)

[017] The term originates from legacy, mechanical, rotating shutters; however, modern digital cameras can also adjust their shutter electronically. Filmmakers can use the shutter angle to control the amount of motion blur or shake that is recorded in each frame. Note that instead of using “exposure time,” alternative terms such as “exposure duration,” “shutter interval,” and “shutter speed” can also be used. Similarly, instead of using “frame interval,” the term “frame duration” can be used. Alternatively, “frame interval” can be replaced with “1 / frame rate.” The exposure time value is typically less than or equal to the duration of a frame. For example, a shutter angle of 180 degrees indicates that the exposure time is half the frame duration.In some situations, the exposure time may be longer than the encoded video frame duration, for example, when the encoded frame rate is 120 fps and the frame rate of the associated video content before encoding and display is 60 fps.

[018] This includes, without limitation, a mode where the original content is shot (or generated) at an original frame rate (e.g., 120 fps) with a 360-degree shutter angle. Then, on a receiving device, the video output can be rendered at a variety of frame rates equal to or lower than the original frame rate by judicious / strategic combination of the original frames, for example, by averaging or other operations. Petition 870260034244, dated 04 / 13 / 2026, page 14 / 135 9 / 61 known in the art.

[019] The combination process can be performed with nonlinear encoded signals (e.g., using gamma, PQ, or HLG), but better image quality is obtained by combining frames in the linear light domain by first converting the nonlinear encoded signals into linear light representations, then combining the converted frames, and finally recoding the output with the nonlinear transfer function. This process provides a more accurate simulation of a physical camera exposure than a combination in the nonlinear domain.

[020] In general terms, the process of combining frames can be expressed in terms of original frame rate, target frame rate, target shutter angle, and number of frames to be combined as: n_frames = (target_shutter_angle / 360)*(original_frame_rate / target_frame_rate), (2) which is equivalent to target_shutter_angle = 360*n_frames*(target_frame_rate / original_frame_rate), (3) where n_frames is the number of combined frames, original_frame_rate is the frame rate of the original content, target_frame_rate is the frame rate to be rendered (where target_frame_rate < original_frame_rate), and target_shutter_angle indicates the desired amount of motion blur. In this example, the maximum value of target_shutter_angle is 360 degrees and corresponds to maximum motion blur. The minimum value of target_shutter_angle can be expressed as 360 *(target_frame_rate / original_frame_rate) and corresponds to minimum motion blur. The maximum value of n_frames can be expressed as (original_frame_rate / target_frame_rate). The values ​​of target_frame_rate and target_shutter_angle must be selected so that the value of n_frames is Petition 870260034244, dated 04 / 13 / 2026, page 15 / 135 10 / 61 is a non-zero integer.

[021] In the special case where the original frame rate is 120 fps, equation (2) can be rewritten as n_frames = target_shutter_angle / (3*target_frame_rate), (4) which is equivalent to target_shutter_angle = 3*n_frames*target_frame_rate. (5)

[022] The relationships between the values ​​of target_frame_rate, n_frames, and target_shutter_angle are shown in Table 1 for the case of original_frame_rate = 120 fps. In Table 1, “NA” indicates that the matching combination of a target frame rate and the number of frames combined is not allowed. Table 1: Relationship between target frame rate, combined number of frames, and target shutter angle, for an original frame rate of 120 fps. Frame rate Number of combined frames 5 4 3 2 1 target (fps) Target shutter angle (degrees) 24 360 288 216 144 72 30 NA 360 270 180 90 40 NA NA 360 240 120 60 NA NA NA 360 180

[023] Figure 2 shows an exemplary process of combining consecutive original frames to render a target frame rate at a target shutter angle according to a modality. Given an input sequence (205) at 120 fps and a shutter angle of 360 degrees, the process generates an output video sequence (210) at 24 fps and a shutter angle of 216 degrees by combining three of the input frames into a set of five consecutive frames (e.g., the first three consecutive frames), and discarding the other two. Note that in some modalities, the output frame-01 of (210) can be generated by combining alternative input frames (205), such as frames 1, 3, and 5, or frames 2, 4, and 5, and the like; however, it is expected that the Petition 870260034244, dated 04 / 13 / 2026, page 16 / 135 The 11 / 61 combination of consecutive frames will produce a higher quality video output.

[024] It is desired to support original content with a variable frame rate, for example, to manage artistic and stylistic effects. It is also desired that the variable frame rate input of the original content be packaged in a “container” that has a fixed frame rate to simplify content production, exchange, and distribution. As an example, three approaches are presented on how to represent variable frame rate video data in a fixed frame rate container. For clarity and without limitations, the following descriptions use a fixed 120 fps container, but the approaches can be easily extended to an alternative frame rate container. First mode (variable frame rate)

[025] The first modality is an explicit description of original content having a variable (non-constant) frame rate packaged in a container having a constant frame rate. For example, original content that has a different frame rate, say, at 24, 30, 40, 60, or 120 fps, for different scenes, can be packaged in a container having a constant frame rate of 120 fps. For this example, each input frame can be duplicated either 5x, 4x, 3x, 2x, or 1x to package it into a common 120 fps container.

[026] Figure 3 describes an example of an input video sequence A with variable frame rate and variable shutter angle that is represented in an encoded bitstream B with a fixed frame rate. Then, in a decoder, the decoder reconstructs an output video sequence C at the desired frame rate and shutter angle, which may change from scene to scene. For example, as described in Figure 3, to construct a sequence B, some of the input frames are duplicated, some are encoded as they are found (without duplication), and some are copied four times. Then, to Petition 870260034244, dated 04 / 13 / 2026, page 17 / 135 12 / 61 To construct a sequence C, any frame from each set of duplicate frames is selected to generate output frames, corresponding to the original frame rate and shutter angle.

[027] In this mode, metadata is embedded in the bitstream to indicate the original (baseline) frame rate and shutter angle. Metadata can be signaled using high-level syntax such as a Sequence Parameter Set (SPS), a Picture Parameter Set (PPS), a Slice or Tile Group header, and the like. The presence of metadata allows encoders and decoders to perform beneficial functions, such as: a) An encoder can ignore duplicate frames, thus increasing encoding speed and simplifying processing. For example, all encoding tree units (CTUs) in duplicate frames can be encoded using SKIP mode and reference index 0 in LIST 0 of the reference frames, which refers to a decoder frame from which duplicate frames are copied. (b) A decoder can bypass the decoding of duplicate frames, thus simplifying processing. For example, metadata in the bitstream can indicate that a frame is a duplicate of a previously decoded frame, which the decoder can reproduce by copying itself without decoding the new frame. (c) A playback device can optimize downstream processing by specifying the base frame rate, for example, by adjusting frame rate conversion or noise reduction algorithms.

[028] This mode allows an end user to view content rendered at the frame rate set by the content creators. This mode does not provide backward compatibility with devices that do not support the container's frame rate, for example, 120 fps. Petition 870260034244, dated 04 / 13 / 2026, page 18 / 135 13 / 61

[029] Tables 2 and 3 describe an example raw byte sequence payload (RBSB) syntax for a set of sequence parameters and Tile Group header, where the proposed new syntax elements are described in italics. The remaining syntax follows the syntax in the proposed Versatile Video Codec (VVC) specification (Ref. [2]).

[030] As an example, in SPS (see Table 2), an indicator can be added to enable a variable frame rate.

[031] sps_vfr_enabled_flag equal to 1 specifies that the encoded video sequence (CVS) can contain variable frame rate content. sps_vfr_enabled_flag equal to 0 specifies that the CVS contains fixed frame rate content.

[032] In the tile_group() header (see Table 3), tile_group_vrf_info_present_flag equal to 1 specifies that the syntax elements tile_group_true_fr and tile_group_shutterangle are present in the syntax. tile_group_vrf_info_present_flag equal to 0 specifies that the syntax elements tile_group_true_fr and tile_group_shutterangle are not present in the syntax. When tile_group_vrf_info_present_flag is not present, it is inferred as 0.

[033] tile_group_true_fr indicates the true frame rate of the video data carried in this bitstream.

[034] tile_group_shutterangle indicates the shutter angle corresponding to the true frame rate of the video data carried in that bitstream.

[035] tile_group_skip_flag equal to 1 specifies that the current tile group is copied from another tile group. tile_group_skip_flag equal to 0 specifies that the current tile group is not copied from another tile group.

[036] tile_group_copy_pic_order_cnt_lsb specifies the MaxPicOrderCntLsb image order counting module for the previously decoded image that Petition 870260034244, dated 04 / 13 / 2026, page 19 / 135 14 / 61 the current image from which the current image copies when tile_group_skip_flag is set to 1. Table 2: Example of RBSP parameter set syntax for variable frame rate content. seq parameter set rbsp( ) { Descritor sps max sub layers minus1 u(3) sps reserved zero 5bits u(5) profile tier level( sps max sub layers minus1 ) sps seq parameter set id ue(v) sps vfr enabled flag u (1) sps extension flag u(1) if( sps extension flag ) while( more rbsp data( ) ) sps extension data flag u(1) rbsp trailing bits( )} Tabela 3: Exemplo de sintaxe de cabeçalho de grupo de ladrilhos com suporte para conteúdo com taxa de quadros variável tile_group_header( ) { Descritor tile_group_pic_parameter_set_id ue(v) if( NumTilesInPic > 1 ) { tile_group_address u(v) num_tiles_in_tile_group_minus1 ue(v)} tile_group_type ue(v) tile_group_pic_order_cnt_lsb u(v) if( sps_vfr_enabled_flag) { tile_group_vfr_info_present_flag u(1) if (tile_group_vfr_info_present_flag) { tile_group_true_fr u(9) tile_group_shutterangle u(9)} tile_group_skip_flag u(1)} if( tile_group_skip_flag) tile_group_copy_pic_order_cnt_lsb u(v) else{ ALL OTHER TILE_GROUP_SYNTAX Petition 870260034244, dated 04 / 13 / 2026, p. 20 / 135 15 / 61 } if( num_tiles_in_tile_group_minus1 > 0 ) { offset_len_minus1 ue(v) for( i = 0; i < num_tiles_in_tile_group_minus1; i++ ) entry_point_offset_minus1 [i] u(v)} byte_alignment( )} Second option - fixed frame rate container

[037] The second mode allows for the use case in which the original content having a fixed frame rate and shutter angle can be rendered by a decoder at an alternative frame rate and variable simulated shutter angle, as illustrated in Figure 2. For example, in the case where the original content has a frame rate of 120 fps and a shutter angle of 360 degrees (meaning the shutter is open 1 / 120th of a second), a decoder can render multiple frame rates that are less than or equal to 120 fps. For example, as described in Table 1, to decode 24 fps with a simulated shutter angle of 216 degrees, the decoder can combine three decoded frames and display them at 24 fps. Table 4 expands upon Table 1 and illustrates how to combine different numbers of encoded frames to render at the desired target output frame rates and target shutter angles.The combination of frames can be performed by simple pixel averaging, by weighted pixel averaging, where pixels of a given frame can be weighted more than pixels of other frames and the sum of all weights into one, or by other filter interpolation schemes known in the art. In Table 4, the function Ce(a,b) denotes the combination of coded frames aab, where the combination can be performed by averaging, weighted averaging, filtering, and the like. Table 4: Example of combining input frames at 120 fps to generate output frames at target fps and shutter angle values ​​___________ Entry s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 Code. e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 Petition 870260034244, dated 04 / 13 / 2026, p. 21 / 135 16 / 61 Dec. 120fps @360 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 Dec. 60fps @360 Ce(1,2) Ce(3,4) Ce(5,6) Ce(7,8) Ce(9,10) @180 e1 e3 e5 e7 e9 Dec. 40fps @360 Ce(1,3) Ce(4,6) Ce(7,9) Ce(10,12) @240 Ce(1,2) Ce(4,5) Ce(7,8) Ce(10,11) @120 e1 e4 e7 e10 Dec. 30fps @360 Ce(1,4) Ce(5,8) Ce(9,12) @270 C(1,3) Ce(5,7) Ce(9,11) @180 Ce(1,2) Ce(5,6) Ce(9,10) @90 e1 e5 e9 Dec. 24fps @360 Ce(1,5) Ce(6,10) @288 Ce(1,4) Ce(6,9) @216 Ce(1,3) Ce(6,8) @144 Ce(1,2) Ce(6,7) @72 e1 e6

[038] When the target shutter angle value is less than 360 degrees, the decoder can combine different sets of decoded frames. For example, from Table 1, given an original stream of 120 fps @ 360 degrees, to generate a stream at 40 fps and a shutter angle of 240 degrees, a decoder needs to combine two frames out of the three possible frames. Therefore, it can combine the first and second frames or the second and third frames. The choice of which frames to combine can be described in terms of a “decoding phase” expressed as: decode_phase = decode_phase_idx*(360 / n_frames), (6) where decode_phase_idx indicates the offset index in a set of sequential frames having index values ​​in [0, n_frames_max-1], where n_frames Petition 870260034244, dated 04 / 13 / 2026, page 22 / 135 17 / 61 is given by equation (2), and n_frames_max = orig_frame_rate / target_frame_rate. (7)

[039] In general, decode_phase_idx varies between [0, n_frames_max-n_frames]. For example, for an original sequence at 120 fps and a shutter angle of 360 degrees, for the target frame rate of 40 fps at a shutter angle of 240 degrees, n_frames_max = 120 / 40 = 3. From equation (2), n_frames = 2, therefore, decode_phase_idx varies between [0, 1]. Therefore, decode_phase_idx = 0 indicates selecting frames with index 0 and 1, and decode_phase_idx = 1 indicates selecting frames with index 1 and 2.

[040] In this mode, the variable rendered frame rate intended by the content creator can be signaled as metadata, such as a Supplemental Enhancement Information (SEI) message or as Video Usability Information (VUI). Optionally, the rendered frame rate can be controlled by the receiver or a user. An example of an SEI frame rate conversion message specifying the content creator's preferred frame rate and shutter angle is shown in Table 5. The SEI message can also indicate whether frame combining is performed in the encoded signal domain (e.g., gamma, PQ, etc.) or linear light domain. Note that post-processing requires frame temporary memory in addition to the decoder image temporary memory (DPB). The SEI message can indicate how many additional frame temporary memories are needed, or some alternative method for combining frames.For example, to reduce complexity, frames can be recombined at a reduced spatial resolution.

[041] As described in Table 4, in certain combinations of frame rate and shutter angles (for example, at 30 fps and 360 degrees or at 24 fps and 288 or 360 degrees) a decoder may need to combine more than three frames. Petition 870260034244, dated 04 / 13 / 2026, page 23 / 135 18 / 61 decoded, which increases the number of temporary memory slots required by the decoder. To reduce the burden of additional temporary memory slots in the decoder, in some modes, certain combinations of frame rates and shutter angles may be outside the limits of the allowed decoding parameter set (e.g., by adjusting appropriate encoding Profiles and Levels).

[042] Considering again, as an example, the case of playback at 24 fps, a decoder might decide to display the same frame five times to be displayed at an output frame rate of 120 fps. This is exactly the same as showing the frame a single time at an output frame rate of 24 fps. The advantage of maintaining a constant output frame rate is that a display can run at a constant clock speed, which makes all the hardware much simpler. If the display can dynamically vary the clock speed, then it might make more sense to show the frame only once (for 1 / 24th of a second), rather than repeating the same frame five times (each 1 / 120th of a second). The latter approach might result in slightly superior image quality, better optical efficiency, or better power efficiency. Similar considerations are also applicable to other frame rates.

[043] Table 5 describes an example of SEI message syntax for frame rate conversion according to a modality. Table 5: Example of SEI message syntax that allows conversion of frame rate_________________________________________________________ framerate conversion( payloadSize ) { Descriptor framerate conversion cancel flag u(1) if( frame conversion cancel flag ) { base frame rate u(9) base shutter angle u(9) decode phase idx present flag u(1) if ( decode phase idx present flag ) { decode phase idx u(3)} conversion domain idc u(1) Petition 870260034244, dated 04 / 13 / 2026, p. 24 / 135 19 / 61 in a frame buffer u(3) framerate conversion persistence flag u(1)}}

[044] framerate_conversion_cancel_flag equal to 1 indicates that the SEI message cancels the persistence of any previous frame rate conversion SEI messages in order of output. framerate_conversion_cancel_flag equal to 0 indicates the following frame rate conversion information.

[045] base_frame_rate specifies the desired frame rate.

[046] base_shutter_angle specifies the desired shutter angle.

[047] decode_phase_idx_present_flag equal to 1 specifies that decoding phase information is present. decode_phase_idx_present_flag equal to 0 specifies that decoding phase information is not present.

[048] decode_phase_idx indicates the offset index within a set of sequential frames having index values ​​0..(n_frames_max-1) where n_frames_max = 120 / base_frame_rate. The value of decode_phase_idx must be in the range 0..(n_frames_max-n_frames), where n_frames = base_shutter_angle / (3*base_frame_rate). When decode_phase_idx is not present, it is inferred to be 0.

[049] conversion_domain_idc equal to 0 specifies that frame blending is performed in a linear domain. conversion_domain_idc equal to 1 specifies that frame blending is performed in a non-linear domain.

[050] num_frame_buffers specifies the additional number of temporary frame buffers (not counting DPB).

[051] framerate_conversion_persistence_flag specifies the persistence of the frame rate conversion SEI message for the current layer. framerate_conversion_persistence_flag equal to 0 specifies that the frame rate conversion SEI message applies only to the current decoded image. Petition 870260034244, dated 04 / 13 / 2026, page 25 / 135 20 / 61 Assume that picA is the current image. `framerate_conversion_persistence_flag` equal to 1 specifies that the frame rate conversion SEI message persists for the current layer in output order until one or more of the following conditions are true: - A video sequence towards a new encoded layer (CLVS) from the current layer begins. The bit stream ends. - An image picB in the current layer on an access unit containing a frame rate conversion SEI message that is applicable to the current layer is emitted whose PicOrderCnt(picB) is greater than PicOrderCnt(picA), where PicOrderCnt(picB) and PicOrderCnt(picA) are the PicOrderCntVal values ​​of picB and picA, respectively, immediately after the invocation of the decoding process for the image order count for picB. Third mode - encoded input at multiple shutter angles

[052] A third approach is an encoding scheme that allows the extraction of subframe rates from the bitstream, thus supporting backward compatibility. In HEVC, this is achieved through temporal scaling. Temporal scaling is enabled by assigning different values ​​to a temporal_id syntax element for the decoded frames. In this way, the bitstream can be extracted simply based on temporal_id values. However, the HEVC-style approach to temporal scaling does not enable rendering output frame rates with different shutter angles. For example, a base frame rate of 60 fps extracted from an original 120 fps frame will always have a shutter angle of 180 degrees.

[053] In ATSC 3.0, an alternative method is described in which 60 fps frames having 360-degree shutter angles are emulated as a weighted average of two 120 fps frames. The emulated 60 fps frames are assigned Petition 870260034244, dated 04 / 13 / 2026, page 26 / 135 21 / 61 frames are assigned a temporal_id value of 0 and are combined with alternative original 120 fps frames assigned a temporal_id value of 1. When 60 fps is required, the decoder only needs to decode frames with temporal_id 0. When 120 fps is required, the decoder can subtract each temporal_id = 1 frame (i.e., a 120 fps frame) from a scaled version of each corresponding temporal_id = 0 frame (i.e., emulated 60 fps frame) to recover the corresponding original 120 fps frame that was not explicitly transmitted, thus reconstructing all the original 120 fps frames.

[054] In embodiments of this invention, a novel algorithm is described that supports multiple target frame rates and target shutter angles so that it has backward compatibility (BC). It is proposed to pre-process the original 120 fps content at a base frame rate at various shutter angles. Then, in the decoder, other frame rates at various other shutter angles can be simply derived. One can imagine the ATSC 3.0 approach as a special case of the proposed scheme, where frames with temporal_id=0 carry frames at 60fps@360 shutter angle and frames with temporal_id=1 carry at 60fps@180 shutter angle.

[055] As a first example, as described in Figure 4, consider an input sequence at 120 fps and a shutter angle of 360 degrees used to encode a sequence with a base layer frame rate of 40 fps and shutter angles of 120, 240, and 360 degrees. In this scheme, the encoder computes new frames by combining up to three of the original input frames. For example, encoded frame 2 (En-2), representing the 40 fps, 240-degree input, is generated by combining input frames 1 and 2, and encoded frame 3 (En-3), representing the 40 fps, 360-degree input, is generated by combining frame En-2 with input frame 3. In the decoder, to reconstruct the input sequence, decoded frame 2 (Dec-2) is generated. Petition 870260034244, dated 04 / 13 / 2026, page 27 / 135 22 / 61 by subtracting frame En-1 from frame En-2, and decoded frame 3 (Dec-3) is generated by subtracting frame En-2 from frame En-3. The three decoded frames represent an output at a base frame rate of 120 fps and a shutter angle of 360 degrees. Additional frame rates and shutter angles can be extrapolated using the decoded frames as described in Table 6. In Table 6, the function Cs(a,b) denotes the combination of input frames aab, where the combination can be performed by calculating the average, weighted average, filtering, and the like. Table 6: Example of frame combination with a baseline of 40 fps Quadros de entrada 120fps @360 s1 s2 s3 s4 s5 s6 s7 s8 s9 Quadros codificad os 120fps e1 = s1 e2= Cs(1,2 ) e3 = Cs(1,3 ) e4=s4 e5= Cs(4,5 ) e6= Cs(4,6 ) e7=s7 e8 = Cs(7,8 ) e9 = Cs(7,9 ) Decodific ar 120fps @360 e1 = s1 e2-e1 s2 e3e2= s3 e4 = s4 e5e4= s5 e6-e4 = s6 e7 = s7 e8e7= s8 e9-e8 =s9 Decodific ar 60fps @360 e2 e3-e2+e4 =Cs(3,4) e6-e4=Cs(5,6) e8 = Cs(7,8) e9e8+e1 0 @180 e1 e3-e2=s3 e5-e4=s5 e7 e9-e8 Decodific ar 40fps @360 e3 =Cs(1,3) e6 e9 @240 e2=Cs(1,2) e5 e8 @120 e1=s1 e4 e7 Decodific ar 30fps Petição 870260034244, de 13 / 04 / 2026, pág. 28 / 135 23 / 61 @360 e3+e4 = Cs(1,4) e6-e4+e8 = Cs(5,8) e9e8+e1 2 @270 e3 = Cs(1,3) e6-e5+e7 = Cs(5,7) e9e8+e1 1 @180 e2 = Cs(1,2) e6-e4=Cs(5,6) e9e8+e1 0 @90 e1 e5-e4 = s5 e9-e8 Decodific ar 24fps @360 e3+e5 = Cs(1,5) e6-e5+e9+e10= Cs(6,10) @288 e3+e4 = Cs(1,4) e6-e5+e9 = Cs(6,9) @216 e3 = Cs(1,3) e6-e5+e8 = Cs(6,8) @144 e2 = Cs(1,2) e6-e5+e7=Cs(6,7) @72 e1 = s1 e6-e5 = s6

[056] One advantage of this approach is that, as described in Table 6, all 40 fps versions can be decoded without any additional processing. Another advantage is that other frame rates can be derived at various shutter angles. For example, consider a decoder that decodes at 30 fps and a shutter angle of 360. From Table 4, the output corresponds to the sequence of frames generated by Ce(1,4) = Cs(1,4), Cs(5,8), Cs(9,12), and similar, which corresponds to the decoding sequence also described in Table 6; however, in Table 6, Cs(5,8) = e6-e4+e8. In one embodiment, lookup tables (LUTs) can be used to define how the decoded frames need to be combined to generate an output sequence at the specified output frame rate and emulated shutter angle.

[057] In another example, it is proposed to combine up to five frames in the encoder in order to simplify the extraction of the 24 fps base layer at shutter angles of 72, 144, 216, 288 and 360 degrees, as shown below. It is desirable for film content to be better presented at 24fps on legacy televisions. Table 7: Example of frame combination with a baseline of 24 fps________ _____________________________________ _____________________ Frames s1 s2 s3 s4 s5 s6 s7 s8 s9 Petition 870260034244, dated 04 / 13 / 2026, page 29 / 135 24 / 61 input 120fps @360 Encoding frameworks ão e1 s1 e2 = Cs(1, 2) e3=Cs(1, 3) e4=Cs(1, 4) e5=Cs(1, 5) e6 s6 e7 = Cs(6, 7) e8 = Cs(6, 8) e7 = Cs(6, 9) Decoding 120fps @360 e1 e2-e1 e3-e2 e4-e3 e5-e4 e6 e7-e6 e8-e7 e9-e8 Decode the 60fps @360 e2 e4-e2 e5-e4+e6 e8-e6 e10e8 @180 e1 e3-e42-e6 e8-8 the 40fps @360 e3 e5-e3+e6 e9-e6 @240 e2 e5-e3 e8-e6 @120 e1 e4-e3 e7-e6 Decode the 30fps @360 e4 e5-e4+e8 e10- e8+e1 2 @270 e34-e3-10-e18+e1 @180 e2 e5-e4+e6 e10e8 @90 e1 e5-e4 e9-e8 Decode the 24fps @360 e5 e10 @288 e4 e9 @216 e3 e8 @144 e2 e7 @72 e1 e6

[058] As described in Table 7, if the decode frame rate matches the baseline frame rate (24 fps), then, in each group of Petition 870260034244, of 13 / 04 / 2026, p. 30 / 135 25 / 61 five frames (e.g., e1 to e5) a decoder can simply select a frame at the desired shutter angle (e.g., e2 for a shutter angle of 144 degrees). To decode at a different frame rate and a specific shutter angle, the decoder will need to determine how to appropriately combine (e.g., by addition or subtraction) the decoded frames. For example, to decode at 30 fps and a shutter angle of 180 degrees, the following steps can be followed: a) The decoder can consider a hypothetical encoder transmitting at 120 fps and 360 degrees without any consideration for backward compatibility, so, from Table 1, the decoder needs to combine 2 out of 4 frames to generate the output sequence at the desired frame rate and shutter angle. For example, as described in Table 4, the sequence includes Ce(1,2) = Avg(s1, s2), Ce(5,6) = Avg(s5, s6), and similar, where Avg(s1, s2) can denote the average of frames s1 and s2. b) Given that by definition the coded frames can be expressed as e1 = s1, e2 = Avg(s1, s2), e3 = Avg(s1, s3), and similar, it can easily be derived that the sequence of frames in step a) can also be expressed as: • Ce(1,2) = Avg(s1,s2) = e2 • Ce(5,6) = Avg (s5,s6) = Avg(s1 ,s5) - Avg(s1 ,s4) + s6 = e5-e4+e6 • etc.

[059] As before, the appropriate combination of decoded frames can be pre-computed and made available as a LUT.

[060] One advantage of the proposed method is that it provides options for content creators and users; that is, it allows for editorial / direction choice and user choice. For example, pre-processing content in the encoder allows a base frame rate to be created with various shutter angles. Each shutter angle can be assigned a temporal_id value in the range [0, Petition 870260034244, dated 04 / 13 / 2026, page 31 / 135 26 / 61 (n_frames -1)], where n_frames has a value equal to 120 divided by the base frame rate. (For example, for a base frame rate of 24 fps, temporal_id is in the range [0,4].) The choice may be made to optimize compression efficiency, or for aesthetic reasons. In some use cases, say, during top-down transmission, multiple bitstreams with different base layers may be encoded and stored, and offered to users to select.

[061] In a second example of the disclosed methods, multiple frame rates with backward compatibility can be supported. Ideally, one might wish to enable decoding at 24 frames per second to obtain a 24 fps base layer, at 30 frames per second to obtain a 30 fps sequence, at 60 frames per second to obtain a 60 fps sequence, and so on. If a target shutter angle is not specified, a standard target shutter angle, among those permissible shutter angles for the source and target frame rates, is recommended to be as close as possible to 180 degrees. For example, for the values ​​described in Table 7, the preferred target shutter angles for fps at 120, 60, 40, 30, and 24 are 360, 180, 120, 180, and 216 degrees.

[062] From the previous examples, it can be observed that the choice of how to encode the content can influence the complexity of decoding specific base layer frame rates. One embodiment of this invention consists of adaptively choosing the encoding scheme based on the desired base layer frame rate. For film content, this could be 24 fps, for example, while for sports it could be 60 fps.

[063] An exemplary syntax for embodiment BC of the present invention is shown below and in Tables 8 and 9.

[064] In SPS (Table 8), two syntax elements are added: sps_hfr_BC_enabled_flag, and sps_base_framerate (if sps_hfr_BC_enabled_flag is set equal to 1). Petition 870260034244, dated April 13, 2026, p. 32 / 135 27 / 61

[065] sps_hfr_BC_enabled_flag equal to 1 specifies that a high frame rate with backward compatibility is enabled in the encoded video sequence (CVS). sps_hfr_BC_enabled_flag equal to 0 specifies that a high frame rate with backward compatibility is not enabled in CVS.

[066] sps_base_framerate specifies the base frame rate for the current CVS.

[067] In the tile group header, if sps_hfr_BC_enabled_flag is set to 1, the number_avg_frames syntax is sent in the bitstream.

[068] number_avg_frames specifies the number of frames at the highest frame rate (for example, 120 fps) that are combined to generate the current image at the base frame rate. Table 8: Example of RBSP syntax for input at various shutter angles. seq parameter set rbsp( ) { Descriptor sps max sub layers minus1 u(3) sps reserved zero 5bits u(5) profile tier level( sps max sub layers minus1 ) sps seq parameter set id ue(v) sps hfr BC enabled flag u (1) if( sps hfr BC enabled flag) { u (1) sps base frame rate u (9)} sps extension flag u(1) if( sps extension flag ) while( more rbsp data( ) ) sps extension data flag u(1) rbsp trailing bits( )} Table 9: Example of RBSB syntax for image parameter set input at various shutter angles pic parameter set rbsp( ) { Descriptor pps pic parameter set id ue(v) pps seq parameter set id ue(v) Petition 870260034244, dated April 13, 2026, p. 33 / 135 28 / 61 if( sps hfr BC enabled flag ) number avg frames se(v) rbsp trailing bits( )} Variations in the second mode (fixed frame rate)

[069] The HEVC (H.265) encoding standard (Ref.[1]) and the Versatile Video Coding Standard (commonly referred to as VVC, see Ref.[2]) under development, define a syntax element, pic_struct, which indicates whether an image should be displayed as a frame or as one or more fields, and whether a decoded image should be repeated. A copy of Table D.2, “Interpretation of pic_struct,” from HEVC is provided for ease of reference in the Appendix.

[070] It is important to note that, as assessed by the inventors, the existing pic_struct syntax element can only support a specific subset of content frame rates when using a fixed frame rate encoding container. For example, when using a 60 fps fixed frame rate container, the existing pic_struct syntax, when fixed_pic_rate_within_cvs_flag is equal to 1, can support 30 fps using frame doubling, and 24 fps using frame doubling and frame tripling in an alternating combination on each frame. However, when using a 120 fps fixed frame rate container, the current pic_struct syntax cannot support frame rates of 24 fps or 30 fps. To mitigate this problem, two new methods are proposed: one is an extension of the HEVC version, and the other is not. Method 1: pic_struct without backward compatibility

[071] VVC is still under development, therefore one can design a syntax with maximum freedom. In one embodiment, in pic_struct, it is proposed to remove the options for frame duplication and frame triplication, use a specific value of pic_struct to indicate arbitrary frame repetition, and add a new syntax element, num_frame_repetition_minus2, which specifies the number Petition 870260034244, dated April 13, 2026, p. 34 / 135 29 / 61 frames to repeat. An example of the proposed syntax is described in the following Tables, where Table 10 denotes changes from Table D.2.3 in HEVC and Table 11 denotes changes from Table D.2 shown in the Appendix. Table 10: Example of SEI message syntax for image timing, method 1 pic timing( payloadSize ) { Descriptor if( frame field info present flag ) { pic struct u(4) if( pic struct == 7) u(4) in a frame repetition minus2 u(4) source scan type u(2) duplicate flag u(1)} .... (like the original)

[072] num_frame_repetition_minus2 plus 2 indicates that when fixed_pic_rate_within_cvs_flag is equal to 1, the frame should be displayed num_frame_repetition_minus2 plus 2 times consecutively in displays with a frame update interval equal to DpbOutputElementalInterval[ n ] as given by Equation E-73. Table 11: Example of pic_struct revised according to method 1 Value Display indicated image Restrictions 0 (progressive) Frame field seq flag must be equal to 0 1 Top field field seq flag must be equal to 1 2 Bottom field field seq flag must be equal to 1 3 Top field, bottom field, in this order field_seq_flag must be equal to 0 4 Bottom field, top field, in this order field_seq_flag must be equal to 0 5 Top field, bottom field, top field repeated, in this order field_seq_flag must be equal to 0 6 Bottom field, top field, bottom field repeated, in this order field_seq_flag must be equal to 0 7 Frame repetition field_seq_flag must be equal to 0 fixed_pic_rate_within_cvs_flag must be equal to 1 Petition 870260034244, dated 04 / 13 / 2026, page 35 / 135 30 / 61 8. The upper field paired with the previous lower field in exit order (field_seq_flag) must be equal to 1. 9. The lower field paired with the previous upper field in exit order (field_seq_flag) must be equal to 1. 10. The upper field paired with the next lower field in exit order (field_seq_flag) must be equal to 1. 11. The lower field paired with the next upper field in exit order (field_seq_flag) must be equal to 1. Method 2: Extended version of the HEVC version of pic_struct

[073] AVC and HEVC decoders are already deployed, so one might simply wish to extend the existing pic_struct syntax without removing older options. In one embodiment, a new pic_struct = 13, a “frame repetition extension” value, and a new syntax element, num_frame_repetition_minus4, are added. An example of the proposed syntax is described in Tables 12 and 13. For pic_struct values ​​0 to 12, the proposed syntax is identical to one in Table D.2 (as shown in the Appendix), so these values ​​will be omitted for simplicity. Table 12: Example of SEI message syntax for image timing, method 2 pic timing( payloadSize ) { Descriptor if( frame field info present flag ) { pic struct u(4) if( pic struct == 13) u(4) in a frame repetition minus4 u(4) source scan type u(2) duplicate flag u(1)} ... (like the original)

[074] num_frame_repetition_minus4 plus 4 indicates that when fixed_pic_rate_within_cvs_flag is equal to 1, the frame should be displayed num_frame_repetition_minus4 plus 4 times consecutively in displays with a Petition 870260034244, dated April 13, 2026, p. 36 / 135 31 / 61 frame update interval equal to DpbOutputElementalInterval[ n ] as given by Equation E-73. Table 13: Revised pic_struct example, method 2 Value Display indicated for image Restrictions 0-12 As per Table D. 2 As per Table D. 2 13 Frame repetition extension field_seq_flag must be equal to 0 fixed_pic_rate_within_cvs_flag must be equal to 1

[075] In HEVC, the frame_field_info_present_flag parameter is present in the Video Usability Information (VUI), but the syntax elements pic_struct, source_scan_type, and duplicate_flag are in the SEI pic_timing() message. In one embodiment, it is proposed to move all related syntax elements to the VUI, along with frame_field_info_present_flag. An example of the proposed syntax is described in Table 14. Table 14: Example of VUI parameter syntax with support for the revised pic_struct syntax element. vui parameters( ) { Descriptor u(1) field seq flag u(1) frame field info present flag u(1) if( frame field info present flag) { pic struct u(4) source scan type u(2) duplicate flag u(1)}} Alternative shutter angle information display

[076] When dealing with a variable frame rate, it is desirable to identify both the desired frame rate and the desired shutter angle. In previous video coding standards, “Video and Usability Information” (VUI) provides essential information for the proper display of video content, such as aspect ratio, primary colors, chroma subsampling, etc. Petition 870260034244, dated 04 / 13 / 2026, page 37 / 135 32 / 61 VUI can also provide frame rate information if a fixed frame rate is set to 1; however, shutter angle information is not supported. The modes allow different shutter angles to be used for different time layers, and a decoder can use shutter angle information to refine the aspect ratio on display.

[077] For example, HEVC supports temporal sublayers that essentially use frame loss techniques to transition from a higher frame rate to a lower frame rate. The main problem with this is that the effective shutter angle is reduced with each frame loss. As an example, 60 fps can be derived from a 120 fps video by losing every other frame; 30 fps can be derived by losing 3 out of 4 frames; and 24 fps can be derived by losing 4 out of 5 frames. Assuming a full 360-degree shutter for 120Hz, with simple frame loss, the shutter angles for 60 fps, 30 fps, and 24 fps are 180, 90, and 72 degrees, respectively [3]. Experience has shown that shutter angles below 180 degrees are generally unacceptable, especially with frame rates below 50 Hz.By providing shutter angle information, for example, if it is desired that a display produce a cinematic effect from a 120 Hz video with a reduced shutter angle for each temporal layer, intelligent techniques can be applied to enhance the final look.

[078] In another example, one might wish to support a different temporal layer (say, a 60 fps bitstream substream within a 120 fps bitstream) with the same shutter angle. Then, the main problem is that when a 120 fps video is displayed at 120Hz, even / odd frames have different effective shutter angles. If a display has related information, clever techniques can be applied to improve the final aspect ratio. An example of the proposed syntax is shown in Table 15, where the parameter syntax Petition 870260034244, dated 04 / 13 / 2026, page 38 / 135 33 / 61 of VUI E.2.1 in the HEVC Table (Ref. [1]) is modified to support shutter angle information as noted. Note that in another mode, instead of expressing a shutter_angle syntax in absolute degrees, it can alternatively be expressed as a frame rate ratio relative to shutter speed (see equation (1)). Table 15: Example of VUI parameter syntax with shutter angle support vui parameters( ) { Descritor vui timing info present flag u(1) if( vui timing info present flag ) { vui num units in tick u(32) vui time scale u(32) vui poc proportional to timing flag u(1) if( vui poc proportional to timing flag ) vui num ticks poc diff one minus1 ue(v) vui hrd parameters present flag u(1) if( vui hrd parameters present flag ) hrd parameters( 1, sps max sub layers minus1 )} vui shutter angle info present flag u(1) if( vui shutter angles info present flag) { fixed shutter angle within cvs flag u(1) if (fixed shutter angle with cvs flag) fixed shutter angle u(9) else { for( i = 0; i <= sps max sub layers minus1; i++) { sub layer shutter angle[i] u(9)}}}

[079] vui_shutter_angle_info_present_flag equal to 1 specifies that shutter angle information is present in the vui_parameters() syntax structure. vui_shutter_angle_info_present_flag equal to 0 specifies that shutter angle information is not present in the vui_parameters() syntax structure.

[080] fixed_shutter_angle_within_cvs_flag equal to 1 specifies that Petition 870260034244, dated 04 / 13 / 2026, page 39 / 135 34 / 61 shutter angle information is the same for all temporal sublayers in CVS. A fixed_shutter_angle_within_cvs_flag equal to 0 specifies that shutter angle information may not be the same for all temporal sublayers in CVS.

[081] fixed_shutter_angle specifies the shutter angle in degrees in a CVS. The value of fixed_shutter_angle must be in the range of 0 to 360.

[082] sub_layer_shutter_angle[i] specifies the shutter angle in degrees when HighestTid equals i. The value of sub_layer_shutter_angle[i] must be in the range of 0 to 360. Gradual frame rate update in a sequence of encoded videos (CVS)

[083] Experiments have shown that for HDR content displayed on an HDR screen, to perceive the same motion judder as standard dynamic range (SDR) playback on a 100-nit screen, the frame rate needs to be increased based on the brightness of the content. In most standards (AVC, HEVC, VVC, etc.), the video frame rate can be indicated in the VUI (contained in SPS) using the syntax elements vui_time_scale, vui_num_units_in_tick and elemental_duration_in_tc_minus1[temporal_id_max], for example, as shown in Table 16 below (see Section E.2.1 in Ref.[1]). Table 16: VUI syntax elements for indicating the frame rate in HEVC vui parameters( ) { Descriptor vui timing info present flag u(1) if( vui timing info present flag ) { vui num units in tick u(32) vui time scale u(32) vui poc proportional to timing flag u(1) if( vui poc proportional to timing flag ) vui num ticks poc diff one minus1 ue(v) vui hrd parameters present flag u(1) if( vui hrd parameters present flag ) Petition 870260034244, dated April 13, 2026, p. 40 / 135 35 / 61 hrd parameters( 1, sps max sub layers minus1 )} As discussed in Ref. [1], the ClockTick variable is derived as follows and is named after a clock tick: ClockTick = vui_num_units_in_tick + vui_time_scale picture_duration = ClockTick * ( elemental_duration_in_tc_minus1[i] + 1 ) frame_rate = 1 / pic_duration.

[084] However, the frame rate can only be changed at specific time instants, for example, in HEVC, only at random intra-ray point (IRAP) frames or at the start of a new CVS. For HDR playback, when there is a case of internal fading or external fading, due to the brightness of an image changing frame by frame, there may be a need to change the frame rate or image duration for each image. To allow the frame rate or image duration to update at any time instant (even on a frame-by-frame basis), in one mode, a new SEI message for “gradual refresh rate” is proposed, as shown in Table 17. Table 17: Example of syntax to support a gradual refresh rate in SEI messages. gradual refresh rate( payloadSize ) { Descriptor num units in tick u(32) time scale u(32)}

[085] The new syntax definition num_units_in_tick is the same as vui_num_units_in_tick, and the definition of time_scale is the same as that of vui_time_scale.

[086] num_units_in_tick is the number of time units of a clock operating at the time_scale frequency Hz that corresponds to an increment (referred to as a clock tick) of a clock tick counter. Petition 870260034244, dated April 13, 2026, p. 41 / 135 36 / 61 num_units_in_tick must be greater than 0. A clock tick, in units of seconds, is equal to the quotient of num_units_in_tick divided by time_scale. For example, when the frame rate of a video signal is 25 Hz, time_scale can be equal to 27,000,000 and num_units_in_tick can be equal to 1,080,000 and, consequently, a clock tick can be equal to 0.04 seconds.

[087] time_scale is the number of time units that pass in one second. For example, a time coordinate system that measures time using a 27 MHz clock has a time_scale of 27,000,000. The value of time_scale must be greater than 0.

[088] The image duration time for the image that uses a SEI gradual_refresh_rate SEI message is defined as: picture_duration = num_units_in_tick + time_scale. Shutter angle information signaling via SEI message.

[089] As discussed earlier, Table 15 provides an example of VUI parameter syntax with shutter angle support. As an example, and without limitation, Table 18 lists identical syntax elements, but now as part of an SEI message for shutter angle information. Note that the SEI message is being used only as an example; a similar message can be constructed in other high-level syntax layers, such as the Sequence Parameter Set (SPS), the Image Parameter Set (PPS), the Slice or Tile Group header, and the like. Table 18: Example of SEI message syntax for shutter angle information shutter angle information ( payloadSize ) { Descriptor fixed shutter angle within cvs flag u(1) if (fixed shutter angle within cvs flag) fixed shutter angle u(9) else { for( i = 0; i <= sps _max_ _sub_ layers minus1; i++ ) Petition 870260034244, dated 04 / 13 / 2026, page 42 / 135 37 / 61 sub layer shutter angle[i] u(9)}}

[090] The shutter angle is typically expressed in degrees from 0 to 360 degrees. For example, a shutter angle of 180 degrees indicates that the exposure duration is 1Λ of the frame duration. The shutter angle can be expressed as: shutter_angle = frame_rate * 360 * shutter_speed, where shutter_speed is the exposure duration and frame_rate is the inverse of the frame duration. The frame_rate for the given temporal sublayer Tid can be indicated by num_units_in_tick, time_scale, elemental_duration_in_tc_minus1[Tid]. For example, when fixed_pic_rate_within_cvs_flag[Tid] is equal to 1: frame_rate = time_scale / ( num_units_in_tick * (elemental_duration_in_tc_minus1[Tid] + 1 ) ) .

[091] In some modes, the shutter angle value (e.g., fixed_shutter_angle) cannot be an integer, for example, it may be 135.75 degrees. To allow for greater precision, in Table 21, u(9) (9-bit unsigned) can be replaced by u(16) or some other suitable bit depth (e.g., 12 bits, 14 bits, or more than 16 bits).

[092] In some modes, it may be beneficial to express shutter angle information in terms of “Clock Ticks.” In VVC, the variable ClockTick is derived as follows: ClockTick = num_units_in_tick + time_scale .(8)

[093] So, both frame duration and exposure duration can be expressed as multiples or fractions of clock ticks: exposure_duration = fN*ClockTick ,(9) frame_duration = fM*ClockTick ,(10) where fN and fM are floating-point values ​​and fN < fM. So shutter_angle = frame_rate * 360*shutter_speed = Petition 870260034244, dated 04 / 13 / 2026, page 43 / 135 38 / 61 = (1 / frame_duration)*360*exposure_duration = (11) =(exposure_duration*360) / frame_duration = =(fN*ClockTick*360) / (fM*ClockTick ) = = (fN / fM ) * 360 = (Numerator / Denominator) * 360, where Numerator and Denominator are integers that approximate the ratio fN / fM.

[094] Table 19 shows an example of an SEI message indicated by equation (11). In this example, the shutter angle must be greater than 0 for a real camera. Table 19: Example of an SEI message for shutter angle information based on clock ticks. shutter angle information ( payloadSize ) { Descriptor fixed shutter angle within cvs flag u(1) if (fixed shutter angle within cvs flag) { fixed shutter angle numer minus1 u(16) fixed shutter angle denom minus1 u(16)} else { for( i = 0; i <= sps max sub layers minus1; i++ ) { sub layer shutter angle numer minus1[i] u(16) sub layer shutter angle denom minus1[i] u(16)}}

[095] As discussed earlier, the use of u(16) (16 unsigned bits) for shutter angle precision is described as an example and corresponds to a precision of: 360 / 216 = 0.0055. The precision can be adjusted based on real-world applications. For example, using u(8), the precision is 360 / 28 = 1.4063.

[096] NOTE - Shutter angle is expressed in degrees greater than 0 but less than or equal to 360 degrees. For example, a shutter angle of 180 degrees indicates that the exposure time is ½ the frame time.

[097] fixed_shutter_angle_within_cvs_flag equal to 1 specifies that the shutter angle value is the same for all temporal sublayers in CVS. Petition 870260034244, dated 04 / 13 / 2026, page 44 / 135 39 / 61 fixed_shutter_angle_within_cvs_flag equal to 0 specifies that the shutter angle value cannot be the same for all temporal sublayers in CVS.

[098] fixed_shutter_angle_numer_minus1 plus 1 specifies the numerator used to derive the shutter angle value. The value of fixed_shutter_angle_numer_minus1 must be in the range of 0 to 65535, inclusive.

[099] fixed_shutter_angle_demom_minus1 plus 1 specifies the denominator used to derive the shutter angle value. The value of fixed_shutter_angle_demom_minus1 must be in the range of 0 to 65535, inclusive.

[0100] The value of fixed_shutter_angle_numer_minus1 must be less than or equal to the value of fixed_shutter_angle_demom_minus1.

[0101] The shutterAngle variable in degrees is derived as follows: shutterAngle = 360 * (fixed_shutter_angle_numer_minus1 + 1) + (fixed_shutter_angle_demom_minus1 + 1))

[0102] sub_layer_shutter_angle_numer_minus1[i] plus 1 specifies the numerator used to derive the shutter angle value when HighestTid equals i. The value of sub_layer_shutter_angle_numer_minus1[i] must be in the range of 0 to 65535, inclusive.

[0103] sub_layer_shutter_angle_demom_minus1[i] plus 1 specifies the denominator used to derive the shutter angle value when HighestTid equals i. The value of sub_layer_shutter_angle_demom_minus1[i] must be in the range of 0 to 65535, inclusive.

[0104] The value of sub_layer_shutter_angle_numer_minus1[i] must be less than or equal to the value of sub_layer_shutter_angle_denom_minus1[i].

[0105] The variable subLayerShutterAngle[i] in degrees is derived as follows: subLayerShutterAngle[i] = 360 * (sub_layer_shutter_angle_numer_minus1[i] + 1) + (sub_layer_shutter_angle_demom_minus1[i] + 1) Petition 870260034244, dated 04 / 13 / 2026, page 45 / 135 40 / 61

[0106] In another mode, the frame duration (e.g., frame_duration) can be specified by some other means. For example, in DVB / ATSC, when fixed_pic_rate_within_cvs_flag[Tid] is equal to 1: frame_rate = time_scale / (num_units_in_tick*(elemental_duration_in_tc_ minus1[Tid] + 1 ) ), frame_duration = 1 / frame_rate.

[0107] The syntax in Table 19 and some of the subsequent Tables assumes that the shutter angle will always be greater than zero; however, shutter angle = 0 can be used to signal a creative intent where the content should be displayed without any motion blur. This could be the case for motion graphics, animations, CGI textures, and matte screens, etc. As such, for example, signaling shutter angle = 0 could be useful for mode decision-making in a transcoder (e.g., to select transcoding modes that preserve edges) as well as in a screen that receives shutter angle metadata relative to a CTA interface or 3GPP interface. For example, shutter angle = 0 could be used to indicate to a screen that it should not perform any motion processing such as noise reduction, frame interpolation, and the like.In this mode, the syntax elements fixed_shutter_angle_numer_minus1 and sub_layer_shutter_angle_numer_minus1[i] can be replaced by the syntax elements fixed_shutter_angle_numer and sub_layer_shutter_angle_numer[i], where fixed_shutter_angle_numer specifies the numerator used to derive the shutter angle value. The value of fixed_shutter_angle_numer must be in the range of 0 to 65535, inclusive.

[0108] sub_layer_shutter_angle_numer[i] specifies the numerator used to derive the shutter angle value when HighestTid equals i. The value of sub_layer_shutter_angle_numer[i] must be in the range of 0 to 65535, inclusive. Petition 870260034244, dated 04 / 13 / 2026, page 46 / 135 41 / 61

[0109] In another embodiment, fixed_shutter_angle_denom_minus1 and sub_layer_shutter_angle_denom_minus1[i] can also be replaced by the syntax elements fixed_shutter_angle_denom and sub_layer_shutter_angle_denom[i] as well.

[0110] In one mode, as described in Table 20, the num_units_in_tick and time_scale syntaxes defined in SPS can be reused by setting general_hrd_parameters_present_flag equal to 1 in VVC. In this scenario, the SEI message can be renamed as Exposure Duration SEI message. Table 20: Example of SEI message for signage exposure duration exposure duration information ( payloadSize ) { Descriptor fixed exposure duration within cvs flag u(1) if (fixed shutter angle within cvs flag) { fixed exposure duration numer minus1 u(16) fixed exposure duration denom minus1 u(16)} else { for( i = 0; i <= sps max sub layers minus1; i++ ) { sub layer exposure duration numer minus1[i] u(16) sub layer exposure duration denom minus1[i] u(16)}}

[0111] fixed_exposure_duration_within_cvs_flag equal to 1 specifies that the effective exposure duration value is the same for all time sublayers in CVS. fixed_exposure_duration_within_cvs_flag equal to 0 specifies that the effective exposure duration value cannot be the same for all time sublayers in CVS.

[0112] fixed_exposure_duration_numer_minus1 plus 1 specifies the numerator used to derive the exposure duration value. The value of fixed_exposure_duration_numer_minus1 must be in the range of 0 to 65535, inclusive.

[0113] fixed_exposure_duration_demom_minus1 plus 1 specifies the denominator used to derive the exposure duration value. The value of Petition 870260034244, dated 04 / 13 / 2026, page 47 / 135 42 / 61 fixed_exposure_duration_demom_minus1 must be in the range of 0 to 65535, inclusive.

[0114] The value of fixed_exposure_during_numer_minus1 must be less than or equal to the value of fixed_exposure_duration_demom_minus1.

[0115] The variable fixedExposureDuration is derived as follows: fixedExposureDuration = ( fixed_exposure_duration_numer_minus1 + 1 ) + ( fixed_exposure_duration_demom_minus1 + 1 ) * ClockTicks

[0116] sub_layer_exposure_duration_numer_minus1[i] plus 1 specifies the numerator used to derive the exposure duration value when HighestTid equals i. The value of sub_layer_exposure_duration_numer_minus1[i] must be in the range of 0 to 65535, inclusive.

[0117] sub_layer_exposure_duration_demom_minus1[i] plus 1 specifies the denominator used to derive the exposure duration value when HighestTid equals i. The value of sub_layer_exposure_duration_demom_minus1[i] must be in the range of 0 to 65535, inclusive.

[0118] The value of sub_layer_exposure_duration_numer_minus1[i] must be less than or equal to the value of sub_layer_exposure_duration_demom_minus1[i].

[0119] The variable subLayerExposureDuration[i] for HigestTid equal to ai is derived as follows: subLayerExposureDuration[i] = (sub_layer_exposure_duration_numer_ minus1[i]+1) + (sub_layer_exposure_duration_demom_minus1[i]+1) * ClockTicks.

[0120] In another mode, as shown in Table 21, clockTick can be explicitly defined by the syntax elements expo_num_units_in_tick and expo_time_scale. The advantage is that it does not depend on whether general_hrd_parameters_present_flag is set equal to 1 in VVC as in the previous mode, so clockTick = expo_num_units_in_tick + expo_time_scale (12) Table 21: Example of an SEI message for time signaling. Petition 870260034244, dated 04 / 13 / 2026, page 48 / 135 43 / 61 exhibition exposure duration information ( payloadSize ) { Descriptor expo num units in tick u(32) expo time scale u(32) fixed exposure duration within cvs flag u(1) if (!fixed exposure duration within cvs flag) for( i = 0; i <= sps max sub layers minus1; i++ ) { sub layer exposure duration numer minus1[i] u(16) sub layer exposure duration denom minus1[i] u(16)}}

[0121] expo_num_units_in_tick is the number of time units of a clock operating at the time_scale frequency Hz that corresponds to an increment (denoted as a clock tick) of a clock tick counter. expo_num_units_in_tick must be greater than 0. A clock tick, defined by the clockTick variable, in units of seconds, is equal to the quotient of expo_num_units_in_tick divided by expo_time_scale.

[0122] expo_time_scale is the number of time units that pass in one second.

[0123] clockTick = expo_num_units_in_tick + expo_time_scale.

[0124] NOTE: The two syntax elements: expo_num_units_in_tick and expo_time_scale are defined to measure the exposure duration.

[0125] It is a bitstream conformance requirement that clockTick must be less than or equal to ClockTick when num_units_in_tick and time_scale are present.

[0126] fixed_exposure_duration_within_cvs_flag equal to 1 specifies that the effective exposure duration value is the same for all time sublayers in CVS. fixed_exposure_duration_within_cvs_flag equal to 0 specifies that the effective exposure duration value cannot be the same for all time sublayers in CVS. When fixed_exposure_duration_within_cvs_flag equals 1, the fixedExposureDuration variable is set to clockTick.

[0127] sub_layer_exposure_duration_numer_minus1[i] plus 1 specifies the Petition 870260034244, dated April 13, 2026, p. 49 / 135 44 / 61 numerator used to derive the exposure duration value when HighestTid equals i. The value of sub_layer_exposure_duration_numer_minus1[i] must be in the range of 0 to 65535, inclusive.

[0128] sub_layer_exposure_duration_demom_minus1[i] plus 1 specifies the denominator used to derive the exposure duration value when HighestTid equals i. The value of sub_layer_exposure_duration_demom_minus1[i] must be in the range of 0 to 65535, inclusive.

[0129] The value of sub_layer_exposure_duration_numer_minus1[i] must be less than or equal to the value of sub_layer_exposure_duration_demom_minus1[i].

[0130] The variable subLayerExposureDuration[i] for HigestTid equal to ai is derived as follows: subLayerExposureDuration[i] = (sub_layer_exposure_duration_numer_minus 1[i]+1) + ( sub_layer_exposure_duration_denom_minus1[i]+1) * clockTick.

[0131] As discussed earlier, the syntax parameters sub_layer_exposure_duration_numer_minus1[i] and sub_layer_exposure_duration_denom_minus1[i] can also be replaced by sub_layer_exposure_duration_numer[i] and sub_layer_exposure_duration_denom[i].

[0132] In another mode, as shown in Table 22, the Shutterinterval parameter (i.e., exposure duration) can be defined by the syntax elements sii_num_units_in_shutter_interval and sii_time_scale, where Shutterinterval = sii_num_units_in_shutter_interval * sii_time_scale. (13) Table 22: Example of an SEI message for signaling exposure duration (shutter interval information) shutter interval information ( payloadSize ) { Descriptor sii num units in shutter interval u(32) sii time scale u(32) fixed shutter interval within cvs flag u(1) if ( fixed shutter interval within cvs flag ) for( i = 0; i <= sps max sub layers minus1; i++ ) { sub layer shutter interval numer[i] u(16) sub layer shutter interval denom[i] u(16) Petition 870260034244, dated 04 / 13 / 2026, page 50 / 135 45 / 61 } Semantics of SEI message for shutter interval information

[0133] The shutter interval information SEI message indicates the shutter interval for the associated video content before encoding and displaying - for example, for camera-captured content, the amount of time an image sensor was exposed to produce an image.

[0134] sii_num_units_in_shutter_interval specifies the number of time units of a clock operating at the frequency sii_time_scale Hz that corresponds to an increment of a shutter clock tick counter. The shutter interval, defined by the Shutterinterval variable, in units of seconds, is equal to the quotient of sii_num_units_in_shutter_interval divided by sii_time_scale. For example, when Shutterinterval is equal to 0.04 seconds, sii_time_scale might be equal to 27,000,000 and sii_num_units_in_shutter_interval might be equal to 1,080,000.

[0135] sii_time_scale specifies the number of time units that pass in one second. For example, a time coordinate system that measures time using a 27 MHz clock has a sii_time_scale of 27,000,000.

[0136] When the value of sii_time_scale is greater than 0, the value of Shutterinterval is specified by: Shutterinterval = sii_num_units_in_shutter_interval * sii_time_scale

[0137] Otherwise (the value of sii_time_scale is equal to 0), Shutterinterval should be interpreted as unknown or unspecified.

[0138] NOTE 1 - A Shutterinterval value of 0 may indicate that the associated video content contains screen capture content, computer-generated content, or other content not captured by a camera.

[0139] NOTE 2 - A Shutterinterval value greater than the inverse of the encoded frame rate, the encoded frame interval, may indicate that the encoded frame rate is higher than the frame rate at which the associated video content was created - for example, when the encoded frame rate is 120 Hz and Petition 870260034244, dated 04 / 13 / 2026, page 51 / 135 46 / 61 the frame rate of the associated video content before encoding and display is 60 Hz. The encoded interval for the given temporal sublayer Tid can be indicated by ClockTick and elemental_duration_in_tc_minus1[Tid]. For example, when fixed_pic_rate_within_cvs_flag[Tid] is equal to 1, the picture interval for the given temporal sublayer Tid, defined by the variable PictureInterval[Tid], can be specified by y: PictureInterval[Tid] = ClockTick * ( elemental_duration_in_tc_minus1[Tid] + 1 ) .

[0140] fixed_shutter_interval_within_cvs_flag equal to 1 specifies that the ShutterInterval value is the same for all temporal sublayers in CVS. fixed_shutter_interval_within_cvs_flag equal to 0 specifies that the ShutterInterval value cannot be the same for all temporal sublayers in CVS.

[0141] sub_layer_shutter_interval_numer[i] specifies the numerator used to derive the sublayer shutter interval, defined by the variable subLayerShutterInterval[i], in units of seconds, when HighestTid equals i.

[0142] sub_layer_shutter_interval_denom[i] specifies the denominator used to derive the sublayer shutter interval, defined by the variable subLayerShutterInterval[i], in units of seconds, when HighestTid equals i.

[0143] The value of subLayerShutterInterval[i] for HighestTid equal to ai is derived as follows. When the value of fixed_shutter_interval_within_cvs_flag is equal to 0 and the value of sub_layer_shutter_interval_denom[i] is greater than 0: subLayerShutterInterval[i] = ShutterInterval * sub_layer_shutter_interval_numer[i] * sub_layer_shutter_interval_denom[i]

[0144] Otherwise (the value of sub_layer_shutter_interval_denom[i] is equal to 0), subLayerShutterInterval[i] should be interpreted as unknown or unspecified. When the value of fixed_shutter_interval_within_cvs_flag is not equal to 0, Petition 870260034244, dated 04 / 13 / 2026, page 52 / 135 47 / 61 subLayerShutterinterval[i] = Shutterinterval.

[0145] In an alternative embodiment, instead of using a numerator and a denominator to signal the sublayer shutter interval, a single value is used. An example of this syntax is shown in Table 23. Table 23: Example of an SEI message for shutter interval signaling. shutter interval information ( payloadSize ) { Descriptor sii num units in shutter interval u(32) sii time scale u(32) fixed shutter interval within cvs flag u(1) if ( fixed shutter interval within cvs flag ) for( i = 0; i <= sps max sub layers minus1; i++ ) { sub layer num units in shutter interval[i] u(32)}} Semantics of SEI message for shutter interval information

[0146] The shutter interval information SEI message indicates the shutter interval for the associated video content before encoding and displaying - for example, for content captured by camera, the amount of time an image sensor was exposed to produce an image.

[0147] sii_num_units_in_shutter specifies the number of time units of a clock operating at the frequency sii_time_scale Hz that corresponds to an increment of a shutter clock tick counter. The shutter interval, defined by the Shutterinterval variable, in units of seconds, is equal to the quotient of sii_num_units_in_shutter_interval divided by sii_time_scale. For example, when Shutterinterval is equal to 0.04 seconds, sii_time_scale might be equal to 27,000,000 and sii_num_units_in_shutter_interval might be equal to 1,080,000.

[0148] sii_time_scale specifies the number of time units that pass in one second. For example, a time coordinate system that measures time using a 27 MHz clock has a sii_time_scale of 27,000,000.

[0149] When the value of sii_time_scale is greater than 0, the value of Petition 870260034244, dated April 13, 2026, p. 53 / 135 48 / 61 Shutterinterval is specified by: Shutterinterval = sii_num_units_in_shutter_interval + sii_time_scale

[0150] Otherwise (the value of sii_time_scale is equal to 0), Shutterinterval should be interpreted as unknown or unspecified.

[0151] NOTE 1 - A Shutterinterval value of 0 may indicate that the associated video content contains screen capture content, computer-generated content, or other content not captured by a camera.

[0152] NOTE 2 - A Shutterinterval value greater than the inverse of the encoded picture rate, the encoded picture interval, may indicate that the encoded picture rate is greater than the picture rate at which the associated video content was created - for example, when the encoded picture rate is 120 Hz and the picture rate of the associated video content before encoding and display is 60 Hz. The encoded picture interval for the given temporal sublayer Tid can be indicated by ClockTick and _duration_in_tc_minus1[Tid]. For example, when fixed_pic_rate_within_cvs_flag[Tid] is equal to 1, the picture interval for the given temporal sublayer Tid, defined by the Pictureinterval[Tid] variable, can be specified by: Pictureinterval[Tid] = ClockTick * ( elemental_duration_in_tc_minus1[Tid] + 1 ) .

[0153] fixed_shutter_interval_within_cvs_flag equal to 1 specifies that the Shutterinterval value is the same for all temporal sublayers in CVS. fixed_shutter_interval_within_cvs_flag equal to 0 specifies that the Shutterinterval value cannot be the same for all temporal sublayers in CVS.

[0154] sub_layer_num_units_in_shutter_interval[i] specifies the number of time units of a clock operating at the frequency sii_time_scale Hz that corresponds to an increment of a shutter clock tick counter. The sublayer shutter interval, defined by the variable Petition 870260034244, dated April 13, 2026, p. 54 / 135 49 / 61 subLayerShutterinterval[i], in units of seconds, when HighestTid equals ai, is equal to the quotient of sub_layer_num_units_in_shutter_interval[i] divided by sii_time_scale.

[0155] When the value of fixed_shutter_interval_within_cvs_flag is equal to 0 and the value of sii_time_scale is greater than 0, the value of subLayerShutterInterval[i] is specified by: subLayerShutterInterval[i] = sub_layer_num_units_in_shutter_interval[i] + sii_time_scale

[0156] Otherwise (the value of sii_time_scale is equal to 0), subLayerShutterInterval[i] should be interpreted as unknown or unspecified. When the value of fixed_shutter_interval_within_cvs_flag is not equal to 0,

[0157] subLayerShutterInterval[i] = Shutterinterval.

[0158] Table 24 provides a summary of the six approaches discussed in Tables 18 to 23 for providing an SEI message related to shutter angle or exposure duration. Table 24: Summary of SEI message approaches for signaling shutter angle information Table Number Key Signaling Elements and Dependencies 18 The shutter angle (0 to 360) is explicitly signaled 19 The shutter angle is expressed as a ratio between the Numerator and Denominator values ​​to be scaled by 360 (the clock tick value is implied) 20 The exposure duration is signaled as a ratio between the Numerator and Denominator values ​​(the clock tick value is implied) 21 The exposure duration is signaled as a ratio between the Numerator and Denominator values; the clock tick value is explicitly signaled as a ratio of two values ​​22 The shutter interval information is signaled as the ratio of two values: the number of clock tick units in the exposure and an exposure time scale;Exposure times related to the sublayer are indicated as a ratio of two values. 23 Shutter interval or exposure duration information is indicated as the ratio of two values: the number of units of; Petition 870260034244, dated April 13, 2026, p. 55 / 135 50 / 61 Clock ticks in the exposure and an exposure time scale; Exposure times related to the sublayer are indicated as the number of clock tick units in the exposure in each sublayer. Variable frame rate signaling

[0159] As discussed in US Provisional Application 62 / 883,195, filed August 6, 2019, in many applications it is desirable that a decoder support variable frame rate playback. Frame rate adaptation is typically part of the operations in the hypothetical reference decoder (HRD), as described, for example, in Appendix C of Ref. [2]. In one embodiment, it is proposed to signal via SEI message or other means a syntax element that defines an image presentation time (PPT) as a function of a 90 kHz clock. This is the type of decoder image temporary memory output time (DPB) repetition as specified in the HRD, but now using a ClockTicks precision of 90 kHz as specified in the MPEG-2 system.The benefits of this SEI message are: a) if HRD is not enabled, the PPT SEI message can still be used to indicate the timing for each frame; b) it can facilitate the translation of bitstream timing and system timing.

[0160] Table 25 describes an example of the proposed PPT timing message syntax, which corresponds to the syntax of the presentation timestamp (PTS) variable being used in MPEG-2 (H. 222) transport (Ref.[4]). Table 25: Example of syntax for presentation time message, image_________________________________________________________________ picture presentation time ( payloadSize ) { PPT descriptor u(33)} PPT (image display time)

[0161] - Presentation times should be related to decoding times as follows: PPT is a 33-bit number encoded in three Petition 870260034244, dated 04 / 13 / 2026, page 56 / 135 51 / 61 separate fields. The same indicates the presentation time, tpn(k), in the target system decoder of a k-unit presentation of n elementary stream. The PPT value is specified in units of the system clock frequency period divided by 300 (yielding 90 kHz). The image presentation time is divided from the PPT according to the equation below. PPT(k) = ((system_clock_frequency x tpn(k)) / 300)%233 where tpn(k) is the presentation time of the display unit Pn(k). Shutter interval messages in stroke

[0162] In one embodiment, if a shutter interval information (SII) SEI message exists for any image in a coded video sequence (CVS), then it is suggested that it should exist in the first access unit of the CVS. Unlike HEVC, a temporal index (which is used to identify a sublayer index) does not exist in a single-layer AVC bitstream. To address this issue when the shutter interval is not fixed in a CVS, it is proposed that a shutter interval information SEI message should be present for each image to assign a value to sii_sub_layer_idx to each image in order to identify the sublayer index of the current image. Other shutter interval-related information should be presented only for a first access unit of the CVS and persist until a new CVS starts or the bitstream ends.

[0163] In AVC, an access unit is defined as a set of NAL units that are consecutive in decoding order and contain exactly one primary encoded image. In addition to the primary encoded image, an access unit may also contain one or more redundant encoded images, an auxiliary encoded image, or other NAL units not containing slices or slice data partitions of an encoded image. Decoding an access unit always results in an image Petition 870260034244, dated 04 / 13 / 2026, page 57 / 135 52 / 61 decoded.

[0164] Example syntax element values ​​for the case where the shutter interval is fixed for CVS are shown in Table 26. Example syntax element values ​​for the first shutter interval information SEI message and subsequent ones for the case where the shutter interval may be different for different sublayers are shown in Table 27. In Tables 26 and 27, cells with “(none)” indicate that no value is signaled in the shutter interval information SEI message for the corresponding syntax element. Table 26: Example of SEI message syntax element values ​​for shutter interval information for fixed shutter interval for IDR access unit. syntax element 1a SEI message of shutter interval information in CVS sii_sub_layer_idx 0 shutter_interval_info_present_flag 1 sii_time_scale u(32) fixed_s shutter_interval_within_cvs_flag 1 sii_num_units_in_shutter_interval u(32) sii_max_sub_layers_minus 1 (none) sub_layer_num_units_in_shutter_interval[ 1 ] (none) Table 27: Example of SEI message syntax element values ​​for shutter interval information for non-fixed shutter interval for IDR access unit. Syntax element 1st SEI message of shutter interval information in CVS Subsequent SEI messages of shutter interval information in CVS sii_sub_layer_idx 0 0 ue(v) > 0 shutter_interval_info_present_flag 1 0 (none) sii_time_scale u(32) (none) (none) fixed_shutter_interval_within_cvs_flag 0 (none) (none) Petition 870260034244, dated April 13, 2026, p. 58 / 135 53 / 61 sii_num_units_in_shutter_interval (none) (none) (none) sii_max_sub_layers_minus1 u(3) (none) (none) sub_layer_num_units_in_shutter_interval[ i ] u(32) (none) (none)

[0165] Table 28 describes an example syntax structure for SEI messages from SII in AVC. Table 28: SII SEI message syntax exemplifying in AVC shutter_interval_info( payloadSize ) { C Descriptor sii_sub_layer_idx 5 ue(v) if( sii_sub_layer_idx = = 0 ) shutter_interval_info_present_flag 5 u(1) if( shutter_interval_info_present_flag ) sii_time_scale 5 u(32) fixed_shutter_interval_within_cvs_flag 5 u(1) if( fixed_shutter_interval_within_cvs_flag ) sii_num_units_in_shutter_interval 5 u(32) else { sii_max_sub_layers_minus 1 5 u(3) for( i = 0; i <= sii_max_sub_layers_minus1; i++ ) sub_layer_num_units_in_shutter_interval[ i ] 5 u(32)}}}}

[0166] The SEI shutter interval information message indicates the shutter interval for the associated video source images before encoding and displaying, for example, for content captured by camera, the shutter interval is the amount of time an image sensor is exposed to the procedure for each source image.

[0167] sii_sub_layer_idx specifies the temporal shutter interval sublayer index of the current image. The value of sii_sub_layer_idx must be equal to 0 when the current access unit is the first access unit of the CVS. When fixed_shutter_interval_within_cvs_flag is equal to 1, the value of sii_sub_layer_idx must Petition 870260034244, dated 04 / 13 / 2026, page 59 / 135 54 / 61 must be equal to 0. Otherwise, if fixed_shutter_interval_within_cvs_flag is equal to 0, the value of sii_sub_layer_idx must be less than or equal to the value of sii_max_sub_layers_minus 1.

[0168] shutter_interval_info_present_flag equal to 1 indicates that the syntax elements sii_time_scale, fixed_shutter_interval_within_cvs_flag, and sii_num_units_in_shutter_interval or sii_max_sub_layers_minus 1 and sub_layer_num_units_in_shutter_interval[i] are present. A value of 0 for shutter_interval_info_present_flag indicates that the syntax elements sii_time_scale, fixed_shutter_interval_within_cvs_flag, sii_num_units_in_shutter_interval, sii_max_sub_layers_minus1, and sub_layer_num_units_in_shutter_interval[i] are not present. The value of shutter_interval_info_present_flag should be 1 when the current access unit is the first access unit of the CVS. Otherwise, if the current access unit is not the first access unit of the CVS, the value of shutter_interval_info_present_flag should be 0.

[0169] sii_time_scale specifies the number of time units that pass in one second. The value of sii_time_scale must be greater than 0. For example, a time coordinate system that measures time using a 27 MHz clock has a sii_time_scale of 27000000.

[0170] fixed_shutter_interval_within_cvs_flag equal to 1 specifies that the indicated shutter interval is the same for all images in CVS. fixed_shutter_interval_within_cvs_flag equal to 0 specifies that the indicated shutter interval may not be the same for all images in CVS.

[0171] sii_num_units_in_shutter_interval, when fixed_shutter_interval_within_cvs_flag is equal to 1, specifies the number of time units in a clock operating at the frequency sii_time_scale Hz that corresponds to the indicated shutter interval of each image in CVS. The value 0 can be used Petition 870260034244, dated April 13, 2026, pp. 60-135 55 / 61 to indicate that the associated video content contains screen capture content, computer-generated content, or other content not captured by a camera.

[0172] The indicated shutter interval, denoted by the variable shutterlinterval, in units of seconds, is equal to the quotient of sii_num_units_in_shutter_interval divided by sii_time_scale. For example, to represent a shutter interval equal to 0.04 seconds, sii_time_scale could be equal to 27000000 and sii_num_units_in_shutter_interval could be equal to 1080000.

[0173] sii_max_sub_layers_minusl_plus_1 specifies the maximum number of temporal shutter interval sublayer indices that can be present in the CVS.

[0174] sub_layer_num_units_in_shutter_interval[i], when present, specifies the number of time units of a clock operating at the frequency sii_time_scale_Hz that corresponds to the shutter interval of each image in CVS to which the value of sii_sub_layer_idx is equal to i. The sublayer shutter interval for each image to which the value of sii_sub_layer_idx is equal to i, denoted by the variable subLayerShutterInterval[i], in units of seconds, is equal to the quotient of sub_layer_num_units_in_shutter_interval[i] divided by sii_time_scale.

[0175] The variable subLayerShutterInterval[i], corresponding to the indicated shutter interval of each image in the sublayer representation with Temporalld equal to ai in CVS, is therefore derived as follows: if( fixed_shutter_interval_within_cvs_flag ) subLayerShutterInterval[ i ] = sii_num_units_in_shutter_interval + sii_time_scale else subLayerShutterInterval[ i ] = sub_layer_num_units_in_shutter_interval[ i ] + sii timescale Petition 870260034244, dated April 13, 2026, pp. 61-135 56 / 61

[0176] When a shutter interval information SEI message is present for any access unit in a CVS, a shutter interval information SEI message must be present for the IDR access unit that is the first access unit in the CVS. All shutter interval information SEI messages that apply to the same access unit must have the same content.

[0177] sii_time_scale and fixed_shutter_interval_within_cvs_flag persists from the first CVS access unit until a new CVS is started or the bitstream ends.

[0178] When the value of fixed_shutter_interval_within_cvs_flag is equal to 0, a shutter interval information SEI message must be present for each image in the CVS. When present, sii_num_units_in_shutter_interval, sii_max_sub_layers_minus1 and sub_layer_num_units_in_shutter_interval[i] persist from the first access unit of the CVS unit until a new CVS starts or the bitstream ends. References

[0179] Each of the references listed in this document is incorporated in its entirety by way of reference.

[0180] [1] High-efficiency video coding, H. 265, H-series, Motion video coding, ITU, (02 / 2018).

[0181] [2] B. Bross, J. Chen and S. Liu, “Versatile Video Coding (Draft 5),” JVET Output Document, JVET-N1001, v5, downloaded by upload on May 14, 2019.

[0182] [3] C. Carbonara, J. DeFilippis, M. Korpi, “High Frame Rate Capture and Production, SMPTE 2015 Annual Technical Conference and Exhibition, 26 a 29 de outubro de 2015.

[0183] [4] Infrastructure of audiovisual services - Transmission multiplexing and synchronization, H.222.0, Series H, Generic coding of moving pictures and Petição 870260034244, de 13 / 04 / 2026, pág. 62 / 135 57 / 61 associated audio information: Systems, ITU, 08 / 2018. Implementação exemplificadora de sistema computacional

[0184] The embodiments of the present invention may be implemented with a computer system, systems configured as a set of electronic circuits and components, an integrated circuit (IC) device such as a microcontroller, a field-programmable gate array (FPGA), or other configurable or programmable logic device (PLD), a discrete-time or digital signal processor (DSP), an application-specific IC (ASIC), and / or apparatus that includes one or more of these systems, devices, or components. The computer and / or IC may perform, control, or execute instructions relating to frame rate scalability, such as those described herein. The computer and / or IC may compute any of a variety of parameters or values ​​relating to the frame rate scalability described herein. The image and video embodiments may be implemented in hardware, software, firmware, and various combinations thereof.

[0185] Certain implementations of the invention comprise computational processors that execute software instructions that induce the processors to perform a method of the invention. For example, one or more processors on a screen, an encoder, a signal decoder, a transcoder, or the like may implement methods related to frame rate scalability as described above by executing software instructions in a program memory accessible to the processors. Embodiments of the invention may also be provided in the form of a program product. The program product may comprise any non-transient, tangible media that carries a set of computer-readable signals comprising instructions that, when executed by a data processor, induce the data processor to perform a method of the invention. The products of Petition 870260034244, dated 04 / 13 / 2026, page 63 / 135 58 / 61 Programs according to the invention may be in any of a wide variety of non-transient and tangible forms. The program product may comprise, for example, physical media such as magnetic data storage media including floppy disks, hard disk drives, optical data storage media including CD-ROMs, DVDs, electronic data storage media including ROMs, flash RAM, or the like. The computer-readable signals in the program product may optionally be compressed or encrypted.

[0186] When a component (for example, a software module, processor, assembly, device, circuit, etc.) is referred to above, except where otherwise indicated, the reference to that component (including a reference to a “means”) shall be interpreted as including equivalents of that component – ​​any component that performs the function of the described component (for example, that is functionally equivalent), including components that are not structurally equivalent to the disclosed structure that performs the function in the illustrated exemplary embodiments of the invention. Equivalents, Extensions, Alternatives and Miscellaneous

[0187] Therefore, exemplary embodiments relating to frame rate scalability are described. In the preceding descriptive report, embodiments of the present invention were described with reference to several specific details that may vary from implementation to implementation. Therefore, the sole and exclusive indicator of what the invention is and what the applicants intend as the invention is the set of claims published from this application, in the specific form in which those claims are published, including any subsequent amendments. Any definitions expressly presented herein for terms contained in those claims shall supersede the meaning of those terms as used in the claims. Therefore, no Petition 870260034244, dated April 13, 2026, pp. 64-135 59 / 61 Any limitation, element, property, feature, advantage, or attribute not expressly mentioned in a claim shall in no way limit the scope of that claim. Correspondingly, the descriptive report and drawings should be considered in an illustrative rather than restrictive sense. Appendix

[0188] This Appendix provides a copy of Table D.2 and associated information relating to pic_struct from the H.265 specification (Ref. [1]). Table D.2 - Interpretation of pic_struct Value Display indicated image Restrictions 0 (progressive) Frame field seq flag must be equal to 0 1 Top field field seq flag must be equal to 1 2 Bottom field field seq flag must be equal to 1 3 Top field, bottom field, in this order field_seq_flag must be equal to 0 4 Bottom field, top field, in this order field_seq_flag must be equal to 0 5 Top field, bottom field, top field repeated, in this order field_seq_flag must be equal to 0 6 Bottom field, top field, bottom field repeated,In this order, field_seq_flag must equal 0. 7. Frame duplication: field_seq_flag must equal 0. fixed_pic_rate_within_cvs_flag must equal 1. 8. Frame triplication: field_seq_flag must equal 0. fixed_pic_rate_within_cvs_flag must equal 1. 9. Upper field paired with the previous lower field in output order: field_seq_flag must equal 1. 10. Lower field paired with the previous upper field in output order: field_seq_flag must equal 1. 11. Upper field paired with the next lower field in output order: field_seq_flag must equal 1. 12. Lower field paired with the next upper field in output order: field_seq_flag must equal 1. Semantics of the pic_struct syntax element

[0189] pic_struct indicates whether an image should be displayed as a frame or Petition 870260034244, dated 04 / 13 / 2026, page 65 / 135 60 / 61 as one or more fields and, for frame display when fixed_pic_rate_within_cvs_flag is equal to 1, may indicate a frame doubling or triplication repetition period for displays that use a fixed frame update interval equal to DpbOutputElementalInterval[n] as given by Equation E-73. The interpretation of pic_struct is specified in Table D.2. Pic_struct values ​​not listed in Table D.2 are reserved for future use by ITU-T | ISO / IEC and should not be present in bitstreams that conform to this version of this Descriptive Report. Decoders should ignore reserved pic_struct values.

[0190] When present, there is a bitstream conformity requirement that the value of pic_struct must be constrained so that exactly one of the conditions is true: The value of pic_struct is 0, 7, or 8 for all images in CVS. The value of pic_struct is equal to 1, 2, 9, 10, 11, or 12 for all images in CVS. The value of pic_struct is 3, 4, 5, or 6 for all images in CVS.

[0191] When fixed_pic_rate_within_cvs_flag is equal to 1, a frame duplication is indicated by pic_struct equal to 7, which indicates that the frame should be displayed twice consecutively in displays with a frame update interval equal to DpbOutputElementalInterval[ n ] as given by Equation E73, a frame triplication is indicated by pic_struct equal to 8, which indicates that the frame should be displayed three times consecutively in displays with a frame update interval equal to DpbOutputElementalInterval[ n ] as given by Equation E-73.

[0192] NOTE 3 - Frame doubling can be used to facilitate display, for example, of 25 Hz progressive scan video on a 50 Hz progressive scan display or a 30 Hz progressive scan video. Petition 870260034244, dated 04 / 13 / 2026, page 66 / 135 61 / 61 on a 60 Hz progressive scan display. Using alternating frame duplication and frame triplication, one can use a combination of each other frame to facilitate the display of a 24 Hz progressive scan video on a 60 Hz progressive scan display.

[0193] The nominal vertical and horizontal sampling locations of samples in upper and lower fields for 4:2:0, 4:2:2 and 4:4:4 chroma formats are shown in Figure D.1, Figure D.2, and Figure D.3, respectively.

[0194] The association indicators for fields (pic_struct equals 9 to 12) provide suggestions for associating fields of complementary parity together as frames. The parity of a field can be higher or lower, and the parity of two fields is considered complementary when the parity of one field is higher and the parity of the other field is lower.

[0195] When frame_field_info_present_flag is equal to 1, it is a bitstream conformance requirement that the restrictions specified in the third column of Table D. 2 must apply.

[0196] NOTE 4 - When frame_field_info_present_flag is equal to 0, then in many cases default values ​​can be inferred or indicated by other means. In the absence of other indications of the intended screen type of an image, the decoder should infer the value of pic_struct as equal to 0 when frame_field_info_present_flag is equal to 0. Petition 870260034244, dated April 13, 2026, p. 67 / 135

Claims

1 / 3 CLAIMS 1. A method for processing an encoded video stream using a processor, wherein the method is CHARACTERIZED in that it comprises: receiving an encoded bitstream comprising an encoded image section including an encoding of a sequence of video images and a signaling section including shutter interval parameters, wherein the shutter interval parameters comprise: a shutter interval time scale parameter indicating the number of time units that pass in one second; a fixed shutter interval duration flag indicating whether shutter interval duration information is fixed for all images in the encoded image section; and if the fixed shutter interval duration flag indicates that the shutter interval duration information is fixed,then the signaling section includes a shutter interval clock tick parameter indicating a number of time units of a clock operating at the frequency of the shutter interval time scale parameter, wherein the shutter interval clock tick parameter divided by the shutter interval time scale parameter indicates an exposure duration value for all video images in the encoded image section; otherwise, the shutter interval parameters include an arrangement of one or more sublayer shutter interval clock tick parameters indicating a number of time units of a clock at the frequency of the shutter interval time scale parameter for one or more sublayers in the encoded image section, wherein, for a first sublayer in the encoded image section, a sublayer shutter interval clock tick parameter Petition 870260034244, dated 04 / 13 / 2026,p. 68 / 135 2 / 3 corresponding divided by the shutter interval time scale parameter indicates the exposure duration value for all video images in the first sublayer of the encoded image section; and decode the sequence of video images based on the shutter interval parameters.

2. Method according to claim 1, CHARACTERIZED in that the shutter interval parameters further include a shutter interval sublayer index parameter that specifies a sublayer index of a current image.

3. Method according to claim 2, CHARACTERIZED in that the encoded image section comprises two or more access units, and the shutter interval sublayer index parameter is 0 for a first access unit among the two or more access units and non-zero otherwise.

4. Method, according to claim 2, CHARACTERIZED in that the shutter interval sublayer index parameter is 0 when the fixed shutter interval duration flag indicates that the shutter interval duration information is fixed.

5. Method, according to claim 1, CHARACTERIZED in that if the fixed shutter interval duration flag indicates that the shutter interval duration information is not fixed, then the flag section includes a parameter that indicates a total number of elements in the arrangement of one or more sublayer shutter interval clock tick parameters.

6. Method according to claim 1, CHARACTERIZED in that the signaling section comprises a supplementary enhancement information (SEI) message section or a video user information (VUI) message section.