Image decoding method, image encoding method, computer-readable storage medium, and data transmission method for image
By preventing unnecessary byte alignment in video compression and ensuring alignment only when label information exists, the method addresses the increased costs of high-resolution video transmission and storage, enhancing encoding and decoding efficiency.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- LG ELECTRONICS INC
- Filing Date
- 2025-10-17
- Publication Date
- 2026-04-23
AI Technical Summary
The increasing demand for high-resolution, high-quality video leads to higher transmission and storage costs due to the increase in transmitted information or bits, necessitating high-efficiency video compression technology to reduce bit waste and improve coding efficiency.
Prevent unnecessary byte alignment when label information is absent in Object Mask Information (OMI) or Supplemental Enhancement Information (SEI) messages, ensuring byte alignment only when label information exists, and maintaining consistency in syntax structure for improved parsing stability.
This approach reduces bit waste, enhances bitstream efficiency, and improves encoding and decoding efficiency by ensuring byte alignment is performed only when necessary, thereby optimizing video compression.
Smart Images

Figure KR2025016501_23042026_PF_FP_ABST
Abstract
Description
Video decoding method, video encoding method, computer-readable storage medium and method for transmitting data for video
[0001] The present disclosure relates to a method for decoding / encoding image information, a computer-readable storage medium for storing image information, and a method for transmitting image information.
[0002] Recently, the demand for high-resolution, high-quality video, such as HD (High Definition) and UHD (Ultra High Definition), has been increasing across various fields. As video data becomes higher in resolution and quality, the relative amount of information or bits transmitted increases compared to conventional video data. This increase in transmitted information or bits leads to higher transmission and storage costs.
[0003] Accordingly, high-efficiency video compression technology is required to effectively transmit, store, and play back high-resolution, high-quality video information.
[0004] The present disclosure aims to reduce bit waste and improve overall coding efficiency by preventing unnecessary byte alignment when label information is not present in an Object Mask Information (OMI) or Supplemental Enhancement Information (SEI) message.
[0005] The present disclosure aims to improve bitstream efficiency and, consequently, improve encoding and decoding efficiency by ensuring that byte alignment is performed only when label information exists within the OMI SEI message.
[0006] The present disclosure aims to ensure consistency in the syntax structure in which label information is parsed in byte units through a byte alignment process, and to improve the parsing stability of the bitstream.
[0007] The technical problems to be solved in this disclosure are not limited to those mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art to which this disclosure belongs from the description below.
[0008] According to one aspect of the present disclosure, an image decoding method comprises the steps of obtaining at least one Object Mask Information (OMI) supplemental enhancement information (SEI) message associated with a current layer from a bitstream, and obtaining object mask information based on the at least one OMI SEI message, wherein the object mask information comprises label information for an object mask, information on whether the label information for the object mask exists, and a zero bit for byte alignment within the OMI SEI message.
[0009] According to one aspect of the present disclosure, a decoding device for decoding image information acquires at least one Object Mask Information (OMI) supplemental enhancement information (SEI) message associated with a current layer from a bitstream, and acquires object mask information based on the OMI SEI message. The object mask information is characterized by including label information for an object mask, information on whether the label information for the object mask exists, and a zero bit for byte alignment within the OMI SEI message.
[0010] In a method or device for decoding the above image information, the object mask information can be obtained by obtaining information on whether label information for the object mask exists from the OMI SEI message, obtaining a zero bit for byte alignment within the OMI SEI message based on the information on whether label information exists, and obtaining label information for the object mask.
[0011] In a method or device for decoding the above image information, when the information on the existence of the label information indicates that the label information exists within the OMI SEI message, the label information may be characterized as being obtained after obtaining the zero bit for byte alignment within the OMI SEI message.
[0012] In a method or device for decoding the above image information, the information regarding the existence of the label information indicates that the label information exists within the OMI SEI message, and if the current bit position within the OMI SEI message is not aligned to a byte unit position, the byte alignment may be performed based on the zero bit.
[0013] In a method or device for decoding the above image information, if the information on the existence of the label information indicates that the label information does not exist within the OMI SEI message, the zero bit may be characterized as not being acquired.
[0014] In a method or device for decoding the above image information, the zero bit may be characterized as being a single bit with a value set to 0.
[0015] In the method or device for decoding the above image information, the current layer may be characterized as being associated with a major layer among a plurality of layers.
[0016] According to one aspect of the present disclosure, an image encoding method comprises the steps of: generating at least one Object Mask Information (OMI) supplemental enhancement information (SEI) message associated with a current layer based on object mask information; and encoding image information including the at least one OMI SEI message, wherein the object mask information includes label information for the object mask, information on whether the label information for the object mask exists, and a zero bit for byte alignment within the OMI SEI message.
[0017] According to one aspect of the present disclosure, an apparatus for encoding image information generates at least one Object Mask Information (OMI) supplemental enhancement information (SEI) message associated with a current layer based on object mask information, and encodes image information including the at least one OMI SEI message. The object mask information is characterized by including label information for an object mask, information on whether the label information for the object mask exists, and a zero bit for byte alignment within the OMI SEI message.
[0018] In a method or device for encoding the above image information, the OMI SEI message can be generated by encoding label information for the object mask, generating and encoding information regarding the existence of label information based on the label information for the object mask within the OMI SEI message, and inserting a zero bit for byte alignment within the OMI SEI message based on the label information for the object mask within the OMI SEI message.
[0019] In a method or device for encoding the above image information, if label information for the object mask exists within the OMI SEI message and the current bit position within the OMI SEI message is not aligned to a byte unit position, the label information may be characterized by being encoded after inserting the zero bit for byte alignment within the OMI SEI message.
[0020] In a method or device for encoding the above image information, if label information for the object mask does not exist within the OMI SEI message, the zero bit may not be inserted.
[0021] In a method or device for encoding the above-mentioned image information, the zero bit may be characterized as being a single bit with a value set to 0.
[0022] In a method or device for encoding the above-mentioned image information, the current layer may be characterized as being associated with a major layer among a plurality of layers.
[0023] According to one aspect of the present disclosure, a bitstream generated by an image encoding method is stored in a computer-readable storage medium. The image encoding method comprises the steps of generating at least one Object Mask Information (OMI) supplemental enhancement information (SEI) message associated with a current layer based on object mask information, and encoding image information including the at least one OMI SEI message, wherein the object mask information includes label information for an object mask, information on the existence of the label information for the object mask, and a zero bit for byte alignment within the OMI SEI message.
[0024] According to one aspect of the present disclosure, a method for transmitting data for an image comprises the steps of acquiring image information, wherein the image information includes at least one Object Mask Information (OMI) and Supplemental Enhancement Information (SEI) message associated with a current layer, and transmitting the data including the image information, wherein the object mask information includes label information for the object mask, information on whether the label information for the object mask exists, and a zero bit for byte alignment within the OMI and SEI message.
[0025] The features briefly summarized above regarding the present disclosure are merely exemplary aspects of the detailed description of the present disclosure that follows and do not limit the scope of the present disclosure.
[0026] According to the present disclosure, when label information does not exist within an Object Mask Information (OMI) or Supplemental Enhancement Information (SEI) message, unnecessary byte alignment is prevented, thereby reducing bit waste and improving overall coding efficiency.
[0027] According to the present disclosure, by performing byte alignment only when label information exists within the OMI SEI message, the efficiency of the bitstream is further enhanced, and consequently, the encoding and decoding efficiency can be improved.
[0028] According to the present disclosure, through a byte alignment process, consistency of the syntax structure in which label information is parsed in byte units can be ensured and parsing stability of the bitstream can be improved.
[0029] The effects obtainable from the present disclosure are not limited to those mentioned above, and other unmentioned effects will be clearly understood by those skilled in the art to which the present disclosure pertains from the description below.
[0030] FIG. 1 is a schematic diagram illustrating a video coding system to which an embodiment according to the present disclosure can be applied.
[0031] FIG. 2 is a schematic diagram showing an encoding device to which an embodiment according to the present disclosure can be applied.
[0032] FIG. 3 is a schematic diagram showing a decoding device to which an embodiment according to the present disclosure can be applied.
[0033] Figure 4 illustrates an exemplary hierarchical structure for a coded video / image.
[0034] FIG. 5 is a diagram illustrating a method for decoding image information according to one embodiment of the present disclosure.
[0035] FIG. 6 is a diagram illustrating a method for encoding image information according to one embodiment of the present disclosure.
[0036] FIG. 7 is a drawing illustrating an exemplary content streaming system to which an embodiment according to the present disclosure can be applied.
[0037] Hereinafter, embodiments of the present disclosure are described in detail with reference to the attached drawings so that those skilled in the art can easily implement them. However, the present disclosure may be embodied in various different forms and is not limited to the embodiments described herein.
[0038] In describing the embodiments of the present disclosure, detailed descriptions of known configurations or functions are omitted if it is determined that such descriptions could obscure the essence of the present disclosure. Additionally, parts of the drawings unrelated to the description of the present disclosure have been omitted, and similar parts are denoted by similar reference numerals.
[0039] In the present disclosure, when a component is described as being "connected," "combined," or "joined" with another component, this may include not only a direct connection but also an indirect connection in which another component exists in between. Furthermore, when a component is described as "comprising" or "having" another component, this means that, unless specifically stated otherwise, it does not exclude the other component but may include an additional component.
[0040] In the present disclosure, terms such as first, second, etc. are used solely for the purpose of distinguishing one component from another and do not limit the order or importance of the components unless specifically stated otherwise. Accordingly, within the scope of the present disclosure, a first component in one embodiment may be referred to as a second component in another embodiment, and likewise, a second component in one embodiment may be referred to as a first component in another embodiment.
[0041] In this disclosure, distinct components are intended to clearly describe their respective features and do not imply that the components are separate. That is, multiple components may be integrated to form a single hardware or software unit, or a single component may be distributed to form multiple hardware or software units. Accordingly, such integrated or distributed embodiments are included within the scope of this disclosure, unless otherwise noted.
[0042] In the present disclosure, the components described in various embodiments do not necessarily mean essential components, and some may be optional components. Accordingly, embodiments consisting of a subset of the components described in one embodiment are also included within the scope of the present disclosure. Furthermore, embodiments including additional components in addition to the components described in various embodiments are also included within the scope of the present disclosure.
[0043] The present disclosure relates to the encoding and decoding of images. For example, the methods and embodiments disclosed in this document may be applied to methods disclosed in the VVC (versatile video coding) standard, EVC (essential video coding) standard, AV1 (AOMedia Video 1) standard, AVS2 (2nd generation of audio video coding standard) or next-generation video / image coding standards (e.g., H.267 or H.268).
[0044] The present disclosure presents various embodiments relating to video / image coding, and unless otherwise stated, said embodiments may be performed in combination with one another.
[0045] Unless newly defined in this disclosure, the terms used herein may have the ordinary meanings commonly used in the technical field to which this disclosure belongs.
[0046] In this disclosure, "video" may refer to a set of images over time. In this disclosure, "picture" generally refers to a unit representing a single image at a specific time, and a slice / tile is a unit that constitutes a part of a picture in coding. A slice / tile may include one or more coding tree units (CTUs). A picture may be composed of one or more slices / tiles. A picture may be composed of one or more tile groups. A tile group may include one or more tiles. A brick may represent a rectangular area of rows of CTUs within a tile in a picture. In this document, tile groups and slices may be used interchangeably. For example, in this document, a tile group / tile group header may be referred to as a slice / slice header.
[0047] In the present disclosure, "pixel" or "pel" may refer to the smallest unit constituting a picture (or image). Additionally, "sample" may be used as a term corresponding to pixel. A sample may generally represent a pixel or a pixel value, may represent only the pixel / pixel value of the luminance component, or may represent only the pixel / pixel value of the chroma component.
[0048] In this disclosure, "unit" may represent a basic unit of image processing. A unit may include at least one of a specific area of a picture and information related to that area. A unit may include one luminance block and two chroma (e.g., cb, cr) blocks. Depending on the case, the term "unit" may be used interchangeably with terms such as "block" or "area." In general, an MxN block may include samples (or sample arrays) or a set (or array) of transform coefficients consisting of M columns and N rows.
[0049] In the present disclosure, "current block" may mean one of "current coding block," "current coding unit," "block to be encoded," "block to be decoded," or "block to be processed." When prediction is performed, "current block" may mean "current prediction block" or "block to be predicted." When transformation (inverse transformation) / quantization (inverse quantization) is performed, "current block" may mean "current transformation block" or "block to be transformed." When filtering is performed, "current block" may mean "block to be filtered."
[0050] In the present disclosure, "current block" may mean a block comprising both a luminous component block and a chroma component block, or "luma block of the current block," unless explicitly stated as a chroma block. The luminous component block of the current block may be expressed by including an explicit description of a luminous component block, such as "luma block" or "current luminous block." Additionally, the chroma component block of the current block may be expressed by including an explicit description of a chroma component block, such as "chroma block" or "current chroma block."
[0051] In the present disclosure, " / " and "," may be interpreted as "and / or." For example, "A / B" and "A, B" may be interpreted as "A and / or B." Additionally, "A / B / C" and "A, B, C" may mean "at least one of A, B and / or C."
[0052] In the present disclosure, "or" may be interpreted as "and / or". For example, "A or B" may mean 1) "A" only, 2) "B" only, or 3) "A and B". Alternatively, in the present disclosure, "or" may mean "additionally or alternatively".
[0053] FIG. 1 is a schematic diagram illustrating a video / image coding system to which an embodiment according to the present disclosure can be applied.
[0054] Referring to FIG. 1, a video / image coding system may include a first device (source device) and a second device (receiving device). The source device may transmit encoded video / image or data in the form of a file or streaming to the receiving device via a digital storage medium or a network.
[0055] The source device may include a video source, an encoding device, and a transmission unit. The receiving device may include a receiver, a decoding device, and a renderer. The encoding device may be called a video / image encoding device, and the decoding device may be called a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may include a display unit, and the display unit may be composed of a separate device or an external component.
[0056] A video source may acquire video / images through processes such as video / image capture, synthesis, or generation. The video source may include a video / image capture device and / or a video / image generation device. The video / image capture device may include, for example, one or more cameras, a video / image archive containing previously captured video / images, etc. The video / image generation device may include, for example, a computer, a tablet, and a smartphone, etc., and may generate video / images (electronically). For example, virtual video / images may be generated through a computer, etc., in which case the video / image capture process may be replaced by a process in which related data is generated.
[0057] The encoding device can encode input video / images. The encoding device can perform a series of procedures, such as prediction, transformation, and quantization, for compression and coding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream.
[0058] The transmission unit can transmit encoded video / image information or data output in the form of a bitstream to the receiving unit of a receiving device in the form of a file or streaming via a digital storage medium or a network. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmission unit may include elements for creating a media file through a predetermined file format and elements for transmission via a broadcasting / communication network. The receiving unit can receive / extract the bitstream and transmit it to a decoding device.
[0059] The decoding device can decode video / images by performing a series of procedures such as inverse quantization, inverse transform, and prediction corresponding to the operation of the encoding device.
[0060] The renderer can render the decoded video / image. The rendered video / image can be displayed through the display unit.
[0061] FIG. 2 is a schematic diagram illustrating an encoding device to which an embodiment according to the present disclosure can be applied.
[0062] Referring to FIG. 2, the encoding device (200) may be configured to include an image partitioner (210), a predictor (220), a residual processor (230), an entropy encoder (240), an adder (250), a filter (260), and a memory (270). The predictor (220) may include an inter-predictor (221) and an intra-predictor (222). The residual processor (230) may include a transformer (232), a quantizer (233), a dequantizer (234), and an inverse transformer (235). The residual processor (230) may further include a subtractor (231). The addition unit (250) may be referred to as a reconstructor or a reconstructed block generator. The above-described image segmentation unit (210), prediction unit (220), residual processing unit (230), entropy encoding unit (240), addition unit (250), and filtering unit (260) may be configured by one or more hardware components (e.g., an encoder chipset or processor) according to the embodiment. Additionally, the memory (270) may include a DPB (Decoded Picture Buffer) and may be configured by a digital storage medium. The hardware component may further include the memory (270) as an internal / external component.
[0063] The image segmentation unit (210) can divide an input image (or picture, frame) input to an encoding device (200) into one or more processing units. For example, the processing unit may be called a coding unit (CU). A coding unit may be recursively divided into a coding tree unit (CTU) or a largest coding unit (LCU) according to a QTBTTT (Quad-tree binary-tree ternary-tree) structure. For example, a single coding unit may be divided into multiple coding units of a deeper depth based on a quad-tree structure, a binary-tree structure, and / or a ternary-tree structure. For example, a quad-tree structure may be applied first, and a binary-tree structure and / or a ternary-tree structure may be applied later. Alternatively, a binary-tree structure may be applied first. A coding procedure according to the present disclosure may be performed based on the final coding unit that is no longer divided. In this case, based on coding efficiency according to image characteristics, the maximum coding unit may be used directly as the final coding unit, or, if necessary, the maximum coding unit may be recursively divided into lower-depth coding units so that a coding unit of the optimal size is used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration described later. As another example, the processing unit may further include a prediction unit (PU) or a transformation unit (TU). The prediction unit and the transformation unit may each be divided or partitioned from the final coding unit.The above prediction unit may be a unit of sample prediction, and the above transformation unit may be a unit that derives transformation coefficients and / or a unit that derives a residual signal from transformation coefficients.
[0064] The term "unit" may be used interchangeably with terms such as "block" or "area" depending on the context. In general, an MxN block may represent a set of samples or transform coefficients consisting of M columns and N rows. A sample can generally represent a pixel or a pixel value, and may represent only the pixel / pixel value of the luminance component or only the pixel / pixel value of the chroma component. A sample may be used to refer to a single picture (or image) as a term corresponding to a pixel or pel.
[0065] The encoding device (200) can generate a residual signal (residual block, residual sample array) by subtracting a prediction signal (predicted block, prediction sample array) output from an inter prediction unit (221) or an intra prediction unit (222) from an input image signal (original block, original sample array), and the generated residual signal is transmitted to a conversion unit (232). In this case, as illustrated, the unit that subtracts the prediction signal (predicted block, prediction sample array) from the input image signal (original block, original sample array) within the encoding device (200) may be called a subtraction unit (231). The prediction unit (220) can perform a prediction for a block to be processed (hereinafter, current block) and generate a predicted block (predicted block) containing prediction samples for said current block. The prediction unit (220) can determine whether intra prediction is applied or inter prediction is applied in units of the current block or CU. The prediction unit (220) can generate various information regarding prediction, such as prediction mode information, as described below in the description of each prediction mode, and transmit it to the entropy encoding unit (240). The information regarding prediction can be encoded in the entropy encoding unit (240) and output in the form of a bitstream.
[0066] The intra prediction unit (222) can predict the current block by referring to samples within the current picture. The referenced samples may be located near the current block or away from it, depending on the prediction mode. In intra prediction, the prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The non-directional modes may include, for example, a DC mode and a Planar mode. The directional modes may include, for example, 33 directional prediction modes or 65 directional prediction modes, depending on the degree of fineness of the prediction direction. However, this is merely an example, and depending on the settings, more or fewer directional prediction modes may be used. The intra prediction unit (222) may also determine the prediction mode applied to the current block by using the prediction mode applied to the surrounding blocks.
[0067] The inter prediction unit (221) can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, to reduce the amount of motion information transmitted in the inter prediction mode, motion information can be predicted in blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include information on the inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, neighboring blocks may include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. The reference picture containing the reference blocks and the reference picture containing the temporal neighboring blocks may be the same or different from each other. The temporal neighboring blocks may be referred to by names such as collocated reference block, collocated CU (colCU), etc. A reference picture containing the aforementioned temporal surrounding blocks may be called a collocated picture (colPic). For example, the inter prediction unit (221) may construct a list of motion information candidates based on surrounding blocks and generate information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block. Inter prediction may be performed based on various prediction modes, for example, in the case of skip mode and merge mode, the inter prediction unit (221) may use the motion information of surrounding blocks as motion information of the current block. In the case of skip mode, unlike merge mode, a residual signal may not be transmitted.In the motion vector prediction (MVP) mode, the motion vector of surrounding blocks is used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.
[0068] The prediction unit (220) may generate a prediction signal based on various prediction methods and / or prediction techniques described below. For example, the prediction unit (220) may apply intra prediction or inter prediction for the prediction of the current block, as well as apply intra prediction and inter prediction simultaneously. A prediction method that applies intra prediction and inter prediction simultaneously for the prediction of the current block may be called combined inter and intra prediction (CIIP). Additionally, the prediction unit (220) may be based on an intra block copy (IBC) prediction mode or a palette mode for the prediction of the block. The IBC prediction mode or palette mode may be used for content video / video coding, such as in games, for example, screen content coding (SCC). IBC basically performs prediction within the current picture, but it may be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC may use at least one of the inter prediction techniques described in this document. Palette mode can be viewed as an example of intra-coding or intra-prediction. When palette mode is applied, sample values within a picture can be signaled based on information regarding palette tables and palette indices.
[0069] The prediction signal generated through the prediction unit (220) can be used to generate a restoration signal or to generate a residual signal. The subtraction unit (231) can generate a residual signal (residual signal, residual block, residual sample array) by subtracting the prediction signal (predicted block, prediction sample array) output from the prediction unit (220) from the input image signal (original block, original sample array). The generated residual signal can be transmitted to the conversion unit (232).
[0070] The transformation unit (232) can generate transform coefficients by applying a transformation technique to a residual signal. For example, the transformation technique may include at least one of a Discrete Cosine Transform (DCT), a Discrete Sine Transform (DST), a Karhunen-Loeve Transform (KLT), a Graph-Based Transform (GBT), or a Conditionally Non-linear Transform (CNT). Here, GBT refers to a transformation obtained from a graph when the relationship information between pixels is represented as a graph. CNT refers to a transformation obtained based on a prediction signal generated using all previously reconstructed pixels. The transformation process may be applied to a block of pixels of the same size in a square, or to a block of variable size that is not square.
[0071] The quantization unit (233) can quantize the transformation coefficients and transmit them to the entropy encoding unit (240). The entropy encoding unit (240) can encode the quantized signal (information regarding the quantized transformation coefficients) and output it as a bitstream. The information regarding the quantized transformation coefficients may be called residual information. The quantization unit (233) can rearrange the block-shaped quantized transformation coefficients into a one-dimensional vector form based on the coefficient scan order, and can also generate information regarding the quantized transformation coefficients based on the one-dimensional vector-shaped quantized transformation coefficients.
[0072] The entropy encoding unit (240) can perform various encoding methods such as, for example, exponential Golomb, CAVLC (context-adaptive variable length coding), CABAC (context-adaptive binary arithmetic coding), etc. The entropy encoding unit (190) may encode information required for video / image restoration (e.g., values of syntax elements) together or separately, in addition to quantized transform coefficients. The encoded information (e.g., encoded video / image information) may be transmitted or stored in the form of a bitstream in units of NAL (network abstraction layer) units. The video / image information may further include information regarding various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). Additionally, the video / image information may further include general constraint information. The signaling information, transmitted information, and / or syntax elements mentioned in the present disclosure may be included in the video / image information. The video / image information may be encoded through the encoding procedure described above and included in the bitstream.
[0073] The above bitstream may be transmitted via a network or stored in a digital storage medium. Here, the network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmission unit (not shown) for transmitting a signal output from the entropy encoding unit (240) and / or a storage unit (not shown) for storing it may be provided as an internal / external element of the encoding device (200), or the transmission unit may be provided as a component of the entropy encoding unit (240).
[0074] The quantized transformation coefficients output from the quantization unit (233) can be used to generate a residual signal. For example, a residual signal (residual block or residual samples) can be restored by applying inverse quantization and inverse transformation to the quantized transformation coefficients through the inverse quantization unit (234) and the inverse transformation unit (235).
[0075] Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture encoding and / or restoration process.
[0076] The adder (250) can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the inter prediction unit (221) or the intra prediction unit (222). In cases where there is no residual for the block to be processed, such as when a skip mode is applied, the predicted block can be used as the reconstructed block. The adder (250) may be called a reconstructed unit or a reconstructed block generation unit. The generated reconstructed signal can be used for intra prediction of the next block to be processed within the current picture, and can also be used for inter prediction of the next picture after undergoing filtering as described below.
[0077] The filtering unit (260) can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit (260) can generate a modified restored picture by applying various filtering methods to the restored picture, and can store the modified restored picture in memory (270), specifically in the DPB of memory (170). The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filtering unit (260) can generate various information regarding filtering and transmit it to the entropy encoding unit (240), as described below in the description of each filtering method. The information regarding filtering can be encoded in the entropy encoding unit (240) and output in the form of a bitstream.
[0078] The modified restored picture transmitted to the memory (270) can be used as a reference picture in the inter-prediction unit (221). Through this, the encoding device (200) can avoid prediction mismatches between the encoding device (200) and the decoding device when inter-prediction is applied, and can also improve encoding efficiency.
[0079] The DPB in memory (270) can store a modified restored picture to be used as a reference picture in the inter prediction unit (221). Memory (270) can store motion information of blocks from which motion information is derived (or encoded) in the current picture and / or motion information of blocks in the picture that have already been restored. The stored motion information can be transmitted to the inter prediction unit (221) to be used as motion information of spatially surrounding blocks or motion information of temporally surrounding blocks. Memory (270) can store restoration samples of restored blocks in the current picture and transmit them to the intra prediction unit (222).
[0080] FIG. 3 is a schematic diagram illustrating a decoding device to which an embodiment according to the present disclosure can be applied.
[0081] As illustrated in FIG. 3, the decoding device (300) may be configured to include an entropy decoder (310), a residual processor (320), a predictor (330), an adder (340), a filter (350), and a memory (360). The predictor (330) may include an inter-predictor (332) and an intra-predictor (331). The residual processor (320) may include a dequantizer (321) and an inverse transformer (321). The aforementioned entropy decoding unit (310), residual processing unit (320), prediction unit (330), addition unit (340), and filtering unit (350) may be configured by a single hardware component (e.g., a decoder chipset or a processor) according to an embodiment. Additionally, the memory (360) may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware component may further include the memory (360) as an internal / external component.
[0082] When a bitstream containing video / image information is input, the decoding device (300) can restore the image by performing a process corresponding to the process performed by the encoding device (200) of FIG. 2. For example, the decoding device (300) can perform decoding using a processing unit applied in the encoding device (200). Thus, the processing unit for decoding may be, for example, a coding unit. The coding unit may be a coding tree unit, or a maximum coding unit may be obtained by dividing it according to a quad tree structure, a binary tree structure, and / or a binary tree structure. And, the restored image signal decoded and output through the decoding device (300) can be played back through a playback device (not shown).
[0083] The decoding device (300) can receive a signal output from the encoding device (200) of FIG. 2 in the form of a bitstream. The received signal can be decoded through an entropy decoding unit (310). For example, the entropy decoding unit (310) can parse the bitstream to derive information necessary for image restoration (or picture restoration) (e.g., video / image information). The video / image information may further include information regarding various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). Additionally, the video / image information may further include general constraint information. The decoding device (300) can decode the picture based on the information regarding the parameter sets and / or the general constraint information. The signaling / received information and / or syntax elements described below can be obtained from the bitstream by decoding through the decoding procedure. For example, the entropy decoding unit (310) can decode information within the bitstream based on coding methods such as exponential chord coding, CAVLC, or CABAC, and output values of syntax elements required for image restoration and quantized values of transformation coefficients regarding residuals. More specifically, the CABAC entropy decoding method can receive bins corresponding to each syntax element in the bitstream, determine a context model using information on the syntax element to be decoded and decoding information of surrounding and decoding target blocks or information on symbols / bins decoded in the previous step, predict the probability of occurrence of the bin according to the determined context model, and perform arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element.At this time, the CABAC entropy decoding method can update the context model using the decoded symbol / bin information for the context model of the next symbol / bin after determining the context model. Among the information decoded in the entropy decoding unit (310), information regarding prediction is provided to the prediction unit (330), and residual values for which entropy decoding was performed in the entropy decoding unit (310), i.e., quantized transformation coefficients and related parameter information, can be input to the residual processing unit (320). The residual processing unit (320) can derive residual signals (residual blocks, residual samples, residual sample array). Additionally, among the information decoded in the entropy decoding unit (310), information regarding filtering can be provided to the filtering unit (350). Meanwhile, a receiving unit (not shown) that receives a signal output from an encoding device may be further configured as an internal / external element of the decoding device (300), or the receiving unit may be a component of the entropy decoding unit (310). Meanwhile, the decoding device according to the present document may be called a video / image / picture decoding device, and the decoding device may be divided into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include the entropy decoding unit (310), and the sample decoder may include at least one of the inverse quantization unit (321), inverse transform unit (322), adder (340), filtering unit (350), memory (360), inter prediction unit (332), and intra prediction unit (331).
[0084] In the inverse quantization unit (321), the quantized transformation coefficients can be inversely quantized to output transformation coefficients. The inverse quantization unit (321) can rearrange the quantized transformation coefficients into a two-dimensional block form. In this case, the rearrangement can be performed based on the coefficient scan order performed in the encoding device (200). The inverse quantization unit (321) can perform inverse quantization on the quantized transformation coefficients using quantization parameters (e.g., quantization step size information) and obtain transformation coefficients.
[0085] In the inverse conversion unit (322), the conversion coefficients can be inversely converted to obtain a residual signal (residual block, residual sample array).
[0086] The prediction unit (330) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit may apply intra prediction or inter prediction for a single block, and may also apply intra prediction and inter prediction simultaneously. This may be called combined inter and intra prediction (CIIP). Additionally, the prediction unit may be based on an intra block copy (IBC) prediction mode or a palette mode for predicting a block. The IBC prediction mode or palette mode may be used for content video / video coding, such as in games, for example, screen content coding (SCC). IBC basically performs prediction within the current picture, but it can be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC may use at least one of the inter prediction techniques described in this document. The palette mode can be viewed as an example of intra coding or intra prediction. When palette mode is applied, information regarding the palette table and palette index can be included in the above video / image information and signaled.
[0087] The intra prediction unit (331) can predict the current block by referring to samples within the current picture. The description of the intra prediction unit (222) may be applied equally to the intra prediction unit (331). The referenced samples may be located in the neighborhood of the current block or located away from it, depending on the prediction mode. In intra prediction, the prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The intra prediction unit (331) may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.
[0088] The inter prediction unit (332) can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, to reduce the amount of motion information transmitted in the inter prediction mode, motion information can be predicted in blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include information on the inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, neighboring blocks may include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. For example, the inter prediction unit (332) may construct a motion information candidate list based on the neighboring blocks and derive the motion vector and / or reference picture index of the current block based on the received candidate selection information. Inter-prediction can be performed based on various prediction modes (techniques), and information regarding the prediction may include information indicating the mode (technique) of inter-prediction for the current block.
[0089] The adder (340) can generate a restoration signal (restored picture, restored block, restored sample array) by adding the acquired residual signal to the prediction signal (predicted block, predicted sample array) output from the prediction unit (330) (including the inter prediction unit (332) and / or intra prediction unit (331)). In cases where there is no residual for the block to be processed, such as when a skip mode is applied, the predicted block can be used as the restoration block. The description of the adder (250) can be applied equally to the adder (340). The adder (340) may be called a restoration unit or a restoration block generation unit. The generated restoration signal can be used for intra prediction of the next block to be processed within the current picture, and can also be used for inter prediction of the next picture after undergoing filtering as described below.
[0090] Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture decoding process.
[0091] The filtering unit (350) can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit (350) can generate a modified restored picture by applying various filtering methods to the restored picture, and can store the modified restored picture in memory (360), specifically in the DPB of memory (360). The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
[0092] The (modified) restored picture stored in the DPB of the memory (360) can be used as a reference picture in the inter-prediction unit (332). The memory (360) can store motion information of blocks from which motion information within the current picture has been derived (or decoded) and / or motion information of blocks within the picture that have already been restored. The stored motion information can be transmitted to the inter-prediction unit (332) to be used as motion information of spatially surrounding blocks or motion information of temporally surrounding blocks. The memory (360) can store restoration samples of blocks restored within the current picture and transmit them to the intra-prediction unit (331).
[0093] In this specification, the embodiments described in the filtering unit (260), inter prediction unit (221), and intra prediction unit (222) of the encoding device (200) may be applied to the filtering unit (350), inter prediction unit (332), and intra prediction unit (331) of the decoding device (300) in the same or corresponding manner.
[0094] Figure 4 illustrates an exemplary hierarchical structure for a coded video / image.
[0095] Referring to Figure 4, the coded image is divided into a VCL (video coding layer) that handles the decoding processing of the image and the image itself, a subsystem that transmits and stores the encoded information, and a NAL (network abstraction layer) that exists between the VCL and the subsystem and is responsible for network adaptation functions.
[0096] In VCL, VCL data containing compressed image data (slice data) can be generated, or parameter sets containing information such as Picture Parameter Set (PPS), Sequence Parameter Set (SPS), and Video Parameter Set (VPS), or SEI (Supplemental Enhancement Information) messages that are additionally required in the decoding process of the image can be generated.
[0097] In NAL, a NAL unit can be created by adding header information (NAL unit header) to the Raw Byte Sequence Payload (RBSP) generated in VCL. In this case, the RBSP refers to slice data, parameter sets, SEI messages, etc. generated in VCL. The NAL unit header may include NAL unit type information specified according to the RBSP data included in the NAL unit.
[0098] As shown in FIG. 4, NAL units can be classified into VCL NAL units and Non-VCL NAL units depending on the RBSP generated in VCL. A VCL NAL unit may refer to a NAL unit containing information about an image (slice data), and a Non-VCL NAL unit may refer to a NAL unit containing information necessary to decode an image (parameter set or SEI message).
[0099] The aforementioned VCL NAL unit and Non-VCL NAL unit can be transmitted over a network by attaching header information according to the data specifications of the underlying system. For example, the NAL unit can be transformed into a data format of a specified specification, such as H.266 / VVC file format, RTP (Real-time Transport Protocol), TS (Transport Stream), etc., and transmitted over various networks.
[0100] As described above, the NAL unit type can be determined according to the RBSP data structure included in the NAL unit, and information about this NAL unit type can be stored in the NAL unit header and signaled.
[0101] For example, NAL units can be broadly classified into VCL NAL unit types and Non-VCL NAL unit types depending on whether they contain information about the image (slice data). VCL NAL unit types can be classified according to the properties and types of the picture included in the VCL NAL unit, while Non-VCL NAL unit types can be classified according to the types of parameter sets.
[0102] The following is an example of a NAL unit type specified according to the type of parameter set included in the Non-VCL NAL unit type.
[0103] - APS (Adaptation Parameter Set) NAL unit: Type for the NAL unit containing the APS
[0104] - DPS (Decoding Parameter Set) NAL unit: Type for the NAL unit containing the DPS
[0105] - VPS (Video Parameter Set) NAL unit: Type for the NAL unit containing the VPS
[0106] - SPS (Sequence Parameter Set) NAL unit: Type for the NAL unit containing the SPS
[0107] - PPS(Picture Parameter Set) NAL unit: Type for the NAL unit containing the PPS
[0108] The above-described NAL unit types have syntax information for the NAL unit type, and said syntax information can be stored in the NAL unit header and signaled. For example, said syntax information may be nal_unit_type, and NAL unit types may be specified by the nal_unit_type value.
[0109] The slice header (slice header syntax) may include information / parameters that can be commonly applied to the slice. The APS (APS syntax) or PPS (PPS syntax) may include information / parameters that can be commonly applied to one or more slices or pictures. The SPS (SPS syntax) may include information / parameters that can be commonly applied to one or more sequences. The VPS (VPS syntax) may include information / parameters that can be commonly applied to multiple layers. The DPS (DPS syntax) may include information / parameters that can be commonly applied to the entire video. The DPS may include information / parameters related to the concatenation of the CVS (coded video sequence). In this document, the term High level syntax (HLS) may include at least one of the above APS syntax, PPS syntax, SPS syntax, VPS syntax, DPS syntax, and slice header syntax.
[0110] In the present disclosure, image / video information encoded from an encoding device to a decoding device and signaled in the form of a bitstream includes not only information related to partitioning within a picture, intra / inter prediction information, residual information, in-loop filtering information, etc., but may also include information included in the slice header, information included in the APS, information included in the PPS, information included in the SPS, and / or information included in the VPS.
[0111] In the present disclosure, the following descriptors may define the parsing process for each syntactic element.
[0112] - ae(v) is a context-adaptive arithmetic entropy-coded syntactic element.
[0113] - b(8) is a byte with an arbitrary bit string pattern of length 8 bits. The parsing process of this descriptor is defined by the return value of the function read_bits(8).
[0114] - f(n) is an n-bit fixed-pattern bit string where the left bits are written first. The parsing process of this descriptor is defined by the return value of the function read_bits(n).
[0115] - i(n) is a signed integer using n bits, where n is marked as "v" in the syntax table, the number of bits varies depending on the values of other syntax elements. The parsing process of this descriptor is defined by interpreting the return value of the function read_bits(n) into a two's complement integer representation where the most significant bit is written first.
[0116] - se(v) is a 0th-order Exp-Golomb encoded signed integer syntax element, written starting from the left bit. The parsing process of this descriptor is defined with order k set to 0.
[0117] - st(v) is a null-terminated string encoded in Universal Coded Character Set (UCS) transmission format 8 (UTF-8) characters as defined in ISO / IEC 10646. The parsing process is defined as follows:
[0118] st(v) starts at a byte-aligned position within the bitstream and reads and returns a sequence of consecutive bytes from the bitstream, starting from the current position and excluding the next byte-aligned byte with a value of 0x00. The bitstream pointer then advances by (stringLength + 1) * 8 bits, where stringLength is equal to the number of returned bytes.
[0119] Note - The st(v) syntax descriptor is used in this disclosure only when the current position in the bitstream is a byte-aligned position.
[0120] - tu(v) is a truncated unary encoding scheme that uses up to the number of bits defined by the maximum value (maxVal), and maxVal is defined in the semantics of the corresponding syntactic element.
[0121] - u(n) is an unsigned integer using n bits. If n is marked as "v" in the syntax table, the number of bits varies depending on the values of other syntax elements. The parsing process of this descriptor is defined by interpreting the return value of the function read_bits(n) as the binary representation of an unsigned integer where the most significant bit is written first.
[0122] - ue(v) is a 0th-order Exp-Golomb encoded unsigned integer syntax element, written starting from the left bit. The parsing process of this descriptor is defined with order k set to 0.
[0123] Below, SEI messages related to the present invention will be described.
[0124] Table 1 shows an example of an object mask information SEI message syntax according to one embodiment.
[0125] [Table 1]
[0126]
[0127]
[0128] The Object Mask Information (OMI) SEI message provides object mask information for an object mask picture within an auxiliary layer associated with the primary layer, which is called the current primary layer where the SEI message exists. If an OMI SEI message exists, it must exist within the primary layer. A single primary layer may be associated with one or more auxiliary layers. The number of auxiliary layers associated with the current primary layer is equal to omiNumAuxLayer, and the layer identifier of the j-th associated auxiliary layer is equal to omiAuxLayerId[j]. For each value of j in the range from 0 to omiNumAuxLayer - 1, if omiAuxLayerId[j] is equal to sdi_layer_id[i], then for all values of i in the range from 0 to sid_max_layers_minus1, the value of sdi_aux_id[i] must be equal to AUX_OBJECT_MASK. If no SDI SEI message currently exists within the CVS, the OMI SEI message should be ignored.
[0129] To use this SEI message, you must define the following variables:
[0130] - BitDepth for the luminance sample array of the current base picture Y
[0131] - Display the cropped picture width and height in luma samples as CroppedWidth and CroppedHeight, respectively.
[0132] - Compliant Crop Window Left Offset, ConfWinLeftOffset
[0133] - Compliant Crop Window Top Offset, ConfWinTopOffset
[0134] - Chroma format identifier, referred to as ChromaFormatIdc in this document.
[0135] The variables SubWidthC and SubHeightC are derived from ChromaFormatIdc.
[0136] The variables omiNumAuxLayer and omiAuxLayerId[ k ] are derived as shown in Table 2 below:
[0137] [Table 2]
[0138]
[0139] Here, omiPrimaryLayerId is the layer identifier of the current primary layer.
[0140] If omi_cancel_flag is 1, the persistence of previous object mask information SEI messages existing in the same layer in output order is canceled. If omi_cancel_flag is 0, object mask information is continued.
[0141] omi_persistence_flag specifies the persistence of the object mask information provided in this SEI message. If omi_persistence_flag is 0, the object mask information is applied only to the current picture. If omi_persistence_flag is 1, the object mask information is applied to all subsequent pictures in the output order of the same layer as the current picture until one or more of the following conditions are met:
[0142] - New CLVS of the current layer start.
[0143] - Bitstream terminated.
[0144] - The picture containing the object mask information SEI message in the PU of the current layer is output after the current picture in the output order.
[0145] If CVS does not contain an SDI SEI message where sdi_aux_id[ i ] matches AUX_OBJECT_MASK for at least one value of i, the OMI SEI message is ignored.
[0146] If AU contains at least one SDI SEI message for which sdi_aux_id[ i ] matches AUX_OBJECT_MASK and also contains all OMI SEI messages, then the SDI SEI messages must be processed before the OMI SEI messages in the decoding order.
[0147] The value of omi_num_aux_pic_layer_minus1 plus 1 represents the number of auxiliary layers associated with the current primary layer. According to bitstream conformity requirements, the value of omi_num_aux_pic_layer_minus1 plus 1 must be equal to omiNumAuxLayer.
[0148] The value of omi_mask_id_length_minus1 plus 1 specifies the bit length of the omi_mask_id[ i ][ j ] syntax element. The value of omi_mask_id_length_minus1 must be within the range of 0 to 31.
[0149] The value of omi_mask_sample_value_length_minus8 plus 8 specifies the bit length of the omi_aux_sample_value[ i ][ j ] syntax element. The value of omi_mask_sample_value_length_minus8 must be within the range of 0 to 8. The value of omi_mask_sample_value_length_minus8 plus 8 is BitDepth Y It must be less than or equal to
[0150] If omi_mask_confidence_info_present_flag is 1, it indicates that the omi_mask_confidence[ i ][ j ] syntax element exists. If omi_mask_confidence_info_present_flag is 0, it indicates that the omi_mask_confidence[ i ][ j ] syntax element does not exist.
[0151] The value obtained by adding 1 to omi_mask_confidence_length_minus1 specifies the bit length of the omi_mask_confidence[ i ][ j ] syntax element.
[0152] If omi_mask_depth_info_present_flag is 1, it indicates that the omi_mask_depth[ i ][ j ] syntax element exists. If omi_mask_depth_info_present_flag is 0, it indicates that the omi_mask_depth[ i ][ j ] syntax element does not exist.
[0153] The value obtained by adding 1 to omi_mask_depth_length_minus1 specifies the bit length of the omi_mask_depth[ i ][ j ] syntax element.
[0154] According to bitstream compliance requirements, omi_num_aux_pic_layer, omi_mask_id_length_minus1, omi_mask_sample_value_length_minus8, omi_mask_confidence_info_present_flag, omi_mask_confidence_length_minus1, omi_mask_depth_info_present_flag if present, and omi_mask_depth_length_minus1 if present, must be identical in all object_mask_info() syntax structures within CLVS.
[0155] If omi_mask_label_info_present_flag is 1, it indicates that the omi_mask_label_language_present_flag and omi_mask_label[ i ][ j ] syntax elements exist. If omi_mask_label_info_present_flag is 0, it indicates that the omi_mask_label_language_present_flag and omi_mask_label[ i ][ j ] syntax elements do not exist.
[0156] If omi_mask_label_language_present_flag is 1, it indicates that the omi_mask_label_language syntax element exists. If omi_mask_label_language_present_flag is 0, it indicates that the omi_mask_label_language syntax element does not exist.
[0157] omi_bit_equal_to_zero must be equal to 0.
[0158] omi_mask_label_language contains a language tag followed by a null-terminated byte equal to 0x00. The length of the omi_mask_label_language syntax element must be 255 bytes or less, excluding the null-terminated byte. If it does not exist, the language of the label is not specified.
[0159] If omi_mask_pic_update_flag[ i ] is 1, the object mask information of the object mask picture of the i-th secondary picture layer associated with the current main picture layer may be updated. If omi_mask_pic_update_flag[ i ] is 0, it indicates that there is no change in the mask information of the object mask picture of the i-th secondary picture layer associated with the current main picture layer. If omi_mask_pic_update_flag[ i ] is 0, the persistence mechanism is used. That is, the mask information of the object mask picture of the i-th secondary picture layer associated with the current main picture layer is inherited from the last OMI SEI message existing in the same layer in the decoding order.
[0160] omi_num_mask_in_pic_update[i] specifies the number of object masks included in the object mask picture within the i-th secondary picture layer associated with the current primary picture layer. omi_num_mask_in_pic_update[i] must be within the range from 0 to (1<<(omi_mask_id_length_minus1 + 1)) - 1.
[0161] omi_mask_id[ i ][ j ] represents the identifier of the j-th object mask contained in the object mask picture within the i-th secondary picture layer associated with the current primary picture layer. The length of the omi_mask_id[ i ][ j ] syntax element is omi_mask_id_length_minus1 + 1 bit.
[0162] The variable maskId[ i ][ j ], which specifies the identifier of the j-th object mask picture within the i-th auxiliary picture layer associated with the current main picture layer, is derived as shown in Table 3 below.
[0163] [Table 3]
[0164]
[0165] omiA is defined as an OMI SEI message containing the mask object objectMaskA(maskId[ i0 ][ j0 ]), and omiB is defined as the first OMI SEI message following omiA in output order within the same CLVS, which contains the mask object objectMaskB(maskId[ i1 ][ j1 ]). If the value of maskId[ i0 ][ j0 ] is the same as the value of maskId[ i1 ][ j1 ], then objectMaskA and objectMaskB are considered to be object masks of the same object if both of the following two conditions are true.
[0166] - When the value of omi_mask_cancel[ i0 ][ j0 ] in omiA is equal to 0.
[0167] - If there is no message with an omi_cancel_flag value of 1 among the OMI SEI messages located after omiA and before omiB in the output order within the same CLVS.
[0168] If omi_mask_cancel[ i ][ j ] is 1, the persistence range of the j-th object mask of the j-th object mask picture within the i-th auxiliary picture layer associated with the current main picture is canceled. If omi_mask_cancel[ i ][ j ] is 0, the j-th object mask information of the j-th object mask picture within the i-th auxiliary picture layer associated with the current main picture layer is transmitted as a signal.
[0169] According to bitstream compliance requirements, when omi_mask_id[ i ][ j ] with a specific value is first parsed in the current CLVS, the value of the corresponding omi_mask_cancel[ i ][ j ] must be 0.
[0170] omi_aux_sample_value[ i ][ j ] specifies the sample value within the j-th object mask area of the j-th object mask picture within the i-th auxiliary picture layer associated with the current main picture layer.
[0171] If omi_mask_bounding_box_present_flag[ i ][ j ] is 1, it indicates that syntax elements omi_mask_top[ i ][ j ], omi_mask_left[ i ][ j ], omi_mask_width[ i ][ j ], and omi_mask_height[ i ][ j ] exist. If omi_mask_bounding_box_present_flag[ i ][ j ] is 0, it indicates that syntax elements omi_mask_top[ i ][ j ], omi_mask_left[ i ][ j ], omi_mask_width[ i ][ j ], and omi_mask_height[ i ][ j ] do not exist.
[0172] omi_mask_top[ i ][ j ], omi_mask_left[ i ][ j ], omi_mask_width[ i ][ j ], and omi_mask_height[ i ][ j ] respectively specify the top-left corner coordinates, width, and height of the bounding box of the j-th object mask in the cropped decoded object mask picture in the i-th secondary picture layer associated with the current main picture layer relative to the compliant crop window specified by the active SPS.
[0173] The value of omi_mask_left[ i ][ j ] must be within the range from 0 to (CroppedWidth / SubWidthC - 1) (inclusive), where CroppedWidth and SubWidthC are associated with the object mask picture of the i-th auxiliary picture layer associated with the current main picture layer. If the value does not exist, the value of omi_mask_left[ i ][ j ] is assumed to be 0.
[0174] The value of omi_mask_top[ i ][ j ] must be within the range from 0 to (CroppedHeight / SubHeightC - 1) (inclusive), where CroppedHeight and SubHeightC are associated with the object mask picture of the i-th auxiliary picture layer associated with the current main picture layer. If the value does not exist, the value of omi_mask_top[ i ][ j ] is assumed to be 0.
[0175] The value of omi_mask_width[ i ][ j ] must be within the range from 0 to (CroppedWidth / SubWidthC - omi_mask_left[ i ][ j ]) (inclusive). If such a value does not exist, the value of omi_mask_width[ i ][ j ] is estimated to be (CroppedWidth / SubWidthC - omi_mask_left[ i ][ j ]).
[0176] The value of omi_mask_height[ i ][ j ] must be within the range from 0 to (CroppedHeight / SubHeightC - omi_mask_top[ i ][ j ]) (inclusive). If such a value does not exist, the value of omi_mask_height[ i ][ j ] is estimated to be (CroppedHeight / SubWidthC - omi_mask_top[ i ][ j ]).
[0177] The identified object mask is located within a bounding box containing luminance samples having horizontal coordinates from SubWidthC * ( ConfWinLeftOffset + omi_mask_left[ i ][ j ] ) to SubWidthC * ( ConfWinLeftOffset + omi_mask_left[ i ][ j ] + omi_mask_width [ i ][ j ] ) - 1 (inclusive) and vertical coordinates from SubHeightC * ( ConfWinTopOffset + omi_mask_top[ i ][ j ] ) to SubHeightC * ( ConfWinTopOffset + omi_mask_top[ i ][ j ] + omi_mask_height[ i ][ j ] ) - 1 (inclusive).
[0178] The variable pI[ i ] [ x ][ y ] is the decoded value of the sample corresponding to the relative sample position (x, y) in the cropped object mask picture of the i-th auxiliary picture layer associated with the current main picture layer. The mask area in the auxiliary picture is determined according to Table 4 below.
[0179] [Table 4]
[0180]
[0181] omi_mask_confidence[ i ][ j ] specifies the confidence level associated with the j-th object mask contained in the object mask picture of the i-th auxiliary picture layer associated with the current main picture layer, in units of 2 - ( omi_mask_confidence_length_minus1 + 1 ). In other words, a larger value of omi_mask_confidence[ i ][ j ] indicates a higher confidence level. The length of the omi_mask_confidence[ i ][ j ] syntax element is omi_mask_confidence_length_minus1 + 1 bits.
[0182] omi_mask_depth[ i ][ j ] specifies the object depth associated with the j-th object mask contained in the object mask picture of the i-th secondary picture layer associated with the current primary picture layer. A smaller value of omi_mask_depth means a shorter distance to the object. The length of the omi_mask_depth[ i ][ j ] syntax element is omi_mask_depth_length_minus1 + 1 bit.
[0183] omi_mask_label[ i ][ j ] specifies the label content of the object mask picture associated with the j-th object mask within the i-th auxiliary picture layer associated with the current main picture layer. The length of the omi_mask_label[ i ][ j ] syntax element must be 255 bytes or less, excluding the null termination byte.
[0184] The current design of the Object Mask Information SEI message allows specifying the content of the label associated with the object mask. When label information is encoded, the st(v) syntax descriptor is used, which requires the label to start only at a byte-aligned position within the bitstream. Therefore, byte alignment is performed before encoding the label information for the object mask. However, conventionally, byte alignment is always applied regardless of the existence of label information.
[0185] According to the present disclosure, byte alignment is performed only when label information for an object mask exists.
[0186] One embodiment provides a solution to the problem described above. Each item may be applied individually or in combination.
[0187] To signal label information for an object mask in an OMI SEI message, byte alignment is applied prior to label information encoding only if label information exists in the current OMI SEI message.
[0188] One embodiment is related to the above. The present disclosure is based on the VSEI standard.
[0189] The Object Mask Information SEI message syntax according to one embodiment is as shown in Table 5 below.
[0190] [Table 5]
[0191]
[0192]
[0193] The terms or names described below (e.g., names of syntax elements or variables, etc.) are merely examples, and the technical features of the present disclosure are not limited to the terms, etc. described below. For example, the image information described below may include various information according to the embodiments described in the present disclosure and may include information described in at least one of the tables described above.
[0194] The operations described below do not constitute an essential component of one embodiment, and at least some of the operations described below may be omitted. Furthermore, the operations described below do not constitute a sufficient component of one embodiment, and previously described operations may be added. Moreover, unless they contradict previously described operations, the operations described below form one embodiment integrally with previously described operations and do not form a separate embodiment distinct from previously described operations.
[0195] FIG. 5 is a diagram illustrating a method for decoding image information according to one embodiment of the present disclosure.
[0196] Terms or names (e.g., names of syntax elements or names of variables, etc.) are merely examples, and the technical features of the present disclosure are not limited to the terms, etc. described in FIG. 5. For example, the image information described in FIG. 5 may include various information according to the embodiments described in the present disclosure and may include information described in at least one of the tables described above.
[0197] The decoding method (S500) may include operations described below. The operations described below do not constitute an essential component of the decoding method according to one embodiment, and at least some of the operations described below may be omitted. Furthermore, the operations described below do not constitute a sufficient component of the decoding method according to one embodiment, and the previously described operations may be added. Moreover, unless the operations described below contradict the previously described operations, they form an embodiment integrally with the previously described operations and do not form a separate embodiment distinguished from the previously described operations.
[0198] The decoding method (S500) can be executed by a decoding device including a memory and a processor electrically connected to the memory, for example, by a processor.
[0199] The decoding device can acquire image information.
[0200] For example, a processor of a decoding device may acquire image information. The image information may include at least one (or multiple) main layer among multiple layers. Each of the at least one (or multiple) main layer may include a picture to be decoded. Here, the main layer is not limited to its name and may be referred to in various ways, such as a main picture layer.
[0201] The image information may further include at least one auxiliary layer associated with the current main layer among at least one (or multiple) main layers. Here, the auxiliary layer is not limited to its name and may be referred to in various ways, such as an auxiliary picture layer.
[0202] For example, at least one auxiliary layer can provide additional information (e.g., depth or alpha) of the main layer.
[0203] Additionally, for example, at least one auxiliary layer may be used for object detection and tracking applications for the main layer. The encoding device may perform image analysis on the picture of the main layer and provide information regarding object regions for object detection and tracking tasks to the decoding device. As a result, the power consumption of the decoding device is reduced, and more accurate object detection and tracking become possible. Thus, at least one auxiliary layer may include an object mask for object detection and tracking tasks for the main layer.
[0204] The decoding device can acquire a SEI (supplemental enhancement information) message (S510).
[0205] SEI messages may convey specific types of information that assist in processes related to the decoding, display, or other purposes of image information. Here, SEI messages may not be necessary for the decoding process to determine the sample values of the decoded picture.
[0206] According to one embodiment, a decoding device can obtain at least one SEI message associated with the current layer from a bitstream. For example, a processor of the decoding device can obtain at least one SEI message associated with the current layer. Here, the current layer may represent a major layer among a plurality of layers.
[0207] Here, the SEI message may include an OMI SEI message that provides object mask information associated with the current layer. Specifically, the SEI message may be an OMI SEI message that provides at least one (or multiple) object mask information associated with each of at least one (or multiple) main layers. Specifically, the OMI SEI message may include at least one (or multiple) object mask information from at least one (or multiple) auxiliary layers associated with the main layer.
[0208] OMI SEI messages can take various forms. For example, an OMI SEI message may be a syntax element or a syntax structure containing one or more syntax elements. Additionally, an OMI SEI message may be a raw byte sequence payload (RBSP) containing one or more syntax elements or one or more syntax structures. For example, an OMI SEI message may be represented as object_mask_info(payloadSize), but is not limited thereto.
[0209] OMI SEI messages may have various names, such as OMI messages, SEI messages, OMI-related messages, and OMI-related information, and such names are not limited.
[0210] The decoding device can obtain object mask information based on the SEI message (S520).
[0211] For example, the processor of the decoding device can process OMI SEI messages. The decoding device can obtain object mask information based on processing OMI SEI messages.
[0212] According to one embodiment, the object mask information provided by the OMI SEI message may include label information for the object mask, information on whether the label information for the object mask exists, and a zero bit for byte alignment within the SEI message.
[0213] Label information for object masks may represent label information for each object mask within an auxiliary layer associated with a main layer. For example, the syntax length of label information for object masks may be 255 bytes or less, without including a null termination byte.
[0214] Label information for an object mask can take various forms and be represented by various names. For example, label information for an object mask can be a syntax element or a syntax structure containing one or more syntax elements. For example, label information for an object mask that is a syntax element can be represented as the syntax element omi_mask_label[ i ][ j ], but is not limited thereto.
[0215] For example, if label information for an object mask is represented as omi_mask_label[ i ][ j ], omi_mask_label[ i ][ j ] may represent label information associated with the j-th object mask in the object mask of the i-th auxiliary layer associated with the current base layer. Here, index i represents the i-th auxiliary layer, index j represents the j-th object mask within the i-th auxiliary layer, and each value constituting the 2D array may represent label information of the j-th object mask within the i-th auxiliary layer.
[0216] The following describes the process by which a decoding device obtains object mask information based on SEI messages.
[0217] According to one embodiment, the decoding device can obtain information on whether label information for an object mask exists from the SEI message.
[0218] Information regarding the existence of label information for an object mask may be flag information indicating whether label information exists within the OMI SEI message.
[0219] Information regarding the existence of label information for an object mask may take various forms and be expressed by various names. For example, information regarding the existence of label information for an object mask may be a syntax element or a syntax structure containing one or more syntax elements. For example, information regarding the existence of label information for an object mask that is a syntax element may be expressed as the syntax element omi_mask_label_info_present_flag, but is not limited thereto.
[0220] Information regarding the existence of label information for an object mask may be a 1-bit flag or an indicator of 2 bits or more. For example, if the value of the information regarding the existence of label information for an object mask is 1, it may indicate that the information regarding the existence of language information for the label of the object mask and the label information for the object mask may exist. Additionally, if the value of the information regarding the existence of label information for an object mask is 0, it may indicate that the information regarding the existence of language information for the label of the object mask and the label information for the object mask may not exist. However, this is not limited thereto, and alternatively, specifying that the value of the information regarding the existence of label information for an object mask is 1 may be replaced with specifying that the value of the information regarding the existence of label information for an object mask is 0.
[0221] In one embodiment, the decoding device may obtain a zero bit for byte alignment within the SEI message based on information regarding the existence of acquired label information. The zero bit for byte alignment within the SEI message may be a padding bit. The zero bit may be a specific bit inserted to align byte boundaries in 8-bit units. The value of the zero bit for byte alignment within the SEI message may be set to 0. The zero bit may be a single bit. For example, the zero bit for byte alignment within the SEI message may be a zero bit for byte alignment within the OMI SEI message.
[0222] The zero bit for byte alignment within an SEI message can take various forms and be represented by various names. For example, the zero bit for byte alignment within an SEI message may be a syntax element or a syntax structure containing one or more syntax elements. For example, the zero bit for byte alignment within an SEI message, which is a syntax element, may be represented as the syntax element omi_bit_equal_to_zero, but is not limited thereto.
[0223] Subsequently, the decoding device can obtain object mask information containing label information by obtaining label information for the object mask.
[0224] In one embodiment, if the information regarding the existence of label information for an object mask indicates that label information exists within the SEI message, the label information for the object mask may be obtained after obtaining a zero bit for byte alignment within the SEI message. If the information regarding the existence of label information for an object mask indicates that label information exists within the SEI message, the decoding device may first obtain a zero bit for byte alignment within the SEI message before obtaining the label information for the object mask.
[0225] In one embodiment, if information regarding the existence of label information for an object mask indicates that label information exists within the SEI message, and the current bit position within the SEI message is not aligned to a byte unit position, the decoding device may perform byte alignment based on the zero bit. Through this alignment process, consistency of the syntactic structure in which label information is subsequently parsed in byte units is guaranteed, and parsing stability of the bitstream can be improved.
[0226] In one embodiment, if the information regarding the existence of label information for an object mask indicates that label information does not exist within the SEI message, the zero bit may not be acquired. That is, if the information regarding the existence of label information for an object mask indicates that label information does not exist within the SEI message, the decoding device may not acquire the zero bit. Accordingly, the process of acquiring unnecessary bits can be omitted to save the number of bits and improve the efficiency of the entire bitstream.
[0227] For example, if the value of the information on whether label information for an object mask exists is 1, the label information may be obtained after obtaining a zero bit for byte alignment within the SEI message. As another example, if the value of the information on whether label information for an object mask exists is 0, the zero bit for byte alignment within the SEI message may not be obtained. However, this is not limited thereto, and alternatively, specifying that the value of the information on whether label information for an object mask exists is 1 may be changed to specifying that the value of the information on whether label information for an object mask exists is 0.
[0228] According to the present disclosure, a decoding device is configured to decode label information for object mask information at a byte-aligned position when label information exists within an object mask information SEI message, and can perform byte alignment only when said label information exists to obtain bits for alignment only when necessary.
[0229] Accordingly, when label information is not present, unnecessary byte alignment is not performed, thereby removing unnecessary bits within the bitstream and reducing the overall length, resulting in a bit-saving effect. In other words, the decoding method according to the present disclosure can improve decoding and data processing efficiency by performing byte alignment only when necessary.
[0230] FIG. 6 is a diagram illustrating a method for encoding image information according to one embodiment of the present disclosure.
[0231] The terms or names described in FIG. 6 (e.g., names of syntax elements or variables, etc.) are merely examples, and the technical features of the present disclosure are not limited to the terms, etc. described in FIG. 6. For example, the image information described in FIG. 6 may include various information according to the embodiments described in the present disclosure and may include information described in at least one of the tables described above.
[0232] The encoding method (S600) may include operations described below. The operations described below do not constitute an essential component of the encoding method according to one embodiment, and at least some of the operations described below may be omitted. Furthermore, the operations described below do not constitute a sufficient component of the encoding method according to one embodiment, and the previously described operations may be added. Moreover, unless the operations described below contradict the previously described operations, they form an embodiment integrally with the previously described operations and do not form a separate embodiment distinct from the previously described operations.
[0233] The encoding device can generate a SEI (supplemental enhancement information) message (S610).
[0234] The encoding device can perform image analysis on the picture of the main layer and generate information regarding object regions for object detection and tracking tasks. In other words, the encoding device can generate an object mask for object detection and tracking tasks based on the picture of the main layer. In this way, by the encoding device performing image analysis on the picture of the main layer, the power consumption of the decoding device is reduced, and more accurate object detection and tracking become possible. Here, the main layer may include the picture to be decoded. The main layer is not limited to a specific name and may be referred to in various ways, such as the main picture layer.
[0235] The encoding device may generate an auxiliary layer associated with a main layer based on an object mask. The auxiliary layer may include an object mask for object detection and tracking operations of the main layer. Additionally, the auxiliary layer may include additional information of the main layer (e.g., depth or alpha). The auxiliary layer is not limited to a specific name and may be referred to in various ways, such as an auxiliary picture layer.
[0236] According to one embodiment, the encoding device can generate at least one Object Mask Information (OMI) SEI message associated with the current layer based on object mask information. For example, the processor of the encoding device can generate at least one OMI SEI message associated with the current layer based on object mask information.
[0237] OMI SEI messages can take various forms. For example, an OMI SEI message may be a syntax element or a syntax structure containing one or more syntax elements. Additionally, an OMI SEI message may be a raw byte sequence payload (RBSP) containing one or more syntax elements or one or more syntax structures. For example, an OMI SEI message may be represented as object_mask_info(payloadSize), but is not limited thereto.
[0238] OMI SEI messages may have various names, such as OMI messages, SEI messages, OMI-related messages, and OMI-related information, and such names are not limited.
[0239] The object mask information provided by the OMI SEI message may include label information for the object mask, information on whether the label information for the object mask exists, and a zero bit for byte alignment within the OMI SEI message.
[0240] Label information for object masks may represent label information for each object mask within an auxiliary layer associated with a main layer. For example, the syntax length of label information for object masks may be 255 bytes or less without including a null termination byte.
[0241] Label information for an object mask can take various forms and be represented by various names. For example, label information for an object mask can be a syntax element or a syntax structure containing one or more syntax elements. For example, label information for an object mask that is a syntax element can be represented as the syntax element omi_mask_label[ i ][ j ], but is not limited thereto.
[0242] For example, if label information for an object mask is represented as omi_mask_label[ i ][ j ], omi_mask_label[ i ][ j ] may represent label information associated with the j-th object mask in the object mask of the i-th auxiliary layer associated with the current base layer. Here, index i represents the i-th auxiliary layer, index j represents the j-th object mask within the i-th auxiliary layer, and each value constituting the 2D array may represent label information of the j-th object mask within the i-th auxiliary layer.
[0243] The following describes the process by which an encoding device generates an SEI message based on object mask information.
[0244] According to one embodiment, the encoding device can encode label information for an object mask. The encoding device can generate and encode information regarding the existence of label information based on the label information for an object mask within an OMI SEI message.
[0245] Information regarding the existence of label information for an object mask may be flag information indicating whether label information exists within the OMI SEI message.
[0246] Information regarding the existence of label information for an object mask may take various forms and be expressed by various names. For example, information regarding the existence of label information for an object mask may be a syntax element or a syntax structure containing one or more syntax elements. For example, information regarding the existence of label information for an object mask that is a syntax element may be expressed as the syntax element omi_mask_label_info_present_flag, but is not limited thereto.
[0247] Information regarding the existence of label information for an object mask may be a 1-bit flag or an indicator of 2 bits or more. For example, if the value of the information regarding the existence of label information for an object mask is 1, it may indicate that the information regarding the existence of language information for the label of the object mask and the label information for the object mask may exist. Additionally, if the value of the information regarding the existence of label information for an object mask is 0, it may indicate that the information regarding the existence of language information for the label of the object mask and the label information for the object mask may not exist. However, this is not limited thereto, and alternatively, specifying that the value of the information regarding the existence of label information for an object mask is 1 may be replaced with specifying that the value of the information regarding the existence of label information for an object mask is 0.
[0248] In one embodiment, the encoding device can insert a zero bit for byte alignment within the OMI SEI message based on label information for an object mask within the OMI SEI message.
[0249] In one embodiment, if label information for an object mask exists within an OMI SEI message and the current bit position within the OMI SEI message is not aligned to a byte unit position, the label information may be encoded after inserting a zero bit for byte alignment within the OMI SEI message. Additionally, if label information for an object mask exists within an OMI SEI message and the current bit position within the OMI SEI message is not aligned to a byte unit position, the encoding device may encode the label information for the object mask after inserting a zero bit for byte alignment within the OMI SEI message.
[0250] Here, the zero bit for byte alignment within the OMI SEI message may be a padding bit. The zero bit may be a bit set to a specific value to align byte boundaries in 8-bit units. The zero bit for byte alignment within the OMI SEI message may be set to a value of 0. The zero bit may be a single bit. For example, the zero bit for byte alignment within the OMI SEI message may be a zero bit for byte alignment within the OMI SEI message.
[0251] The zero bit for byte alignment within an OMI SEI message can take various forms and be represented by various names. For example, the zero bit for byte alignment within an OMI SEI message may be a syntax element or a syntax structure containing one or more syntax elements. For example, the zero bit for byte alignment within an OMI SEI message that is a syntax element may be represented as the syntax element omi_bit_equal_to_zero, but is not limited thereto.
[0252] In one embodiment, if label information for the object mask does not exist within the OMI SEI message, the zero bit may not be inserted. That is, if label information for the object mask does not exist within the OMI SEI message, the encoding device may not insert the zero bit within the OMI SEI message. Accordingly, the process of inserting unnecessary bits can be omitted to save the number of bits and improve the efficiency of the entire bitstream.
[0253] Through this, the encoding device can generate an OMI SEI message based on object mask information including label information for the object mask, information on whether the label information for the object mask exists, and a zero bit for byte alignment within the OMI SEI message.
[0254] The encoding device can encode video information (S620).
[0255] For example, the processor of an encoding device can encode image information including a main layer, an auxiliary layer associated with the main layer, and an SEI message.
[0256] An encoding device can encode an image or image information. Here, the image may include a still image or a video, and the image information may refer to pixel data of the image, object information, additional information (e.g., SEI messages, etc.), or a combination thereof.
[0257] An encoding device can generate a bitstream by performing an encoding process on an input image or image information. At this time, the encoding process may include one or more steps such as prediction, transformation, quantization, and entropy encoding, and the generated bitstream can be used as data for reconstructing the image or image information by a decoding device.
[0258] Additionally, the encoding device according to the present disclosure can encode an Object Mask Information (OMI) supplemental enhancement information (SEI) message containing additional information about an object or object mask within an image, and the OMI SEI message may include object mask information, label information, alignment bits for byte alignment, etc.
[0259] Accordingly, the present disclosure may be applied not only to general encoding structures for encoding images or image information, but also to encoding methods of OMI SEI messages including object mask information and related additional information.
[0260] According to one embodiment, image information may include a supplemental enhancement information (SEI) message. The SEI message may convey a specific type of information that assists in processes related to the decoding, display, or other purposes of the image information. Here, the SEI message may include an OMI SEI message that provides at least one (or multiple) object mask information associated with each of at least one (or multiple) major layers. Specifically, the OMI SEI message may include object mask information associated with each of at least one (or multiple) major layers.
[0261] In particular, at least one (or multiple) OMI SEI messages may each be associated with at least one (or multiple) key layers. In other words, one of the at least one (or multiple) OMI SEI messages may be associated with the current key layer among the at least one (or multiple) key layers. Additionally, one OMI SEI message may exist in the current key layer.
[0262] In this way, the processor of the encoding device can encode image information including a main layer, an auxiliary layer associated with the main layer, and object mask information.
[0263] According to the present disclosure, an encoding device can encode label information within an OMI SEI message to be transmitted at 8 bits, that is, at a byte-aligned position, and can insert alignment bits for byte alignment into the OMI SEI message only when label information exists.
[0264] Accordingly, when label information is absent, unnecessary byte alignment is not performed, thereby preventing the insertion of unnecessary bits within the bitstream and reducing the overall length, resulting in a bit-saving effect. In other words, the encoding method according to the present disclosure can improve encoding and data processing efficiency by inserting bits for byte alignment only when necessary.
[0265] A bitstream is generated based on video information encoded according to the encoding method (S600) described above, and the bitstream can be stored on a computer-readable storage medium.
[0266] In addition, a bitstream is generated based on video information encoded according to the encoding method (S600) described above, and the bitstream can be transmitted through a transmission unit and / or a transmission medium.
[0267] FIG. 7 is a drawing illustrating an exemplary content streaming system to which an embodiment according to the present disclosure can be applied.
[0268] As illustrated in FIG. 7, a content streaming system to which an embodiment of the present disclosure is applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
[0269] The above encoding server compresses content input from multimedia input devices, such as smartphones, cameras, and camcorders, into digital data to generate a bitstream and transmits it to the streaming server. As another example, if multimedia input devices, such as smartphones, cameras, and camcorders, generate the bitstream directly, the encoding server may be omitted.
[0270] The bitstream may be generated by a video encoding method and / or encoding device to which an embodiment of the present disclosure is applied, and the streaming server may temporarily store the bitstream during the process of transmitting or receiving the bitstream.
[0271] The streaming server transmits multimedia data to a user device based on a user request through a web server, and the web server can act as a medium to inform the user of available services. When a user requests a desired service from the web server, the web server transmits it to the streaming server, and the streaming server can transmit multimedia data to the user. At this time, the content streaming system may include a separate control server, and in this case, the control server can perform the role of controlling commands and responses between each device within the content streaming system.
[0272] The streaming server can receive content from a media storage and / or an encoding server. For example, when receiving content from the encoding server, the content can be received in real time. In this case, to provide a seamless streaming service, the streaming server can store the bitstream for a certain period of time.
[0273] Examples of the above user devices may include mobile phones, smartphones, laptop computers, digital broadcasting terminals, PDAs (personal digital assistants), PMPs (portable multimedia players), navigation systems, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, HMDs (head-mounted displays)), digital TVs, desktop computers, digital signage, etc.
[0274] Each server within the above-mentioned content streaming system can be operated as a distributed server, and in this case, data received from each server can be processed in a distributed manner.
[0275] The scope of the present disclosure includes software or machine-executable instructions (e.g., operating system, application, firmware, program, etc.) that enable an operation according to a method of various embodiments to be executed on a device or computer, and a non-transitory computer-readable medium on which such software or instructions, etc. are stored and executable on a device or computer.
[0276] An embodiment according to the present disclosure can be used to encode / decode images.
Claims
1. In a video decoding method performed by a decoding device, A step of obtaining at least one Object Mask Information (OMI) and Supplemental Enhancement Information (SEI) message associated with the current layer from a bitstream; and The method includes the step of obtaining object mask information based on at least one OMI SEI message. The above object mask information is, An image decoding method characterized by including label information for an object mask, information on whether the label information for the object mask exists, and a zero bit for byte alignment within the OMI SEI message.
2. In Claim 1, The step of obtaining the object mask information above is, A step of obtaining information on whether label information for an object mask exists from the above OMI SEI message; A step of obtaining a zero bit for byte alignment within the OMI SEI message based on information regarding the existence of the label information; and An image decoding method further comprising the step of obtaining label information for the object mask.
3. In Claim 2, A video decoding method characterized in that, when information on the existence of the label information indicates that the label information exists within the OMI SEI message, the label information is obtained after obtaining the zero bit for byte alignment within the OMI SEI message.
4. In Claim 2, An image decoding method characterized by performing byte alignment based on the zero bit when the information on the existence of the label information indicates that the label information exists within the OMI SEI message, and when the current bit position within the OMI SEI message is not aligned to a byte unit position.
5. In Claim 2, An image decoding method characterized in that when the information on the existence of the above label information indicates that the above label information does not exist within the above OMI SEI message, the above zero bit is not acquired.
6. In Claim 1, An image decoding method characterized in that the above zero bit is a single bit with a value set to 0.
7. In Claim 1, An image decoding method characterized in that the above-mentioned current layer is associated with a major layer among a plurality of layers.
8. In a video encoding method performed by an encoding device, A step of generating at least one OMI (Object Mask Information) SEI (supplemental enhancement information) message associated with the current layer based on object mask information; and The method includes the step of encoding image information including at least one OMI SEI message, and The above object mask information is, An image encoding method characterized by including label information for an object mask, information on whether the label information for the object mask exists, and a zero bit for byte alignment within the OMI SEI message.
9. In Claim 8, The step of generating the above OMI SEI message is, A step of encoding label information for the object mask above; A step of generating and encoding information on the existence of label information based on label information for an object mask within the above OMI SEI message; and A video encoding method further comprising the step of inserting a zero bit for byte alignment within the OMI SEI message based on label information for an object mask within the OMI SEI message.
10. In Claim 9, A video encoding method characterized in that, when label information for the object mask exists within the OMI SEI message and the current bit position within the OMI SEI message is not aligned to a byte unit position, the label information is encoded after inserting the zero bit for byte alignment within the OMI SEI message.
11. An image encoding method according to claim 9, characterized in that if label information for the object mask does not exist within the OMI SEI message, the zero bit is not inserted.
12. In Claim 8, A video encoding method characterized in that the above zero bit is a single bit with a value set to 0.
13. In Claim 8, A video encoding method characterized in that the above-mentioned current layer is associated with a major layer among a plurality of layers.
14. In a computer-readable storage medium for storing a bitstream, At least one OMI (Object Mask Information) SEI (supplemental enhancement information) message associated with the current layer is generated based on object mask information, and a bitstream generated based on image information including the at least one OMI SEI message is stored in a computer-readable storage medium. The above object mask information is, A storage medium characterized by including label information for an object mask, information on whether the label information for the object mask exists, and a zero bit for byte alignment within the OMI SEI message.
15. A method for transmitting data regarding an image, wherein the method acquires image information, the image information comprising at least one Object Mask Information (OMI) and Supplemental Enhancement Information (SEI) message associated with a current layer; and The method includes the step of transmitting the data including the above image information, Object mask information is, A bitstream transmission method characterized by including label information for an object mask, information on whether the label information for the object mask exists, and a zero bit for byte alignment within the OMI SEI message.
Citation Information
Patent Citations
Method, apparatus and computer readable medium for dividing the region of image for low-rate transmission
KR1020110087857A
Video coding method and device
KR102690488B1
Method for image coding, electronic device and computer-readable storage medium
US20200413070A1
Content-adaptive online training method and apparatus for post-filtering
US20240291980A1
Object maskinformation for supplementalenhancement information message
WO2024213070A1