Hybrid digital-analog modulation for video data transmission

Hybrid digital-analog modulation for video encoding and decoding addresses the resource-intensive nature of existing standards by mapping coefficients to unique amplitude values, achieving efficient compression and reduced power consumption for high-quality video transmission.

JP7842766B2Active Publication Date: 2026-04-08QUALCOMM INC
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-11-01
Publication Date
2026-04-08

AI Technical Summary

Technical Problem

Existing video coding standards, such as H.264/AVC and H.265/HEVC, are resource-intensive and consume significant power, which is a challenge for mobile devices with limited power supplies.

Method used

Implementing hybrid digital-analog modulation for video encoding and decoding, where coefficients are mapped to unique amplitude values in n-dimensional space, allowing for efficient compression and reduced power consumption.

Benefits of technology

This approach reduces power and resource consumption while maintaining high-quality video transmission, offering a more efficient alternative to traditional digital video codecs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007842766000001
    Figure 0007842766000001
  • Figure 0007842766000002
    Figure 0007842766000002
  • Figure 0007842766000003
    Figure 0007842766000003
Patent Text Reader

Abstract

A method for encoding video data comprises generating coefficients based on the video data; generating coefficient vectors, where each of the coefficient vectors includes n of the coefficients; determining, for each of the coefficient vectors, an amplitude value for the coefficient vector based on a mapping pattern; and modulating an analog signal based on the amplitude value for the coefficient vector, where for each respective allowed coefficient vector of a plurality of allowed coefficient vectors, the mapping pattern maps the respective allowed coefficient vector to a respective amplitude value of a plurality of amplitude values, the respective amplitude value being adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​that is adjacent to the respective amplitude value on a monotonic number line of the amplitude values.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001]

[0001] This application claims priority to U.S. Patent Application No. 17 / 137,068, filed on 29 December 2020, which is incorporated herein by reference in its entirety.

[0002]

[0002] This disclosure relates to video encoding and decoding. [Background technology]

[0003]

[0003] The ability to transmit and receive high-quality video data is one of the most promising use cases for the deployment of advanced wireless networks, such as fifth-generation (5G) wireless networks. For example, 5G wireless networks and beyond can enable the streaming of high-quality video, such as live events and remote conferences. In some cases, a user device may use a wireless system to encode video data and then transmit the encoded video data to a wireless base station. The wireless base station may then route the encoded video data to a destination device through a network such as the Internet.

[0004]

[0004] Even with the high bandwidth capabilities of advanced wireless networks, devices may need to encode video data before transmitting it. However, modern video coding standards can involve a considerable amount of power consumption, which may be limited within the power supply of mobile devices such as smartphones and tablets. [Overview of the project]

[0005]

[0005] This disclosure describes techniques for encoding and decoding video data. As described herein, a video encoder may perform hybrid digital-analog modulation for transmitting video data. When performing hybrid digital-analog modulation for transmitting video data, the video encoder may transmit digital data and analog signals. A video decoder uses both digital data and analog signals to reconstruct the video data. The use of hybrid digital-analog modulation may provide compression of video data while potentially using less power or other resources than a digital video codec.

[0006]

[0006] In one example, the present disclosure describes a method for encoding video data, which comprises generating coefficients based on video data, generating coefficient vectors, each of which coefficient vectors includes n of the coefficients, determining an amplitude value for each coefficient vector based on a mapping pattern, wherein for each of a plurality of allowed coefficient vectors, the mapping pattern maps each allowed coefficient vector to each of a plurality of amplitude values, each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values, modulating an analog signal based on the amplitude value for the coefficient vector, and outputting an analog signal.

[0007]

[0007] In another example, the present disclosure describes a method for decoding video data, which comprises determining amplitude values ​​for a plurality of coefficient vectors based on an analog signal; determining the coefficients in the coefficient vectors for each of the coefficient vectors based on the amplitude values ​​for the coefficient vectors and a mapping pattern, wherein for each of the plurality of tolerance coefficient vectors, the mapping pattern maps each tolerance coefficient vector to each of the amplitude values ​​of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values, and generating video data based on the coefficients in the coefficient vectors.

[0008]

[0008] In another example, the present disclosure describes a device for encoding video data, comprising one or more processors implemented in a circuit, and a modem configured such that the one or more processors generate coefficients based on video data, generate coefficient vectors, each of which coefficient vectors comprises n of the coefficients, and for each of the coefficient vectors, determine an amplitude value relating to the coefficient vector based on a mapping pattern, and for each of the plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value in a monotonic number line of amplitude values, and modulates an analog signal based on the amplitude value relating to the coefficient vector.

[0009]

[0009] In another example, the present disclosure describes a device for decoding video data, comprising a modem configured to receive an analog signal and one or more processors implemented in the circuit, the one or more processors being configured to determine amplitude values ​​for a plurality of coefficient vectors based on the analog signal, and for each of the coefficient vectors, determine the coefficients in the coefficient vectors based on the amplitude values ​​for the coefficient vectors and a mapping pattern, wherein for each of the plurality of tolerance coefficient vectors, the mapping pattern maps each tolerance coefficient vector to each of the amplitude values ​​of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values, and generates video data based on the coefficients in the coefficient vectors.

[0010]

[0010] In another example, the present disclosure describes a device for encoding video data, which includes means for generating coefficients based on video data; means for generating coefficient vectors, wherein each coefficient vector comprises n of the coefficients; means for determining an amplitude value relating to each coefficient vector based on a mapping pattern; wherein, for each of a plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each of a plurality of amplitude values, wherein each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value in a monotonic number line of amplitude values; and means for modulating an analog signal based on an amplitude value relating to a coefficient vector.

[0011]

[0011] In another example, the present disclosure describes a device for decoding video data, which includes means for determining amplitude values ​​for a plurality of coefficient vectors based on an analog signal; means for determining a coefficient in a coefficient vector for each of the coefficient vectors based on an amplitude value for the coefficient vector and a mapping pattern, wherein for each of the plurality of tolerance coefficient vectors, the mapping pattern maps each tolerance coefficient vector to each amplitude value of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values.

[0012]

[0012] In another example, the present disclosure describes a computer-readable data storage medium that stores instructions causing one or more processors, when executed, to generate coefficients based on video data; generate coefficient vectors, each of which coefficient vectors includes n of the coefficients; determine amplitude values ​​relating to the coefficient vectors based on a mapping pattern for each of the coefficient vectors, each of which, for each of a plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each of a plurality of amplitude values, and modulates an analog signal based on the amplitude values ​​relating to the coefficient vectors, each of which is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values.

[0013]

[0013] In another example, when executed, the present disclosure causes one or more processors to determine amplitude values for a plurality of coefficient vectors based on an analog signal, and for each of the coefficient vectors, determine coefficients in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern, where for each respective allowable coefficient vector of the plurality of allowable coefficient vectors, the mapping pattern maps each respective allowable coefficient vector to each respective amplitude value of a plurality of amplitude values, and each respective amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values adjacent to each respective amplitude value in a monotonic number line of the amplitude values, and generate video data based on coefficients in the coefficient vector. The present disclosure describes a computer-readable data storage medium storing instructions for causing such actions.

[0014]

[0014] In another example, the present disclosure describes a method of encoding video data. The method includes generating coefficients based on digital sample values of the video data, determining the spectral efficiency of a channel over which an analog signal is to be sent, determining a value n based on the spectral efficiency of the channel, generating coefficient vectors, where each of the coefficient vectors includes n of the coefficients, and for each of the coefficient vectors, determining an amplitude value for the coefficient vector based on a mapping pattern, where for each respective allowable coefficient vector of the plurality of allowable coefficient vectors, the mapping pattern maps each respective allowable coefficient vector to each respective amplitude value of a plurality of amplitude values, and each respective amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values adjacent to each respective amplitude value in a monotonic number line of the amplitude values, modulating an analog signal based on the amplitude value for the coefficient vector, and outputting the analog signal over the channel.

[0015]

[0015] In another example, the present disclosure describes a method for decoding video data, which comprises receiving an analog signal transmitted through a channel, demodulating the analog signal to determine amplitude values ​​with respect to a plurality of coefficient vectors, determining a value n, wherein the value n is based on the spectral efficiency of the channel, determining the coefficients in the coefficient vectors for each of the coefficient vectors based on the amplitude values ​​with respect to the coefficient vectors and a mapping pattern, wherein for each of the plurality of tolerance coefficient vectors, the mapping pattern maps each tolerance coefficient vector to each amplitude value of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each amplitude value in a monotonic number line of amplitude values, and generating video data based on the coefficients in the coefficient vectors.

[0016]

[0016] In another example, the present disclosure describes a device for encoding video data, the device comprising: a memory configured to store video data; one or more processors implemented in the circuit; and a modem configured to output an analog signal on a channel, wherein the one or more processors are configured to generate coefficients based on digital sample values ​​of video data; determine the spectral efficiency of a channel to which an analog signal should be output; determine a value n based on the spectral efficiency of the channel; generate a coefficient vector, wherein each of the coefficient vectors comprises n of the coefficients; for each of the coefficient vectors, determine an amplitude value relating to the coefficient vector based on a mapping pattern, wherein for each of the plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each of a plurality of amplitude values, and each amplitude value modulates an analog signal based on an amplitude value relating to a coefficient vector, wherein in n-dimensional space, each amplitude value is adjacent to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value in a monotonic number line of amplitude values.

[0017]

[0017] In another example, the present disclosure describes a device for decoding video data, the device comprising a modem configured to receive an analog signal transmitted via a channel and one or more processors implemented in a circuit, the one or more processors demodulating the analog signal to determine amplitude values for a plurality of coefficient vectors, determining a value n, where the value n is based on the spectral efficiency of the channel, for each of the coefficient vectors, determining the coefficients in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern, where for each of the plurality of allowable coefficient vectors, the mapping pattern maps each of the allowable coefficient vectors to a respective amplitude value of a plurality of amplitude values, and each of the respective amplitude values is adjacent in n-dimensional space to at least one other amplitude value of a plurality of amplitude values adjacent to the respective amplitude value in a monotonic number line of amplitude values, and generating video data based on the coefficients in the coefficient vector.

[0018]

[0018] In another example, the present disclosure describes a device for encoding video data, which includes means for generating coefficients based on digital sample values ​​of video data; means for determining the spectral efficiency of a channel to which an analog signal should be output; means for determining a value n based on the spectral efficiency of the channel; means for generating coefficient vectors, wherein each coefficient vector comprises n of the coefficients; for each coefficient vector, means for determining an amplitude value relating to the coefficient vector based on a mapping pattern, wherein for each of a plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each amplitude value of a plurality of amplitude values, wherein each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value in a monotonic number line of amplitude values; and means for outputting an analog signal on a channel.

[0019]

[0019] In another example, the present disclosure describes a device for decoding video data, the device comprising means for receiving an analog signal transmitted through a channel, means for demodulating the analog signal to determine amplitude values ​​relating to a plurality of coefficient vectors, means for determining a value n, wherein the value n is based on the spectral efficiency of the channel, means for determining a coefficient in a coefficient vector for each of the coefficient vectors based on an amplitude value relating to the coefficient vector and a mapping pattern, wherein for each of the plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each amplitude value of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each amplitude value in a monotonic number line of amplitude values.

[0020]

[0020] In another example, the present disclosure describes a computer-readable data storage medium storing instructions that, when executed, cause one or more processors to generate coefficients based on digital sample values ​​of video data, determine the spectral efficiency of a channel to output an analog signal, determine a value n based on the spectral efficiency of the channel, generate a coefficient vector, wherein each of the coefficient vectors includes n of the coefficients, and for each of the coefficient vectors, determine an amplitude value relating to the coefficient vector based on a mapping pattern, wherein for each of a plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value in a monotonic number line of amplitude values, modulate an analog signal based on the amplitude value relating to the coefficient vector, and output an analog signal on the channel.

[0021]

[0021] In another example, the present disclosure describes a computer-readable data storage medium storing instructions that, when executed, cause one or more processors to receive an analog signal transmitted through a channel, demodulate the analog signal to determine amplitude values ​​with respect to a plurality of coefficient vectors, determine a value n, wherein the value n is based on the spectral efficiency of the channel, determine the coefficients in the coefficient vectors for each of the coefficient vectors based on the amplitude values ​​with respect to the coefficient vectors and a mapping pattern, wherein for each of the plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each of the amplitude values ​​of a plurality of amplitude values, and each amplitude value generates video data based on the coefficients in the coefficient vectors, where each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values.

[0022]

[0022] In another example, the Disclosure describes a method for encoding video data, which comprises generating prediction data of video data; generating residual data based on the prediction data and digital sample values ​​of the video data; generating coefficients based on the residual data; performing an interlacing process to generate an interlaced amplitude value, wherein the interlacing process generates a digital value based on the prediction data, interlacing two or more bits of the coefficients to generate an interlaced amplitude value; and outputting one or more analog signals modulated based on the interlaced amplitude value and the digital value.

[0023]

[0023] In another example, the present disclosure describes a method for decoding video data, which comprises determining an interlaced amplitude value based on an analog signal; performing a deinterlacing process to generate two or more coefficients, wherein bits of two or more coefficients are interlaced in the interlaced amplitude value; generating residual data based on the two or more coefficients; obtaining a digital value; generating prediction data based on the digital value; and reconstructing the video data based on the prediction data and the residual data.

[0024]

[0024] In another example, the present disclosure describes a device for encoding video data, the device comprising: a memory configured to store video data; one or more processors implemented in the circuit; one or more processors configured to generate prediction data for video data; generate residual data based on the prediction data and digital sample values ​​of video data; generate coefficients based on the residual data; and perform an interlacing process to generate interlaced amplitude values, wherein the interlacing process generates digital values ​​based on the prediction data, interlacing two or more bits of the coefficients to generate interlaced amplitude values; and a modem configured to output one or more analog signals modulated based on the interlaced amplitude values ​​and digital values.

[0025]

[0025] In another example, the present disclosure describes a device for decoding video data, comprising a modem configured to acquire analog signals and digital values, and one or more processors implemented in the circuit, the one or more processors configured to determine interlaced amplitude values ​​based on the analog signals, perform a deinterlacing process to generate two or more coefficients, thereby generating residual data based on the two or more coefficients, the bits of the two or more coefficients being interlaced in the interlaced amplitude values, acquire digital values, generate prediction data based on the digital values, and reconstruct video data based on the prediction data and residual data.

[0026]

[0026] In another example, the present disclosure describes a device for encoding video data, which includes means for generating prediction data of video data; means for generating residual data based on the prediction data and digital sample values ​​of video data; means for generating coefficients based on the residual data; means for performing an interlacing process to generate interlaced amplitude values, wherein the interlacing process interlaces two or more bits of the coefficients to generate interlaced amplitude values; means for modulating an analog signal based on the interlaced amplitude values; means for generating digital values ​​based on the prediction data; and means for outputting the analog signal and the digital values ​​based on the prediction blocks.

[0027]

[0027] In another example, the present disclosure describes a device for decoding video data, which includes means for determining an interlaced amplitude value based on an analog signal; means for performing a deinterlacing process to generate two or more coefficients, wherein bits of two or more coefficients are interlaced in the interlaced amplitude value; means for obtaining a digital value; means for generating prediction data based on the digital value; and means for reconstructing video data based on the prediction data and the residual data.

[0028]

[0028] In another example, the present disclosure describes a computer-readable data storage medium that stores instructions causing one or more processors, when executed, to generate prediction data for video data; generate residual data based on the prediction data and digital sample values ​​of the video data; generate coefficients based on the residual data; perform an interlacing process to generate interlaced amplitude values, wherein the interlacing process interlaces two or more bits of the coefficients to generate interlaced amplitude values; modulate an analog signal based on the interlaced amplitude values; generate digital values ​​based on the prediction data; and output the analog signal and digital values ​​based on the prediction blocks.

[0029]

[0029] In another example, the present disclosure describes a computer-readable data storage medium that stores instructions causing one or more processors, when executed, to determine an interlaced amplitude value based on an analog signal; to perform a deinterlacing process to generate two or more coefficients, thereby generating residual data based on two or more coefficients, wherein bits of two or more coefficients are interlaced in the interlaced amplitude value; to obtain a digital value; to generate prediction data based on the digital value; and to reconstruct video data based on the prediction data and the residual data.

[0030]

[0030] Details of one or more examples are described in the accompanying drawings and the following description. Other features, purposes, and advantages will become apparent from the description, drawings, and claims. [Brief explanation of the drawing]

[0031] [Figure 1]

[0031] A block diagram showing an exemplary coding and decoding system capable of performing the techniques of the present disclosure. [Figure 2]

[0032] A block diagram illustrating an exemplary video encoder using one or more techniques of the present disclosure. [Figure 3]

[0033] A block diagram illustrating an exemplary video decoder using one or more techniques of the present disclosure. [Figure 4]

[0034] A block diagram illustrating an exemplary modem using one or more techniques of the present disclosure. [Figure 5]

[0035] An exemplary constellation diagram for analog modulation in the IQ domain. [Figure 6]

[0036] A conceptual diagram showing received errors during analog modulation transmission. [Figure 7]

[0037] A conceptual diagram illustrating an example of data code coding using one or more techniques of this disclosure. [Figure 8]

[0038] A conceptual diagram illustrating an example of minimum coding using one or more techniques of this disclosure. [Figure 9]

[0039] A conceptual diagram illustrating exemplary mapping patterns using one or more techniques of the present disclosure. [Figure 10]

[0040] A conceptual diagram showing amplitude values ​​corresponding to the mapping pattern in Figure 9 using one or more techniques of the present disclosure. [Figure 11]

[0041] A conceptual diagram illustrating another exemplary mapping pattern using one or more techniques of the present disclosure. [Figure 12]

[0042] A conceptual diagram showing amplitude values ​​corresponding to the mapping pattern in Figure 11 using one or more techniques of the present disclosure. [Figure 13]

[0043] A conceptual diagram illustrating another exemplary mapping pattern using one or more techniques of the present disclosure. [Figure 14]

[0044] A conceptual diagram showing amplitude values ​​corresponding to the mapping pattern in Figure 13 using one or more techniques of the present disclosure. [Figure 15]

[0045] A conceptual diagram illustrating an exemplary three-dimensional mapping pattern using one or more techniques of the present disclosure. [Figure 16]

[0046] A flowchart illustrating an exemplary method for encoding video data using one or more techniques of the present disclosure. [Figure 17]

[0047] A flowchart illustrating an exemplary method for decoding video data using one or more techniques of the present disclosure. [Figure 18]

[0048] A conceptual diagram illustrating a first example of interlacing using one or more techniques of the present disclosure. [Figure 19]

[0049] A conceptual diagram illustrating a second example of interlacing using one or more techniques of the present disclosure. [Figure 20]

[0050] A block diagram illustrating the impact of noise on the coding process. [Figure 21]

[0051] A conceptual diagram showing the gap range using one or more techniques of this disclosure. [Figure 22]

[0052] A flowchart illustrating an exemplary method for encoding video data using one or more techniques of the present disclosure. [Figure 23]

[0053] A flowchart illustrating an exemplary method for decoding video data using one or more techniques of the present disclosure. [Figure 24]

[0054] A block diagram illustrating an exemplary analog compression unit using a variable symbol rate according to one or more techniques of the present disclosure. [Figure 25]

[0055] A flowchart illustrating an exemplary method for encoding video data using one or more techniques of the present disclosure. [Figure 26]

[0056] A flowchart illustrating an exemplary method for decoding video data using one or more techniques of the present disclosure. [Modes for carrying out the invention]

[0032]

[0057] As mentioned above, the ability to transmit and receive high-quality video data is one of the most promising use cases for the deployment of advanced wireless networks, such as fifth-generation (5G) wireless networks. However, the use of state-of-the-art video codecs such as H.264 / Advanced Video Coding and H.265 / High Efficiency Video Coding (HEVC) for encoding video data is resource-intensive and can therefore involve a considerable amount of power consumption. This disclosure describes techniques for encoding video data that may be less resource-intensive.

[0033]

[0058] This disclosure describes a hybrid digital-analog modulation system for coding video data. As described herein, a video encoder may generate coefficients based on video data. In addition, the video encoder may generate coefficient vectors. Each coefficient vector contains n of the coefficients. For each coefficient vector, the video encoder may determine amplitude values ​​with respect to the coefficient vector based on a mapping pattern. The mapping pattern may map each allowable coefficient vector to unique amplitude values ​​adjacent in n-dimensional space, where each unique amplitude value is adjacent to at least one other amplitude value adjacent to a monotonic number line of amplitude values ​​(e.g., a number line of natural numbers, non-negative integers, integer values, etc.). The video encoder may modulate an analog signal based on the amplitude values ​​with respect to the coefficient vectors.

[0034]

[0059] The corresponding video decoder can perform analog amplitude demodulation and determine amplitude values ​​for multiple coefficient vectors based on the analog signal. For each coefficient vector, the video decoder can determine the coefficients in the coefficient vector based on the amplitude values ​​for the coefficient vector and a mapping pattern. The mapping pattern can map each allowable coefficient vector to a unique amplitude value adjacent in n-dimensional space, where each unique amplitude value on a monotonic number line of amplitude values ​​is adjacent to at least one other amplitude value. Each coefficient vector may contain n of the coefficients. The video decoder can generate video data based on the coefficients in the coefficient vector. The use of this mapping pattern can provide compression when signaling data in an analog signal. In addition, using analog amplitude modulation and demodulation can reduce power and resource consumption for video codecs such as H.264 / Advanced Video Coding and H.265 / HEVC.

[0035]

[0060] Figure 1 is a block diagram illustrating an exemplary video coding and decoding system 100 capable of performing the techniques of the present disclosure. The techniques of the present disclosure generally concern coding (encoding and / or decoding) video data. Generally, video data includes any data for processing video. Thus, video data may include raw, unencoded video, encoded video, decoded (e.g., reconstructed) video, and video metadata such as signaling data.

[0036]

[0061] As shown in Figure 1, system 100 includes, in this example, a source device 102 that provides encoded video data to be decoded and displayed by a destination device 116. In particular, the source device 102 provides video data to the destination device 116 via a computer-readable medium 110. The source device 102 and the destination device 116 may comprise any of a wide range of devices, including desktop computers, notebook (i.e., laptop) computers, tablet computers, set-top boxes, modular devices (e.g., telephone handsets such as smartphones, tablet computers, etc.), televisions, cameras, display devices, digital media players, video game consoles, video streaming devices, broadcast receiver devices, set-top boxes, and the like. In some cases, the source device 102 and the destination device 116 may be equipped for wireless communication and are therefore sometimes referred to as wireless communication devices.

[0037]

[0062] In the example shown in Figure 1, the source device 102 includes a video source 104, a memory 106, a video encoder 200, and a modem 108. The destination device 116 includes a modem 122, a video decoder 300, a memory 120, and a display device 118. According to this 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 hybrid digital-to-analog modulation for video transmission. The source device 102 represents an example of a video encoding device, and the destination device 116 represents an example of a video decoding device. In other examples, the source and destination devices may include other components or arrangements. 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 interface with an external display device rather than including an integrated display device.

[0038]

[0063] The system 100 shown in Figure 1 is merely an example. In general, any digital video coding and / or decoding device can perform the techniques of this disclosure relating to hybrid digital-analog modulation for video transmission. Source device 102 and destination device 116 are merely examples of coding devices in which source device 102 generates coded video data for transmission to destination device 116. This disclosure refers to a “coding” device as a device that performs coding (encoding and / or decoding) of data. Thus, video encoder 200 and video decoder 300 represent examples of coding devices, in particular, video encoders and video decoders, respectively. In some examples, source device 102 and destination device 116 may operate substantially symmetrically such that each of source device 102 and destination device 116 includes video coding components and video decoding components. Thus, system 100 may support one-way or two-way video transmission between source device 102 and destination device 116 for, for example, video streaming, video playback, video broadcasting, or video phone.

[0039]

[0064] Generally, the video source 104 represents a source of video data (i.e., raw, unencoded video data) and provides the video encoder 200 with a sequential series of pictures (also called "frames") of video data, which the video encoder 200 then encodes for the pictures. 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 raw video, and / or a video feed interface for receiving video from a video content provider. As a further alternative, the video source 104 may generate computer graphics-based data as source video, or a combination of live video, archived video, and computer-generated video. In each case, the video encoder 200 encodes the captured video data, pre-captured video data, or computer-generated video data. The video encoder 200 may rearrange the pictures from the reception order (sometimes called the "display order") to the coding order for encoding. The source device 102 may then output the encoded video data onto a computer-readable medium 110 via the modem 108 for reception and / or retrieval by the modem 122 of the destination device 116.

[0040]

[0065] Memory 106 of source device 102 and memory 120 of destination device 116 may represent general-purpose memory. In some examples, memories 106 and 120 may store raw video data, for example, raw video from video source 104 and raw decoded video data from video decoder 300. Additional or alternative, memories 106 and 120 may store, for example, software instructions executable by video encoder 200 and video decoder 300, respectively. Although memories 106 and 120 are shown separately from video encoder 200 and video decoder 300 in this example, it should be understood that video encoder 200 and video decoder 300 may also include internal memory for functionally similar or equivalent purposes. Furthermore, memories 106 and 120 may store encoded video data, for example, output from video encoder 200 and input to video decoder 300. In some examples, portions 106 and 120 of memory may be allocated as one or more video buffers to store, for example, raw decoded and / or encoded video data.

[0041]

[0066] The computer-readable medium 110 may represent any type of medium or device capable of transporting encoded video data from the source device 102 to the destination device 116. For example, the computer-readable medium 110 may represent a communication medium that enables the source device 102 to directly transmit encoded video data to the destination device 116 in real time, for example, over a radio frequency network or a computer-based network. According to a communication standard such as a wireless communication protocol, the modem 108 may modulate the transmission signal containing the encoded video data, and the modem 122 may demodulate the received transmission signal. The communication medium may comprise any wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines. For example, the communication medium may comprise one or more 5G wireless communication links. 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 comprise routers, switches, base stations, or any other equipment that may be useful in facilitating communication from the source device 102 to the destination device 116.

[0042]

[0067] In some examples, the computer-readable medium 110 may include a storage device 112. The source device 102 may output encoded data from the modem 108 to the storage device 112. Similarly, the destination device 116 may access encoded data from the storage device 112 via the modem 122. The storage device 112 may include any of a variety of distributed or locally accessed data storage media, such as a hard drive, Blu-ray® disc, DVD, CD-ROM, flash memory, volatile or non-volatile memory, or any other suitable digital storage medium for storing encoded video data.

[0043]

[0068] In some examples, the computer-readable medium 110 may include a file server 114 or another intermediate storage device capable of storing encoded video data generated by the source device 102. The source device 102 may output encoded video data to the file server 114 or another intermediate storage device capable of storing encoded video generated by the source device 102. The destination device 116 may access the stored video data from the file server 114 via streaming or download. The file server 114 may be any type of server device capable of storing encoded video data and sending that encoded video data to the destination device 116. The file server 114 may represent a web server (for example, 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 may access the encoded video data from the file server 114 through any standard data connection, including an Internet connection. This may include a wireless channel (e.g., Wi-Fi® connection), a wired connection (e.g., digital subscriber line (DSL), cable modem, etc.), or a combination of both, which is suitable for accessing encoded video data stored in the file server 114. The file server 114 and modem 122 may be configured to operate according to a streaming transmission protocol, a download transmission protocol, or a combination thereof.

[0044]

[0069] Modems 108 and 122 may represent wireless transmitters / receivers, modems, wired networking components (e.g., Ethernet® cards), wireless communication components operating according to any of the various IEEE 802.11 standards, or other physical components. In examples where modems 108 and 122 have wireless components, they may be configured to transfer data such as encoded video data according to cellular communication standards such as 4G, 4G-LTE® (Long-Term Evolution), LTE Advanced, and 5G. In some examples where modem 108 is a wireless transmitter, modems 108 and 122 may be configured to transfer data such as encoded video data according to other wireless standards such as the IEEE 802.11 specification, the IEEE 802.15 specification (e.g., ZigBee®), and the s standard. In some examples, source device 102 and / or destination device 116 may include their respective system-on-chip (SoC) devices. For example, the source device 102 may include an SoC device for performing functions belonging to the video encoder 200 and / or modem 108, and the destination device 116 may include an SoC device for performing functions belonging to the video decoder 300 and / or modem 122.

[0045]

[0070] The techniques of this disclosure can be applied to video coding that supports any of a variety of multimedia applications, such as over-the-air television broadcasting, cable television transmission, satellite television transmission, internet streaming video transmission such as Dynamic Adaptive Streaming over HTTP (DASH), digital video encoded on a data storage medium, decoding of digital video stored on a data storage medium, or other applications.

[0046]

[0071] The modem 122 of the destination device 116 receives encoded video data from a computer-readable medium 110 (e.g., a communication medium, a storage device 112, a file server 114, etc.). The encoded video data may include signaling information defined by the video encoder 200, which is also used by the video decoder 300, such as syntax elements having values ​​that describe the characteristics and / or processes of video blocks or other encoded units (e.g., slices, pictures, groups of pictures, sequences, etc.). The display device 118 displays the decoded pictures of the decoded video data to the user. The display device 118 may represent any of various display devices, such as a liquid crystal display (LCD), a plasma display, an organic light-emitting diode (OLED) display, or another type of display device.

[0047]

[0072] Although not shown in Figure 1, in some examples, the video encoder 200 and video decoder 300 may be integrated with an audio encoder and / or audio decoder, respectively, and may include a suitable MUX-DEMUX unit or other hardware and / or software to handle multiplexed streams containing both audio and video in a common data stream. Where applicable, the MUX-DEMUX unit may comply with the ITU H.223 multiplexer protocol or other protocols such as the User Datagram Protocol (UDP).

[0048]

[0073] The video encoder 200 and video decoder 300 can each be implemented as one or more suitable encoder and / or decoder circuits, or any combination thereof, including one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, etc. When the technique is partially implemented in software, the device may store software instructions in a suitable non-temporary computer-readable medium and use one or more processors to execute those instructions in hardware to perform the technique of the Disclosure. Each of the video encoder 200 and video decoder 300 may be contained within one or more encoders or decoders, any of which may be integrated as part of a composite encoder / decoder (CODEC) in each device. A device including the video encoder 200 and / or video decoder 300 may include an integrated circuit, a microprocessor, and / or a wireless communication device such as a cellular telephone.

[0049]

[0074] Generally, the video encoder 200 and video decoder 300 can encode video data represented as an array of digital sample values. Each digital sample value may be a value of a color component in a color coding format, such as YUV (e.g., Y, Cb, Cr) format, red, green, and blue (RGB) format, Hue Saturation Value (HSV) format, or other types of color formats. In some examples, the video encoder 200 converts data formatted in a first color format to a second color format before encoding, and the video decoder 300 converts data in the second color format to the first color format. Alternatively, pre-processing and post-processing units (not shown) may perform these conversions.

[0050]

[0075] This disclosure may refer to coding a picture (e.g., encoding and decoding) to include, in general, the process of encoding or decoding the data of the picture. Similarly, this disclosure may refer to coding a block of a picture to include the process of encoding or decoding the data of the block, e.g., predictive and / or residual coding.

[0051]

[0076] According to the techniques of this disclosure, the video encoder 200 may use hybrid digital-analog modulation to encode video data. As described herein, the video encoder 200 may generate coefficients based on video data; that is, the video encoder 200 may generate coefficients based on an array of digital sample values ​​of video data. In some examples, as part of generating coefficients, the video encoder 200 may generate prediction data based on video data (e.g., based on pictures of video data). The prediction data may be an approximation of the video data including digital sample values ​​(e.g., an approximation of pictures of video data). The video encoder 200 may quantize the digital sample values ​​and entropy encode them. The modem 108 may transmit the entropy encoded digital sample values. Furthermore, as part of generating coefficients, the video encoder 200 may generate residual data based on the prediction data and the original video data. For example, the residual data may include residual values ​​that show the difference between the digital sample values ​​of the prediction data and the corresponding digital sample values ​​of the video data. Furthermore, the video encoder 200 may apply a binarization process to convert the residual values ​​into coefficients. In some examples, the video encoder 200 may then quantize the coefficients.

[0052]

[0077] The video encoder 200 may use coefficients to generate coefficient vectors. Each coefficient vector may contain n coefficients, where n is an integer value (for example, an integer greater than 1). In some examples, the coefficient vector may consist of consecutive coefficients in a block of coefficients. In some examples, the video encoder 200 may determine the value of n based on the spectral efficiency of the channels.

[0053]

[0078] For each coefficient vector, the video encoder 200 may determine an amplitude value for the coefficient vector based on a mapping pattern. The mapping pattern maps each allowable coefficient vector to a unique amplitude value a1, where a1 is adjacent to an amplitude value a2 in n-dimensional space, and a1 is adjacent to an amplitude value a2 on a monotonic number line of amplitude values. Exemplary mapping patterns may include S-snake mapping patterns, M-snake mapping patterns, MS-snake mapping patterns, and so on, as will be described in more detail below. In some examples, instead of determining an amplitude value for the coefficient vector, the video encoder 200 may perform an interlacing process to generate an amplitude value by interlacing the bits of two or more coefficients.

[0054]

[0079] Furthermore, the video encoder 200 can modulate the analog signal based on amplitude values. For example, the video encoder 200 can convert one or more sets of amplitude values ​​into analog symbols. An analog symbol may be a combination of phase shift and power (i.e., amplitude). Based on the analog symbols, the video encoder 200 can set the phase shift and power of the symbol sampling instant of the analog signal.

[0055]

[0080] The video decoder 300 may perform a decoding process that is generally the reverse of the encoding process performed by the video encoder 200. For example, the video decoder 300 may determine amplitude values ​​based on an analog signal. In some examples, the video decoder 300 may also obtain entropy-encoded digital sample values ​​of the predicted data. The video decoder 300 may entropy-decode and inversely quantize the entropy-encoded digital sample values ​​to determine the digital sample values ​​of the predicted data. In some examples, for each of the coefficient vectors, the video decoder 300 may determine the coefficients in the coefficient vector based on the amplitude values ​​and mapping pattern with respect to the coefficient vector. The mapping pattern used by the video decoder 300 may be the same as the mapping pattern used by the video encoder 200. Thus, the mapping pattern may map each allowable coefficient vector to a unique amplitude value adjacent in n-dimensional space, where a unique amplitude value is adjacent to at least one other amplitude value adjacent to a unique amplitude value on a monotonic number line of amplitude values. Each coefficient vector contains n of the coefficients. In some examples, the value n may be determined based on the spectral efficiency of the channel. Furthermore, in some examples, instead of using a mapping pattern, the video decoder 300 may perform a deinterlacing process that deinterlaces two or more coefficient bits from the amplitude value.

[0056]

[0081] Furthermore, the video decoder 300 can generate video data based on the coefficients in the coefficient vector. For example, the video decoder 300 may dequantize the coefficients in the coefficient vector and apply a de-binarization process to the dequantized coefficients to generate digital sample values. The video decoder 300 may reconstruct the video data based on the digital sample values ​​generated from the coefficients and the digital sample values ​​of the prediction blocks. For example, the video decoder 300 may add the digital sample values ​​generated from the coefficients to the corresponding digital sample values ​​of the prediction blocks to generate video data. Encoding and decoding video data in this way can provide compression of video data without using as many computational resources as other video codecs such as H.264 / AVC and H.265 / HEVC.

[0057]

[0082] Figure 2 is a block diagram showing an exemplary video encoder 200 using one or more techniques of the present disclosure. Figure 2 is provided for illustrative purposes and should not be considered to limit the techniques broadly illustrated and described in the present disclosure. In the example of Figure 2, the video encoder 200 includes a video data memory 202, a prediction unit 204, a quantization unit 206, an entropy coding unit 208, a buffer 210, a residual generation unit 212, and an analog compression unit 214. In the example of Figure 2, the analog compression unit 214 includes a binarization unit 216, a quantization unit 218, a packing unit 220, and an analog modulation unit 222. Any or all of the video data memory 202, prediction unit 204, quantization unit 206, entropy coding unit 208, buffer 210, residual generation unit 212, and analog compression unit 214 (including the binarization unit 216, quantization unit 218, packing unit 220, and analog modulation unit 222) may be implemented within one or more processors or processing circuits. For example, the units of the video encoder 200 may be implemented as one or more circuits or logic elements, as part of a hardware circuit, or as part of a processor, ASIC, or FPGA. Furthermore, the video encoder 200 may include additional or alternative processors or processing circuits to perform these and other functions.

[0058]

[0083] The video data memory 202 can store video data to be encoded by the components of the video encoder 200. The video encoder 200 can receive video data stored in the video data memory 202 from, for example, the video source 104 (Figure 1). The video data memory 202 and buffer 210 can be formed by any of various memory devices, including DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM®), or other types of memory devices. The video data memory 202 and buffer 210 may be provided by the same memory device or by separate memory devices. In various examples, the video data memory 202 may be on-chip with the other components of the video encoder 200, as shown in the figure, or off-chip relative to those components.

[0059]

[0084] In this disclosure, references to video data memory 202 should not be interpreted as being limited to memory inside the video encoder 200 unless specifically described so, nor should they be interpreted as being limited to memory outside the video encoder 200 unless specifically described so. Rather, references to video data memory 202 should be understood as reference memory that stores video data that the video encoder 200 receives for encoding (for example, video data about the current block to be encoded). Memory 106 in Figure 1 may also provide temporary storage of outputs from various units of the video encoder 200.

[0060]

[0085] The various units in Figure 2 are shown to help understand the operations performed by the video encoder 200. The units can be implemented as fixed-function circuits, programmable circuits, or a combination thereof. Fixed-function circuits refer to circuits that provide a specific function and are preset in terms of the operations they can perform. Programmable circuits refer to circuits that can be programmed to perform various tasks and to provide flexible functionality in the operations they can perform. For example, a programmable circuit may execute software or firmware that operates the programmable circuit in a manner defined by software or firmware instructions. Fixed-function circuits may execute software instructions (e.g., to receive or output parameters), but the type of operation performed by a fixed-function circuit is generally immutable. In some examples, one or more of the units may be separate circuit blocks (fixed-function or programmable), and in some examples, one or more of the units may be integrated circuits.

[0061]

[0086] The video encoder 200 may include a programmable core formed from an arithmetic logic unit (ALU), an EFU, digital circuits, analog circuits, and / or programmable circuits. In an example where the operation of the video encoder 200 is performed using software executed by the programmable circuits, memory 106 (Figure 1) may store software instructions (e.g., object code) that the video encoder 200 receives and executes, or another memory (not shown) within the video encoder 200 may store such instructions. Video data memory 202 is configured to store received video data.

[0062]

[0087] In the example in Figure 2, the video data memory 202 may receive and store video data. The prediction unit 204 may generate prediction data based on the video data. The prediction data includes digital sample values. In some examples, the prediction data may be a coarse image description, sometimes called an "image approximation." The coarse image description may generally be transmitted in data packets of a small size. The video decoder 300 may use the data in such data packets to reconstruct a low-resolution image. The modem 108 may transmit the data packets using a standard 5G digital data multiplexing and channel coding scheme or another digital data multiplexing and channel coding scheme.

[0063]

[0088] The prediction unit 204 can generate prediction data in one of several ways. For example, in some cases, the prediction unit 204 may generate digital sample values ​​for prediction data by determining the mean of the digital sample values ​​in each two-dimensional group (i.e., block) of digital sample values ​​in the picture of the original video data. For the purpose of determining residual data, the residual generation unit 212 may assume that each sample value in the block is equal to the mean. However, only the mean of the block is passed to the quantization unit 206. In another example, the prediction unit 204 may generate prediction data by determining the digital sample value of the top-left or center pixel of each block in the picture and discarding the remaining sample values. For the purpose of determining residual data, the residual generation unit 212 may assume that each sample value in the block is equal to the determined digital sample value. However, only the determined sample value is passed to the quantization unit 206. Therefore, the number of digital sample values ​​passed to the quantization unit 206 may be significantly less than the number of digital sample values ​​in the picture.

[0064]

[0089] The quantization unit 206 may apply a quantization process to generate quantized digital sample values ​​based on the prediction data generated by the prediction unit 204. Quantization generally refers to the process of quantizing digital sample values, such as digital sample values ​​in prediction data, to reduce the amount of data used to represent the digital sample values ​​as much as possible, thereby providing further compression. By performing the quantization process, the quantization unit 206 may reduce the bit depth associated with some or all of the digital sample values. For example, the quantization unit 206 may round down an n-bit digital sample value to an m-bit digital sample value during quantization, where n is greater than m. In some examples, to perform quantization, the quantization unit 206 may perform a bitwise right shift of the value to be quantized.

[0065]

[0090] The entropy coding unit 208 can then perform entropy coding on the quantized digital sample values. For example, the entropy coding unit 208 can perform various types of entropy coding processes, such as contact-adaptive binary arithmetic coding (CABAC) coding processes, context-adaptive variable-length coding (CAVLC) processes, inter-variable (V2V) length coding processes, syntax-based context-adaptive binary arithmetic coding (SBAC) processes, probability interval partitioned entropy (PIPE) coding processes, exponential Golomb coding processes, or other types of entropy coding processes. The buffer 210 can store the entropy-coded quantized digital sample values.

[0066]

[0091] Furthermore, in the example in Figure 2, the residual generation unit 212 generates residual data based on the digital sample values ​​of the predicted data and the digital sample values ​​of the original video data. For example, the residual generation unit 212 may subtract the digital sample values ​​of the predicted data from the corresponding digital sample values ​​of the original video data in order to generate residual data.

[0067]

[0092] The analog compression unit 214 modulates the analog signal based on the residual data. In the example in Figure 2, the binarization unit 216 of the analog compression unit 214 converts the residual data into coefficients. The coefficients may be binary values. In some examples, the binarization unit 216 applies a transformation to the residual data to generate the coefficients. For example, in one example, the binarization unit 216 may apply a transformation (e.g., discrete cosine transform (DCT), discrete sine transform (DST), or other types of transformations) to the residual data to generate the coefficients.

[0068]

[0093] The quantization unit 218 of the analog compression unit 214 may apply a quantization process to the coefficients. The quantization process may reduce the number of bits used to represent the coefficients. In some examples, the quantization unit 218 may perform the quantization process by right-shifting the binary representation of the coefficients by a certain number of positions. In other examples, the coefficients may be generated in other ways. For example, the video encoder 200 may generate coefficients without applying a quantization process.

[0069]

[0094] In some examples of this disclosure, a packing unit 220 of an analog compression unit 214 generates a coefficient vector. Each coefficient vector contains n coefficients. For each coefficient vector, the packing unit 220 determines an amplitude value for the coefficient vector based on a mapping pattern. As described in more detail elsewhere in this disclosure, the amplitude values ​​may represent the amplitudes of the in-phase (I) or orthogonal (Q) components in the IQ domain. As described in more detail elsewhere in this disclosure, the mapping pattern may map each tolerable coefficient vector to a unique amplitude value adjacent in n-dimensional space, where a unique amplitude value on a monotonic number line of amplitude values ​​is adjacent to at least one other amplitude value. A monotonic number line is a sequence that is always increasing or always decreasing. The digits on the number line may or may not be equally spaced. An tolerable coefficient vector contains an arbitrary vector of n coefficients, where each coefficient in the vector is limited to a predetermined set of tolerable values ​​for that coefficient. In some examples, the packing unit 220 determines n based on the spectral efficiency of the channel. In some examples, the packing unit 220 performs an interlacing process in which it interlaces two or more bits of the coefficients to form an amplitude value.

[0070]

[0095] The analog modulation unit 222 can modulate an analog signal based on amplitude values. In some examples, as part of modulating the analog signal, the analog modulation unit 222 can determine an analog symbol based on one or more of the amplitude values. In some examples, the analog symbol is continuous, and for example, the analog symbol is not quantized to any quadrature amplitude modulation (QAM) level, as is common in conventional digital transmissions. Using analog modulation may eliminate the need for retransmission, in contrast to standard modulation techniques. For example, errors occurring when transmitting modulated digital data may be detected (e.g., using checksums), and the receiver may request retransmission of the digital data. However, small changes in phase or power in analog-modulated data are unlikely to introduce significant distortion into the reconstructed video data, so phase shifts and small changes in power during transmission of analog-modulated data may not require retransmission. Thus, the use of analog modulation may reduce computational complexity, latency, and power consumption. The modem 108 can transmit analog symbols.

[0071]

[0096] In some examples, the analog modulation unit 222 may generate pairs of amplitude values ​​(i.e., amplitude value pairs) to generate analog symbols. The amplitude values ​​in the amplitude value pair may be consecutive amplitude values ​​generated by the packing unit 220. As described below with respect to Figures 5 and 6, the analog modulation unit 222 may determine a point in the IQ plane corresponding to an analog symbol. One amplitude value in the amplitude value pair may correspond to the I component of the point, and the other amplitude value in the amplitude value pair may correspond to the Q component of the point. Based on the determined point, the analog modulation unit 222 may determine the phase shift and power of the symbol sampling time in the analog signal that the modem 108 transmits to the destination device 116.

[0072]

[0097] Figure 3 is a block diagram showing an exemplary video decoder 300 according to one or more techniques of the present disclosure. Figure 3 is provided for illustrative purposes and is not limited to the techniques broadly illustrated and described herein. In the example of Figure 3, the video decoder 300 includes a buffer 302, an entropy decoding unit 304, an inverse quantization unit 306, an analog decompression unit 308, a reconstruction unit 310, and a video data memory 312. In the example of Figure 3, the analog decompression unit 308 includes an analog demodulation unit 314, an unpacking unit 316, an inverse quantization unit 318, and a de-binarization unit 320. Any or all of the entropy decoding unit 304, the inverse quantization unit 306, the analog restoration unit 308 (including the analog demodulation unit 314, the unpacking unit 316, the inverse quantization unit 318, and the de-binarization unit 320), and the reconstruction unit 310 may be implemented within one or more processors or processing circuits. For example, the units of the video decoder 300 may be implemented as one or more circuits or logic elements, as part of a hardware circuit, or as part of an FPGA processor or ASIC. Furthermore, the video decoder 300 may include additional or alternative processors or processing circuits to perform these and other functions.

[0073]

[0098] Buffer 302 may store digital video data to be decoded by the components of the video decoder 300. The digital video data stored in buffer 302 may be retrieved, for example, from modem 122 or a storage medium. The video data memory 312 generally stores the decoded pictures that the video decoder 300 may output. Buffer 302 and video data memory 312 may be formed by any of various memory devices, such as DRAM including SDRAM, MRAM, RRAM, or other types of memory devices. Buffer 302 and video data memory 312 may be provided by the same memory device or separate memory devices. In various examples, buffer 302 and video data memory 312 may be on-chip together with the other components of the video decoder 300, or off-chip relative to those components.

[0074]

[0099] The various units shown in Figure 3 are presented to help understand the operations performed by the video decoder 300. The units can be implemented as fixed-function circuits, programmable circuits, or a combination thereof. Similar to Figure 2, fixed-function circuits refer to circuits that provide a specific function and are preset in terms of the operations they can perform. Programmable circuits refer to circuits that can be programmed to perform various tasks and to provide flexible functionality in the operations they can perform. For example, a programmable circuit may execute software or firmware that operates the programmable circuit in a manner defined by software or firmware instructions. Fixed-function circuits may execute software instructions (e.g., to receive or output parameters), but the type of operation performed by a fixed-function circuit is generally immutable. In some examples, one or more of the units may be separate circuit blocks (fixed-function or programmable), and in some examples, one or more of the units may be integrated circuits.

[0075]

[0100] The video decoder 300 may include a programmable core formed from an ALU, EFU, digital circuitry, analog circuitry, and / or programmable circuitry. In an example where the operation of the video decoder 300 is performed by software running on the programmable circuitry, on-chip or off-chip memory may store software instructions (e.g., object code) that the video decoder 300 receives and executes.

[0076]

[0101] In the example in Figure 3, modem 122 can receive entropy-encoded digital sample values. Buffer 302 can store the entropy-encoded digital sample values ​​received by modem 122. Entropy decoding unit 304 can perform a process to entropy-decode the entropy-encoded digital sample values ​​in buffer 302. Entropy decoding unit 304 can perform various types of entropy decoding processes, such as CABAC decoding, CAVLC decoding, V2V length decoding, SBAC decoding, PIPE decoding, exponential Golomb decoding, or other types of entropy-decoding processes. Inverse quantization unit 306 can inverse quantize the digital sample values.

[0077]

[0102] The analog demodulation unit 314 of the analog restoration unit 308 can acquire an analog signal from the modem 122. The analog demodulation unit 314 can then determine the phase shift and power of the analog signal at the symbol sampling time. The analog demodulation unit 314 can then determine a point in the IQ plane corresponding to the phase shift and power at the symbol sampling time. The analog demodulation unit 314 can then determine a pair of amplitude values ​​corresponding to the determined point. In detail, the analog demodulation unit 314 can set the first amplitude value of the amplitude value pair to the I component of the point, and the second amplitude value of the amplitude value pair to the Q component of the point.

[0078]

[0103] For each coefficient vector (and therefore for each amplitude value determined by the analog demodulation unit 314), the unpacking unit 316 may determine the coefficients in the coefficient vector based on the amplitude value and mapping pattern for the coefficient vector. The mapping pattern may map each acceptable coefficient vector to a unique amplitude value adjacent in n-dimensional space, where a unique amplitude value on the monotonic number line of amplitude values ​​is adjacent to at least one other amplitude value. Each coefficient vector contains n of the coefficients. An acceptable coefficient vector contains any vector of n coefficients, where each coefficient in the vector is limited to a predetermined acceptable range for that coefficient. In another example, the unpacking unit 316 may perform a deinterlacing process that deinterlaces two or more coefficient bits from the amplitude value bits.

[0079]

[0104] The inverse quantization unit 318 of the analog restoration unit 308 can inverse quantize the coefficients of the coefficient vector. For example, the inverse quantization unit 318 can left-shift the binary values ​​representing the coefficients. The de-binarization unit 320 of the analog restoration unit 308 can then convert the coefficients into digital sample values. For example, the de-binarization unit 320 can apply an inverse transformation (e.g., inverse DCT, inverse DST, etc.) to the coefficients in order to convert them into digital sample values. The reconstruction unit 310 can reconstruct the digital sample values ​​of the pictures in the video data based on the digital sample values ​​generated by the analog restoration unit 308 and the digital sample values ​​generated by the inverse quantization unit 306. As described above, the prediction data generated by the prediction unit 204 may contain a single digital sample value for each block of the picture. The reconstruction unit 310 can determine the digital sample value for each sample location in the block. For example, the reconstruction unit 310 can set the digital sample value for each sample location in the block to be equal to the digital sample value of the block contained in the prediction data. In some examples, the reconstruction unit 310 may interpolate the digital sample value of a block based on the transmitted digital sample value of the block and the transmitted digital sample values ​​of one or more adjacent blocks. The reconstruction unit 310 may reconstruct the digital sample value of a picture based on the digital sample value generated by the analog restoration unit 308 and the determined digital sample value for each location within each block of the picture. For example, the reconstruction unit 310 may add the digital sample value generated by the analog restoration unit 308 to the corresponding digital sample value for a location within a block of the picture. The video data memory 312 may store the reconstructed digital sample values, for example, for subsequent output and display.

[0080]

[0105] Figure 4 is a block diagram showing an exemplary modem 400 according to one or more techniques of the present disclosure. Modem 400 may be an example of modem 108 on source device 102 or modem 122 on destination device 116. In the example of Figure 4, modem 400 includes a TrBk cyclic redundancy check (CRC) add-on unit 402, a code block segmentation unit 404, a channel coding unit 406, a rate matching unit 408, a code block concatenation unit 410, a scrambler unit 412, a modulation unit 414, a resource mapper 416, and an orthogonal frequency division multiplexing (OFDM) signal generation unit 418. In other examples, other types of modems may include other components. The TrBk CRC add-on unit 402 may receive entropy-encoded digital sample values ​​from the buffer 210 of the video encoder 200. The resource mapper 416 may receive analog symbols generated by the analog modulation unit 222.

[0081]

[0106] The TrBk CRC addition unit 402 calculates the CRC bits of the payload. The payload may include digital values ​​generated by the video encoder 200 (e.g., entropy encoded data generated by the entropy encoding unit 208, shift values, interlacing process information, quantization information, data indicating the number of coefficients in the coefficient vector, and / or other information). The code block segmentation unit 404 may segment the payload into code blocks, where the code block is the maximum payload size that a channel decoder (e.g., a low-density parity check code (LDPC) for 5G data channels or a turbo code for 4G data) is allowed to encode. The channel coding unit 406 implements a channel coder (e.g., LDPC for 5G data and a turbo code for 4G data) that adds redundancy to address channel errors. The rate matching unit 408 selects, for each code block, the number of bits to be transmitted according to the data size allocation. The code block concatenation unit 410 may concatenate the selected bits of all code blocks. The scrambler unit 412 can generate scrambled bits by applying an exclusive OR (XOR) operation to concatenated data and a pseudo-random gold sequence that is unique to each user. The modulation unit 414 can modulate the scrambled bits according to a modulation mode, such as π / 2-binary phase-shift keying (BPSK), 4-phase-shift keying (QPSK), 16-QAM, 64-QAM, or 256-QAM. In this way, the modulation unit 412 can determine analog symbols from the sequence of scrambled bits (i.e., the scrambled bit sequence). The resource mapper 416 can place analog symbols in the frequency domain and time domain according to the frequency bandwidth and time symbols allocated for transmission.The analog symbols may include analog symbols determined by the analog modulation unit 222 of the analog compression unit 214, or analog symbols by the modulation unit 412 (for example, analog symbols based on scrambled bits, which may ultimately be based on predicted data passing through the quantization unit 206, the entropy coding unit 208, etc.). The OFDM signal generation unit 418 may apply an integer fast Fourier transform (iFFT) to the analog symbols, insert a cyclic prefix, and upsample the analog signal to radio frequency (RF). When data is received, a series of actions performed by the units of the modem 400 may be performed in reverse.

[0082]

[0107] The digital path within the modem 108 is a set of steps or units for transmitting digital data. In the example in Figure 4, the digital path includes the TrBk CRC addition unit 402, the code block segmentation unit 404, the channel coding unit 406, the rate matching unit 408, the code block concatenation unit 410, the scrambler unit 412, the modulation unit 414, the resource mapper 416, and the OFDM signal generation unit 418. In other examples, the digital path may include more or fewer units or steps. The analog path within the modem 108 may include the resource mapper 416 and the OFDM signal generation unit 418 instead of the TrBk CRC addition unit 402, the code block segmentation unit 404, the channel coding unit 406, the rate matching unit 408, the code block concatenation unit 410, the scrambler unit 412, and the modulation unit 414.

[0083]

[0108] Figure 5 is an exemplary constellation diagram 500 for analog modulation in the IQ domain. Constellation diagram 500 is a representation of signal modulation by quadrature amplitude modulation (QAM). Constellation diagram 500 displays the signal as a two-dimensional xy-plane scatter plot in the complex plane for the symbol sampling time. In the context of this disclosure, the symbol sampling time corresponds to the temporal moment when the analog symbol is transmitted.

[0084]

[0109] In the example in Figure 5, the vertical axis of the constellation diagram 500 corresponds to the I component, and therefore to the real component of the imaginary number. The horizontal axis of the constellation diagram 500 corresponds to the Q component, and therefore to the imaginary component of the imaginary number.

[0085]

[0110] The two-dimensional plane of constellation diagram 500 is continuous (i.e., non-discrete). However, constellation diagram 500 includes a set of reference points 502A-502P (collectively, "reference points 502"). In the example of Figure 5, the reference points are represented by crosses. In the example of Figure 6, the reference points are represented by circles. Reference points 502 can be shown as any shape used to represent points in the IQ plane. In the example of Figure 5, constellation diagram 500 includes a set of 16 reference points 502. For any point in constellation diagram 500 (including reference points 502 and non-reference points), the distance of the point from the origin represents a measure of the amplitude or power of the analog signal. The angle of the point, measured counterclockwise from the horizontal axis (i.e., the Q axis), represents the phase shift of the carrier wave from its reference phase.

[0086]

[0111] Each of the reference points 502 can correspond to a different bit sequence in the “alphabet” of the bit sequence. Since there are 16 reference points 502 in constellation diagram 500, the alphabet of the bit sequence can be equal to 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, and 1111.

[0087]

[0112] When modem 108 is transmitting digital data (e.g., entropy-encoded prediction data), modulation unit 412 (Figure 4) may identify a reference point (e.g., one of the reference points 502) corresponding to a bit sequence (e.g., a scrambled bit sequence) based on the digital data. For example, if the bit sequence is equal to 0011 and reference point 502D corresponds to the bit sequence 0011, modulation unit 412 may determine an analog symbol with a phase shift and power corresponding to reference point 502K, for example, as indicated by arrow 504. When modem 108's resource mapper 414 and OFDM signal generation unit 416 transmit analog symbols in analog signals such as electrical or radio signals, they may use phase shifts and amplitudes between symbol sampling points.

[0088]

[0113] When performing analog modulation on analog data (for example, amplitude values ​​generated by packing unit 220), the analog modulation unit 222 of the analog compression unit 214 does not use the reference point 502 in constellation diagram 500. Instead, the analog modulation unit 222 can determine a pair of amplitude values ​​generated by packing unit 220. The analog modulation unit 222 can then use the amplitude value pair as the coordinates (for example, Cartesian coordinates) of a point in the IQ plane. The analog modulation unit 222 can determine an analog symbol as the phase shift and power of a point indicated by its coordinates. Since the analog modulation unit 222 does not use the reference point 502, the determined point can be between the reference points 502, for example, as indicated by arrow 506.

[0089]

[0114] The modem 122 of the destination device 116 is configured to receive an analog signal. When demodulating digital data (e.g., entropy-encoded prediction data), the modulation unit 414 may determine the phase shift and power of the analog signal between symbol sampling points. The modulation unit 414 may then determine a point in the IQ plane of constellation figure 500 corresponding to the phase shift and power of the analog signal between symbol sampling points. The modulation unit 414 may then determine a reference point (e.g., one of the reference points 402) closest to the determined point. The determined point may not coincide with the reference point due to noise during transmission. The modulation unit 414 may output a bit sequence corresponding to the determined reference point (e.g., to the scrambler 412). The remaining parts of the modem 400 (for example, the scrambler 412, the code block concatenation unit 410, the rate matching unit 412, the channel coding unit 414, the code block segmentation unit 404, and the TrBk CRC addition unit 402) can process bit sequences to restore digital values.

[0090]

[0115] Modem 122 (or, in the context of Figure 4, resource mapper 416 of modem 400) can determine the analog symbol corresponding to the phase shift and power of the analog signal between symbol sampling points. Analog demodulation unit 314 can then form an amplitude value pair by assigning the I-coordinate of the determined point to the first amplitude value of the amplitude value pair and the Q-coordinate of the determined point to the second amplitude value of the amplitude value pair. Thus, analog demodulation unit 314 can determine the amplitude value with respect to the coefficient vector as one of the coordinates of the analog symbol in the IQ plane. Analog demodulation unit 314 may output the amplitude values ​​of the amplitude value pair to the unpacking unit 316.

[0091]

[0116] Figure 6 is a conceptual diagram showing a received error during analog modulation transmission. More specifically, Figure 6 shows a constellation diagram 600. The modem 400, analog modulation unit 222, and analog demodulation unit 314 may use constellation diagram 600 in the same way as constellation diagram 500 in Figure 5. In the example in Figure 6, small circles are used instead of crosses to indicate reference points. Noise can cause phase shift and power, and therefore the analog symbol, to change during transmission. However, small amounts of noise do not usually produce large displacements with respect to the amplitude values ​​corresponding to the received analog symbol. In other words, the difference between the original I component and the I component corresponding to the received analog symbol (i.e., Δamplitude 2), and the difference between the original Q component and the Q component corresponding to the received analog symbol (i.e., Δamplitude 1), are generally small during the transmission of the analog symbol.

[0092]

[0117] As described above, the packing unit 220 can convert the coefficient vector into amplitude values ​​based on the mapping pattern. In some examples, the process for determining the amplitude values ​​for the coefficient vector may assume that each coefficient in the coefficient vector is an unsigned value. However, the coefficients in the coefficient vector may include both positive and negative values. Therefore, the packing unit 220 may perform a process to convert the coefficients in the coefficient vector into unsigned values.

[0093]

[0118] In some examples, the packing unit 220 may use sign data coding to convert the coefficients in the coefficient vector to unsigned values. That is, to convert the coefficients in the coefficient vector to unsigned values, the packing unit 220 may determine the sign value for each of the coefficients in the coefficient vector. In addition, the packing unit 220 may generate a modified coefficient vector that includes the absolute values ​​of the coefficients. In this example, the packing unit 220 may then use the modified coefficient vector to determine the amplitude values.

[0094]

[0119] The video encoder 200 may transmit a sign value via a digital path. For example, the video encoder 200 may transmit a sign value through a digital path. The unpacking unit 316 of the analog restoration unit 308 of the video decoder 300 may receive a sign value and may receive amplitude values ​​relating to the coefficient vector from the analog demodulation unit 314. The unpacking unit 316 may use the amplitude values ​​relating to the coefficient vector to restore the corrected coefficient vector. The unpacking unit 316 may then reconstruct the original coefficient vector by setting the sign of the coefficients in the corrected coefficient vector to the corresponding sign indicated in the sign data.

[0095]

[0120] Figure 7 is a conceptual diagram illustrating an example of data code coding using one or more of the techniques disclosed. In the example in Figure 7, the coefficient vector 700 includes positive and negative coefficients. The packing unit 220 may generate code data 702 indicating the signs of the coefficients in the coefficient vector 700. In addition, the packing unit 220 may replace the coefficient vector 700 with a modified coefficient vector 704 that includes the absolute values ​​of the coefficients in the coefficient vector 700. The packing unit 220 may use the modified coefficient vector 704 to determine the amplitude values ​​of the coefficient vector 700.

[0096]

[0121] In some examples, the packing unit 220 may use minimum coding to convert coefficients in a coefficient vector to unsigned values. For example, to use minimum coding to convert coefficients in a coefficient vector to unsigned values, the packing unit 220 may determine a shift value equal to the most-negative coefficient in the coefficient vector. The packing unit 220 may then generate a modified coefficient vector by adding the absolute value of the shift value to each coefficient in the coefficient vector. The packing unit 220 may use the modified coefficient vector to determine amplitude values ​​with respect to the coefficient vector.

[0097]

[0122] The packing unit 220 may transmit the shift value via a digital path. The unpacking unit 316 of the analog restoration unit 308 of the video decoder 300 may receive the shift value and the amplitude value of the coefficient vector from the analog demodulation unit 314. The unpacking unit 316 may use the amplitude value of the coefficient vector to restore the modified coefficient vector. The unpacking unit 316 may then reconstruct the original coefficient vector by adding the shift value to each coefficient in the modified coefficient vector.

[0098]

[0123] Figure 8 is a conceptual diagram illustrating an example of minimum value coding using one or more techniques of the present disclosure. In the example of Figure 8, the coefficient vector 800 includes positive and negative coefficients. The packing unit 220 determines the shift value 802. The shift value 802 may be the most negative coefficient in the coefficient vector 800. Therefore, in the example of Figure 8, the shift value 802 is equal to -13. In addition, the packing unit 220 may generate a modified coefficient vector 804 by adding the absolute value of the shift value to each coefficient in the coefficient vector. The video encoder 200 may transmit the shift value, for example, through a digital path.

[0099]

[0124] Figure 9 is a conceptual diagram showing exemplary mapping patterns using one or more techniques of the present disclosure. Figure 10 is a conceptual diagram showing amplitude values ​​corresponding to the mapping patterns of Figure 9 using one or more techniques of the present disclosure. The present disclosure may refer to the mapping patterns of Figures 9 and 10 as S-snake mapping patterns. Packing unit 220 and unpacking unit 316 may use S-snake mapping patterns to determine unsigned amplitude values ​​for coefficient vectors of unsigned coefficients converted by packing unit 220 from signed coefficients. Thus, S-snake mapping patterns are an example of mapping patterns that map unsigned coefficients to unsigned amplitude values. As described above, packing unit 220 may determine amplitude values ​​for coefficient vectors based on the mapping pattern. The mapping pattern maps each allowable coefficient vector to a unique amplitude value adjacent in n-dimensional space, where each unique amplitude value is adjacent to at least one other amplitude value adjacent to it in a monotonic number line of amplitude values. In the examples in Figures 9 and 10, n is equal to 2.

[0100]

[0125] In the example in Figure 9, each of axes x and y corresponds to a different coefficient in the coefficient vector. The amplitude value increases by 1 for each position along the chain of arrows, starting from the position corresponding to the coefficient vector (0,0). For example, as shown in the example in Figure 10, for the coefficient vector (1,10), the packing unit 220 may determine that the corresponding amplitude value is 103. Similarly, the unpacking unit 316 may determine that the corresponding coefficient vector is (1,10) based on the amplitude value of 103. Similar types of mapping patterns can be extended to higher dimensions.

[0101]

[0126] Figure 11 is a conceptual diagram showing an exemplary mapping pattern using one or more techniques of the present disclosure. Figure 12 is a conceptual diagram showing amplitude values ​​corresponding to the mapping pattern in Figure 11 using one or more techniques of the present disclosure. The present disclosure may refer to the mapping patterns in Figures 11 and 12 as M-snake mapping patterns. Packing unit 220 and unpacking unit 316 may use M-snake mapping patterns to determine signed amplitude values ​​with respect to coefficient vectors of signed coefficients. Thus, M-snake mapping patterns are an example of mapping patterns that map signed coefficients to signed amplitude values. Packing unit 220 and unpacking unit 316 may use the mapping patterns in Figures 11 and 12 in a similar manner to the mapping patterns in Figures 9 and 10. However, packing unit 220 and unpacking unit 316 may use the mapping patterns in Figures 9 and 10 with coefficient vectors that include signed values ​​(i.e., positive and negative values). The mapping patterns in Figures 9 and 10 allow the use of coefficient vectors containing signed values, so the video encoder 200 may not need to signal as much secondary information (e.g., in the form of signed data or shifted values). However, some performance degradation may exist associated with the use of signed values. For example, signed coefficients may require additional bits compared to unsigned coefficients of the same resolution. These additional bits increase the dynamic signed signal amplitude relative to the unsigned coefficients (if the unsigned coefficients are 0, 1, ..., A, then the signed coefficients with the same resolution are -A, ..., -1, 0, 1, ..., A). When power is scaled to nominal levels, the scaling is more aggressive with respect to signals with higher dynamic ranges, and therefore performance may be lost.

[0102]

[0127] Mapping patterns similar to those shown in Figures 9 and 10 can be extended to higher dimensions.

[0103]

[0128] Figure 13 is a conceptual diagram showing an exemplary mapping pattern using one or more techniques of the present disclosure. Figure 14 is a conceptual diagram showing amplitude values ​​corresponding to the mapping pattern in Figure 13 using one or more techniques of the present disclosure. The present disclosure may refer to the mapping patterns in Figures 13 and 14 as MS-snake mapping patterns. Packing unit 220 and unpacking unit 316 may use the mapping patterns in Figures 13 and 14 in a manner similar to the S-snake mapping patterns in Figures 9 and 10. Similar to the S-snake mapping patterns, packing unit 220 may use the MS-snake mapping pattern to convert a coefficient vector containing only unsigned values ​​into signed amplitude values.

[0104]

[0129] MS-snake mapping patterns can provide compression gain with minimal degradation of video quality. Furthermore, MS-snake mapping patterns can improve noise immunity of amplitude values. MS-snake mapping patterns map unsigned numbers to signed amplitude values. Therefore, MS-snake mapping patterns are an example of mapping patterns that map unsigned coefficients to signed amplitude values. When using MS-snake mapping patterns, the number of bits may remain the same, but the dynamic power range can be reduced by 6 dB (because the absolute value of the maximum amplitude is only 1 bit smaller). Power scaling can be less aggressive, which can increase signal recovery and thus improve noise immunity. In addition, MS-snake mapping patterns can introduce inherent noise suppression techniques through the use of multidimensional short arches. Using a 2D signed plane (of amplitude values) for mapping can reduce the mapped amplitude by only 1 bit with respect to signed mapping, resulting in a lower dynamic range, a key characteristic of analog modulation schemes for achieving higher processing gains.

[0105]

[0130] Although not shown in the figures of this disclosure, other types of mapping patterns may map signed coefficients to unsigned amplitude values.

[0106]

[0131] Figure 15 is a conceptual diagram showing an exemplary three-dimensional mapping pattern 500 using one or more techniques of the present disclosure. As described above, the packing unit 220 may determine amplitude values ​​for a coefficient vector based on the mapping pattern, where the mapping pattern maps each allowable coefficient vector to a unique amplitude value adjacent in n-dimensional space, where each unique amplitude value on a monotonic number line of amplitude values ​​is adjacent to at least one other amplitude value. In the example of Figure 15, n is equal to 3. The packing unit 220 may use the mapping pattern 500 of Figure 15 in a similar manner to the mapping patterns described elsewhere in the present disclosure. The mapping pattern 500 is an example of a three-dimensional S-snake mapping pattern that maps an unsigned coefficient vector to an unsigned amplitude value. For example, if the coefficient vector is equal to (0,1,2), the packing unit 220 may determine an amplitude value of 62.

[0107]

[0132] Figure 16 is a flowchart illustrating an exemplary method for encoding video data using one or more techniques of the present disclosure. The flowcharts of the present disclosure are presented as examples. Other examples may include more, fewer, or different actions, or the actions may be performed in a different order.

[0108]

[0133] In the example in Figure 16, the video encoder 200 may generate coefficients based on video data (1600). For example, in one example of generating coefficients based on video data, the prediction unit 204 of the video encoder 200 may determine prediction data for the video data. In this example, the residual generation unit 212 of the video encoder 200 may generate residual data showing the difference between the sample values ​​in the prediction block and the corresponding sample values ​​in the block of video data. Furthermore, in this example, the analog compression unit 214 may generate coefficients based on the residual data. For example, the binarization unit 216 of the video encoder 200 may binarize the residual data to generate coefficients, and the quantization unit 218 may quantize the coefficients. In other examples of generating coefficients based on video data, the video encoder 200 may perform more, fewer, or different steps. For example, in some examples, the video encoder 200 does not perform the quantization step. In yet another example, the video encoder 200 does not perform the step of binarizing the residual data.

[0109]

[0134] In some examples, the video encoder 200 may generate digital values ​​(e.g., bit sequences) based on predicted data, and the modem 108 (e.g., the modulation unit 414 of the modem 108) may be configured to transmit digital values. For example, the quantization unit 206 may generate quantized digital sample values ​​based on digital sample values ​​in the predicted data. The entropy coding unit 208 may perform an entropy coding process that generates digital values ​​based on the quantized digital sample values. To transmit digital values, the modem 108 may generate bit sequences based on entropy coded data, for example, as described with respect to Figure 4. The modulation unit 414 may determine analog symbols based on the bit sequences.

[0110]

[0135] In some examples, the analog compression unit 214 may modify the initial coefficient to generate the coefficient. In one example matching Figure 7, the analog compression unit 214 (for example, the binarization unit 216 and / or quantization unit 218) may generate the initial coefficient based on video data. In this example, the analog compression unit 214 may generate a sign value indicating the positive / negative sign of the initial coefficient. Furthermore, the analog compression unit 214 may generate the coefficient as the absolute value of the initial coefficient. In this example, the modem 108 may be configured to signal data representing the sign value.

[0111]

[0136] In another example of modifying initial coefficients, corresponding to Figure 8, the coefficients in the coefficient vector are non-negative versions of the initial coefficients. In this example, as part of generating coefficients based on video data (e.g., based on residual data), the analog compression unit 214 (e.g., the binarization unit 216 and / or quantization unit 218) may generate initial coefficients based on residual data. In this example, the analog compression unit 214 may determine a shift value (e.g., shift value 802 in Figure 8) based on the most-negative initial coefficient among the initial coefficients. Based on the shift value, the analog compression unit 214 may perform a process to transform the initial coefficients into their non-negative versions. In this example, the modem 108 may be configured to signal data representing the shift value.

[0112]

[0137] Furthermore, in the example of Figure 16, the packing unit 220 of the video encoder 200 may generate a coefficient vector (1602). Each coefficient vector contains n of the coefficients. The packing unit 220 may generate the coefficient vector in one of several ways. For example, in one example, the packing unit 220 may generate the coefficient vector as a group of n consecutive coefficients according to a coefficient coding order. Various coefficient coding orders may be used, such as raster scan order, zigzag scan order, inverse raster scan order, and vertical scan order. In some examples, the coefficient vector may contain one or more negative coefficients and one or more positive coefficients (i.e., signed coefficients). In some examples, the coefficient vector may contain only non-negative coefficients (i.e., unsigned coefficients).

[0113]

[0138] For each of the coefficient vectors, the packing unit 220 may determine the amplitude value for the coefficient vector based on the mapping pattern (1604). For each of the multiple allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each of the multiple amplitude values. Each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the multiple amplitude values ​​adjacent to it on the monotonic number line of amplitude values. Figures 9 to 15 described above show exemplary mapping patterns that the packing unit 220 may use to determine the amplitude value for the coefficient vectors. Thus, in some examples, the mapping pattern may be an S-snake pattern, an M-snake pattern, an MS-snake pattern, or one of the other types of mapping patterns. The value n may be 2 or greater.

[0114]

[0139] In some examples, the packing unit 220 may determine a position in n-dimensional space in order to determine the amplitude value of a coefficient vector. The coordinates of the position in n-dimensional space are based on the coefficients of the coefficient vector, and the mapping pattern maps different positions in n-dimensional space to different amplitude values ​​among multiple amplitude values. The packing unit 220 may determine the amplitude value of the coefficient vector as the amplitude value corresponding to the determined position in n-dimensional space.

[0115]

[0140] In some examples, the video encoder 200 may dynamically switch between mapping patterns according to one or more optimization criteria. For example, the video encoder 200 may use the mapping patterns in Figures 9 and 10 when higher performance is required, and the mapping patterns in Figures 11 and 12 when it is more desirable to transmit less secondary information. In this example, performance may be measured according to noise recovery, bits per analog symbol, or some other metric. In this example, the video encoder 200 may switch between mapping patterns on a block-based, picture-based, sequence-based, or other basis. In another example, the video encoder 200 may dynamically switch between mapping patterns in the manner described with respect to Figures 24-26, for example.

[0116]

[0141] The analog modulation unit 222 may then modulate the analog signal based on the amplitude values ​​of the coefficient vector (1606). The analog modulation unit 222 may perform analog amplitude modulation according to examples provided elsewhere in this disclosure, for example, the examples described with reference to Figures 5 and 6. For example, the analog modulation unit 222 may determine analog symbols based on pairs of amplitude values. The analog symbols may correspond to the phase shift and power of a point in the IQ plane having coordinates indicated by the amplitude value pairs. The analog modulation unit 222 may modulate the analog signal between symbol sampling times based on the determined phase shift and power. The modem 108 may be configured to output an analog signal (1608).

[0117]

[0142] Figure 17 is a flowchart illustrating an exemplary method for decoding video data using one or more techniques of the present disclosure. In the example of Figure 17, the analog demodulation unit 314 of the video decoder 300 may determine amplitude values ​​for a plurality of coefficient vectors based on the analog signal (1700). The analog demodulation unit 314 may perform analog amplitude demodulation according to examples provided elsewhere in the present disclosure, for example, the examples described with respect to Figures 5 and 6. For example, the analog demodulation unit 314 may determine the phase shift and power at the symbol sampling time of the analog signal. The analog demodulation unit 315 may determine a point in the IQ plane indicated by the determined phase shift and power. The analog demodulation unit 314 may then determine an amplitude value pair as the coordinates of the point in the IQ plane.

[0118]

[0143] For each of the coefficient vectors, the unpacking unit 316 may determine the coefficients in the coefficient vector based on the amplitude values ​​and mapping pattern relating to the coefficient vector (1702). For each of the multiple allowable coefficient vectors, the mapping pattern may map each allowable coefficient vector to each of the amplitude values ​​of the multiple amplitude values. Each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the multiple amplitude values ​​adjacent to each amplitude value on the monotonic number line of amplitude values. Each of the coefficient vectors may contain n of the coefficients. Figures 9 to 15 described above show exemplary mapping patterns that the unpacking unit 316 may use to determine the amplitude values ​​relating to the coefficient vectors. Thus, in some examples, the mapping pattern may be an S-snake pattern, an M-snake pattern, an MS-snake pattern, or one of the other types of mapping patterns. The value n may be 2 or greater. In some examples, the unpacking unit 316 may determine the coefficients in the coefficient vector as coordinates of positions in n-dimensional space corresponding to amplitude values, where the mapping pattern maps different positions in n-dimensional space to different amplitude values ​​among multiple amplitude values. In some examples, the coefficient vector includes one or more negative coefficients and one or more positive coefficients. In other examples, the coefficient vector may include only non-negative coefficients.

[0119]

[0144] In some examples, such as the example in Figure 7, as part of determining the coefficients, the video decoder 300 may obtain a sign value (for example, via the digital path of the modem 122), where the sign value indicates the positive / negative sign of the coefficient in the coefficient vector. In such examples, the video decoder 300 may determine the absolute value of the coefficient in the coefficient vector based on the amplitude value and mapping pattern with respect to the coefficient vector. The video decoder 300 may reconstruct the coefficient in the coefficient vector by applying the sign value to the absolute value of the coefficient in the coefficient vector, at least partially. In some examples, such as the example in Figure 8, as part of determining the coefficients, the video decoder 300 may obtain data representing a shift value (for example, via the digital path of the modem 122). In such examples, the shift value indicates the most negative coefficient among the coefficients in the coefficient vector. In addition, in such examples, the video decoder 300 may determine an intermediate value of the coefficient in the coefficient vector based on the amplitude value and mapping pattern with respect to the coefficient vector. The video decoder 300 may reconstruct the coefficient in the coefficient vector by adding the shift value to each of the intermediate values ​​of the coefficient in the coefficient vector, at least partially.

[0120]

[0145] Furthermore, in the example of Figure 17, the video decoder 300 may generate video data based on the coefficients in the coefficient vector (1704). For example, in one example, the inverse quantization unit 318 of the video decoder 300 may inverse quantize the coefficients of the coefficient vector. In this example, the de-binarization unit 320 of the video decoder 300 may perform a de-binarization process to convert the coefficients into digital sample values. For example, the de-binarization unit 320 may apply an inverse DCT to the coefficients to convert the coefficients into digital sample values. In this way, the analog reconstruction unit 308 may generate digital sample values. Furthermore, in this example, the entropy decoding unit 304 of the video decoder 300 may obtain digital values ​​(for example, via the digital path of the modem 122). The video decoder 300 may generate prediction data based on the digital values. For example, the entropy decoding unit 304 may perform an entropy decoding process on the digital values ​​to generate quantized digital sample values. The inverse quantization unit 306 of the video decoder 300 may generate prediction data by inverse quantizing the quantized digital sample values. The reconstruction unit 310 of the video decoder 300 may generate video data based on the prediction data and residual data by, for example, adding the corresponding digital sample values ​​of the prediction block to the digital sample values ​​generated by the analog reconstruction unit 308. In this way, the video decoder 300 can generate video data based on the coefficients in the coefficient vector. In other examples, the video decoder 300 may perform more, fewer, or different actions. For example, in some examples, the inverse quantization step performed by the inverse quantization unit 306 and / or the inverse quantization unit 318 is omitted. In some examples, the video decoder 300 may omit the entropy decoding process performed by the entropy decoding unit 304.

[0121]

[0146] According to one or more techniques of the present disclosure, the packing unit 220 may perform an interlacing process that integrates multiple coefficients into a single amplitude value. Performing an interlacing process may improve noise immunity and provide compression gains compared to using two or more different symbol sampling points to send two or more non-interlaced analog symbols. The packing unit 220 may perform an interlacing process to generate amplitude values ​​instead of a process described elsewhere in the present disclosure that uses a mapping pattern to generate amplitude values ​​with respect to coefficient vectors.

[0122]

[0147] Figure 18 is a conceptual diagram illustrating a first example of interlacing by one or more techniques of the present disclosure. In the example of Figure 18, the first coefficient 1800 consists of 4 bits (i.e., bits a0 to a3), and the second coefficient 1802 consists of 4 bits (i.e., bits b0 to b3). Generally, interlacing refers to inserting bits of one or more coefficients between bits of another coefficient (for example, in an alternating pattern, a round-robin pattern, or other types of patterns). The packing unit 220 of the video encoder 200 may perform an interlacing process to generate an amplitude value 1804 by interlacing the bits of coefficient 1800 with the bits of coefficient 1802. The present disclosure may refer to the amplitude value generated by performing the interlacing process as the “interlaced amplitude value”.

[0123]

[0148] The analog modulation unit 222 may use pairs of interlaced amplitude values ​​in the same manner as the amplitude values ​​described elsewhere in this disclosure. The unpacking unit 316 of the video decoder 300 may receive interlaced amplitude values ​​from the analog demodulation unit 314 and perform a deinterlacing process to reconstruct coefficients from the interlaced amplitude values. For example, in the context of Figure 18, the unpacking unit 316 may perform a deinterlacing process to reconstruct coefficients 1800 and 1802 from the interlaced amplitude value 1804.

[0124]

[0149] Figure 19 is a conceptual diagram illustrating a second example of interlacing by one or more techniques of the present disclosure. In the example of Figure 19, the packing unit 220 of the video encoder 200 performs an interlacing process to interlace bits of coefficients 1900, 1902, 1904, and 1906 to produce an interlaced amplitude value 1908. The unpacking unit 316 of the video decoder 300 performs a deinterlacing process to deinterlace bits of the interlaced amplitude value 1908 to form coefficients 1900, 1902, 1904, and 1906.

[0125]

[0150] In some examples, the packing unit 220 may dynamically select between different interlacing processes. As can be seen from Figures 18 and 19, the interlaced amplitude value may contain a different number of bits depending on the interlacing process used to generate the amplitude value from the coefficients. Various characteristics of the channel through which the source device 102 transmits the analog signal may define the spectral efficiency of the channel. The spectral efficiency of the channel indicates how many bits may be used in the amplitude value. For example, if there is more noise in the channel, the spectral efficiency may be lower, and therefore the amplitude value may have fewer bits. Thus, the packing unit 220 may determine the value x based on the spectral efficiency of the channel and the number of bits per coefficient. For example, the packing unit 220 may determine the value x as the spectral efficiency divided by the number of bits per coefficient. The packing unit 220 may then use an interlacing process that interlaces the bits of the x coefficient to form the interlaced amplitude value. In this way, the packing unit 220 may select an interlacing process from several interlacing processes based on the spectral efficiency of the channel through which the analog signal is transmitted. The unpacking unit 316 of the video decoder 300 may select a deinterlacing process from a plurality of deinterlacing processes. For example, the video encoder 200 may signal data indicating the interlacing process (for example, via a digital path). In some examples, each of the deinterlacing processes deinterlaces a different number of coefficients from the interlaced amplitude values.

[0126]

[0151] Interlaced amplitude values ​​may be sensitive to noise at certain values. For example, a change in the power or phase of the analog signal between symbol sampling points may result in an addition of 1 to the interlaced amplitude value determined by the analog demodulation unit 314 for the symbol sampling point. A change in the packed amplitude value may result in a significant difference between the original digital sample value and the digital sample value derived from the interlaced amplitude value.

[0127]

[0152] Figure 20 is a block diagram illustrating the exemplary effect of noise on the coding process. In the example in Figure 20, the binarization unit 216 of the video encoder 200 may receive two digital sample values, each equal to 7. The binarization unit 216 may convert the digital sample values ​​into coefficients, both equal to 0111. The packing unit 220 may perform an interlacing process to interlace the bits of the coefficients to produce an interlaced amplitude value of 0011_1111 (equal to 63 in decimal). The analog modulation unit 222 (labeled D2A in Figure 20, representing digital to analog) may then perform analog modulation to modulate the analog signal based on the interlaced amplitude value. The analog signal may be transmitted through channel 2000.

[0128]

[0153] During the transmission of an analog signal over channel 2000, noise can cause a one-bit change in the interlaced amplitude values ​​demodulated from the analog signal by the analog demodulation unit 314 (labeled A2D in Figure 20, representing analog to digital). For example, a change in the power or phase shift of the analog signal between symbol sampling points can cause the analog demodulation unit 314 to determine a point in the IQ plane different from the point in the IQ plane corresponding to the original amplitude value pair. Thus, the interlaced amplitude value determined by the analog demodulation unit 314 may be equal to 64 instead of 63. As shown in the example in Figure 20, the interlaced amplitude value may be represented in binary as 0100_0000. The unpacking unit 316 may perform a deinterlacing process that converts the interlaced amplitude value 0100_0000 to coefficients 0000 and 1000. The de-binarization unit 320 may convert these coefficients to digital sample values ​​equal to 0 and 8 in the example in Figure 20. Note that the digital sample values ​​of 0 and 8 differ significantly from the original digital sample value of 7. This difference can have a significant negative impact on the quality of the decoded picture based on these digital sample values. Note that this noise vulnerability occurs primarily with respect to certain interlaced amplitude values. However, this noise vulnerability is not as severe with respect to other interlaced amplitude values.

[0129]

[0154] According to one or more techniques of the present disclosure that can address this problem, the packing unit 220 may remap interlaced amplitude values ​​to interlaced amplitude values ​​in exchange for interlaced amplitude values ​​such that there are gap values ​​on the interlaced amplitude value number line at positions between noise-sensitive interlaced amplitude values ​​on the interlaced amplitude value number line. Noise-sensitive interlaced amplitude values ​​on the interlaced amplitude value number line are interlaced amplitude values ​​where adding minimal noise (e.g., a 1-bit flip) can cause a significant change to the digital sample value determined based on the interlaced amplitude value. When the analog demodulation unit 314 determines that an interlaced amplitude value demodulated from an analog signal is one of the gap values, the analog demodulation unit 314 may round the interlaced amplitude value to the nearest ungapped interlaced amplitude value.

[0130]

[0155] Figure 21 is a conceptual diagram illustrating a gap range by one or more techniques of the present disclosure. In the example of Figure 21, the number line 2100 corresponds to a range of interlaced amplitude values. Each block in the number line 2100 may correspond to a series of interlaced amplitude values ​​between noise-sensitive interlaced amplitude values. The number line 2100 conceptually illustrates the insertion of gap values ​​between noise-sensitive interlaced amplitude values. In detail, in the example of Figure 21, the dark bars correspond to a range of gap values ​​(i.e., a gap range). The width of the gap range may correlate with the number of bits changed in the binary representation of the interlaced amplitude value from noise, which changes the decimal value of the interlaced amplitude value by one value (for example, it may be proportional to that number of bits or have some other relationship with it). For example, as shown in the number line 2104 of Figure 21, two gap values ​​may be inserted between 15 and 16, four gap values ​​may be inserted between 31 and 32, two gap values ​​may be inserted between 47 and 48, and so on.

[0131]

[0156] Therefore, as shown in the number line 2106 of Figure 21, the analog modulation unit 222 may map interlaced amplitude values ​​0-15 to interlaced amplitude values ​​0-15, interlaced amplitude values ​​16-31 to interlaced amplitude values ​​18-33, interlaced amplitude values ​​32-47 to interlaced amplitude values ​​38-53, interlaced amplitude values ​​48-63 to interlaced amplitude values ​​56-71, and so on. Therefore, the analog demodulation unit 314 may instead convert interlaced amplitude values ​​0-15 back to their corresponding interlaced amplitude values ​​0-15, instead convert interlaced amplitude values ​​16-17 (i.e., gap values) back to interlaced amplitude values ​​15 and 16 respectively, instead convert interlaced amplitude values ​​18-33 back to their corresponding interlaced amplitude values ​​16-31, instead convert interlaced amplitude values ​​34-35 (i.e., gap values) back to interlaced amplitude value 31, instead convert interlaced amplitude values ​​36-37 (i.e., gap values) back to interlaced amplitude value 32, instead convert interlaced amplitude values ​​38-53 back to their corresponding interlaced amplitude values ​​32-37, and so on.

[0132]

[0157] Figure 22 is a flowchart illustrating exemplary methods for encoding video data using one or more techniques of the present disclosure. In the example of Figure 22, a prediction unit 204 may generate prediction data for the video data (2200). In addition, a residual generation unit 212 may generate residual data based on the prediction data and the digital sample values ​​of the video data (2202). For example, the residual generation unit 212 may subtract the digital sample value of the prediction data from the corresponding digital sample value of the video data to generate the digital sample value of the residual data.

[0133]

[0158] The analog compression unit 214 may generate coefficients based on residual data (2204). For example, the binarization unit 216 may perform a binarization process that generates coefficients based on residual data. In this example, the quantization unit 218 may perform a quantization process that quantizes the coefficients.

[0134]

[0159] According to the techniques of the present disclosure, the packing unit 220 may perform an interlacing process to generate an interlaced amplitude value (2206). The interlacing process interlaces two or more bits of a coefficient to generate an interlaced amplitude value. For example, in the example of Figure 19, the interlacing process interlaces two bits of the coefficient to generate an interlaced amplitude value. For example, in the example of Figure 20, the interlacing process interlaces four bits of the coefficient to generate an interlaced amplitude value. In some examples, the packing unit 220 selects an interlacing process from a plurality of interlacing processes based on the spectral efficiency of the channel through which the analog signal is transmitted. In some such examples, each of the interlacing processes interlaces a different number of coefficients to generate an interlaced amplitude value.

[0135]

[0160] Furthermore, the video encoder 200 may be configured to generate digital values ​​based on predicted data (2208). For example, the quantization unit 206 may generate quantized digital sample values ​​based on digital sample values ​​in the predicted data. In this example, the entropy coding unit 208 may perform an entropy coding process that generates digital values ​​based on the quantized digital sample values.

[0136]

[0161] The modem 108 may be configured to output one or more analog signals modulated based on interlaced amplitude values ​​and digital values ​​(2210). For example, the analog modulation unit 222 may determine analog symbols corresponding to amplitude value pairs containing interlaced amplitude values. The modem 108 may transmit analog signals between symbol sampling times based on phase shifts and power corresponding to the analog symbols. The modem 108 may also transmit analog signals based on digital values, for example, in the manner described with respect to Figure 4.

[0137]

[0162] In some examples, the analog modulation unit 222 performs a mapping process that maps interlaced amplitude values ​​from the original number line (e.g., number line 2100 in Figure 21) to mapped values ​​on an alternative number line (e.g., alternative number line 2106 in Figure 21) that includes one or more gap ranges. The gap ranges may be located at positions on the original number line that correlate with the effect of noise with respect to bit flips in the interlaced amplitude values ​​demodulated from the analog signal. The mapping process does not map any interlaced amplitude value to any value in one or more gap ranges. The analog modulation unit 222 may generate amplitude value pairs that include the mapped values. The analog modulation unit 222 may then determine analog symbols based on the mapped values. The modem 108 may modulate the analog signal based on the analog symbols. Therefore, the modem 108 may modulate the analog signal based on the mapped values.

[0138]

[0163] Figure 23 is a flowchart illustrating exemplary methods for decoding video data using one or more techniques of the present disclosure. In the example of Figure 23, the analog demodulation unit 314 may determine interlaced amplitude values ​​based on the analog signal (2300). In some examples, as part of determining interlaced amplitude values ​​based on the analog signal, the modem 112 may determine the analog symbols corresponding to the phase shift and power at the symbol sampling time of the analog signal. The interlaced amplitude values ​​may be the I or Q components of the coordinates of the analog symbols in the IQ plane.

[0139]

[0164] In some examples, the mapped values ​​may be the I or Q components of the coordinates of an analog symbol in the IQ plane. The mapped values ​​may be generated using a mapping process that maps interlaced amplitude values ​​on the original number line (e.g., number line 2100 in Figure 21) to mapped values ​​on an alternative number line containing one or more gap ranges (e.g., alternative number line 2106 in Figure 21). The gap ranges may be located at positions on the original number line that correlate with the effects of noise with respect to bit flips in the interlaced amplitude values ​​demodulated from the analog signal, and the mapping process does not map any of the interlaced amplitude values ​​to any of the values ​​in one or more gap ranges. In this example, the analog demodulation unit 314 may use the inverse of the mapping process to map the mapped values ​​to the interlaced amplitude values. In some examples, the mapped values ​​determined by demodulating the analog signal lie in one of the gap ranges. In such cases, the inverse of the mapping process maps the mapped values ​​within the gap range to the interlaced amplitude values ​​on the original number line. In this way, the analog demodulation unit 314 may be able to reduce the effects of noise on the analog signal.

[0140]

[0165] Therefore, in such an example, the analog demodulation unit 314 may demodulate the analog signal to determine a mapped value produced using a mapping process that maps interlaced amplitude values ​​on the original number line to mapped values ​​on an alternative number line containing one or more gap ranges, where the gap ranges are located on the original number line at positions that correlate with the effect of noise with respect to bit flips in the interlaced amplitude values ​​demodulated from the analog signal, and the mapping process does not map any of the interlaced amplitude values ​​to any of the values ​​in one or more gap ranges. The analog demodulation unit 314 may use the inverse of the mapping process to map the mapped value to the interlaced amplitude value.

[0141]

[0166] Furthermore, in the example of Figure 23, the unpacking unit 316 may perform a deinterlacing process to generate two or more coefficients (2302). Bits of the two or more coefficients are interlaced in the interlaced amplitude value. In some examples, the deinterlacing process deinterlaces two bits of the coefficients (for example, the reverse of the interlacing process shown in the example of Figure 18). In some examples, the deinterlacing process deinterlaces four bits of the coefficients from the interlaced amplitude value (for example, the reverse of the interlacing process shown in the example of Figure 19). In some examples, the unpacking unit 316 may select a deinterlacing process from several deinterlacing processes based on the data transmitted in one or more analog signals. In some such examples, each of the deinterlacing processes deinterlaces a different number of coefficients.

[0142]

[0167] The analog reconstruction unit 308 can generate residual data based on two or more coefficients (2304). For example, the inverse quantization unit 318 can perform an inverse quantization process that inversely quantizes the coefficients. The de-binarization unit 320 can perform a de-binarization process that generates residual data based on the coefficients.

[0143]

[0168] In addition, the video decoder 300 can acquire digital values ​​(2306). For example, the modem 122 may be configured to acquire digital values ​​and provide those digital values ​​to the video decoder 300. The video decoder 300 can generate prediction data based on the digital values ​​(2308). For example, the entropy decoding unit 304 may perform an entropy decoding process that generates quantized digital sample values ​​based on the digital values. The inverse quantization unit 306 may perform an inverse quantization process that generates digital sample values ​​of prediction data based on the inversely quantized digital sample values. The reconstruction unit 310 of the video decoder 300 can reconstruct the video data based on the prediction data and residual data (2310). For example, the reconstruction unit 310 may add the digital sample values ​​of the prediction data to the corresponding digital sample values ​​of the residual data in order to reconstruct the digital sample values ​​of the video data.

[0144]

[0169] Figure 24 is a block diagram showing an exemplary analog compression unit 2400 using a variable symbol rate according to one or more techniques of the present disclosure. The analog compression unit 2400 may be used in place of the analog compression unit 214 in Figure 2. In the example of Figure 24, the analog compression unit 2400 may include a block segmentation unit 2402, a block dynamic quantization unit 2404, a spectral efficiency unit 2406, a packing unit 2408, a scaling unit 2410, and an analog modulation unit 2412.

[0145]

[0170] The block segmentation unit 2402 can receive residual data and segment the residual data into two-dimensional blocks. In other words, the block segmentation unit 2402 can divide a residual image of size N into N / K blocks, where K is the number of coefficients per block. The K coefficients per block i are b 0,i ,b 1,i ... k,i This can be expressed as, where i = 0, 1, ..., N / K-1. In some examples, the block segmentation unit 2404 may adaptively select the size of a block based on one or more characteristics of the block's content. For example, the block segmentation unit 2404 may select a larger block size for blocks in areas of a picture that contain relatively uniform digital sample values, and a smaller block size for areas of a picture that contain less uniform digital sample values. In some examples, the block segmentation unit 2402 may apply a transformation to the residual data of a block to generate the block coefficients. For example, the block segmentation unit 2402 may apply a DCT (e.g., integer DCT) or other transformation to the residual data of a block to generate the block coefficients. In some examples, the block coefficients may be residual digital sample values.

[0146]

[0171] For each block i, the block dynamic quantization unit 2404 may quantize block i to generate quantization coefficients, each consisting of Q bits. The value of Q may differ for different blocks. Therefore, this disclosure defines the number of bits used to quantize the coefficients of block i as Q. i This can be shown as follows: The quantization coefficient c of block i (where block i has size k) is c 0,i ,c 1,i ,...,c k,i It is shown as follows.

[0147]

[0172] In some examples, the block dynamic quantization unit 2404 may quantize the block coefficients based on the total entropy of the picture. For example, if the picture contains large areas of uniform color (e.g., large areas of blue sky), the total entropy of the picture may be relatively low. Therefore, when the total entropy of the picture is relatively low, a higher level of quantization may be used without significantly degrading the quality of the decoded picture. Using a higher level of quantization may reduce the amount of information required to represent the encoded version of the picture. However, if the picture contains large areas of complex and rapidly changing color, the total entropy of the picture may be relatively high. Therefore, when the total entropy of the picture is relatively high, a higher level of quantization may significantly degrade the quality of the decoded picture. In some examples, the block dynamic quantization unit 2404 may use a predefined mapping or formula to convert entropy into quantization parameters that the block dynamic quantization unit 2404 uses to quantize the block coefficients. In some examples, the block dynamic quantization unit 2404 may quantize a block based on the total entropy of the block itself, rather than the total entropy of the picture.

[0148]

[0173] Since the block dynamic quantization unit 2404 applies dynamic quantization to the block, at least partially, the number of bits per block (i.e., the number of bits representing each quantization coefficient in the block) can vary from block to block. In the example in Figure 22, block 2414 represents the number of bits.

[0149]

[0174] The spectral efficiency unit 2406 can determine the spectral efficiency of the channel through which the source device 102 transmits analog symbols. Methods for determining spectral efficiency may be defined in several transmission standards, such as the 5G standard. Spectral efficiency may indicate the number of bits that the source device 102 can transmit through the channel to the destination device 116 in amplitude values ​​between symbol sampling points. In other words, spectral efficiency may correspond to the number of bits that can be used in amplitude values.

[0150]

[0175] The spectral efficiency of a channel can change over time. For example, it can be affected by environmental conditions (e.g., rain, fog, snow, etc.). In some cases, the spectral efficiency of a channel may change as the source device 102 and / or destination device 116 move inside or outside a building. In some cases, the spectral efficiency of a channel may change as the source device 102 and / or destination device 116 move closer to or further away from a wireless base station. In some cases, the spectral efficiency of a channel may change due to reflections from buildings or terrain.

[0151]

[0176] In some examples, modem 108 may transmit and receive data using a multiple-input multiple-output (MIMO) method. When transmitting data using the MIMO method, modem 108 may use multiple antennas to transmit and receive data. Sending data over different antennas can be analogous to sending data over different channels. Different spectral efficiencies may exist for these different channels. In this context, the different channels used in MIMO are sometimes called layers. Therefore, the spectral efficiency unit 2406 may determine different spectral efficiencies for each layer.

[0152]

[0177] Similar to the above description regarding the packing unit 220, the packing unit 2408 can generate a coefficient vector and determine an amplitude value regarding the coefficient vector based on a mapping pattern. In the context of FIG. 24, each coefficient in the coefficient vector belongs to the same block. In some cases, there may be a single coefficient vector for a block. In other examples, there may be multiple coefficient vectors for a block. Moreover, similar to the above description regarding the analog modulation unit 222, the analog modulation unit 2412 can determine an analog symbol based on a pair of amplitude values. The analog modulation unit 2412 can modulate an analog signal based on the analog symbol.

[0153]

[0178] In an example where the modem 108 uses the MIMO method, the analog symbols determined by the analog modulation unit 2412 based on the amplitude values can be dispersed among different layers. In an example where the modem 108 does not use MIMO (for example, when only a single antenna is used), there may be only a single layer, and the spectral efficiency unit 2406 can determine the spectral efficiency of this single layer. In either case, the modem 108 can use the same layer to transmit an analog signal representing an analog symbol based on the amplitude value regarding the coefficient vector including the coefficients of the same block (i.e., block i). Therefore, the spectral efficiency of the layer to which the analog symbol determined based on the amplitude value regarding the coefficient vector including the quantization coefficients of block i is sent can be shown as SE i and the number of bits per block of block i can be shown as Q i as shown.

[0154]

[0179] When the packing unit 2408 is performing a packing operation to convert a coefficient vector including the quantization coefficients of a block into an amplitude value, the packing unit 2408 has a spectral efficiency per layer 2416 (SE i ) for block i and the number of bits per block 2414 (Q i) and can be used. More specifically, the packing unit 2408 may dynamically select, for example, per block, the number of dimensions of the mapping pattern that the packing unit 2408 uses to determine the amplitude values ​​for the coefficient group. In other words, the packing unit 2408 may dynamically select, for example, per block, the number of coefficients n in each coefficient vector. A higher value of n may result in greater compression with respect to the number of bits used to represent the amplitude values ​​with respect to the coefficient vector relative to the number of bits used to represent the coefficients in the coefficient vector, and a lower value of n may result in less compression, so the amplitude values ​​determined by the packing unit 2408 may have a variable bitrate. The value n in block i is n i It can be shown as follows.

[0155]

[0180] As mentioned above, the packing unit 2408 has 2414 bits per block (i.e., Q i ) and spectral efficiency per layer 2416 (i.e., SE i ) can be used to determine the mapping pattern. For example, packing unit 2408 is SE i One dimension and Q i A predefined two-dimensional table having one dimension of n can be used. The values ​​in the cells of the table are n i This indicates the value of (i.e., the number of coefficients in the coefficient vector that contains the coefficients of block i). In some examples, packing unit 2408 is SE i Q i By dividing by n i The value of can be determined. In other words, SE i is, n i Q i It can be approximately equal to the result of multiplying by .

[0156]

[0181] In some examples, packing unit 2408 is SE i and Q i Based on this, the value n i This can be determined. Packing unit 2408 is n iA mapping pattern using dimensional space can be determined. In some examples, packing unit 2408 is the same n i Multiple mapping patterns using dimensional space can be selected. In some examples, the mapping pattern can be asymmetric in the sense that there may be more tolerances (e.g., tolerances for quantization coefficients) in some dimensions than in others. For example, referring to the example in Figure 9, there may be more available numbers on the x-axis than on the y-axis. The use of such an asymmetric mapping pattern is Q of block i. i The Q of block j j It may be useful in different cases. Q i is equal to 2, SE i In the example where is equal to 8 bits, each contains 2 bits (i.e., Q i =2) Four quantization coefficients (i.e., n i =4) can be packed into a single 8-bit amplitude value. In another example, SE i is equal to 8 bits, Q i Q is equal to 4. j If equal to 2, the packing unit 2408 may pack one quantization coefficient of block i and two quantization coefficients of block j to produce a single amplitude value.

[0157]

[0182] Since the value of n can change from block to block, the video encoder 200 can send the value of n to the video decoder 300. In some examples, the video encoder 200 can send the value of n through a digital path. In some examples, the video encoder 200 can send the value of n when it changes, but not necessarily send the value of n separately for each block.

[0158]

[0183] The power scaling unit 2410 multiplies the amplitude value by a dynamically selected scaling value. In this way, the power scaling unit 2410 can generate a scaled amplitude value. The power scaling unit 2410 may select a scaling value to ensure a consistent power output of the amplitude value. Furthermore, in the example in Figure 24, the analog modulation unit 2412 may modulate the analog signal based on the scaled amplitude value. For example, in some examples, the analog modulation unit 2412 may determine analog symbols based on pairs of scaled amplitude values. The modem 108 may transmit the analog signal such that the analog signal has the phase shift and power corresponding to the analog symbol during the symbol sampling time corresponding to the analog symbol.

[0159]

[0184] An analog decompression unit configured to operate with respect to the analog compression unit 2400 in Figure 24 may generally operate similarly to the analog decompression unit 308 (and its components) as described elsewhere in this disclosure. However, in some examples, the unpacking unit 316 may obtain a representation of the value of n (which the video encoder 200 may signal via the digital path) and use an appropriate mapping pattern for the received value of n to unpack the coefficient from the amplitude value.

[0160]

[0185] Figure 25 is a flowchart illustrating exemplary methods for encoding video data using one or more techniques of the present disclosure. In the example of Figure 25, the video encoder 200 may generate coefficients based on the digital sample values ​​of the video data (2500). In some examples, as part of generating coefficients based on the video data, a prediction unit 204 (Figure 2) may generate prediction data of the video data. A residual generation unit 212 may generate residual data based on the prediction data and the digital sample values ​​of the video data. An analog compression unit 214 may generate coefficients based on blocks of digital sample values ​​in the residual data. For example, a binarization unit 216 may perform a binarization process to generate coefficients based on the residual data, and a block dynamic quantization unit 2404 may perform a quantization process to quantize the coefficients. Furthermore, in some examples, the video encoder 200 may generate digital values ​​based on the prediction data. For example, a quantization unit 206 may quantize the digital sample values ​​of the prediction data, and an entropy coding unit 208 may entropy code the quantized digital sample values ​​to generate digital values. The modem 108 may be configured to transmit digital values. For example, the modem 108 may be configured to generate a bit sequence based on a digital value and modulate an analog signal based on the bit sequence.

[0161]

[0186] In addition, the spectral efficiency unit 2406 determines the spectral efficiency of the channel (2502). Furthermore, the packing unit 2408 may determine the value n based on the spectral efficiency of the channel and the number of bits in the block quantization coefficient (2504). For example, the packing unit 2408 may retrieve the value n based on the spectral efficiency of the channel and the number of bits in the block quantization coefficient. In some examples, the modem 108 is configured to output data indicating the spectral efficiency of the channel. In some examples, the modem 108 is configured to output data indicating the value n.

[0162]

[0187] In addition, the packing unit 2408 can generate coefficient vectors (2506). Each coefficient vector contains n of the coefficients. For each coefficient vector, the packing unit 2408 can determine an amplitude value for the coefficient vector based on a mapping pattern. For each of the multiple allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each of the multiple amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the multiple amplitude values ​​adjacent to each amplitude value on the monotonic number line of the amplitude values. For example, the packing unit 2408 can determine a position in n-dimensional space. The coordinates of the position in n-dimensional space are based on the coefficients of the coefficient vector, and the mapping pattern maps different positions in n-dimensional space to different amplitude values ​​among the multiple amplitude values. In this example, the packing unit 2408 can determine the amplitude value for the coefficient vector as the amplitude value corresponding to the determined position in n-dimensional space.

[0163]

[0188] Source device 102 can modulate an analog signal based on amplitude values ​​with respect to coefficient vectors (2508). For example, analog modulation unit 222 can determine analog symbols based on amplitude values, and modem 108 can be configured to modulate the analog based on phase shift and power corresponding to the analog symbols. Modem 108 can output an analog signal on the channel (2510).

[0164]

[0189] Figure 26 is a flowchart illustrating an exemplary method for decoding video data using one or more techniques of the present disclosure. In the example of Figure 26, the modem 122 of the destination device 116 (Figure 1) may be configured to receive an analog signal transmitted over the channel (2600).

[0165]

[0190] The analog demodulation unit 314 (Figure 3) can demodulate an analog signal to determine amplitude values ​​with respect to a plurality of coefficient vectors (2602). The analog demodulation unit 314 can demodulate an analog signal to determine amplitude values ​​as described in any of the examples provided elsewhere in this disclosure.

[0166]

[0191] The unpacking unit 316 can determine the value n (2604). The value n is the spectral efficiency of the channel (e.g., SE i ) and the number of bits for the quantization coefficient of the block (for example, Q i ) is based on the following. For example, the unpacking unit 316 is SE i Q i The value of n can be determined by dividing by . In some examples, modem 133 is configured to receive data indicating the spectral efficiency of the channel.

[0167]

[0192] For each of the coefficient vectors, the unpacking unit 316 may determine the coefficients in the coefficient vector based on the amplitude values ​​and mapping pattern for the coefficient vector (2606). For each of the multiple allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each amplitude value in the multiple amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value in the multiple amplitude values ​​adjacent to each amplitude value on the monotonic number line of amplitude values. In some examples, as part of determining the coefficients in the coefficient vector, the unpacking unit 316 may determine the coefficients in the coefficient vector as coordinates of the position in n-dimensional space corresponding to the amplitude value, where the mapping pattern maps different positions in n-dimensional space to different amplitude values ​​in the multiple amplitude values.

[0168]

[0193] Furthermore, the video decoder 300 may generate video data based on coefficients in a coefficient vector (2608). In some examples, the modem 122 may be configured to output digital values ​​based on the received signal. In this example, the video decoder 300 may generate prediction data based on digital values. For example, the entropy decoding unit 304 may entropy decode digital values ​​to generate quantized digital sample values, and the inverse quantization unit 306 may inverse quantize quantized digital sample values ​​to generate prediction data. The analog reconstruction unit 308 may generate blocks of digital sample values ​​in residual data based on coefficients. For example, the inverse quantization unit 318 of the analog reconstruction unit 308 may perform an inverse quantization process to inverse quantize the coefficients, and the de-binarization unit 320 may perform a de-binarization process to generate residual data based on coefficients. The reconstruction unit 310 may generate digital sample values ​​of video data based on residual data and prediction data. For example, the reconstruction unit 310 may add the digital sample values ​​of the residual data to the corresponding digital sample values ​​of the prediction data in order to generate digital sample values ​​of the video data.

[0169]

[0194] Examples in various aspects of this disclosure may be used individually or in any combination.

[0170]

[0195] The following is a non-limiting list of embodiments of one or more techniques of this disclosure.

[0171]

[0196] Embodiment 1A. A method for encoding video data, comprising: generating coefficients based on video data; generating coefficient vectors, wherein each coefficient vector contains n of the coefficients; determining an amplitude value relating to each coefficient vector based on a mapping pattern; wherein, for each of a plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values; modulating an analog signal based on the amplitude value relating to the coefficient vector; and outputting an analog signal.

[0172]

[0197] Embodiment 2A. The method according to Embodiment 1A, wherein determining the amplitude value of a coefficient vector comprises determining a position in n-dimensional space, and thereby determining the amplitude value of the coefficient vector as the amplitude value corresponding to the determined position in n-dimensional space, wherein the coordinates of the position in n-dimensional space are based on the coefficients of the coefficient vector, and the mapping pattern maps different positions in n-dimensional space to different amplitude values ​​among a plurality of amplitude values.

[0173]

[0198] Embodiment 3A. The mapping pattern is the method according to Embodiment 1A or 2A, wherein unsigned coefficients are mapped to unsigned amplitude values.

[0174]

[0199] Embodiment 4A. The mapping pattern is the method according to Embodiment 1A or 2A, wherein signed coefficients are mapped to signed amplitude values.

[0175]

[0200] Embodiment 5A. The mapping pattern is the method according to Embodiment 1A or 2A, wherein unsigned coefficients are mapped to signed amplitude values.

[0176]

[0201] The method according to any one of embodiments 1A to 5A, wherein embodiment 6A.n is 2 or more.

[0177]

[0202] Embodiment 7A. The method according to any one of Embodiments 1A to 3A or 5A or 6A, wherein generating coefficients based on video data comprises generating initial coefficients based on video data, generating a sign value indicating the positive / negative sign of the initial coefficients, and generating a coefficient as the absolute value of the initial coefficients, the method further comprising signaling data representing the sign value.

[0178]

[0203] Embodiment 8A. The method according to any one of Embodiments 1A to 3A or 5A or 6A, wherein the coefficient is a non-negative version of the initial coefficient, and generating the coefficient based on video data comprises generating an initial coefficient based on video data, determining a shift value based on the most negative initial coefficient among the initial coefficients, and performing a process of converting the initial coefficient to a non-negative version of the initial coefficient based on the shift value, the method further comprises signaling data representing the shift value.

[0179]

[0204] Embodiment 9A. The method according to any one of Embodiments 1A, 2A, 4A, and 6A to 8A, wherein the coefficient vector includes one or more negative coefficients and one or more positive coefficients.

[0180]

[0205] Embodiment 10A. A method according to any one of Embodiments 1A to 9A, wherein generating coefficients based on video data comprises generating prediction data of video data, generating residual data based on the prediction data and digital sample values ​​in the video data, and generating coefficients based on the residual data, the method further comprising generating digital values ​​based on the prediction data and transmitting the digital values.

[0181]

[0206] Embodiment 11A. The method according to Embodiment 10A, wherein generating coefficients based on residual data comprises performing a binarization process to generate coefficients based on residual data and performing a quantization process to quantize the coefficients.

[0182]

[0207] Embodiment 12A. The method according to Embodiment 10A or 11A, wherein generating digital values ​​based on prediction data comprises generating quantized digital sample values ​​based on digital sample values ​​in prediction data and performing an entropy coding process to generate digital values ​​based on the quantized digital sample values.

[0183]

[0208] Embodiment 13A. A method for decoding video data, comprising: determining amplitude values ​​for a plurality of coefficient vectors based on an analog signal; determining the coefficients in the coefficient vectors for each of the coefficient vectors based on the amplitude values ​​for the coefficient vectors and a mapping pattern; wherein, for each of the plurality of tolerance coefficient vectors, the mapping pattern maps each tolerance coefficient vector to each of the amplitude values ​​of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values, and generating video data based on the coefficients in the coefficient vectors.

[0184]

[0209] Embodiment 14A. The method according to Embodiment 13A, wherein determining the coefficients in a coefficient vector based on amplitude values ​​of the coefficient vector comprises determining the coefficients in the coefficient vector as coordinates of positions in an n-dimensional space corresponding to the amplitude values, wherein the mapping pattern maps different positions in an n-dimensional space to different amplitude values ​​among a plurality of amplitude values.

[0185]

[0210] Embodiment 15A. The mapping pattern is the method according to Embodiment 13A or 14A, wherein unsigned coefficients are mapped to unsigned amplitude values.

[0186]

[0211] Embodiment 16A. The mapping pattern is the method according to Embodiment 13A or 14A, wherein signed coefficients are mapped to signed amplitude values.

[0187]

[0212] Embodiment 17A. The mapping pattern is the method according to Embodiment 13A or 14A, wherein unsigned coefficients are mapped to signed amplitude values.

[0188]

[0213] Embodiment 18A. The method according to any one of Embodiments 13A to 17A, wherein determining amplitude values ​​for a plurality of coefficient vectors comprises determining the analog symbol corresponding to the phase shift and power at the symbol sampling time of the analog signal, and determining the amplitude values ​​for the coefficient vectors as one of the coordinates of the analog symbol in the IQ plane.

[0189]

[0214] The method according to any one of embodiments 13A to 18A, wherein embodiment 19A.n is 2 or more.

[0190]

[0215] Embodiment 20A. A method according to any one of Embodiments 13A to 15A or 17A to 19A, wherein determining a coefficient in a coefficient vector based on amplitude values ​​and a mapping pattern comprises obtaining a sign value via the digital path of a modem, wherein the sign value indicates the positive / negative sign of the coefficient in the coefficient vector, determining the absolute value of the coefficient in the coefficient vector based on amplitude values ​​and a mapping pattern with respect to the coefficient vector, and reconstructing the coefficient in the coefficient vector by applying the sign value to the absolute value of the coefficient in the coefficient vector, at least partially.

[0191]

[0216] Embodiment 21A. A method according to any one of Embodiments 13A to 15A or 17A to 19A, wherein determining coefficients in a coefficient vector based on amplitude values ​​and a mapping pattern comprises: obtaining data representing a shift value via a modem's digital path, wherein the shift value represents the most negative coefficient among the coefficients in the coefficient vector; determining an intermediate value of the coefficients in the coefficient vector based on amplitude values ​​and a mapping pattern with respect to the coefficient vector; and reconstructing the coefficients in the coefficient vector by adding the shift value to each of the intermediate values ​​of the coefficients in the coefficient vector, at least partially.

[0192]

[0217] Embodiment 22A. The method according to any one of Embodiments 13A, 14A, 16A, or 18A to 21A, wherein the coefficient vector includes one or more negative coefficients and one or more positive coefficients.

[0193]

[0218] Embodiment 23A. A method according to any one of Embodiments 13A to 22A, wherein generating video data based on coefficients in a coefficient vector comprises acquiring digital values ​​via a digital path of a modem, generating prediction data based on the digital values, generating residual data based on coefficients in a coefficient vector, and generating video data based on the prediction data and the residual data.

[0194]

[0219] Embodiment 24A. The method according to Embodiment 23A, wherein generating residual data based on coefficients in a coefficient vector comprises performing an inverse quantization process to inversely quantize the coefficients in the coefficient vector, and performing a de-binarization process to generate residual data based on the inversely quantized coefficients in the coefficient vector.

[0195]

[0220] Embodiment 25A. The method according to Embodiment 23A or 24A, wherein generating predictive data based on digital values ​​comprises performing an entropy decoding process to generate digital sample values ​​based on digital values, and generating predictive data by at least partially inverse quantizing the digital sample values.

[0196]

[0221] Embodiment 26A. A device for encoding video data, comprising one or more processors implemented in a circuit, and one or more processors that generate coefficients based on video data, generate coefficient vectors, each of which coefficient vectors includes n of the coefficients, and for each of the coefficient vectors, determine an amplitude value relating to the coefficient vector based on a mapping pattern, wherein for each of the plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value in a monotonic number line of amplitude values, and a modem configured to modulate an analog signal based on the amplitude value relating to the coefficient vector.

[0197]

[0222] Embodiment 27A. The device according to Embodiment 26A, wherein one or more processors are configured to determine a position in an n-dimensional space, where the coordinates of the position in the n-dimensional space are based on the coefficients of the coefficient vector, and the mapping pattern maps different positions in the n-dimensional space to different amplitude values ​​among a plurality of amplitude values, and the one or more processors are configured to determine an amplitude value corresponding to the determined position in the n-dimensional space.

[0198]

[0223] Embodiment 28A. The device according to Embodiment 26A or 27A, wherein the mapping pattern maps unsigned coefficients to unsigned amplitude values.

[0199]

[0224] Embodiment 29A. The device according to any one of Embodiments 26A to 28A, wherein the mapping pattern maps signed coefficients to signed amplitude values.

[0200]

[0225] Embodiment 30A. The device according to any one of Embodiments 26A to 28A, wherein the mapping pattern maps unsigned coefficients to signed amplitude values.

[0201]

[0226] The device according to any one of embodiments 26A to 30A, wherein embodiment 31A.n is 2 or more.

[0202]

[0227] Embodiment 32A. The device according to any one of Embodiments 26A to 28A or 30A to 31A, wherein one or more processors are configured to generate initial coefficients based on residual data, generate sign values ​​indicating the positive / negative sign of the initial coefficients, and generate coefficients as absolute values ​​of the initial coefficients, and the modem is configured to transmit the sign values ​​over a digital path.

[0203]

[0228] Embodiment 33A. The device according to any one of Embodiments 26A to 28A or 30A or 31A, wherein the coefficient is a non-negative version of the initial coefficient, and one or more processors are configured to perform a process of generating an initial coefficient based on residual data, determining a shift value based on the most negative initial coefficient among the initial coefficients, and converting the initial coefficient to a non-negative version of the initial coefficient based on the shift value, the method further comprising signaling data representing the shift value.

[0204]

[0229] Embodiment 34A. The device according to any one of Embodiments 26A, 27A, 29A, or 31A to 33A, wherein the coefficient vector includes one or more negative coefficients and one or more positive coefficients.

[0205]

[0230] Embodiment 35A. The device according to any one of Embodiments 26A to 34A, wherein one or more processors are configured to generate prediction data from video data, generate residual data based on the prediction data and digital sample values ​​in the video data, and generate coefficients based on the residual data, and one or more processors are further configured to generate digital values ​​based on the prediction data, and a modem is configured to transmit the digital values.

[0206]

[0231] Embodiment 36A. The device according to Embodiment 35A, wherein one or more processors are configured to perform a binarization process to generate coefficients based on residual data and a quantization process to quantize the coefficients, as part of generating coefficients based on residual data.

[0207]

[0232] Embodiment 37A. The device according to Embodiment 35A or 36A, wherein one or more processors are configured to perform an entropy coding process that generates quantized digital sample values ​​based on digital sample values ​​in the prediction data, and generates digital values ​​based on the quantized digital sample values, as part of generating digital values ​​based on prediction data.

[0208]

[0233] Embodiment 38A. The device according to any one of Embodiments 26A to 37A, wherein the device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.

[0209]

[0234] Embodiment 39A. A device for decoding video data, comprising a modem configured to receive an analog signal and one or more processors implemented in the circuit, wherein the one or more processors are configured to: determine amplitude values ​​for a plurality of coefficient vectors based on the analog signal; determine the coefficients in the coefficient vectors for each of the coefficient vectors based on the amplitude values ​​for the coefficient vectors and a mapping pattern, wherein for each of the plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each of the amplitude values ​​of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values, and generate video data based on the coefficients in the coefficient vectors.

[0210]

[0235] Embodiment 40A. The device according to Embodiment 39A, wherein one or more processors are configured to determine the coefficients in the coefficient vector as coordinates of positions in an n-dimensional space corresponding to the amplitude values, as part of determining the coefficients in the coefficient vector based on the amplitude values ​​of the coefficient vector, wherein the mapping pattern maps different positions in the n-dimensional space to different amplitude values ​​among a plurality of amplitude values.

[0211]

[0236] Embodiment 41A. The device according to Embodiment 39A or 40A, wherein the mapping pattern maps unsigned coefficients to unsigned amplitude values.

[0212]

[0237] Embodiment 42A. The device according to Embodiment 39A or 40A, wherein the mapping pattern maps signed coefficients to signed amplitude values.

[0213]

[0238] Embodiment 43A. The device according to Embodiment 39A or 40A, wherein the mapping pattern maps unsigned coefficients to signed amplitude values.

[0214]

[0239] Embodiment 44A. The device according to any one of Embodiments 39A to 43A, wherein the modem is configured to determine an analog symbol corresponding to the phase shift and power at the symbol sampling time of an analog signal, and one or more processors are configured to determine the amplitude values ​​with respect to a plurality of coefficient vectors as one of the coordinates of an analog symbol in the IQ plane as part of determining the amplitude values ​​with respect to a plurality of coefficient vectors.

[0215]

[0240] A device according to any one of embodiments 39A to 44A, wherein embodiment 45A.n is 2 or more.

[0216]

[0241] Embodiment 46A. A device according to any one of Embodiments 39A to 41A or 43A to 45A, wherein one or more processors are configured to perform, as part of determining coefficients in a coefficient vector based on amplitude values ​​and a mapping pattern, one or more processors to perform: obtaining a sign value via a digital path of a modem, wherein the sign value indicates the positive / negative sign of the coefficients in the coefficient vector; determining the absolute value of the coefficients in the coefficient vector based on amplitude values ​​and a mapping pattern with respect to the coefficient vector; and reconstructing the coefficients in the coefficient vector by applying the sign value to the absolute value of the coefficients in the coefficient vector, at least in part.

[0217]

[0242] Embodiment 47A. The device according to any one of Embodiments 39A to 41A or 43A to 45A, wherein one or more processors are configured to acquire data representing a shift value via a digital path of a modem, wherein the shift value represents the most negative coefficient of the coefficients in the coefficient vector, and to determine an intermediate value of the coefficients in the coefficient vector based on the amplitude value and mapping pattern of the coefficient vector, and to reconstruct the coefficients in the coefficient vector by adding the shift value to each of the intermediate values ​​of the coefficients in the coefficient vector, at least partially.

[0218]

[0243] Embodiment 48A. The device according to any one of Embodiments 39A, 40A, 42A, 44A to 47A, wherein the coefficient vector includes one or more negative coefficients and one or more positive coefficients.

[0219]

[0244] Embodiment 49A. A device according to any one of Embodiments 39A to 48A, wherein one or more processors are configured to, as part of generating video data based on coefficients in a coefficient vector, acquire digital values ​​via a digital path of a modem, generate prediction data based on the digital values, generate prediction data for the current block of analog video data, generate residual data based on coefficients in a coefficient vector, and generate video data based on the prediction data and the residual data.

[0220]

[0245] Embodiment 50A. A device of Embodiment 49A, wherein one or more processors are configured to perform an inverse quantization process that inversely quantizes the coefficients in the coefficient vector, and a de-binarization process that generates residual data based on the coefficients in the coefficient vector, as part of generating residual data based on the coefficients in the coefficient vector.

[0221]

[0246] Embodiment 51A. The device according to Embodiment 49A or 50A, wherein one or more processors are configured to generate predictive data based on digital values ​​by performing an entropy decoding process that generates digital sample values ​​based on digital values, and at least partially dequantizing the digital sample values.

[0222]

[0247] Embodiment 52A. The device according to any one of Embodiments 39A to 51A, comprising one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.

[0223]

[0248] Embodiment 53A. A device for encoding video data, comprising: means for generating coefficients based on video data; means for generating coefficient vectors, wherein each coefficient vector contains n of the coefficients; means for determining an amplitude value relating to each coefficient vector based on a mapping pattern; wherein, for each of a plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each amplitude value of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values; and means for modulating an analog signal based on an amplitude value relating to a coefficient vector.

[0224]

[0249] Embodiment 54A. A device for decoding video data, comprising: means for determining amplitude values ​​for a plurality of coefficient vectors based on an analog signal; means for determining a coefficient in a coefficient vector for each of the coefficient vectors based on an amplitude value for the coefficient vector and a mapping pattern; wherein, for each of the plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each amplitude value of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values.

[0225]

[0250] Embodiment 55A. A computer-readable data storage medium storing instructions that, when executed, cause one or more processors to generate coefficients based on video data; generate coefficient vectors, wherein each coefficient vector contains n of the coefficients; determine amplitude values ​​for each coefficient vector based on a mapping pattern; wherein, for each of a plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each amplitude value of a plurality of amplitude values, and modulate an analog signal based on the amplitude values ​​for coefficient vectors, wherein each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values.

[0226]

[0251] Embodiment 56A. A computer-readable data storage medium storing instructions that, when executed, cause one or more processors to determine amplitude values ​​for a plurality of coefficient vectors based on an analog signal; determine the coefficients in the coefficient vectors for each of the coefficient vectors based on the amplitude values ​​for the coefficient vectors and a mapping pattern; wherein, for each of the plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each of the amplitude values ​​of a plurality of amplitude values, and each amplitude value generates video data based on the coefficients in the coefficient vectors, where each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values.

[0227]

[0252] Embodiment 1B. A method for encoding video data, comprising: generating coefficients based on digital sample values ​​of video data; determining the spectral efficiency of a channel to which an analog signal should be transmitted; determining a value n based on the spectral efficiency of the channel; generating a coefficient vector, wherein each of the coefficient vectors contains n of the coefficients; determining an amplitude value relating to the coefficient vector based on a mapping pattern for each of the coefficient vectors, wherein for each of a plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values; and modulating an analog signal based on the amplitude value relating to the coefficient vector; and outputting an analog signal on the channel.

[0228]

[0253] Embodiment 2B. The method of Embodiment 1B, wherein determining the amplitude value of a coefficient vector comprises determining a position in n-dimensional space, and thereby determining the amplitude value of the coefficient vector as the amplitude value corresponding to the determined position in n-dimensional space, wherein the coordinates of the position in n-dimensional space are based on the coefficients of the coefficient vector, and the mapping pattern maps different positions in n-dimensional space to different amplitude values ​​among a plurality of amplitude values.

[0229]

[0254] Embodiment 3B. The method of Embodiment 1B or 2B, wherein generating coefficients based on video data comprises generating prediction data of video data, generating residual data based on the prediction data and digital sample values ​​of video data, and generating coefficients based on blocks of digital sample values ​​in the residual data, the method further comprising generating digital values ​​based on prediction data and transmitting the digital values.

[0230]

[0255] Embodiment 4B. The method according to Embodiment 3B, wherein generating coefficients based on video data comprises performing a binarization process to generate coefficients based on residual data and performing a quantization process to quantize the coefficients.

[0231]

[0256] Embodiment 5B. The method according to Embodiment 4B, wherein determining the value n is based on the spectral efficiency of the channel and the number of bits of the block quantization coefficient.

[0232]

[0257] Embodiment 6B. The method according to any one of Embodiments 1B to 5B, further comprising outputting data indicating the spectral efficiency of a channel.

[0233]

[0258] Embodiment 7B. A method for decoding video data, comprising: receiving an analog signal transmitted through a channel; demodulating the analog signal to determine amplitude values ​​for a plurality of coefficient vectors; determining a value n, wherein the value n is based on the spectral efficiency of the channel; determining the coefficients in the coefficient vectors for each of the coefficient vectors based on the amplitude values ​​for the coefficient vectors and a mapping pattern, wherein for each of the plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each amplitude value of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values, and generating video data based on the coefficients in the coefficient vectors.

[0234]

[0259] Embodiment 8B. The method according to Embodiment 7B, wherein determining the coefficients in the coefficient vector comprises determining the coefficients in the coefficient vector as coordinates of positions in an n-dimensional space corresponding to amplitude values, wherein the mapping pattern maps different positions in an n-dimensional space to different amplitude values ​​among a plurality of amplitude values.

[0235]

[0260] Embodiment 9B. A method further comprising receiving digital values ​​and generating prediction data based on digital values, wherein generating video data based on coefficients in a coefficient vector comprises generating blocks of digital sample values ​​in residual data based on coefficients and generating digital sample values ​​of video data based on residual data and prediction data.

[0236]

[0261] Embodiment 10B. The method of Embodiment 9B, wherein generating blocks of digital sample values ​​in residual data based on coefficients comprises performing an inverse quantization process to inversely quantize the coefficients and performing a de-binarization process to generate residual data based on the coefficients.

[0237]

[0262] Embodiment 11B. The method according to Embodiment 10B, wherein the value n is based on the spectral efficiency of the channel and the number of bits of the block quantization coefficient.

[0238]

[0263] Embodiment 12B. The method according to any one of embodiments 7B to 11B, further comprising receiving data indicating the spectral efficiency of a channel.

[0239]

[0264] Embodiment 13B. A device for encoding video data, comprising: a memory configured to store video data; one or more processors implemented in the circuit; and a modem configured to output an analog signal on a channel, wherein the one or more processors are configured to generate coefficients based on digital sample values ​​of video data, determine the spectral efficiency of a channel to output an analog signal, determine a value n based on the spectral efficiency of the channel, generate a coefficient vector, wherein each of the coefficient vectors contains n of the coefficients, and for each of the coefficient vectors, determine an amplitude value relating to the coefficient vector based on a mapping pattern, wherein for each of the plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each of the amplitude values ​​of a plurality of amplitude values, and modulates an analog signal based on the amplitude value relating to the coefficient vector, wherein each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values.

[0240]

[0265] Embodiment 14B. The device according to Embodiment 13B, wherein one or more processors are configured to determine a position in an n-dimensional space, where the coordinates of the position in the n-dimensional space are based on the coefficients of the coefficient vector, and the mapping pattern maps different positions in the n-dimensional space to different amplitude values ​​among a plurality of amplitude values, and the one or more processors are configured to determine an amplitude value corresponding to the determined position in the n-dimensional space.

[0241]

[0266] Embodiment 15B. The device according to Embodiment 13B or 14B, wherein one or more processors are configured to generate prediction data of video data, generate residual data based on the prediction data and digital sample values ​​of video data, and generate coefficients based on blocks of digital sample values ​​in the residual data, and one or more processors are further configured to generate digital values ​​based on the prediction data, and the modem is configured to transmit the digital values.

[0242]

[0267] Embodiment 16B. The device according to Embodiment 15B, wherein one or more processors are configured to perform a binarization process to generate coefficients based on video data and a quantization process to quantize the coefficients, as part of generating coefficients based on video data.

[0243]

[0268] Embodiment 17B. The device according to Embodiment 16B, wherein one or more processors are configured to determine a value n based on the spectral efficiency of the channel and the number of bits of the block quantization coefficient as part of determining a value n.

[0244]

[0269] Embodiment 18B. The modem is a device according to any one of Embodiments 13B to 17B, further configured to output data indicating the spectral efficiency of a channel.

[0245]

[0270] Embodiment 19B. The device according to any one of Embodiments 13B to 18B, comprising one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.

[0246]

[0271] Embodiment 20B. A device for decoding video data, comprising a modem configured to receive an analog signal transmitted through a channel, and one or more processors implemented in the circuit, wherein the one or more processors are configured to demodulate the analog signal to determine amplitude values ​​with respect to a plurality of coefficient vectors, determine a value n, wherein the value n is based on the spectral efficiency of the channel, determine a coefficient in the coefficient vector for each of the coefficient vectors based on an amplitude value with respect to the coefficient vector and a mapping pattern, wherein for each of the plurality of tolerance coefficient vectors, the mapping pattern maps each tolerance coefficient vector to each amplitude value of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each amplitude value in a monotonic number line of amplitude values, and generate video data based on a coefficient in the coefficient vector.

[0247]

[0272] Embodiment 21B. The device according to Embodiment 20B, wherein one or more processors are configured to determine the coefficients in a coefficient vector as coordinates of positions in an n-dimensional space corresponding to amplitude values, where the mapping pattern maps different positions in the n-dimensional space to different amplitude values ​​among a plurality of amplitude values.

[0248]

[0273] Embodiment 22B. A device of Embodiment 20B or 21B, wherein the modem is further configured to receive digital values, one or more processors are further configured to generate predictive data based on the digital values, and one or more processors are configured to generate blocks of digital sample values ​​in residual data based on the coefficients as part of generating video data based on coefficients in a coefficient vector, and to generate digital sample values ​​of video data based on the residual data and predictive data.

[0249]

[0274] Embodiment 23B. The device according to Embodiment 22B, wherein one or more processors are configured to perform an inverse quantization process that inversely quantizes the coefficients and a de-binarization process that generates residual data based on the coefficients, as part of generating blocks of digital sample values ​​in residual data based on coefficients.

[0250]

[0275] Embodiment 24B. The device according to Embodiment 23B, wherein the value n is based on the spectral efficiency of the channel and the number of bits of the block quantization coefficient.

[0251]

[0276] Embodiment 25B. The device according to any one of Embodiments 20B to 24B, wherein the modem is further configured to receive data indicating the spectral efficiency of a channel.

[0252]

[0277] Embodiment 26B. The device according to any one of Embodiments 20B to 25B, wherein the device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.

[0253]

[0278] Embodiment 27B. A device for encoding video data, comprising: means for generating coefficients based on digital sample values ​​of video data; means for determining the spectral efficiency of a channel to output an analog signal; means for determining a value n based on the spectral efficiency of the channel; means for generating coefficient vectors, wherein each coefficient vector contains n of the coefficients; means for determining an amplitude value relating to each coefficient vector based on a mapping pattern; wherein, for each of a plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each amplitude value of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value in a monotonic number line of amplitude values; and means for outputting an analog signal on a channel.

[0254]

[0279] Embodiment 28B. A device for decoding video data, comprising: means for receiving an analog signal transmitted through a channel; means for demodulating the analog signal to determine amplitude values ​​relating to a plurality of coefficient vectors; means for determining a value n, wherein the value n is based on the spectral efficiency of the channel; means for determining a coefficient in a coefficient vector for each of the coefficient vectors based on an amplitude value relating to the coefficient vector and a mapping pattern, wherein for each of the plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each amplitude value of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each amplitude value in a monotonic number line of amplitude values.

[0255]

[0280] Embodiment 29B. A computer-readable data storage medium storing instructions that, when executed, cause one or more processors to generate coefficients based on digital sample values ​​of video data, determine the spectral efficiency of a channel to output an analog signal, determine a value n based on the spectral efficiency of the channel, generate a coefficient vector, wherein each coefficient vector contains n of the coefficients, and for each coefficient vector, determine an amplitude value relating to the coefficient vector based on a mapping pattern, wherein for each of a plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each amplitude value of a plurality of amplitude values, and each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values, modulate an analog signal based on the amplitude value relating to the coefficient vector, and output an analog signal on the channel.

[0256]

[0281] Embodiment 30B. A computer-readable data storage medium storing instructions that, when executed, cause one or more processors to receive an analog signal transmitted through a channel, demodulate the analog signal to determine amplitude values ​​for a plurality of coefficient vectors, determine a value n, wherein the value n is based on the spectral efficiency of the channel, determine the coefficients in the coefficient vectors for each of the coefficient vectors based on the amplitude values ​​for the coefficient vectors and a mapping pattern, wherein for each of the plurality of allowable coefficient vectors, the mapping pattern maps each allowable coefficient vector to each of the amplitude values ​​of a plurality of amplitude values, and each amplitude value generates video data based on the coefficients in the coefficient vectors, where each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of amplitude values.

[0257]

[0282] Aspect 1C. A method for encoding video data, comprising: generating prediction data of the video data; generating residual data based on the prediction data and digital sample values of the video data; generating coefficients based on the residual data; performing an interlace process to generate interlaced amplitude values, wherein the interlace process interlaces two or more bits of the coefficients to generate the interlaced amplitude values; generating digital values based on the prediction data; and outputting one or more analog signals modulated based on the interlaced amplitude values and the digital values.

[0258]

[0283] Aspect 2C. Further comprising performing a mapping process that maps interlaced amplitude values in the original number line to mapped values in another number line including one or more gap ranges, wherein the gap ranges are located at positions in the original number line that correlate with the influence of noise regarding bit flips in the interlaced amplitude values demodulated from the analog signal, and the mapping process does not map any interlaced amplitude values to any values within one or more of the gap ranges, and outputting one or more analog signals comprises modulating the analog signal based on the mapped values, the method according to Aspect 1C.

[0259]

[0284] Aspect 3C. The method according to Aspect 1C or 2C, wherein the interlace process interlaces two or four bits of the coefficients.

[0260]

[0285] Aspect 4C. Generating coefficients based on the residual data comprises performing a binarization process for generating coefficients based on the residual data and performing a quantization process for quantizing the coefficients, the method according to any one of Aspects 1C to 3C.

[0261]

[0286] Embodiment 5C. The method according to any one of Embodiments 1C to 4C, wherein generating a digital value based on prediction data comprises generating a quantized digital sample value based on a digital sample value in the prediction data, and performing an entropy coding process to generate a digital value based on the quantized digital sample value.

[0262]

[0287] Embodiment 6C. The method according to any one of Embodiments 1C to 5C, further comprising selecting an interlacing process from a plurality of interlacing processes based on the spectral efficiency of the channel through which an analog signal is transmitted.

[0263]

[0288] Embodiment 7C. The method according to Embodiment 6C, wherein each of the interlacing processes interlaces a different number of coefficients.

[0264]

[0289] Embodiment 8C. A method for decoding video data, comprising: determining an interlaced amplitude value based on an analog signal; performing a deinterlacing process to generate two or more coefficients, wherein bits of two or more coefficients are interlaced in the interlaced amplitude value; generating residual data based on the two or more coefficients; obtaining a digital value; generating prediction data based on the digital value; and reconstructing video data based on the prediction data and the residual data.

[0265]

[0290] Embodiment 9C. The method according to Embodiment 8C, wherein determining interlaced amplitude values ​​based on an analog signal comprises demodulating the analog signal to determine mapped values ​​generated using a mapping process that maps interlaced amplitude values ​​on an original number line to mapped values ​​on an alternative number line including one or more gap ranges, wherein the gap ranges are located at positions on the original number line that correlate with the effects of noise with respect to bit flips in the interlaced amplitude values ​​demodulated from the analog signal, and the mapping process uses the inverse of the mapping process to map mapped values ​​to interlaced amplitude values, wherein none of the interlaced amplitude values ​​map to any value in any of the one or more gap ranges.

[0266]

[0291] Embodiment 10C. The method according to Embodiment 9C, wherein the mapped value determined by demodulating an analog signal lies in one of the gap ranges, and the reverse of the mapping process maps the mapped value in the gap range to the value on the original number line.

[0267]

[0292] Embodiment 11C. The method according to any one of Embodiments 8C to 10C, wherein the deinterlacing process deinterlaces two or four bits of the coefficients.

[0268]

[0293] Embodiment 12C. The method according to any one of Embodiments 8C to 11C, comprising determining an interlaced amplitude value based on an analog signal, the phase shift and power of the analog signal at the symbol sampling time, wherein the interlaced amplitude value is equal to the coordinates of the analog symbol in the IQ plane.

[0269]

[0294] Embodiment 13C. The method according to any one of Embodiments 8C to 12C, wherein generating residual data based on coefficients comprises performing an inverse quantization process to inversely quantize the coefficients and performing a de-binarization process to generate residual data based on the coefficients.

[0270]

[0295] Embodiment 14C. The method according to any one of Embodiments 8C to 13C, wherein generating prediction data based on digital values ​​comprises performing an entropy decoding process to generate quantized digital sample values ​​based on digital values, and performing an inverse quantization process to generate digital sample values ​​in the prediction data based on the inversely quantized digital sample values.

[0271]

[0296] Embodiment 15C. The method according to any one of Embodiments 8C to 13C, further comprising selecting a deinterlacing process from a plurality of deinterlacing processes based on the spectral efficiency of the channel through which the analog signal is transmitted.

[0272]

[0297] Embodiment 16C. The method according to Embodiment 15C, wherein each of the deinterlacing processes deinterlaces a different number of coefficients.

[0273]

[0298] Embodiment 17C. A device for encoding video data, comprising: a memory configured to store video data; one or more processors implemented in the circuit; and a modem configured to output one or more analog signals modulated based on the interlaced amplitude values ​​and digital values, wherein the one or more processors are configured to generate prediction data for video data, generate residual data based on the prediction data and digital sample values ​​of the video data, generate coefficients based on the residual data, and perform an interlacing process to generate interlaced amplitude values, wherein the interlacing process interlaces two or more bits of the coefficients to generate interlaced amplitude values.

[0274]

[0299] Embodiment 18C. The device according to Embodiment 17C, wherein one or more processors are further configured to perform a mapping process that maps interlaced amplitude values ​​on an original number line to mapped values ​​on an alternative number line that includes one or more gap ranges, wherein the gap ranges are located at positions on the original number line that correlate with the effects of noise with respect to bit flips in the interlaced amplitude values ​​demodulated from the analog signal, the mapping process does not map any interlaced amplitude value to any value in any of the one or more gap ranges, and the one or more processors are configured such that, as part of outputting one or more analog signals, the modem modulates the analog signals based on the mapped values.

[0275]

[0300] Embodiment 19C. The device according to Embodiment 17C or 18C, wherein the interlacing process interlaces two or four bits of the coefficients.

[0276]

[0301] Aspect 20C. The one or more processors are configured to perform a binarization process in which the one or more processors generate coefficients based on residual data and a quantization process in which the coefficients are quantized, as part of generating coefficients based on residual data, for the device according to any one of Aspects 17C to 19C.

[0277]

[0302] Aspect 21C. The one or more processors are configured to perform an entropy encoding process in which the one or more processors generate quantized digital sample values based on digital sample values in prediction data and generate a digital value based on the quantized digital sample values, as part of generating a digital value based on prediction data, for the device according to any one of Aspects 17C to 20C.

[0278]

[0303] Aspect 22C. The one or more processors are further configured to select an interleaving process from a plurality of interleaving processes based on the spectral efficiency of the channel over which the analog signal is transmitted, for the device according to any one of Aspects 17C to 21C.

[0279]

[0304] Aspect 23C. For the device according to Aspect 22C, each of the interleaving processes interleaves a different number of coefficients.

[0280]

[0305] Aspect 24C. The device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box, for the device according to any one of Aspects 17C to 23C.

[0281]

[0306] Embodiment 25C. A device for decoding video data, comprising a modem configured to acquire an analog signal and a digital value, and one or more processors implemented in the circuit, wherein the one or more processors are configured to determine an interlaced amplitude value based on the analog signal, perform a deinterlacing process to generate two or more coefficients, thereby generating residual data based on the two or more coefficients, in which bits of the two or more coefficients are interlaced in the interlaced amplitude value, acquire a digital value, generate prediction data based on the digital value, and reconstruct video data based on the prediction data and the residual data.

[0282]

[0307] Embodiment 26C. The device according to Embodiment 25C, wherein one or more processors are configured to demodulate an analog signal to determine mapped values ​​generated by a mapping process that maps interlaced amplitude values ​​on an original number line to mapped values ​​on an alternative number line including one or more gap ranges, wherein the gap ranges are located at positions on the original number line that correlate with the effects of noise with respect to bit flips in the interlaced amplitude values ​​demodulated from the analog signal, and the mapping process uses the inverse of the mapping process to map mapped values ​​to interlaced amplitude values, wherein none of the interlaced amplitude values ​​are mapped to any value in any of the one or more gap ranges.

[0283]

[0308] Embodiment 27C. The device according to Embodiment 26C, wherein the mapped value determined by demodulating an analog signal lies in one of the gap ranges, and the reverse of the mapping process maps the mapped value in the gap range to the value on the original number line.

[0284]

[0309] Embodiment 28C. A device according to any one of Embodiments 25C to 27C, wherein the deinterlacing process deinterlaces two or four bits of a coefficient.

[0285]

[0310] Embodiment 29C. The device according to any one of Embodiments 25C to 28C, wherein one or more processors are configured to determine analog symbols corresponding to the phase shift and power at the symbol sampling time of the analog signal as part of determining an interlaced amplitude value based on an analog signal, wherein the interlaced amplitude value is equal to the coordinates of the analog symbol in the IQ plane.

[0286]

[0311] Embodiment 30C. The device according to any one of Embodiments 25C to 29C, wherein one or more processors are configured to perform an inverse quantization process that inversely quantizes the coefficients and a de-binarization process that generates residual data based on the coefficients, as part of generating residual data based on the coefficients.

[0287]

[0312] Embodiment 31C. The device according to any one of Embodiments 25C to 30C, wherein one or more processors are configured to perform an entropy decoding process to generate quantized digital sample values ​​based on digital values, and an inverse quantization process to generate digital sample values ​​in the prediction data based on the inversely quantized digital sample values, as part of generating prediction data based on digital values.

[0288]

[0313] Embodiment 32C. The device according to Embodiment 31C, wherein one or more processors are further configured to select a deinterlacing process from a plurality of deinterlacing processes based on the spectral efficiency of the channel through which an analog signal is transmitted.

[0289]

[0314] Embodiment 33C. The device according to Embodiment 32C, wherein each of the deinterlacing processes deinterlaces a different number of coefficients.

[0290]

[0315] Embodiment 34C. The device according to any one of Embodiments 27C to 33C, comprising one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.

[0291]

[0316] Embodiment 35C. A device for encoding video data, comprising means for generating prediction data of video data; means for generating residual data based on the prediction data and digital sample values ​​of video data; means for generating coefficients based on the residual data; means for performing an interlacing process to generate interlaced amplitude values, wherein the interlacing process interlaces two or more bits of the coefficients to generate interlaced amplitude values; means for modulating an analog signal based on interlaced amplitude values; means for generating digital values ​​based on prediction data; and means for outputting an analog signal and digital values ​​based on prediction blocks.

[0292]

[0317] Embodiment 36C. A device for decoding video data, comprising: means for determining an interlaced amplitude value based on an analog signal; means for performing a deinterlacing process to generate two or more coefficients; means for generating residual data based on two or more coefficients, wherein bits of two or more coefficients are interlaced in the interlaced amplitude value; means for acquiring a digital value; means for generating prediction data based on the digital value; and means for reconstructing video data based on the prediction data and the residual data.

[0293]

[0318] Embodiment 37C. A computer-readable data storage medium storing instructions that, when executed, cause one or more processors to generate prediction data for video data; generate residual data based on the prediction data and digital sample values ​​of the video data; generate coefficients based on the residual data; perform an interlacing process to generate interlaced amplitude values, wherein the interlacing process interlaces two or more bits of the coefficients to generate interlaced amplitude values; modulate an analog signal based on the interlaced amplitude values; generate digital values ​​based on the prediction data; and output an analog signal and digital values ​​based on the prediction blocks.

[0294]

[0319] Embodiment 38C. A computer-readable data storage medium storing instructions that, when executed, cause one or more processors to determine an interlaced amplitude value based on an analog signal; perform a deinterlacing process to generate two or more coefficients, thereby generating residual data based on two or more coefficients, wherein bits of two or more coefficients are interlaced in the interlaced amplitude value; obtain a digital value; generate prediction data based on the digital value; and reconstruct video data based on the prediction data and the residual data.

[0295]

[0320] It should be noted that, depending on the example, some of the actions or events among the techniques described herein may be performed in different sequences, added, merged, or completely excluded (for example, not all described actions or events are necessarily required for the practice of the technique). Furthermore, in some examples, actions or events may be performed not sequentially, but concurrently, for example, through multithreading, interrupt handling, or across multiple processors.

[0296]

[0321] In one or more examples, the described functions may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more instructions or codes on or transmitted through a computer-readable medium and executed by a hardware-based processing unit. The computer-readable medium may include computer-readable storage media corresponding to tangible media such as data storage media, or communication media including any medium that enables the transfer of computer programs from one location to another, for example, according to a communication protocol. Thus, the computer-readable medium may generally correspond to (1) non-transient tangible computer-readable storage media, or (2) communication media such as signals or carrier waves. The data storage medium may be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, codes, and / or data structures for implementing the techniques described herein. A computer program product may include computer-readable media.

[0297]

[0322] As an example, and not an limitation, such computer-readable storage media may include RAM, ROM, EEPROM®, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and can be accessed by a computer. Any connection is also appropriately referred to as computer-readable media. For example, if instructions are transmitted from a website, server or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of media. However, it should be understood that computer-readable storage media and data storage media refer to non-temporary, tangible storage media, rather than connections, carriers, signals, or other temporary media. As used herein, the terms "disk" and "disc" include Compact Disc (CD), LaserDisc® (disc), Optical Disc (disc), Digital Multipurpose Disc (disc) (DVD), Floppy Disk (disk), and Blu-ray Disc (disc), where a disk typically reproduces data magnetically and a disc reproduces data optically using a laser. Any combination of the above should also be included within the scope of computer-readable media.

[0298]

[0323] Instructions may be executed by one or more processors (e.g., programmable processors), such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other uniform integrated circuits or discrete logic circuits. Therefore, the terms “processor” and “processing circuit” as used herein may refer to any of the above-described structures or any other structure suitable for implementing the techniques described herein. In addition, in some embodiments, the functions described herein may be provided within dedicated hardware and / or software modules configured for encoding and decoding, or incorporated into a composite codec. Furthermore, the techniques can be adequately implemented in one or more circuits or logic elements.

[0299]

[0324] The techniques of this disclosure can be implemented in a wide variety of devices or apparatus, including wireless handsets, integrated circuits (ICs), or sets of ICs (e.g., chipsets). While various components, modules, or units have been described in this disclosure to highlight the functional aspects of devices configured to implement the disclosed techniques, these components, modules, or units do not necessarily require implementation by different hardware units. Rather, as described above, the various units, along with suitable software and / or firmware, may be combined in a codec hardware unit, including one or more processors described above, or provided by a set of interoperable hardware units.

[0300]

[0325] Various examples have been described. These and other examples fall within the scope of the following claims. The invention described in the original claims of this application is listed below. [C1] A method for encoding video data, wherein the method is The process involves generating coefficients based on the aforementioned video data, To generate a coefficient vector, wherein each of the coefficient vectors contains n of the coefficients. For each of the aforementioned coefficient vectors, the amplitude value relating to the coefficient vector is determined based on the mapping pattern, and herein, for each of the multiple tolerance coefficient vectors, The mapping pattern maps each of the tolerance coefficient vectors to the respective amplitude values ​​of the multiple amplitude values, Each of the aforementioned amplitude values ​​is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each of the aforementioned amplitude values ​​on a monotonic number line of amplitude values. Modulating an analog signal based on the amplitude value of the coefficient vector, Outputting the aforementioned analog signal A method that includes [a certain feature]. [C2] Determining the amplitude value of the coefficient vector is: The process involves determining the position in the n-dimensional space, wherein the coordinates of the position in the n-dimensional space are based on the coefficients of the coefficient vector, and the mapping pattern maps different positions in the n-dimensional space to different amplitude values ​​among the plurality of amplitude values. The amplitude value of the coefficient vector is determined as the amplitude value corresponding to the determined position in the n-dimensional space. A method of C1 comprising: [C3] The mapping pattern is a method of C1 that maps unsigned coefficients to unsigned amplitude values. [C4] The mapping pattern is a method of C1, which maps signed coefficients to signed amplitude values. [C5] The mapping pattern is a method of C1, which maps unsigned coefficients to signed amplitude values. [C6] The method described in C1, where n is 2 or greater. [C7] Generating the coefficients based on the video data is, The process involves generating initial coefficients based on the aforementioned video data, To generate a sign value indicating the positive / negative sign of the initial coefficient, The coefficient is generated as the absolute value of the initial coefficient. Equipped with, The method according to C1, further comprising signaling data representing the sign value. [C8] The aforementioned coefficient is a non-negative version of the initial coefficient, Generating the coefficients based on the video data is, The initial coefficients are generated based on the video data, The shift value is determined based on the most negative initial coefficient among the aforementioned initial coefficients, The process of converting the initial coefficient to the non-negative version of the initial coefficient based on the shift value is performed. Equipped with, The method according to C1, further comprising signaling data representing the shift value. [C9] The method according to C1, wherein the coefficient vector includes one or more negative coefficients and one or more positive coefficients. [C10] Generating the coefficients based on the video data is, To generate prediction data for the aforementioned video data, The process involves generating residual data based on the aforementioned prediction data and the digital sample values ​​in the video data, To generate the coefficient based on the residual data. Equipped with, The aforementioned method, To generate digital values ​​based on the aforementioned prediction data, Transmitting the aforementioned digital value A method of C1 that further includes the following: [C11] Generating the coefficient based on the residual data is, A binarization process is performed to generate the coefficients based on the residual data, The process involves performing a quantization process to quantize the aforementioned coefficients. A method for C10 comprising: [C12] Generating the digital value based on the aforementioned prediction data is, The process involves generating quantized digital sample values ​​based on the digital sample values ​​in the aforementioned prediction data, The process involves performing an entropy coding process to generate the digital value based on the quantized digital sample value. A method for C10 comprising: [C13] A method for decoding video data, Determining amplitude values ​​for multiple coefficient vectors based on an analog signal, For each of the coefficient vectors, the coefficient in the coefficient vector is determined based on the amplitude value and mapping pattern relating to the coefficient vector, and herein, for each of the multiple allowable coefficient vectors, The mapping pattern maps each of the tolerance coefficient vectors to the respective amplitude values ​​of the multiple amplitude values, Each of the aforementioned amplitude values ​​is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each of the aforementioned amplitude values ​​on a monotonic number line of amplitude values. To generate the video data based on the coefficients in the coefficient vector. A method that includes [a certain feature]. [C14] Determining the coefficients in the coefficient vector based on the amplitude values ​​of the coefficient vector means that The method according to C13, comprising determining the coefficients in the coefficient vector as coordinates of positions in the n-dimensional space corresponding to the amplitude values, wherein the mapping pattern maps different positions in the n-dimensional space to different amplitude values ​​among the plurality of amplitude values. [C15] The mapping pattern is the method described in C13, which maps unsigned coefficients to unsigned amplitude values. [C16] The mapping pattern is the method described in C13, which maps signed coefficients to signed amplitude values. [C17] The mapping pattern is the method described in C13, which maps unsigned coefficients to signed amplitude values. [C18] Determining the amplitude values ​​for the plurality of coefficient vectors is: Determining the analog symbol corresponding to the phase shift and power at the symbol sampling time of the aforementioned analog signal, The amplitude value of the coefficient vector is determined as one of the coordinates of the analog symbol in the IQ plane. A method for C13 comprising the same equipment. [C19] n is 2 or greater, the method described in C13. [C20] Determining the coefficients in the coefficient vector based on the amplitude value and the mapping pattern is: Obtaining a sign value via the modem's digital path, wherein the sign value indicates the positive / negative sign of the coefficient in the coefficient vector. Based on the amplitude value and mapping pattern of the coefficient vector, the absolute value of the coefficient in the coefficient vector is determined. Reconstructing the coefficients in the coefficient vector by applying the sign value to the absolute value of the coefficients in the coefficient vector, at least partially. A method for C13 comprising the same equipment. [C21] Determining the coefficients in the coefficient vector based on the amplitude value and the mapping pattern is: To obtain data representing a shift value via the modem's digital path, wherein the shift value represents the most negative coefficient among the coefficients in the coefficient vector. Based on the amplitude value and mapping pattern of the coefficient vector, the intermediate value of the coefficient in the coefficient vector is determined. The coefficients in the coefficient vector are reconstructed by adding the shift value to each of the intermediate values ​​of the coefficients in the coefficient vector, at least partially. A method for C13 comprising the same equipment. [C22] The method according to C13, wherein the coefficient vector includes one or more negative coefficients and one or more positive coefficients. [C23] Generating the video data based on the coefficients in the coefficient vector is, Obtaining digital values ​​via the modem's digital path, To generate predictive data based on the aforementioned digital values, To generate residual data based on the coefficients in the coefficient vector, To generate the video data based on the prediction data and the residual data. A method for C13 comprising the same equipment. [C24] Generating the residual data based on the coefficients in the coefficient vector is, The process involves performing an inverse quantization process to inversely quantize the coefficients in the coefficient vector, and performing a de-binarization process to generate the residual data based on the inversely quantized coefficients in the coefficient vector. A method for C23 comprising the same equipment. [C25] Generating the prediction data based on the aforementioned digital values ​​is, The process involves performing an entropy decoding process to generate a digital sample value based on the aforementioned digital value, The prediction data is generated by inversely quantizing the digital sample values, at least partially. A method for C23 comprising the same components. [C26] A device for encoding video data, wherein the device is One or more processors implemented within the circuit, and the one or more processors Generating coefficients based on video data, To generate a coefficient vector, wherein each of the coefficient vectors contains n of the coefficients. For each of the aforementioned coefficient vectors, the amplitude value relating to the coefficient vector is determined based on the mapping pattern, and herein, for each of the multiple allowable coefficient vectors, The mapping pattern maps each of the tolerance coefficient vectors to the respective amplitude values ​​of the multiple amplitude values, Each of the aforementioned amplitude values ​​is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each of the aforementioned amplitude values ​​on a monotonic number line of amplitude values. A modem configured to modulate an analog signal based on the amplitude value of the coefficient vector, A device equipped with the following features. [C27] As part of determining the amplitude value with respect to the coefficient vector, the one or more processors The process involves determining the position in the n-dimensional space, wherein the coordinates of the position in the n-dimensional space are based on the coefficients of the coefficient vector, and the mapping pattern maps different positions in the n-dimensional space to different amplitude values ​​among the plurality of amplitude values. The amplitude value of the coefficient vector is determined as the amplitude value corresponding to the determined position in the n-dimensional space. A device as described in C26, configured to perform the following actions. [C28] The aforementioned mapping pattern maps unsigned coefficients to unsigned amplitude values, as described in C26. [C29] The aforementioned mapping pattern maps signed coefficients to signed amplitude values, as described in C26. [C30] The aforementioned mapping pattern maps unsigned coefficients to signed amplitude values, as described in C26. [C31] A device as described in C26, where n is 2 or greater. [C32] As part of generating the coefficients based on residual data, the one or more processors To generate initial coefficients based on the residual data, To generate a sign value indicating the positive / negative sign of the initial coefficient, The coefficient is generated as the absolute value of the initial coefficient. It is configured to do the following: The modem is the device described in C26, configured to transmit the sign value over a digital path. [C33] The aforementioned coefficient is a non-negative version of the initial coefficient, As part of generating the coefficients based on residual data, the one or more processors The initial coefficient is generated based on the residual data, The shift value is determined based on the most negative initial coefficient among the aforementioned initial coefficients, The process of converting the initial coefficient to the non-negative version of the initial coefficient based on the shift value is performed. It is configured to do the following: The device according to C26, further comprising signaling data representing the shift value. [C34] The device according to C26, wherein the coefficient vector includes one or more negative coefficients and one or more positive coefficients. [C35] As part of generating the coefficients based on the video data, the one or more processors To generate prediction data for the aforementioned video data, The process involves generating residual data based on the aforementioned prediction data and the digital sample values ​​in the video data, To generate the coefficient based on the residual data. It is configured to do the following: The one or more processors are further configured to generate digital values ​​based on the prediction data, The modem is the device described in C26, configured to transmit the digital value. [C36] As part of generating the coefficients based on the residual data, the one or more processors A binarization process is performed to generate the coefficients based on the residual data, The process involves performing a quantization process to quantize the aforementioned coefficients. A device as described in C35, configured to perform the following actions. [C37] As part of generating the digital value based on the prediction data, the one or more processors The process involves generating quantized digital sample values ​​based on the digital sample values ​​in the aforementioned prediction data, The process involves performing an entropy coding process to generate the digital value based on the quantized digital sample value. A device as described in C35, configured to perform the following actions. [C38] The device described in C26 comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box. [C39] A device for decoding video data, wherein the device is A modem configured to receive analog signals, The circuit comprises one or more processors implemented within the circuit, and the one or more processors are Based on the aforementioned analog signal, the amplitude values ​​for multiple coefficient vectors are determined, For each of the coefficient vectors, the coefficient in the coefficient vector is determined based on the amplitude value and mapping pattern relating to the coefficient vector, and herein, for each of the multiple allowable coefficient vectors, The mapping pattern maps each of the tolerance coefficient vectors to the respective amplitude values ​​of the multiple amplitude values, Each of the aforementioned amplitude values ​​is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each of the aforementioned amplitude values ​​on a monotonic number line of amplitude values. To generate video data based on the coefficients in the coefficient vector. A device configured to perform the following actions. [C40] As part of determining the coefficients in the coefficient vector based on the amplitude values ​​relating to the coefficient vector, the one or more processors The device according to C39, wherein the coefficients in the coefficient vector are configured to determine the coordinates of the position in the n-dimensional space corresponding to the amplitude value, and the mapping pattern maps different positions in the n-dimensional space to different amplitude values ​​among the plurality of amplitude values. [C41] The aforementioned mapping pattern maps unsigned coefficients to unsigned amplitude values, as described in C39. [C42] The aforementioned mapping pattern maps signed coefficients to signed amplitude values, as described in C39. [C43] The aforementioned mapping pattern maps unsigned coefficients to signed amplitude values, as described in C39. [C44] The modem is configured to determine the analog symbol corresponding to the phase shift and power at the symbol sampling time of the analog signal. The device according to C39, wherein, as part of determining the amplitude values ​​with respect to the plurality of coefficient vectors, the one or more processors are configured to determine the amplitude values ​​with respect to the coefficient vectors as one of the coordinates of the analog symbol in the IQ plane. [C45] A device as described in C39, where n is 2 or greater. [C46] As part of determining the coefficients in the coefficient vector based on the amplitude value and the mapping pattern, the one or more processors Obtaining a sign value via the digital path of the modem, wherein the sign value indicates the positive / negative sign of the coefficient in the coefficient vector. Based on the amplitude value and mapping pattern of the coefficient vector, the absolute value of the coefficient in the coefficient vector is determined. Reconstructing the coefficients in the coefficient vector by applying the sign value to the absolute value of the coefficients in the coefficient vector, at least partially. A device as described in C39, configured to perform the following actions. [C47] As part of determining the coefficients in the coefficient vector based on the amplitude value and the mapping pattern, the one or more processors The process involves obtaining data representing a shift value via the digital path of the modem, wherein the shift value represents the most negative coefficient among the coefficients in the coefficient vector, and determining the midpoint of the coefficients in the coefficient vector based on the amplitude value and mapping pattern of the coefficient vector. The coefficients in the coefficient vector are reconstructed by adding the shift value to each of the intermediate values ​​of the coefficients in the coefficient vector, at least partially. A device as described in C39, configured to perform the following actions. [C48] The device according to C39, wherein the coefficient vector includes one or more negative coefficients and one or more positive coefficients. [C49] As part of generating the video data based on the coefficients in the coefficient vector, the one or more processors Obtain digital values ​​via the modem's digital path. Predictive data is generated based on the aforementioned digital values. Predictive data is generated for the current block of the aforementioned analog video data. Residual data is generated based on the coefficients in the coefficient vector. The video data is generated based on the prediction data and the residual data. A device as described in C39, configured as follows. [C50] As part of generating the residual data based on the coefficients in the coefficient vector, the one or more processors The process involves performing an inverse quantization process to inversely quantize the coefficients in the coefficient vector, and performing a de-binarization process to generate the residual data based on the inversely quantized coefficients in the coefficient vector. A device as described in C49, configured to perform the following actions. [C51] As part of generating the prediction data based on the digital values, the one or more processors The process involves performing an entropy decoding process to generate a digital sample value based on the aforementioned digital value, The prediction data is generated by inversely quantizing the digital sample values, at least partially. A device as described in C49, configured to perform the following actions. [C52] The device described in C39 comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box. [C53] A device for encoding video data, Means for generating coefficients based on video data, Means for generating coefficient vectors, wherein each of the coefficient vectors includes n of the coefficients, For each of the coefficient vectors, means for determining the amplitude value of the coefficient vector based on the mapping pattern, and herein, for each of the tolerance coefficient vectors of the plurality of tolerance coefficient vectors, The mapping pattern maps each of the tolerance coefficient vectors to the respective amplitude values ​​of the multiple amplitude values, Each of the aforementioned amplitude values ​​is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each of the aforementioned amplitude values ​​on a monotonic number line of amplitude values. A device comprising means for modulating an analog signal based on the amplitude value of the coefficient vector. [C54] A device for decoding video data, A means for determining amplitude values ​​for multiple coefficient vectors based on an analog signal, For each of the coefficient vectors, means for determining the coefficient in the coefficient vector based on the amplitude value and mapping pattern relating to the coefficient vector, and herein, for each of the allowable coefficient vectors of the plurality of allowable coefficient vectors, The mapping pattern maps each of the tolerance coefficient vectors to the respective amplitude values ​​of the multiple amplitude values, Each of the aforementioned amplitude values ​​is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each of the aforementioned amplitude values ​​on a monotonic number line of amplitude values. means for generating video data based on the coefficients in the coefficient vector A device equipped with the following features. [C55] A computer-readable data storage medium storing instructions, wherein, when the instructions are executed, one or more processors, Generating coefficients based on video data, To generate a coefficient vector, wherein each of the coefficient vectors contains n of the coefficients. For each of the aforementioned coefficient vectors, the amplitude value relating to the coefficient vector is determined based on the mapping pattern, and herein, for each of the multiple tolerance coefficient vectors, The mapping pattern maps each of the tolerance coefficient vectors to the respective amplitude values ​​of the multiple amplitude values, Each of the aforementioned amplitude values ​​is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each of the aforementioned amplitude values ​​on a monotonic number line of amplitude values. Modulating an analog signal based on the amplitude value of the coefficient vector A computer-readable data storage medium that enables the following process. [C56] A computer-readable data storage medium storing instructions, wherein, when the instructions are executed, one or more processors, Determining amplitude values ​​for multiple coefficient vectors based on an analog signal, For each of the coefficient vectors, the coefficient in the coefficient vector is determined based on the amplitude value and mapping pattern relating to the coefficient vector, and herein, for each of the multiple allowable coefficient vectors, The mapping pattern maps each of the tolerance coefficient vectors to the respective amplitude values ​​of the multiple amplitude values, Each of the aforementioned amplitude values ​​is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​adjacent to each of the aforementioned amplitude values ​​on a monotonic number line of amplitude values. To generate video data based on the coefficients in the coefficient vector. A computer-readable data storage medium that enables the following process.

Claims

1. A method for encoding video data, wherein the method is The process involves generating multiple coefficients based on the aforementioned video data, The process involves generating a coefficient vector, where each of the coefficient vectors consists of n of the plurality of coefficients, where n is the number of dimensions of the mapping space and has a value greater than 1, where each axis of the mapping space corresponds to a specific coefficient in the coefficient vector. For each of the multiple coefficient vectors, a single amplitude value is determined based on the mapping pattern in the n-dimensional mapping space, and here, The mapping pattern starts from the origin, meanders through the n-dimensional mapping space, monotonically increasing the coordinate value of one axis with each step, where the number of steps traversing the mapping pattern from the origin to the position in the n-dimensional space corresponding to the coefficient vector corresponds to each of the amplitude values, where each of the amplitude values ​​is adjacent in the n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each of the amplitude values ​​on the monotonic number line of the amplitude values. Modulating an analog signal based on the amplitude value of the coefficient vector, Outputting the aforementioned analog signal A method that includes [a certain feature].

2. A method for decoding video data, Determining amplitude values ​​for multiple coefficient vectors based on an analog signal, For each of the coefficient vectors, the coefficients in the coefficient vector are determined based on the amplitude values ​​and mapping pattern relating to the coefficient vector, wherein the mapping pattern starts from the origin, meanders through an n-dimensional mapping space, monotonically increasing the coordinate values ​​of one axis at each step, and the number of steps traversing the mapping pattern from the origin to the position in the n-dimensional space corresponding to the coefficient vector corresponds to each amplitude value, where each amplitude value is adjacent in the n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of the amplitude values, where n is the number of dimensions of the mapping space and has a value greater than 1, and each axis of the mapping space corresponds to a specific coefficient in the coefficient vector. To generate the video data based on the coefficients in the coefficient vector. A method that includes [a certain feature].

3. The method according to claim 1 or 2, wherein the mapping pattern maps unsigned coefficients to unsigned amplitude values.

4. The method according to claim 1 or 2, wherein the mapping pattern maps signed coefficients to signed amplitude values.

5. The method according to claim 1 or 2, wherein the mapping pattern maps unsigned coefficients to signed amplitude values.

6. Generating the coefficients based on the video data is, The process involves generating initial coefficients based on the aforementioned video data, To generate a sign value indicating the positive / negative sign of the initial coefficient, The coefficient is generated as the absolute value of the initial coefficient. Equipped with, The method according to claim 1 or 2, further comprising signaling data representing the sign value.

7. The aforementioned coefficient is a non-negative version of the initial coefficient, Generating the coefficients based on the video data is, The initial coefficients are generated based on the video data, The shift value is determined based on the most negative initial coefficient among the aforementioned initial coefficients, The process of converting the initial coefficient to the non-negative version of the initial coefficient based on the shift value is performed. Equipped with, The method according to claim 1, further comprising signaling data representing the shift value.

8. The method according to claim 1 or 2, wherein the coefficient vector includes one or more negative coefficients and one or more positive coefficients.

9. Generating the coefficients based on the video data is, To generate prediction data for the aforementioned video data, The process involves generating residual data based on the aforementioned prediction data and the digital sample values ​​in the video data, Generating the coefficient based on the residual data, and in this case, generating the coefficient based on the residual data, The process involves performing a binarization process to generate the coefficients based on the residual data, The method comprises performing a quantization process to quantize the coefficients, Equipped with, The aforementioned method, Generating a digital value based on the aforementioned prediction data, and in this regard, generating a digital value based on the aforementioned prediction data is The process involves generating quantized digital sample values ​​based on the digital sample values ​​in the aforementioned prediction data, The process includes performing an entropy coding process to generate the digital value based on the quantized digital sample value, Transmitting the aforementioned digital value The method according to claim 1, further comprising:

10. Determining the amplitude values ​​for the plurality of coefficient vectors is: Determining the analog symbol corresponding to the phase shift and power at the symbol sampling time of the aforementioned analog signal, The amplitude value of the coefficient vector is determined as one of the coordinates of the analog symbol in the I-Q plane. The method according to claim 2, comprising:

11. Determining the coefficients in the coefficient vector based on the amplitude value and the mapping pattern is: Obtaining a sign value via the modem's digital path, wherein the sign value indicates the positive / negative sign of the coefficient in the coefficient vector. Based on the amplitude value and mapping pattern of the coefficient vector, the absolute value of the coefficient in the coefficient vector is determined. Reconstructing the coefficients in the coefficient vector by applying the sign value to the absolute value of the coefficients in the coefficient vector, at least partially, or The process involves obtaining data representing a shift value via the modem's digital path, wherein the shift value represents the negative coefficient with the largest absolute value among the coefficients in the coefficient vector. Based on the amplitude value and mapping pattern of the coefficient vector, the intermediate value of the coefficient in the coefficient vector is determined. The coefficients in the coefficient vector are reconstructed by adding the shift value to each of the intermediate values ​​of the coefficients in the coefficient vector, at least partially. The method according to claim 2, comprising:

12. Generating the video data based on the coefficients in the coefficient vector is, Obtaining digital values ​​via the modem's digital path, Generating prediction data based on the aforementioned digital values, and in this context, generating prediction data based on the aforementioned digital values ​​is, The process involves performing an entropy decoding process to generate a digital sample value based on the aforementioned digital value, The method comprises generating the prediction data by inversely quantizing the digital sample values, at least partially. Generating residual data based on the coefficients in the coefficient vector, and hereby generating residual data based on the coefficients in the coefficient vector, Performing an inverse quantization process to inversely quantize the coefficients in the coefficient vector, The process includes performing a de-binarization process to generate residual data based on the inversely quantized coefficients in the coefficient vector. To generate the video data based on the prediction data and the residual data. The method according to claim 2, comprising:

13. A device for encoding video data, Means for generating multiple coefficients based on the aforementioned video data, Means for generating a coefficient vector, wherein each of the coefficient vectors consists of n of the plurality of coefficients, where n is the number of dimensions of the mapping space and has a value greater than 1, and wherein each axis of the mapping space corresponds to a specific coefficient in the coefficient vector. A means for determining a single amplitude value for each of multiple coefficient vectors based on a mapping pattern in an n-dimensional mapping space, and herein, The mapping pattern starts from the origin, meanders through the n-dimensional mapping space, monotonically increasing the coordinate value of one axis with each step, where the number of steps traversing the mapping pattern from the origin to the position in the n-dimensional space corresponding to the coefficient vector corresponds to each of the amplitude values, where each of the amplitude values ​​is adjacent in the n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each of the amplitude values ​​on the monotonic number line of the amplitude values. A device comprising means for modulating an analog signal based on the amplitude value of the coefficient vector.

14. A device for decoding video data, A means for determining amplitude values ​​for multiple coefficient vectors based on an analog signal, For each of the coefficient vectors, means for determining the coefficients in the coefficient vector based on the amplitude values ​​and mapping pattern relating to the coefficient vector, wherein the mapping pattern starts from the origin, meanders through an n-dimensional mapping space, monotonically increasing the coordinate values ​​of one axis at each step, where the number of steps traversing the mapping pattern from the origin to the position in the n-dimensional space corresponding to the coefficient vector corresponds to each amplitude value, where each amplitude value is adjacent in the n-dimensional space to at least one other amplitude value among a plurality of amplitude values ​​adjacent to each amplitude value on a monotonic number line of the amplitude values, where n is the number of dimensions of the mapping space and has a value greater than 1, and each axis of the mapping space corresponds to a specific coefficient in the coefficient vector. means for generating video data based on the coefficients in the coefficient vector A device equipped with the following features.

15. A computer-readable data storage medium storing instructions, wherein, when executed, the instructions cause one or more processors of an encoding device to perform the method according to any one of claims 1 or 3 to 9.

16. A computer-readable data storage medium storing instructions, wherein, when the instructions are executed, they cause one or more processors of a decoding device to perform the method according to any one of claims 2 to 6, 8, and 10 to 12.

Citation Information

Patent Citations

  • Method and system for hybrid analog / digital signal processing

    JP1993503623A

  • Content distribution using network coding

    JP2006031693A

  • REW parametric vector quantization and dual-predictive SEW vector quantization for waveform interpolative coding

    US20020116184A1

  • Video data transmission device and reception device

    WO2013150705A1

  • Image processing device and method

    WO2016147836A1