Display overlays
A syntax structure for controlling and decoding display overlays within bitstreams addresses inefficiencies by using a 'number of layers field' and 'partitioning information', enhancing video processing efficiency and accuracy.
Patent Information
- Application Number
- PCT/IB2025/060712
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-10-21
- Filing Date
- 2025-10-21
- Publication Date
- 2026-04-30
AI Technical Summary
Existing video processing systems lack efficient methods for controlling and identifying display overlays within different layers of a bitstream, leading to inefficiencies in signaling and decoding processes.
Implementing a syntax structure that includes a 'number of layers field' and 'partitioning information' to signal and decode display overlays, with layer-dependent partition types, allowing for precise identification and assembly of layers in the bitstream.
Enhances the ability to control and decode display overlays effectively, improving the efficiency and accuracy of video processing by enabling layer-dependent signaling and assembly.
Smart Images

Figure IB2025060712_30042026_PF_FP_ABST
Abstract
Description
DISPLAY OVERLAYSTECHNICAL FIELD
[0001] The examples and non-limiting embodiments relate generally to video processing and, more particularly to, display overlays.BACKGROUND
[0002] It is known to provide standardized formats for encoding, signaling, or decoding of media data.SUMMARY
[0003] Example 1: An apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: generating a syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling signaling for partitioning information, wherein the partitioning information comprises one or more partition types intended to be used for identifying display overlays within different layers of a bitstream, and wherein the one or more partition types are signaled as being layer dependent; and signaling, in or along the bitstream, the syntax comprising the number of layers field.
[0004] Example 2: The apparatus of example 1, wherein the syntax is comprised in a display overlay information message.
[0005] Example 3: The apparatus of any of the examples 1 or 2, wherein the syntax further comprises a layer index comprising a first value and a first index, for each display overlay, wherein the first value comprises a value of layer identifier for layer identified by the first index.
[0006] Example 4: The apparatus of any of the previous examples, wherein controlling the signaling for the partitioning information comprises indicating whether layer identifiers are signaled for each display overlay or not.
[0007] Example 5: The apparatus of example 4, wherein the apparatus is further caused to perform: signaling a layer identifier for each layer index, wherein the layer identifier identifies a layer.
[0008] Example 6: The apparatus of any of the previous examples, wherein the syntax further comprises a partition flag field comprising a second value and a second index, wherein when the secondvalue of the partition flag field is equal to a first predetermined value it specifies that a display overlay comprised in a layer identified by the second index is coded as a constituent rectangle or a subpicture, and wherein when the second value is equal to a second predetermined value it specifies that a display overlay comprised in a layer identified by the second index is coded as a picture.
[0009] Example 7 : The apparatus of example 6, wherein the syntax further comprises a partition type field comprising a third value and a third index, wherein when the third value is equal to the first predetermined value it specifies that a display overlay comprised in the layer identified by the third index is coded as the constituent rectangle, and wherein when the third value is equal to the second predetermined value it specifies that a display overlay comprised in a layer identified by the third index is coded as the subpicture.
[0010] Example 8: The apparatus of any of the previous examples, wherein the syntax further comprises layer index field comprising a fourth value and fourth index, wherein the fourth value specifies a layer index of a texture component of a display overlay identified by the fourth index.
[0011] Example 9: The apparatus of any of the previous examples, wherein the syntax further comprises an alpha layer index field comprising a fifth value and a fifth index, wherein the fifth value specifies a layer index of an alpha component of a display overlay identified by the fifth index.
[0012] Example 10: The apparatus of any of the previous examples, wherein the syntax further comprises a flag for indicating presence of two or more layers in the bitstream.
[0013] Example 11: The apparatus of any of the examples 2 to 10, wherein the display overlay information message comprises a display overlay information supplemental information message.
[0014] Example 12: An apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to: receiving, from or along a bitstream, syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling partitioning information, wherein the partitioning information comprises one or more partition type intended to be used for identifying overlays within different layers of the bitstream, and wherein the one or more partition type are received as being layer dependent; decoding the syntax; and using the syntax for assembling the different layers from the bitstream to generate a target picture.
[0015] Example 13: The apparatus of example 12, wherein the syntax is comprised in a display overlay information message.
[0016] Example 14: The apparatus of any of the examples 12 or 13, wherein the syntax further comprises a layer index comprising a first value and a first index, for each display overlay, wherein the first value comprises a value of layer identifier for a layer identified by the first index.
[0017] Example 15: The apparatus of any of the examples 12 to 14, wherein the partitioning information comprises an indication whether layer identifiers are signaled for each display overlay or not.
[0018] Example 16: The apparatus of example 15, wherein the apparatus is further caused to perform: receiving a layer identifier for each layer index, wherein the layer identifier identifies a layer.
[0019] Example 17: The apparatus of any of the examples 12 to 16, wherein the syntax further comprises a partition flag field comprising a second value and a second index, wherein when the second value of the partition flag field is equal to a first predetermined value it specifies that a display overlay comprised in a layer identified by the second index is coded as a constituent rectangle or a subpicture, and wherein when the second value is equal to a second predetermined value it specifies that a display overlay comprised in a layer identified by the second index is coded as a picture.
[0020] Example 18: The apparatus of example 17, wherein the syntax further comprises a partition type field comprising a third value and a third index, wherein when the third value is equal to the first predetermined value it specifies that a display overlay comprised in the layer identified by the third index is coded as the constituent rectangle, and wherein when the third value is equal to the second predetermined value it specifies that a display overlay comprised in a layer identified by the third index is coded as the subpicture.
[0021] Example 19: The apparatus of any of the examples 12 to 18, wherein the syntax further comprises layer index field comprising a fourth value and fourth index, wherein the fourth value specifies a layer index of a texture component of a display overlay identified by the fourth index.
[0022] Example 20: The apparatus of any of the examples 12 to 19, wherein the syntax further comprises an alpha layer index field comprising a fifth value and a fifth index, wherein the fifth value specifies a layer index of an alpha component of a display overlay identified by the fifth index.
[0023] Example 21: The apparatus of any of the examples 12 to 20, wherein the syntax further comprises a flag for indicating presence of two or more layers in the bitstream.
[0024] Example 22: The apparatus of any of the examples 13 to 21, wherein the display overlay information message comprises a display overlay information supplemental information message.
[0025] Example 23: A method comprising: generating a syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling signaling for partitioning information, wherein the partitioning information comprises one or more partition types intended to be used for identifying display overlays within different layers of a bitstream, and wherein the one or more partition types are signaled as being layer dependent; and signaling, in or along the bitstream, the syntax comprising the number of layers field.
[0026] Example 24: The method of example 23, wherein the syntax is comprised in a display overlay information message.
[0027] Example 25: The method of any of the examples 23 or 24, wherein the syntax further comprises a layer index comprising a first value and a first index, for each display overlay, wherein the first value comprises a value of layer identifier for layer identified by the first index.
[0028] Example 26: The method of any of the examples 23 to 25, wherein controlling the signaling for the partitioning information comprises indicating whether layer identifiers are signaled for each display overlay or not.
[0029] Example 27: The method of example 26 further comprising signaling a layer identifier for each layer index, wherein the layer identifier identifies a layer.
[0030] Example 28: The method of any of the examples 23 to 27, wherein the syntax further comprises a partition flag field comprising a second value and a second index, wherein when the second value of the partition flag field is equal to a first predetermined value it specifies that a display overlay comprised in a layer identified by the second index is coded as a constituent rectangle or a subpicture, and wherein when the second value is equal to a second predetermined value it specifies that a display overlay comprised in a layer identified by the second index is coded as a picture.
[0031] Example 29: The method of example 28, wherein the syntax further comprises a partition type field comprising a third value and a third index, wherein when the third value is equal to the first predetermined value it specifies that a display overlay comprised in the layer identified by the third index is coded as the constituent rectangle, and wherein when the third value is equal to the second predetermined value it specifies that a display overlay comprised in a layer identified by the third index is coded as the subpicture.
[0032] Example 30: The method of any of the examples 23 to 29, wherein the syntax further comprises layer index field comprising a fourth value and fourth index, wherein the fourth valuespecifies a layer index of a texture component of a display overlay identified by the fourth index.
[0033] Example 31: The method of any of the examples 23 to 30, wherein the syntax further comprises an alpha layer index field comprising a fifth value and a fifth index, wherein the fifth value specifies a layer index of an alpha component of a display overlay identified by the fifth index.
[0034] Example 32: The method of any of the examples 23 to 31, wherein the syntax further comprises a flag for indicating presence of two or more layers in the bitstream.
[0035] Example 33: The method of any of the examples 24 to 32, wherein the display overlay information message comprises a display overlay information supplemental information message.
[0036] Example 34: A method comprising: receiving, from or along a bitstream, syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling partitioning information, wherein the partitioning information comprises one or more partition type intended to be used for identifying overlays within different layers of the bitstream, and wherein the one or more partition type are received as being layer dependent; decoding the syntax; and using the syntax for assembling the different layers from the bitstream to generate a target picture.
[0037] Example 35: The method of example 34, wherein the syntax is comprised in a display overlay information message.
[0038] Example 36: The method of any of the examples 34 or 35, wherein the syntax further comprises a layer index comprising a first value and a first index, for each display overlay, wherein the first value comprises a value of layer identifier for a layer identified by the first index.
[0039] Example 37: The method of any of the examples 34 to 36, wherein the partitioning information comprises an indication whether layer identifiers are signaled for each display overlay or not.
[0040] Example 38: The method of example 37 further comprising receiving a layer identifier for each layer index, wherein the layer identifier identifies a layer.
[0041] Example 39: The method of any of the examples 34 to 38, wherein the syntax further comprises a partition flag field comprising a second value and a second index, wherein when the second value of the partition flag field is equal to a first predetermined value it specifies that a display overlay comprised in a layer identified by the second index is coded as a constituent rectangle or a subpicture, and wherein when the second value is equal to a second predetermined value it specifies that a displayoverlay comprised in a layer identified by the second index is coded as a picture.
[0042] Example 40: The method of example 39, wherein the syntax further comprises a partition type field comprising a third value and a third index, wherein when the third value is equal to the first predetermined value it specifies that a display overlay comprised in the layer identified by the third index is coded as the constituent rectangle, and wherein when the third value is equal to the second predetermined value it specifies that a display overlay comprised in a layer identified by the third index is coded as the subpicture.
[0043] Example 41: The method of any of the examples 34 to 40, wherein the syntax further comprises layer index field comprising a fourth value and fourth index, wherein the fourth value specifies a layer index of a texture component of a display overlay identified by the fourth index.
[0044] Example 42: The method of any of the examples 34 to 41, wherein the syntax further comprises an alpha layer index field comprising a fifth value and a fifth index, wherein the fifth value specifies a layer index of an alpha component of a display overlay identified by the fifth index.
[0045] Example 43: The method of any of the examples 34 to 42, wherein the syntax further comprises a flag for indicating presence of two or more layers in the bitstream.
[0046] Example 44: The method of any of the examples 35 to 43, wherein the display overlay information message comprises a display overlay information supplemental information message.
[0047] Example 45: An apparatus comprising: means for generating a syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling signaling for partitioning information, wherein the partitioning information comprises one or more partition types intended to be used for identifying display overlays within different layers of a bitstream, and wherein the one or more partition types are signaled as being layer dependent; and means for signaling, in or along the bitstream, the syntax comprising the number of layers field.
[0048] Example 46: The apparatus of example 45, wherein the apparatus further comprises means for performing the methods as described in any of the examples 23 to 33.
[0049] Example 47: An apparatus comprising: means for receiving, from or along a bitstream, syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling partitioning information, wherein the partitioning information comprises one or more partition type intended to be used foridentifying overlays within different layers of the bitstream, and wherein the one or more partition type are received as being layer dependent; means for decoding the syntax; and means for using the syntax for assembling the different layers from the bitstream to generate a target picture.
[0050] Example 48: The apparatus of example 47, wherein the apparatus further comprises means for performing the methods as described in any of the examples 34 to 44.
[0051] Example 49: A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform: generating a syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling signaling for partitioning information, wherein the partitioning information comprises one or more partition types intended to be used for identifying display overlays within different layers of a bitstream, and wherein the one or more partition types are signaled as being layer dependent; and signaling, in or along the bitstream, the syntax comprising the number of layers field.
[0052] Example 50: The apparatus of example 49, wherein the apparatus is further caused to perform the methods as described in any of the examples 23 to 33.
[0053] Example 51: The computer readable medium of any of the examples 49 or 50, wherein the computer readable medium comprises a non-transitory computer readable medium.
[0054] Example 52: A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform: means for receiving, from or along a bitstream, syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling partitioning information, wherein the partitioning information comprises one or more partition type intended to be used for identifying overlays within different layers of the bitstream, and wherein the one or more partition type are received as being layer dependent; means for decoding the syntax; and means for using the syntax for assembling the different layers from the bitstream to generate a target picture.
[0055] Example 53: The apparatus of example 52, wherein the apparatus is further caused to perform the methods as described in any of the examples 34 to 44.
[0056] Example 54: The computer readable medium of any of the examples 52 or 53, wherein the computer readable medium comprises a non-transitory computer readable medium.BRIEF DESCRIPTION OF THE DRAWINGS
[0057] The foregoing embodiments and other features are explained in the following description, taken in connection with the accompanying drawings, wherein:
[0058] FIG. 1 shows schematically an apparatus employing embodiments of the examples described herein.
[0059] FIG. 2 shows schematically a user equipment suitable for employing embodiments of the examples described herein.
[0060] FIG. 3 further shows schematically electronic devices employing embodiments of the examples described herein connected using wireless and wired network connections.
[0061] FIG. 4 is a block diagram illustrating a system in accordance with an example.
[0062] FIG. 5 illustrates multi-languages television services with a customized overlay.
[0063] FIG. 6 shows an illustration of usage of a display overlays information (DOI) supplemental enhancement information (SEI) message.
[0064] FIG. 7 an example syntax of a DOI SEI message.
[0065] FIG. 8. Illustration of DOI SEI usage combined with constituent rectangle.
[0066] FIG. 9 is an example apparatus, which may be implemented in hardware, and is caused to, implement examples described herein.
[0067] FIG. 10 shows a representation of an example of non-volatile memory media used to store instructions that implement the examples described herein.
[0068] FIG. 11 is an example method performed with an encoder, based on the examples described herein.
[0069] FIG. 12 is another example method performed with an decoder, based on the examples described herein.DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS
[0070] The following acronyms and abbreviations that may be found in the specification and / or the drawing figures are defined as follows (the abbreviations may be appended with each other or with other characters using e.g. a hyphen or dash (-), and may be case insensitive):4CC four character code5G fifth generation cellular network technology5GC 5G core networka.k.a. also known asAVC advanced video codingCU coding unitDSP digital signal processorDU distributed uniteNB (or eNodeB) evolved Node B (for example, an LTE base station) EN-DC E-UTRA -NR dual connectivityen-gNB or En-gNB node providing NR user plane and control plane protocol terminations towards the UE, and acting as secondary node in EN-DCE-UTRA evolved universal terrestrial radio access, for example, the LTE radio access technologyFl or Fl-C interface between CU and DU control interface gNB (or gNodeB) base station for 5G / NR, for example, a node providing NR user plane and control plane protocol terminations towards the UE, and connected via the NG interface to the 5GCIEC International Electrotechnical Commission loT internet of thingsISO International Organization for Standardization ISOBMFF ISO base media file formatJPEG joint photographic experts groupLTE long-term evolutionmdat MediaDataBoxMIME Multipurpose Internet Mail ExtensionMME mobility management entitymoov MovieBoxMP4 file format for MPEG-4 Part 14 filesMPEG moving picture experts groupMPEG-2 H.222 / H.262 as defined by the ITUMPEG-4 audio and video coding standard for ISO / IEC 14496 ng or NG new generationng-eNB or NG-eNB new generation eNBNR new radio (5G radio)N / W orNW networkPDCP packet data convergence protocolPHY physical layerPNG portable network graphicsRAN radio access networkRFC request for commentsRLC radio link controlRRC radio resource controlRRH remote radio headRU radio unitRx receiverSDAP service data adaptation protocolSGW serving gatewaySMF session management functionSPS sequence parameter setSVC scalable video codingSI interface between eNodeBs and the EPCtrak TrackBoxTx transmitterUE user equipmentUICC Universal Integrated Circuit CardUPF user plane functionURL uniform resource locatorX2 interconnecting interface between two eNodeBs in LTE networkXn interface between two NG-RAN nodes
[0071] Some embodiments will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all, embodiments may be shown. Indeed, various embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout. As used herein, the terms ‘data,’ ‘content,’ ‘information,’ and similar terms may be used interchangeably to refer to data capable of being transmitted, received and / or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments.
[0072] Described herein is a method and apparatus for display overlays.
[0073] The following describes in detail a suitable apparatus and possible method for display overlays according to embodiments. In this regard reference is first made to FIG. 1 and FIG. 2, where FIG. 1 shows an example block diagram of an electronic device or apparatus 100. The apparatus 100 may be an Internet of Things (loT) apparatus configured to perform various functions, such as for example, gathering information by one or more sensors, receiving or transmitting information, analyzing information gathered or received by the apparatus, or the like. The apparatus may comprise a video coding system, which may incorporate a codec. FIG.2 shows a layout of an apparatus according to an example embodiment. The elements of FIG. 1 and FIG. 2 are explained next.
[0074] The apparatus 100 may for example be a mobile terminal or user equipment of a wireless communication system, a sensor device, a tag, or other lower power device. However, it would beappreciated that embodiments of the examples described herein may be implemented within any electronic device or apparatus which may process data by neural networks.
[0075] The apparatus 100 may comprise a housing 101 for incorporating and protecting the device. The apparatus 100 further may comprise a display 102 in the form of a liquid crystal display. In other embodiments of the examples described herein the display may be any suitable display technology suitable to display an image or video. The apparatus 100 may further comprise a keypad 104. In other embodiments of the examples described herein any suitable data or user interface mechanism may be employed. For example the user interface may be implemented as a virtual keyboard or data entry system as part of a touch-sensitive display.
[0076] The apparatus may comprise a microphone 106 or any suitable audio input which may be a digital or analog signal input. The apparatus 100 may further comprise an audio output device which in embodiments of the examples described herein may be any one of: an earpiece 108, speaker, or an analog audio or digital audio output connection. The apparatus 100 may also comprise a battery (or in other embodiments of the examples described herein the device may be powered by any suitable mobile energy device such as solar cell, fuel cell or clockwork generator). The apparatus 100 may further comprise a camera 109 capable of recording or capturing images and / or video. The apparatus 100 may further comprise an infrared port for short range line of sight communication to other devices. In other embodiments the apparatus 100 may further comprise any suitable short range communication solution such as for example a Bluetooth wireless connection or a USB / firewire wired connection.
[0077] The apparatus 100 may comprise a controller 110, processor or processor circuitry for controlling the apparatus 100. The controller 110 may be connected to memory 112 which in embodiments of the examples described herein may store both data in the form of image and audio data and / or may also store instructions for implementation on the controller 110. The controller 110 may further be connected to codec circuitry 114 suitable for carrying out coding and / or decoding of audio and / or video data or assisting in coding and / or decoding carried out by the controller.
[0078] The apparatus 100 may further comprise a card reader 118 and a smart card 116, for example a UICC and UICC reader for providing user information and being suitable for providing authentication information for authentication and authorization of the user at a network.
[0079] The apparatus 100 may comprise radio interface circuitry 120 connected to the controller and suitable for generating wireless communication signals for example for communication with a cellular communications network, a wireless communications system or a wireless local area network. The apparatus 100 may further comprise an antenna 122 connected to the radio interface circuitry 120 fortransmitting radio frequency signals generated at the radio interface circuitry 120 to other apparatus(es) and / or for receiving radio frequency signals from other apparatus(es).
[0080] The apparatus 100 may comprise a camera capable of recording or detecting individual frames which are then passed to the codec circuitry 114 or the controller for processing. The apparatus may receive the video image data for processing from another device prior to transmission and / or storage. The apparatus 100 may also receive either wirelessly or by a wired connection the image for coding / decoding. The structural elements of apparatus 100 described above represent examples of means for performing a corresponding function.
[0081] With respect to FIG. 3, an example of a system within which embodiments of the examples described herein can be utilized is shown. The system 300 comprises multiple communication devices which can communicate through one or more networks. The system 300 may comprise any combination of wired or wireless networks including, but not limited to a wireless cellular telephone network (such as a GSM, UMTS, CDMA, LTE, 4G, 5G network, etc.), a wireless local area network (WLAN) such as defined by any of the IEEE 802.x standards, a Bluetooth personal area network, an Ethernet local area network, a token ring local area network, a wide area network, and the Internet.
[0082] The system 300 may include both wired and wireless communication devices and / or apparatus 100 suitable for implementing embodiments of the examples described herein.
[0083] For example, the system shown in FIG. 3 shows a mobile telephone network 301 and a representation of the internet 302. Connectivity to the internet 302 may include, but is not limited to, long range wireless connections, short range wireless connections, and various wired connections including, but not limited to, telephone lines, cable lines, power lines, and similar communication pathways.
[0084] The example communication devices shown in the system 300 may include, but are not limited to, an electronic device or apparatus 100, a combination of a personal digital assistant (PDA) and a mobile telephone 304, a PDA 306, an integrated messaging device (IMD) 308, a desktop computer 310, a notebook computer 312, or a head-mounted apparatus. The head-mounted apparatus may be a head-mounted display (HMD), or glasses having a device such as a camera configured to encode and / or decode images and / or video. The apparatus 100 may be stationary or mobile when carried by an individual who is moving. The apparatus 100 may also be located in a mode of transport including, but not limited to, a car, a truck, a taxi, a bus, a train, a boat, an airplane, a bicycle, a motorcycle or any similar suitable mode of transport.
[0085] The embodiments may also be implemented in a set-top box; e.g., a digital TV receiver, whichmay / may not have a display or wireless capabilities, in tablets or (laptop) personal computers (PC), which have hardware and / or software to process neural network data, in various operating systems, and in chipsets, processors, DSPs and / or embedded systems offering hardware / software based coding.
[0086] Some or further apparatus may send and receive calls and messages and communicate with service providers through a wireless connection 314 to a base station 316. The base station 316 may be connected to a network server 318 that allows communication between the mobile telephone network 301 and the internet 302. The system may include additional communication devices and communication devices of various types.
[0087] The communication devices may communicate using various transmission technologies including, but not limited to, code division multiple access (CDMA), global systems for mobile communications (GSM), universal mobile telecommunications system (UMTS), time divisional multiple access (TDMA), frequency division multiple access (FDMA), transmission control protocolinternet protocol (TCP-IP), short messaging service (SMS), multimedia messaging service (MMS), email, instant messaging service (IMS), Bluetooth, IEEE 802.11, 3GPP Narrowband loT and any similar wireless communication technology. A communications device involved in implementing various embodiments of the examples described herein may communicate using various media including, but not limited to, radio, infrared, laser, cable connections, and any suitable connection.
[0088] In telecommunications and data networks, a channel may refer either to a physical channel or to a logical channel. A physical channel may refer to a physical transmission medium such as a wire, whereas a logical channel may refer to a logical connection over a multiplexed medium, capable of conveying several logical channels. A channel may be used for conveying an information signal, for example a bitstream, from one or several senders (or transmitters) to one or several receivers.
[0089] The embodiments may also be implemented in so-called loT devices. The Internet of Things (loT) may be defined, for example, as an interconnection of uniquely identifiable embedded computing devices within the existing Internet infrastructure. The convergence of various technologies has and may enable many fields of embedded systems, such as wireless sensor networks, control systems, home / building automation, etc. to be included in the Internet of Things (loT). In order to utilize the Internet loT devices are provided with an IP address as a unique identifier. loT devices may be provided with a radio transmitter, such as a WLAN or Bluetooth transmitter or a RFID tag. Alternatively, loT devices may have access to an IP -based network via a wired network, such as an Ethernet-based network or a power-line connection (PLC).
[0090] The High Efficiency Video Coding (H.265 / HEVC a.k.a. HEVC) standard was originallydeveloped by the Joint Collaborative Team - Video Coding (JCT-VC) of VCEG and MPEG. The standard was published by both parent standardization organizations, and it is referred to as ITU-T Recommendation H.265 and ISO / IEC International Standard 23008-2, also known as MPEG-H Part 2 High Efficiency Video Coding (HEVC). Version 2 of the H.265 / HEVC standard included scalable, multiview, fidelity range, three-dimensional, and screen content coding extensions which may be abbreviated SHVC, MV-HEVC, REXT, 3D-HEVC, and SCC, respectively.
[0091] Versatile Video Coding (VVC) (MPEG-I Part 3), a.k.a. ITU-T H.266, is a video compression standard developed by the Joint Video Experts Team (JVET) of the Moving Picture Experts Group (MPEG), (formally ISO / IEC JTC1 SC29 WG11) and Video Coding Experts Group (VCEG) of the International Telecommunication Union (ITU) to be the successor to HEVC / H.265.
[0092] A specification of the AVI bitstream format and decoding process were developed by the Alliance for Open Media (AOM). The AVI specification was published in 2018. AOM is reportedly working on the AV2 specification.
[0093] Some key definitions, bitstream and coding structures, and concepts of some video coding standards and specifications are described in this section for providing background for a video encoder, decoder, encoding method, decoding method, and a bitstream structure, wherein the embodiments may be implemented. It is to be understood that embodiments are not limited to the referenced video coding standards or specifications.
[0094] A bitstream may be defined as a sequence of bits or a sequence of syntax structures. A bitstream format may constrain the order of syntax structures in the bitstream.
[0095] A syntax element may be defined as an element of data represented in a bitstream. A syntax structure may be defined as zero or more syntax elements present together in a bitstream in a specified order.
[0096] Syntax structures may be specified, for example, using arithmetic, logical, relational, bitwise, and assignment operators similar to those available in many programming languages. For example, & may indicate a bit-wise ‘AND’ operation. Furthermore, syntax structures may be specified with reference to mathematical functions.
[0097] Syntax structures and semantics may use the values of variables derived from the values of syntax elements. Naming conventions may be defined for variables. For example, variables may be named by a mixture of lower case and upper case letter and without any underscore characters. V ariables starting with an upper case letter may be derived for the decoding of the current syntax structure and alldepending syntax structures. Variables starting with an upper case letter may, in some cases, be used in the decoding process for later syntax structures without mentioning the originating syntax structure of the variable. Variables starting with a lower case letter may only be used in relation to the syntax structure or function they have been defined for.
[0098] Syntax structures may be specified in a tabular form, where a descriptor of a syntax element may indicate its data type. Data types may include, but may not be limited to, one or more of the following:se(v): signed integer O-th order Exp-Golomb-coded syntax element with the left bit first.st(v): null-terminated string encoded as universal coded character set (UCS) transmission format-8 (UTF-8) characters as specified in ISO / IEC 10646. The parsing process may be specified as follows: st(v) begins at a byte-aligned position in the bitstream and reads and returns a series of bytes from the bitstream, beginning at the current position and continuing up to but not including the next byte-aligned byte that is equal to 0x00, and advances the bitstream pointer by ( stringLength + 1 ) * 8 bit positions, where stringLength is equal to the number of bytes returned.u(n): unsigned integer using n bits. When n is "v" in the syntax table, the number of bits varies in a manner dependent on the value of other syntax elements. The parsing process for this descriptor may comprise reading the next n bits in the bitstream interpreted as a binary representation of an unsigned integer with most significant bit written first.ue(v): unsigned integer O-th order Exp-Golomb-coded syntax element with the left bit first.
[0099] Exp-Golomb bit strings may be assigned with codeNum values as follows. The codeNum value may be used as the value of ue(v) syntax element.Bit string codeNum1 00 1 0 10 1 1 200 1 00 300 1 0 1 400 1 1 0 5000 1 000 7000 1 00 1 8000 1 0 1 0 9
[0100] The codeNum value of an Exp-Golomb bit string may mapped to a value of an se(v) syntax element as follows, where the function Ceil(x) returns the smallest integer greater than or equal to x, * indicates a multiplication, and -? indicates a division without rounding:codeNum syntax element value0 01 12 -13 24 -25 36 -3k (-l)k + 1* Ceil(k -? 2 )
[0101] Video coding specifications may define an elementary unit that for the output an of an encoder and / or for the input to a decoder. For example, such an elementary unit may be an open bitstream unit (OBU), as specified e.g. in AVI, or a Network Abstraction Layer (NAL) unit, as specified e.g. in HEVC or VVC.
[0102] In some video codecs, an elementary unit for the output of an encoder and the input of a decoder, respectively, may be a Network Abstraction Layer (NAL) unit. For transport over packet- oriented networks or storage into structured files, NAL units may be encapsulated into packets or similar structures. A bytestream format has been specified in some video coding standards for transmission or storage environments that do not provide framing structures. The bytestream format separates NAL units from each other by attaching a start code in front of each NAL unit. To avoid false detection of NAL unit boundaries, encoders run a byte-oriented start code emulation prevention algorithm, which adds an emulation prevention byte to the NAL unit payload if a start code would have occurred otherwise. In order to enable straightforward gateway operation between packet- and stream-oriented systems, start code emulation prevention may always be performed regardless of whether the bytestream format is in use or not. A NAL unit may be defined as a syntax structure containing an indication of the type of data to follow and bytes containing that data in the form of an RBSP interspersed as necessary with emulation prevention bytes. A raw byte sequence payload (RBSP) maybe defined as a syntax structure containing an integer number of bytes that is encapsulated in a NAL unit. An RBSP is either empty or has the form of a string of data bits containing syntax elements followed by an RBSP stop bit and followed by zero or more subsequent bits equal to 0.
[0103] A bitstream may be defined to logically include a syntax structure, such as a NAL unit, when the syntax structure is transmitted along the bitstream but may be included in the bitstream according to the bitstream format. A bitstream may be defined to natively comprise a syntax structure, when the bitstream includes the syntax structure.
[0104] In some coding formats or standards, a bitstream may be in the form of a network abstraction layer (NAL) unit stream or a byte stream, that forms the representation of coded pictures and associated data forming one or more coded video sequences.
[0105] In some coding formats, such as AVI, a bitstream may comprise a sequence of open bitstream units (OBUs). An OBU comprises a header and a payload, wherein the header identifies a type of the OBU. Furthermore, the header may comprise a size of the pay load in bytes.
[0106] In some video coding formats, such as VVC, a subpicture may be defined as a rectangular region of one or more slices within a picture, wherein the one or more slices are complete and a slice is a unit (e.g., a NAL unit) that can be decoded independently of other slices of the same coded picture. Thus, a subpicture consists of one or more slices that collectively cover a rectangular region of a picture. Consequently, each subpicture boundary is also always a slice boundary. The slices of a subpicture may be required to be rectangular slices.
[0107] An independent subpicture (a.k.a. an extractable subpicture) may be defined as a subpicture with subpicture boundaries that are treated as picture boundaries. Additionally, it may be required that an independent subpicture has no loop filtering across the subpicture boundaries.
[0108] Some video coding specifications enable metadata OBUs. A metadata OBU comprises a type field, which specifies the type of metadata. A metadata OBU may be understood to be similar to an SEI NAL unit or an SEI message.
[0109] Video coding specifications may enable the use of supplemental enhancement information (SEI) messages or alike. Some video coding specifications include SEI NAL units, and some video coding specifications contain both prefix SEI NAL units and suffix SEI NAL units, where the former type can start a picture unit or alike and the latter type can end a picture unit or alike. An SEI NAL unit contains one or more SEI messages, which are not required for the decoding of output pictures but may assist in related processes, such as picture output timing, post-processing of decoded pictures, rendering,error detection, error concealment, and resource reservation.
[0110] ITU-T Recommendation H.274, which is equivalent to ISO / IEC 23002-7, may be called "versatile supplemental enhancement information messages for coded video bitstreams" and be referred to as "versatile supplemental enhancement information" or VSEI. The VSEI standard specifies the syntax and semantics of video usability information (VUI) parameters and supplemental enhancement information (SEI) messages. The VUI parameters and SEI messages defined in the VSEI standard are designed to be conveyed within coded video bitstreams in a manner specified in a video coding specification or to be conveyed by other means determined by the specifications for systems that make use of such coded video bitstreams. The VSEI standard is intended for use with VVC coded video bitstreams, although it is drafted in a manner intended to be sufficiently generic that it may also be used with other types of coded video bitstreams.
[0111] Several SEI messages are specified for example in H.265 / HEVC, H.266 / VVC, and H.274 / VSEI standards, and the user data SEI messages enable organizations and companies to specify SEI messages for their own use. The standards may contain the syntax and semantics for the specified SEI messages but a process for handling the messages in the recipient might not be defined. Consequently, encoders may be required to follow the standard specifying a SEI message when they create SEI message(s), and decoders might not be required to process SEI messages for output order conformance. One of the reasons to include the syntax and semantics of SEI messages in standards is to allow different system specifications to interpret the supplemental information identically and hence interoperate. It is intended that system specifications can require the use of particular SEI messages both in the encoding end and in the decoding end, and additionally the process for handling particular SEI messages in the recipient can be specified.
[0112] Scalable video coding may refer to coding structure where one bitstream may include multiple representations of the content, for example, at different bitrates, resolutions or frame rates. In these cases, the receiver can extract the desired representation depending on its characteristics (e.g., resolution that matches best the display device). Alternatively, a server or a network element may extract the portions of the bitstream to be transmitted to the receiver depending on, e.g., the network characteristics or processing capabilities of the receiver. A meaningful decoded representation may be produced by decoding only certain parts of a scalable bitstream. A scalable bitstream typically include of a ‘base layer’ providing the lowest quality video available and one or more enhancement layers that enhance the video quality when received and decoded together with the lower layers. In order to improve coding efficiency for the enhancement layers, the coded representation of that layer typically depends on the lower layers. For example, the motion and mode information of the enhancement layercan be predicted from lower layers. Similarly, the pixel data of the lower layers can be used to create prediction for the enhancement layer.
[0113] A multi-layer bitstream is a bitstream comprising multiple layers, which may be, but are not limited to, base and enhancement layers as discussed above for scalable video coding. A multi-layer bitstream may additionally or alternatively comprise independent layers that do not have inter-layer prediction relationship between each other and may even represent different types of content.
[0114] Layers of a multi-layer bitstream may be identified by a layer identifier or layer ID. In some video coding specifications, such as HEVC and VVC, the layer ID is represented by the nuh_layer_id syntax element. In some video coding specifications, such as AVI, the spatial_id syntax element of an extension of an OBU header (obu_extension_header) may be regarded as a layer ID.
[0115] In some coding formats, a coded video sequence (CVS) may be defined as a sequence of coded pictures in decoding order that is independently decodable and is followed by another coded video sequence or the end of the bitstream.
[0116] In some coding formats, such as AVI, a coded video sequence comprises one or more temporal units. A temporal unit consists of a series of OBUs starting from a temporal delimiter, optional sequence headers, optional metadata OBUs, a sequence of one or more frame headers, each followed by zero or more tile group OBUs as well as optional padding OBUs. A temporal unit may be defined to comprise all the OBUs that are associated with a specific, distinct time instant. A temporal unit may comprise a temporal delimiter OBU, and all the OBUs that follow, up to but not including the next temporal delimiter. A temporal delimiter OBU may be defined as an indication that the following OBUs will have a different presentation / decoding time stamp from the one of the last frame prior to the temporal delimiter.
[0117] A coded layer video sequence (CLVS) may be defined as a sequence of pictures and associated other data within the same scalable layer (e.g., with the same value of nuh_layer_id) that is decodable independently of other pictures in the same layer.
[0118] FIG. 4 is a block diagram illustrating a system or apparatus 400 in accordance with several examples. In an example, the encoder 402 is used to encode an image or video, and the encoder 402 may be implemented in a transmitting apparatus 404. The encoder 402 produces a bitstream 406 comprising signaling that is received by the receiving apparatus 408, which implements a decoder 410. The encoder 402 sends the bitstream 406 that comprises the herein described signaling. The decoder 410 forms the image or video, and the receiving apparatus 408 may present this to the user, e.g., via a smartphone, television, or projector among many other options.
[0119] In some examples, the encoder 402 may reside in a separate apparatus from the transmitting apparatus 404. In some examples, the apparatus comprising the encoder 402 may be connected to the transmitting apparatus 404, e.g., through a memory bus. In some examples, the encoder 402 may produce the bitstream 406 that is stored, e.g. in a mass memory.
[0120] In some examples, the decoder 410 may reside in a separate apparatus from the receiving apparatus 408. In some examples, the apparatus comprising the decoder 410 may be operationally connected to the receiving apparatus 408, e.g., through a memory bus. In some examples, the decoder 410 may obtain the bitstream 406 from a mass memory.
[0121] In some examples, the transmitting apparatus 404 and the receiving apparatus 408 are at least partially within a common apparatus, and for example, are located within a common housing 412. For example, the common apparatus comprising the encoder 402 and decoder 410 implements a codec. In other examples, the encoder 402 and the decoder 410 are at least partially not within a common apparatus and have at least partially different housings, but when together, may still implement a codec.
[0122] As indicated at 414, the decoder 410 performs an operation(s) or action(s) based on the received signaling.
[0123] In some examples, encoding 416 performs encoding of display overlays signaling, based on the examples described herein. In some examples, decoding 418 performs decoding of display overlays signaling, based on the examples described herein.
[0124] Having thus introduced a suitable but non-limiting technical context for the practice of the example embodiments of the present disclosure, example embodiments will now be described in detail.
[0125] Various embodiments apply to the technologies under consideration for a future edition of VSEI (H.274), currently specified in the VSEI TuC (JVET-AI2032). More specifically, it applies to the Display Overlays Information (DOI) Supplemental Enhancement Information (SEI) message, enabling to indicate how a receiver should assemble different layers from a video bitstream together to generate a target picture, as illustrated in FIG. 5. FIG. 5 illustrates multi-languages television services with a customized overlay. FIG 6. illustrates how two coded layer pictures can be assembled to create a target picture. FIG. 7 illustrates how the Embodiment A can be implemented in the existing DOI SEI signaling. FIG. 8. illustrates an example of overlays partitioning into constituent rectangles usable with the current DOI SEI signaling approach. FIG 8.
[0126] The embodiments address, for example, a gap identified in the current definition of the SEI message, where it is currently impossible to use different types of picture partition for every layer whenusing the DOI SEI message system. This gap limit the area of cases that the DOI SEI can currently address, limiting it to only few cases.
[0127] DOI SEI in VSEI TuC (JVET-AI2032):
[0128] The VSEI specification (H.274) includes syntax and semantics of the SEI messages, enabling new use-cases for VVC (H.266) or any other codec that references the VSEI specification. For example, SEI can carry information about neural network based post-filtering, film grain synthesis, and many others.
[0129] The VSEI TuC is gathering all candidate technologies for inclusion in a future version of the VSEI specification. Various embodiments address the DOI SEI message, which is part of the VSEI TuC and which enable to signal how multiple layers should be combined together to assemble a target display picture, as illustrated below in FIG. 6, available from [https: / / jvet- experts.org / doc_end_user / documents / 35_Sapporo / wgll / JVET-AI0181-v4.zip (last accessed on October 11, 2024)]..
[0130] In its current syntax and semantics, the DOI SEI uses the concept of partition type, which refers to the type of partition used to identify the overlays within the different layers. Depending on the selected value, the DOI can consider:Picture;Subpicture; orConstituent rectangle (CR).
[0131] In its current state, the DOI SEI syntax specifies that the selection of the partition shall apply to all layers used to carry overlay information, as illustrated in FIG. 7 and highlighted 702.
[0132] In other words, it means that partitions of a DOI SEI message cannot comprise a complete picture for a layer and while constituent rectangles are being used as partitions for another layer. This can be problematic for some cases, where videos and overlays come from different sources using their own preferred partition. FIG. 8, illustrates an example where CR is used in Layer 1, and where Layer 0 is also using CR even though it is not needed, introducing additional bitrate.
[0133] Various embodiments, address the abovementioned technical problem by enabling a per-layer definition of the partition type. Which can be achieved in several ways, for example, as described in following embodiments:
[0134] Example embodiment (Embodiment A): In this embodiment, a partition type is signaled as being layer dependent. The number of layers is signaled and used to control whether layer indices are signaled for each display overlay or not, removing the flag signaling whether multilayering is used or not. A layer index is signaled for every layer identifier.Another example embodiment (Embodiment B-l): Is a variant of solution Embodiment A, where the flag controlling the presence of multilayers is kept.Yet another example embodiment (Embodiment B-2): Is a variant of A, where the layer index is not signaled.Still another example embodiment (Embodiment C): Is a combination of embodiments B-l and B-2.
[0135] The example embodiments are described below in details.
[0136] Example embodiment A
[0137] In an embodiment, the number of layers is introduced in the syntax and used to control all the underlying signaling for the partitioning information, with the layer identifier signaled for each layer index value. For each display overlay, the layer index is signaled.
[0138] An example syntax to implement the solution of embodiment A is provided in the Table 1. display _overlays_info( payloadSize ) { Descriptor doi_id u(6) doi_cancel_flag u(l) if( !doi_cancel_flag ) {doi_persistence_flag u(l) doi_num_display_overlays_minus2 ue(v) doi_target_pic_size_present_flag u(l) if(doi_target_pic_size_present_flag )doi_target_pic_width_minus 1 u(16) doi_target_pic_height_minus 1 u(16) }doi_num_layers_minus 1 ue(v) for( i = 0; i <= doi_num_layers_minusl; i-i— I- ) {if (doi_num_layers_minus 1 > 0 )doi_nuh_layer_id[ i ] u(6)doi_pic_partition_flag[ i ] u(l)if( doi_pic_partition_flag[ i ] ) {doi_partition_type_flag[ i ] u(l) doi_partition_id_len_minusl[ i ] u(4) }}doi_offset_params_present_flag u(l) if( doi_offset_params_present_flag )doi_offset_param_length_minus 1 u(4) doi_resampling_enabled_flag u(l) if( doi_resampling_enabled_flag )doi_size_param_length_minus 1 u(4) for( i = 0; i < doi_num_display_overlays_minus2 + 2; i++ ) {if ( doi_num_layers_minusl > 0 )doi_layer_idx[ i ] u(v) if ( doi_pic_partition_flag[ doi_layer_idx[ i ] ] )doi_partition_id[ i ] u(v) doi_alpha_present_flag[ i ] u(l) if ( doi_alpha_present_flag[ i ] ) {if ( doi_num_layers_minusl > 0 )doi_alpha_layer_idx[ i ] u(v) if ( doi_pic_partition_flag[ doi_alpha_layer_idx[ i ] ] )doi_alpha_partition_id[ i ] u(v) }if( i > 0 ) {if (doi_offset_params_present_flag )doi_top_left_x[ i ] u(v) doi_top_left_y[ i ] u(v) }if( doi_resampling_enabling_flag ) {doi_width_minus 1 [ i ] u(v) doi_height_minusl[ i ] u(v) }}}}}Table 1
[0139] At least a partial example semantics corresponding to the above example syntax of Table 1 is provided below:
[0140] The display overlays information (DOI) SEI message provides metadata to enable formation of a target display picture formed by overlaying multiple ordered display overlays in a specified order. A display overlay includes texture and optionally an alpha channel, each contained within a cropped decoded picture, a subpicture, and / or a constituent rectangle.
[0141] Use of this SEI message requires the definition of the following variables, where i is the layer identifier of a layer that may be present in the current CVS:
[0142] - An array of picture width and picture height in units of luma samples, denoted herein by PicWidthInLumaSamples[ i ] and PicHeightInLumaSamples[ i ], respectively.
[0143] - A chroma format indicator, denoted herein by ChromaFormatIdc[ i ].
[0144] - An array of subpicture counts, denoted by NumSubpics[ i ].
[0145] - Arrays of the width and height of the subpictures, denoted herein by SubPicWidth[ i ][ j ] and SubPicHeight[ i ] [ j ] respectively, where j is the subpicture index in 0 .. NumSubpics[ i ] - 1.
[0146] doi_id specifies an identifier of the DOI SEI message.
[0147] doi_cancel_flag equal to 1 indicates that the SEI message cancels the persistence of any previous DOI SEI message with the same doi_id in output order. doi_cancel_flag equal to 0 indicates that display overlays information follows.
[0148] doi_persistence_flag specifies the persistence of the DOI SEI message for the CVS.
[0149] doi_persistence_flag equal to 0 specifies that the DOI SEI message applies to the current AU only.
[0150] doi_persistence_idc equal to 1 specifies that the DOI SEI message applies to the current AU and persists for all subsequent AUs in output order until one or more of the following conditions are true:
[0151] - A new CVS begins; and
[0152] - The bitstream ends.
[0153] - A picture in the current AU with a DOI SEI message with the same value of doi_id is output that follows the current picture in output order.
[0154] doi_num_display_overlays_minus2 plus 2 specifies the number of display overlays for which information is signalled in the SEI message. The value of doi_num_display_overlays_minus2 shall be in the range of 0 to 30, inclusive.
[0155] doi_target_pic_size_present_flag equal to 1 specifies that the doi_target_pic_width_minusl and doi_target_pic_width_minus 1 syntax elements are present. doi_target_pic_size_present_flag equal to 0 specifies that the doi_target_pic_width_minus 1 and doi_target_pic_width_minusl syntax elements are present.
[0156] doi_target_pic_width_minusl + 1, when present, indicates the width of the target picture.
[0157] doi_target_pic_height_minusl+ 1, when present, indicates the height of the target picture.
[0158] doi_num_layers_minusl plus 1 specifies the number of layers which may include display overlays.
[0159] doi_nuh_layer_id[ i ] specifies the value of layer identifier for the i-th layer. When not present, the value of doi_nuh_layer_id[ i ] is inferred to be equal to the layer identifier of the PU containing the DOI SEI message.
[0160] If this SEI message is present in any layer in the current AU, it is a requirement of bitstream conformance that a DOI SEI message with the same value of doi_id and the same payload is present in the layer with layer identifier doi_nuh_layer_id
[0000] .
[0161] doi_pic_partition_flag[ i ]equal to 1 specifies that display overlay components included in the i-th layer are coded as constituent rectangles or subpictures. doi_pic_partition_flag[ i ] equal to 0 specifies that display overlay components included in the i-th layer are coded as pictures.
[0162] It is a requirement of bitstream conformance that at least one of the two following conditions shall be met:- doi_num_layers_minusl is greater than 0- doi_pic_partition_flag[ i ] is equal to 1
[0163] doi_partition_type_flag[ i ] equal to 1 specifies that a display overlay component included in the i-th layer is coded as a constituent rectangle. doi_partition_type_flag[ i ] equal to 0 specifies that a display overlay component is coded as a subpicture.
[0164] When doi_partition_type_flag[ i ] equal to 1, it is a requirement of bitstream conformance that there is a constituent rectangles SEI message preceding the DOI SEI message in decoding order inthe current PU.
[0165] doi_partition_id_len_minusl[ i ] + 1 specifies the length of the doi_partition_id[ i ] syntax elements.
[0166] doi_offset_params_present_flag[ i ] equal to 1 specifies that offset parameters are present for the i-th display overlay. doi_offset_params_present_flag[ i ] equal to 0 specifies that offset parameters are not present for the i-th display overlay.
[0167] doi_offset_param_length_minus 1 plus 1 specifies the length of the doi_top_left_x[ i ] and doi_top_left_y[ i ], syntax elements in bits.
[0168] doi_resampling_enabled_flag equal to 1 specifies that display overlay components may be resampled in the target display picture. doi_resampling_enabled_flag equal to 0 specifies that display overlay components are not resampled in the target display picture.
[0169] doi_size_param_length_minusl plus 1 specifies the length of the doi_width_minusl[ i ] and doi_height_minusl[ i ] syntax elements in bits.
[0170] doi_layer_idx[ i ] specifies the layer index of the texture component of the i-th display overlay. When not present, the the value of doi_layer_idx[ i ] is inferred to be equal to 0. The length of the syntax element is Ceil( Log2( doi_num_layers_minus 1 + 1) ).
[0171] doi_partition_id[ i ], when present and doi_partition_type_flag[ i ] equal to 1, specifies that the texture component of the i-th display overlay is represented by the j -th constituent rectangle when cr_rect_id[ j ] equal doi_partition_id[ i ]. doi_partition_id[ i ], when present and doi_partition_type_flag[ i ] equal to 0, specifies the subpicture index of the texture component of the i- th display overlay. When not present, the value of doi_partition_id[ i ] is inferred to be equal to 0.
[0172] When doi_partition_type_flag[ i ] equal to 1, doi_partition_id[ i ] shall be in the range of 0 .. cr_num_rects_minus 1 [ doi_nuh_layer_id[ i ] ] - 1. When doi_partition_type_flag[ i ] equal to 0, doi_partition_id[ i ] shall be in the range of 0 .. NumSubpics[ doi_nuh_layer_id[ i ] ] - 1.
[0173] doi_alpha_present_flag[ i ] equal to 1 specifies that an alpha component is provided for the i-th display overlay. doi_alpha_present_flag[ i ] equal to 0 specifies that an alpha component is not provided for the i-th display overlay.
[0174] doi_alpha_layer_idx[ i ], when present, specifies the layer index value of the alpha component of the i-th display overlay. When not present, the value of doi_alpha_nuh_layer_idx[ i ] is inferred tobe equal to 0. The length of the syntax element is Ceil( Log2( doi_num_layers_minusl + 1) ).
[0175] doi_alpha_partition_id[ i ], when present and doi_partition_type_flag[ i ] equal to 1, specifies the cr_rect_id[ j ] of the alpha component of the i-th display overlay. doi_partition_id[ i ], when present and doi_partition_type_flag[ i ] equal to 0, specifies the subpicture index of the alpha component of the i-th display overlay. When not present, the value of doi_alpha_partition_id[ i ] is inferred to be equal to 0.
[0176] When doi_partition_type_flag[ i ] equal to 1, doi_alpha_partition_id[ i ] shall be in the range of 0 .. cr_num_rects_minusl[ doi_nuh_layer_id[ i ] ] - 1. When doi_partition_type_flag[ i ] equal to 0, doi_alpha_partition_id[ i ] shall be in the range of 0 .. NumSubpics[ doi_nuh_layer_id[ i ] ] - 1.
[0177] doi_top_left_x[ i ] and doi_top_left_y[ i ] specify the horizontal and vertical positions, respectively, of the top left corner of the i-th display overlay in the target display picture, in luma samples. When not present, the values of doi_top_left_x[ i ] and doi_top_left_y[ i ] are inferred to be equal to 0. The length of the syntax elements is doi_offset_param_length_minusl + 1 bits.
[0178] doi_width_minusl[ i ] plus 1 and doi_height_minusl[ i ] plus 1, when present, specify the width and height, respectively, in luma samples arrays of the i-th display overlay in the target display picture. The length of the syntax elements is doi_size_param_length_minus 1 + 1 bits.
[0179] The variables CodedOverlayTexture[ i ] and CodedOverlayAlpha[ i ] are picture sample arrays with luma resolution CodedOverlayWidth[ i ] x CodedOverlayHeight[ i ], derived as follows:
[0180] - If doi_pic_partition_flag[ doi_layer_idx[ i ] ] is equal to 0, the following applies:CodedOverlayWidth[ i ] is set equal to PicWidthInLumaSamples[ doi_nuh_layer_id[ i ] ] ].CodedOverlayHeight[ i ] is set equal to PicHeightInLumaSamples[ doi_nuh_layer_id[ i ] ].If there is a picture in the AU for the layer with layer identifier doi_nuh_layer_id[ i ], CodedOverlayTexture[ i ] is set equal to the cropped decoded picture from the layer with layer identifier doi_nuh_layer_id[ i ] in the AU. Otherwise (there is no picture in the AU for the layer with layer identifier doi_nuh_layer_id[ i ]), CodedOverlayTexture[ i ] is set equal to the previous cropped decoded picture in output order in the layer with layer identifier doi_nuh_layer_id[ i ].
[0181] Otherwise, the following applies:If doi_alpha_present_flag[ i ] equal to 1, the following applies:o If there is a picture in the AU for the layer with layer identifier doi_alpha_nuh_layer_id[ i ], CodedOverlayAlpha[ i ] is set equal to the cropped decoded picture from the layer with layer identifier doi_alpha_nuh_layer_id[ i ] in the AU.o Otherwise (there is no picture in the AU for the layer with layer identifier doi_nuh_layer_id[ i ]), CodedOverlayAlpha[ i ] is set equal to the previous cropped decoded picture in output order in the layer with layer identifier doi_alpha_nuh_layer_id[ i ].
[0182] - Otherwise, if doi_partition_type_flag[ i ] is equal to 0, the following applies:
[0183] - CodedOverlayTexture[ i ] is set equal to the subpicture with subpicture index doi_partition_id[ i ] from the layer with layer identifier doi_nuh_layer_id[ i ].
[0184] - CodedOverlayWidth[ i ] is set equal to SubPicWidth[ doi_nuh_layer_id[ i ] ][ doi_partition_id[ i ] ].
[0185] - CodedOverlayHeight[ i ] is set equal to SubPicHeight[ doi_nuh_layer_id[ i ] ][ doi_partition_id[ i ] ].
[0186] - If doi_alpha_present_flag[ i ] equal to 0, the following applies:CodedOverlayAlphaWidth[ i ] is set equal to SubPicWidth[ doi_alpha_nuh_layer_id[ i ] ][ doi_partition_id[ i ] ]. CodedOverlayAlphaHeight[ i ] is set equal to SubPicHeight[ doi_alpha_nuh_layer_id[ i ] ][ doi_partition_id[ i ] ]. CodedOverlayAlpha[ i ] is set equal to the subpicture with subpicture index doi_alpha_partition_id[ i ] from the layer with layer identifier doi_alpha_nuh_layer_id[ i ].
[0187] - Otherwise (doi_partition_type_flag[ i ] is equal to 1), the following applies:CodedOverlayWidth[ i ] is set equal toCrRectWidth[ doi_nuh_layer_id[ i ] ][ doi_partition_id[ i ] ].CodedOverlayHeight[ i ] is set equal to CrRectHeight[ doi_nuh_layer_id[ i ] ][ doi_partition_id[ i ] ].CodedOverlayTexture[ i ] is set equal to the constituent rectangle with cr_rect_id[ j ] equal to doi_partition_id[ i ] from the layer with layer identifier doi_nuh_layer_id[ i ]. If doi_alpha_present_flag[ i ] equal to 0CodedOverlayAlphaWidth[ i ] is set equal to CrWRectidth[ doi_alpha_nuh_layer_id[ i ] ][ doi_partition_id[ i ] ]. CodedOverlayAlphaHeight[ i ] is set equal to CrRectHeight[ doi_alpha_nuh_layer_id[ i ] ][ doi_partition_id[ i ] ]. CodedOverlay Alpha is set equal to the constituent rectangle with cr_rect_id[ j ] equal to doi_alpha_partition_id[ i ] from the layer with layer identifier doi_alpha_nuh_layer_id[ i ].
[0188] Example embodiment B-l
[0189] In an alternative embodiment, the doi_nuh_layer_id_present_flag is kept to control the presence of doi_num_layers_minus2.
[0190] An example syntax to implement the solution of embodiment B-l is provided in Table 2: display _overlays_info( payloadSize ) { Descriptor doi_id u(6) doi_cancel_flag u(l) if( !doi_cancel_flag ) {doi_persistence_flag u(l) doi_num_display_overlays_minus2 ue(v) doi_target_pic_size_present_flag u(l) if(doi_target_pic_size_present_flag )doi_target_pic_width_minus 1 u(16) doi_target_pic_height_minus 1 u(16) }doi_nuh_layer_id_present_flag u(l) if(doi_nuh_layer_id_present_flag)doi_num_layers_minus2 ue(v)for( i = 0; i < doi_num_layers_minus2+2; i++ ) {if (doi_num_layers_minus2 > 0 )doi_nuh_layer_id[ i ] u(6) doi_pic_partition_flag[ i ] u(l) if( doi_pic_partition_flag[ i ] ) {doi_partition_type_flag[ i ] u(l) doi_partition_id_len_minusl[ i ] u(4) }}doi_offset_params_present_flag u(l) if( doi_offset_params_present_flag )doi_offset_param_length_minus 1 u(4) doi_resampling_enabled_flag u(l) if( doi_resampling_enabled_flag )doi_size_param_length_minus 1 u(4) for( i = 0; i < doi_num_display_overlays_minus2 + 2; i++ ) {if ( doi_num_layers_minusl > 0 )doi_layer_idx[ i ] u(v) if ( doi_pic_partition_flag[ doi_layer_idx[ i ] ] )doi_partition_id[ i ] u(v) doi_alpha_present_flag[ i ] u(l) if ( doi_alpha_present_flag[ i ] ) {if ( doi_num_layers_minusl > 0 )doi_alpha_layer_idx[ i ] u(v) if ( doi_pic_partition_flag[ doi_alpha_layer_idx[ i ] ] ) doi_alpha_partition_id[ i ] u(v) }if( i > 0 ) {if (doi_offset_params_present_flag )doi_top_left_x[ i ] u(v) doi_top_left_y[ i ] u(v) }if( doi_resampling_enabling_flag ) {doi_width_minus 1 [ i ] u(v) doi_height_minusl[ i ] u(v) }}}}}Table 2
[0191] The required semantics are similar or substantially similar to the example embodiment A. An example change or update is that the number of layers is signaled with a minus 2, instead of a minus 1 as in solution of embodiment A.
[0192] doi_num_layers_minus2 plus 2 specifies the number of layers which may include display overlays.
[0193] Example embodiment B-2
[0194] In an alternative embodiment, the signaling of the layer index is removed to save some extra signaling cost and lower the number of syntax elements. Thus, it is constrained that the signaled number of layers shall include all the layers used in the overlay loop.
[0195] For example, this means that when the overlay loop uses layers identifiers 0, 4 and 5, then the number of signal layers shall be 6 (for this example, option described in embodiment A would have signaled a number of layers equal 3, using the layer_idx to achieve the mapping with layer identifier).
[0196] An example syntax to implement the solution of embodiment B-2 is provided in the Table 3 below:display _overlays_info( payloadSize ) { Descriptor doi_id u(6) doi_cancel_flag u(l) if( !doi_cancel_flag ) {doi_persistence_flag u(l) doi_num_display_overlays_minus2 ue(v) doi_target_pic_size_present_flag u(l) if(doi_target_pic_size_present_flag )doi_target_pic_width_minus 1 u(16) doi_target_pic_height_minus 1 u(16) }doi_num_layers_minus 1 ue(v) for( i = 0; i <= doi_num_layers_minusl; i-i— I- ) {doi_pic_partition_flag[ i ] u(l) if( doi_pic_partition_flag[ i ] ) {doi_partition_type_flag[ i ] u(l) doi_partition_id_len_minusl[ i ] u(4) }}doi_offset_params_present_flag u(l)if( doi_offset_params_present_flag )doi_offset_param_length_minus 1 u(4) doi_resampling_enabled_flag u(l) if( doi_resampling_enabled_flag )doi_size_param_length_minus 1 u(4) for( i = 0; i < doi_num_display_overlays_minus2 + 2; i++ ) {if ( doi_num_layers_minusl > 0 ) {doi_nuh_layer_id[ i ] u(6) pldx = doi_nuh_layer_id[ i ]} elsepldx = 0if ( doi_pic_partition_flag[ pldx ] )doi_partition_id[ i ] u(v) doi_alpha_present_flag[ i ] u(l) if ( doi_alpha_present_flag[ i ] ) {if ( doi_num_layers_minusl > 0 )doi_alpha_nuh_layer_id[ i ] u(6) if ( doi_pic_partition_flag[ pldx ] )doi_alpha_partition_id[ i ] u(v) }if( i > 0 ) {if (doi_offset_params_present_flag )doi_top_left_x[ i ] u(v) doi_top_left_y[ i ] u(v) }if( doi_resampling_enabling_flag ) {doi_width_minus 1 [ i ] u(v) doi_height_minusl[ i ] u(v) }}}}}Table 3
[0197] An alternative way of writing the logic for pldx derivation can be the following: for( i = 0; i < doi_num_display_overlays_minus2 + 2; i++ ) {if ( doi_num_layers_minusl > 0 )doi_nuh_layer_id[ i ] u(6)pldx = (doi_num_layers_minusl > 0 ? doi_nuh_layer_id[ i ] : 0 )if ( doi_pic_partition_flag[ pldx ] )doi_partition_id[ i ] u(v) doi_alpha_present_flag[ i ] u(l)
[0198] At least a partial example semantics corresponding to the above example syntax of Table 3 is provided below. In an example, the semantics is changed or updated to reflect the constraint on layer identifiers. For example:
[0199] doi_num_layers_minusl plus 1 specifies the number of layers which may include display overlays.
[0200] When more than one layer is used, it is a requirement that doi_num_layers_minusl is set to the maximum value doi_alpha_nuh_layer_id[ i ] and doi_nuh_layer_id[ i ], for i=0 to doi_num_display_overlay s_minus2+ 1.
[0201] Combination of embodiments B-l and B-2
[0202] In an alternative embodiment, both embodiments B-l and B-2 are combined, by keeping the doi_nuh_layer_id_present_flag and removing the doi_nuh_layer_id as compared to embodiment A. The syntax for the combination of embodiments B-l and B-2 can be directly derived from syntax for embodiments B-l and B-2 as those changes do not overlap. Similarly, the required semantics changes are just the direct combinations of semantics for embodiments B-l and B-2 changes.
[0203] FIG. 9 is an example apparatus 900, which may be implemented in hardware, configured to implement the examples described herein. The apparatus 900 comprises at least one processor 902 (e.g., an FPGA and / or CPU), at least one memory 904 including computer program code 905, the computer program code 905 having instructions to carry out the methods described herein, wherein the at least one memory 904 and the computer program code 905 are configured to, with the at least one processor 902, cause the apparatus 900 to implement circuitry, a process, component, module, or function (implemented with control module 906) for implementing the examples described herein, including implementing display overlays. For example, implementing layer dependent partition type for display overlays information in supplemental enhancement information. Optionally included encoder 908 of the control module 906 implements encoding based on the examples described herein, and optionally included decoder 910 implements decoding based on the examples described herein. The at least one memory 904 may be a non-transitory memory, a transitory memory, a volatile memory (e.g. RAM), or a non-volatile memory (e.g., ROM).
[0204] The apparatus 900 includes a display and / or I / O interface 912, which includes user interface (UI) circuitry and elements, that may be used to display features or a status of the methods described herein (e.g., as one of the methods is being performed or at a subsequent time), or to receive input from a user such as with using a keypad, camera, touchscreen, touch area, microphone, biometric recognition, one or more sensors, etc. The apparatus 900 includes one or more communication e.g. network (N / W) interfaces (I / F(s)) 914. The communication I / F(s) 914 may be wired and / or wireless and communicate over the Internet / other network(s) via any communication technique including via one or more links 916. The communication I / F(s) 914 may comprise one or more transmitters or one or more receivers.
[0205] The transceiver 918 comprises one or more transmitters 920 and one or more receivers 922. The transceiver 918 and / or communication I / F(s) 914 may comprise standard well-known components such as an amplifier, filter, frequency-converter, (de)modulator, and encoder / decoder circuitries and one or more antennas, such as antennas 924 used for communication over wireless link 926.
[0206] The control module 906 of the apparatus 900 comprises one of or both parts 906-1 and / or 906-2, which may be implemented in a number of ways. The control module 906 may be implemented in hardware as control module 906-1, such as being implemented as part of the at least one processor 902. The control module 906-1 may be implemented also as an integrated circuit or through other hardware such as a programmable gate array. In another example, the control module 906 may be implemented as control module 906-2, which is implemented as computer program code (having corresponding instructions) 905 and is executed by the at least one processor 902. For instance, the at least one memory 904 store instructions that, when executed by the at least one processor 902, cause the apparatus 900 to perform one or more of the operations as described herein. Furthermore, the at least one processor 902, the at least one memory 904, and example algorithms (e.g., as flowcharts and / or signaling diagrams), encoded as instructions, programs, or code, are means for causing performance of the operations described herein.
[0207] The apparatus 900 to implement the functionality of control module 906 may correspond to any of the apparatuses depicted herein. Alternatively, apparatus 900 and its elements may not correspond to any of the other apparatuses depicted herein, as apparatus 900 may be part of a self- organizing / optimizing network (SON) node or other node, such as a node in a cloud.
[0208] The apparatus 900 may also be distributed throughout the network including within and between apparatus 900 and any network element (such as a base station and / or terminal device and / or user equipment).
[0209] Interface 928 enables data communication and signaling between the various items ofapparatus 900, as shown in FIG. 9. For example, the interface 928 may be one or more buses such as address, data, or control buses, and may include any interconnection mechanism, such as a series of lines on a motherboard or integrated circuit, fiber optics or other optical communication equipment, and the like. Computer program code (e.g. instructions) 905, including control module 906 may comprise object-oriented software configured to pass data or messages between objects within computer program code 905. The apparatus 900 need not comprise each of the features mentioned, or may comprise other features as well. The various components of apparatus 900 may at least partially reside in a housing 930, or a subset of the various components of apparatus 900 may at least partially be located in different housings, which different housings may include housing 930.
[0210] FIG. 10 shows a schematic representation of non-volatile memory media 1000a (e.g. computer / compact disc (CD) or digital versatile disc (DVD)) and 1000b (e.g. universal serial bus (USB) memory stick) and 1000c (e.g. cloud storage for downloading instructions and / or parameters 1002 or receiving emailed instructions and / or parameters 1002) storing instructions and / or parameters 1002 which when executed by a processor allows the processor to perform one or more of the operations of the methods described herein. Instructions and / or parameters 1002 may represent or correspond to a non-transitory computer readable medium.
[0211] FIG. 11 is an example method 1100 performed with an encoder, based on the examples described herein. At 1102, the method 1100 includes generating a syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling signaling for partitioning information, wherein the partitioning information comprises one or more partition types intended to be used for identifying display overlays within different layers of a bitstream, and wherein the one or more partition types are signaled as being layer dependent. At 1104, the method 1100 includes signaling, in or along the bitstream, the syntax comprising the number of layers field.
[0212] In an embodiment, the syntax is comprised in a display overlay information message. An example of the display overlay information message include, but is not limited to, a display overlay information supplemental information message.
[0213] The method 1100 may be performed with an encoding apparatus, such as the apparatus 100, 900, or apparatuses depicted in FIG. 3 and FIG. 4, for example, the transmitting apparatus 404 with the encoder 402, or the apparatus 400 with the encoder 402.
[0214] FIG. 12 is an example method 1200 performed with a decoder, based on the example embodiments described herein. At 1202, the method 1200 includes receiving, from or along a bitstream,syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling partitioning information, wherein the partitioning information comprises one or more partition type intended to be used for identifying overlays within different layers of the bitstream, and wherein the one or more partition type are received as being layer dependent. At 1204, the method 1200 includes decoding the syntax. At 1206, the method 1200 includes using the syntax for assembling the different layers from the bitstream to generate a target picture.
[0215] In an embodiment, the syntax is comprised in a display overlay information message. An example of the display overlay information message include, but is not limited to, a display overlay information supplemental information message.
[0216] The method 1200 may be performed with a decoding apparatus, such as the apparatus 100, 900, or apparatuses depicted in FIG. 3 and FIG. 4, for example, the receiving apparatus 408 with the decoder 410, or the apparatus 400 with the decoder 410.
[0217] As described above, FIG. 11 and 12 include flowcharts of an apparatus (e.g. 100, 400, 900, or any other apparatuses described herein), method, and computer program product according to certain example embodiments. It will be understood that each block of the flowcharts, and combinations of blocks in the flowcharts, may be implemented by various means, such as hardware, firmware, processor, circuitry, and / or other devices associated with execution of software including one or more computer program instructions. For example, one or more of the procedures described above may be embodied by computer program instructions. In this regard, the computer program instructions which embody the procedures described above may be stored by a memory (e.g. 112 or 904) of an apparatus employing an embodiment of the present invention and executed by processing circuitry (e.g., 110 or 902) of the apparatus. As will be appreciated, any such computer program instructions may be loaded onto a computer or other programmable apparatus (e.g., hardware) to produce a machine, such that the resulting computer or other programmable apparatus implements the functions specified in the flowchart blocks. These computer program instructions may also be stored in a computer-readable memory that may direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture, the execution of which implements the function specified in the flowchart blocks. The computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operations to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide operations for implementing the functions specified in the flowchartblocks.
[0218] A computer program product is therefore defined in those instances in which the computer program instructions, such as computer-readable program code portions, are stored by at least one non- transitory computer-readable storage medium with the computer program instructions, such as the computer-readable program code portions, being configured, upon execution, to perform the functions described above, such as in conjunction with the flowchart(s) of FIG. 11 and 12. In other embodiments, the computer program instructions, such as the computer-readable program code portions, need not be stored or otherwise embodied by a non-transitory computer-readable storage medium, but may, instead, be embodied by a transitory medium with the computer program instructions, such as the computer- readable program code portions, still being configured, upon execution, to perform the functions described above.
[0219] Accordingly, blocks of the flowcharts support combinations of means for performing the specified functions and combinations of operations for performing the specified functions for performing the specified functions. It will also be understood that one or more blocks of the flowcharts, and combinations of blocks in the flowcharts, may be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
[0220] In some embodiments, certain ones of the operations above may be modified or further amplified. Furthermore, in some embodiments, additional optional operations may be included. Modifications, additions, or amplifications to the operations above may be performed in any order and in any combination.
[0221] In the above, some embodiments have been described with reference to SEI message(s). It needs to be understood that embodiments may be similarly realized with any other similar syntax structures, such as metadata OBU(s).
[0222] In the above, some example embodiments have been described with the help of syntax of the bitstream. It needs to be understood, however, that the corresponding structure and / or computer program may reside at the encoder for generating the bitstream and / or at the decoder for decoding the bitstream.
[0223] In the above, where example embodiments have been described with reference to an encoder, it needs to be understood that the resulting bitstream and the decoder have corresponding elements in them. Likewise, where example embodiments have been described with reference to a decoder, it needs to be understood that the encoder has structure and / or computer program for generating the bitstreamto be decoded by the decoder.
[0224] Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe example embodiments in the context of certain example combinations of elements and / or functions, it should be appreciated that different combinations of elements and / or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and / or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Accordingly, the description is intended to embrace all such alternatives, modifications and variances which fall within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
[0225] It should be understood that the foregoing description is only illustrative. Various alternatives and modifications may be devised by those skilled in the art. For example, features recited in the various dependent claims could be combined with each other in any suitable combination(s). In addition, features from different embodiments described above could be selectively combined into a new embodiment. Accordingly, the description is intended to embrace all such alternatives, modifications and variances which fall within the scope of the appended claims.
[0226] References to a ‘computer’, ‘processor’, etc. should be understood to encompass not only computers having different architectures such as single / multi-processor architectures and sequential (Von Neumann) / parallel architectures but also specialized circuits such as field-programmable gate arrays (FPGA), application specific circuits (ASIC), signal processing devices and other processing circuitry. References to computer program, instructions, code etc. should be understood to encompass software for a programmable processor or firmware such as, for example, the programmable content of a hardware device such as instructions for a processor, or configuration settings for a fixed-function device, gate array or programmable logic device, and the like.
[0227] As used herein, the term ‘circuitry’ may refer to any of the following: (a) hardware circuit implementations, such as implementations in analog and / or digital circuitry, and (b) combinations of circuits and software (and / or firmware), such as (as applicable): (i) a combination of processor(s) or (ii) portions of processor(s) / software including digital signal processor(s), software, and memory(ies) thatwork together to cause an apparatus to perform various functions, and (c) circuits, such as a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation, even when the software or firmware is not physically present. This description of ‘circuitry’ applies to uses of this term in this application. As a further example, as used herein, the term ‘circuitry’ would also cover an implementation of merely a processor (or multiple processors) or a portion of a processor and its (or their) accompanying software and / or firmware. The term ‘circuitry’ would also cover, for example and when applicable to the particular element, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device, or another network device.
[0228] Circuitry or Circuit: As used in this application, the term ‘circuitry’ or ‘circuit’ may refer to one or more or all of the following:(a) hardware-only circuit implementations (such as implementations in only analog and / or digital circuitry); and(b) combinations of hardware circuits and software, such as (as applicable):(i) a combination of analog and / or digital hardware circuit(s) with software / firmware; and(ii) any portions of hardware processor(s) with software (including digital signal processor(s)), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone or server, to perform various functions); and(c) hardware circuit(s) and or processor(s), such as a microprocessor(s) or a portion of a microprocessor(s), that requires software (e.g., firmware) for operation, but the software may not be present when it is not needed for operation.
[0229] This definition of circuitry applies to all uses of this term in this application, including in any claims. As a further example, as used in this application, the term circuitry also covers an implementation of merely a hardware circuit or processor (or multiple processors) or portion of a hardware circuit or processor and its (or their) accompanying software and / or firmware. The term circuitry also covers, for example, and when applicable to the particular claim element, a baseband integrated circuit or processor integrated circuit for a mobile device or a similar integrated circuit in server, a cellular network device, or other computing or network device.
Claims
CLAIMSWhat is claimed is:
1. An apparatus comprising:at least one processor; andat least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform:generating a syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling signaling for partitioning information, wherein the partitioning information comprises one or more partition types intended to be used for identifying display overlays within different layers of a bitstream, and wherein the one or more partition types are signaled as being layer dependent; andsignaling, in or along the bitstream, the syntax comprising the number of layers field.
2. The apparatus of claim 1, wherein the syntax is comprised in a display overlay information message.
3. The apparatus of any of the claims 1 or 2, wherein the syntax further comprises a layer index comprising a first value and a first index, for each display overlay, wherein the first value comprises a value of layer identifier for layer identified by the first index.
4. The apparatus of any of the previous claims, wherein controlling the signaling for the partitioning information comprises indicating whether layer identifiers are signaled for each display overlay or not.
5. The apparatus of claim 4, wherein the apparatus is further caused to perform: signaling a layer identifier for each layer index, wherein the layer identifier identifies a layer.
6. The apparatus of any of the previous claims, wherein the syntax further comprises a partition flag field comprising a second value and a second index, wherein when the second value of the partition flag field is equal to a first predetermined value it specifies that a display overlay comprised in a layer identified by the second index is coded as a constituent rectangle or a subpicture, and wherein when the second value is equal to a second predetermined value itspecifies that a display overlay comprised in a layer identified by the second index is coded as a picture.
7. The apparatus of claim 6, wherein the syntax further comprises a partition type field comprising a third value and a third index, wherein when the third value is equal to the first predetermined value it specifies that a display overlay comprised in the layer identified by the third index is coded as the constituent rectangle, and wherein when the third value is equal to the second predetermined value it specifies that a display overlay comprised in a layer identified by the third index is coded as the subpicture.
8. The apparatus of any of the previous claims, wherein the syntax further comprises layer index field comprising a fourth value and fourth index, wherein the fourth value specifies a layer index of a texture component of a display overlay identified by the fourth index.
9. The apparatus of any of the previous claims, wherein the syntax further comprises an alpha layer index field comprising a fifth value and a fifth index, wherein the fifth value specifies a layer index of an alpha component of a display overlay identified by the fifth index.
10. The apparatus of any of the previous claims, wherein the syntax further comprises a flag for indicating presence of two or more layers in the bitstream.
11. The apparatus of any of the claims 2 to 10, wherein the display overlay information message comprises a display overlay information supplemental information message.
12. An apparatus comprising:at least one processor; andat least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to:receiving, from or along a bitstream, syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling partitioning information, wherein the partitioning information comprises one or more partition type intended to be used for identifying overlays within different layers of the bitstream, and wherein the one or more partition type are received as being layer dependent;decoding the syntax; andusing the syntax for assembling the different layers from the bitstream to generate a target picture.
13. The apparatus of claim 12, wherein the syntax is comprised in a display overlay information message.
14. The apparatus of any of the claims 12 or 13, wherein the syntax further comprises a layer index comprising a first value and a first index, for each display overlay, wherein the first value comprises a value of layer identifier for a layer identified by the first index.
15. The apparatus of any of the claims 12 to 14, wherein the partitioning information comprises an indication whether layer identifiers are signaled for each display overlay or not.
16. The apparatus of claim 15, wherein the apparatus is further caused to perform: receiving a layer identifier for each layer index, wherein the layer identifier identifies a layer.
17. The apparatus of any of the claims 12 to 16, wherein the syntax further comprises a partition flag field comprising a second value and a second index, wherein when the second value of the partition flag field is equal to a first predetermined value it specifies that a display overlay comprised in a layer identified by the second index is coded as a constituent rectangle or a subpicture, and wherein when the second value is equal to a second predetermined value it specifies that a display overlay comprised in a layer identified by the second index is coded as a picture.
18. The apparatus of claim 17, wherein the syntax further comprises a partition type field comprising a third value and a third index, wherein when the third value is equal to the first predetermined value it specifies that a display overlay comprised in the layer identified by the third index is coded as the constituent rectangle, and wherein when the third value is equal to the second predetermined value it specifies that a display overlay comprised in a layer identified by the third index is coded as the subpicture.
19. The apparatus of any of the claims 12 to 18, wherein the syntax further comprises layer index field comprising a fourth value and fourth index, wherein the fourth value specifies a layer index of a texture component of a display overlay identified by the fourth index.
20. The apparatus of any of the claims 12 to 19, wherein the syntax further comprises an alpha layer index field comprising a fifth value and a fifth index, wherein the fifth value specifies a layer index of an alpha component of a display overlay identified by the fifth index.
21. The apparatus of any of the claims 12 to 20, wherein the syntax further comprises a flag for indicating presence of two or more layers in the bitstream.
22. The apparatus of any of the claims 13 to 21, wherein the display overlay information message comprises a display overlay information supplemental information message.
23. A method comprising:generating a syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling signaling for partitioning information, wherein the partitioning information comprises one or more partition types intended to be used for identifying display overlays within different layers of a bitstream, and wherein the one or more partition types are signaled as being layer dependent; andsignaling, in or along the bitstream, the syntax comprising the number of layers field.
24. The method of claim 23, wherein the syntax is comprised in a display overlay information message.
25. The method of any of the claims 23 or 24, wherein the syntax further comprises a layer index comprising a first value and a first index, for each display overlay, wherein the first value comprises a value of layer identifier for layer identified by the first index.
26. The method of any of the claims 23 to 25, wherein controlling the signaling for the partitioning information comprises indicating whether layer identifiers are signaled for each display overlay or not.
27. The method of claim 26 further comprising signaling a layer identifier for each layer index, wherein the layer identifier identifies a layer.
28. The method of any of the claims 23 to 27, wherein the syntax further comprises a partition flag field comprising a second value and a second index, wherein when the second value of the partition flag field is equal to a first predetermined value it specifies that a display overlay comprised in a layer identified by the second index is coded as a constituent rectangle or a subpicture, and wherein when the second value is equal to a second predetermined value it specifies that a display overlay comprised in a layer identified by the second index is coded as a picture.
29. The method of claim 28, wherein the syntax further comprises a partition type field comprising a third value and a third index, wherein when the third value is equal to the first predetermined value it specifies that a display overlay comprised in the layer identified by the third index is coded as the constituent rectangle, and wherein when the third value is equal to the second predetermined value it specifies that a display overlay comprised in a layer identified by the third index is coded as the subpicture.
30. The method of any of the claims 23 to 29, wherein the syntax further comprises layer index field comprising a fourth value and fourth index, wherein the fourth value specifies a layer index of a texture component of a display overlay identified by the fourth index.
31. The method of any of the claims 23 to 30, wherein the syntax further comprises an alpha layer index field comprising a fifth value and a fifth index, wherein the fifth value specifies a layer index of an alpha component of a display overlay identified by the fifth index.
32. The method of any of the claims 23 to 31, wherein the syntax further comprises a flag for indicating presence of two or more layers in the bitstream.
33. The method of any of the claims 24 to 32, wherein the display overlay information message comprises a display overlay information supplemental information message.
34. A method comprising:receiving, from or along a bitstream, syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling partitioning information, wherein the partitioning information comprises one or more partition type intended to be used for identifying overlays within different layers of the bitstream, and wherein the one or more partition type are received as being layer dependent;decoding the syntax; andusing the syntax for assembling the different layers from the bitstream to generate a target picture.
35. The method of claim 34, wherein the syntax is comprised in a display overlay information message.
36. The method of any of the claims 34 or 35, wherein the syntax further comprises a layerindex comprising a first value and a first index, for each display overlay, wherein the first value comprises a value of layer identifier for a layer identified by the first index.
37. The method of any of the claims 34 to 36, wherein the partitioning information comprises an indication whether layer identifiers are signaled for each display overlay or not.
38. The method of claim 37 further comprising receiving a layer identifier for each layer index, wherein the layer identifier identifies a layer.
39. The method of any of the claims 34 to 38, wherein the syntax further comprises a partition flag field comprising a second value and a second index, wherein when the second value of the partition flag field is equal to a first predetermined value it specifies that a display overlay comprised in a layer identified by the second index is coded as a constituent rectangle or a subpicture, and wherein when the second value is equal to a second predetermined value it specifies that a display overlay comprised in a layer identified by the second index is coded as a picture.
40. The method of claim 39, wherein the syntax further comprises a partition type field comprising a third value and a third index, wherein when the third value is equal to the first predetermined value it specifies that a display overlay comprised in the layer identified by the third index is coded as the constituent rectangle, and wherein when the third value is equal to the second predetermined value it specifies that a display overlay comprised in a layer identified by the third index is coded as the subpicture.
41. The method of any of the claims 34 to 40, wherein the syntax further comprises layer index field comprising a fourth value and fourth index, wherein the fourth value specifies a layer index of a texture component of a display overlay identified by the fourth index.
42. The method of any of the claims 34 to 41, wherein the syntax further comprises an alpha layer index field comprising a fifth value and a fifth index, wherein the fifth value specifies a layer index of an alpha component of a display overlay identified by the fifth index.
43. The method of any of the claims 34 to 42, wherein the syntax further comprises a flag for indicating presence of two or more layers in the bitstream.
44. The method of any of the claims 35 to 43, wherein the display overlay information message comprises a display overlay information supplemental information message.
45. An apparatus comprising:means for generating a syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling signaling for partitioning information, wherein the partitioning information comprises one or more partition types intended to be used for identifying display overlays within different layers of a bitstream, and wherein the one or more partition types are signaled as being layer dependent; andmeans for signaling, in or along the bitstream, the syntax comprising the number of layers field.
46. The apparatus of claim 45, wherein the apparatus further comprises means for performing the methods as claimed in any of the claims 22 to 33.
47. An apparatus comprising:means for receiving, from or along a bitstream, syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling partitioning information, wherein the partitioning information comprises one or more partition type intended to be used for identifying overlays within different layers of the bitstream, and wherein the one or more partition type are received as being layer dependent;means for decoding the syntax; andmeans for using the syntax for assembling the different layers from the bitstream to generate a target picture.
48. The apparatus of claim 47, wherein the apparatus further comprises means for performing the methods as claimed in any of the claims 34 to 44.
49. A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform:generating a syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling signaling for partitioning information, wherein the partitioning information comprises one or more partition types intended to be used for identifying display overlays within different layers of a bitstream, and wherein the one or more partition types are signaled as being layer dependent; andsignaling, in or along the bitstream, the syntax comprising the number of layers field.
50. The apparatus of claim 49, wherein the apparatus is further caused to perform the methods as claimed in any of the claims 23 to 33.
51. The computer readable medium of any of the claims 49 or 50, wherein the computer readable medium comprises a non-transitory computer readable medium.
52. A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform:means for receiving, from or along a bitstream, syntax comprising a number of layers field, wherein the number of layers field specifies a number of layers comprising display overlays and is intended to be used for controlling partitioning information, wherein the partitioning information comprises one or more partition type intended to be used for identifying overlays within different layers of the bitstream, and wherein the one or more partition type are received as being layer dependent;means for decoding the syntax; andmeans for using the syntax for assembling the different layers from the bitstream to generate a target picture.
53. The apparatus of claim 52, wherein the apparatus is further caused to perform the methods as claimed in any of the claims 34 to 44.
54. The computer readable medium of any of the claims 52 or 53, wherein the computer readable medium comprises a non-transitory computer readable medium.
Citation Information
Patent Citations
Method and device for coding a video content comprising a sequence of pictures and a logo
WO2007003627A1