Image encoding / decoding method and device, and recording medium storing bitstream
The integration of usage restriction information in video encoding and decoding processes addresses the challenge of managing copyright permissions for AI-generated content by enabling clear signaling and verification of usage conditions, enhancing compliance and legal clarity.
Patent Information
- Application Number
- PCT/KR2025/004100
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-29
- Filing Date
- 2025-03-28
- Publication Date
- 2025-10-02
AI Technical Summary
Existing video encoding and decoding technologies lack the ability to effectively manage and signal usage restrictions, particularly in the context of high-resolution images, leading to challenges in determining and enforcing copyright permissions and conditions for AI-generated content.
A method and apparatus for encoding and decoding video data that includes usage restriction information in the bitstream, utilizing a network abstraction layer (NAL) unit, which specifies permissions such as commercial, non-commercial, academic, and AI usage, and includes a usage restriction flag and free-form string for flexibility.
Enables data users to verify copyright holder permissions and conditions, reducing the complexity of managing usage restrictions and facilitating compliance with copyright laws, especially for AI-generated content.
Smart Images

Figure KR2025004100_02102025_PF_FP_ABST
Abstract
Description
Video encoding / decoding method and device, and recording medium storing bitstream
[0001] The present invention relates to a video encoding / decoding method and device, and a recording medium storing a bitstream.
[0002] Recently, the demand for high-resolution, high-quality images, such as HD (High Definition) images and UHD (Ultra High Definition) images, is increasing in various application fields, and accordingly, high-efficiency image compression technologies are being discussed.
[0003] There are various technologies for image compression, such as inter prediction technology that predicts pixel values included in the current picture from pictures before or after the current picture, intra prediction technology that predicts pixel values included in the current picture using pixel information within the current picture, and entropy encoding technology that assigns short codes to values with high frequency of appearance and long codes to values with low frequency of appearance, and these technologies can be used to effectively compress and transmit or store image data.
[0004] The present disclosure provides a method and apparatus for configuring information regarding usage restrictions.
[0005] The present disclosure provides a method and apparatus for signaling information regarding usage restrictions.
[0006] A video encoding method and device according to the present disclosure can receive a video picture to be encoded, encode the received video picture to generate a compressed video picture, generate information regarding usage restrictions, and generate a bitstream including the compressed video picture and the information regarding the usage restrictions. Here, the information regarding the usage restrictions can be encoded in a network abstraction layer (NAL) unit of the bitstream. The information regarding the usage restrictions can include usage restriction information regarding usage restrictions on the picture.
[0007] In the video encoding method and device according to the present disclosure, the usage restriction information may be configured in the copyright information of the bitstream.
[0008] In the video encoding method and device according to the present disclosure, the usage restriction information can be generated based on a CI cancellation flag regarding the persistence of previous copyright information.
[0009] In the video encoding method and device according to the present disclosure, the information regarding the usage restriction may further include a usage restriction flag regarding the presence or absence of the usage restriction information.
[0010] In the video encoding method and device according to the present disclosure, the usage restriction information can be generated based on the usage restriction flag.
[0011] In the video encoding method and device according to the present disclosure, the usage restriction information can be generated based on a UR cancellation flag regarding the persistence of information regarding previous usage restrictions.
[0012] In the video encoding method and device according to the present disclosure, the usage restriction information can be defined as a free-form string.
[0013] In the video encoding method and device according to the present disclosure, the usage restriction information can be defined as a bit mask of u(x).
[0014] In the video encoding method and device according to the present disclosure, the usage restriction information can specify at least one usage permission applied to the bitstream among a plurality of pre-defined usage permissions.
[0015] In the video encoding method and device according to the present disclosure, the plurality of use permissions may include at least one of a permission to use a discriminative model, a permission to use a generative model, a permission to use for commercial purposes, a permission to use for non-commercial purposes, a permission to use for academic purposes, a permission to use for modification, a permission to use for redistribution, a permission to use for personally identifiable information, a permission to use for artificial intelligence (AI), a permission to use for AI learning, or a permission to use for AI inference.
[0016] In the video encoding method and device according to the present disclosure, the use restriction information may include at least one of a discrimination model permission flag, a generation model permission flag, a commercial use permission flag, a non-commercial use permission flag, a redistribution permission flag, a modification permission flag, a personal identification information permission flag, an AI permission flag, a learning permission flag, or an inference permission flag.
[0017] A video decoding method and device according to the present disclosure can receive a bitstream including an encoded video picture and restore the encoded video picture included in the bitstream. Here, the bitstream includes information regarding usage restrictions, and the information regarding the usage restrictions can be obtained from a network abstraction layer (NAL) unit of the bitstream. The information regarding the usage restrictions can include usage restriction information regarding usage restrictions on a picture.
[0018] A computer-readable digital storage medium is provided having encoded video / image information stored thereon, which causes a decoding device according to the present disclosure to perform a video decoding method.
[0019] A computer-readable digital storage medium storing video / image information generated by a video encoding method according to the present disclosure is provided.
[0020] A method and device for transmitting video / image information generated by a video encoding method according to the present disclosure are provided.
[0021] According to the present disclosure, by configuring usage restriction information regarding usage restrictions, data users can check information on the usage conditions of the copyright holder.
[0022] According to the present disclosure, the amount of information transmitted regarding usage restrictions can be reduced and easy expansion to new restrictions can be enabled.
[0023] FIG. 1 illustrates a video / image coding system according to the present disclosure.
[0024] FIG. 2 is a schematic block diagram of an encoding device to which an embodiment of the present disclosure can be applied and in which encoding of a video / image signal is performed.
[0025] FIG. 3 is a schematic block diagram of a decoding device to which an embodiment of the present disclosure can be applied and in which decoding of a video / image signal is performed.
[0026] FIG. 4 illustrates a method for generating a bitstream performed in an encoding device (200) according to the present disclosure.
[0027] FIG. 5 illustrates a schematic configuration of an encoding device (200) that performs a method for generating a bitstream according to the present disclosure.
[0028] FIG. 6 illustrates a method for restoring a video picture performed in a decoding device (300) according to the present disclosure.
[0029] FIG. 7 illustrates a schematic configuration of a decoding device (300) that performs a method for restoring a video picture according to the present disclosure.
[0030] Figures 8 to 11 illustrate examples of application of restrictions defined by usage restriction information according to the present disclosure.
[0031] FIG. 12 illustrates an example of a content streaming system to which embodiments of the present disclosure can be applied.
[0032] The present disclosure may be modified in various ways and encompasses numerous embodiments. Specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present disclosure to specific embodiments, but rather to encompass all modifications, equivalents, and alternatives falling within the spirit and technical scope of the present disclosure. Throughout the description of each drawing, similar reference numerals have been used to designate similar components.
[0033] While terms such as "first" and "second" may be used to describe various components, these components should not be limited by these terms. These terms are used solely to distinguish one component from another. For example, without departing from the scope of the present disclosure, a first component could be referred to as a "second component," and similarly, a second component could also be referred to as a "first component." The term "and / or" includes a combination of multiple related items described herein or any of multiple related items described herein.
[0034] When a component is referred to as being "connected" or "connected" to another component, it should be understood that it may be directly connected or connected to that other component, but that there may be other components intervening. Conversely, when a component is referred to as being "directly connected" or "connected" to another component, it should be understood that there are no other components intervening.
[0035] The terminology used in this application is only used to describe specific embodiments and is not intended to limit the present disclosure. The singular expression includes the plural expression unless the context clearly indicates otherwise. In this application, it should be understood that the terms "comprise" or "have" indicate the presence of a feature, number, step, operation, component, part, or combination thereof described in the specification, but do not preclude the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.
[0036] The present disclosure relates to video / image coding. For example, the methods / embodiments disclosed in this specification can be applied to methods disclosed in the versatile video coding (VVC) standard. In addition, the methods / embodiments disclosed in this specification can be applied to methods disclosed in the essential video coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the second generation of audio video coding standard (AVS2), or the next generation of video / image coding standards (e.g., H.267 or H.268).
[0037] This specification presents various embodiments of video / image coding, and unless otherwise stated, the embodiments may be performed in combination with each other.
[0038] In this specification, a video may refer to a set of images over time. A picture generally refers to a unit representing one image at a specific time point, and a slice / tile is a unit that constitutes 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 tile is a rectangular area consisting of multiple CTUs within a specific tile column and a specific tile row of a picture. A tile column is a rectangular area of CTUs that has a height equal to the height of the picture and a width specified by the syntax requirements of the picture parameter set. A tile row is a rectangular area of CTUs that has a height specified by the picture parameter set and a width equal to the width of the picture. CTUs within a tile are arranged consecutively according to the CTU raster scan, while tiles within a picture may be arranged consecutively according to the tile raster scan. A slice may contain an integer number of complete tiles or an integer number of contiguous complete CTU rows within a picture, which may be exclusively contained within a single NAL unit. Meanwhile, a picture may be divided into two or more subpictures. A subpicture may be a rectangular region of one or more slices within a picture.
[0039] A pixel, or pel, can refer to the smallest unit that constitutes a picture (or image). Additionally, the term "sample" can be used as a counterpart to a pixel. A sample can generally represent a pixel or a pixel value, and can represent only the pixel / pixel value of the luminance component, or only the pixel / pixel value of the chrominance component.
[0040] A unit may represent a basic unit of image processing. A unit may include at least one of a specific region of a picture and information related to the region. One unit may include one luma block and two chroma (e.g., cb, cr) blocks. In some cases, the term "unit" may be used interchangeably with terms such as "block" or "area." In general, an MxN block may include a set (or array) of samples (or sample array) or transform coefficients consisting of M columns and N rows.
[0041] As used herein, "A or B" can mean "only A," "only B," or "both A and B." In other words, as used herein, "A or B" can be interpreted as "A and / or B." For example, as used herein, "A, B or C" can mean "only A," "only B," "only C," or "any combination of A, B and C."
[0042] As used herein, a slash ( / ) or a comma can mean "and / or." For example, "A / B" can mean "A and / or B." Accordingly, "A / B" can mean "only A," "only B," or "both A and B." For example, "A, B, C" can mean "A, B, or C."
[0043] In this specification, "at least one of A and B" may mean "only A", "only B" or "both A and B". Additionally, in this specification, the expressions "at least one of A or B" or "at least one of A and / or B" may be interpreted identically to "at least one of A and B".
[0044] Additionally, in this specification, “at least one of A, B and C” can mean “only A,” “only B,” “only C,” or “any combination of A, B and C.” Additionally, “at least one of A, B or C” or “at least one of A, B and / or C” can mean “at least one of A, B and C.”
[0045] Additionally, parentheses used herein may mean "for example." Specifically, when "prediction (intra-prediction)" is indicated, "intra-prediction" may be suggested as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra-prediction," and "intra-prediction" may be suggested as an example of "prediction." Furthermore, even when "prediction (i.e., intra-prediction)" is indicated, "intra-prediction" may be suggested as an example of "prediction."
[0046] Technical features individually described in a single drawing in this specification may be implemented individually or simultaneously.
[0047] FIG. 1 illustrates a video / image coding system according to the present disclosure.
[0048] Referring to FIG. 1, a video / image coding system may include a first device (source device) and a second device (receiving device).
[0049] A source device can transmit encoded video / image information or data to a receiving device via a digital storage medium or a network in the form of a file or streaming. The source device may include a video source, an encoding device, and a transmitting device. The receiving device may include a receiving device, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as 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 configured as a separate device or an external component.
[0050] A video source may obtain video / images through a process of capturing, synthesizing, or generating video / images. The video source may include a video / image capture device and / or a video / image generation device. The video / image capture device may include one or more cameras, a video / image archive containing previously captured video / images, etc. The video / image generation device may include a computer, a tablet, a smartphone, etc., and may (electronically) generate video / images. For example, a virtual video / image may be generated through a computer, etc., in which case the video / image capture process may be replaced by a process of generating related data.
[0051] An encoding device can encode input video / images. The encoding device can perform a series of procedures, such as prediction, transformation, and quantization, to improve compression and coding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream.
[0052] 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 via a digital storage medium or network in the form of a file or streaming. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmission unit can include an element for generating a media file via a predetermined file format and an element for transmission via a broadcasting / communication network. The receiving unit can receive / extract the bitstream and transmit it to a decoding device.
[0053] The decoding device can decode the video / image by performing a series of procedures such as inverse quantization, inverse transformation, and prediction corresponding to the operation of the encoding device.
[0054] The renderer can render decoded video / images. The rendered video / images can be displayed through the display unit.
[0055] FIG. 2 is a schematic block diagram of an encoding device to which an embodiment of the present disclosure can be applied and in which encoding of a video / image signal is performed.
[0056] Referring to FIG. 2, the encoding device (200) may be configured to include an image partitioner (210), a prediction unit (predictor) 220, a residual processor (residual processor) 230, an entropy encoder (entropy encoder) 240, an adder (adder) 250, a filter (filter) 260, and a memory (memory) 270. The prediction unit (220) may include an inter prediction unit (221) and an intra prediction unit (222). The residual processor (230) may include a transformer (transformer) 232, a quantizer (quantizer) 233, a dequantizer (dequantizer) 234, and an inverse transformer (inverse transformer) 235. The residual processing unit (230) may further include a subtractor (231). The addition unit (250) may be called a reconstructor or a recontructed block generator. The image segmentation unit (210), the prediction unit (220), the residual processing unit (230), the entropy encoding unit (240), the addition unit (250), and the filtering unit (260) described above may be configured by one or more hardware components (e.g., an encoding device chipset or processor) according to an embodiment. In addition, the memory (270) may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware component may further include the memory (270) as an internal / external component.
[0057] The image segmentation unit (210) can segment an input image (or picture, frame) input to the encoding device (200) into one or more processing units. For example, the processing unit may be called a coding unit (CU). In this case, the coding unit may be recursively segmented from a coding tree unit (CTU) or a largest coding unit (LCU) according to a QTBTTT (Quad-tree binary-tree ternary-tree) structure.
[0058] For example, a single coding unit may be split into multiple coding units with deeper depths based on a quad-tree structure, a binary tree structure, and / or a ternary structure. In this case, for example, the quad-tree structure may be applied first, and the binary tree structure and / or the ternary structure may be applied later. Alternatively, the binary tree structure may be applied before the quad-tree structure. The coding procedure according to the present specification may be performed based on the final coding unit that is no longer split. In this case, based on coding efficiency according to image characteristics, etc., the largest coding unit may be used directly as the final coding unit, or, if necessary, the coding unit may be recursively split into coding units of lower depths, and the coding unit with the optimal size may be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later.
[0059] As another example, the processing unit may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may each be split or partitioned from the final coding unit described above. The prediction unit may be a unit of sample prediction, and the transform unit may be a unit for deriving a transform coefficient and / or a unit for deriving a residual signal from a transform coefficient.
[0060] The term "unit" may be used interchangeably with terms such as "block" or "area" depending on the case. In general, an MxN block can 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 can represent only the pixel / pixel value of the luminance component, or only the pixel / pixel value of the chrominance component. A sample can be used as a term corresponding to a pixel or pel in a picture (or image).
[0061] The encoding device (200) can generate a residual signal (residual block, residual sample array) by subtracting a prediction signal (prediction block, prediction sample array) output from an inter prediction unit (221) or an intra prediction unit (222) from an input video signal (original block, original sample array), and the generated residual signal is transmitted to a conversion unit (232). In this case, a unit that subtracts a prediction signal (prediction block, prediction sample array) from an input video signal (original block, original sample array) within the encoding device (200) may be called a subtraction unit (231).
[0062] The prediction unit (220) can perform a prediction on a block to be processed (hereinafter, referred to as a current block) and generate a predicted block including prediction samples for the current block. The prediction unit (220) can determine whether intra prediction or inter prediction is applied on a current block or CU basis. The prediction unit (220) can generate various information related to prediction, such as prediction mode information, as described later in the description of each prediction mode, and transmit the information to the entropy encoding unit (240). The information related to prediction can be encoded by the entropy encoding unit (240) and output in the form of a bitstream.
[0063] The intra prediction unit (222) can predict the current block by referring to samples in the current picture. The referenced samples may be located in the neighborhood of the current block, or may be located a certain distance away from the current block, depending on the prediction mode. In intra prediction, the prediction modes may include one or more non-directional modes and multiple directional modes. The non-directional mode may include at least one of a DC mode or a planar mode. The directional mode may include 33 directional modes or 65 directional modes depending on the degree of detail in the prediction direction. However, this is only an example, and a greater or lesser number of directional modes may be used depending on the settings. The intra prediction unit (222) may also determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.
[0064] The inter prediction unit (221) can derive a prediction 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, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the neighboring block can include a spatial neighboring block existing in the current picture and a temporal neighboring block existing in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The above temporal neighboring blocks may be called collocated reference blocks, collocated CUs (colCUs), etc., and the reference pictures including the temporal neighboring blocks may be called collocated pictures (colPic). For example, the inter prediction unit (221) may construct a motion information candidate list based on the neighboring 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, and for example, in the case of skip mode and merge mode, the inter prediction unit (221) may use the motion information of the neighboring blocks as the motion information of the current block. In the case of skip mode, unlike the merge mode, a residual signal may not be transmitted.In the motion vector prediction (MVP) mode, the motion vector of the 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.
[0065] The prediction unit (220) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit can apply intra prediction or inter prediction for prediction of a single block, and can also apply intra prediction and inter prediction simultaneously. This can be called combined inter and intra prediction (CIIP) mode. In addition, the prediction unit can be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode can be used for content image / video coding such as games, such as screen content coding (SCC). IBC basically performs prediction within the current picture, but can be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC can utilize at least one of the inter prediction techniques described herein. Palette mode can be viewed as an example of intra coding or intra prediction. When the palette mode is applied, sample values within a picture can be signaled based on information about the palette table and palette index. The prediction signal generated through the prediction unit (220) can be used to generate a restoration signal or a residual signal.
[0066] The transform unit (232) can apply a transform technique to the residual signal to generate transform coefficients. For example, the transform technique can 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 transform obtained from a graph when the relationship information between pixels is expressed as a graph. CNT refers to a transform obtained based on generating a prediction signal using all previously restored pixels. In addition, the transform process can be applied to a pixel block having a square size and the same size, or can be applied to a block of a non-square variable size.
[0067] The quantization unit (233) quantizes the transform coefficients and transmits them to the entropy encoding unit (240), and the entropy encoding unit (240) can encode the quantized signal (information about the quantized transform coefficients) and output it as a bitstream. The information about the quantized transform coefficients can be called residual information. The quantization unit (233) can rearrange the quantized transform coefficients in a block form into a one-dimensional vector form based on the coefficient scan order, and can also generate information about the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form.
[0068] The entropy encoding unit (240) can perform various encoding methods such as exponential Golomb, context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), etc. The entropy encoding unit (240) can also encode information necessary for video / image restoration (e.g., values of syntax elements, etc.) together or separately from quantized transform coefficients.
[0069] Encoded information (e.g., encoded video / image information) can 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 on 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). In addition, the video / image information may further include general constraint information. In the present specification, information and / or syntax elements transmitted / signaled from an encoding device to a decoding device may be included in the video / image information. The video / image information may be encoded through the above-described encoding procedure and included in the bitstream. The 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 a USB, SD, CD, DVD, Blu-ray, HDD, or SSD. The signal output from the entropy encoding unit (240) may be configured as an internal / external element of the encoding device (200) by a transmitting unit (not shown) and / or a storing unit (not shown), or the transmitting unit may be included in the entropy encoding unit (240).
[0070] The quantized transform coefficients output from the quantization unit (233) can be used to generate a prediction signal. For example, by applying inverse quantization and inverse transformation to the quantized transform coefficients through the inverse quantization unit (234) and the inverse transform unit (235), a residual signal (residual block or residual samples) can be restored. The addition unit (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). When there is no residual for the block to be processed, such as when skip mode is applied, the predicted block can be used as a reconstructed block. The addition unit (250) may be called a restoration unit or a reconstructed block generation unit. The generated restoration signal can be used for intra prediction of the next processing target block within the current picture, and can also be used for inter prediction of the next picture after filtering as described below. Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture encoding and / or restoration process.
[0071] The filtering unit (260) can improve subjective / objective picture quality by applying filtering to the restoration signal. For example, the filtering unit (260) can apply various filtering methods to the restoration picture to generate a modified restoration picture, and store the modified restoration picture in the memory (270), specifically, in the DPB of the memory (270). The various filtering methods can include 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). The information regarding filtering can be encoded by the entropy encoding unit (240) and output in the form of a bitstream.
[0072] The modified restored picture transmitted to the memory (270) can be used as a reference picture in the inter prediction unit (221). Through this, when inter prediction is applied, the encoding device can avoid prediction mismatch between the encoding device (200) and the decoding device, and can also improve encoding efficiency.
[0073] The DPB of the memory (270) can store the modified restored picture to be used as a reference picture in the inter prediction unit (221). The memory (270) can store motion information of a block from which motion information is derived (or encoded) within the current picture and / or motion information of blocks within a picture that has already been restored. The stored motion information can be transferred to the inter prediction unit (221) to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory (270) can store restored samples of restored blocks within the current picture and transfer them to the intra prediction unit (222).
[0074] FIG. 3 is a schematic block diagram of a decoding device to which an embodiment of the present disclosure can be applied and in which decoding of a video / image signal is performed.
[0075] Referring to 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-prediction unit (332) and an intra-prediction unit (331). The residual processor (320) may include a dequantizer (321) and an inverse transformer (321).
[0076] The entropy decoding unit (310), residual processing unit (320), prediction unit (330), addition unit (340), and filtering unit (350) described above may be configured by a single hardware component (e.g., a decoding device chipset or processor) depending on the embodiment. In addition, 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.
[0077] When a bitstream including video / image information is input, the decoding device (300) can restore the image corresponding to the process in which the video / image information is processed in the encoding device of FIG. 2. For example, the decoding device (300) can derive units / blocks based on block division-related information obtained from the bitstream. The decoding device (300) can perform decoding using a processing unit applied in the encoding device. Accordingly, the processing unit of decoding may be a coding unit, and the coding unit may be divided from a coding tree unit or a maximum coding unit according to a quad tree structure, a binary tree structure, and / or a ternary tree structure. One or more transform units may be derived from the coding unit. Then, the restored image signal decoded and output through the decoding device (300) can be reproduced through a reproduction device.
[0078] The decoding device (300) can receive a signal output from the encoding device of FIG. 2 in the form of a bitstream, and the received signal can be decoded through the entropy decoding unit (310). For example, the entropy decoding unit (310) can parse the bitstream to derive information (e.g., video / image information) necessary for image restoration (or picture restoration). The video / image information may further include information on 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). In addition, the video / image information may further include general constraint information. The decoding device can decode the picture further based on the information on the parameter set and / or the general constraint information. The signaling / received information and / or syntax elements described later in this specification can be decoded through the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit (310) can decode information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the values of syntax elements required for image restoration and the quantized values of transform coefficients for residuals. More specifically, the CABAC entropy decoding method receives a bin corresponding to each syntax element in the bitstream, determines a context model using information of the syntax element to be decoded and decoding information of the surrounding and decoding target blocks or information of symbols / bins decoded in the previous step, and predicts the occurrence probability of the bin according to the determined context model to 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 information of the decoded symbol / bin for the context model of the next symbol / bin after determining the context model. Information regarding prediction among the information decoded by the entropy decoding unit (310) is provided to the prediction unit (inter prediction unit (332) and intra prediction unit (331)), and residual values on which entropy decoding is performed by the entropy decoding unit (310), i.e., quantized transform coefficients and related parameter information, can be input to the residual processing unit (320). The residual processing unit (320) can derive a residual signal (residual block, residual samples, residual sample array). In addition, information regarding filtering among the information decoded by the entropy decoding unit (310) 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 a decoding device (300), or the receiving unit may be a component of an entropy decoding unit (310).
[0079] Meanwhile, a decoding device according to the present specification may be called a video / video / picture decoding device, and the decoding device may be divided into an information decoding device (video / video / picture information decoding device) and a sample decoding device (video / video / picture sample decoding device). The information decoding device may include the entropy decoding unit (310), and the sample decoding device may include at least one of the inverse quantization unit (321), the inverse transformation unit (322), the addition unit (340), the filtering unit (350), the memory (360), the inter prediction unit (332), and the intra prediction unit (331).
[0080] The inverse quantization unit (321) can inverse quantize the quantized transform coefficients and output the transform coefficients. The inverse quantization unit (321) can rearrange the quantized transform coefficients into a two-dimensional block form. In this case, the rearrangement can be performed based on the coefficient scanning order performed in the encoding device. The inverse quantization unit (321) can perform inverse quantization on the quantized transform coefficients using quantization parameters (e.g., quantization step size information) and obtain transform coefficients.
[0081] In the inverse transform unit (322), the transform coefficients are inversely transformed to obtain a residual signal (residual block, residual sample array).
[0082] The prediction unit (320) can perform a prediction on the current block and generate a predicted block including prediction samples for the current block. The prediction unit (320) can determine whether intra-prediction or inter-prediction is applied to the current block based on the information regarding the prediction output from the entropy decoding unit (310), and can determine a specific intra / inter-prediction mode.
[0083] The prediction unit (320) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit (320) can apply intra prediction or inter prediction for prediction of a single block, and can also apply intra prediction and inter prediction simultaneously. This can be called combined inter and intra prediction (CIIP) mode. In addition, the prediction unit can be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode can be used for content image / video coding such as games, such as screen content coding (SCC). IBC basically performs prediction within the current picture, but can be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC can utilize at least one of the inter prediction techniques described herein. Palette mode can be viewed as an example of intra coding or intra prediction. When palette mode is applied, information about the palette table and palette index may be included and signaled in the video / image information.
[0084] The intra prediction unit (331) can predict the current block by referring to samples within the current picture. The referenced samples may be located in the neighborhood of the current block, or may be located a certain distance away from the current block, depending on the prediction mode. In intra prediction, the prediction modes may include one or more non-directional modes and multiple directional modes. The intra prediction unit (331) may also determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.
[0085] The inter prediction unit (332) can derive a prediction 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, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, subblocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the neighboring blocks can include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in the reference picture. For example, the inter prediction unit (332) can 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, and information about the prediction can include information indicating an inter prediction mode for the current block.
[0086] The addition unit (340) can generate a restoration signal (restored picture, restoration block, restoration sample array) by adding the acquired residual signal to the prediction signal (prediction block, prediction sample array) output from the prediction unit (including the inter-prediction unit (332) and / or intra-prediction unit (331)). When there is no residual for the block to be processed, such as when skip mode is applied, the prediction block can be used as the restoration block.
[0087] The addition unit (340) may be referred to as a restoration unit or restoration block generation unit. The generated restoration signal may be used for intra prediction of the next processing target block within the current picture, may be output after filtering as described below, or may be used for inter prediction of the next picture. Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture decoding process.
[0088] The filtering unit (350) can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit (350) can apply various filtering methods to the restored picture to generate a modified restored picture, and transmit the modified restored picture to the memory (360), specifically, to the DPB of the memory (360). The various filtering methods can include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
[0089] The (corrected) reconstructed 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 a block from which motion information is derived (or decoded) in the current picture and / or motion information of blocks in a picture that has already been reconstructed. The stored motion information can be transferred to the inter prediction unit (332) to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory (360) can store reconstructed samples of reconstructed blocks in the current picture and transfer them to the intra prediction unit (331).
[0090] In this specification, the embodiments described in the filtering unit (260), the inter prediction unit (221), and the intra prediction unit (222) of the encoding device (200) can be applied to the filtering unit (350), the inter prediction unit (332), and the intra prediction unit (331) of the decoding device (300) in the same or corresponding manner, respectively.
[0091] FIG. 4 illustrates a method for generating a bitstream performed in an encoding device (200) according to the present disclosure.
[0092] A video picture to be encoded can be received (S400).
[0093] A received video picture can be encoded to generate a compressed video picture (S410).
[0094] Information regarding usage restrictions can be generated (S420).
[0095] The present disclosure relates to a method for expressing at least one of copyright, usage conditions, or restrictions of a bitstream.
[0096] Before the advent of generative AI, concerns about copyright infringement surrounding AI learning and inference were minimal. This was due to a societal consensus that the scientific use of data and the development of AI should not be hindered. Furthermore, because most AI being developed at the time was discriminative, it was not expected that AI output would pose a copyright threat.
[0097] However, media created by generative AI has become so advanced that it's difficult to distinguish it from human-generated content, raising concerns about copyright infringement. Discussions are underway regarding the need for regulations mandating disclosure of AI-generated media. To alleviate these concerns, copyright holders' terms and conditions of use and restrictions on AI data usage should be clearly defined, and data users should be able to verify these.
[0098] However, implementing this approach poses the following challenges for both data users and copyright holders. For data users, there are legal lists of copyright infringements, and it's difficult to determine whether individual data within a large-scale training dataset is subject to rights protection. Obtaining permission from rights holders is also a practical challenge. Copyright holders face challenges in determining whether AI infringes their copyright. Specifically, it's difficult to determine whether copyrighted work has been used in AI training, and it's also difficult to determine whether AI-generated results infringe copyright. Furthermore, there are concerns about rights infringement due to TDM (text / data mining) disclaimers.
[0099] To address these issues, data users must be able to access information about the copyright holder and usage conditions of individual data. To achieve this, copyright holders must be able to provide data users with information regarding the use and licensing conditions of their copyrighted work. In other words, copyright holders must have a method for notifying users of permission to use, usage conditions, and restrictions, in order to protect their rights in situations where it is difficult to determine copyright infringement. The present disclosure may include a method for specifying copyright holders' rights in an encoded bitstream.
[0100] Example 1
[0101] Information regarding usage restrictions (UR) according to the present disclosure may be included in copyright information (CI). Copyright information may be used to display copyright-related text, such as a copyright notice, in the bitstream.
[0102] Copyright information may include a CI cancellation flag (ci_cancel_flag). ci_cancel_flag may indicate the persistence of previously applied copyright information. For example, a value of ci_cancel_flag of 1 may indicate that the persistence of previous copyright information is canceled. A value of ci_cancel_flag of 0 may indicate that the persistence of copyright information is maintained. Alternatively, a value of ci_cancel_flag of 0 may indicate that copyright-related information follows.
[0103] The copyright-related information may include at least one of a CI persistence flag (ci_persistence_flag), copyright identification information (ci_information), or usage restriction information. The copyright-related information may be generated based on the value of ci_cancel_flag being 0 and may be encoded in the bitstream.
[0104] The ci_persistence_flag may indicate the persistence of copyright information. A value of 0 for ci_persistence_flag indicates that the copyright information applies only to the current picture. A value of 1 for ci_persistence_flag indicates that the copyright information applies to both the current picture and all subsequent pictures. A subsequent picture is a picture that follows the current picture in output order and may belong to the same layer as the current picture.
[0105] ci_information can indicate copyright information related to a picture within the persistence range defined by ci_cancel_flag and ci_persistence_flag. For example, ci_information can include the string "Copyright" or the symbol "ⓒ", information identifying the copyright owner, such as an individual or company name, the year the work was created, and a usage / license statement, such as "all rights reserved."
[0106] Information about usage restrictions may include usage restriction information. An example of usage restriction information is usage_restriction, which may contain information about restrictions on the use of a picture, such as usage restrictions and usage conditions.
[0107] Specifically, usage_restriction can be defined as a usage restriction for artificial intelligence (AI) only, or as a usage restriction for all users, including AI and humans.
[0108] When defined as usage restrictions for AI only, usage_restriction, unlike the aforementioned ci_information, can define copyright and licensing information for specific purposes and targets. usage_restriction can indicate AI-related usage restrictions related to pictures within the persistence range defined by ci_cancel_flag and ci_persistence_flag. Here, usage restrictions can include permitted and unpermitted portions. usage_restriction can indicate restrictions on users' use of the picture, and can indicate restrictions on use for specific purposes, restrictions on use by specific organizations, etc.
[0109] For example, usage_restriction could express phrases such as "I do not want this to be used for generative AI", "I do not want this to be used by a specific company A", "I allow this to be used for discriminative AI", "I allow copying, transmission, and processing", "I do not allow copying, transmission, or processing".
[0110] Alternatively, when defined as usage restrictions for all users, including AI and humans, usage_restriction can indicate usage restrictions related to pictures within the persistence range defined by ci_cancel_flag and ci_persistence_flag. usage_restriction can indicate restrictions on users using the picture, and can indicate restrictions on use for specific purposes, restrictions on use by specific institutions, etc. Here, usage restrictions can include parts that are permitted for use and parts that are not permitted for use.
[0111] For example, usage_restriction could indicate phrases such as "I do not want to modify or distribute this" or "I do not want to use this for AI training."
[0112] The copyright information described above can be defined as shown in Table 1.
[0113] copyright_information( payloadSize ) {Descriptorci_cancel_flagu(1)if( !ci_cancel_flag ) {ci_persistence_flagu(1)ci_informationst(v)usage_restrictionst(v)}}
[0114] According to Table 1, based on the value of ci_cancel_flag being 0, usage_restriction may be generated and encoded in the copyright information of the bitstream. Based on the value of ci_cancel_flag being 1, usage_restriction may not be generated and may not be encoded in the copyright information of the bitstream.
[0115] Here, usage_restriction can be defined as a descriptor of st(v). That is, usage_restriction can be defined as a free-form string. This is because the degree of freedom and extensibility of constraints are high, making it difficult to define them as structured information. When defined as a free-form string, its contents can be modified or expanded as needed to express them as standardized information. For example, it is possible to configure constraints such as the robot exclusion standard, which is used as a rule to prevent robots from accessing a website, or the robot exclusion expression (e.g., Robot.txt), which is a general form of the robot exclusion protocol.
[0116] Table 2 presents examples of usage_restriction constraints, which can be defined as free-form strings. However, this is merely an example; they can be defined as part of the information defined in Table 2 or as a combination of multiple components.
[0117] User-agent Subjects that must comply with the restrictions defined by copyright information (e.g., company, platform, service, AI type) allow Parts where use is allowed (e.g., Inference, Discriminative AI training, person identification information, etc.) disallow Parts where use is not allowed (e.g., Inference, Discriminative AI training, generative AI training, redistribution, person identification information, etc.)
[0118] Information about usage restrictions may further include a usage restriction flag (usage_restriction_present_flag). The usage restriction flag may indicate the presence or absence of usage restriction information. For example, if the value of the usage restriction flag is 1, this may indicate the presence of usage restriction information (e.g., usage_restriction) for the picture. If the value of the usage restriction flag is 0, this may indicate the absence of usage restriction information for the picture.
[0119] A usage_restriction can be adaptively generated and encoded in the bitstream based on a usage restriction flag. For example, a usage_restriction can be generated and encoded in the bitstream based on a usage restriction flag having a value of 1. A usage_restriction can be not generated and encoded in the bitstream based on a usage restriction flag having a value of 0.
[0120] In this case, copyright information can be defined as in Table 3.
[0121] copyright_information( payloadSize ) {Descriptorci_cancel_flagu(1)if( !ci_cancel_flag ) {ci_persistence_flagu(1)ci_informationst(v)usage_restriction_present_flagu(1)if(usage_restriction_present_flag)usage_restrictionst(v)}}
[0122] According to Table 3, based on the value of ci_cancel_flag being 0, usage_restriction_present_flag may be generated and encoded in the copyright information of the bitstream. Based on the value of ci_cancel_flag being 1, usage_restriction_present_flag may not be generated and may not be encoded in the copyright information of the bitstream. Based on the value of usage_restriction_present_flag being encoded as 1, usage_restriction may be generated and encoded in the copyright information of the bitstream. Here, usage_restriction may be defined as a free-form string, as examined with reference to Table 1.
[0123] In this way, when transmitting usage_restriction when the value of usage_restriction_present_flag is 1, the necessity of usage_restriction can be indicated with a minimum amount of information for images that do not always require usage_restriction, so the amount of information to be transmitted can be relatively reduced.
[0124] Information regarding the above usage restrictions is not included in the copyright information and may be defined independently of the copyright information.
[0125] For example, ci_information and usage_restriction can be defined independently in different SEI messages. ci_information and usage_restriction can have different persistences. This is because usage_restriction can be defined as a persistence depending on the type of information present in the picture. In the case of usage_restriction, the persistence of the constraint can be maintained only if there is information whose usage is restricted (e.g., information that can identify a specific person) in the picture. On the other hand, in the case of ci_inforamtion, persistence can be maintained within the copyright holder's content, separately from the information present in the picture.
[0126] As mentioned above, if usage_restriction is defined independently from ci_information, information on copyright information and usage restrictions can be defined as in Tables 4 and 5, respectively.
[0127] copyright_information( payloadSize ) {Descriptorci_cancel_flagu(1)if( !ci_cancel_flag ) {ci_persistence_flagu(1)ci_informationst(v)}}
[0128] According to Table 4, copyright information includes ci_cancel_flag, and based on the value of ci_cancel_flag, ci_persistence_flag and ci_information can be adaptively generated and encoded into the copyright information of the bitstream. This is as discussed above, and a duplicate explanation will be omitted here.
[0129] uasage_restriction( payloadSize ) {Descriptorur_cancel_flagu(1)if( !ur_cancel_flag ) {ur_persistence_flagu(1)usage_restrictionst(v)}}
[0130] According to Table 5, information about usage restrictions (UR) may include a UR cancellation flag (ur_cancel_flag). ur_cancel_flag may indicate the persistence of information about a previously applied usage restriction. For example, if the value of ur_cancel_flag is 1, this may indicate that the persistence of information about a previous usage restriction is canceled. If the value of ur_cancel_flag is 0, this may indicate that the persistence of information about the usage restriction is maintained. Alternatively, if the value of ur_cancel_flag is 0, this may indicate that information about a usage restriction follows.
[0131] The above usage restriction related information may include at least one of a UR persistence flag (ur_persistence_flag) or usage restriction information (usage_restriction). The usage restriction related information may be generated based on the value of ur_cancel_flag being 0 and may be encoded in the bitstream.
[0132] The ur_persistence_flag may indicate the persistence of usage restriction information. If the value of ur_persistence_flag is 0, this may indicate that the usage restriction information applies only to the current picture. If the value of ur_persistence_flag is 1, this may indicate that the usage restriction information applies to the current picture and all subsequent pictures. Here, a subsequent picture is a picture that follows the current picture in output order and may belong to the same layer as the current picture.
[0133] usage_restriction can be information about usage restrictions, such as usage restrictions or usage conditions for the picture, and can be defined as a free-form string, as discussed above.
[0134] Example 2
[0135] usage_restriction can also be defined as a bit mask of the form u(x) rather than a free-form string. For convenience of explanation, we will assume that usage_restriction is defined as a bit mask of u(16). However, this is only an example, and u(x) of different sizes can be used. Here, x can be an integer greater than or equal to 1.
[0136] For example, if the value of usage_restriction is 0, this may indicate that there are no specifically defined restrictions. Alternatively, if the value of usage_restriction is 0, this may indicate that usage is not permitted. If the value of usage_restriction is not 0, this may indicate that there are specifically defined restrictions. Alternatively, if the value of usage_restriction is not 0, this may indicate that usage is permitted for a specific purpose or target.
[0137] To indicate disallowed usage, usage_restriction can be created with a value of 0 and encoded in the bitstream. Conversely, to indicate permitted usage, usage_restriction can be created with a non-zero value and encoded in the bitstream.
[0138] Encoding devices and decoding devices may be defined with multiple usage permissions. The multiple usage permissions may relate to restrictions applicable to the bitstream. The predefined multiple usage permissions may include at least one of a usage permission for a discriminative model, a usage permission for a generative model, a usage permission for commercial use, a usage permission for non-commercial use, a usage permission for academic use, a usage permission for modification, a usage permission for redistribution, a usage permission for personal identification information (PII), a usage permission for AI, a usage permission for AI learning, or a usage permission for AI inference.
[0139] Among multiple usage permissions applicable to a bitstream, at least one usage permission applicable to the bitstream can be determined, and a usage_restriction for specifying the determined usage permission can be generated and encoded in the bitstream.
[0140] For example, usage_restriction can be defined as in Table 6. However, this is only an example. usage_restriction may define some of the usage permissions defined in Table 6. Alternatively, usage_restriction may additionally define usage permissions for other purposes (or targets) in addition to the usage permissions defined in Table 6. In addition, the bit mask in Table 6 only indicates that different bit masks are assigned to multiple usage permissions, and does not limit the value of the bit mask mapped to the corresponding usage permission.
[0141] usage_restrictionDescriptor0x01 Permission to use in discriminative models0x02 Permission to use in generative models0x04 Permission to use in commercial purposes0x08 Permission to use in academic purposes0x10 Permission to modify0x20 Permission to redistribute0x40 Permission to use personally identifiable information
[0142] Based on usage_restriction, a variable (allowedForDiscriminativeModel) indicating whether the use of the discriminative model is permitted can be derived. allowedForDiscriminativeModel can be derived as shown in the following mathematical expression 1.
[0143] [Mathematical Formula 1]
[0144] allowedForDiscriminativeModel = ((usage_restriction & 0x01) > 0 ) ? 1:0
[0145] According to Equation 1, if the value of (usage_restriction & 0x01) is not 0, the value of allowedForDiscriminativeModel can be derived as 1. If the value of allowedForDiscriminativeModel is 1, this can indicate that the use of the discriminative model is permitted. If the value of (usage_restriction & 0x01) is 0, the value of allowedForDiscriminativeModel can be derived as 0. If the value of allowedForDiscriminativeModel is 0, this can indicate that the use of the discriminative model is not permitted.
[0146] Based on usage_restriction, a variable (allowedForGenerativeModel) indicating whether use of the generative model is permitted can be derived. allowedForGenerativeModel can be derived as shown in the following mathematical expression 2.
[0147] [Equation 2]
[0148] allowedForGenerativeModel = ((usage_restriction & 0x02) > 0 ) ? 1:0
[0149] According to Equation 2, if the value of (usage_restriction & 0x02) is not 0, the value of allowedForGenerativeModel can be derived as 1. If the value of allowedForGenerativeModel is 1, this can indicate that the use of the generative model is permitted. If the value of (usage_restriction & 0x02) is 0, the value of allowedForGenerativeModel can be derived as 0. If the value of allowedForGenerativeModel is 0, this can indicate that the use of the generative model is not permitted.
[0150] Based on usage_restriction, a variable (allowedForCommercialUse) indicating whether commercial use is permitted can be derived. allowedForCommercialUse can be derived as shown in the following mathematical expression 3.
[0151] [Equation 3]
[0152] allowedForCommercialUse = ((usage_restriction & 0x04) > 0 ) ? 1:0
[0153] According to Equation 3, if the value of (usage_restriction & 0x04) is not 0, the value of allowedForCommercialUse can be derived as 1. If the value of allowedForCommercialUse is 1, this may indicate that commercial use is permitted. If the value of (usage_restriction & 0x04) is 0, the value of allowedForCommercialUse can be derived as 0. If the value of allowedForCommercialUse is 0, this may indicate that commercial use is not permitted.
[0154] Based on usage_restriction, a variable (allowedForAcademicUse) indicating whether academic use is permitted can be derived. allowedForAcademicUse can be derived as shown in the following mathematical expression 4.
[0155] [Equation 4]
[0156] allowedForAcademicUse = ((usage_restriction & 0x08) > 0 ) ? 1:0
[0157] According to Equation 4, if the value of (usage_restriction & 0x08) is not 0, the value of allowedForAcademicUse can be derived as 1. If the value of allowedForAcademicUse is 1, this can indicate that use for academic purposes is permitted. If the value of (usage_restriction & 0x08) is 0, the value of allowedForAcademicUse can be derived as 0. If the value of allowedForAcademicUse is 0, this can indicate that use for academic purposes is not permitted.
[0158] Based on usage_restriction, a variable (allowedForModification) can be derived that indicates whether modification is permitted. Here, modification can mean extraction, replication, transmission, etc. for processing. allowedForModification can be derived as shown in the following mathematical expression 5.
[0159] [Equation 5]
[0160] allowedForModification = ((usage_restriction & 0x10) > 0 ) ? 1:0
[0161] According to Equation 5, if the value of (usage_restriction & 0x10) is not 0, the value of allowedForModification can be derived as 1. If the value of allowedForModification is 1, this can indicate that modification is permitted. If the value of (usage_restriction & 0x10) is 0, the value of allowedForModification can be derived as 0. If the value of allowedForModification is 0, this can indicate that modification is not permitted.
[0162] Based on usage_restriction, a variable (allowedForRedistribution) indicating whether redistribution is permitted can be derived. allowedForRedistribution can be derived as shown in the following mathematical expression 6.
[0163] [Equation 6]
[0164] allowedForRedistribution = ((usage_restriction & 0x20) > 0 ) ? 1:0
[0165] According to Equation 6, if the value of (usage_restriction & 0x20) is not 0, the value of allowedForRedistribution can be derived as 1. If the value of allowedForRedistribution is 1, this can indicate that redistribution is permitted. If the value of (usage_restriction & 0x20) is 0, the value of allowedForRedistribution can be derived as 0. If the value of allowedForRedistribution is 0, this can indicate that redistribution is not permitted.
[0166] Based on usage_restriction, a variable (allowedToUsePII) can be derived that indicates whether personally identifiable information (PII) is permitted to be used. Here, PII can be a face, vehicle number, date of birth, etc. The allowedToUsePII variable can be derived as shown in the following mathematical expression (7).
[0167] [Equation 7]
[0168] allowedToUsePII = ((usage_restriction & 0x40) > 0 ) ? 1:0
[0169] According to Equation 7, if the value of (usage_restriction & 0x40) is not 0, the value of allowedToUsePII can be derived as 1. If the value of allowedToUsePII is 1, this may indicate that use of personally identifiable information is permitted. If the value of (usage_restriction & 0x40) is 0, the value of allowedToUsePII can be derived as 0. If the value of allowedToUsePII is 0, this may indicate that use of personally identifiable information is not permitted.
[0170] usage_restriction can also be defined with a meaning opposite to the example described above. For example, a usage_restriction value of 0 may indicate that there are no specifically defined restrictions. Alternatively, a usage_restriction value of 0 may indicate permission to use. A non-zero usage_restriction value may indicate that there are specifically defined restrictions. Alternatively, a non-zero usage_restriction value may indicate that use is not permitted for a specific purpose or target.
[0171] To indicate permission to use, usage_restriction can be created with a value of 0 and encoded in the bitstream. Conversely, to indicate disallowance, usage_restriction can be created with a non-zero value and encoded in the bitstream.
[0172] Encoding devices and decoding devices may be defined with multiple disallowances. The multiple disallowances may relate to restrictions applicable to a bitstream. The predefined multiple disallowances may include at least one of a disallowance for use in a discriminative model, a disallowance for use in a generative model, a disallowance for use in commercial use, a disallowance for use in non-commercial use, a disallowance for use in academic use, a disallowance for use in modification, a disallowance for use in redistribution, a disallowance for use in personal identification information (PII), a disallowance for use in AI, a disallowance for use in AI learning, or a disallowance for use in AI inference.
[0173] Among multiple usage restrictions applicable to a bitstream, at least one usage restriction applicable to the bitstream can be determined, and a usage_restriction for specifying the determined usage restriction can be generated and encoded in the bitstream.
[0174] For example, usage_restriction can be defined as in Table 7. However, this is only an example. usage_restriction can also define some of the disallowed usages defined in Table 7. Alternatively, usage_restriction can additionally define disallowed usages for other purposes (or targets) in addition to the disallowed usages defined in Table 7. In addition, the bit mask in Table 7 only indicates that different bit masks are assigned to multiple disallowed usages, and does not limit the value of the bit mask mapped to the corresponding disallowed usage.
[0175] usage_restrictionDescriptor0x01Discriminative model use prohibited0x02Generative model use prohibited0x04Commercial use prohibited0x08Academic use prohibited0x10Modification prohibited0x20Redistribution prohibited0x40Personally identifiable information prohibited
[0176] Based on usage_restriction, a variable (disallowedForDiscriminativeModel) indicating whether use of the discriminative model is prohibited can be derived. disallowedForDiscriminativeModel can be derived as shown in the following mathematical expression (8).
[0177] [Equation 8]
[0178] disallowedForDiscriminativeModel = ((usage_restriction & 0x01) > 0 ) ? 1:0
[0179] According to Equation 8, if the value of (usage_restriction & 0x01) is not 0, the value of disallowedForDiscriminativeModel can be derived as 1. If the value of disallowedForDiscriminativeModel is 1, this can indicate that the use of the discriminative model is not allowed. If the value of (usage_restriction & 0x01) is 0, the value of disallowedForDiscriminativeModel can be derived as 0. If the value of disallowedForDiscriminativeModel is 0, this can indicate that the use of the discriminative model is allowed.
[0180] Based on usage_restriction, a variable (disallowedForGenerativeModel) can be derived that indicates whether use of the generative model is prohibited. disallowedForGenerativeModel can be derived as shown in the following mathematical expression (9).
[0181] [Equation 9]
[0182] disallowedForGenerativeModel = ((usage_restriction & 0x02) > 0 ) ? 1:0
[0183] According to Equation 9, if the value of (usage_restriction & 0x02) is not 0, the value of disallowedForGenerativeModel can be derived as 1. If the value of disallowedForGenerativeModel is 1, this can indicate that the use of the generation model is disallowed. If the value of (usage_restriction & 0x02) is 0, the value of disallowedForGenerativeModel can be derived as 0. If the value of disallowedForGenerativeModel is 0, this can indicate that the use of the generation model is permitted.
[0184] Based on usage_restriction, a variable (disallowedForCommercialUse) indicating whether commercial use is prohibited can be derived. disallowedForCommercialUse can be derived as shown in the following mathematical expression (10).
[0185] [Equation 10]
[0186] disallowedForCommercialUse = ((usage_restriction & 0x04) > 0 ) ? 1:0
[0187] According to Equation 10, if the value of (usage_restriction & 0x04) is not 0, the value of disallowedForCommercialUse can be derived as 1. If the value of disallowedForCommercialUse is 1, this may indicate that commercial use is not permitted. If the value of (usage_restriction & 0x04) is 0, the value of disallowedForCommercialUse can be derived as 0. If the value of disallowedForCommercialUse is 0, this may indicate that commercial use is permitted.
[0188] Based on usage_restriction, a variable (disallowedForAcademicUse) indicating whether academic use is prohibited can be derived. disallowedForAcademicUse can be derived as shown in the following mathematical expression (11).
[0189] [Equation 11]
[0190] disallowedForAcademicUse = ((usage_restriction & 0x08) > 0 ) ? 1:0
[0191] According to Equation 11, if the value of (usage_restriction & 0x08) is not 0, the value of disallowedForAcademicUse can be derived as 1. If the value of disallowedForAcademicUse is 1, this can indicate that use for academic purposes is not permitted. If the value of (usage_restriction & 0x08) is 0, the value of disallowedForAcademicUse can be derived as 0. If the value of disallowedForAcademicUse is 0, this can indicate that use for academic purposes is permitted.
[0192] Based on usage_restriction, a variable (disallowedForModification) can be derived that indicates whether modification is prohibited. Here, modification can mean extraction, replication, transmission, etc. for processing. disallowedForModification can be derived as shown in the following mathematical expression (12).
[0193] [Equation 12]
[0194] disallowedForModification = ((usage_restriction & 0x10) > 0 ) ? 1:0
[0195] According to Equation 12, if the value of (usage_restriction & 0x10) is not 0, the value of disallowedForModification can be derived as 1. If the value of disallowedForModification is 1, this can indicate that modification is not permitted. If the value of (usage_restriction & 0x10) is 0, the value of disallowedForModification can be derived as 0. If the value of disallowedForModification is 0, this can indicate that modification is permitted.
[0196] Based on usage_restriction, a variable (disallowedForRedistribution) indicating whether redistribution is prohibited can be derived. disallowedForRedistribution can be derived as shown in the following mathematical expression 6.
[0197] [Equation 13]
[0198] disallowedForRedistribution = ((usage_restriction & 0x20) > 0 ) ? 1:0
[0199] According to Equation 13, if the value of (usage_restriction & 0x20) is not 0, the value of disallowedForRedistribution can be derived as 1. If the value of disallowedForRedistribution is 1, this can indicate that redistribution is not permitted. If the value of (usage_restriction & 0x20) is 0, the value of disallowedForRedistribution can be derived as 0. If the value of disallowedForRedistribution is 0, this can indicate that redistribution is permitted.
[0200] Based on usage_restriction, a variable (disallowedToUsePII) can be derived that indicates whether personally identifiable information is not permitted to be used. Here, personally identifiable information can be a face, vehicle number, date of birth, etc. disallowedToUsePII can be derived as shown in the following mathematical expression (14).
[0201] [Equation 14]
[0202] disallowedToUsePII = ((usage_restriction & 0x40) > 0 ) ? 1:0
[0203] According to Equation 14, if the value of (usage_restriction & 0x40) is not 0, the value of disallowedToUsePII can be derived as 1. If the value of disallowedToUsePII is 1, this may indicate that use of personally identifiable information is not permitted. If the value of (usage_restriction & 0x40) is 0, the value of disallowedToUsePII can be derived as 0. If the value of disallowedToUsePII is 0, this may indicate that use of personally identifiable information is permitted.
[0204] The above usage_restriction can be defined as in Table 8 in the copyright information.
[0205] copyright_information( payloadSize ) { Descriptorci_cancel_flagu(1)if( !ci_cancel_flag ) { ci_persistence_flagu(1)ci_informationst(v)usage_restrictionu(16)}}
[0206] The copyright information according to Table 8 is the same as that described with reference to Table 1. However, usage_restriction in Table 8 can be defined as a descriptor of u(16) rather than a free-form string. That is, usage_restriction can be encoded as an unsigned integer with 16 bits.
[0207] Usage_restriction can be adaptively generated based on the aforementioned usage_restriction_present_flag and encoded into the bitstream. In this case, usage_restriction can be defined in the copyright information as shown in Table 9.
[0208] copyright_information( payloadSize ) {Descriptorci_cancel_flagu(1)if( !ci_cancel_flag ) { ci_persistence_flagu(1)ci_informationst(v)usage_restriction_present_flagu(1)if(usage_restriction_present_flag)usage_restrictionu(16)}}
[0209] According to Table 9, based on the value of usage_restriction_present_flag being 1, usage_restriction may be generated and encoded in the copyright information of the bitstream. Based on the value of usage_restriction_present_flag being 0, usage_restriction may not be generated and may not be encoded in the copyright information of the bitstream.
[0210] Information regarding the above usage restrictions is not included in the copyright information and may be defined independently of the copyright information, as discussed above.
[0211] For example, if usage_restriction is defined independently from ci_information, information about copyright information and usage restrictions can be defined as in Tables 10 and 11, respectively.
[0212] copyright_information( payloadSize ) {Descriptorci_cancel_flagu(1)if( !ci_cancel_flag ) {ci_persistence_flagu(1)ci_informationst(v)}}
[0213] Table 10 is as discussed with reference to Table 4, and any duplicate explanations will be omitted here.
[0214] uasage_restriction( payloadSize ) {Descriptorur_cancel_flagu(1)if( !ur_cancel_flag ) {ur_persistence_flagu(1)usage_restrictionu(16)}}
[0215] Table 11 is similar to Table 5, and duplicate explanations will be omitted here. However, usage_restriction in Table 11 can be defined as a descriptor of u(16) rather than a free-form string. That is, usage_restriction can be encoded as an unsigned integer with 16 bits.
[0216] Example 3
[0217] The present disclosure relates to a method of defining constraints defined in Examples 1 and 2 as flags.
[0218] The methods using free-form strings and bit masks presented in Examples 1 and 2 may require a single syntax to contain too much information when the usage restriction information is detailed / diversified, since a specific syntax includes all information related to the usage restriction.
[0219] Accordingly, this disclosure proposes a method for defining individual constraints as independent flags. This clarifies the meaning of constraints for each syntax. Furthermore, since new constraints only require a new syntax definition, it facilitates the expansion of new constraints.
[0220] The usage restriction information according to the present disclosure may include at least one of a discriminative model permission flag (allowed_for_discriminative_ai_flag), a generative model permission flag (allowed_for_generative_ai_flag), a commercial use permission flag (allowed_for_commercial_use_flag), a non-commercial use permission flag (allowed_for_non_commercial_use_flag), a redistribution permission flag (allowed_for_redistribution_flag), a modification permission flag (allowed_for_modification_flag), a personally identifiable information permission flag (allowed_to_use_pii_flag), an AI permission flag (allowed_for_ai_flag), a training permission flag (allowed_for_training_flag), an inference permission flag (allowed_for_inferencing_flag), or a usage_restriction.
[0221] allowed_for_discriminative_ai_flag can indicate whether or not it is allowed to be used in discriminative models. For example, if allowed_for_discriminative_ai_flag has a value of 1, it can indicate that it is allowed to be used in discriminative models. If allowed_for_discriminative_ai_flag has a value of 0, it can indicate that it is not allowed to be used in discriminative models.
[0222] allowed_for_generative_ai_flag can indicate whether generative models are allowed to use AI. For example, if allowed_for_generative_ai_flag has a value of 1, it can indicate that AI is allowed to use generative models. If allowed_for_generative_ai_flag has a value of 0, it can indicate that AI is not allowed to use generative models.
[0223] The allowed_for_commercial_use_flag can indicate whether commercial use is permitted. For example, a value of allowed_for_commercial_use_flag of 1 indicates that commercial use is permitted. A value of allowed_for_commercial_use_flag of 0 indicates that commercial use is prohibited.
[0224] allowed_for_non_commercial_use_flag can indicate whether non-commercial use is permitted. For example, if allowed_for_non_commercial_use_flag has a value of 1, it can indicate that non-commercial use (e.g., research / academic purposes) is permitted. If allowed_for_non_commercial_use_flag has a value of 0, it can indicate that non-commercial use is prohibited.
[0225] allowed_for_modification_flag can indicate whether modification is permitted. For example, if allowed_for_modification_flag has a value of 1, it can indicate that modification is permitted. If allowed_for_modification_flag has a value of 0, it can indicate that modification is prohibited.
[0226] The allowed_for_redistribution_flag can indicate whether redistribution is permitted. For example, a value of allowed_for_redistribution_flag of 1 indicates that redistribution is permitted. A value of allowed_for_redistribution_flag of 0 indicates that redistribution is prohibited.
[0227] allowed_to_use_pii_flag can indicate whether personally identifiable information can be used. For example, if allowed_to_use_pii_flag has a value of 1, this indicates that personally identifiable information can be used. If allowed_to_use_pii_flag has a value of 0, this indicates that personally identifiable information cannot be used.
[0228] allowed_for_ai_flag can indicate whether AI is permitted to use data / pictures. For example, if allowed_for_ai_flag has a value of 1, this indicates that AI is permitted to use the data / pictures. If allowed_for_ai_flag has a value of 0, this indicates that AI is not permitted to use the data / pictures. For allowed_for_ai_flag, this may be an example where detailed restrictions regarding usage restrictions are not defined.
[0229] allowed_for_training_flag can indicate whether data / pictures are allowed to be used for AI training. For example, if allowed_for_training_flag has a value of 1, this indicates that data / pictures are allowed to be used for AI training. If allowed_for_training_flag has a value of 0, this indicates that data / pictures are not allowed to be used for AI training.
[0230] The allowed_for_inferencing_flag can indicate whether data / pictures are allowed to be used for AI inference. For example, if the value of allowed_for_inferencing_flag is 1, this can indicate that data / pictures are allowed to be used for AI inference. If the value of allowed_for_inferencing_flag is 0, this can indicate that data / pictures are not allowed to be used for AI inference.
[0231] The above-described allowed_for_training_flag and allowed_for_inferencing_flag may be examples of more fine-grained definitions of AI usage permissions, unlike allowed_for_ai_flag. Accordingly, at least one of allowed_for_training_flag or allowed_for_inferencing_flag may be adaptively generated based on allowed_for_ai_flag and encoded in the bitstream. For example, at least one of allowed_for_training_flag or allowed_for_inferencing_flag may be generated based on the value of allowed_for_ai_flag being 1 and encoded in the bitstream. On the other hand, at least one of allowed_for_training_flag or allowed_for_inferencing_flag may not be generated and may not be encoded in the bitstream based on the value of allowed_for_ai_flag being 0.
[0232] usage_restriction is the same as that discussed in Example 1 or 2, and duplicate explanations will be omitted here. That is, usage_restriction is usage restriction information for a picture, and can be defined as a free-form string or a bit mask in the form of u(x).
[0233] The usage_restriction can be adaptively generated based on the additional usage restriction flag (additional_restriction_present_flag) and encoded in the bitstream. The additional_restriction_present_flag can indicate the presence of additional restrictions. For example, if the value of additional_restriction_present_flag is 1, this can indicate the presence of additional restrictions. If the value of additional_restriction_present_flag is 0, this can indicate the absence of additional restrictions. Here, the additional restrictions can mean restrictions other than those defined by the aforementioned flags.
[0234] The above usage restriction information can be adaptively generated based on a usage restriction flag (usage_restriction_present_flag) and encoded in the bitstream. The usage_restriction_present_flag can indicate whether usage restriction information for a picture exists, as discussed above. For example, the usage restriction information can be generated and encoded in the bitstream based on the value of usage_restriction_present_flag being 1. On the other hand, the usage restriction information can not be generated and can not be encoded in the bitstream based on the value of usage_restriction_present_flag being 0.
[0235] The aforementioned usage restriction information may be configured within the copyright information. Alternatively, the usage restriction information may be configured within information regarding usage restrictions defined independently of the copyright information.
[0236] Table 12 shows examples of defining constraints as flags in Examples 1 and 2, which are defined as free-form strings and bit masks in the form of u(x).
[0237] usage_restriction( payloadSize ) { Descriptor_cancel_flagu(1)if( !ur_cancel_flag ) { ur_persistence_flagu(1)allowed _for_discriminative_ai_flagu(1)allowed _for_generative_ai_flagu(1)allowed _for_commercial_use_flagu(1)allowed _for_non_commercial_use_flagu(1)allowed_for_redistribution_flagu(1)allowed_for_modification_flagu(1)allowed_to_use_pii_flagu(1)additional_restriction_present_flagu(1)if(additional_restriction_present_flag)usage_restrictionst(v)}}
[0238] The usage restriction information according to Table 12 may be configured in the usage restriction information (usage_restriction(payloadSize)). Here, the usage restriction information may include allowed_for_discriminative_ai_flag, allowed_for_generative_ai_flag, allowed_for_commercial_use_flag, allowed_for_non_commercial_use_flag, allowed_for_redistribution_flag, allowed_for_modification_flag, allowed_to_use_pii_flag, and usage_restriction. In addition, the usage restriction information may be generated based on the value of ur_cancel_flag being 0 and may be encoded in the bitstream. The usage_restriction may be generated based on the value of additional_restriction_present_flag being 1 and may be encoded in the bitstream. ur_cancel_flag and ur_persistence_flag in Table 12 are as described with reference to Table 5.
[0239] Table 13 shows an example defining a flag indicating whether the use of AI is permitted.
[0240] copyright_information( payloadSize ) { Descriptorci_cancel_flagu(1)if( !ci_cancel_flag ) { ci_persistence_flagu(1)ci_informationst(v)allowed_for_ai_flagu(1)}}
[0241] The usage restriction information according to Table 13 can be configured in copyright information (copyright_information(payloadSize)). Here, the usage restriction information can include allowed_for_ai_flag. allowed_for_ai_flag can be generated based on the value of ci_cancel_flag being 0 and can be encoded in the bitstream. ci_cancel_flag, ci_persistence_flag, and ci_information in Table 13 are as discussed with reference to Table 4.
[0242] Table 14 provides an example that further refines the definition of whether AI use is permitted.
[0243] copyright_information( payloadSize ) { Descriptorci_cancel_flagu(1)if( !ci_cancel_flag ) { ci_persistence_flagu(1)ci_informationst(v)allowed_for_training_flagu(1)allowed_for_inferencing_flagu(1)}}
[0244] The usage restriction information according to Table 14 can be configured in copyright information (copyright_information(payloadSize)). Here, the usage restriction information can include allowed_for_training_flag and allowed_for_inferencing_flag. The usage restriction information can be generated based on the value of ci_cancel_flag being 0 and can be encoded in the bitstream. ci_cancel_flag, ci_persistence_flag, and ci_information in Table 14 are as discussed with reference to Table 4.
[0245] Table 15 shows an example where usage restriction information is defined independently from copyright information.
[0246] usage_restriction ( payloadSize ) { Descriptor_cancel_flagu(1)if( !ur_cancel_flag ) { ur_persistence_flagu(1)allowed_for_training_flagu(1)allowed_for_inferencing_flagu(1)additional_restriction_present_flagu(1)if(additional_restriction_present_flag)usage_restrictionst(v)}}
[0247] The usage restriction information according to Table 15 can be configured in the usage restriction information (usage_restriction(payloadSize)). Here, the usage restriction information can include allowed_for_training_flag, allowed_for_inferencing_flag, and usage_restriction. In addition, the usage restriction information can be generated based on the value of ur_cancel_flag being 0 and can be encoded in the bitstream. The usage_restriction can be generated based on the value of additional_restriction_present_flag being 1 and can be encoded in the bitstream. ur_cancel_flag and ur_persistence_flag in Table 15 are as discussed with reference to Table 5.
[0248] Table 16 shows an example of defining usage restrictions information in copyright information.
[0249] copyright_information( payloadSize ) {Descriptorci_cancel_flagu(1)if( !ci_cancel_flag ) { ci_persistence_flagu(1)ci_informationst(v)usage_restriction_present_flagu(1)if(usage_restriction_present_flag){allowed _for_discriminative_ai_flagu(1)allowed _for_generative_ai_flagu(1)allowed _for_commercial_use_flagu(1)allowed _for_non_commercial_use_flagu(1)allowed_for_redistribution_flagu(1)allowed_for_modification_flagu(1)allowed_to_use_pii_flagu(1)additional_restriction_present_flagu(1)if(additional_restriction_present_flag)usage_restrictionst(v)}}}
[0250] The usage restriction information according to Table 16 may be configured in copyright information (copyright_information(payloadSize)). Here, the usage restriction information may include allowed_for_discriminative_ai_flag, allowed_for_generative_ai_flag, allowed_for_commercial_use_flag, allowed_for_non_commercial_use_flag, allowed_for_redistribution_flag, allowed_for_modification_flag, allowed_to_use_pii_flag, and usage_restriction. In addition, the usage restriction information may be generated based on the value of ur_cancel_flag being 0 and may be encoded in the bitstream. Additionally, the usage restriction information may be generated based on the value of usage_restriction_present_flag being 1 and may be encoded in the bitstream. In addition, the usage_restriction may be generated based on the value of additional_restriction_present_flag being 1 and may be encoded in the bitstream. ci_cancel_flag, ci_persistence_flag, and ci_information in Table 16 are as described with reference to Table 4.
[0251] Flags belonging to usage restriction information may also be defined with a meaning opposite to that of the examples described above.
[0252] For example, the usage restriction information may include at least one of a discriminative model not allowed flag (allowed_for_discriminative_ai_flag), a generative model not allowed flag (allowed_for_generative_ai_flag), a commercial use not allowed flag (allowed_for_commercial_use_flag), a non-commercial use not allowed flag (allowed_for_non_commercial_use_flag), a redistribution not allowed flag (allowed_for_redistribution_flag), a modification not allowed flag (allowed_for_modification_flag), a personally identifiable information not allowed flag (allowed_to_use_pii_flag), an AI not allowed flag (allowed_for_ai_flag), a training not allowed flag (allowed_for_training_flag), an inferencing not allowed flag (allowed_for_inferencing_flag), or a usage_restriction.
[0253] The disallowed_for_discriminative_ai_flag can indicate whether or not the AI is disallowed for use in a discriminative model. For example, if the value of disallowed_for_discriminative_ai_flag is 1, this can indicate that the AI is disallowed for use in a discriminative model. If the value of disdisallowed_for_discriminative_ai_flag is 0, this can indicate that the AI is not disallowed for use in a discriminative model.
[0254] The disallowed_for_generative_ai_flag can indicate whether or not the use of generative models is permitted. For example, a value of 1 for disallowed_for_generative_ai_flag indicates that the use of generative models is prohibited. A value of 0 for disallowed_for_generative_ai_flag indicates that the use of generative models is not prohibited.
[0255] The disallowed_for_commercial_use_flag can indicate whether commercial use is prohibited. For example, a value of 1 for disallowed_for_commercial_use_flag indicates that commercial use is prohibited. A value of 0 for disallowed_for_commercial_use_flag indicates that commercial use is not prohibited.
[0256] The disallowed_for_non_commercial_use_flag can indicate whether non-commercial use is prohibited. For example, a value of 1 for disallowed_for_non_commercial_use_flag could indicate that non-commercial use (e.g., research / academic purposes) is prohibited. A value of 0 for disallowed_for_non_commercial_use_flag could indicate that non-commercial use is not prohibited.
[0257] The disallowed_for_modification_flag can indicate whether modification is prohibited. For example, a value of 1 for disallowed_for_modification_flag indicates that modification is prohibited. A value of 0 for disallowed_for_modification_flag indicates that modification is not prohibited.
[0258] The disallowed_for_redistribution_flag can indicate whether redistribution is disallowed. For example, a value of 1 for disallowed_for_redistribution_flag indicates that redistribution is disallowed. A value of 0 for disallowed_for_redistribution_flag indicates that redistribution is not disallowed.
[0259] The disallowed_to_use_pii_flag flag can indicate whether personally identifiable information is not permitted to be used. For example, a value of 1 for disallowed_to_use_pii_flag indicates that personally identifiable information cannot be used. A value of 0 for disallowed_to_use_pii_flag indicates that personally identifiable information can be used.
[0260] The disallowed_for_ai_flag flag can indicate whether AI use of the data / picture is prohibited. For example, if the value of disallowed_for_ai_flag is 1, this may indicate that AI use of the data / picture is prohibited. If the value of disallowed_for_ai_flag is 0, this may indicate that AI use of the data / picture is permitted.
[0261] The disallowed_for_training_flag flag can indicate whether data / pictures are not allowed to be used for AI training. For example, if the value of disallowed_for_training_flag is 1, this indicates that data / pictures are not allowed to be used for AI training. If the value of disallowed_for_training_flag is 0, this indicates that data / pictures are allowed to be used for AI training.
[0262] The disallowed_for_inferencing_flag can indicate whether data / pictures are not allowed to be used for AI inference. For example, if the value of disallowed_for_inferencing_flag is 1, this can indicate that data / pictures are not allowed to be used for AI inference. If the value of disallowed_for_inferencing_flag is 0, this can indicate that data / pictures are allowed to be used for AI inference.
[0263] disallowed_for_training_flag and disallowed_for_inferencing_flag may be examples of more granular definitions of AI usage permissions, unlike disallowed_for_ai_flag.
[0264] At least one of disallowed_for_training_flag or disallowed_for_inferencing_flag may be adaptively generated based on disallowed_for_ai_flag and encoded in the bitstream. For example, at least one of disallowed_for_training_flag or disallowed_for_inferencing_flag may be generated based on the value of disallowed_for_ai_flag being 1 and encoded in the bitstream. On the other hand, at least one of disallowed_for_training_flag or disallowed_for_inferencing_flag may not be generated and may not be encoded in the bitstream based on the value of disallowed_for_ai_flag being 0.
[0265] usage_restriction is the same as that discussed in Example 1 or 2, and duplicate explanations will be omitted here. That is, usage_restriction is usage restriction information for a picture, and can be defined as a free-form string or a bit mask in the form of u(x).
[0266] usage_restriction can be adaptively generated based on additional usage restriction flags (additional_restriction_present_flag), as discussed above.
[0267] Usage restriction information can be adaptively generated based on the usage restriction flag (usage_restriction_present_flag), as discussed above.
[0268] The aforementioned usage restriction information may be configured within the copyright information. Alternatively, the usage restriction information may be configured within information regarding usage restrictions defined independently of the copyright information.
[0269] Table 17 shows examples of defining constraints as flags in Examples 1 and 2, which are defined as free-form strings and bit masks in the form of u(x).
[0270] usage_restriction( payloadSize ) {Descriptorur_cancel_flagu(1)if( !ur_cancel_flag ) { ur_persistence_flagu(1)disallowed _for_discriminative_ai_flagu(1)disallowed _for_generative_ai_flagu(1)disallowed _for_commercial_use_flagu(1)disallowed _for_non_commercial_use_flagu(1)disallowed_for_redistribution_flagu(1)disallowed_for_modification_flagu(1)disallowed_to_use_pii_flagu(1)additional_restriction_present_flagu(1)if(additional_restriction_present_flag)usage_restrictionst(v)}}
[0271] The usage restriction information according to Table 17 may be configured in usage restriction information (usage_restriction(payloadSize)). Here, the usage restriction information may include disallowed_for_discriminative_ai_flag, disallowed_for_generative_ai_flag, disallowed_for_commercial_use_flag, disallowed_for_non_commercial_use_flag, disallowed_for_redistribution_flag, disallowed_for_modification_flag, disallowed_to_use_pii_flag, and usage_restriction. In addition, the usage restriction information may be generated based on the value of ur_cancel_flag being 0 and may be encoded in the bitstream. The usage_restriction may be generated based on the value of additional_restriction_present_flag being 1 and may be encoded in the bitstream. ur_cancel_flag and ur_persistence_flag in Table 17 are as described with reference to Table 5.
[0272] Table 18 shows an example defining a flag indicating whether the use of AI is permitted.
[0273] copyright_information( payloadSize ) { Descriptorci_cancel_flagu(1)if( !ci_cancel_flag ) { ci_persistence_flagu(1)ci_informationst(v)disallowed_for_ai_flagu(1)}}
[0274] The usage restriction information according to Table 18 can be configured in copyright information (copyright_information(payloadSize)). Here, the usage restriction information can include disallowed_for_ai_flag. The disallowed_for_ai_flag can be generated based on the value of ci_cancel_flag being 0 and can be encoded in the bitstream. ci_cancel_flag, ci_persistence_flag, and ci_information in Table 18 are as discussed with reference to Table 4.
[0275] Table 19 provides an example that further refines the definition of whether AI use is permitted.
[0276] copyright_information( payloadSize ) { Descriptorci_cancel_flagu(1)if( !ci_cancel_flag ) { ci_persistence_flagu(1)ci_informationst(v)disallowed_for_training_flagu(1)disallowed_for_inferencing_flagu(1)}}
[0277] The usage restriction information according to Table 19 may be configured in copyright information (copyright_information(payloadSize)). Here, the usage restriction information may include disallowed_for_training_flag and disallowed_for_inferencing_flag. The usage restriction information may be generated based on the value of ci_cancel_flag being 0 and may be encoded in the bitstream. ci_cancel_flag, ci_persistence_flag, and ci_information in Table 14 are as discussed with reference to Table 4.
[0278] Table 20 shows an example where usage restriction information is defined independently from copyright information.
[0279] usage_restriction ( payloadSize ) { Descriptor_cancel_flagu(1)if( !ur_cancel_flag ) { ur_persistence_flagu(1)disallowed_for_training_flagu(1)disallowed_for_inferencing_flagu(1)additional_restriction_present_flagu(1)if(additional_restriction_present_flag)usage_restrictionst(v)}}
[0280] The usage restriction information according to Table 20 can be configured in the usage restriction information (usage_restriction(payloadSize)). Here, the usage restriction information can include disallowed_for_training_flag, disallowed_for_inferencing_flag, and usage_restriction. In addition, the usage restriction information can be generated based on the value of ur_cancel_flag being 0 and can be encoded in the bitstream. The usage_restriction can be generated based on the value of additional_restriction_present_flag being 1 and can be encoded in the bitstream. ur_cancel_flag and ur_persistence_flag in Table 20 are as discussed with reference to Table 5.
[0281] Table 21 shows an example of defining usage restrictions information in copyright information.
[0282] copyright_information( payloadSize ) {Descriptorci_cancel_flagu(1)if( !ci_cancel_flag ) { ci_persistence_flagu(1)ci_informationst(v)usage_restriction_present_flagu(1)if(usage_restriction_present_flag){disallowed _for_discriminative_ai_flagu(1)disallowed _for_generative_ai_flagu(1)disallowed _for_commercial_use_flagu(1)disallowed _for_non_commercial_use_flagu(1)disallowed_for_redistribution_flagu(1)disallowed_for_modification_flagu(1)disallowed_to_use_pii_flagu(1)additional_restriction_present_flagu(1)if(additional_restriction_present_flag)usage_restrictionst(v)}}}
[0283] The usage restriction information according to Table 21 may be configured in copyright information (copyright_information(payloadSize)). Here, the usage restriction information may include disallowed_for_discriminative_ai_flag, disallowed_for_generative_ai_flag, disallowed_for_commercial_use_flag, disallowed_for_non_commercial_use_flag, disallowed_for_redistribution_flag, disallowed_for_modification_flag, disallowed_to_use_pii_flag, and usage_restriction. In addition, the usage restriction information may be generated based on the value of ur_cancel_flag being 0 and encoded in the bitstream. Additionally, the usage restriction information may be generated based on the value of usage_restriction_present_flag being 1 and encoded in the bitstream. Additionally, usage_restriction can be generated and encoded in the bitstream based on the value of additional_restriction_present_flag being 1. ci_cancel_flag, ci_persistence_flag, and ci_information in Table 21 are as discussed with reference to Table 4.
[0284] A bitstream including the compressed video picture and information regarding the usage restrictions can be generated (S430).
[0285] Information regarding usage restrictions may be configured in an SEI message of the bitstream. The SEI message may be included in a network abstraction layer (NAL) unit of the bitstream. Alternatively, information regarding usage restrictions may be configured in the copyright information of the SEI message, or in an SEI message independent of the copyright information.
[0286] Alternatively, information regarding copyright information and / or usage restrictions according to the present disclosure may be configured in a high-level syntax of the bitstream. Here, the high-level syntax may be at least one of a sequence parameter set (SPS), a picture parameter set (PPS), a picture header (PH), or a slice header (SH).
[0287] Alternatively, information regarding copyright information and / or usage restrictions according to the present disclosure may be defined as an independent NAL unit type within the bitstream.
[0288] FIG. 5 illustrates a schematic configuration of an encoding device (200) that performs a method for generating a bitstream according to the present disclosure.
[0289] Referring to FIG. 5, the encoding device (200) may include a receiving unit (500), a video compression unit (510), a UR generation unit (520), and a bitstream generation unit (530).
[0290] The receiving unit (500) can receive one or more video pictures to be encoded.
[0291] The video compression unit (510) can encode one or more received video pictures to generate compressed video pictures.
[0292] The UR generation unit (520) can generate information regarding usage restrictions that define restrictions applied to a bitstream.
[0293] The bitstream generation unit (530) can generate a bitstream including a compressed video picture and information regarding the usage restrictions.
[0294] FIG. 6 illustrates a method for restoring a video picture performed in a decoding device (300) according to the present disclosure.
[0295] A bitstream including an encoded video picture can be received (S600).
[0296] The encoded video picture of the bitstream can be restored (S610).
[0297] Video information about an encoded video picture can be extracted from a bitstream. The encoded video picture can be restored based on the extracted video information.
[0298] Additionally, information about usage restrictions can be extracted from the bitstream.
[0299] Information about usage restrictions may be included in the copyright information. The information about usage restrictions may include usage restriction information such as the usage_restriction described above. Here, usage_restriction may be defined as a free-form string, or may be defined as a Descriptor of u(x). The usage restriction information may be extracted from the bitstream based on the value of ci_cancel_flag being 0. The usage restriction information may not be extracted from the bitstream based on the value of ci_cancel_flag being 1. The usage restriction information may also be extracted from the bitstream based on the value of usage_restriction_present_flag being 1. The usage restriction information may not be extracted from the bitstream based on the value of usage_restriction_present_flag being 0.
[0300] Alternatively, information regarding usage restrictions may not be included in the copyright information and may be defined independently of the copyright information. In this case, the information regarding usage restrictions may include at least one of ur_persistence_flag and usage_restriction. ur_persistence_flag and / or usage_restriction may be extracted from the bitstream based on the value of ur_cancel_flag being 0. ur_persistence_flag and / or usage_restriction may not be extracted from the bitstream based on the value of ur_cancel_flag being 1.
[0301] A usage_restriction extracted from a bitstream may specify at least one usage permission that applies to the bitstream among a plurality of predefined usage permissions. Alternatively, a usage_restriction extracted from a bitstream may specify at least one usage prohibition that applies to the bitstream among a plurality of predefined usage prohibitions.
[0302] Alternatively, as discussed in Example 3, usage restriction information may be defined in the form of a flag to specify at least one usage permission (or usage prohibition) to be applied to the bitstream. In this case, usage_restriction included in the usage restriction information may be adaptively extracted from the bitstream based on additional_restriction_present_flag.
[0303] Information regarding usage restrictions may be included in the SEI message of the bitstream. The SEI message may be included in the NAL (network abstraction layer) unit of the bitstream. Alternatively, information regarding usage restrictions may be included in the copyright information of the SEI message, or may be composed of an SEI message independent of the copyright information.
[0304] Alternatively, information regarding copyright information and / or usage restrictions according to the present disclosure may be included in a high-level syntax of the bitstream. Here, the high-level syntax may be at least one of a sequence parameter set (SPS), a picture parameter set (PPS), a picture header (PH), or a slice header (SH).
[0305] Alternatively, information regarding copyright information and / or usage restrictions according to the present disclosure may be defined as an independent NAL unit type within the bitstream.
[0306] FIG. 7 illustrates a schematic configuration of a decoding device (300) that performs a method for restoring a video picture according to the present disclosure.
[0307] Referring to FIG. 7, the decoding device (300) may include a receiving unit (700), a video information extraction unit (710), and a video restoration unit (720).
[0308] The receiving unit (700) can receive a bitstream including an encoded video picture.
[0309] The video information extraction unit (710) can extract video information about an encoded video picture from a bitstream. In addition, the video information extraction unit (710) can extract information about usage restrictions from the bitstream.
[0310] The video restoration unit (720) can restore an encoded video picture based on the extracted video information.
[0311] Hereinafter, with reference to FIGS. 8 through 11, examples of application of constraints defined by usage restriction information according to the present disclosure will be examined. The constraints and their expression methods according to the present disclosure can be applied to all data, including text as well as video and audio.
[0312] Figure 8 illustrates an example of a process for generating and distributing data to which constraints according to the present disclosure are applied.
[0313] Encoders can input encoded data and constraints on that data. These constraints can be defined in the bitstream in the form of the aforementioned copyright information or usage restrictions. This information can conserve storage and network resources by restricting requests for, or transmission / reception of, unusable data during bitstream transmission. Furthermore, users (e.g., AI) can determine whether to utilize the data based on usage conditions. After data utilization, the format for generating and distributing AI output can also be defined based on permissions for redistribution and modification.
[0314] Figure 9 shows an example of utilizing usage restriction information in the learning process.
[0315] By decoding the usage restriction information for individual data within a dataset, it is possible to determine whether AI can be utilized. This determination may require a comparative analysis of the restrictions defined in the usage restriction information and the user's intended use (e.g., generative AI learning, inference). Depending on regulations and copyright holder requests, usage may be permitted only when permitted, or it may be recommended only when permitted. Figure 9 illustrates an example of usage during a learning process, but usage restriction information may also be applied to purposes other than learning, such as inference.
[0316] Figure 10 shows an example of utilizing usage restriction information in data set management.
[0317] You can configure a data set that can be utilized for each purpose by checking the usage restriction information for each individual data that makes up the data set.
[0318] Figure 11 shows an example of improving the usability of data by linking usage restriction information with data preprocessing and optimization.
[0319] Data that is otherwise unusable due to restrictions on usage can be made usable through optimization. For example, if modification and redistribution are permitted but certain information (e.g., people, signs, etc.) is unusable, the specific information can be optimized to make it unidentifiable. Information related to this optimization can then be stored within the bitstream.
[0320] Users can determine whether AI applications can utilize the encoder optimization information by checking usage restrictions and encoder optimization information. The encoder optimization information can be unstructured or structured (e.g., EOI_SEI in VSEI).
[0321] In the embodiments described above, the methods are described based on a flowchart as a series of steps or blocks. However, the embodiments are not limited to the order of the steps, and some steps may occur in a different order or simultaneously with other steps described above. Furthermore, those skilled in the art will understand that the steps depicted in the flowchart are not exclusive, and other steps may be included, or one or more steps in the flowchart may be deleted without affecting the scope of the embodiments of this document.
[0322] The method according to the embodiments of the present document described above can be implemented in the form of software, and the encoding device and / or decoding device according to the present document can be included in a device that performs image processing, such as a TV, a computer, a smartphone, a set-top box, a display device, etc.
[0323] When the embodiments in this document are implemented as software, the above-described method can be implemented as a module (process, function, etc.) that performs the above-described function. The module can be stored in memory and executed by a processor. The memory can be internal or external to the processor and can be connected to the processor by various well-known means. The processor can include an application-specific integrated circuit (ASIC), another chipset, logic circuit, and / or data processing device. The memory can include a read-only memory (ROM), a random access memory (RAM), flash memory, a memory card, a storage medium, and / or other storage devices. That is, the embodiments described in this document can be implemented and performed on a processor, a microprocessor, a controller, or a chip. For example, the functional units illustrated in each drawing can be implemented and performed on a computer, a processor, a microprocessor, a controller, or a chip. In this case, information for implementation (e.g., information on instructions) or an algorithm can be stored on a digital storage medium.
[0324] In addition, the decoding device and encoding device to which the embodiment(s) of the present specification are applied may be included in a multimedia broadcasting transmitting and receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video conversation device, a real-time communication device such as a video communication, a mobile streaming device, a storage medium, a camcorder, a video-on-demand (VoD) service providing device, an OTT (Over the top video) device, an Internet streaming service providing device, a three-dimensional (3D) video device, a VR (virtual reality) device, an AR (argumente reality) device, a video phone video device, a transportation terminal (ex. a vehicle (including an autonomous vehicle) terminal, an airplane terminal, a ship terminal, etc.), and a medical video device, and may be used to process a video signal or a data signal. For example, the OTT (Over the top video) device may include a game console, a Blu-ray player, an Internet-connected TV, a home theater system, a smartphone, a tablet PC, a DVR (Digital Video Recorder), etc.
[0325] In addition, the processing method to which the embodiment(s) of the present specification are applied can be produced in the form of a computer-executable program and can be stored in a computer-readable recording medium. Multimedia data having a data structure according to the embodiment(s) of the present specification can also be stored in a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored. The computer-readable recording medium can include, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. In addition, the computer-readable recording medium includes a medium implemented in the form of a carrier wave (e.g., transmission via the Internet). In addition, a bitstream generated by an encoding method can be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.
[0326] Additionally, the embodiments of the present disclosure may be implemented as a computer program product by program code, and the program code may be executed on a computer by the embodiments of the present disclosure. The program code may be stored on a computer-readable carrier.
[0327] FIG. 12 illustrates an example of a content streaming system to which embodiments of the present disclosure can be applied.
[0328] Referring to FIG. 12, a content streaming system to which the embodiment(s) of the present specification are applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
[0329] The encoding server compresses content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data, generates a bitstream, and transmits it to the streaming server. Alternatively, if multimedia input devices such as smartphones, cameras, and camcorders directly generate bitstreams, the encoding server may be omitted.
[0330] The above bitstream can be generated by an encoding method or a bitstream generation method to which the embodiment(s) of the present specification are applied, and the streaming server can temporarily store the bitstream during the process of transmitting or receiving the bitstream.
[0331] The streaming server transmits multimedia data to a user device based on a user request via a web server, and the web server acts as an intermediary to inform the user of available services. When a user requests a desired service from the web server, the web server transmits the request to the streaming server, and the streaming server transmits the multimedia data to the user. At this time, the content streaming system may include a separate control server, in which case the control server controls commands / responses between each device within the content streaming system.
[0332] The streaming server can receive content from a media repository 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 smooth streaming service, the streaming server can store the bitstream for a certain period of time.
[0333] Examples of the user devices may include mobile phones, smart phones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, HMDs), digital TVs, desktop computers, digital signage, etc.
[0334] Each server within the above content streaming system can be operated as a distributed server, in which case data received from each server can be processed in a distributed manner.
[0335] The claims set forth in this specification may be combined in various ways. For example, the technical features of the method claims of this specification may be combined and implemented as a device, and the technical features of the device claims of this specification may be combined and implemented as a method. Furthermore, the technical features of the method claims and the technical features of the device claims of this specification may be combined and implemented as a device, and the technical features of the method claims and the technical features of the device claims of this specification may be combined and implemented as a method.
Claims
1. A step of receiving a video picture to be encoded; A step of encoding the received video picture to generate a compressed video picture; A step of generating information about usage restrictions (UR); and A step of generating a bitstream including the compressed video picture and information regarding the usage restrictions, Information regarding the above usage restrictions is encoded in the NAL (network abstraction layer) unit of the bitstream, A method in which the information regarding the above usage restrictions includes usage restriction information regarding usage restrictions on the picture.
2. In paragraph 1, The above usage restriction information is configured in the copyright information of the bitstream.
3. In paragraph 2, The above usage restriction information is generated based on the CI cancellation flag regarding the persistence of previous copyright information.
4. In paragraph 1, The information regarding the above usage restrictions further includes a usage restriction flag regarding the existence of the above usage restriction information, A method in which the above usage restriction information is generated based on the above usage restriction flag.
5. In paragraph 1, The above usage restriction information is generated based on a UR cancellation flag regarding the persistence of information regarding previous usage restrictions.
6. In paragraph 1, The above usage restriction information is defined as a free-form string.
7. In paragraph 1, The above usage restriction information is defined as a bit mask of u(x).
8. In paragraph 7, A method wherein the above usage restriction information specifies at least one usage permission that applies to the bitstream among a plurality of pre-defined usage permissions.
9. In paragraph 8, A method wherein the multiple use licenses include at least one of a license for use in a discriminative model, a license for use in a generative model, a license for use in commercial use, a license for use in non-commercial use, a license for use in academic use, a license for use in modification, a license for use in redistribution, a license for use in personally identifiable information, a license for use in artificial intelligence (AI), a license for use in AI learning, or a license for use in AI inference.
10. In paragraph 9, A method wherein the above usage restriction information includes at least one of a discrimination model permission flag, a generation model permission flag, a commercial use permission flag, a non-commercial use permission flag, a redistribution permission flag, a modification permission flag, a personally identifiable information permission flag, an AI permission flag, a learning permission flag, or an inference permission flag.
11. A step of receiving a bitstream including an encoded video picture; and A step of restoring an encoded video picture included in the above bitstream, The above bitstream contains information about usage restrictions (UR), Information about the above usage restrictions is obtained from the NAL (network abstraction layer) unit of the bitstream, A method in which the information regarding the above usage restrictions includes usage restriction information regarding usage restrictions on the picture.
12. A computer-readable storage medium storing a bitstream generated by the method according to paragraph 1.
13. A step of generating a bitstream; wherein the bitstream is generated based on the steps of: receiving a video picture to be encoded; encoding the received video picture to generate a compressed video picture; generating information about a usage restriction (UR); and generating a bitstream including the compressed video picture and the information about the usage restriction. Including a step of transmitting data including the above bitstream, Information regarding the above usage restrictions is encoded in the NAL (network abstraction layer) unit of the bitstream, A method in which the information regarding the above usage restrictions includes usage restriction information regarding usage restrictions on the picture.
Citation Information
Patent Citations
Operating method for electronic apparatus for providing item information and electronic apparatus supporting thereof
KR102750911B1
Video Resolution Enforcement and Optimization in an Adaptive Bitrate Environment
US20240080445A1