Encoding method, decoding method, computing device and medium for video data

JP2024524397A5Pending Publication Date: 2025-07-01BOE TECHNOLOGY GROUP CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023580579
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-06-29
Filing Date
2022-06-24
Publication Date
2025-07-01

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies struggle to flexibly handle the bit depth of pictures, which affects color transition effects and storage requirements, especially with high bit depth images.

Method used

Incorporating a bit depth conversion module in video encoders and decoders to perform operations such as compression and expansion, generating bit depth conversion information that is transmitted in the bitstream to allow flexible handling of bit depth during encoding and decoding processes.

Benefits of technology

Enables flexible bit depth management, reducing storage and transmission requirements while maintaining high color quality, allowing encoders and decoders to adapt to various display devices and consumer needs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The present disclosure provides an encoding method, a decoding method, a computing device, and a medium for video data. The encoding method includes: performing a bit-depth conversion process on a picture to generate a transformed picture and generate bit-depth conversion information, the bit-depth conversion information indicating information related to the bit-depth conversion process on the picture, the picture being a picture of one frame in the video data; performing an encoding process on the transformed picture to generate encoding information corresponding to the transformed picture, the bit-depth conversion information and the encoding information are for forming a bitstream. The decoding method includes: analyzing the bit-depth conversion information and encoding information corresponding to the picture from the received bitstream, the bit-depth conversion information indicating information related to the bit-depth conversion process performed in the encoding process of the picture; and performing a decoding conversion process based on the bit-depth conversion information and the encoding information to generate a display picture.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] SUMMARY OF THE DISCLOSURE Embodiments of the present disclosure relate to encoding methods, decoding methods, computing devices, and media for video data. [Background technology]

[0002] Digital video capabilities may be incorporated into a variety of devices, such as digital televisions, digital direct broadcast systems, wireless broadcast systems, portable or desktop computers, tablet computers, e-readers, digital cameras, digital recording devices, digital media players, video game devices, video game consoles, smartphones, video teleconferencing devices, and video streaming devices. Digital video devices may implement video encoding / decoding techniques, such as those described in standards defined by MPEG-2, MPEG-4, ITU-TH.263, ITU-TH.264 / MPEG-4, Part 10, Advanced Video Encoding / Decoding (AVC), High Efficiency Video Encoding / Decoding (HEVC), ITU-TH.265 / High Efficiency Video Encoding / Decoding, and extensions to such standards. By implementing such video encoding / decoding techniques, video devices may more efficiently transmit, receive, encode, decode, and / or store digital video information. Summary of the Invention [Problem to be solved by the invention]

[0003] Some embodiments of the present disclosure provide an encoding method, a decoding method, a computing device, and a medium for video data for flexibly handling the bit depth of a picture in a video encoder / video decoder. [Means for solving the problem]

[0004] According to one aspect of the present disclosure, there is provided an encoding method for video data, comprising: generating a transformed picture, performing a bit-depth conversion process on the picture to generate bit-depth conversion information indicating information related to the bit-depth conversion process on the picture, the picture being a picture of one frame in the video data; encoding the transformed picture to generate encoding information corresponding to the transformed picture, the bit-depth conversion information and the encoding information being for forming a bitstream.

[0005] According to some embodiments of the present disclosure, the bit-depth conversion process is a bit-depth compression process, and performing the bit-depth conversion process on a picture includes performing bit-depth compression on the picture by a bit-depth compression method to reduce the bit-depth of the picture, and the bit-depth conversion information includes bit-depth compression control information, and the bit-depth compression control information indicates information related to the bit-depth compression process.

[0006] According to some embodiments of the present disclosure, the bit depth compression control information includes at least one of information indicating a bit depth compression method, information indicating an initial bit depth before the bit depth compression process, and information indicating a compressed bit depth after the bit depth compression process.

[0007] According to some embodiments of the present disclosure, the encoding method further includes decoding the encoding information to generate a decoded picture, and performing a bit-depth inverse conversion process on the decoded picture to generate an inverse converted picture and generate bit-depth inverse conversion information, where the bit-depth inverse conversion process and the bit-depth conversion process are inverse operations, and the bit-depth inverse conversion information indicates information related to the bit-depth inverse conversion process on the decoded picture.

[0008] According to some embodiments of the present disclosure, the encoding method further includes performing effect verification by comparing the inverse transformed picture and the picture to generate bit depth verification effect information, and the bit depth verification effect information includes at least one of verification control information indicating whether to perform effect verification, information indicating an effect verification method for performing effect verification, and information indicating a verification result of the effect verification method.

[0009] According to some embodiments of the present disclosure, the bit depth inverse conversion information includes bit depth inverse conversion control information indicating information related to a bit depth inverse conversion process.

[0010] According to some embodiments of the present disclosure, the bit depth inverse conversion control information includes bit depth inverse conversion switching information, and indicates whether to perform bit depth inverse conversion processing on the decoded picture.

[0011] According to some embodiments of the present disclosure, performing a bit depth inverse conversion process on a decoded picture includes performing a bit depth inverse conversion on the decoded picture by a bit depth inverse conversion method, by performing the bit depth inverse conversion process in response to an indication of bit depth inverse conversion switching information to change the bit depth of the decoded picture in a direction opposite to the bit depth conversion.

[0012] According to some embodiments of the present disclosure, the bit depth inverse conversion control information further includes at least one of information indicating a bit depth inverse conversion method, information indicating an input bit depth before the bit depth inverse conversion process, and information indicating an output bit depth after the bit depth inverse conversion process.

[0013] According to some embodiments of the present disclosure, the bit-depth conversion process is a bit-depth compression process, and the bit-depth inverse conversion process is a bit-depth expansion process.

[0014] According to some embodiments of the present disclosure, the bitstream includes bit-depth conversion extension bits for carrying bit-depth conversion information in the bitstream.

[0015] According to another aspect of the present disclosure, a decoding method for video data is further provided, comprising: analyzing bit-depth conversion information and encoding information corresponding to a picture from a received bitstream, where the bit-depth conversion information indicates information related to a bit-depth conversion process performed in an encoding process of the picture, which is a picture of one frame in the video data; and performing a decoding conversion process based on the bit-depth conversion information and the encoding information to generate a display picture.

[0016] According to some embodiments of the present disclosure, the bit-depth conversion process is a bit-depth compression process, the bit-depth conversion information includes bit-depth compression control information related to the bit-depth compression process, and performing the decoding conversion process based on the bit-depth conversion information and the encoding information includes performing the decoding conversion process on the encoding information by referring to the bit-depth compression control information.

[0017] According to some embodiments of the present disclosure, the decoding method further includes parsing bit depth inverse conversion information corresponding to the picture from the bitstream, where the bit depth inverse conversion information indicates information related to a bit depth inverse conversion process performed during the encoding process of the picture.

[0018] According to some embodiments of the present disclosure, performing a decoding conversion process based on the bit depth conversion information and the encoding information includes decoding the encoding information to generate a decoded picture corresponding to the picture, and performing a bit depth inverse conversion process on the decoded picture by referring to the bit depth inverse conversion information to generate a display picture.

[0019] According to some embodiments of the present disclosure, the bit depth conversion process is a bit depth compression process, the bit depth inverse conversion process is a bit depth extension process, the bit depth inverse conversion information includes bit depth extension control information, and the bit depth extension control information includes information indicating a bit depth extension method, and the decoding method further includes: determining whether the bit depth extension method is available, and if it is determined that the bit depth extension method is available, extending the bit depth according to the bit depth extension method, and if it is determined that the bit depth extension method is not available, receiving the bit depth extension method to perform bit depth extension on the decoded picture according to the bit depth extension method.

[0020] According to some embodiments of the present disclosure, before performing bit depth inverse conversion processing on the decoded picture, the decoding method further includes receiving control information indicating whether to perform bit depth inverse conversion processing on the decoded picture, and determining whether to perform bit depth inverse conversion processing on the decoded picture by referring to the control information, where the control information is generated based on at least one of the computational capability of the decoder, the remaining capacity information of the decoder, and the bit depth display requirements of the display, or analyzing bit depth verification effect information corresponding to the picture from the bitstream, comparing the decoded picture with the bit depth extension effect information, and determining whether to perform bit depth inverse conversion processing on the decoded picture by referring to the comparison result.

[0021] According to some embodiments of the present disclosure, parsing the bit-depth conversion information from the received bitstream includes parsing the bit-depth conversion information from bit-depth conversion extension bits in the bitstream.

[0022] According to yet another aspect of the present disclosure, there is further provided a computing device comprising a processor and a non-transitory memory having computer readable code which, when executed by the processor, performs the encoding method for video data as described above or performs the decoding method for video data as described above.

[0023] According to yet another aspect of the present disclosure, there is further provided a computer-readable storage medium having stored thereon instructions which, when executed by a processor, cause the processor to perform the encoding method for video data as described above or to perform the decoding method for video data as described above. Effect of the Invention

[0024] By using the encoding method, the decoding method, the computing device, and the medium for video data according to some embodiments of the present disclosure, a bit depth conversion process can be performed on a picture before the encoding process, and then the generated converted picture is encoded to form the coding information of the picture, and the bit depth conversion information can be generated in the bit depth conversion process, and the bit depth conversion information forms a bit stream together with the coding information, so that the decoding side can correspondingly process the bit depth of the decoded picture according to the bit depth conversion information analyzed in the bit stream, thereby meeting the display needs of a display device, etc. The bit depth conversion information transmitted in the bit stream contributes to more flexible realization of the bit depth conversion process, and can realize information communication about the bit depth conversion between the decoding side and the coding side.

[0025] In order to more clearly describe the technical solutions of the embodiments of the present disclosure or the prior art, the drawings necessary for describing the embodiments or the prior art are briefly described below. Obviously, the drawings described below are merely examples of the embodiments of the present disclosure, and those skilled in the art can further obtain other drawings based on these drawings without any creative efforts. [Brief description of the drawings]

[0026] [Figure 1] FIG. 1 is a block diagram illustrating an example video encoding / decoding system capable of implementing encoding / decoding methods according to some embodiments of the present disclosure. [Diagram 2] FIG. 2 is a block diagram illustrating an example video encoder in accordance with some embodiments of this disclosure. [Diagram 3]FIG. 3 is a block diagram illustrating an example video decoder according to some embodiments of this disclosure. [Figure 4A] FIG. 4A is a flow chart illustrating an encoding method according to some embodiments of the present disclosure. [Figure 4B] FIG. 4B is a flowchart illustrating an example method for encoding a current block according to an encoding method according to some embodiments of the present disclosure. [Figure 5A] FIG. 5A is a flow chart illustrating a decoding method according to some embodiments of the present disclosure. [Figure 5B] FIG. 5B is a flow chart illustrating an example method for decoding a current block according to some embodiments of the present disclosure. [Figure 6A] FIG. 6A is a schematic diagram illustrating bit depth conversion according to some embodiments of the present disclosure. [Figure 6B] FIG. 6B is another schematic diagram illustrating bit depth conversion according to some embodiments of the present disclosure. [Figure 7] FIG. 7 is a schematic diagram illustrating an example application according to some embodiments of the present disclosure. [Figure 8] FIG. 8 is a schematic diagram illustrating another example application according to some embodiments of the present disclosure. [Figure 9] FIG. 9 is a schematic block diagram illustrating a computing device according to some embodiments of the present disclosure. [Figure 10] FIG. 10 is an architectural diagram illustrating a computing device according to some embodiments of the present disclosure. [Figure 11] FIG. 11 is a schematic diagram illustrating a non-transitory computer-readable storage medium according to some embodiments of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0027] The technical solutions of the embodiments of the present disclosure will be described below clearly and completely with reference to the drawings of the embodiments of the present disclosure. Obviously, the described embodiments are only a part of the embodiments of the present disclosure, but not all of the embodiments. Based on the embodiments of the present disclosure, any other embodiments that a person skilled in the art can obtain without inventive work fall within the scope of protection of the present disclosure.

[0028] Moreover, as shown in this disclosure and the claims, unless otherwise clearly indicated in the context above and below, words such as "a," "one," "one kind," and / or "the" do not specifically refer to the singular form, but may also include the plural form. The words "first," "second," and similar words used in this disclosure do not indicate any order, number, or importance, but are merely used to distinguish different components. Similarly, similar words such as "comprise" or "include" refer to the elements or components described before the word covering the elements or components listed after the word and their equivalents, and do not exclude other elements or components.

[0029] As the need for high-definition video increases, video encoding / decoding methods and techniques are widely spread in modern technology. Video encoders / decoders generally include electronic circuits or software that compress or decompress digital video, and are continuously improved to provide higher encoding efficiency. Video encoders / decoders convert uncompressed video into compressed formats and vice versa. There is a complex relationship between video quality, the amount of data to represent the video (determined by bit rate), the complexity of the encoding and decoding algorithms, sensitivity to data loss and errors, ease of editing, random access, and end-to-end delay (latency time). Compression formats generally conform to standard video compression specifications, such as the High Efficiency Video Encoding / Decoding (HEVC) standard (also known as H.265), the Versatile Video Encoding / Decoding (VVC) standard (also known as H.266) being finalized, or other current and / or future video encoding / decoding standards.

[0030] It will be appreciated that embodiments of the techniques disclosed herein can be applied to existing video encoding / decoding standards (e.g., HEVC) and future standards, thereby improving compression properties. The descriptions of encoding / decoding operations herein may refer to existing video encoding / decoding standards, and it will be appreciated that the methods according to the present disclosure are not limited to the described video encoding / decoding standards.

[0031] Currently, in terms of video acquisition, a photographing device can generally realize a picture acquisition function with a relatively high bit depth, for example, 12bit / 14bit, or even more. A picture with a relatively high bit depth can provide a better color transition effect, but it will take up more storage space. Correspondingly, in terms of display, there are display devices currently on the market that support various bit depths. In order to meet the display requirements of various display devices and take into account the viewing needs of consumers and the amount of data transmission, etc., it is necessary to add a bit depth processing process to the encoder / decoder, so that the bit depth of the picture can be flexibly processed in the encoder / decoder.

[0032] Based on this, some embodiments of the present disclosure provide an encoding / decoding framework, in which a processing module is added to a general encoder / decoder for converting the bit depth of pictures in a video, thereby enabling the encoding side and the decoding side to perform operations such as bit depth compression and bit depth expansion on the video according to factors such as actual needs, so as to reduce the bit rate under conditions of maximally preserving color diversity, and meeting the requirements of display devices for the bit depth of the video.

[0033] In short, by using the encoder / decoder according to some embodiments of the present disclosure, information about bit depth conversion can be generated in the encoding process, and the generated information can be transmitted to the decoding side in the bit stream. In the decoding process, corresponding processing such as extending the bit depth of the decoded picture can be performed according to the information about bit depth conversion analyzed from the bit stream, thereby providing greater flexibility in terms of encoding / decoding communication. As can be understood, in the present disclosure, the encoding side and the decoding side can be realized by the encoder / decoder of the same structure.

[0034] 1 is a block diagram illustrating an example video encoding / decoding system 1000 capable of performing encoding / decoding methods according to some embodiments of the present disclosure. The techniques of this disclosure generally relate to the encoding / decoding process (encoding and / or decoding) of video data. In general, video data includes any data for processing video, and thus video data may include unencoded original video, encoded video, decoded (e.g., reconstructed) video, and video metadata, such as syntax data. A video may include one or more pictures, also referred to as a picture sequence.

[0035] As shown in FIG. 1, in this example, the system 1000 includes a source device 102 for providing encoded video data to be decoded by a destination device 116 for display, and for forming a bitstream for the encoded video data to be transmitted to the decoding side, where the bitstream may be referred to as a bit stream. Specifically, the source device 102 provides the encoded video data to the destination device 116 via a computer-readable medium 110. The source device 102 and the destination device 116 may be implemented as various devices, such as a desktop computer, a pocket (i.e., portable) computer, a tablet computer, a mobile device, a set-top box, a smartphone, a handset, a television, a camera, a display device, a digital media player, a video game console, a video streaming device, and the like. In some cases, the source device 102 and the destination device 116 may be arranged for wireless communication and thus may be referred to as wireless communication devices.

[0036] In the example of FIG. 1, the source device 102 includes a video source 104, a memory 106, a video encoder 200, and an output interface 108. The destination device 116 includes an input interface 122, a video decoder 300, a memory 120, and a display device 118. According to some embodiments of the present disclosure, the video encoder 200 of the source device 102 and the video decoder 300 of the destination device 116 may be configured to perform encoding and decoding methods according to some embodiments of the present disclosure. Thus, the source device 102 represents an example of a video encoding device, while the destination device 116 represents an example of a video decoding device. In other examples, the source device 102 and the destination device 116 may include other components or configurations. For example, the source device 102 may receive video data from an external video source, such as an external camera. Similarly, the destination device 116 may be connected to an external display device without having to incorporate an integrated display device 118.

[0037] The system 1000 shown in FIG. 1 is merely an example. In general, any digital video encoding and / or decoding device may perform the encoding and decoding methods according to some embodiments of the present disclosure. The source device 102 and the destination device 116 are merely examples of such encoding / decoding devices, with the source device 102 generating and transmitting a bitstream to the destination device 116. This disclosure refers to a "codec" device as a device that performs data encoding / decoding (encoding and / or decoding). Thus, the video encoder 200 and the video decoder 300 are each examples of encoding / decoding devices.

[0038] In some examples, devices 102, 116 operate in a substantially symmetric manner, and thus, both devices 102, 116 include video encoding and decoding components, i.e., both devices 102, 116 are capable of implementing video encoding and decoding processes. Thus, system 1000 can support one-way or two-way video transmission between video devices 102 and 116 and may be used, for example, for video streaming, video playback, video broadcasting, or video telephony.

[0039] In general, the video source 104 represents a video data source (i.e., unencoded original video data) and provides a continuous series of pictures (also called "frames") of video data to the video encoder 200, which encodes the picture data. The video source 104 of the source device 102 may include a video capture device, such as a video camera, a video archive containing previously captured original video, and / or a video feed interface for receiving video from a video content provider. As another alternative solution, the video source 104 may generate computer graphics-based data as a source video or a combination of live video, archive video, and computer-generated video. In various cases, the video encoder 200 processes the captured, pre-captured, or computer-generated video data for encoding. The video encoder 200 may reorder the pictures from the order in which they are received (sometimes called the "display order") into a coding order for encoding. The video encoder 200 may generate a bitstream including the encoded video data. The source device 102 may then output the generated bitstream via output interface 108 to a computer-readable medium 110 for receipt and / or retrieval, such as by an input interface 122 of a destination device 116 .

[0040] The memory 106 of the source device 102 and the memory 120 of the destination device 116 represent general-purpose memories. In some examples, the memory 106 and the memory 120 can store original video data, such as original video data from the video source 104 and decoded video data from the video decoder 300. Additionally or alternatively, the memory 106 and the memory 120 can store software instructions that can be executed by the video encoder 200 and the video decoder 300, respectively. Although shown separately from the video encoder 200 and the video decoder 300 in this example, it will be understood that the video encoder 200 and the video decoder 300 may further comprise internal memory to achieve functionally similar or equivalent purposes. The memory 106 and the memory 120 can also store encoded video data output from the video encoder 200 and input to the video decoder 300, etc. In some examples, a portion of the memory 106 and the memory 120 can be allocated as one or more video buffers to store the decoded original video data and / or the encoded original video data.

[0041] The computer-readable medium 110 may represent any type of medium or device capable of transmitting encoded video data from the source device 102 to the destination device 116. In some examples, the computer-readable medium 110 represents a communication medium that allows the source device 102 to transmit a bitstream directly to the destination device 116 in real time, such as via a radio frequency network or a computer network. The output interface 108 may modulate a transmission signal including the encoded video data, and the input interface 122 may modulate a received transmission signal, according to a communication standard, such as a wireless communication protocol. The communication medium may include one or both of a wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines. The communication medium may form part of a packet-based network, such as a local area network, a wide area network, or a global network, such as the Internet. The communication medium may include a router, a switch, a base station, or any other device that may be used to facilitate communication from the source device 102 to the destination device 116.

[0042] In some examples, source device 102 may output the encoded data from output interface 108 to storage device 112. Similarly, destination device 116 may access the encoded data from storage device 112 via input interface 122. Storage device 112 may include a variety of distributed or locally accessed data storage media, such as hard disk drives, Blu-ray discs, digital video discs (DVDs), read-only optical disc drives (CD-ROMs), flash memory, volatile or non-volatile memory, or any other suitable digital storage media for storing encoded video data.

[0043] In some examples, the source device 102 can output the encoded data to a file server 114, or another intermediate storage device capable of storing the encoded video generated by the source device 102. The destination device 116 can access the stored video data from the file server 114 in an online or download manner. The file server 114 can be any type of server device capable of storing the encoded data and transmitting the encoded data to the destination device 116. The file server 114 can represent a network server (e.g., for a website), a file transfer protocol (FTP) server, a content delivery network device, or a network attached storage (NAS) device. The destination device 116 can access the encoded data from the file server 114 via any standard data connection, including an Internet connection. This can include wireless channels, such as a Wi-Fi connection, wired connections, such as digital subscriber line (DSL) and cable modem, or a combination of wireless channels and wired connections, suitable for accessing the encoded video data stored on the file server 114. The file server 114 and the input interface 122 can be configured to operate according to a streaming transmission protocol, a download transmission protocol, or a combination thereof.

[0044] Output interface 108 and input interface 122 may represent wired network connection components such as wireless transmitters / receivers, modems, Ethernet cards, wireless communication components operating according to any of the various IEEE 802.11 standards, or other physical components. In examples where output interface 108 and input interface 122 comprise wireless components, output interface 108 and input interface 122 may be configured to transmit data, such as data encoded according to a fourth generation mobile communications system (4G), 4G Long Term Evolution (4G-LTE), LTE Advanced, fifth generation mobile communications system (5G), or other cellular communications standard. In some examples where output interface 108 comprises a wireless transmitter, output interface 108 and input interface 122 may represent data encoded according to an IEEE 802.11 specification, an IEEE 802.15 specification (e.g., ZigBee TM ), data encoded according to other wireless standards, such as the Bluetooth standard. In some examples, source device 102 and / or destination device 116 may comprise corresponding system-on-chip (SoC) devices. For example, source device 102 may comprise a SoC device to perform the functions of video encoder 200 and / or output interface 108, destination device 116 may comprise a SoC device to perform the functions of video decoder 300 and / or input interface 122, etc.

[0045] The techniques of this disclosure may be applied to video encoding to support a variety of multimedia applications, such as wireless television broadcasting, cable television transmission, satellite television transmission, Internet streaming video transmission such as HTTP-based dynamically adaptive streaming, digital video encoded on a data storage medium, decoding of digital video stored on a data storage medium, or other applications.

[0046] The input interface 122 of the destination device 116 receives the bitstream from the computer-readable medium 110 (e.g., the storage device 112 and the file server 114, etc.). The bitstream may include signaling information defined by the video encoder 200 that is also used by the video decoder 300, such as syntax elements having values ​​that describe the nature and / or processing of video blocks or other coding units (e.g., slices, pictures, groups of pictures, sequences, etc.).

[0047] Display device 118 displays decoded pictures of the decoded video data to a user. Display device 118 may be various types of display devices, such as a cathode ray tube (CRT) based device, a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or other types of display devices.

[0048] 1, in some examples, the video encoder 200 and the video decoder 300 may be integrated with an audio encoder and / or an audio decoder, respectively, and may include an appropriate multiplex-demultiplex (MUX-DEMUX) unit or other hardware and / or software to process multiplexed streams that include both audio and video in a common data stream. If applicable, the MUX-DEMUX unit may conform to the ITU H.223 multiplexer protocol or other protocols, such as the User Datagram Protocol (UDP).

[0049] Both the video encoder 200 and the video decoder 300 may be implemented as any suitable codec circuit, such as a microprocessor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), discrete logic elements, software, hardware, firmware, or any combination thereof. When the techniques are implemented partially in software, a device may store instructions for the software on a suitable non-transitory computer-readable medium and execute the instructions in hardware using one or more of the above processors to perform the techniques of this disclosure. Both the video encoder 200 and the video decoder 300 may be included in one or more encoders or decoders, and any one of the encoders or decoders may be integrated as part of a combined encoder / decoder (CODEC) in a corresponding device. A device including the video encoder 200 and / or the video decoder 300 may be an integrated circuit, a microprocessor, and / or a wireless communication device, such as a cellular phone.

[0050] The video encoder 200 and the video decoder 300 may operate according to a video encoding / decoding standard, such as ITU-TH.265 (also referred to as High Efficiency Video Encoding / Decoding (HEVC)), or an extension of HEVC, such as multiview and / or scalable video encoding / decoding extensions. Alternatively, the video encoder 200 and the video decoder 300 may operate according to other proprietary or industry standards, such as the currently developed Joint Exploration Model (JEM) or Versatile Video Coding (VVC) standards. The technology disclosed herein is not limited to any particular encoding / decoding standard.

[0051] In general, the video encoder 200 and the video decoder 300 can encode / decode video data represented in YUV (e.g., Y, Cb, Cr) format. That is, the video encoder 200 and the video decoder 300 can codec luma and chroma components without encoding / decoding red-green-blue (RGB) data of a sampling point of a picture, and the chroma components may include red and blue hues. In some examples, the video encoder 200 converts the received RGB format data to YUV format before encoding, and the video decoder 300 converts the YUV format to RGB format. Optionally, a pre-processing unit and a post-processing unit (not shown) can perform these conversions.

[0052] In general, the video encoder 200 and the video decoder 300 may perform encoding / decoding processes by blocks of a picture. The term "block" generally refers to a structure that contains data to be processed (e.g., to be encoded, to be decoded, or used in other encoding and / or decoding processes). For example, a block may contain a two-dimensional matrix of luma and / or chroma data sampling points. In general, a picture may be first divided into multiple blocks for encoding, and a block in a picture that is currently being encoded / decoded may be referred to as a "current block."

[0053] Also, embodiments of the present disclosure may further relate to encoding / decoding of pictures, to include encoding or decoding processes of picture data. Similarly, the present disclosure may relate to encoding of picture blocks, e.g., predictive and / or residual encoding, to include encoding or decoding processes of block data. A bitstream resulting from an encoding process typically includes values ​​for a series of syntax elements, which indicate coding decisions (e.g., coding modes) and information that divides a picture into blocks. Thus, encoding of a picture or block may generally be understood to be encoding values ​​of syntax elements that form the picture or block.

[0054] HEVC defines various blocks including coding units (CUs), prediction units (PUs) and transform units (TUs). According to HEVC, a video encoder (e.g., video encoder 200) divides coding tree units (CTUs) into CUs based on a quadtree structure. That is, the video encoder divides CTUs and CUs into four equal non-overlapping blocks, and each node of the quadtree has no subnodes or four subnodes. A node without subnodes may be referred to as a "leaf node", and a CU of such a leaf node may include one or more PUs and / or one or more TUs. A video encoder may further divide PUs and TUs. For example, in HEVC, a residual quadtree (RQT) indicates the division of TUs. In HEVC, a PU indicates inter-predicted data, but a TU indicates residual data. An intra-predicted CU includes intra-prediction information such as an intra-mode indication.

[0055] The video encoder 200 and the video decoder 300 may be configured to use quadtree partitioning according to HEVC, quadtree binary tree (QTBT) partitioning according to JEM, or other partitioning structures. It should be understood that the techniques of this disclosure may also be applied to video encoders configured to use quadtree partitioning or other partitioning types. The video encoder 200 encodes the video data of the CU to indicate prediction information and / or residual information and other information. The prediction information indicates how to predict the CU to form a prediction block of the CU. The residual information generally indicates a sampling point-by-sampling point difference between the sampling points of the CU before encoding and the sampling points of the prediction block.

[0056] Video encoder 200 may generate syntax data for video decoder 300 in picture headers, block headers, slice headers, etc., such as syntax data by block, by picture, and by sequence, or may generate other syntax data, such as a sequence parameter set (SPS), a picture parameter set (PPS), or a video parameter set (VPS). Video decoder 300 may similarly decode such syntax data to determine how to decode the corresponding video data.

[0057] In this manner, the video encoder 200 can generate a bitstream that includes syntax elements that describe the division of the encoded video data, e.g., a picture, into blocks (e.g., CUs) and prediction and / or residual information for the blocks. Finally, the video decoder 300 can receive the bitstream and decode the encoded video data.

[0058] In general, the video decoder 300 performs the reverse process of the process performed by the video encoder 200 to decode the encoded video data in the bitstream. For example, the video decoder 300 may decode values ​​of syntax elements of the bitstream in a manner substantially similar to that of the video encoder 200. The syntax elements may define partition information of a picture as CTUs, and partition each CTU based on a corresponding partition structure, such as a QTBT structure, to define CUs of the CTUs. The syntax elements may further define prediction information and residual information of a block (e.g., CU) of video data. The residual information may be represented, for example, by quantized transform coefficients. The video decoder 300 may inverse quantize and inverse transform the quantized transform coefficients of the block to reconstruct a residual block of the block. The video decoder 300 may form a prediction block of the block using a prediction mode (intra prediction or inter prediction) and associated prediction information (e.g., motion information for inter prediction) signaled in the bitstream. The video decoder 300 may then combine (per sampling point) the prediction block and the residual block to reconstruct the original block. Additionally, video decoder 300 may further perform additional processing, such as performing a deblocking process to reduce visual artifacts along block boundaries.

[0059] Some embodiments of the present disclosure provide an encoding / decoding framework, in which a processing module for converting the bit depth of a picture in a video is added to a general encoder / decoder, so that the encoding side and the decoding side perform operations such as bit depth compression and bit depth extension on the picture to be processed according to actual needs, and generate information about bit depth conversion during the encoding process, and transmit the generated information to the decoding side in a bit stream. During the decoding process, corresponding processing such as bit depth extension of a decoded picture can be performed according to the information about bit depth conversion analyzed from the bit stream, thereby realizing providing greater flexibility in the aspect of encoding / decoding communication.

[0060] Specifically, Fig. 2 is a block diagram illustrating an exemplary video encoder according to some embodiments of the present disclosure, and Fig. 3 is a block diagram illustrating an exemplary video decoder according to some embodiments of the present disclosure, for example, the encoder shown in Fig. 2 may be implemented as the video encoder 200 in Fig. 1, and the decoder shown in Fig. 3 may be implemented as the video decoder 300 in Fig. 1. Hereinafter, a codec according to some embodiments of the present disclosure will be described in detail with reference to Figs. 2 and 3.

[0061] 2 and 3 are for purposes of interpretation and should not be considered as limiting the techniques illustrated and described broadly in this disclosure. For purposes of interpretation, this disclosure describes video encoder 200 and video decoder 300 in the context of developing video codec standards (e.g., the HEVC video codec standard or the H.266 video codec standard), but the techniques of this disclosure are not limited to these video codec standards.

[0062] Each unit (also called a module) in FIG. 2 is illustrated to facilitate understanding of the operations performed by the video encoder 200. These units may be implemented as fixed-function circuits, programmable circuits, or a combination thereof. A fixed-function circuit refers to a circuit that provides a specific function and is pre-configured for possible operations. A programmable circuit refers to a circuit that can be programmed to perform various tasks and provides flexible functionality for possible operations. For example, a programmable circuit may execute software or firmware that causes the programmable circuit to operate as defined by the software or firmware instructions. Although a fixed-function circuit may execute software instructions (such as receiving a parameter or outputting a parameter), the type of operation that the fixed-function circuit performs is generally fixed. In some examples, one or more units may be different circuit blocks (fixed-function circuit blocks or programmable circuit blocks), and in some examples, one or more units may be an integrated circuit.

[0063] The video encoder 200 shown in FIG. 2 may include an arithmetic logic unit (ALU), an elementary function unit (EFU), digital circuits, analog circuits, and / or a programmable core formed by programmable circuitry. In an example in which the operations of the video encoder 200 are performed using software executed by a programmable circuit, the memory 106 (FIG. 1) may store object code for the software that the video encoder 200 receives and executes, or other memory (not shown) in the video encoder 200.

[0064] In the example of FIG. 2, the video encoder 200 can receive the input video, for example, from a video data memory or directly from a video acquisition device. The video data memory can store video data to be encoded by the video encoder 200 components. The video encoder 200 can receive video data from a video source 104 (shown in FIG. 1) or the like, which is stored in the video data memory. The decoding buffer can store reference video data as a reference picture memory, which is used by the video encoder 200 when predicting subsequent video data. The video data memory and the decoding buffer can be formed by various memory devices, for example, dynamic random access memory (DRAM) with synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of memory devices. The video data memory and the decoding buffer can be provided by the same storage device or different storage devices. In various examples, the video data memory may or may not be located on the same chip as other components of the video encoder 200, as shown in FIG. 2.

[0065] In this disclosure, references to video data memory should not be construed as being limited to internal memory of video encoder 200 (unless specifically stated) or limited to external memory of video encoder 200 (unless specifically stated). More accurately, references to video data memory should be understood to be a reference memory that stores video data received by video encoder 200 for encoding (e.g., video data of a current block to be encoded). Additionally, memory 106 in FIG. 1 may further provide temporary storage for the output of each unit in video encoder 200.

[0066] In some embodiments of the present disclosure, the video encoder 200 includes a bit depth conversion unit for performing bit depth conversion on the video received from the video data memory to change its bit depth. According to some embodiments of the present disclosure, the bit depth conversion unit is configured to perform a bit depth conversion process on a picture in the video to generate a converted picture and generate bit depth conversion information, where the bit depth conversion information indicates information related to the bit depth conversion process performed on the picture. In some embodiments of the present disclosure, the bit depth conversion information related to the bit depth conversion is entropy coded together with the coding information of the video data to form a bit stream and then transmitted to the decoding side.

[0067] For example, in order to reduce the bit rate and reduce the amount of transmission data, the bit depth conversion unit may be implemented as a bit depth compression unit to compress the bit depth of the video, for example, the bit depth of the original video may be 10 bits, and after processing by the bit depth compression unit, the bit depth of the original video can be compressed to 8 bits.

[0068] Generally, the bit depth of a video indicates the bit depth of a picture contained in the video. It may be understood that different bit depth values ​​(e.g., 10bit and 8bit) have different color depth bit numbers of pictures, different dynamic ranges, and different amounts of stored data. Compared with 8bit, 10bit indicates that the color depth bit number is 10 bits, which means that the picture has more color gradations, the color transition is smoother, color separation is less likely to occur, and the dynamic range of 10 bidt is wider and the minimum distinguishable signal is finer. Also, compared with 8bit, 10bit means that the amount of data that needs to be stored is larger, and the storage space required when the color needs to be adjusted later is larger.

[0069] In this example, the bit-depth conversion unit performing a bit-depth conversion process on the picture includes performing bit-depth compression on the picture by a bit-depth compression method, so as to reduce a bit-depth of the picture, the bit-depth conversion information includes bit-depth compression control information, and the bit-depth compression control information indicates information related to the bit-depth compression process.

[0070] In an example where the bit depth conversion unit is implemented as a bit depth compression unit, the encoder 200 can record bit depth compression control information related to the compression process. According to some embodiments of the present disclosure, the bit depth compression control information includes one or more of the following information: information indicating the bit depth compression method, information indicating an initial bit depth before the bit depth compression process (e.g., 10 bits), information indicating a compressed bit depth after the bit depth compression process (e.g., 8 bits), etc. And, data about the bit depth compression control information can be entropy coded and written into a bit stream for transmission to the video decoder 300 together with the video coding information.

[0071] As another example, in order to improve the color diversity of the input video, the bit depth conversion unit may be implemented as a bit depth extension unit to extend the bit depth of the video, for example, the bit depth of the original video may be 10 bits, and after processing by the bit depth extension unit, the bit depth of the original video may be extended to 12 bits. For example, this may be applied when the requirements for the color of the video are high or the amount of transmission data is not taken into consideration.

[0072] Similarly, in an example where the bit depth conversion unit is implemented as a bit depth extension unit, the encoder 200 may record the method used to perform the extension process, and entropy encode and write data indicating the extension process method into a bit stream for transmission together with the video coding information to the video decoder 300, etc. The encoder 200 may further record the bit depth before the bit depth extension and the bit depth after the bit depth extension, and all of the above information may be considered as bit depth conversion information.

[0073] It should be understood that the method according to the embodiment of the present disclosure does not limit the specific method of bit depth compression or expansion, and the depth conversion can be realized by existing or future bit depth processing methods.

[0074] Then, as shown in Fig. 2, the input video can be subjected to bit depth conversion, and then the video after the depth conversion can be subjected to an encoding process. A general encoding process will be described below with reference to Fig. 2.

[0075] The mode selection unit typically tests combinations of coding parameters and rate-distortion values ​​obtained from these combinations in cooperation with multiple coding channels. The coding parameters may include a division from CTU to CU, a prediction mode of the CU, a transformation type of CU residual data, a quantization parameter of the CU residual data, etc. The mode selection unit can finally select a coding parameter combination whose rate-distortion value is better than other tested combinations.

[0076] The video encoder 200 may divide a picture retrieved from the video memory into a series of CTUs and encapsulate one or more CTUs into a slice. The mode selection unit may divide the CTUs of the picture based on a tree structure (the QTBT structure described above or the quadtree structure of HEVC). As described above, the video encoder 200 may form one or more CUs by dividing the CTUs based on the tree structure. Such a CU may be generally referred to as a "block" or a "video block."

[0077] In general, the mode selection unit further controls other components (e.g., a motion estimation unit, a motion compensation unit, and an intra prediction unit) to generate a prediction block for a current block (e.g., a current CU or an overlapping portion of a PU and a TU in HEVC). In the case of inter prediction of a current block, the motion estimation unit can perform a motion search to identify one or more closely matching reference blocks in one or more reference pictures (e.g., one or more decoded pictures stored in a decoding buffer). In particular, the motion estimation unit can calculate a value indicating the similarity between a potential reference block and a current block based on a sum of absolute differences (SAD), a sum of squared differences (SSD), a mean absolute difference (MAD), a mean squared difference (MSD), etc., and the motion estimation unit can generally perform these calculations using the difference between each sampling point between the current block and the reference block under consideration. The motion estimation unit can indicate the reference block that most closely matches the current block by identifying the reference block with the lowest value generated from these calculations.

[0078] The motion estimation unit may form one or more motion vectors (MVs), which define the location of a reference block in a reference picture relative to the location of a current block in a current picture. The motion estimation unit may then provide the motion vectors to a motion compensation unit. For example, in the case of unidirectional inter prediction, the motion estimation unit may provide a single motion vector, while in the case of bidirectional inter prediction, the motion estimation unit may provide two motion vectors. The motion compensation unit may then use the motion vectors to generate a prediction block. For example, the motion compensation unit may use the motion vectors to retrieve data of a reference block. As another example, if the motion vector has a precision of a fractional sampling point, the motion compensation unit may interpolate the prediction block by one or more interpolation filters. Also, in the case of bidirectional inter prediction, the motion compensation unit may retrieve data of two reference blocks identified by corresponding motion vectors, and combine the retrieved data by averaging or weighted averaging per sampling point, etc.

[0079] As another example, in the case of intra prediction, the intra prediction unit can generate a prediction block from sampling points adjacent to the current block. For example, in the case of a directional mode, the intra prediction unit can mathematically combine values ​​of adjacent sampling points in general and input these calculated values ​​along a direction defined in the current block to generate a prediction block. As another example, in the case of a DC mode, the intra prediction unit can calculate average values ​​of sampling points adjacent to the current block to generate a prediction block, including average values ​​obtained at each sampling point of the prediction block.

[0080] The mode selection unit may provide the prediction block to the residual unit. The residual unit receives the video after bit depth conversion processing from the bit depth conversion unit and receives the prediction block from the mode selection unit. The residual unit calculates a per-sample difference between the current block and the prediction block. The obtained per-sample difference defines a residual block of the current block. In some examples, the residual unit may further determine a difference in the sampling point values ​​in the residual block to generate the residual block using residual differential pulse code modulation (RDPCM). In some examples, the residual unit may be formed by one or more subtractor circuits performing binary subtraction.

[0081] In an example where the mode selection unit divides a CU into PUs, each PU may be associated with a luma prediction unit and a corresponding chroma prediction unit. The video encoder 200 and the video decoder 300 may support various PUs of different sizes. As described above, the size of a CU may refer to the size of a luma coding block of the CU, and the size of a PU may refer to the size of a luma prediction unit of the PU. Assuming that a size of a particular CU is 2N×2N, the video encoder 200 may support PUs of 2N×2N or N×N size for intra prediction, and symmetric PUs of 2N×2N, 2N×N, N×2N, N×N or similar size for inter prediction. The video encoder 200 and the video decoder 300 may further support asymmetric division for PUs of 2N×nU, 2N×nD, nL×2N, and nR×2N size for inter prediction.

[0082] In examples where the mode selection unit does not further divide the CU into PUs, each CU may be associated with a luma coding block and a corresponding chroma coding block. As mentioned above, the size of a CU may refer to the size of the luma coding block of the CU. The video encoder 200 and the video decoder 300 may support CUs of size 2N×2N, 2N×N, or N×2N.

[0083] For other video codec techniques, such as intra block copy mode coding, affine mode coding, and linear model (LM) mode coding, for example, the mode selection unit may generate a prediction block for the current block being coded via a corresponding unit associated with the codec technique. In some examples, for example, in the case of palette mode coding, the mode selection unit may generate syntax elements that indicate how to reconstruct the block based on the selected palette without generating a prediction block. In such modes, the mode selection unit may provide these syntax elements to the entropy coding unit for coding.

[0084] As described above, the residual unit receives a current block and a corresponding predicted block. The residual unit then generates a residual block for the current block. To generate the residual block, the residual unit calculates the sample-point-by-sample point difference between the predicted block and the current block.

[0085] A transform unit (shown as "Transform & Sample & Quantize" in FIG. 2) applies one or more transforms to the residual block to generate a block of transform coefficients (e.g., referred to as a "transform coefficient block"). The transform unit may apply various transforms to the residual block to form the transform coefficient block. For example, the transform unit may apply a discrete cosine transform (DCT), a directional transform, a Karhunen-Loeve transform (KLT), or a conceptually similar transform to the residual block. In some examples, the transform unit may perform multiple transforms on the residual block, e.g., a linear and a quadratic transform, a rotation transform, etc. In some examples, the transform unit may not apply a transform to the residual block.

[0086] The transform unit may then quantize the transform coefficients in the transform coefficient block to generate a quantized transform coefficient block. The transform unit may quantize the transform coefficients of the transform coefficient block based on a quantization parameter (QP) value associated with the current block. The video encoder 200 (e.g., via a mode selection unit) may adjust the degree of quantization applied to the coefficient block associated with the current block by adjusting the QP value associated with the CU. Quantization may result in loss of information, such that the quantized transform coefficients may have less precision than the original transform coefficients.

[0087] The encoder 200 may further include an encoding control unit for generating control information for operations in the encoding process. Then, the inverse quantization and inverse transform unit ("inverse quantization & inverse transform" shown in FIG. 2) may apply inverse quantization and inverse transform, respectively, to the quantized transform coefficient block, so as to obtain a reconstructed residual block from the transform coefficient block. The reconstruction unit may generate a reconstructed block (albeit with some distortion) corresponding to the current block according to the reconstructed residual block and the prediction block generated by the mode selection unit. For example, the reconstruction unit may add sampling points of the reconstructed residual block to corresponding sampling points of the prediction block generated by the mode selection unit, so as to generate a reconstructed block.

[0088] The reconstruction block may perform one or more filtering operations, such as by a loop filtering unit as shown in FIG. 2. For example, the filtering may include a deblocking operation to reduce blocking effect artifacts along CU edges. In some examples, the filtering operation may be skipped.

[0089] Then, after loop filtering, etc., the video encoder 200 can store the reconstructed block in a decoding buffer. In an example where the filtering process is skipped, the reconstruction unit can store the reconstructed block in the decoding buffer. In an example where the filtering process is required, the filtered reconstructed block can be stored in the decoding buffer. The motion estimation unit and the motion compensation unit can then retrieve the reference picture formed by the reconstructed (and possibly filtered) block from the decoding buffer to inter predict blocks of the coded picture. Also, the intra prediction unit can intra predict other blocks in the current picture using the reconstructed block in the decoding buffer of the current picture.

[0090] The operations described above are block oriented. It should be understood that the description may be for operations used on luma coding blocks and / or chroma coding blocks. As mentioned above, in some examples, the luma coding block and the chroma coding block are the luma and chroma components of a CU. In some examples, the luma coding block and the chroma coding block are the luma and chroma components of a PU.

[0091] As shown in FIG. 2, in some embodiments of the present disclosure, the video encoder 200 may further include a bit depth inverse conversion unit. The bit depth inverse conversion unit may be configured to perform a bit depth inverse conversion process on a decoded picture obtained, for example, by loop filtering, to generate an inverse converted picture and generate bit depth inverse conversion information. As can be understood, the bit depth inverse conversion process and the bit depth conversion process are inverse operations, and the bit depth inverse conversion information indicates information related to the bit depth inverse conversion process on the decoded picture. The inverse operations may be understood as follows: if the bit depth conversion process is a bit depth expansion process, the bit depth inverse conversion process is a bit depth compression process, or if the bit depth conversion process is a bit depth compression process, the bit depth inverse conversion process is a bit depth expansion process. Alternatively, in other embodiments of the present disclosure, the bit depth inverse conversion process and the bit depth conversion process may not be inverse operations.

[0092] For example, when the bit depth conversion unit is implemented as a bit depth compression unit, before encoding the picture in the input video, the bit depth conversion unit first reduces the bit depth of the picture, and then encodes the picture with reduced bit depth. This is because a picture with a relatively high bit depth can provide a better color transition effect, but it will take up more storage space and transmission data, and considering that users of general electronic products do not use original image files with a relatively high bit depth, the picture in the input video can be subjected to bit depth compression in the encoding process, so as to reduce the bit depth of the picture in the input video, for example, from 10bit to 8bit, thereby reducing the transmission bit rate. In this case, the bit depth inverse conversion unit can be implemented as a bit depth extension unit to increase the bit depth of the decoded picture, for example, to restore the bit depth of the decoded picture from 8bit to 10bit for use in the subsequent effect verification unit, and then the operation of the effect verification unit is described.

[0093] According to some embodiments of the present disclosure, the bit depth inverse conversion information includes bit depth inverse conversion control information indicating information related to a bit depth inverse conversion process.

[0094] According to some embodiments of the present disclosure, the bit depth inverse conversion control information includes bit depth inverse conversion switching information, and indicates whether to perform bit depth inverse conversion processing on the decoded picture. For example, the control information for the bit depth inverse conversion switching information can be generated by the encoding control unit, and for example, the encoding control unit can determine whether to turn on the bit depth inverse conversion unit according to the current computation capability of the encoder, real-time display requirements, etc., that is, determine whether to perform bit depth inverse conversion processing on the decoded picture. The bit depth inverse conversion unit can determine whether to perform inverse conversion processing on the decoded picture based on the control information, and record bit depth inverse conversion control information related to the bit depth inverse conversion processing, and the bit depth inverse conversion control information can be entropy coded and transmitted to the decoding side.

[0095] According to some embodiments of the present disclosure, the bit depth inverse conversion control information further includes at least one of information indicating a bit depth inverse conversion method, information indicating an input bit depth before the bit depth inverse conversion process (e.g., 8 bits), and information indicating an output bit depth after the bit depth inverse conversion process (e.g., 10 bits).

[0096] According to some embodiments of the present disclosure, as shown in FIG. 2, the effect verification unit may be configured to perform effect verification of bit depth conversion by comparing the inverse converted picture (e.g., 10 bits) generated by the bit depth inverse conversion unit with the original unconverted initial picture (e.g., also 10 bits), and generate bit depth verification effect information.

[0097] According to some embodiments of the present disclosure, the bit depth verification effect information includes at least one of verification control information indicating whether or not to perform effect verification, information indicating an effect verification method for performing effect verification, and information indicating a verification result of the effect verification method. Similarly, the bit depth verification effect information may be entropy coded and transmitted to a decoding side.

[0098] As an example, the effect verification method can use a Peak Signal to Noise Ratio (PSNR) to calculate the distortion between the generated inverse transformed picture and the initial picture, and the calculated distortion value indicates information about the verification result of the effect verification method.

[0099] According to some embodiments of the present disclosure, the bitstream may include bit depth conversion extension bits (e.g., denoted as bit_convertion_extension( )) for carrying information such as bit depth conversion information in the bitstream. The syntax of the bit depth conversion extension bits is described below.

[0100] In general, the entropy coding unit may entropy code syntax elements received from other functional components of the video encoder 200. For example, the entropy coding unit may entropy code quantized transform coefficient blocks from the transform unit and may further entropy code information such as bit depth conversion information. The entropy coding unit may also entropy code predicted syntax elements (e.g., inter-predicted motion information or intra-predicted intra mode information) from the mode selection unit to generate entropy coded data. For example, the entropy coding unit may perform a context-adaptive variable length coding (CAVLC) operation, a context-adaptive binary arithmetic coding (CABAC) operation, a variable length coding operation, a syntax-based context-adaptive binary arithmetic coding (SBAC) operation, a probability interval partitioning entropy (PIPE) coding operation, an exponential-Golomb coding operation, or other types of entropy coding operations on the data. In some examples, the entropy coding unit may operate in a bypass mode in which syntax elements are not entropy coded. The video encoder 200 may output a bitstream that includes the entropy coding syntax elements necessary to reconstruct blocks of a slice or picture.

[0101] In the encoding method according to some embodiments of the present disclosure, bit depth processing (e.g., including bit depth conversion and bit depth inverse conversion) can be performed on pictures in an input video, and information related to the bit depth processing on the pictures (e.g., bit depth conversion information, bit depth inverse conversion information, bit depth verification effect information, etc.) can be recorded, and the encoder 200 can selectively entropy encode the information and transmit it to the decoding side via a bit stream, thereby enabling the decoder 300 and the like to use the above information analyzed from the bit stream as reference information for bit depth processing on the decoding side, thereby allowing the decoder to more flexibly and effectively perform operations such as bit depth conversion on the decoded pictures based on information such as the generated and transmitted bit depth conversion information, thereby realizing information communication regarding bit depth processing between the decoding side and the encoding side, and the operations by the decoder 300 will be described below with reference to FIG. 3.

[0102] By using the encoder according to an embodiment of the present disclosure, for example, as described with reference to FIG. 2, it is possible to perform bit-depth conversion on a picture before encoding the picture, and then encode the generated converted picture to form encoding information for the picture, and further generate bit-depth conversion information for transmission together with the encoding information in a bitstream, thereby enabling the decoding side to correspondingly process the bit-depth of the decoded picture according to the bit-depth conversion information analyzed in the bitstream to meet the display needs of a display device, etc. The use of the bit-depth conversion information to form the bitstream contributes to a more flexible realization of the bit-depth conversion process, and can realize information communication regarding bit-depth conversion between the decoding side and the encoding side.

[0103] 3 is a block diagram illustrating an example video decoder according to some embodiments of the present disclosure, for example, the decoder illustrated in FIG. 3 may be the video decoder 300 in FIG. 1. It should be understood that FIG. 3 is provided for interpretation purposes and is not intended to limit the techniques broadly illustrated and described in this disclosure. For the purposes of interpretation, the video decoder 300 is described based on HEVC technology. However, the techniques of the present disclosure may be performed by video decoding devices configured for other video codec standards.

[0104] As can be understood, in practical applications, the basic structure of the video decoder 300 may be similar to the video encoder shown in FIG. 2, such that both the encoder 200 and the decoder 300 include video encoding and decoding components, i.e., both the encoder 200 and the decoder 300 can realize the video encoding and decoding process. In such a case, the encoder 200 and the decoder 300 may be collectively referred to as a codec. Thus, the system configured with the encoder 200 and the decoder 300 can support one-way or two-way video transmission between devices, and may be used for video streaming, video playback, video broadcasting, or video telephony, for example. As can be understood, the video decoder 300 may include more, less, or different functional components than those shown in FIG. 3. For the sake of interpretation, FIG. 3 illustrates components related to the decoding conversion process according to some embodiments of the present disclosure.

[0105] In the example of FIG. 3, the video decoder 300 comprises a memory, an entropy decoding unit, a prediction processing unit, an inverse quantization and inverse transform unit ("inverse quantization & inverse transform unit" shown in FIG. 3), a reconstruction unit, a filter unit, a decoding buffer, and a bit depth inverse transform unit. The prediction processing unit may comprise a motion compensation unit and an intra prediction unit. The prediction processing unit may further comprise a summing unit, for example to perform prediction based on other prediction modes. By way of example, the prediction processing unit may comprise a palette unit, an intra block copy unit (which may form part of the motion compensation unit), an affine unit, a linear model (LM) unit, etc. In other examples, the video decoder 300 may comprise more, less, or different functional components than those described above.

[0106] As shown in FIG. 3, first, the decoder 300 may receive a bitstream including encoded video data. For example, the memory in FIG. 3 may be referred to as a codec picture buffer (CPB), which is for storing the bitstream including the encoded video data, waiting for the bitstream to be decoded by the components of the video decoder 300. The video data stored in the CPB may be obtained, for example, from the computer-readable medium 110 (FIG. 1). The CPB may also store temporary data output from each unit of the video decoder 300, for example. The decoding buffer generally stores a decoded picture, which the video decoder 300 may output and / or use as reference video data when decoding subsequent data or pictures of the bitstream. The CPB memory and the decoding buffer may be formed by various memory devices, for example, dynamic random access memory (DRAM) including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of memory devices. The CPB memory and the decoding buffer may be provided by the same storage device or different storage devices. In various examples, the CPB memory may be located on the same chip as other components of video decoder 300, or may not be located on the same chip as the other components, as shown.

[0107] The various units in FIG. 3 are illustrated to facilitate understanding of the operations performed by the video decoder 300. These units may be implemented as fixed function circuits, programmable circuits, or a combination thereof. As with FIG. 2, fixed function circuits refer to circuits that provide a specific function and are pre-configured for possible operations. Programmable circuits refer to circuits that can be programmed to perform various tasks and provide flexible functionality for possible operations. For example, a programmable circuit may execute software or firmware that causes the programmable circuit to operate as defined by the software or firmware instructions. Although a fixed function circuit may execute software instructions (such as receiving a parameter or outputting a parameter), the type of operation that the fixed function circuit performs is generally fixed. In some examples, one or more units may be different circuit blocks (fixed function circuit blocks or programmable circuit blocks), and in some examples, one or more units may be an integrated circuit.

[0108] Video decoder 300 may include a programmable core formed by ALUs, EFUs, digital circuits, analog circuits, and / or programmable circuits. In examples where the operations of video decoder 300 are performed by software executing in programmable circuits, on-chip or off-chip memory may store instructions for the software (e.g., object code) that video decoder 300 receives and executes.

[0109] Next, the entropy decoding unit may entropy decode the received bitstream and analyze therefrom bit depth conversion information and encoding information corresponding to the picture, where the bit depth conversion information indicates information related to the bit depth conversion process performed in the encoding process of the picture. According to some embodiments of the present disclosure, the decoder 300 may analyze the bit depth conversion information from the bit depth conversion extension bit (bit_convertion_extension( )) in the bitstream.

[0110] In addition, the decoder 300 can perform a decoding conversion process based on the bit depth conversion information and the analyzed encoding information to generate display video data. According to some embodiments of the present disclosure, the bit depth conversion process is a bit depth compression process, the bit depth conversion information includes bit depth compression control information related to the bit depth compression process, and performing the decoding conversion process based on the bit depth conversion information and the encoding information includes performing the decoding conversion process on the encoding information with reference to the bit depth compression control information. The bit depth compression control information may include at least one of information indicating a bit depth compression method, information indicating an initial bit depth (e.g., 10 bits) before the bit depth compression process, and information indicating a compressed bit depth (e.g., 8 bits) after the bit depth compression process. In such a case, the decoder 300 can grasp, based on the bit depth compression control information obtained by decoding, that the initial input video is converted from the initial 10 bits to 8 bits according to the bit depth compression method indicated, and then encoded and transmitted. The decoder 300 can perform a corresponding decoding conversion process by referring to the transmitted bit depth compression control information.

[0111] According to some embodiments of the present disclosure, the operations that can be performed by the decoder 300 located at the decoding side may refer to the decoding conversion process shown in FIG. 3, which may be understood to include a combination of a general decoding process and a bit depth conversion process, thereby generating a display picture to be displayed by a display device.

[0112] In the decoder 300 shown in Figure 3, the entropy decoding unit can receive a bitstream containing encoded video, such as from memory 120, and entropy decode it to recover syntax elements. The inverse quantization and inverse transform unit ("Inverse Quantization & Inverse Transform" shown in Figure 3), the reconstruction unit, and the filter unit can generate decoded video based on the syntax elements extracted from the bitstream, e.g., generate a decoded picture.

[0113] Generally, the video decoder 300 reconstructs a picture on a block-by-block basis. The video decoder 300 may perform a reconstruction operation on each block independently, and the block currently being reconstructed (i.e., decoded) may be referred to as the "current block."

[0114] Specifically, the entropy decoding unit may entropy decode syntax elements defining quantized transform coefficients of the quantized transform coefficient block and transformation information, such as a quantization parameter (QP) and / or a transform mode indication. The inverse quantization and inverse transform unit may determine a quantization degree using a QP associated with the quantized transform coefficient block, and may similarly determine an inverse quantization degree to be applied. For example, the inverse quantization and inverse transform unit may perform a bitwise left shift operation to inverse quantize the quantized transform coefficients. Thereby, the inverse quantization and inverse transform unit may form a transform coefficient block including the transform coefficients. After forming the transform coefficient block, the inverse quantization and inverse transform unit may apply one or more inverse transforms to the transform coefficient block to generate a residual block associated with the current block. For example, the inverse quantization and inverse transform unit may apply an inverse DCT, an inverse integer transform, an inverse Karhunen-Loeve transform (KLT), an inverse rotational transform, an inverse directional transform, or other inverse transform to the coefficient block.

[0115] Also, the prediction processing unit generates a prediction block based on the prediction information syntax element entropy decoded by the entropy decoding unit. For example, if the prediction information syntax element indicates that the current block is inter-predicted, the motion compensation unit may generate a prediction block. In this case, the prediction information syntax element may indicate a reference picture in the decoding buffer (from which the reference block is searched) and a motion vector that identifies the location of the reference block in the reference picture relative to the current block in the current picture. The motion compensation unit may generally perform an inter prediction process in a manner essentially similar to that described for the motion compensation unit in FIG. 2.

[0116] As another example, if the prediction information syntax element indicates that the current block is to be intra predicted, the intra prediction unit may generate a predicted block based on the intra prediction mode indicated by the prediction information syntax element. Similarly, the intra prediction unit may generally perform an intra prediction process in a manner essentially similar to that described for the intra prediction unit in Figure 2. The intra prediction unit may retrieve data of sampling points adjacent to the current block from a decoding buffer.

[0117] The reconstruction unit may reconstruct the current block using the prediction block and the residual block, for example, the reconstruction unit may reconstruct the current block by adding sampling points of the residual block to corresponding sampling points of the prediction block.

[0118] The filter unit may then perform one or more filter operations on the reconstructed block. For example, the filter unit may perform a deblocking operation to reduce blocking effect artifacts along edges of the reconstructed block. As will be appreciated, the filtering operation is not necessarily performed in all cases, i.e., the filtering operation may be skipped in some cases.

[0119] The video decoder 300 may store the reconstructed blocks in a decoding buffer. As described above, the decoding buffer may provide reference information to a motion compensation unit, a motion estimation unit, etc., such as sampling points of the current picture for intra prediction and sampling points of a previously decoded picture for subsequent motion compensation. The video decoder 300 may also output the decoded pictures from the decoding buffer for subsequent display on a display device (e.g., display device 118 of FIG. 1).

[0120] According to some embodiments of the present disclosure, the video decoder 300 may further include a bit depth inverse conversion unit to perform bit depth inverse conversion processing on the loop filtered decoded picture, etc., thereby meeting the requirements of the display device, etc. for the bit depth of the video to be displayed. For example, if a display device for displaying the output video is required to display display data having 10 bits, but the bit depth of the decoded picture obtained by decoding is 8 bits, the bit depth of the decoded picture is inversely converted by the bit depth inverse conversion unit, thereby improving the bit depth of the decoded picture, and providing the video data after the bit depth processing as the display data. The bit depth inverse conversion operation in the decoding conversion process will be described in detail below.

[0121] According to some embodiments of the present disclosure, the entropy decoding unit of the decoder 300 can further parse bit depth inverse conversion information corresponding to the picture from the bit stream, where the bit depth inverse conversion information indicates information related to the bit depth inverse conversion process performed in the encoding process of the picture. According to some embodiments of the present disclosure, the decoder 300 can parse the bit depth inverse conversion information from the bit depth conversion extension bits in the bit stream.

[0122] In this case, performing the decoding conversion process based on the bit-depth conversion information and the encoding information includes decoding the encoding information to generate a decoded picture corresponding to the picture, and performing a bit-depth inverse conversion process on the decoded picture by referring to the bit-depth inverse conversion information to generate a display picture.

[0123] In the following description, a specific example is taken of the bit depth conversion process on the encoding side being a bit depth compression process, and the bit depth inverse conversion process being a bit depth extension process, and the corresponding operation by the decoder on the decoding side is described below. It can be understood that the decoding method according to the embodiment of the present disclosure is not limited to this case.

[0124] In the above example, the bit depth inverse conversion information includes bit depth extension control information, and the bit depth extension control information includes information indicating a bit depth extension method, and the decoder 300 can further determine whether a decoder local bit depth extension method is available, that is, the decoder 300 can first determine whether it can perform the bit depth extension method indicated by the bit depth extension control information. If it is determined that the bit depth extension method is available, the decoder 300 can extend the bit depth of the decoded picture according to the bit depth extension method, for example, increase the bit depth of the decoded picture from 8 bits to 10 bits. Or, if it is determined that the bit depth extension method is not available, the decoder 300 can further receive the bit depth extension method from an application layer or the like, so as to perform bit depth extension on the decoded picture according to the bit depth extension method. As will be appreciated, the above process may also be applied when the bit depth extension method set in the decoder does not match the indicated bit depth extension method, in which case the decoder 300 may receive data regarding the indicated bit depth extension method from an application layer or cloud via a network, etc., thereby enabling the decoder 300 to perform the indicated bit depth extension method on the decoded picture.

[0125] According to some embodiments of the present disclosure, the decoder 300 can further receive control information from an application layer indicating whether to perform a bit depth inverse conversion process, where the control information is generated based on at least one of the following: a decoder's computation capability, a decoder's remaining capacity information, and a display's bit depth display requirement. Based on the received control information, the decoder 300 can determine whether to enable a bit depth inverse conversion unit configured therein, and if the control information indicates not to enable, the decoder 300 does not perform a bit depth inverse conversion process on the loop filtered decoded picture.

[0126] Additionally or alternatively, the decoder 300 can further analyze the bit depth verification effect information corresponding to the picture from the above bit depth conversion extension bits in the bitstream, compare the decoded picture with the bit depth extension effect information, and refer to the comparison result to determine whether to perform a bit depth inverse conversion process on the decoded picture.

[0127] As a result, the decoder 300 can determine whether to enable the bit depth inverse conversion unit depending on control information regarding whether to perform bit depth inverse conversion processing received from the application layer and / or bit depth verification effect information analyzed from the bitstream.

[0128] In addition, the decoder 300 can further determine whether to perform inverse conversion based on a bit depth inverse conversion method instructed according to the bit depth extension effect information. For example, the bit depth extension effect information includes at least one of verification control information indicating whether to perform effect verification, information indicating an effect verification method for performing effect verification, and information indicating a verification result of the effect verification method.

[0129] For example, based on the information indicating the verification result of the effect verification method, the decoder 300 can grasp the conversion effect caused by performing the bit depth inverse conversion by the bit depth inverse conversion method, and thereby determine whether to perform the bit depth inverse conversion by the method on the decoding side according to the conversion effect. For example, if it is assumed that the conversion effect indicates that the distortion of the decoded picture after conversion from the initial picture is larger, the decoder side can inverse convert by another method (e.g., a method indicated in the application layer) without inverse converting by the bit depth inverse conversion method.

[0130] This allows the decoder 300 to grasp more useful information based on the information about the bit depth processing performed on the picture during the encoding conversion process transmitted in the bitstream, thereby allowing the decoder 300 to perform bit depth conversion more flexibly.

[0131] 4A is a flow chart illustrating an encoding method according to some embodiments of the present disclosure, and FIG 4B is a flow chart illustrating an example method for encoding a current block according to an encoding method according to some embodiments of the present disclosure. Although video encoder 200 has been described with reference to FIG 1 and FIG 2, it should be understood that other devices may be configured to perform encoding methods similar to those shown in FIG 4A and FIG 4B.

[0132] As shown in Fig. 4A, the encoding method according to some embodiments of the present disclosure includes steps S101 and S102, in which in step S101, a bit depth conversion process is performed on a picture to generate a converted picture and generate bit depth conversion information, and the bit depth conversion information indicates information related to the bit depth conversion process performed on the picture. It can be understood that the picture may be a picture of one frame in video data.

[0133] For example, this step S101 may be performed by a bit-depth conversion unit shown in FIG. 2 to process the bit-depth of a picture sequence in an input video to change the bit-depth of the pictures.

[0134] For example, in order to reduce the bit rate and reduce the amount of transmission data, the bit depth conversion unit may be implemented as a bit depth compression unit to compress the bit depth of the video, for example, the bit depth of the original video may be 10 bits, and after processing by the bit depth compression unit, the bit depth of the original video can be compressed to 8 bits. In this example, the bit depth conversion information includes bit depth compression control information indicating information related to the bit depth compression process.

[0135] According to some embodiments of the present disclosure, the bit depth compression control information includes at least one of information indicating a bit depth compression method, information indicating an initial bit depth before the bit depth compression process, and information indicating a compressed bit depth after the bit depth compression process.

[0136] As another example, in order to improve the color diversity of the input video, the bit depth conversion unit may be implemented as a bit depth extension unit to extend the bit depth of the video, for example, the bit depth of the original video may be 10 bits, and the bit depth of the original video may be extended to 12 bits after processing by the bit depth extension unit. In this example, the bit depth conversion information includes bit depth extension control information indicating information related to the bit depth extension process. According to some embodiments of the present disclosure, the bit depth extension control information includes at least one of information indicating a bit depth extension method, information indicating an initial bit depth before the bit depth extension process, and information indicating a compressed bit depth after the bit depth extension process.

[0137] Then, in step S102, the transform picture is subjected to an encoding process to generate encoding information corresponding to the transform picture. According to some embodiments of the present disclosure, the bit depth conversion information and the encoding information are for forming a bit stream, that is, the generated bit depth conversion information can be transmitted to the decoding side together with the encoding information, so as to provide greater flexibility in terms of codec communication regarding bit depth processing.

[0138] Step S102 may specifically include steps S1021 to S1026 shown in FIG. 4B. As shown in FIG. 4B, for example, the video encoder 200 may first predict a current block (S1021). For example, the video encoder 200 may form a prediction block of the current block. The video encoder 200 may then calculate a residual block of the current block (S1022). To calculate the residual block, the video encoder 200 may calculate the difference between an original uncoded block and a prediction block of the current block. The video encoder 200 may then transform and quantize coefficients of the residual block (S1023). Additionally, the video encoder 200 may scan the quantized transform coefficients of the residual block (S1024). During or after the scan, the video encoder 200 may entropy code the coefficients (S1025). For example, the video encoder 200 may entropy code the coefficients by CAVLC or CABAC. Finally, the video encoder 200 may output the entropy-encoded bitstream (S1026).

[0139] According to some embodiments of the present disclosure, the encoding process may be understood to include a decoding step to generate a decoded picture for performing motion estimation, motion compensation, etc. Obtaining the decoded picture may include decoding the encoded information to generate the decoded picture.

[0140] Optionally, the encoding method according to some embodiments of the present disclosure may further include performing a bit-depth inverse conversion process on the decoded picture to generate an inverse converted picture and generate bit-depth inverse conversion information, where the bit-depth inverse conversion process and the bit-depth conversion process in step S101 are inverse operations to each other, and the bit-depth inverse conversion information indicates information related to the bit-depth inverse conversion process performed on the decoded picture. As an example, the bit-depth conversion process may be a bit-depth compression process, and the bit-depth inverse conversion process may be a bit-depth extension process. It can be understood that, as another example, the bit-depth conversion process may be a bit-depth extension process, but the bit-depth inverse conversion process may be a bit-depth compression process.

[0141] The encoding method according to some embodiments of the present disclosure may further include performing effect verification by comparing the inverse transformed picture and the picture to generate bit depth verification effect information, where the bit depth verification effect information includes at least one of verification control information indicating whether to perform effect verification, information indicating an effect verification method for performing effect verification, and information indicating a verification result of the effect verification method.

[0142] According to some embodiments of the present disclosure, the bit depth inverse conversion information includes bit depth inverse conversion control information indicating information related to bit depth inverse conversion processing. For example, the bit depth inverse conversion control information includes bit depth inverse conversion switching information, and indicates whether to perform bit depth inverse conversion processing on the decoded picture. For example, an indication regarding the bit depth inverse conversion switching information can be generated by the coding control unit in FIG. 2.

[0143] According to some embodiments of the present disclosure, performing a bit depth inverse conversion process on a decoded picture includes performing a bit depth inverse conversion on the decoded picture by a bit depth inverse conversion method, by performing the bit depth inverse conversion process in response to an indication of bit depth inverse conversion switching information to change the bit depth of the decoded picture in a direction opposite to the bit depth conversion.

[0144] For example, the bit depth inverse conversion control information may further include at least one of information indicating a bit depth inverse conversion method, information indicating an input bit depth before the bit depth inverse conversion process, and information indicating an output bit depth after the bit depth inverse conversion process.

[0145] According to some embodiments of the present disclosure, in order to transmit one or more pieces of information about the above-mentioned bit depth processing (e.g., bit depth conversion information, bit depth inverse conversion information, bit depth verification effect information) in the bit stream, bit depth conversion extension bits can be included in the bit stream, thereby transmitting such information in the bit stream so that a decoder can obtain the above-mentioned information from the bit depth conversion extension bits after receiving the bit stream.

[0146] 5A is a flow chart illustrating a decoding method according to some embodiments of the present disclosure, and FIG. 5B is a flow chart illustrating an example method of decoding a current block according to a decoding method according to some embodiments of the present disclosure. Although the video decoder 300 has been described with reference to FIGs. 1 and 3, it should be understood that other devices may be configured to perform a decoding method similar to that shown in FIGs. 5A and 5B.

[0147] As shown in Fig. 5A, a decoding method according to some embodiments of the present disclosure includes steps S201 and S202, where in step S201, bit depth conversion information and encoding information corresponding to a picture are analyzed from a received bitstream, and the bit depth conversion information indicates information related to a bit depth conversion process performed in the encoding process of the picture. For example, this step S101 can be performed by an entropy decoding unit shown in Fig. 3, and the obtained bit depth conversion information can be used as reference information to process the bit depth of the decoded picture, etc., to change the bit depth of the picture, thereby obtaining a display picture with a desired bit depth. For example, the entropy decoding unit in Fig. 3 can analyze the bit depth conversion information from the bit depth conversion extension bits in the bitstream.

[0148] Next, in step S202, a decoding conversion process is performed based on the bit depth conversion information and the encoding information to generate a display picture.

[0149] According to some embodiments of the present disclosure, the bit depth conversion process may be a bit depth compression process, in which case the bit depth conversion information includes bit depth compression control information related to the bit depth compression process, which means that the bit depth conversion unit performs a bit depth compression process on a picture sequence in the input video so as to reduce the bit depth of the pictures during the encoding process by the encoder 200.

[0150] According to some embodiments of the present disclosure, performing the decoding conversion process based on the bit depth conversion information and the encoding information includes performing the decoding conversion process on the encoding information with reference to the bit depth compression control information. The bit depth compression control information may include at least one of information indicating a bit depth compression method, information indicating an initial bit depth (e.g., 10 bits) before the bit depth compression process, and information indicating a compressed bit depth (e.g., 8 bits) after the bit depth compression process. In such a case, the decoder 300 can grasp, based on the bit depth compression control information obtained by decoding, that the initial input video is converted from the initial 10 bits to 8 bits according to the bit depth compression method indicated, and then encoded and transmitted.

[0151] The decoding method according to some embodiments of the present disclosure may further include parsing bit depth inverse conversion information corresponding to the picture from the bitstream, where the bit depth inverse conversion information indicates information related to a bit depth inverse conversion process performed in the encoding process of the picture.

[0152] According to some embodiments of the present disclosure, performing a decoding conversion process based on the bit depth conversion information and the encoding information includes decoding the encoding information to generate a decoded picture corresponding to the picture, and performing a bit depth inverse conversion process on the decoded picture by referring to the bit depth inverse conversion information to generate a display picture.

[0153] According to some embodiments of the present disclosure, the bit depth conversion process is a bit depth compression process, the bit depth inverse conversion process is a bit depth extension process, the bit depth inverse conversion information includes bit depth extension control information, the bit depth extension control information includes information indicating a bit depth extension method, and the decoding method may further include determining whether the bit depth extension method is available, and if it is determined that the bit depth extension method is available, extending the bit depth by the bit depth extension method, and if it is determined that the bit depth extension method is not available, receiving the bit depth extension method to perform bit depth extension on the decoded picture by the bit depth extension method.

[0154] According to some embodiments of the present disclosure, before performing a bit depth inverse conversion process on the decoded picture, the decoding method may further include receiving control information indicating whether to perform a bit depth inverse conversion process, the control information being generated based on at least one of a decoder's computational capability, a decoder's remaining capacity information, and a display's bit depth display requirement, and determining whether to perform a bit depth inverse conversion process on the decoded picture by referring to the control information.

[0155] According to some embodiments of the present disclosure, before performing a bit depth inverse conversion process on the decoded picture, the decoding method may further include: analyzing bit depth verification effect information corresponding to the picture from the bitstream, comparing the decoded picture with the bit depth extension effect information, and determining whether to perform a bit depth inverse conversion process on the decoded picture by referring to the comparison result.

[0156] FIG. 5B specifically illustrates an exemplary process of step S202 including steps S2021 to S2027. For example, the video decoder 300 may entropy decode the received coding information to determine prediction information of the current block and reconstruct coefficients of the residual block (S2021). The video decoder 300 may predict the current block using an intra or inter prediction mode indicated by the current block prediction information to calculate a prediction block of the current block (S2022). Next, the video decoder 300 may inverse scan the reconstructed coefficients to generate a quantized transform coefficient block (S2023). Then, the video decoder 300 may inverse quantize and inverse transform the coefficients to generate a residual block (S2024). The video decoder 300 may combine the prediction block and the residual block (S2025) to finally form a decoded picture (S2026).

[0157] According to the following embodiment of the present disclosure, the video decoder 300 may further selectively perform bit depth inverse conversion on the decoded picture to generate a display picture (S2027). For example, the decoder 300 may receive control information indicating whether to perform a bit depth inverse conversion process from an application layer, so as to determine whether to enable a bit depth inverse conversion unit therein. For further example, the decoder 300 may analyze bit depth verification effect information corresponding to a picture from a bit stream, and determine whether to enable a bit depth inverse conversion unit therein based on the verification effect information. It can be understood that the decoder 300 may determine whether to enable the bit depth inverse conversion unit by jointly referring to both the above received control information and the bit depth verification effect information analyzed from the bit stream.

[0158] When it is decided to enable the bit depth inverse transform unit, the bit depth of the generated decoded picture can be changed by performing a bit depth inverse transform operation on the decoded picture. As an example, the bit depth inverse transform unit may be implemented as a bit depth compression unit to reduce the bit depth of the decoded picture. As another example, the bit depth inverse transform unit may be implemented as a bit depth expansion unit to increase the bit depth of the decoded picture.

[0159] For example, FIG. 6A is a schematic diagram showing bit depth conversion according to some embodiments of the present disclosure. As shown in FIG. 6A, for example, a video collected by a shooting device may have a bit depth of 10 bits. The video with a bit depth of 10 bits as an input video can first undergo compression processing by the bit depth conversion unit of the encoder 200 shown in FIG. 2, and the bit depth can be reduced to 8 bits for encoding and transmission. Compared with directly encoding a video with 10 bits, such a method can reduce the amount of data transmission. At the same time, information about the bit depth processing is further transmitted in the bit depth extension bit in the bit stream, thereby realizing communication of the bit depth information of the codec. Then, on the decoding side, the decoder 300 decodes the encoding information to obtain a decoded video with a bit depth of 8 bits, and can determine whether to perform bit depth inverse conversion on the decoded video based on the received control information indicating whether to perform bit depth inverse conversion processing and / or the bit depth verification effect information analyzed from the bit stream. FIG. 6A shows a case where the decoded video is not subjected to bit depth inverse conversion, so that the decoded video may be directly used as display data.

[0160] Figure 6B is a schematic diagram of another bit depth conversion, showing the case where bit depth inverse conversion is performed on the decoded video, and the bit depth of the decoded video can be processed by the inverse conversion, for example, increased to 10 bits for display. It should be understood that Figures 6A and 6B only show exemplary application situations in which bit depth conversion is performed by the encoding method and the decoding method according to the embodiment of the present disclosure.

[0161] The following describes the syntax for the bit depth conversion extension bit (bit_convertion_extension( )) according to some embodiments of the present disclosure with some examples. Syntax elements related to some embodiments of the present disclosure are shown in bold. It is understood that the following tables are merely exemplary and other syntaxes may be defined.

[0162] [Table 1]

[0163] As shown in Table 1, bit depth conversion extension bits are defined in the extension data.

[0164] [Table 2]

[0165] In Table 2, bitDepthExpansionModuleSwitchOnOff specifies bit depth inverse transformation switching information, for example, when bitDepthExpansionModuleSwitchOnOff is equal to 1, it specifies that the bit depth inverse transformation unit in the encoder is enabled, and when bitDepthExpansionModuleSwitchOnOff is equal to 0, it specifies that the bit depth inverse transformation unit is disabled.

[0166] The bitDepthDownScaleMethod specifies the method used when performing bit depth compression processing on a picture in the encoding conversion process, and may indicate the bit depth compression method using, for example, a 3-bit unsigned integer.

[0167] For example, Table 3 shows the meaning of the index for bitDepthDownScaleMethod, and shows some compression methods, and it should be understood that the above compression methods are merely exemplary, and other compression methods may be defined. For example, if the index of bitDepthDownScaleMethod is 001, it indicates that the LTM compression method is used in the encoder. For further example, if the index of bitDepthDownScaleMethod is 000, it indicates that no bit depth compression method is used in the encoder.

[0168] [Table 3]

[0169] For bit depth compression, bit_convertion_origin and bit_convertion_taiget can be further defined to indicate the initial bit depth before bit depth compression and the bit depth after compression, respectively. The bit depth definitions may refer to 3-bit unsigned integers as shown in Table 4 below. For example, bit_convertion_origin equal to 001 indicates an initial bit depth of 10 bits, and bit_convertion_taiget equal to 000 indicates a bit depth after compression of 8 bits.

[0170] [Table 4]

[0171] Next, bitDepthExpansionMethod in Table 2 specifies the method used when performing bit depth expansion processing on a picture in the encoding conversion process, and may indicate the bit depth expansion method using, for example, a 3-bit unsigned integer.

[0172] For example, Table 5 shows the meaning of the index for bitDepthExpansionMethod, and shows some expansion methods, and it is understood that the above expansion methods are merely exemplary, and other expansion methods may be defined. For example, if the index of bitDepthExpansionMethod is 001, it indicates that the zero padding (ZP) expansion method is used in the encoder. For further example, if the index of bitDepthDownScaleMethod is 000, it indicates that no bit depth expansion method is used in the encoder. Also, Table 5 shows "XXX" to define other expansion methods that may be used.

[0173] [Table 5]

[0174] For bit depth extension processing, bit_convertion_input and bit_convertion_output can be further defined to indicate the input bit depth before bit depth extension processing and the output bit depth after extension processing, respectively. The indexes of bit_convertion_input and bit_convertion_output may refer to Table 4 above.

[0175] Next, bitDepthExpansionEffect in Table 2 is verification control information that specifies whether or not to perform effect verification. For example, when bitDepthExpansionEffect is equal to 1, it may be specified that the effect verification process is to be performed, and when bitDepthExpansionEffect is equal to 0, it may be specified that the effect verification process is not to be performed.

[0176] Incidentally, in Table 2, expansion_eval_method specifies the effect verification method, and as an example, Table 6 below shows the meaning of the index for expansion_eval_method. As will be understood, the verification method shown in Table 6 is merely exemplary, and other methods may be defined. For example, when the index of expansion_eval_method is 000, it indicates that the verification method of PSNR is used in the encoder. Furthermore, for example, when the index of expansion_eval_method is 001, it indicates that the picture structural similarity algorithm (Structural Similarity, abbreviated as SSIM) is used in the encoder. In addition, in Table 6, "XXX" is further shown to define other verification methods that may be used. Next, expansion_eval_effect in Table 2 specifies the result information of the effect verification.

[0177] [Table 6]

[0178] FIG. 7 is a schematic diagram showing an example application according to some embodiments of the present disclosure, in which an example application process for video processing by a codec method according to some embodiments of the present disclosure is shown, and the use of syntax elements defined in the above tables is also shown.

[0179] As shown in Fig. 7, first, an encoder 200 or the like located on the encoding side receives an input video, and the image sequence of the input video has an initial bit depth of 10 bits. Next, the encoder 200 compresses the bit depth of the input video by a bit depth compression method (LTM) so as to compress the bit depth to 8 bits, and encodes the compressed video to form a bit stream. Furthermore, during the decoding process in the encoder 200, a bit depth extension process is further enabled so as to restore the compressed video to the initial 10 bits by a ZP extension method. The effect of the restored video data and the initial input video is verified by PSNR to determine the degree of image distortion.

[0180] According to some embodiments of the present disclosure, in order to transmit information about the bit conversion process in the above-mentioned encoding conversion process in the bitstream, bit depth conversion extension bits are limited in the generated bitstream, and the syntax elements and their indexes included in the above-mentioned information are shown in FIG. 7.

[0181] The decoder 300 or the like located on the decoding side can receive the bitstream including the bit depth conversion extension bit and analyze the relevant information therefrom, thereby making it possible to perform corresponding bit depth inverse conversion on the decoded video by referring to the information indicated by the decoder 300, for example, performing bit depth extension on the decoded video according to the indicated extension method ZP to obtain an output video having a bit depth of 10 bits, and displaying the extended video. For example, the decoder 300 can receive control information indicating whether to perform bit depth inverse conversion processing from the application layer, for example, the control information is generated based on the decoder's computing capability, the decoder's power consumption information, the display's bit depth display requirements, etc. In this way, the decoder 300 can realize determining whether to perform bit depth conversion processing on the decoded video according to the current decoding requirements.

[0182] FIG. 7 shows a case where the decoder 300 determines that the indicated bit depth extension method ZP is available, and the decoder 300 can directly extend the bit depth of the decoded video according to the indicated extension method.

[0183] 8 is a schematic diagram illustrating another exemplary application according to some embodiments of the present disclosure, in which the decoder 300 determines that the indicated bit depth extension method ZP is not available. As can be understood, the above process may be applied when the bit depth extension method (e.g., BR extension method) set in the decoder 300 does not match the indicated bit depth extension method (e.g., ZP extension method). In such a case, the decoder 300 can obtain relevant data about the indicated ZP extension method from a cloud, for example, via a network, so that the decoder 300 can perform the indicated ZP extension method on the decoded picture.

[0184] By using the encoding method and decoding method for video data according to the embodiments of the present disclosure, it is possible to perform a bit-depth conversion process on a picture before encoding the picture, and then encode the generated converted picture to form encoding information for the picture, and further generate bit-depth conversion information to transmit together with the encoding information in a bitstream, thereby enabling the decoding side to correspondingly process the bit-depth of the decoded picture according to the bit-depth conversion information analyzed in the bitstream to meet the display needs of a display device, etc., and using the bit-depth conversion information transmitted in the bitstream contributes to a more flexible realization of the bit-depth conversion process and can realize information communication regarding bit-depth conversion between the decoding side and the encoding side.

[0185] According to yet another aspect of the present disclosure, there is further provided a computing device for performing the encoding method or the decoding method according to some embodiments of the present disclosure.

[0186] 9 is a schematic block diagram illustrating a computing device according to some embodiments of the present disclosure. As shown in FIG. 9, a computing device 2000 may include a processor 2010 and a memory 2020. According to embodiments of the present disclosure, computer readable code may be stored in the memory 2020, which, when executed by the processor 2010, may perform the encoding or decoding methods described above.

[0187] The processor 2010 can perform various operations and processes based on a program stored in the memory 2020. Specifically, the processor 2010 can be an integrated circuit having a signal processing capability. The processor can be a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component. The various methods, steps, and logic blocks disclosed in the embodiments of the present invention can be realized or executed. The general-purpose processor can be a microprocessor, or the processor can be any conventional processor, such as an X86 architecture or an ARM architecture.

[0188] The memory 2020 stores computer executable instruction codes which, when executed by the processor 2010, implement the encoding or decoding methods according to embodiments of the present disclosure. The memory 2020 may be volatile or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory may be read only memory (ROM), programmable read only memory (PROM), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM) or flash memory. The volatile memory may be random access memory (RAM) used as external cache memory. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), sync link dynamic random access memory (SLDRAM) and direct Rambus random access memory (DR RAM). Note that memory as described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0189] For the specific implementation process of the steps performed by the computing device 2000, reference may be made to the above steps implemented by the encoder 200 and the decoder 300 described with reference to FIGS. 2 and 3, and detailed description thereof will be omitted here.

[0190] As an example, a computing device for performing the encoding method or the decoding method according to the embodiments of the present disclosure may be implemented in the form of an architecture shown in FIG. 10. As shown in FIG. 10, the computing device 3000 may include a bus 3010, one or more CPUs 3020, a read-only memory (ROM) 3030, a random access memory (RAM) 3040, a communication port 3050 connected to a network, an input / output component 3060, a hard disk 3070, etc. The storage device in the computing device 3000, such as the ROM 3030 or the hard disk 3070, may store various data or files used for processing and / or communication in the encoding method or the decoding method according to the present disclosure and program instructions executed by the CPU. The computing device 3000 may further include a user interface 3080. Of course, the architecture shown in FIG. 10 is merely exemplary, and one or more components in the computing device shown in FIG. 10 may be omitted according to actual needs when implementing different devices. For example, the computing device 3000 may be implemented as a computer having an integrated circuit design simulation application program installed therein, and is not limited thereto. For example, the computing device 3000 may be implemented as a codec as shown in FIG. 2 or FIG. 3 to implement the encoding method or decoding method according to the present disclosure.

[0191] According to yet another aspect of the present disclosure, there is further provided a non-transitory computer readable storage medium. Figure 11 is a schematic diagram illustrating a non-transitory computer readable storage medium according to an embodiment of the present disclosure.

[0192] As shown in FIG. 11, instructions are stored in a computer-readable storage medium 4020, and the instructions are, for example, computer-readable instructions 4010. When the computer-readable instructions 4010 are executed by a processor, the encoding method or the decoding method described with reference to the above figures can be performed. The computer-readable storage medium includes, but is not limited to, a volatile memory and / or a non-volatile memory. The volatile memory may include, for example, a random access memory (RAM) and / or a cache memory (cache), etc. The non-volatile memory may include, for example, a read-only memory (ROM), a hard disk, a flash memory, etc. For example, the computer-readable storage medium 4020 may be connected to a computing device such as a computer, and then, when the computing device executes the computer-readable instructions 4010 stored in the computer-readable storage medium 4020, the encoding method or the decoding method described above can be performed.

[0193] According to yet another aspect of the present disclosure, there is further provided a computer program product or computer program, the computer program product or computer program including computer readable instructions stored in a computer readable storage medium, the computer readable instructions being readable by a processor of a computing device from the computer readable storage medium, and the processor executing the computer readable instructions causes the computing device to perform the encoding method or the decoding method described in each of the above embodiments.

[0194] By using the encoding method, decoding method, computing device, and medium for video data according to the embodiments of the present disclosure, it is possible to perform a bit-depth conversion process on a picture before encoding the picture, and then encode the generated converted picture to form encoding information for the picture, and further generate bit-depth conversion information to transmit together with the encoding information in a bitstream, thereby enabling the decoding side to correspondingly process the bit-depth of the decoded picture based on the bit-depth conversion information analyzed in the bitstream to meet the display needs of a display device, etc., and the use of the bit-depth conversion information to form a bitstream contributes to a more flexible realization of the bit-depth conversion process and can realize information communication regarding bit-depth conversion between the decoding side and the encoding side.

[0195] As will be understood by those skilled in the art, various modifications and improvements can be made to the contents disclosed in the present disclosure. For example, the various devices or components described above may be realized by hardware, software, firmware, or a combination of some or all of them.

[0196] Also, although the disclosure has made various references to several units in systems according to embodiments of the disclosure, any number of different units may be used and implemented in the client and / or server, the units are for illustrative purposes only, and different aspects of the systems and methods may use different units.

[0197] In this disclosure, flowcharts are used to explain steps of the method according to the embodiments of the present disclosure. It is understood that the steps before or after them are not necessarily performed in exact order. On the contrary, various steps can be processed in reverse order or simultaneously. At the same time, other operations can be added to these processes.

[0198] As will be understood by those skilled in the art, all or part of the steps in the above method can be instructed to be completed by relevant hardware by a computer program, and the program may be stored in a computer-readable storage medium, such as a read-only memory, a magnetic disk, or an optical disk. Alternatively, all or part of the steps in the above embodiments may be realized by one or more integrated circuits. Correspondingly, each module / unit in the above embodiments may be realized in the form of hardware, or in the form of a software functional module. The present disclosure is not limited to any particular form of combination of hardware and software.

[0199] Unless otherwise defined, all terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. It will be further understood that terms defined in common dictionaries should be interpreted as having a meaning consistent with their meaning in the context of their related art, but should not be interpreted in an idealized or overly formal sense unless expressly defined herein.

[0200] The above is illustrative of the present disclosure, but should not be considered as limiting thereof. Although several exemplary embodiments of the present disclosure have been described, it is easily understood by those skilled in the art that various modifications can be made to the exemplary embodiments without departing from the novel teachings and advantages of the present disclosure. Accordingly, all such modifications are intended to be included within the scope of the present disclosure, which is limited to the scope of the claims. As will be understood, the above is illustrative of the present disclosure, but should not be considered as limited to the specific embodiments disclosed, and modifications of the disclosed embodiments and other embodiments are intended to be included within the scope of the appended claims. The present disclosure is limited by the claims and their equivalents. [Explanation of symbols]

[0201] 102 Source Device 104 Video Sources 106 Memory 108 Output Interface 110 Computer-readable medium 112 Storage Devices 114 File Server 116 Destination Device 118 Display Devices 120 Memory 122 Input Interface 200 Video Encoder 300 Video Decoder 1000 Systems 2000 computing equipment 2010 Processors 2020 Memory 3000 computing equipment 3010 Bus 3020 CPU 3030 Read-Only Memory (ROM) 3040 Random Access Memory (RAM) 3050 communication port 3060 Input / Output Components 3070 Hard Disk 3080 User Interface 4010 Computer Readable Instructions 4020 Computer-readable storage medium

Claims

1. A method for encoding video data, comprising: Performing bit-depth conversion processing on a picture to generate a converted picture and generate bit-depth conversion information, wherein the bit-depth conversion information indicates information related to the bit-depth conversion processing on the picture, and the picture is a picture of one frame in the video data; Encoding the converted picture to generate encoding information corresponding to the converted picture, wherein the bit-depth conversion information and the encoding information are for forming a bitstream.

2. The bit-depth conversion processing is bit-depth compression processing, and performing bit-depth conversion processing on a picture includes: Performing bit-depth compression on the picture by a bit-depth compression method to reduce the bit-depth of the picture; The method according to claim 1, wherein the bit-depth conversion information includes bit-depth compression control information, and the bit-depth compression control information indicates information related to the bit-depth compression processing.

3. The bit-depth compression control information includes: The method according to claim 2, including at least one of information indicating the bit-depth compression method, information indicating an initial bit-depth before the bit-depth compression processing, and information indicating a compressed bit-depth after the bit-depth compression processing.

4. Decoding the encoding information to generate a decoded picture; Performing bit-depth inverse conversion processing on the decoded picture to generate an inverse-converted picture and generate bit-depth inverse conversion information, wherein the bit-depth inverse conversion processing and the bit-depth conversion processing are inverse operations of each other, and the bit-depth inverse conversion information indicates information related to the bit-depth inverse conversion processing performed on the decoded picture. The method according to claim 1.

5. Further including performing effect verification by comparing the inverse-converted picture and the picture to generate bit-depth verification effect information; The bit-depth verification effect information includes: The method according to claim 4, including at least one of verification control information indicating whether to perform the effect verification, information indicating an effect verification method for performing the effect verification, and information indicating a verification result of the effect verification method.

6. The method according to claim 4, wherein the bit-depth inverse conversion information includes bit-depth inverse conversion control information indicating information related to the bit-depth inverse conversion process.

7. The method according to claim 6, wherein the bit-depth inverse conversion control information includes bit-depth inverse conversion switching information and indicates whether to perform the bit-depth inverse conversion process on the decoded picture.

8. Performing the bit-depth inverse conversion process on the decoded picture includes performing the bit-depth inverse conversion process in response to the display of the bit-depth inverse conversion switching information in order to change the bit depth of the decoded picture in a direction opposite to the bit-depth conversion, and performing a bit-depth inverse conversion on the decoded picture by a bit-depth inverse conversion method, according to the method of claim 7.

9. The bit-depth inverse conversion control information further includes at least one of information indicating the bit-depth inverse conversion method, information indicating the input bit depth before the bit-depth inverse conversion process, and information indicating the output bit depth after the bit-depth inverse conversion process, according to the method of claim 8.

10. The method according to claim 4, wherein the bit-depth conversion process is a bit-depth compression process and the bit-depth inverse conversion process is a bit-depth expansion process.

11. The bit stream includes bit-depth conversion extension bits and the bit-depth conversion extension bits are for transmitting the bit-depth conversion information in the bit stream, according to the method of claim 1.

12. A decoding method for video data, comprising: analyzing bit-depth conversion information and encoded information corresponding to a picture from a received bit stream, the bit-depth conversion information indicating information related to a bit-depth conversion process performed in an encoding process of the picture, and the picture being a picture of one frame in the video data; and performing a decoding conversion process based on the bit-depth conversion information and the encoded information to generate a display picture.

13. further includes analyzing bit-depth inverse conversion information corresponding to the picture from the bit stream wherein the bit-depth inverse conversion information indicates information related to a bit-depth inverse conversion process performed in an encoding process of the picture, according to the method of claim 12.

14. Performing the decoding conversion process based on the bit-depth conversion information and the encoded information decoding the encoded information to generate a decoded picture corresponding to the picture; performing bit-depth inverse conversion processing on the decoded picture with reference to the bit-depth inverse conversion information to generate the display picture, the method according to claim 13.

15. The bit-depth conversion processing is bit-depth compression processing, the bit-depth inverse conversion processing is bit-depth expansion processing, the bit-depth inverse conversion information includes bit-depth expansion control information, the bit-depth expansion control information includes information indicating a bit-depth expansion method, and the method includes: determining whether the bit-depth expansion method is available; when it is determined that the bit-depth expansion method is available, expanding the bit-depth according to the bit-depth expansion method; when it is determined that the bit-depth expansion method is not available, receiving the bit-depth expansion method to perform bit-depth expansion on the decoded picture according to the bit-depth expansion method, the method according to claim 14.

16. Before performing bit-depth inverse conversion processing on the decoded picture, the method includes: receiving control information indicating whether to perform the bit-depth inverse conversion processing, and determining whether to perform the bit-depth inverse conversion processing on the decoded picture with reference to the control information, the control information being generated based on at least one of the computing power of the decoder, the power consumption information of the decoder, and the bit-depth display requirement of the display, or analyzing bit-depth verification effect information corresponding to the picture from the bitstream, comparing the decoded picture with the bit-depth expansion effect information, and further determining whether to perform the bit-depth inverse conversion processing on the decoded picture with reference to the comparison result, the method according to claim 14.

17. The bit-depth conversion processing is bit-depth compression processing, the bit-depth conversion information includes bit-depth compression control information related to the bit-depth compression processing, performing decoding conversion processing based on the bit-depth conversion information and the encoded information includes performing decoding conversion processing on the encoded information with reference to the bit-depth compression control information, the method according to claim 12.

18. Analyzing the bit-depth conversion information from the received bitstream includes The method according to claim 12, comprising analyzing the bit-depth conversion information from bit-depth conversion extension bits in the bitstream.

19. A device for video processing, comprising: a processor; and a non-transitory memory having computer-readable code, wherein when the computer-readable code is executed by the processor, the encoding method according to any one of claims 1 to 11 is executed, or the decoding method according to any one of claims 12 to 18 is executed, for video processing.

20. A computer-readable storage medium storing instructions, wherein when the instructions are executed by a processor, the processor is caused to execute the encoding method according to any one of claims 1 to 11, or the decoding method according to any one of claims 12 to 18.