Analog modulated video transmission with variable symbol rate - Patents.com

Hybrid digital-analog modulation for video encoding and decoding addresses the power consumption issue of modern video coding standards by using coefficient mapping to achieve efficient compression and reduced power usage.

JP7821182B2Active Publication Date: 2026-02-26QUALCOMM INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023535906
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-12-29
Filing Date
2021-11-01
Publication Date
2026-02-26
Estimated Expiration
2041-11-01

AI Technical Summary

Technical Problem

Modern video coding standards consume significant power, which is a challenge for mobile devices with limited power budgets, even with the high bandwidth capabilities of advanced wireless networks like 5G.

Method used

Hybrid digital-analog modulation is used for video encoding and decoding, where coefficients are mapped to amplitude values using a specific pattern, allowing for efficient compression and reduced power consumption.

Benefits of technology

This approach provides video data compression while potentially using less power and resources compared to digital video codecs, reducing the resource intensity of video encoding and decoding processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007821182000001
    Figure 0007821182000001
  • Figure 0007821182000002
    Figure 0007821182000002
  • Figure 0007821182000003
    Figure 0007821182000003
Patent Text Reader

Abstract

1. A method for encoding video data comprising: generating coefficients based on digital sample values ​​of the video data; determining a spectral efficiency of a channel; determining a value n based on the spectral efficiency of the channel; generating coefficient vectors, each of the coefficient vectors including n of the coefficients; determining amplitude values ​​for the coefficient vectors based on a mapping pattern, wherein 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; and modulating an analog signal based on the amplitude value.
Need to check novelty before this filing date? Find Prior Art

Description

Priority claims

[0001]

[0001] This application claims priority to U.S. Patent Application No. 17 / 137,080, filed December 29, 2020, the entire contents of which are incorporated herein by reference. [Technical Field]

[0002]

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

[0003] The ability to transmit and receive high-quality video data is one of the compelling use cases for the deployment of advanced wireless networks, such as fifth-generation (5G) wireless networks. For example, 5G wireless networks and beyond may enable streaming of high-quality video of live events, teleconferencing, and the like. In some cases, a user device may use a radio 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] 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 consume a significant amount of power, which may be within the limited power budgets of mobile devices such as smartphones and tablets. Summary of the Invention

[0005] This disclosure describes techniques for encoding and decoding video data. As described herein, a video encoder may perform hybrid digital-analog modulation for transmission of video data. When performing hybrid digital-analog modulation for transmission of video data, the video encoder may transmit digital data and an analog signal. A video decoder uses both the digital data and the analog signal to reconstruct the video data. The use of hybrid digital-analog modulation may provide compression of the 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, the method comprising: generating coefficients based on the video data; generating coefficient vectors, each of the coefficient vectors including n number of coefficients; for each of the coefficient vectors, determining an amplitude value for the coefficient vector based on a mapping pattern, wherein, for each respective allowable coefficient vector of a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of a plurality of amplitude values, each amplitude value being adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​that are adjacent to the respective 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 the analog signal.

[0007]

[0007] In another example, the present disclosure describes a method for decoding video data, the method comprising: determining amplitude values ​​for a plurality of coefficient vectors based on an analog signal; for each of the coefficient vectors, determining a coefficient in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern, wherein, for each respective allowable coefficient vector of the plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of a plurality of amplitude values, each 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 amplitude values; and generating video data based on the coefficients in the coefficient vectors.

[0008]

[0008] In another example, the disclosure describes a device for encoding video data, the device comprising one or more processors implemented in circuitry, the one or more processors configured to: generate coefficients based on the video data; generate coefficient vectors, each of the coefficient vectors including n of the coefficients; for each of the coefficient vectors, determine an amplitude value for the coefficient vector based on a mapping pattern, wherein, for each respective allowable coefficient vector of a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of a plurality of amplitude values, each amplitude value being adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​that are adjacent to the respective amplitude value on a monotonic number line of the amplitude values; and a modem configured to modulate an analog signal based on the amplitude values ​​for the coefficient vectors.

[0009]

[0009] In another example, the present disclosure describes a device for decoding video data, the device comprising a modem configured to receive an analog signal and one or more processors implemented in circuitry, the one or more processors configured to: determine amplitude values ​​for a plurality of coefficient vectors based on the analog signal; for each of the coefficient vectors, determine a coefficient in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern, wherein, for each respective allowable coefficient vector of the plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of the plurality of amplitude values, each 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; and generate 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, the device comprising: means for generating coefficients based on the video data; means for generating coefficient vectors, each of the coefficient vectors including n of the coefficients; means for determining, for each of the coefficient vectors, an amplitude value for the coefficient vector based on a mapping pattern, wherein, for each respective allowable coefficient vector of a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of a plurality of amplitude values, each amplitude value being adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​that are adjacent to the respective amplitude value on a monotonic number line of the amplitude values; and means for modulating an analog signal based on the amplitude value for the coefficient vector.

[0011]

[0011] In another example, the present disclosure describes a device for decoding video data, the device comprising: means for determining amplitude values ​​for a plurality of coefficient vectors based on an analog signal; means for determining, for each of the coefficient vectors, a coefficient in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern, wherein, for each respective allowable coefficient vector of the plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of a plurality of amplitude values, each 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; and means for generating video data based on the coefficients in the coefficient vectors.

[0012]

[0012] In another example, the present disclosure describes a computer-readable data storage medium having stored thereon instructions that, when executed, cause one or more processors to: generate coefficients based on video data; generate coefficient vectors, each of the coefficient vectors including n of the coefficients; for each of the coefficient vectors, determine an amplitude value for the coefficient vector based on a mapping pattern, wherein, for each respective allowable coefficient vector of a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of a plurality of amplitude values, each 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; and modulate an analog signal based on the amplitude value for the coefficient vector.

[0013]

[0013] In another example, the present disclosure describes a computer-readable data storage medium having stored thereon 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, for each of the coefficient vectors, a coefficient in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern, wherein, for each respective allowable coefficient vector of the plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of the plurality of amplitude values, each 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; and generate video data based on the coefficients in the coefficient vectors.

[0014]

[0014] In another example, the present disclosure describes a method for encoding video data, the method comprising: generating coefficients based on digital sample values ​​of the video data; determining a spectral efficiency of a channel over which an analog signal is to be transmitted; determining a value n based on the spectral efficiency of the channel; generating coefficient vectors, each of the coefficient vectors including n of the coefficients; for each of the coefficient vectors, determining an amplitude value for the coefficient vector based on a mapping pattern, wherein, for each respective allowable coefficient vector of a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of a plurality of amplitude values, each amplitude value being adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​that are adjacent to the respective amplitude value on 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 on the channel.

[0015]

[0015] In another example, the present disclosure describes a method for decoding video data, the method comprising: receiving an analog signal transmitted over a channel; 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 a coefficient 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 the respective allowable coefficient vector to a respective amplitude value of the plurality of amplitude values, each 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; and generating video data based on the coefficients in the coefficient vectors.

[0016]

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

[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 over a channel; and one or more processors implemented in circuitry, the one or more processors configured to: demodulate the analog signal to determine amplitude values ​​for a plurality of coefficient vectors; determine a value n, where the value n is based on the spectral efficiency of the channel; for each of the coefficient vectors, determine a coefficient 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 the respective allowable coefficient vector to a respective amplitude value of the plurality of amplitude values, each 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; and generate video data based on the coefficients in the coefficient vectors.

[0018]

[0018] In another example, the present disclosure describes a device for encoding video data, the device comprising: means for generating coefficients based on digital sample values ​​of the video data; means for determining a 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, each of the coefficient vectors including n of the coefficients; means for determining, for each of the coefficient vectors, an amplitude value for the coefficient vector based on a mapping pattern, wherein, for each respective allowable coefficient vector of a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of a plurality of amplitude values, each amplitude value being adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​that are adjacent to the respective amplitude value on a monotonic number line of the amplitude values; means for modulating an analog signal based on the amplitude value for the coefficient vector; and means for outputting the analog signal on the 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 over a channel; means for demodulating the analog signal to determine amplitude values ​​for a plurality of coefficient vectors; means for determining a value n, where the value n is based on the spectral efficiency of the channel; means for determining, for each of the coefficient vectors, a coefficient 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 a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of a plurality of amplitude values, each 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; and means for generating video data based on the coefficients in the coefficient vectors.

[0020]

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

[0021]

[0021] In another example, the present disclosure describes a computer-readable data storage medium having stored thereon instructions that, when executed, cause one or more processors to: receive an analog signal transmitted over a channel; demodulate the analog signal to determine amplitude values ​​for a plurality of coefficient vectors; determine a value n, where the value n is based on the spectral efficiency of the channel; for each of the coefficient vectors, determine a coefficient 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 a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of a plurality of amplitude values, each 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; and generate video data based on the coefficients in the coefficient vectors.

[0022]

[0022] In another example, the present disclosure describes a method for encoding video data, the method comprising: generating prediction data for 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 interlacing process to generate interlaced amplitude values, wherein the interlacing 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.

[0023]

[0023] In another example, the present disclosure describes a method for decoding video data, the method comprising: determining an interlaced amplitude value based on an analog signal; performing a deinterlacing process to generate two or more coefficients, wherein the bits of the two or more coefficients are interlaced in the interlaced amplitude value; generating residual data based on the two or more coefficients and 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.

[0024]

[0024] In another example, the present disclosure describes a device for encoding video data, the device comprising: a memory configured to store the video data; and one or more processors implemented in circuitry, the one or more processors configured to: generate prediction data for the 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 the interlaced amplitude values; and generate digital values ​​based on the prediction data; and further comprising a modem configured to output one or more analog signals modulated based on the interlaced amplitude values ​​and the digital values.

[0025]

[0025] In another example, the present disclosure describes a device for decoding video data, the device comprising: a modem configured to obtain an analog signal and a digital value; and one or more processors implemented in circuitry, the one or more processors configured to: determine an interlaced amplitude value based on the analog signal; perform a deinterlacing process to generate two or more coefficients, wherein the bits of the two or more coefficients are interlaced in the interlaced amplitude value; generate residual data based on the two or more coefficients; 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.

[0026]

[0026] In another example, the present disclosure describes a device for encoding video data, the device comprising: means for generating prediction data for the video data; means for generating residual data based on the prediction data and digital sample values ​​of the 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 the 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 digital values ​​based on the prediction blocks.

[0027]

[0027] In another example, the present disclosure describes a device for decoding video data, the device 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, wherein the bits of the two or more coefficients are interlaced in the interlaced amplitude value; means for generating residual data based on the two or more coefficients; means for obtaining digital values; means for generating prediction data based on the digital values; 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 having stored thereon 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 the 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 having stored thereon 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, wherein the bits of the two or more coefficients are interlaced in the interlaced amplitude value; generate residual data based on the two or more coefficients; obtain digital values; generate prediction data based on the digital values; and reconstruct video data based on the prediction data and the residual data.

[0030] The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will become apparent from the description, drawings, and claims. [Brief explanation of the drawings]

[0031] [Figure 1]

[0031] A block diagram illustrating an example encoding and decoding system that may implement the techniques of this disclosure. [Figure 2]

[0032] 1 is a block diagram illustrating an example video encoder in accordance with one or more techniques of this disclosure. [Figure 3]

[0033] 1 is a block diagram illustrating an example video decoder in accordance with one or more techniques of this disclosure. [Figure 4]

[0034] 1 is a block diagram illustrating an example modem in accordance with one or more techniques of the present disclosure. [Figure 5]

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

[0036] 1 is a conceptual diagram illustrating received errors during analog modulation transmission. [Figure 7]

[0037] 1 is a conceptual diagram illustrating an example of data symbol coding in accordance with one or more techniques of this disclosure. [Figure 8]

[0038] 1 is a conceptual diagram illustrating an example of minimum value coding in accordance with one or more techniques of this disclosure. [Figure 9]

[0039] 1 is a conceptual diagram illustrating an example mapping pattern in accordance with one or more techniques of this disclosure. [Figure 10]

[0040] 10 is a conceptual diagram illustrating amplitude values ​​corresponding to the mapping pattern of FIG. 9 in accordance with one or more techniques of this disclosure. [Figure 11]

[0041] 10 is a conceptual diagram illustrating another example mapping pattern in accordance with one or more techniques of this disclosure. [Figure 12]

[0042] 12 is a conceptual diagram illustrating amplitude values ​​corresponding to the mapping pattern of FIG. 11 in accordance with one or more techniques of this disclosure. [Figure 13]

[0043] 10 is a conceptual diagram illustrating another example mapping pattern in accordance with one or more techniques of this disclosure. [Figure 14]

[0044] 14 is a conceptual diagram illustrating amplitude values ​​corresponding to the mapping pattern of FIG. 13 in accordance with one or more techniques of this disclosure. [Figure 15]

[0045] 1 is a conceptual diagram illustrating an example three-dimensional mapping pattern in accordance with one or more techniques of the present disclosure. [Figure 16]

[0046] 1 is a flowchart illustrating an example method for encoding video data, in accordance with one or more techniques of this disclosure. [Figure 17]

[0047] 1 is a flowchart illustrating an example method for decoding video data, in accordance with one or more techniques of this disclosure. [Figure 18]

[0048] 1 is a conceptual diagram illustrating a first example of interlacing in accordance with one or more techniques of this disclosure. [Figure 19]

[0049] 10 is a conceptual diagram illustrating a second example of interlacing in accordance with one or more techniques of this disclosure. [Figure 20]

[0050] 1 is a block diagram illustrating an example noise effect on a coding process. [Figure 21]

[0051] 1 is a conceptual diagram illustrating gap coverage in accordance with one or more techniques of the present disclosure. [Figure 22]

[0052] 1 is a flowchart illustrating an example method for encoding video data, in accordance with one or more techniques of this disclosure. [Figure 23]

[0053] 1 is a flowchart illustrating an example method for decoding video data, in accordance with one or more techniques of this disclosure. [Figure 24]

[0054] 1 is a block diagram illustrating an example analog compression unit using variable symbol rates in accordance with one or more techniques of this disclosure. [Figure 25]

[0055] 1 is a flowchart illustrating an example method for encoding video data, in accordance with one or more techniques of this disclosure. [Figure 26]

[0056] 1 is a flowchart illustrating an example method for decoding video data, in accordance with one or more techniques of this disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0032]

[0057] As mentioned above, the ability to transmit and receive high-quality video data is one of the compelling 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), to encode video data can be resource-intensive and therefore involve the consumption of a significant amount of power. This disclosure describes techniques for encoding video data that can 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 the video data. Additionally, the video encoder may generate coefficient vectors. Each of the coefficient vectors includes n of the coefficients. For each of the coefficient vectors, the video encoder may determine an amplitude value for the coefficient vector based on a mapping pattern. The mapping pattern may map each allowed coefficient vector to a unique amplitude value, which is adjacent in n-dimensional space to at least one other amplitude value that is adjacent to the unique amplitude value on 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 ​​for the coefficient vectors.

[0034]

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

[0035]

[0060] 1 is a block diagram illustrating an example video encoding and decoding system 100 that may perform the techniques of this disclosure. The techniques of this disclosure are generally directed to coding (encoding and / or decoding) video data. Generally, the video data includes some data for processing the video. Thus, the video data may include raw uncoded video, coded video, decoded (e.g., reconstructed) video, and video metadata, such as signaling data.

[0036]

[0061] 1, system 100 includes a source device 102 that, in this example, provides encoded video data to be decoded and displayed by a destination device 116. In particular, source device 102 provides the video data to destination device 116 via a computer-readable medium 110. Source device 102 and 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, etc. In some cases, source device 102 and destination device 116 may be equipped for wireless communication and, therefore, may be referred to as wireless communication devices.

[0037]

[0062] In the example of FIG. 1 , source device 102 includes video source 104, memory 106, video encoder 200, and modem 108. Destination device 116 includes modem 122, video decoder 300, memory 120, and display device 118. According to this disclosure, video encoder 200 of source device 102 and video decoder 300 of destination device 116 may be configured to perform hybrid digital-to-analog modulation for video transmission. Source device 102 represents an example of a video encoding device, and destination device 116 represents an example of a video decoding device. In other examples, the source device and destination device may include other components or arrangements. For example, source device 102 may receive video data from an external video source, such as an external camera. Similarly, destination device 116 may interface with an external display device rather than including an integrated display device.

[0038]

[0063] The system 100 shown in FIG. 1 is merely an example. In general, any digital video encoding and / or decoding device may perform the techniques of this disclosure related to hybrid digital-to-analog modulation for video transmission. Source device 102 and destination device 116 are merely examples of coding devices in which source device 102 generates encoded 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. Accordingly, video encoder 200 and video decoder 300 represent examples of coding devices, particularly 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 encoding and video decoding components. Thus, system 100 may support one-way or two-way video transmission between source device 102 and destination device 116, e.g., for video streaming, video playback, video broadcasting, or video telephony.

[0039]

[0064] Generally, video source 104 represents a source of video data (i.e., raw, unencoded video data) and provides a continuous series of pictures (also called “frames”) of the video data to video encoder 200, which encodes the data for the pictures. Video source 104 of source device 102 may include a video capture device, such as a video camera, a video archive containing previously captured live video, and / or a video feed interface for receiving video from a video content provider. As a further alternative, video source 104 may generate computer-graphics-based data as source video, or a combination of live, archived, and computer-generated video. In each case, video encoder 200 encodes the captured, pre-captured, or computer-generated video data. Video encoder 200 may rearrange the pictures from their received order (sometimes called “display order”) into a coding order for coding. Source device 102 may then output the encoded video data onto computer-readable medium 110, for example, via modem 108, for receipt and / or retrieval by modem 122 of 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, memory 106, 120 may store raw video data, e.g., raw video from video source 104 and raw decoded video data from video decoder 300. Additionally or alternatively, memory 106, 120 may store software instructions executable by, e.g., video encoder 200 and video decoder 300, respectively. While memory 106 and memory 120 are shown separate 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, memory 106, 120 may store encoded video data, e.g., output from video encoder 200 and input to video decoder 300. In some examples, portions of the memory 106, 120 may be allocated as one or more video buffers, for example, to store 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. In one example, the computer-readable medium 110 represents a communication medium for enabling the source device 102 to transmit the encoded video data directly to the destination device 116 in real time, for example, via a radio frequency network or a computer-based network. The modem 108 may modulate a transmission signal including the encoded video data, and the modem 122 may demodulate a received transmission signal, in accordance with a communication standard such as a wireless communication protocol. 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 include 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 include routers, switches, base stations, or any other equipment that may be useful for facilitating communication from the source device 102 to the destination device 116.

[0042]

[0067] In some examples, computer-readable medium 110 may include storage device 112. Source device 102 may output the encoded data from modem 108 to storage device 112. Similarly, destination device 116 may access the encoded data from storage device 112 via modem 122. 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, computer-readable medium 110 may include a file server 114 or another intermediate storage device that may store encoded video data generated by source device 102. Source device 102 may output the encoded video data to file server 114 or another intermediate storage device that may store the encoded video generated by source device 102. Destination device 116 may access the stored video data from file server 114 via streaming or download. File server 114 may be any type of server device capable of storing encoded video data and transmitting the encoded video data to destination device 116. File server 114 may represent a web server (e.g., for a website), a file transfer protocol (FTP) server, a content delivery network device, or a network-attached storage (NAS) device. Destination device 116 may access the encoded video data from file server 114 through any standard data connection, including an Internet connection. This may include a wireless channel (e.g., a Wi-Fi® connection), a wired connection (e.g., a Digital Subscriber Line (DSL), a cable modem, etc.), or a combination of both, that is suitable for accessing the encoded video data stored on file server 114. 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] Modem 108 and modem 122 may represent a wireless transmitter / receiver, a modem, a wired networking component (e.g., an Ethernet card), a wireless communication component operating according to any of the various IEEE 802.11 standards, or other physical components. In examples in which modem 108 and modem 122 comprise wireless components, modem 108 and modem 122 may be configured to transfer data, such as encoded video data, according to cellular communication standards such as Fourth Generation (4G), 4G-LTE (Long Term Evolution), LTE Advanced, 5G, etc. In some examples in which modem 108 comprises a wireless transmitter, modem 108 and modem 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), the Bluetooth standard, etc. In some examples, source device 102 and / or destination device 116 may include respective system-on-chip (SoC) devices. For example, the source device 102 may include an SoC device for performing functions attributed to the video encoder 200 and / or the modem 108, and the destination device 116 may include an SoC device for performing functions attributed to the video decoder 300 and / or the modem 122.

[0045]

[0070] The techniques of this disclosure may be applied to video coding supporting any of a variety of multimedia applications, such as over-the-air television broadcast, 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 the encoded video data from the computer-readable medium 110 (e.g., a communications medium, a storage device 112, a file server 114, etc.). The encoded video data may include signaling information defined by the video encoder 200 that is also used by the video decoder 300, such as syntax elements having values ​​that describe the characteristics and / or processing of video blocks or other coded units (e.g., slices, pictures, groups of pictures, sequences, etc.). The display device 118 displays decoded pictures of the decoded video data to a user. The display device 118 may represent any of a variety of 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] 1, in some examples, video encoder 200 and video decoder 300 may each be integrated with an audio encoder and / or decoder and may include an appropriate MUX-DEMUX unit or other hardware and / or software to handle multiplexed streams that include both audio and video in a common data stream. Where applicable, the MUX-DEMUX unit may conform to the ITU H.223 multiplexer protocol or other protocols such as the User Datagram Protocol (UDP).

[0048]

[0073] Video encoder 200 and video decoder 300 may each be implemented as any of a variety of suitable encoder and / or decoder circuits, or any combination thereof, such as 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 techniques are implemented partially in software, a device may store software instructions on a suitable non-transitory computer-readable medium and execute the instructions in hardware using one or more processors to perform the techniques of this disclosure. Each of video encoder 200 and video decoder 300 may be included within one or more encoders or decoders, any of which may be integrated as part of a combined encoder / decoder (CODEC) in the respective device. Devices including video encoder 200 and / or video decoder 300 may comprise integrated circuits, microprocessors, and / or wireless communication devices such as cellular telephones.

[0049]

[0074] Generally, the video encoder 200 and the video decoder 300 may code 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 a YUV (e.g., Y, Cb, Cr) format, a red, green, and blue (RGB) format, a hue saturation value (HSV) format, or other type of color format. In some examples, the video encoder 200 converts data formatted in a first color format to a second color format prior to 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 generally refer to coding (e.g., encoding and decoding) a picture to include processes for encoding or decoding data for a picture. Similarly, this disclosure may refer to coding of a block of a picture to include processes for encoding or decoding data for 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 the video data. As described herein, the video encoder 200 may generate coefficients based on the video data. That is, the video encoder 200 may generate coefficients based on an array of digital sample values ​​of the video data. In some examples, as part of generating the coefficients, the video encoder 200 may generate prediction data based on the video data (e.g., based on a picture of the video data). The prediction data may be an approximation of the video data (e.g., an approximation of a picture of the video data) including digital sample values. The video encoder 200 may quantize the digital sample values ​​and entropy code them. The modem 108 may transmit the entropy-coded digital sample values. Furthermore, as part of generating the 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 ​​indicating differences between digital sample values ​​of the prediction data and 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] Video encoder 200 may use the coefficients to generate coefficient vectors. Each of the coefficient vectors may include n of the coefficients, where n is an integer value (e.g., an integer value greater than 1). In some examples, the coefficient vector may consist of consecutive coefficients in a block of coefficients. In some examples, video encoder 200 may determine the value of n based on the spectral efficiency of the channel.

[0053]

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

[0054]

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

[0055]

[0080] The video decoder 300 may perform a decoding process that is generally inverse to 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 prediction data. The video decoder 300 may entropy decode and dequantize the entropy-encoded digital sample values ​​to determine the digital sample values ​​of the prediction data. In some examples, for each coefficient vector, the video decoder 300 may determine coefficients in the coefficient vector based on an amplitude value for the coefficient vector and a mapping pattern. 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 allowed coefficient vector to a unique amplitude value, which is adjacent in n-dimensional space to at least one other amplitude value that is monotonic with the unique amplitude value. Each of the coefficient vectors includes n of the coefficients. In some examples, the value n may be determined based on the spectral efficiency of the channel. Additionally, in some examples, instead of using a mapping pattern, the video decoder 300 may perform a deinterlacing process that deinterlaces the bits of two or more coefficients from the amplitude values.

[0056]

[0081] Further, the video decoder 300 may 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 video data based on the digital sample values ​​generated from the coefficients and the digital sample values ​​of the predictive block. For example, the video decoder 300 may add the digital sample values ​​generated from the coefficients to corresponding digital sample values ​​of the predictive block to generate the video data. Encoding and decoding video data in this manner may provide compression of the 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 illustrating an example video encoder 200 in accordance with one or more techniques of this disclosure. Figure 2 is provided for illustrative purposes and should not be considered limiting of the techniques broadly illustrated and described in this 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 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. Moreover, the video encoder 200 may include additional or alternative processors or processing circuits for performing these and other functions.

[0058]

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

[0059]

[0084] In this disclosure, references to video data memory 202 should not be construed as limited to memory internal to video encoder 200 unless specifically so described, nor should they be construed as limited to memory external to video encoder 200 unless specifically so described. Instead, references to video data memory 202 should be understood as a reference memory that stores video data that video encoder 200 receives for encoding (e.g., video data for a current block to be encoded). Memory 106 of FIG. 1 may also provide temporary storage of outputs from various units of video encoder 200.

[0060]

[0085] The various units in FIG. 2 are shown to aid in understanding the operations performed by video encoder 200. The units may be implemented as fixed-function circuits, programmable circuits, or a combination thereof. A fixed-function circuit refers to a circuit that provides a specific function and is preset with respect to the operations that may be performed. A programmable circuit refers to a circuit that can be programmed to perform various tasks and to provide flexible functionality in the operations that may be performed. For example, a programmable circuit may execute software or firmware that causes the programmable circuit to operate in a manner defined by the software or firmware instructions. A fixed-function circuit may execute software instructions (e.g., to receive parameters or output parameters), but the types of operations that the fixed-function circuit performs are generally invariant. 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] Video encoder 200 may include an arithmetic logic unit (ALU), a basic functional unit (EFU), a digital circuit, an analog circuit, and / or a programmable core formed from a programmable circuit. In examples in which the operations of video encoder 200 are performed using software executed by a programmable circuit, memory 106 (FIG. 1) may store instructions (e.g., object code) of the software that video encoder 200 receives and executes, or another memory (not shown) within video encoder 200 may store such instructions. Video data memory 202 is configured to store received video data.

[0062]

[0087] In the example of FIG. 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 referred to as an “image approximation.” The coarse image description may generally be transmitted in data packets having a small size. The video decoder 300 may use data in such data packets to reconstruct a low-resolution image. The modem 108 may transmit the data packets using a conventional 5G digital data multiplexing and channel coding scheme or another digital data multiplexing and channel coding scheme.

[0063]

[0088] The prediction unit 204 may generate the prediction data in one of a variety of ways. For example, in some examples, the prediction unit 204 may generate the prediction data digital sample values ​​by, for each two-dimensional group (i.e., block) of digital sample values ​​in a picture of the original video data, determining the average of the digital sample values ​​in the block. For purposes of determining the residual data, the residual generation unit 212 may assume that each sample value in the block is equal to the average. However, only the average of the block is passed to the quantization unit 206. In another example, the prediction unit 204 may generate the prediction data by determining the digital sample values ​​of the top-left or center pixel of each block in the picture and discarding the remaining sample values. For purposes of determining the 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. Thus, 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 a process in which digital sample values, such as the digital sample values ​​in the prediction data, are quantized to possibly reduce the amount of data used to represent the digital sample values ​​and provide 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 encoding unit 208 may then perform entropy encoding on the quantized digital sample values. For example, the entropy encoding unit 208 may perform various types of entropy encoding processes, such as a contact-adaptive binary arithmetic coding (CABAC) encoding process, a context-adaptive variable-length coding (CAVLC) process, a variable-to-variable (V2V) length encoding process, a syntax-based context-adaptive binary arithmetic coding (SBAC) process, a probability interval partitioned entropy (PIPE) encoding process, an exponential-Golomb encoding process, or another type of entropy encoding process. The buffer 210 may store the entropy-encoded quantized digital sample values.

[0066]

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

[0067]

[0092] The analog compression unit 214 modulates an analog signal based on the residual data. In the example of FIG. 2, a 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 transform to the residual data to generate the coefficients. For example, in one example, the binarization unit 216 may apply a transform (e.g., a discrete cosine transform (DCT), a discrete sine transform (DST), or other type of transform) 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 a certain number of positions. In other examples, the coefficients may be generated in other manners. For example, the video encoder 200 may generate the coefficients without applying a quantization process.

[0069]

[0094] According to some examples of the present disclosure, the packing unit 220 of the analog compression unit 214 generates coefficient vectors. Each of the coefficient vectors includes n of the coefficients. For each of the coefficient vectors, 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 value may indicate the amplitude of an in-phase (I) component or a quadrature (Q) component in the IQ domain. As described in more detail elsewhere in this disclosure, the mapping pattern maps each allowed coefficient vector to a unique amplitude value, which is adjacent in n-dimensional space to at least one other amplitude value adjacent to the unique amplitude value on a monotonic number line of amplitude values. A monotonic number line is a sequence that is always increasing or always decreasing. The numbers on the number line may or may not be evenly spaced. The allowed coefficient vector includes any vector of n coefficients, where each coefficient in the vector is limited to a predetermined set of allowable values ​​for that coefficient. In some examples, packing unit 220 determines n based on the spectral efficiency of the channel. In some examples, packing unit 220 performs an interlacing process that interlaces two or more bits of the coefficients to form amplitude values.

[0070]

[0095] The analog modulation unit 222 may modulate the analog signal based on the amplitude values. In some examples, as part of modulating the analog signal, the analog modulation unit 222 may determine analog symbols based on one or more of the amplitude values. In some examples, the analog symbols are continuous, e.g., the analog symbols are not quantized to any quadrature amplitude modulation (QAM) levels, as is common in conventional digital transmission. Using analog modulation, in contrast to standard modulation techniques, may not require retransmission. For example, errors occurring when transmitting modulated digital data may be detected (e.g., using a checksum), and the receiver may request retransmission of the digital data. However, because small changes in phase or power in the analog modulated data are unlikely to introduce large amounts of distortion in the reconstructed video data, small phase shifts and small changes in power during transmission of the analog modulated data may not require retransmission. Therefore, using analog modulation may reduce computational complexity, reduce latency, and reduce power consumption. The modem 108 may transmit the 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 pairs may be consecutive amplitude values ​​generated by the packing unit 220. As described below with respect to FIGS. 5 and 6, the analog modulation unit 222 may determine a point in the IQ plane corresponding to the 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. The analog modulation unit 222 may determine a phase shift and power of a symbol sampling instant in the analog signal that the modem 108 transmits to the destination device 116 based on the determined point.

[0072]

[0097] Figure 3 is a block diagram illustrating an example video decoder 300 in accordance with one or more techniques of this disclosure. Figure 3 is provided for purposes of explanation and not to limit the techniques broadly illustrated and described in this disclosure. 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 reconstruction unit 308, a reconstruction unit 310, and a video data memory 312. In the example of Figure 3, the analog reconstruction 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 reconstruction 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 video decoder 300 may be implemented as one or more circuits or logic elements, as part of a hardware circuit, or as part of a processor in an FPGA, an ASIC, etc. Moreover, video decoder 300 may include additional or alternative processors or processing circuits for performing these and other functions.

[0073]

[0098] Buffer 302 may store digital video data to be decoded by components of video decoder 300. The digital video data stored in buffer 302 may be obtained, for example, from modem 122 or a storage medium. Video data memory 312 generally stores decoded pictures that video decoder 300 may output. Buffer 302 and video data memory 312 may be formed by any of a variety of 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 with other components of video decoder 300 or off-chip relative to those components.

[0074]

[0099] The various units shown in FIG. 3 are shown to aid in understanding the operations performed by video decoder 300. The units may be implemented as fixed-function circuits, programmable circuits, or a combination thereof. As with FIG. 2, a fixed-function circuit refers to a circuit that provides a specific function and is preset with respect to the operations that may be performed. A programmable circuit refers to a circuit that may be programmed to perform various tasks and to provide flexible functionality in the operations that may be performed. For example, a programmable circuit may execute software or firmware that causes the programmable circuit to operate in a manner defined by the software or firmware instructions. A fixed-function circuit may execute software instructions (e.g., to receive parameters or output parameters), but the types of operations that the fixed-function circuit performs are generally invariant. 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 an integrated circuit.

[0075]

[0100] The video decoder 300 may include a programmable core formed from an ALU, an EFU, digital circuits, analog circuits, and / or programmable circuits. In examples in which the operations of the video decoder 300 are performed by software executing on programmable circuits, on-chip or off-chip memory may store instructions (e.g., object code) of the software that the video decoder 300 receives and executes.

[0076]

[0101] In the example of Figure 3, the modem 122 may receive the entropy-encoded digital sample values. The buffer 302 may store the entropy-encoded digital sample values ​​received by the modem 122. The entropy decoding unit 304 may perform a process for entropy decoding the entropy-encoded digital sample values ​​in the buffer 302. The entropy decoding unit 304 may perform various types of entropy decoding processes, such as a CABAC decoding process, a CAVLC decoding process, a V2V length decoding process, an SBAC decoding process, a PIPE decoding process, an Exponential-Golomb decoding process, or another type of entropy decoding process. The inverse quantization unit 306 may inverse quantize the digital sample values.

[0077]

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

[0078]

[0103] For each coefficient vector (and thus 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 for the coefficient vector and the mapping pattern. The mapping pattern may map each allowed coefficient vector to a unique amplitude value that is adjacent in n-dimensional space to at least one other amplitude value that is adjacent to the unique amplitude value on a monotonic number line of amplitude values. Each of the coefficient vectors includes n of the coefficients. The allowed coefficient vector includes any vector of n coefficients, where each coefficient in the vector is limited to a predetermined allowable range for that coefficient. In another example, the unpacking unit 316 may perform a deinterlacing process that deinterlaces the bits of two or more coefficients from the bits of the amplitude value.

[0079]

[0104] The inverse quantization unit 318 of the analog restoration unit 308 may inverse quantize the coefficients of the coefficient vector. For example, the inverse quantization unit 318 may left-shift binary values ​​representing the coefficients. The de-binarization unit 320 of the analog restoration unit 308 may then convert the coefficients into digital sample values. For example, the de-binarization unit 320 may apply an inverse transform (e.g., an inverse DCT, an inverse DST, etc.) to the coefficients to convert them into digital sample values. The reconstruction unit 310 may reconstruct digital sample values ​​of a picture of 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 include a single digital sample value for each block of the picture. The reconstruction unit 310 may determine digital sample values ​​for each sample location of the block. For example, the reconstruction unit 310 may set the digital sample values ​​of each sample location of the block to be equal to the digital sample values ​​of the block included in the prediction data. In some examples, the reconstruction unit 310 may interpolate digital sample values ​​of a block based on the transmitted digital sample values ​​of the block and the transmitted digital sample values ​​of one or more neighboring blocks. The reconstruction unit 310 may reconstruct digital sample values ​​of a picture based on the digital sample values ​​generated by the analog reconstruction unit 308 and the determined digital sample values ​​for locations within each of the blocks of the picture. For example, the reconstruction unit 310 may add the digital sample values ​​generated by the analog reconstruction unit 308 to the corresponding digital sample values ​​for locations within the blocks of the picture. The video data memory 312 may store the reconstructed digital sample values, for example, for subsequent output and display.

[0080]

[0105] FIG. 4 is a block diagram illustrating an example modem 400 in accordance with one or more techniques of this disclosure. The modem 400 may be an instance of the modem 108 of the source device 102 or the modem 122 of the destination device 116. In the example of FIG. 4, the modem 400 includes a TrBk cyclic redundancy check (CRC) attachment 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 attachment 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 attachment unit 402 calculates 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, interlace process information, quantization information, data indicating the number of coefficients in a coefficient vector, and / or other information). The code block segmentation unit 404 may segment the payload into code blocks, where a code block is the maximum payload size that a channel decoder (e.g., a low-density parity-check code (LDPC) for a 5G data channel or a turbo code for 4G data) is allowed to encode. The channel coding unit 406 implements a channel coder (e.g., an 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 a data size allocation. The code block concatenation unit 410 may concatenate selected bits of all code blocks. The scrambler unit 412 may generate scrambled bits by applying an exclusive-or (XOR) operation to the concatenated data and a pseudorandom Gold sequence, which is unique for each user. The modulation unit 414 may modulate the scrambled bits according to a modulation mode, for example, π / 2-binary phase-shift keying (BPSK), quadrature phase-shift keying (QPSK), 16-QAM, 64-QAM, or 256-QAM. In this manner, the modulation unit 412 may determine analog symbols from the sequence of scrambled bits (i.e., the scrambled bit sequence). The resource mapper 416 may arrange the analog symbols in the frequency domain and the 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 (e.g., 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). The sequence of actions performed by the units of the modem 400 when receiving data 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 of FIG. 4, the digital path includes a TrBk CRC attachment 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 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 rather than the TrBk CRC attachment 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] 5 is an example constellation diagram 500 for analog modulation in the IQ domain. The constellation diagram 500 is a representation of a signal modulated by quadrature amplitude modulation (QAM). The constellation diagram 500 displays the signal as a two-dimensional xy-plane scatter plot in the complex plane with respect to a symbol sampling instant. In the context of this disclosure, a symbol sampling instant corresponds to the instant in time at which an analog symbol is transmitted.

[0084]

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

[0085]

[0110] The two-dimensional plane of constellation diagram 500 is continuous (i.e., not discrete). However, constellation diagram 500 includes a set of reference points 502A-502P (collectively "reference points 502"). In the example of FIG. 5, the reference points are represented by crosses. In the example of FIG. 6, the reference points are represented by circles. The reference points 502 may be represented as any shape used to represent points in the IQ plane. In the example of FIG. 5, constellation diagram 500 includes a set of 16 reference points 502. For any point on 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 a reference phase.

[0086]

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

[0087]

[0112] When the modem 108 is transmitting digital data (e.g., entropy-encoded predictive data), the modulation unit 412 (FIG. 4) may identify a reference point (e.g., one of the reference points 502) that corresponds 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 of 0011, the modulation unit 412 may determine an analog symbol having a phase shift and power that corresponds to reference point 502K, as indicated by arrow 504, for example. The resource mapper 414 and OFDM signal generation unit 416 of the modem 108 may use the phase shift and amplitude between the symbol sampling instants when transmitting analog symbols in an analog signal, such as an electrical or radio signal.

[0088]

[0113] When performing analog modulation on analog data (e.g., amplitude values ​​generated by packing unit 220), analog modulation unit 222 of analog compression unit 214 does not use reference points 502 of constellation diagram 500. Instead, analog modulation unit 222 may determine pairs of amplitude values ​​generated by packing unit 220. Analog modulation unit 222 may then use the amplitude value pairs as coordinates (e.g., Cartesian coordinates) of points in the IQ plane. Analog modulation unit 222 may determine analog symbols as the phase shift and power of the points indicated by the coordinates. Because analog modulation unit 222 does not use reference points 502, the determined points may be between reference points 502, for example, as indicated by arrows 506.

[0089]

[0114] The modem 122 of the destination device 116 is configured to receive an analog signal. When demodulating the digital data (e.g., entropy-encoded predicted data), the modulation unit 414 may determine a phase shift and power of the analog signal between symbol sampling instants. The modulation unit 414 may then determine a point in the IQ plane of the constellation diagram 500 corresponding to the phase shift and power of the analog signal between the symbol sampling instants. The modulation unit 414 may then determine a reference point (e.g., one of the reference points 402) that is 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 portions of the modem 400 (e.g., the scrambler 412, the code block concatenation unit 410, the rate matching unit 412, the channel coding unit 414, the code block segmentation 404, and the TrBk CRC attachment unit 402) may process the bit sequence to recover the digital values.

[0090]

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

[0091]

[0116] FIG. 6 is a conceptual diagram illustrating received errors during analog modulation transmission. More specifically, FIG. 6 illustrates a constellation diagram 600. The modem 400, the analog modulation unit 222, and the analog demodulation unit 314 may use the constellation diagram 600 in the same manner as the constellation diagram 500 of FIG. 5. In the example of FIG. 6, small circles are used instead of crosses to indicate reference points. Due to noise, the phase shift and power, and therefore the analog symbols, may vary during transmission. However, small amounts of noise typically do not produce large deviations in the amplitude values ​​corresponding to the received analog symbols. In other words, the difference between the original I component and the I component corresponding to the received analog symbol (i.e., ΔAmplitude2) and the difference between the original Q component and the Q component corresponding to the received analog symbol (i.e., ΔAmplitude1) are generally small during transmission of the analog symbols.

[0092]

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

[0093]

[0118] In some examples, 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, packing unit 220 may determine a sign value for each of the coefficients in the coefficient vector. In addition, packing unit 220 may generate a modified coefficient vector containing the absolute values ​​of the coefficients. In this example, packing unit 220 may then use the modified coefficient vector to determine amplitude values.

[0094]

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

[0095]

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

[0096]

[0121] In some examples, packing unit 220 may use minimum value coding to convert the coefficients in the coefficient vector to unsigned values. For example, to use minimum value coding to convert the coefficients in the coefficient vector to unsigned values, packing unit 220 may determine a shift value equal to the smallest negative coefficient in the coefficient vector. 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. Packing unit 220 may use the modified coefficient vector to determine an amplitude value for 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 may receive the amplitude values ​​for the coefficient vector from the analog demodulation unit 314. The unpacking unit 316 may use the amplitude values ​​for 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 in accordance with one or more techniques of this disclosure. In the example of Figure 8, a coefficient vector 800 includes positive and negative coefficients. Packing unit 220 determines a shift value 802. The shift value 802 may be the smallest negative coefficient in the coefficient vector 800. Thus, in the example of Figure 8, the shift value 802 is equal to -13. Additionally, 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. Video encoder 200 may transmit the shift value, for example, through a digital path.

[0099]

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

[0100]

[0125] In the example of Figure 9, each of the 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 a coefficient vector of (0,0). For example, as shown in the example of Figure 10, for a coefficient vector of (1,10), packing unit 220 may determine that the corresponding amplitude value is 103. Similarly, 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 may be extended to higher dimensions.

[0101]

[0126] FIG. 11 is a conceptual diagram illustrating an example mapping pattern according to one or more techniques of the present disclosure. FIG. 12 is a conceptual diagram illustrating amplitude values ​​corresponding to the mapping pattern of FIG. 11 according to one or more techniques of the present disclosure. This disclosure may refer to the mapping patterns of FIGS. 11 and 12 as M-snake mapping patterns. The packing unit 220 and the unpacking unit 316 may use the M-snake mapping pattern to determine signed amplitude values ​​for a coefficient vector of signed coefficients. Thus, the M-snake mapping pattern is an example of a mapping pattern that maps signed coefficients to signed amplitude values. The packing unit 220 and the unpacking unit 316 may use the mapping patterns of FIGS. 11 and 12 in a manner similar to the mapping patterns of FIGS. 9 and 10. However, the packing unit 220 and the unpacking unit 316 may use the mapping patterns of FIGS. 9 and 10 with coefficient vectors that include signed values ​​(i.e., positive and negative values). Because the mapping patterns of Figures 9 and 10 can use coefficient vectors that include signed values, the video encoder 200 may not need to signal as much side information (e.g., in the form of sign data or shift values). However, there may be some performance degradation associated with the use of signed values. For example, signed coefficients may require additional bits relative to unsigned coefficients of the same resolution. This additional bit increases 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 a nominal level, the scaling is more aggressive for signals with a higher dynamic range, and therefore performance may be lost.

[0102]

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

[0103]

[0128] 13 is a conceptual diagram illustrating an example mapping pattern in accordance with one or more techniques of the present disclosure. FIG. 14 is a conceptual diagram illustrating amplitude values ​​corresponding to the mapping pattern of FIG. 13 in accordance with one or more techniques of the present disclosure. This disclosure may refer to the mapping patterns of FIG. 13 and FIG. 14 as MS-Snake mapping patterns. Packing unit 220 and unpacking unit 316 may use the mapping patterns of FIG. 13 and FIG. 14 in a manner similar to the S-Snake mapping patterns of FIG. 9 and FIG. 10. Similar to the S-Snake mapping pattern, packing unit 220 may use the MS-Snake mapping pattern to convert coefficient vectors containing only unsigned values ​​into signed amplitude values.

[0104]

[0129] The MS-Snake mapping pattern may provide compression gain with small degradation in video quality. Furthermore, the MS-Snake mapping pattern may improve noise robustness of amplitude values. The MS-Snake mapping pattern maps unsigned numbers to signed amplitude values. Therefore, the MS-Snake mapping pattern is an example of a mapping pattern that maps unsigned coefficients to signed amplitude values. When using the MS-Snake mapping pattern, the number of bits may remain the same, but the dynamic power range may be reduced by 6 dB (because the absolute value of the maximum amplitude is one bit smaller). The power scaling may be less aggressive, which may increase signal resilience and therefore improve noise robustness. In addition, the MS-Snake mapping pattern may introduce an inherent noise suppression technique through the use of multi-dimensional short arches. Using a 2D signed plane (of amplitude values) for mapping may reduce the mapped amplitude by one bit relative to signed mapping, resulting in a lower dynamic range, which is an important 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] FIG. 15 is a conceptual diagram illustrating an example three-dimensional mapping pattern 500 in accordance with one or more techniques of this disclosure. As described above, packing unit 220 may determine amplitude values ​​for coefficient vectors based on a mapping pattern, where the mapping pattern maps each allowed coefficient vector to a unique amplitude value that is adjacent in n-dimensional space to at least one other amplitude value that is adjacent to the unique amplitude value on a monotonic number line of amplitude values. In the example of FIG. 15, n is equal to 3. Packing unit 220 may use mapping pattern 500 of FIG. 15 in a manner similar to mapping patterns described elsewhere in this disclosure. Mapping pattern 500 is an example of a three-dimensional S-snake mapping pattern that maps a vector of unsigned coefficients to unsigned amplitude values. For example, if the coefficient vector is equal to (0, 1, 2), packing unit 220 may determine an amplitude value of 62.

[0107]

[0132] 16 is a flowchart illustrating an example method for encoding video data in accordance with one or more techniques of this disclosure. The flowcharts of this 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 of Figure 16, the video encoder 200 may generate coefficients based on video data (1600). For example, in an 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 indicating differences between sample values ​​in the predictive block and corresponding sample values ​​in the block of video data. Further, 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 a quantization step. In yet other examples, the video encoder 200 does not perform a step of binarizing the residual data.

[0109]

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

[0110]

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

[0111]

[0136] In another example of modifying the initial coefficients, consistent with FIG. 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 the quantization unit 218) may generate the initial coefficients based on the residual data. In this example, the analog compression unit 214 may determine a shift value (e.g., the shift value 802 in FIG. 8) based on the least negative initial coefficient among the initial coefficients. The analog compression unit 214 may perform a process of converting the initial coefficients to non-negative versions of the initial coefficients based on the shift value. In this example, the modem 108 may be configured to signal data representing the shift value.

[0112]

[0137] Further, in the example of Figure 16, packing unit 220 of video encoder 200 may generate coefficient vectors (1602). Each of the coefficient vectors includes n of the coefficients. Packing unit 220 may generate the coefficient vectors in one of various manners. For example, in one example, packing unit 220 may generate the coefficient vectors as a group of n consecutive coefficients according to a coefficient coding order. Various coefficient coding orders may be used, such as a raster scan order, a zigzag scan order, a reverse raster scan order, a vertical scan order, etc. In some examples, the coefficient vector may include one or more negative coefficients and one or more positive coefficients (i.e., signed coefficients). In some examples, the coefficient vector includes only non-negative coefficients (i.e., unsigned coefficients).

[0113]

[0138] For each of the coefficient vectors, packing unit 220 may determine an amplitude value for the coefficient vector based on the mapping pattern (1604). For each respective allowed coefficient vector of the plurality of allowed coefficient vectors, the mapping pattern maps the respective allowed coefficient vector to a respective amplitude value of the plurality of amplitude values. Each amplitude value is 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 amplitude values. Figures 9-15, described above, illustrate example mapping patterns that packing unit 220 may use to determine amplitude values ​​for the coefficient vectors. Thus, in some examples, the mapping pattern may be one of an S-snake pattern, an M-snake pattern, an MS-snake pattern, or another type of mapping pattern. The value n may be 2 or greater.

[0114]

[0139] In some examples, to determine an amplitude value for the coefficient vector, packing unit 220 may determine a position in n-dimensional space. 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. Packing unit 220 may determine the amplitude value for the coefficient vector as the amplitude value corresponding to the determined position in the n-dimensional space.

[0115]

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

[0116]

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

[0117]

[0142] FIG. 17 is a flowchart illustrating an example method for decoding video data according to one or more techniques of this disclosure. In the example of FIG. 17, the analog demodulation unit 314 of the video decoder 300 may determine amplitude values ​​for a plurality of coefficient vectors based on an analog signal (1700). The analog demodulation unit 314 may perform analog amplitude demodulation according to examples provided elsewhere in this disclosure, e.g., any of the examples described with respect to FIG. 5 and FIG. 6. For example, the analog demodulation unit 314 may determine a phase shift and power of a symbol sampling instant 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 a coefficient in the coefficient vector based on the amplitude value for the coefficient vector and the mapping pattern (1702). For each respective allowed coefficient vector of the plurality of allowed coefficient vectors, the mapping pattern may map the respective allowed coefficient vector to a respective amplitude value of the plurality of amplitude values. Each amplitude value is 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. Each of the coefficient vectors may include n of the coefficients. Figures 9-15 described above illustrate example mapping patterns that the unpacking unit 316 may use to determine the amplitude values ​​for the coefficient vectors. Thus, in some examples, the mapping pattern may be one of an S-snake pattern, an M-snake pattern, an MS-snake pattern, or another type of mapping pattern. The value n may be 2 or greater. In some examples, the unpacking unit 316 may determine 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 the n-dimensional space to different amplitude values ​​among the plurality of 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 of FIG. 7, as part of determining the coefficients, the video decoder 300 may obtain (e.g., via the digital path of modem 122) a code value, where the code value indicates the positive / negative sign of the coefficients in the coefficient vector. In such examples, the video decoder 300 may determine the absolute values ​​of the coefficients in the coefficient vector based on the amplitude values ​​for the coefficient vector and the mapping pattern. The video decoder 300 may reconstruct the coefficients in the coefficient vector by, at least in part, applying the code value to the absolute values ​​of the coefficients in the coefficient vector. In some examples, such as the example of FIG. 8, as part of determining the coefficients, the video decoder 300 may obtain (e.g., via the digital path of modem 122) data representing a shift value. In such examples, the shift value indicates the smallest negative coefficient among the coefficients in the coefficient vector. Additionally, in such examples, the video decoder 300 may determine intermediate values ​​of the coefficients in the coefficient vector based on the amplitude values ​​for the coefficient vector and the mapping pattern. The video decoder 300 may reconstruct the coefficients in the coefficient vector by, at least in part, adding the shift value to each of the intermediate values ​​of the coefficients in the coefficient vector.

[0120]

[0145] Further, in the example of FIG. 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 manner, the analog restoration unit 308 may generate digital sample values. Further, in this example, the entropy decoding unit 304 of the video decoder 300 may obtain the digital values ​​(e.g., via a 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 the residual data, for example, by adding corresponding digital sample values ​​of the predictive block and digital sample values ​​generated by the analog reconstruction unit 308. In this manner, the video decoder 300 is capable of generating 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 this disclosure, packing unit 220 may perform an interlacing process that combines multiple coefficients into a single amplitude value. Performing the interlacing process may improve noise resistance and may provide compression gain over using two or more different symbol sampling instances to send two or more non-interlaced analog symbols. Packing unit 220 may perform the interlacing process to generate amplitude values ​​instead of the process described elsewhere in this disclosure that uses a mapping pattern to generate amplitude values ​​for a coefficient vector.

[0122]

[0147] FIG. 18 is a conceptual diagram illustrating a first example of interlacing in accordance with one or more techniques of this disclosure. In the example of FIG. 18, a first coefficient 1800 consists of four bits (i.e., bits a0-a3), and a second coefficient 1802 consists of four bits (i.e., bits b0-b3). Generally, interlacing refers to inserting bits of one or more coefficients between bits of another coefficient (e.g., in an alternating pattern, a round-robin pattern, or other type of pattern). Packing unit 220 of video encoder 200 may perform an interlacing process to generate amplitude values ​​1804 by interlacing bits of coefficients 1800 with bits of coefficients 1802. This disclosure may refer to amplitude values ​​generated by performing an interlacing process as “interlaced amplitude values.”

[0123]

[0148] The analog modulation unit 222 may use the interlaced amplitude value pairs in the same manner as the amplitude values ​​described elsewhere in this disclosure. The unpacking unit 316 of the video decoder 300 may receive the interlaced amplitude values ​​from the analog demodulation unit 314 and may 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 interlaced amplitude values ​​1804.

[0124]

[0149] 19 is a conceptual diagram illustrating a second example of interlacing in accordance with one or more techniques of this disclosure. In the example of FIG. 19, packing unit 220 of video encoder 200 performs an interlacing process that interlaces bits of coefficients 1900, 1902, 1904, and 1906 to generate interlaced amplitude value 1908. Unpacking unit 316 of video decoder 300 performs a deinterlacing process that deinterlaces bits of interlaced amplitude value 1908 to form coefficients 1900, 1902, 1904, and 1906.

[0125]

[0150] In some examples, packing unit 220 may dynamically select between different interlace processes. As can be seen from FIGS. 18 and 19, an interlaced amplitude value may contain different numbers of bits depending on the interlace process used to generate the amplitude value from the coefficients. Various characteristics of the channel through which source device 102 transmits an 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. Therefore, 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, packing unit 220 may determine the value x as the spectral efficiency divided by the number of bits per coefficient. Packing unit 220 may then use an interlace process that interlaces the bits of the x coefficients to form the interlaced amplitude value. In this manner, packing unit 220 may select an interlace process from multiple interlace 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 multiple deinterlacing processes. For example, the video encoder 200 may signal data (e.g., via a digital path) indicating the interlacing process. In some examples, each of the deinterlacing processes deinterlaces a different number of coefficients from the interlaced amplitude values.

[0126]

[0151] The 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 instants may result in the addition of 1 to the interlaced amplitude value that the analog demodulation unit 314 determines for the symbol sampling instant. Changes in the packed amplitude values ​​may result in significant differences between the original digital sample values ​​and the digital sample values ​​derived from the interlaced amplitude values.

[0127]

[0152] Figure 20 is a block diagram illustrating an example noise effect on the coding process. In the example of 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 that are both equal to 0111. The packing unit 220 may perform an interlacing process to interlace the bits of the coefficients to generate an interlaced amplitude value of 0011_1111 (equal to 63 in decimal). The analog modulation unit 222 (labeled D2A in Figure 20, for digital to analog) may then perform analog modulation to modulate an analog signal based on the interlaced amplitude values. The analog signal may be transmitted over a channel 2000.

[0128]

[0153] During transmission of the analog signal over the channel 2000, noise may cause a one-bit change in the interlaced amplitude values ​​demodulated from the analog signal by the analog demodulation unit 314 (labeled A2D in FIG. 20, for analog-to-digital). For example, a change in the power or phase shift of the analog signal between symbol sampling instants may 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 of FIG. 20, the interlaced amplitude value may be represented in binary as 0100_0000. The unpacking unit 316 may perform a de-interlacing process that converts the interlaced amplitude value of 0100_0000 into coefficients 0000 and 1000. The de-binarization unit 320 may convert these coefficients into digital sample values ​​equal to 0 and 8 in the example of FIG. 20. Note that the digital sample values ​​of 0 and 8 are significantly different from the original digital sample values ​​of 7 and 7. This difference can have a significant adverse effect on the quality of a decoded picture based on these digital sample values. Note that this noise vulnerability occurs primarily for certain interlaced amplitude values. However, this noise vulnerability is less severe for other interlaced amplitude values.

[0129]

[0154] According to one or more techniques of this disclosure that may address this issue, the packing unit 220 may instead remap the interlaced amplitude values ​​to interlaced amplitude values ​​such that at positions between noise-vulnerable interlaced amplitude values ​​in the number line of interlaced amplitude values, gap values ​​exist in the number line of interlaced amplitude values. A noise-vulnerable interlaced amplitude value in the number line of interlaced amplitude values ​​is an interlaced amplitude value where adding minimal noise (e.g., a single bit flip) may cause a significant change to a digital sample value determined based on the interlaced amplitude value. When the analog demodulation unit 314 determines that the interlaced amplitude value demodulated from the analog signal is one of the gap values, the analog demodulation unit 314 may round the interlaced amplitude value to the nearest non-gap interlaced amplitude value.

[0130]

[0155] FIG. 21 is a conceptual diagram illustrating gap ranges in accordance with one or more techniques of the present disclosure. In the example of FIG. 21, a 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-vulnerable interlaced amplitude values. The number line 2100 conceptually illustrates the insertion of gap values ​​between noise-vulnerable interlaced amplitude values. Specifically, in the example of FIG. 21, the dark bars correspond to a range of gap values ​​(i.e., a gap range). The width of the gap value range may be correlated with (e.g., proportional to or have some other relationship to) the number of bits changed in the binary representation of the interlaced amplitude value from noise that changes the decimal value of the interlaced amplitude value by one value. For example, as shown in the number line 2104 of FIG. 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] Thus, as shown in number line 2106 of FIG. 21, analog modulation unit 222 may map interlaced amplitude values ​​0-15 instead to interlaced amplitude values ​​0-15, interlaced amplitude values ​​16-31 instead to interlaced amplitude values ​​18-33, interlaced amplitude values ​​32-47 instead to interlaced amplitude values ​​38-53, interlaced amplitude values ​​48-63 instead to interlaced amplitude values ​​56-71, and so on. Thus, the analog demodulation unit 314 may instead convert the interlaced amplitude values ​​0-15 back into corresponding interlaced amplitude values ​​0-15, instead convert the interlaced amplitude values ​​16-17 (i.e., gap values) into interlaced amplitude values ​​15 and 16 respectively, instead convert the interlaced amplitude values ​​18-33 back into corresponding interlaced amplitude values ​​16-31, instead convert the interlaced amplitude values ​​34-35 (i.e., gap values) into interlaced amplitude value 31, instead convert the interlaced amplitude values ​​36-37 (i.e., gap values) into interlaced amplitude value 32, instead convert the interlaced amplitude values ​​38-53 into corresponding interlaced amplitude values ​​32-37, and so on.

[0132]

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

[0133]

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

[0134]

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

[0135]

[0160] Further, the video encoder 200 may be configured to generate digital values ​​based on the prediction data (2208). For example, the quantization unit 206 may generate quantized digital sample values ​​based on the digital sample values ​​in the prediction data. In this example, the entropy encoding unit 208 may perform an entropy encoding process to generate 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 the interlaced amplitude values ​​and the digital values ​​(2210). For example, the analog modulation unit 222 may determine analog symbols corresponding to amplitude value pairs including the interlaced amplitude values. The modem 108 may transmit analog signals during symbol sampling instants based on phase shifts and powers corresponding to the analog symbols. The modem 108 may also transmit analog signals based on the digital values, for example, in the manner described with respect to FIG. 4.

[0137]

[0162] In some examples, the analog modulation unit 222 performs a mapping process that maps interlaced amplitude values ​​from an original number line (e.g., number line 2100 of FIG. 21 ) to mapped values ​​on an alternative number line (e.g., alternative number line 2106 of FIG. 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 in terms of bit flips in the interlaced amplitude values ​​demodulated from the analog signal. The mapping process does not map any interlaced amplitude values ​​to any values ​​in any of the 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. Thus, the modem 108 may modulate the analog signal based on the mapped values.

[0138]

[0163] 23 is a flowchart illustrating an example method for decoding video data in accordance with one or more techniques of this disclosure. In the example of FIG. 23, the analog demodulation unit 314 may determine an interlaced amplitude value based on an analog signal (2300). In some examples, as part of determining the interlaced amplitude value based on the analog signal, the modem 112 may determine an analog symbol corresponding to a phase shift and power of a symbol sampling instant of the analog signal. The interlaced amplitude value may be an I component or a Q component of the coordinate of the analog symbol in the IQ plane.

[0139]

[0164] In some examples, the mapped values ​​may be the I or Q component of the coordinates of the analog symbol in the IQ plane. The mapped values ​​may have been generated using a mapping process that maps interlaced amplitude values ​​in an original number line (e.g., number line 2100 of FIG. 21 ) to mapped values ​​in an alternative number line (e.g., alternative number line 2106 of FIG. 21 ) that includes one or more gap ranges. The gap ranges may be located at positions in the original number line that correlate with the effect of noise in terms of 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 values ​​in any of the 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 are in one of the gap ranges. In such cases, the inverse of the mapping process maps the mapped values ​​within the gap ranges to interlaced amplitude values ​​in the original number line. In this manner, the analog demodulation unit 314 may be able to reduce the effect of noise on the analog signal.

[0140]

[0165] Thus, in such an example, the analog demodulation unit 314 may demodulate the analog signal to determine mapped values ​​generated using a mapping process that maps interlaced amplitude values ​​in the original number line to mapped values ​​in an alternative number line that includes one or more gap ranges, where the gap ranges are located at positions in 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, and where the mapping process does not map any of the interlaced amplitude values ​​to any values ​​in any of the one or more gap ranges. The analog demodulation unit 314 may use the inverse of the mapping process to map the mapped values ​​to interlaced amplitude values.

[0141]

[0166] Further, in the example of FIG. 23, the unpacking unit 316 may perform a deinterlacing process to generate two or more coefficients (2302). The bits of the two or more coefficients are interlaced in the interlaced amplitude values. In some examples, the deinterlacing process deinterlaces two bits of the coefficients (e.g., the inverse of the interlacing process shown in the example of FIG. 18). In some examples, the deinterlacing process deinterlaces four bits of the coefficients from the interlaced amplitude values ​​(e.g., the inverse of the interlacing process shown in the example of FIG. 19). In some examples, the unpacking unit 316 may select a deinterlacing process from multiple deinterlacing processes based on 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 may generate residual data based on two or more coefficients (2304). For example, the inverse quantization unit 318 may perform an inverse quantization process to inverse quantize the coefficients. The de-binarization unit 320 may perform a de-binarization process to generate residual data based on the coefficients.

[0143]

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

[0144]

[0169] 24 is a block diagram illustrating an example analog compression unit 2400 using a variable symbol rate in accordance with one or more techniques of this disclosure. The analog compression unit 2400 may be used in place of the analog compression unit 214 of FIG. 2. In the example of FIG. 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 may receive the residual data and segment the residual data into two-dimensional blocks. In other words, the block segmentation unit 2402 may divide the residual image of size N into N / K blocks, where K indicates the number of coefficients per block. The K coefficients per block i are expressed as b 0,i ,b 1,i ...b k,i , where i=0, 1, ..., N / K-1. In some examples, the block segmentation unit 2404 may adaptively select the size of the block based on one or more characteristics of the content of the block. For example, the block segmentation unit 2404 may select a larger block size for blocks in regions of the picture containing relatively uniform digital sample values ​​and a smaller block size for regions of the picture containing less uniform digital sample values. In some examples, the block segmentation unit 2402 may apply a transform to the residual data of the block to generate coefficients of the block. For example, the block segmentation unit 2402 may apply a DCT (e.g., integer DCT) or other transform to the residual data of the block to generate coefficients of the block. In some examples, the coefficients of the block may be residual digital sample values.

[0146]

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

[0147]

[0172] In some examples, the block dynamic quantization unit 2404 may quantize the coefficients of a block based on the total entropy of the picture. For example, if a 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 a picture is relatively low, a higher level of quantization may be used without significantly degrading the quality of the picture when decoded. Using a higher level of quantization may reduce the amount of information needed to represent an encoded version of the picture. However, if a picture contains large areas of complex, rapidly changing colors, the total entropy of the picture may be relatively high. Therefore, when the total entropy of a picture is relatively high, a higher level of quantization may significantly degrade the quality of the picture when decoded. In some examples, the block dynamic quantization unit 2404 may use a predefined mapping or formula to convert entropy into a quantization parameter that the block dynamic quantization unit 2404 uses to quantize the coefficients of the block. In some examples, the block dynamic quantization unit 2404 may quantize a block based on the total entropy of the block itself instead of the total entropy of the picture.

[0148]

[0173] At least in part, because the block dynamic quantization unit 2404 applies dynamic quantization to the blocks, the number of bits per block (i.e., the number of bits to represent each of the quantized coefficients in the block) may vary from block to block. In the example of Figure 22, block 2414 represents the number of bits.

[0149]

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

[0150]

[0175] The spectral efficiency of a channel may change over time. For example, the spectral efficiency of a channel may change due to environmental conditions (e.g., rain, fog, snow, etc.). In some cases, the spectral efficiency of a channel may change when the source device 102 and / or the destination device 116 move into or out of a building. In some cases, the spectral efficiency of a channel may change when the source device 102 and / or the destination device 116 move closer to or farther 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, the modem 108 may transmit and receive data using a multiple-input multiple-output (MIMO) method. When transmitting data using a MIMO method, the modem 108 may use multiple antennas to transmit and receive data. Sending data through different antennas may be similar to sending data through different channels. There may be different spectral efficiencies for these different channels. In this context, the different channels used in MIMO may be referred to as layers. Thus, 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 may generate a coefficient vector and determine amplitude values ​​for 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 the block. In other examples, there may be multiple coefficient vectors for the block. Moreover, similar to the above description regarding the analog modulation unit 222, the analog modulation unit 2412 may determine analog symbols based on the pairs of amplitude values. The analog modulation unit 2412 may modulate an analog signal based on the analog symbols.

[0153]

[0178] In an example where the modem 108 uses a MIMO method, the analog symbols determined by the analog modulation unit 2412 based on the amplitude values ​​may be distributed among different layers. In an example where the modem 108 does not use MIMO (e.g., when only a single antenna is used), there may be only a single layer, and the spectral efficiency unit 2406 may determine the spectral efficiency of this single layer. In either case, the modem 108 may use the same layer to transmit analog signals representing analog symbols based on the amplitude values ​​for coefficient vectors containing coefficients of the same block (i.e., block i). Thus, the spectral efficiency of the layer in which the analog symbols are sent based on the amplitude values ​​for coefficient vectors containing quantized coefficients of block i is expressed as SE i Similarly, the number of bits per block for block i can be expressed as Q i It can be shown as:

[0154]

[0179] When the packing unit 2408 is performing the packing operation to convert the coefficient vector containing the quantized coefficients of the block into amplitude values, the packing unit 2408 calculates the per layer spectral efficiency 2416 (SE i ) and the number of bits per block is 2414 (Q i) and . More specifically, packing unit 2408 may dynamically select, e.g., on a block-by-block basis, the dimensionality of the mapping pattern that packing unit 2408 uses to determine amplitude values ​​for coefficient groups. In other words, packing unit 2408 may dynamically select, e.g., on a block-by-block basis, the number of coefficients n in each coefficient vector. The amplitude values ​​determined by packing unit 2408 may have a variable bit rate, since a higher value of n may result in greater compression in terms of the number of bits used to represent amplitude values ​​for a 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. The value n for block i may be n i It can be shown as:

[0155]

[0180] As mentioned above, the packing unit 2408 determines the number of bits per block 2414 (i.e., Q i ) and spectral efficiency per layer 2416 (i.e., SE i ) and the mapping pattern. For example, the packing unit 2408 may determine the mapping pattern based on SE i One dimension of Q i A predefined two-dimensional table may be used, with one dimension of n and one dimension of n. The values ​​in the cells of the table are i In some examples, the packing unit 2408 may use the SE i Q i By dividing by n i In other words, the value of SE i is n i niQ i can be approximately equal to multiplied by

[0156]

[0181] In some examples, the packing unit 2408 may include a SE i and Q i Based on the value n i The packing unit 2408 may determine n iIn some examples, the packing unit 2408 may determine a mapping pattern using the same n-dimensional space. i A mapping pattern may be selected from among multiple mapping patterns that use a dimensional space. In some examples, the mapping pattern may be asymmetric in the sense that there may be more allowable values ​​(e.g., allowable values ​​of quantization coefficients) in some dimensions than in other dimensions. For example, referring to the example of FIG. 9, there may be more available numbers in the x-axis than in the y-axis. The use of such an asymmetric mapping pattern may reduce the Q of block i. i is the Q of block j j It may be useful in different cases than Q. i is equal to 2, SE i In the example where Q is equal to 8 bits, each contains 2 bits (i.e., Q i =2) 4 quantization coefficients (i.e., n i =4) can be packed into a single 8-bit amplitude value. i is equal to 8 bits, and Q i is equal to 4, and Q j If ∑ i = 1 ⁢ j ⁢ ⁢ ⁢ ⁢ ⁢ is equal to 2, packing unit 2408 may pack one quantized coefficient of block i with two quantized coefficients of block j to generate a single amplitude value.

[0157]

[0182] Because the value of n may change for each block, video encoder 200 may transmit the value of n to video decoder 300. In some examples, video encoder 200 may transmit the value of n through a digital path. In some examples, video encoder 200 may transmit the value of n when the value of n changes, but does not necessarily transmit the value of n separately for each block.

[0158]

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

[0159]

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

[0160]

[0185] FIG. 25 is a flowchart illustrating an example method for encoding video data according to one or more techniques of this disclosure. In the example of FIG. 25, the video encoder 200 may generate coefficients based on digital sample values ​​of the video data (2500). In some examples, as part of generating coefficients based on the video data, the prediction unit 204 (FIG. 2) may generate prediction data for the video data. The residual generation unit 212 may generate residual data based on the prediction data and the digital sample values ​​of the video data. The analog compression unit 214 may generate coefficients based on blocks of digital sample values ​​in the residual data. For example, the binarization unit 216 may perform a binarization process to generate coefficients based on the residual data, and the 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, the quantization unit 206 may quantize the digital sample values ​​of the prediction data, and the entropy encoding unit 208 may entropy encode the quantized digital sample values ​​to generate digital values. The modem 108 may be configured to transmit the digital values. For example, the modem 108 may be configured to generate a bit sequence based on the digital values ​​and modulate an analog signal based on the bit sequence.

[0161]

[0186] Additionally, the spectral efficiency unit 2406 determines the spectral efficiency of the channel (2502). Further, the packing unit 2408 may determine a value n based on the spectral efficiency of the channel and the number of bits of the quantized coefficients of the block (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 of the quantized coefficients of the block. In some examples, the modem 108 is configured to output data indicative of the spectral efficiency of the channel. In some examples, the modem 108 is configured to output data indicative of the value n.

[0162]

[0187] Additionally, packing unit 2408 may generate coefficient vectors (2506). Each of the coefficient vectors includes n of the coefficients. For each of the coefficient vectors, packing unit 2408 may determine an amplitude value for the coefficient vector based on a mapping pattern. For each respective allowed coefficient vector of the plurality of allowed coefficient vectors, the mapping pattern maps the respective allowed coefficient vector to a respective amplitude value of the plurality of amplitude values, where each amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​that are adjacent to the respective amplitude value on a monotonic number line of the amplitude values. For example, packing unit 2408 may 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 plurality of amplitude values. In this example, packing unit 2408 may determine an amplitude value for the coefficient vector as the amplitude value corresponding to the determined position in n-dimensional space.

[0163]

[0188] The source device 102 may modulate 2508 an analog signal based on amplitude values ​​for the coefficient vector. For example, the analog modulation unit 222 may determine analog symbols based on the amplitude values, and the modem 108 may be configured to modulate the analog based on a phase shift and power corresponding to the analog symbols. The modem 108 may output 2510 the analog signal on a channel.

[0164]

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

[0165]

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

[0166]

[0191] The unpacking unit 316 may determine 2604 a value n, which may be a function of the spectral efficiency (e.g., SE i ) and the number of bits for the quantized coefficients of the block (for example, Q i For example, the unpacking unit 316 is based on SE i Q i In some examples, the modem 133 is configured to receive data indicative of the spectral efficiency of the channel.

[0167]

[0192] For each coefficient vector, unpacking unit 316 may determine a coefficient in the coefficient vector based on an amplitude value for the coefficient vector and a mapping pattern (2606). For each respective allowed coefficient vector in the plurality of allowed coefficient vectors, the mapping pattern maps the respective allowed coefficient vector to a respective amplitude value in the plurality of amplitude values, where each amplitude value is adjacent in n-dimensional space to at least one other amplitude value in the plurality of amplitude values ​​that is adjacent to the respective amplitude value on a monotonic number line of the amplitude values. In some examples, as part of determining the coefficients in the coefficient vector, unpacking unit 316 may determine the coefficient in the coefficient vector as a coordinate of a 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 plurality of amplitude values.

[0168]

[0193] Further, the video decoder 300 may generate video data based on the coefficients in the 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 the digital values. For example, the entropy decoding unit 304 may entropy decode the digital values ​​to generate quantized digital sample values, and the inverse quantization unit 306 may inverse quantize the quantized digital sample values ​​to generate the prediction data. The analog reconstruction unit 308 may generate blocks of digital sample values ​​in the residual data based on the 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 the coefficients. The reconstruction unit 310 may generate digital sample values ​​of the video data based on the residual data and the prediction data. For example, the reconstruction unit 310 may add digital sample values ​​of the residual data to corresponding digital sample values ​​of the prediction data to generate digital sample values ​​of the video data.

[0169]

[0194] The examples in the various aspects of the present disclosure may be used individually or in any combination.

[0170]

[0195] The following is a non-limiting list of aspects in accordance with one or more techniques of the present disclosure.

[0171]

[0196] Aspect 1A. A method of encoding video data, comprising: generating coefficients based on the video data; generating coefficient vectors; each coefficient vector including n of the coefficients; for each of the coefficient vectors, determining an amplitude value for the coefficient vector based on a mapping pattern; and, for each respective allowable coefficient vector of a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable 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; and outputting the analog signal.

[0172]

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

[0173]

[0198] Aspect 3A. The method of aspect 1A or 2A, wherein the mapping pattern maps unsigned coefficients to unsigned amplitude values.

[0174]

[0199] Aspect 4A. The method of Aspect 1A or 2A, wherein the mapping pattern maps signed coefficients to signed amplitude values.

[0175]

[0200] Aspect 5A. The method of Aspect 1A or 2A, wherein the mapping pattern maps unsigned coefficients to signed amplitude values.

[0176]

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

[0177]

[0202] Aspect 7A. The method of any one of aspects 1A to 3A, or 5A or 6A, wherein generating coefficients based on video data comprises generating initial coefficients based on the video data, generating code values ​​indicating positive / negative signs of the initial coefficients, and generating coefficients as absolute values ​​of the initial coefficients, the method further comprising signaling data representing the code values.

[0178]

[0203] Aspect 8A. The method of any one of aspects 1A to 3A, or 5A or 6A, wherein the coefficients are non-negative versions of initial coefficients, and generating coefficients based on video data comprises generating initial coefficients based on video data, determining a shift value based on the least negative initial coefficient among the initial coefficients, and performing a process to convert the initial coefficients to non-negative versions of the initial coefficients based on the shift value, the method further comprising signaling data representing the shift value.

[0179]

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

[0180]

[0205] Aspect 10A. The method of any one of aspects 1A to 9A, wherein generating coefficients based on video data comprises generating prediction data for the 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] Aspect 11A. The method of aspect 10A, wherein generating coefficients based on the residual data comprises performing a binarization process to generate coefficients based on the residual data and performing a quantization process to quantize the coefficients.

[0182]

[0207] Aspect 12A. The method of aspect 10A or 11A, wherein generating digital values ​​based on the predicted data comprises generating quantized digital sample values ​​based on digital sample values ​​in the predicted data, and performing an entropy encoding process to generate digital values ​​based on the quantized digital sample values.

[0183]

[0208] Aspect 13A. A method for decoding video data, comprising: determining amplitude values ​​for a plurality of coefficient vectors based on an analog signal; and for each of the coefficient vectors, determining a coefficient in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern; and generating video data based on coefficients in the coefficient vector, wherein, for each respective allowable coefficient vector of the plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable 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.

[0184]

[0209] Aspect 14A. The method of aspect 13A, wherein determining coefficients in the coefficient vector based on amplitude values ​​for the coefficient vector comprises determining coefficients in the coefficient vector as coordinates of positions in 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.

[0185]

[0210] Aspect 15A. The method of aspect 13A or 14A, wherein the mapping pattern maps unsigned coefficients to unsigned amplitude values.

[0186]

[0211] Aspect 16A. The method of aspect 13A or 14A, wherein the mapping pattern maps signed coefficients to signed amplitude values.

[0187]

[0212] Aspect 17A. The method of aspect 13A or 14A, wherein the mapping pattern maps unsigned coefficients to signed amplitude values.

[0188]

[0213] Aspect 18A. The method of any one of aspects 13A to 17A, wherein determining amplitude values ​​for a plurality of coefficient vectors comprises determining analog symbols corresponding to phase shifts and powers of symbol sampling instants of the analog signal, and determining the amplitude values ​​for the coefficient vectors as one of the coordinates of the analog symbols in the IQ plane.

[0189]

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

[0190]

[0215] Aspect 20A. The method of any one of aspects 13A to 15A or 17A to 19A, wherein determining coefficients in the coefficient vector based on amplitude values ​​and a mapping pattern comprises obtaining code values ​​via a digital path of a modem, wherein the code values ​​indicate positive / negative signs of the coefficients in the coefficient vector; determining absolute values ​​of coefficients in the coefficient vector based on the amplitude values ​​and the mapping pattern for the coefficient vector; and reconstructing the coefficients in the coefficient vector by at least partially applying the code values ​​to the absolute values ​​of the coefficients in the coefficient vector.

[0191]

[0216] Aspect 21A. The method of any one of aspects 13A to 15A or 17A to 19A, wherein determining coefficients in the coefficient vector based on amplitude values ​​and a mapping pattern comprises obtaining data representing a shift value via a digital path of a modem, wherein the shift value indicates the smallest negative coefficient among the coefficients in the coefficient vector; determining intermediate values ​​of coefficients in the coefficient vector based on the amplitude values ​​for the coefficient vector and the mapping pattern; and reconstructing the coefficients in the coefficient vector at least in part by adding the shift value to each of the intermediate values ​​of coefficients in the coefficient vector.

[0192]

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

[0193]

[0218] Aspect 23A. The method of any one of aspects 13A to 22A, wherein generating video data based on coefficients in a coefficient vector comprises obtaining digital values ​​via a digital path of a modem, generating predicted data based on the digital values, generating residual data based on the coefficients in the coefficient vector, and generating video data based on the predicted data and the residual data.

[0194]

[0219] Aspect 24A. The method of aspect 23A, wherein generating residual data based on coefficients in the coefficient vector comprises performing a dequantization process that dequantizes the coefficients in the coefficient vector, and performing a de-binarization process that generates residual data based on the dequantized coefficients in the coefficient vector.

[0195]

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

[0196]

[0221] Aspect 26A. A device for encoding video data, the device comprising: one or more processors implemented in a circuit; the one or more processors generating coefficients based on the video data; generating coefficient vectors, wherein each coefficient vector includes n of the coefficients; for each of the coefficient vectors, determining an amplitude value for the coefficient vector based on a mapping pattern; and a modem configured to modulate an analog signal based on the amplitude value for the coefficient vector, wherein for each respective allowable coefficient vector of a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of a plurality of amplitude values, wherein the respective amplitude value is 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.

[0197]

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

[0198]

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

[0199]

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

[0200]

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

[0201]

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

[0202]

[0227] Aspect 32A. A device described in any one of aspects 26A to 28A or 30A to 31A, wherein, as part of generating coefficients based on residual data, the one or more processors are configured to generate initial coefficients based on the residual data, generate code values ​​indicating positive / negative signs of the initial coefficients, and generate the coefficients as absolute values ​​of the initial coefficients, and the modem is configured to transmit the code values ​​via a digital path.

[0203]

[0228] Aspect 33A. The device of any one of aspects 26A to 28A or 30A or 31A, wherein the coefficients are non-negative versions of the initial coefficients, and the one or more processors are configured, as part of generating the coefficients based on the residual data, to perform a process of generating the initial coefficients based on the residual data, determining a shift value based on the least negative initial coefficient among the initial coefficients, and converting the initial coefficients to non-negative versions of the initial coefficients based on the shift value, the method further comprising signaling data representing the shift value.

[0204]

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

[0205]

[0230] Aspect 35A. The device of any one of aspects 26A to 34A, wherein, as part of generating coefficients based on the video data, the one or more processors are configured to generate prediction data for the 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; the 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.

[0206]

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

[0207]

[0232] Aspect 37A. The device of aspect 35A or 36A, wherein the one or more processors are configured to, as part of generating digital values ​​based on the predicted data, generate quantized digital sample values ​​based on the digital sample values ​​in the predicted data, and perform an entropy encoding process to generate digital values ​​based on the quantized digital sample values.

[0208]

[0233] Aspect 38A. The device of any one of aspects 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] Aspect 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, the one or more processors configured to: determine, based on the analog signal, amplitude values ​​for a plurality of coefficient vectors; and, for each of the coefficient vectors, determine a coefficient in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern; and generate video data based on coefficients in the coefficient vectors, wherein, for each respective allowable coefficient vector of the plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable 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.

[0210]

[0235] Aspect 40A. The device of aspect 39A, wherein the one or more processors are configured, as part of determining coefficients in the coefficient vector based on amplitude values ​​for the coefficient vector, to determine the coefficients in the coefficient vector as coordinates of positions in 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.

[0211]

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

[0212]

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

[0213]

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

[0214]

[0239] Aspect 44A. A device described in any one of aspects 39A to 43A, wherein the modem is configured to determine an analog symbol corresponding to a phase shift and power of a symbol sampling instant of the analog signal, and the one or more processors are configured to determine, as part of determining amplitude values ​​for the multiple coefficient vectors, the amplitude value for the coefficient vector as one of the coordinates of the analog symbol in the IQ plane.

[0215]

[0240] Embodiment 45A. The device of any one of embodiments 39A to 44A, wherein n is 2 or greater.

[0216]

[0241] Aspect 46A. The device of any one of aspects 39A to 41A or 43A to 45A, wherein the one or more processors are configured to, as part of determining coefficients in the coefficient vector based on amplitude values ​​and a mapping pattern, obtain code values ​​via a digital path of the modem, where the code values ​​indicate positive / negative signs of the coefficients in the coefficient vector, determine absolute values ​​of the coefficients in the coefficient vector based on the amplitude values ​​and the mapping pattern for the coefficient vector, and reconstruct the coefficients in the coefficient vector by at least in part applying the code values ​​to the absolute values ​​of the coefficients in the coefficient vector.

[0217]

[0242] Aspect 47A. The device of any one of aspects 39A to 41A or 43A to 45A, wherein the one or more processors are configured to, as part of determining coefficients in the coefficient vector based on the amplitude values ​​and the mapping pattern, obtain data representing a shift value via a digital path of the modem, determine intermediate values ​​of coefficients in the coefficient vector based on the amplitude values ​​for the coefficient vector and the mapping pattern, where the shift value indicates the least negative coefficient of the coefficients in the coefficient vector, and reconstruct the coefficients in the coefficient vector at least in part by adding the shift value to each of the intermediate values ​​of the coefficients in the coefficient vector.

[0218]

[0243] Embodiment 48A. The device of 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] Aspect 49A. The device of any one of aspects 39A to 48A, wherein the one or more processors are configured to, as part of generating video data based on coefficients in the coefficient vector, obtain digital values ​​via a digital path of a modem, generate prediction data based on the digital values, generate prediction data for a current block of analog video data, generate residual data based on coefficients in the coefficient vector, and generate video data based on the prediction data and the residual data.

[0220]

[0245] Embodiment 50A. The device of embodiment 49A, wherein the one or more processors are configured, as part of generating residual data based on the coefficients in the coefficient vector, to perform a dequantization process to dequantize the coefficients in the coefficient vector and a de-binarization process to generate residual data based on the dequantized coefficients in the coefficient vector.

[0221]

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

[0222]

[0247] Aspect 52A. The device of any one of aspects 39A to 51A, wherein the device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.

[0223]

[0248] Aspect 53A. A device for encoding video data, comprising: means for generating coefficients based on the video data; means for generating coefficient vectors; and, for each of the coefficient vectors, each coefficient vector including n of the coefficients, means for determining an amplitude value for the coefficient vector based on a mapping pattern; and means for modulating an analog signal based on the amplitude value for the coefficient vector, wherein, for each respective allowable coefficient vector of a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable 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.

[0224]

[0249] Aspect 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, for each of the coefficient vectors, a coefficient in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern; and means for generating video data based on coefficients in the coefficient vector, wherein, for each respective allowable coefficient vector of the plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable 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.

[0225]

[0250] Aspect 55A. A computer-readable data storage medium having stored thereon instructions that, when executed, cause one or more processors to generate coefficients based on video data; generate coefficient vectors; and for each of the coefficient vectors, each coefficient vector includes n of the coefficients; determine an amplitude value for the coefficient vector based on a mapping pattern; and modulate an analog signal based on the amplitude value for the coefficient vector, wherein for each respective allowable coefficient vector of a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable 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.

[0226]

[0251] Aspect 56A. A computer-readable data storage medium having stored thereon instructions that, when executed, cause 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 a coefficient in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern; and generate video data based on the coefficients in the coefficient vectors, wherein, for each respective allowable coefficient vector of the plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable 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.

[0227]

[0252] Aspect 1B. A method of encoding video data comprising: generating coefficients based on digital sample values ​​of the video data; determining a spectral efficiency of a channel over which an analog signal is to be transmitted; determining a value n based on the spectral efficiency of the channel; generating coefficient vectors, wherein each coefficient vector includes n of the coefficients; for each of the coefficient vectors, determining an amplitude value for the coefficient vector based on a mapping pattern; and wherein, 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; and outputting the analog signal over the channel.

[0228]

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

[0229]

[0254] Aspect 3B. The method of aspect 1B or 2B, wherein generating coefficients based on video data comprises generating prediction data for the video data, generating residual data based on the prediction data and digital sample values ​​of the 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 the prediction data and transmitting the digital values.

[0230]

[0255] Aspect 4B. The method of aspect 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] Aspect 5B. The method of aspect 4B, wherein determining the value n comprises determining the value n based on a spectral efficiency of the channel and a number of bits for quantized coefficients of the block.

[0232]

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

[0233]

[0258] Aspect 7B. A method of decoding video data, comprising: receiving an analog signal transmitted over a channel; 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 a coefficient in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern; and generating video data based on 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 a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable 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.

[0234]

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

[0235]

[0260] Aspect 9B. A method as described in aspect 7B or 8B, further comprising receiving digital values ​​and generating prediction data based on the digital values, wherein generating video data based on coefficients in the coefficient vector comprises generating blocks of digital sample values ​​in residual data based on the coefficients, and generating digital sample values ​​of the video data based on the residual data and the prediction data.

[0236]

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

[0237]

[0262] Aspect 11B. The method of aspect 10B, wherein the value n is based on the spectral efficiency of the channel and the number of bits of the quantized coefficients of the block.

[0238]

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

[0239]

[0264] Aspect 13B. A device for encoding video data, comprising: a memory configured to store the video data; one or more processors implemented in circuitry; and a modem configured to output an analog signal on a channel, the one or more processors being configured to: generate coefficients based on digital sample values ​​of the video data; determine a spectral efficiency of a channel to output an analog signal; determine a value n based on the spectral efficiency of the channel; generate coefficient vectors; and, for each of the coefficient vectors, each coefficient vector includes n of the coefficients; determine an amplitude value for the coefficient vector based on a mapping pattern; and modulate the analog signal based on the amplitude value for the coefficient vector, for each respective allowable coefficient vector of a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable 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 are adjacent to the respective amplitude value on a monotonic number line of the amplitude values.

[0240]

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

[0241]

[0266] Aspect 15B. The device of aspect 13B or 14B, wherein, as part of generating coefficients based on the video data, the one or more processors are configured to generate prediction data for the video data, generate residual data based on the prediction data and digital sample values ​​of the video data, and generate coefficients based on blocks of digital sample values ​​in the residual data, the 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] Aspect 16B. The device of aspect 15B, wherein the one or more processors are configured to, as part of generating coefficients based on video data, perform a binarization process to generate coefficients based on residual data and a quantization process to quantize the coefficients.

[0243]

[0268] Aspect 17B. The device of aspect 16B, wherein the one or more processors are configured to, as part of determining the value n, determine the value n based on the spectral efficiency of the channel and the number of bits of the quantized coefficients of the block.

[0244]

[0269] Aspect 18B. The device of any one of Aspects 13B to 17, wherein the modem is further configured to output data indicative of the spectral efficiency of the channel.

[0245]

[0270] Aspect 19B. The device of any one of aspects 13B to 18B, wherein the device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.

[0246]

[0271] Aspect 20B. A device for decoding video data, comprising: a modem configured to receive an analog signal transmitted over a channel; and one or more processors implemented in the circuit, the one or more processors configured to: demodulate the analog signal to determine amplitude values ​​for a plurality of coefficient vectors; determine a value n, where the value n is based on the spectral efficiency of the channel; for each of the coefficient vectors, determine a coefficient in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern; and generate video data based on coefficients in the coefficient vectors, where, for each respective allowable coefficient vector of the plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of the 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.

[0247]

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

[0248]

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

[0249]

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

[0250]

[0275] Aspect 24B. The device of aspect 23B, wherein the value n is based on the spectral efficiency of the channel and the number of bits for the quantized coefficients of the block.

[0251]

[0276] Aspect 25B. The device of any one of aspects 20B to 24B, wherein the modem is further configured to receive data indicative of the spectral efficiency of the channel.

[0252]

[0277] Aspect 26B. The device of any one of aspects 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] Aspect 27B. A device for encoding video data, comprising: means for generating coefficients based on digital sample values ​​of the video data; means for determining a 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, each of the coefficient vectors including n of the coefficients; means for determining, for each of the coefficient vectors, an amplitude value for the coefficient vector based on a mapping pattern; and means for modulating an analog signal based on the amplitude value for the coefficient vector, wherein, 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, each amplitude value being adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values ​​that are adjacent to the respective amplitude value on a monotonic number line of the amplitude values.

[0254]

[0279] Aspect 28B. A device for decoding video data, comprising: means for receiving an analog signal transmitted over a channel; means for demodulating the analog signal to determine amplitude values ​​for 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, for each of the coefficient vectors, a coefficient in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern; and means for generating video data based on coefficients in the coefficient vector, wherein, for each respective allowable coefficient vector of a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of a plurality of amplitude values, wherein the respective amplitude value is 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.

[0255]

[0280] Aspect 29B. A computer-readable data storage medium having stored thereon instructions that, when executed, cause one or more processors to: generate coefficients based on digital sample values ​​of video data; determine a spectral efficiency of a channel to output an analog signal; determine a value n based on the spectral efficiency of the channel; generate coefficient vectors, wherein each coefficient vector includes n of the coefficients; for each of the coefficient vectors, determine an amplitude value for the coefficient vector based on a mapping pattern; and, wherein, for each respective allowable coefficient vector of a plurality of allowable coefficient vectors, the mapping pattern maps the respective allowable coefficient vector to a respective amplitude value of a plurality of amplitude values, wherein the respective amplitude value is 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; and output the analog signal on the channel.

[0256]

[0281] Aspect 30B. A computer-readable data storage medium having stored thereon instructions that, when executed, cause one or more processors to: receive an analog signal transmitted over a channel; demodulate the analog signal to determine amplitude values ​​for a plurality of coefficient vectors; determine a value n, where the value n is based on the spectral efficiency of the channel; for each of the coefficient vectors, determine a coefficient in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern; and generate video data based on the 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 the respective allowable coefficient vector to a respective amplitude value of the plurality of amplitude values, the respective amplitude value being adjacent in n-dimensional space to at least one other amplitude value in the plurality of amplitude values ​​that is adjacent to the respective amplitude value on a monotonic number line of the amplitude values.

[0257]

[0282] Aspect 1C. A method of encoding video data, comprising: generating prediction data for 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 interlacing process to generate interlaced amplitude values, wherein the interlacing 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. The method of Aspect 1C, further comprising: performing a mapping process that maps interlaced amplitude values ​​in the original number line to mapped values ​​in another number line that includes one or more gap ranges, where the gap ranges are located at positions in the original number line that correlate with the effect of noise in terms of bit flips in the interlaced amplitude values ​​demodulated from the analog signal; wherein the mapping process does not map any interlaced amplitude values ​​to any values ​​in any of the one or more gap ranges; and wherein outputting one or more analog signals comprises modulating the analog signals based on the mapped values.

[0259]

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

[0260]

[0285] Aspect 4C. The method of any one of aspects 1C to 3C, wherein generating coefficients based on the residual data comprises performing a binarization process to generate coefficients based on the residual data, and performing a quantization process to quantize the coefficients.

[0261]

[0286] Aspect 5C. The method of any one of aspects 1C to 4C, wherein generating digital values ​​based on the predicted data comprises generating quantized digital sample values ​​based on digital sample values ​​in the predicted data, and performing an entropy encoding process to generate the digital values ​​based on the quantized digital sample values.

[0262]

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

[0263]

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

[0264]

[0289] Aspect 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 the bits of the two or more coefficients are interlaced in the interlaced amplitude value; generating residual data based on the two or more coefficients; obtaining digital values; generating prediction data based on the digital values; and reconstructing video data based on the prediction data and the residual data.

[0265]

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

[0266]

[0291] Aspect 10C. The method of aspect 9C, wherein the mapped value determined by demodulating the analog signal is in one of the gap ranges, and the inverse of the mapping process maps the mapped value in the gap range to a value on the original number line.

[0267]

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

[0268]

[0293] Aspect 12C. The method of any one of aspects 8C to 11C, wherein determining interlaced amplitude values ​​based on the analog signal comprises determining analog symbols corresponding to phase shifts and powers of symbol sampling instants of the analog signal, wherein the interlaced amplitude values ​​are equal to coordinates of the analog symbols in the IQ plane.

[0269]

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

[0270]

[0295] Aspect 14C. The method of any one of aspects 8C to 13C, wherein generating the prediction data based on the digital values ​​comprises performing an entropy decoding process to generate quantized digital sample values ​​based on the digital values, and performing a dequantization process to generate digital sample values ​​in the prediction data based on the dequantized digital sample values.

[0271]

[0296] Embodiment 15C. The method of 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 a channel over which the analog signal is transmitted.

[0272]

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

[0273]

[0298] Aspect 17C. A device for encoding video data, comprising: a memory configured to store the video data; one or more processors implemented in circuitry; the one or more processors configured to: generate prediction data for the 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 the interlaced amplitude values; and generate digital values ​​based on the prediction data; and a modem configured to output one or more analog signals modulated based on the interlaced amplitude values ​​and the digital values.

[0274]

[0299] Aspect 18C. The device of Aspect 17C, wherein the one or more processors are further configured to perform a mapping process that maps interlaced amplitude values ​​in the original number line to mapped values ​​in an alternative number line that includes one or more gap ranges, where the gap ranges are located at positions in 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, and wherein the mapping process does not map any interlaced amplitude values ​​to any values ​​in any of the one or more gap ranges, and wherein the one or more processors are configured to cause a modem to modulate the analog signal based on the mapped values ​​as part of outputting the one or more analog signals.

[0275]

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

[0276]

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

[0277]

[0302] Aspect 21C. The device of any one of aspects 17C to 20C, wherein the one or more processors are configured to, as part of generating digital values ​​based on the predicted data, generate quantized digital sample values ​​based on the digital sample values ​​in the predicted data, and perform an entropy encoding process to generate digital values ​​based on the quantized digital sample values.

[0278]

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

[0279]

[0304] Embodiment 23C. The device of embodiment 22C, wherein each of the interlacing processes interlaces a different number of coefficients.

[0280]

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

[0281]

[0306] Aspect 25C. A device for decoding video data, comprising: a modem configured to obtain an analog signal and digital values; and one or more processors implemented in circuitry, the one or more processors configured to: determine interlaced amplitude values ​​based on the analog signal; perform a deinterlacing process to generate two or more coefficients, wherein the bits of the two or more coefficients are interlaced in the interlaced amplitude values; generate residual data based on the two or more coefficients; obtain digital values; generate prediction data based on the digital values; and reconstruct the video data based on the prediction data and the residual data.

[0282]

[0307] Aspect 26C. The device of Aspect 25C, wherein the one or more processors are configured to, as part of determining interlaced amplitude values ​​based on the analog signal, demodulate the analog signal to determine mapped values ​​generated using a mapping process that maps interlaced amplitude values ​​in the original number line to mapped values ​​in an alternative number line that includes one or more gap ranges, where the gap ranges are located at positions in the original number line that correlate with the effect of noise in terms of bit flips in the interlaced amplitude values ​​demodulated from the analog signal, and where the mapping process uses an inverse of the mapping process to map the mapped values ​​to interlaced amplitude values, such that none of the interlaced amplitude values ​​map to any values ​​in any of the one or more gap ranges.

[0283]

[0308] Aspect 27C. The device of aspect 26C, wherein the mapped value determined by demodulating the analog signal is in one of the gap ranges, and the inverse of the mapping process maps the mapped value in the gap range to a value on the original number line.

[0284]

[0309] Embodiment 28C. The device of any one of embodiments 25C to 27C, wherein the deinterlacing process deinterlaces two or four bits of the coefficients.

[0285]

[0310] Aspect 29C. A device described in any one of aspects 25C to 28C, wherein the one or more processors are configured to, as part of determining interlaced amplitude values ​​based on the analog signal, determine analog symbols corresponding to phase shifts and powers of symbol sampling instants of the analog signal, wherein the interlaced amplitude values ​​are equal to coordinates of the analog symbols in the IQ plane.

[0286]

[0311] Aspect 30C. The device of any one of aspects 25C to 29C, wherein the one or more processors are configured to, as part of generating residual data based on the coefficients, perform an inverse quantization process to inverse quantize the coefficients, and a de-binarization process to generate residual data based on the coefficients.

[0287]

[0312] Aspect 31C. The device of any one of aspects 25C to 30C, wherein the one or more processors are configured to, as part of generating the predictive data based on the digital values, perform an entropy decoding process to generate quantized digital sample values ​​based on the digital values, and perform a dequantization process to generate digital sample values ​​in the predictive data based on the dequantized digital sample values.

[0288]

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

[0289]

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

[0290]

[0315] Aspect 34C. The device of any one of aspects 27C to 33C, wherein the device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.

[0291]

[0316] Aspect 35C. A device for encoding video data, comprising: means for generating prediction data for the video data; means for generating residual data based on the prediction data and digital sample values ​​of the 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 the 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 data.

[0292]

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

[0293]

[0318] Aspect 37C. A computer-readable data storage medium having stored thereon 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 the 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 the digital values ​​based on the prediction data.

[0294]

[0319] Aspect 38C. A computer-readable data storage medium having stored thereon 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, wherein the bits of the two or more coefficients are interlaced in the interlaced amplitude value; generate residual data based on the two or more coefficients; obtain digital values; generate prediction data based on the digital values; and reconstruct video data based on the prediction data and the residual data.

[0295]

[0320] It should be appreciated that, depending on the example, some acts or events of any of the techniques described herein may be performed in a different sequence, added, merged, or entirely excluded (e.g., not all described acts or events may be required to practice the techniques). Moreover, in some examples, acts or events may be performed simultaneously rather than sequentially, for example, through multithreaded processing, interrupt processing, or multiple processors.

[0296]

[0321] In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted via a computer-readable medium as one or more instructions or code and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which correspond to tangible media such as data storage media, or communication media, including any medium that enables transfer of a computer program from one place to another, for example, according to a communication protocol. In this manner, computer-readable media may generally correspond to (1) tangible computer-readable storage media that are non-transitory, or (2) a communication medium such as a signal or carrier wave. Data storage media may be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and / or data structures for implementing the techniques described in this disclosure. A computer program product may include a computer-readable medium.

[0297]

[0322] By way of example, and not limitation, such computer-readable storage media may comprise 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 that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. 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, the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included within the definition of medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transitory media, but instead cover non-transitory, tangible storage media. As used herein, disk and disc include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), floppy discs, and Blu-ray discs, where disks typically reproduce data magnetically and discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.

[0298]

[0323] The 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 equivalent integrated circuits or discrete logic circuitry. Accordingly, the terms "processor" and "processing circuitry" as used herein may refer to any of the above structures or any other structure suitable for implementing the techniques described herein. Additionally, in some aspects, the functionality described herein may be provided within dedicated hardware and / or software modules configured for encoding and decoding, or incorporated into a combined codec. Also, the techniques may be fully implemented in one or more circuits or logic elements.

[0299]

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

[0300]

[0325] Various examples have been described. These and other examples are within the scope of the following claims. The inventions described in the claims of the present application as originally filed are set forth below. [C1] 1. A method for encoding video data, comprising: generating coefficients based on digital sample values ​​of the video data; determining the spectral efficiency of a channel over which the analog signal is to be transmitted; determining a value n based on the spectral efficiency of the channel; generating coefficient vectors, wherein each of the coefficient vectors includes n of the coefficients; for each of the coefficient vectors, determining an amplitude value for the coefficient vector based on a mapping pattern, wherein for each respective allowed coefficient vector of a plurality of allowed coefficient vectors: the mapping pattern maps each of the tolerance coefficient vectors to a respective amplitude value among a plurality of amplitude values; each of the amplitude values ​​is 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; modulating the analog signal based on the amplitude values ​​for the coefficient vector; outputting said analog signal on said channel; A method comprising: [C2] Determining the amplitude values ​​for the coefficient vectors includes: determining a position in the n-dimensional space, wherein 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. determining the amplitude value for the coefficient vector as the amplitude value corresponding to the determined location in the n-dimensional space; The method according to [C1], comprising: [C3] generating the coefficients based on the video data, generating prediction data for the video data; generating residual data based on the prediction data and digital sample values ​​of the video data; generating the coefficients based on blocks of digital sample values ​​in the residual data; The method comprises: generating a digital value based on the predicted data; transmitting said digital value; The method according to [C1], further comprising: [C4] generating the coefficients based on the video data, performing a binarization process to generate the coefficients based on the residual data; performing a quantization process to quantize the coefficients; The method according to [C3], comprising: [C5] The method of [C4], wherein determining the value n comprises determining the value n based on the spectral efficiency of the channel and the number of bits of quantized coefficients of the block. [C6] The method of [C1], further comprising outputting data indicative of the spectral efficiency of the channel. [C7] 1. A method for decoding video data, comprising: receiving an analog signal transmitted over 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; for each of the coefficient vectors, determining coefficients in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern, wherein for each respective allowed coefficient vector of a plurality of allowed coefficient vectors: the mapping pattern maps each of the tolerance coefficient vectors to a respective amplitude value among a plurality of amplitude values; each of the amplitude values ​​is 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; generating the video data based on the coefficients in the coefficient vector; A method comprising: [C8] Determining the coefficients in the coefficient vector comprises: [C7]. The method of claim 1, further 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 ​​in the plurality of amplitude values. [C9] The method comprises: receiving a digital value; generating prediction data based on the digital values; Generating the video data based on the coefficients in the coefficient vector includes: generating blocks of digital sample values ​​in residual data based on the coefficients; generating digital sample values ​​of the video data based on the residual data and the prediction data; The method according to [C7], comprising: [C10] generating the block of digital sample values ​​in the residual data based on the coefficients, performing a dequantization process to dequantize the coefficients; performing a de-binarization process to generate the residual data based on the coefficients; The method according to [C9], comprising: [C11] The method of [C10], wherein the value n is based on the spectral efficiency of the channel and the number of bits of the quantized coefficients of the block. [C12] The method of [C7], further comprising receiving data indicative of the spectral efficiency of the channel. [C13] 1. A device for encoding video data, comprising: a memory configured to store the video data; one or more processors implemented in a circuit, said one or more processors comprising: generating coefficients based on digital sample values ​​of the video data; determining the spectral efficiency of a channel over which the analog signal is to be output; determining a value n based on the spectral efficiency of the channel; generating coefficient vectors, wherein each of the coefficient vectors includes n of the coefficients; for each of the coefficient vectors, determining an amplitude value for the coefficient vector based on a mapping pattern, wherein for each respective allowed coefficient vector of a plurality of allowed coefficient vectors: the mapping pattern maps each of the tolerance coefficient vectors to a respective amplitude value among a plurality of amplitude values; each of the amplitude values ​​is 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; modulating the analog signal based on the amplitude values ​​for the coefficient vector; configured to: a modem configured to output said analog signal on said channel; A device comprising: [C14] The one or more processors may, as part of determining the amplitude values ​​for the coefficient vector, determining a position in the n-dimensional space, wherein 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. determining the amplitude value for the coefficient vector as the amplitude value corresponding to the determined location in the n-dimensional space; The device according to [C13], configured to: [C15] The one or more processors, as part of generating the coefficients based on the video data, further comprising: generating prediction data for the video data; generating residual data based on the prediction data and digital sample values ​​of the video data; generating the coefficients based on blocks of digital sample values ​​in the residual data; configured to: the one or more processors are further configured to generate a digital value based on the prediction data; the modem is configured to transmit the digital value; A device as described in [C13]. [C16] The one or more processors, as part of generating the coefficients based on the video data, further comprising: performing a binarization process to generate the coefficients based on the residual data; performing a quantization process to quantize the coefficients; The device according to [C15], configured to: [C17] The device described in [C16], wherein the one or more processors are configured, as part of determining the value n, to determine the value n based on the spectral efficiency of the channel and the number of bits of the quantized coefficients of the block. [C18] The device of [C13], wherein the modem is further configured to output data indicative of the spectral efficiency of the channel. [C19] The device of [C13], wherein the device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box. [C20] 1. A device for decoding video data, comprising: a modem configured to receive an analog signal transmitted over the channel; one or more processors implemented in circuitry, the one or more processors: 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; for each of the coefficient vectors, determining coefficients in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern, wherein for each respective allowed coefficient vector of a plurality of allowed coefficient vectors: the mapping pattern maps each of the tolerance coefficient vectors to a respective amplitude value among a plurality of amplitude values; each of the amplitude values ​​is 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; generating the video data based on the coefficients in the coefficient vector; A device configured to: [C21] The one or more processors may, as part of determining the coefficients in the coefficient vector, The device described in [C20] is configured to determine 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. [C22] the modem further configured to receive a digital value; the one or more processors are further configured to generate prediction data based on the digital values; The one or more processors, as part of generating the video data based on the coefficients in the coefficient vector, further comprising: generating blocks of digital sample values ​​in residual data based on the coefficients; generating digital sample values ​​of the video data based on the residual data and the prediction data; The device according to [C20], configured to: [C23] As part of generating the blocks of digital sample values ​​in the residual data based on the coefficients, the one or more processors: performing a dequantization process to dequantize the coefficients; performing a de-binarization process to generate the residual data based on the coefficients; The device according to [C22], configured to: [C24] The device of [C23], wherein the value n is based on the spectral efficiency of the channel and the number of bits of the quantized coefficients of the block. [C25] The device of [C20], wherein the modem is further configured to receive data indicative of the spectral efficiency of the channel. [C26] The device of [C20], wherein the device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box. [C27] 1. A device for encoding video data, comprising: means for generating coefficients based on digital sample values ​​of the video data; means for determining the spectral efficiency of a channel on which to output the analog signal; means for determining a value n based on the spectral efficiency of the channel; means for generating coefficient vectors, wherein each of the coefficient vectors includes n of the coefficients; means for determining, for each of the coefficient vectors, an amplitude value for the coefficient vector based on a mapping pattern, wherein for each respective allowed coefficient vector of a plurality of allowed coefficient vectors: the mapping pattern maps each of the tolerance coefficient vectors to a respective amplitude value among a plurality of amplitude values; each of the amplitude values ​​is 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; means for modulating the analog signal based on the amplitude values ​​for the coefficient vector; means for outputting said analog signal on said channel; A device comprising: [C28] 1. A device for decoding video data, comprising: means for receiving an analog signal transmitted over the channel; means for demodulating the analog signal to determine amplitude values ​​for 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, for each of the coefficient vectors, coefficients in the coefficient vector based on the amplitude values ​​for the coefficient vector and a mapping pattern, wherein for each respective allowed coefficient vector of a plurality of allowed coefficient vectors: the mapping pattern maps each of the tolerance coefficient vectors to a respective amplitude value among a plurality of amplitude values; each of the amplitude values ​​is 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; means for generating the video data based on the coefficients in the coefficient vector; A device comprising: [C29] A computer-readable data storage medium having stored thereon instructions that, when executed, cause one or more processors to: generating coefficients based on digital sample values ​​of the video data; determining the spectral efficiency of a channel over which the analog signal is to be output; determining a value n based on the spectral efficiency of the channel; generating coefficient vectors, wherein each of the coefficient vectors includes n of the coefficients; for each of the coefficient vectors, determining an amplitude value for the coefficient vector based on a mapping pattern, wherein for each respective allowed coefficient vector of a plurality of allowed coefficient vectors: the mapping pattern maps each of the tolerance coefficient vectors to a respective amplitude value among a plurality of amplitude values; each of the amplitude values ​​is 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; modulating the analog signal based on the amplitude values ​​for the coefficient vector; outputting said analog signal on said channel; A computer-readable data storage medium for causing [C30] A computer-readable data storage medium having stored thereon instructions that, when executed, cause one or more processors to: receiving an analog signal transmitted over 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; for each of the coefficient vectors, determining coefficients in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern, wherein for each respective allowed coefficient vector of a plurality of allowed coefficient vectors: the mapping pattern maps each of the tolerance coefficient vectors to a respective amplitude value among a plurality of amplitude values; each of the amplitude values ​​is 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; generating video data based on the coefficients in the coefficient vector; A computer-readable data storage medium for causing

Claims

1. 1. A method for encoding video data, comprising: generating coefficients based on digital sample values ​​of the video data; determining the spectral efficiency of a channel over which the analog signal is to be transmitted; determining an integer value n based on the spectral efficiency of the channel, where n is greater than 1; generating coefficient vectors, wherein each of the coefficient vectors includes n of the coefficients; for each of the coefficient vectors, determining an amplitude value for the coefficient vector based on a mapping pattern, wherein for each respective allowed coefficient vector of a plurality of allowed coefficient vectors: the mapping pattern maps each of the tolerance coefficient vectors to a respective amplitude value among a plurality of amplitude values; each of the amplitude values ​​is 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; modulating the analog signal based on the amplitude values ​​for the coefficient vector; outputting said analog signal on said channel; Equipped with generating the coefficients generating prediction data for the video data; generating residual data based on the prediction data and digital sample values ​​of the video data; generating the coefficients based on blocks of digital sample values ​​in the residual data; The method comprises: generating a digital value based on the predicted data; transmitting said digital value; The method further comprises:

2. Determining the amplitude values ​​for the coefficient vectors includes: determining a position in the n-dimensional space, wherein 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. determining the amplitude value for the coefficient vector as the amplitude value corresponding to the determined position in the n-dimensional space; The method of claim 1 , comprising:

3. generating the coefficients based on the video data, performing a binarization process to generate the coefficients based on the residual data; performing a quantization process to quantize the coefficients; The method of claim 1 , comprising:

4. The method of claim 3 , wherein determining the value n comprises determining the value n based on the spectral efficiency of the channel and a number of bits of quantized coefficients of the block.

5. The method of claim 1 , further comprising outputting data indicative of the spectral efficiency of the channel.

6. 1. A method for decoding video data, comprising: receiving an analog signal transmitted over a channel; demodulating the analog signal to determine amplitude values ​​for a plurality of coefficient vectors; determining an integer value n, wherein the value n is greater than 1 and is based on the spectral efficiency of the channel; for each of the coefficient vectors, determining coefficients in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern, wherein for each respective allowed coefficient vector of a plurality of allowed coefficient vectors: the mapping pattern maps each of the tolerance coefficient vectors to a respective amplitude value among a plurality of amplitude values; each of the amplitude values ​​is 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; receiving a digital value; generating prediction data based on the digital values; generating the video data based on the coefficients in the coefficient vector; and wherein generating the video data based on the coefficients in the coefficient vector comprises: generating blocks of digital sample values ​​in residual data based on the coefficients; generating digital sample values ​​of the video data based on the residual data and the prediction data; A method comprising:

7. Determining the coefficients in the coefficient vector comprises:

7. The method of claim 6, 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 ​​in the plurality of amplitude values.

8. generating the block of digital sample values ​​in the residual data based on the coefficients, performing a dequantization process to dequantize the coefficients; performing a de-binarization process to generate the residual data based on the coefficients; The method of claim 6 , comprising:

9. The method of claim 8 , wherein the value n is based on the spectral efficiency of the channel and the number of bits of the quantized coefficients of the block.

10. The method of claim 6 , further comprising receiving data indicative of the spectral efficiency of the channel.

11. 1. A device for encoding video data, comprising: means for generating coefficients based on digital sample values ​​of the video data; means for determining the spectral efficiency of a channel on which to output the analog signal; means for determining an integer value n based on the spectral efficiency of the channel, where n is greater than 1; means for generating coefficient vectors, wherein each of said coefficient vectors includes n of said coefficients; means for determining, for each of the coefficient vectors, an amplitude value for the coefficient vector based on a mapping pattern, wherein for each respective allowed coefficient vector of a plurality of allowed coefficient vectors: the mapping pattern maps each of the tolerance coefficient vectors to a respective amplitude value among a plurality of amplitude values; each of the amplitude values ​​is 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; means for modulating the analog signal based on the amplitude values ​​for the coefficient vector; means for outputting said analog signal on said channel; Equipped with The means for generating coefficients may, as part of generating the coefficients, further include: generating prediction data for the video data; generating residual data based on the prediction data and the digital sample values ​​of the video data; configured to generate the coefficients based on blocks of digital sample values ​​in the residual data; wherein the device comprises: means for generating a digital value based on the predicted data; means for transmitting said digital value; The device further comprises:

12. 12. The device of claim 11, further comprising means for carrying out the method according to any one of claims 1 to 5.

13. 1. A device for decoding video data, comprising: means for receiving an analog signal transmitted over the channel; means for demodulating the analog signal to determine amplitude values ​​for a plurality of coefficient vectors; means for determining an integer value n, wherein said value n is greater than 1 and is based on the spectral efficiency of said channel; means for determining, for each of the coefficient vectors, coefficients in the coefficient vector based on the amplitude values ​​for the coefficient vector and a mapping pattern, wherein for each respective allowed coefficient vector of a plurality of allowed coefficient vectors: the mapping pattern maps each of the tolerance coefficient vectors to a respective amplitude value among a plurality of amplitude values; each of the amplitude values ​​is 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; means for receiving a digital value; means for generating prediction data based on the digital values; means for generating the video data based on the coefficients in the coefficient vector, wherein the means for generating the video data based on the coefficients in the coefficient vector generates the video data in part, the means for generating the video data comprising: generating blocks of digital sample values ​​in residual data based on the coefficients; A device configured to generate digital sample values ​​for the video data based on the residual data and the prediction data.

14. 14. The device of claim 13, further comprising means for carrying out the method according to any one of claims 6 to 10.

15. 6. A computer-readable data storage medium having stored thereon instructions that, when executed, cause one or more processors to perform the method according to any one of claims 1 to 5.

16. A computer-readable data storage medium storing instructions that, when executed, cause one or more processors to perform the method according to any one of claims 6 to 10.

Citation Information

Patent Citations

  • Video signal generation and image pickup machine

    JP1996172625A

  • System for transmitting video on radio channel

    JP2016225987A

  • Transmitting apparatus and mapping method thereof

    US20190305868A1