Video encoding techniques for low latency applications
Methods, systems, and devices for wireless communications are described. A network entity may receive, from a first device, a first message comprising an indication of a first quality of experience (QoE)-bitrate (QB) curve associated with a first frame of a set of frames associated with a video stream. The first device may be an application server or a user equipment (UE). Based on the first QB curve, the network entity may transmit an operating point for encoding the first frame to the first device. The network entity may receive, from the first device, a second message comprising a first packet data unit (PDU) set associated with the encoded first frame, where the first frame is encoded based on the operating point. The network entity may transmit the first PDU set to one or more UEs.
1 . A network entity, comprising:
one or more memories storing processor-executable code; and
one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the network entity to:
receive, from a first device, a first message comprising an indication of a first quality of experience (QoE)-bitrate (QB) curve associated with a first frame of a set of frames associated with a video stream;
transmit, to the first device and based at least in part on the first QB curve, an operating point for encoding the first frame;
receive, from the first device, a second message comprising a first packet data unit (PDU) set associated with the encoded first frame, wherein the encoded first frame is based at least in part on the operating point; and
transmit, to one or more user equipments (UEs), the first PDU set.
2 . The network entity of claim 1 , wherein:
the first frame is a current frame,
the first QB curve is associated with the current frame, and
the first PDU set included in the second message is associated with the current frame.
3 . The network entity of claim 1 , wherein:
the first frame is a next frame after a current frame,
the first QB curve is associated with the next frame,
the first message further comprises a second PDU set associated with the current frame,
the first PDU set included in the second message is associated with the next frame, and
the second message further comprises an indication of a second QB curve associated with a subsequent frame after the next frame.
4 . The network entity of claim 3 , wherein the first QB curve associated with the next frame is estimated based at least in part on a last generated frame.
5 . The network entity of claim 3 , wherein:
the first frame is associated with a first segment of the video stream, and
the first QB curve associated with the next frame is estimated based at least in part on one or more most recent generated frames within the first segment.
6 . The network entity of claim 1 , wherein:
the first frame is a progressively-encoded current frame,
the first QB curve is associated with the progressively-encoded current frame,
the first message further comprises a second PDU set associated with the progressively-encoded current frame,
the first PDU set included in the second message is associated with a progressively-encoded next frame, and
the second message further comprises an indication of a second QB curve associated with the progressively-encoded next frame.
7 . The network entity of claim 6 , wherein the progressively-encoded current frame comprises a plurality of PDU layers.
8 . The network entity of claim 7 , wherein:
the plurality of PDU layers comprise a base PDU layer and one or more additional PDU layers, and
each of the one or more additional PDU layers is associated with an increased level of quality relative to a previous PDU layer of the plurality of PDU layers.
9 . The network entity of claim 7 , wherein the one or more processors are individually or collectively further operable to execute the code to cause the network entity to:
truncate, based at least in part on the first QB curve, the progressively-encoded current frame to remove one or more of the plurality of PDU layers,
wherein, to transmit the first PDU set associated with the encoded first frame, the one or more processors are individually or collectively operable to execute the code to cause the network entity to transmit, to at least one UE of the one or more UEs, the truncated progressively-encoded current frame.
10 . The network entity of claim 9 , wherein the progressively-encoded current frame is truncated based at least in part on channel conditions associated with the network entity or a QoE target associated with the at least one UE.
11 . The network entity of claim 9 , wherein the one or more processors are individually or collectively further operable to execute the code to cause the network entity to:
transmit, to the first device, an indication of a quantity of PDU layers included in the truncated progressively-encoded current frame.
12 . The network entity of claim 1 , wherein the first QB curve is based at least in part on complexity information associated with the first frame.
13 . The network entity of claim 1 , wherein the first QB curve is based at least in part on one or more QoE metrics corresponding to a plurality of encoding bitrates for encoding the first frame.
14 . The network entity of claim 13 , wherein the one or more QoE metrics comprise is a peak signal-to-noise ratio (PSNR), a structural similarity index (SSIM), a video multi-method assessment fusion (VMAF), or a mean opinion score (MOS).
15 . The network entity of claim 1 , wherein a respective QB curve is received for each frame of the set of frames, for each segment of the video stream, or based at least in part on a scene change in the video stream.
16 . A first device, comprising:
one or more memories storing processor-executable code; and
one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the first device to:
transmit, to a network entity, a first message comprising an indication of a first quality of experience (QoE)-bitrate (QB) curve associated with a first frame of a set of frames associated with a video stream;
receive, from the network entity and based at least in part on the first QB curve, an operating point for encoding the first frame;
encode, based at least in part on the operating point, the first frame; and
transmit, to the network entity, a second message comprising a first packet data unit (PDU) set associated with the encoded first frame.
17 . The first device of claim 16 , wherein:
the first frame is a current frame,
the first QB curve is associated with the current frame, and
the first PDU set included in the second message is associated with the current frame.
18 . The first device of claim 16 , wherein the one or more processors are individually or collectively further operable to execute the code to cause the first device to:
encode a current frame,
wherein, to transmit the first message, the one or more processors are individually or collectively operable to execute the code to cause the first device to transmit the first message comprising:
a second PDU set associated with the encoded current frame, and
the indication of the first QB curve, wherein the first QB curve is associated with a next frame after the current frame,
wherein, to encode the first frame, the one or more processors are individually or collectively operable to execute the code to cause the first device to encode the next frame, and
wherein, to transmit the second message, the one or more processors are individually or collectively operable to execute the code to cause the first device to transmit the second message comprising:
the first PDU set, wherein the first PDU set is associated with the encoded next frame, and
an indication of a second QB curve associated with a subsequent frame after the next frame.
19 . The first device of claim 18 , wherein the first QB curve associated with the next frame is estimated based at least in part on a last generated frame.
20 . The first device of claim 18 , wherein:
the first frame is associated with a first segment of the video stream, and
the first QB curve associated with the next frame is estimated based at least in part on one or more most recent generated frames within the first segment.
21 . The first device of claim 16 , wherein, to encode the first frame, the one or more processors are individually or collectively operable to execute the code to cause the first device to progressively encode a current frame,
wherein, to transmit the first message, the one or more processors are individually or collectively operable to execute the code to cause the first device to transmit the first message comprising:
a second PDU set associated with the progressively-encoded current frame, and
the indication of the first QB curve, wherein the first QB curve is associated with the progressively-encoded current frame, and
wherein, to transmit the second message, the one or more processors are individually or collectively operable to execute the code to cause the first device to transmit the second message comprising:
the first PDU set, wherein the first PDU set is associated with a progressively-encoded next frame, and
an indication of the second QB curve associated with the progressively-encoded next frame.
22 . The first device of claim 21 , wherein the progressively-encoded current frame comprises a plurality of PDU layers.
23 . The first device of claim 22 , wherein the plurality of PDU layers comprise a base PDU layer and one or more additional PDU layers, and
wherein, to progressively encode the current frame, the one or more processors are individually or collectively operable to execute the code to cause the first device to:
encode the base PDU layer with a minimum level of quality; and
encode each of the one or more additional PDU layers with an increased level of quality relative to a previous PDU layer of the plurality of PDU layers.
24 . The first device of claim 21 , wherein the one or more processors are individually or collectively further operable to execute the code to cause the first device to:
receive, from the network entity, an indication of a quantity of PDU layers included in the progressively-encoded current frame after one or more PDU layers are truncated by the network entity.
25 . The first device of claim 16 , wherein the first QB curve is based at least in part on complexity information associated with the first frame.
26 . The first device of claim 16 , wherein the one or more processors are individually or collectively further operable to execute the code to cause the first device to:
receive, from an application, the first frame; and
estimate, based at least in part on one or more QoE metrics corresponding to a plurality of encoding bitrates for encoding the first frame, the first QB curve.
27 . The first device of claim 26 , wherein the one or more QoE metrics comprise is a peak signal-to-noise ratio (PSNR), a structural similarity index (SSIM), a video multi-method assessment fusion (VMAF), or a mean opinion score (MOS).
28 . The first device of claim 16 , wherein the one or more processors are individually or collectively further operable to execute the code to cause the first device to:
estimate a QB curve for each frame of the set of frames, for each segment of the video stream, or based on a scene change in the video stream.
29 . A method for wireless communications by a network entity, comprising:
receiving, from a first device, a first message comprising an indication of a first quality of experience (QoE)-bitrate (QB) curve associated with a first frame of a set of frames associated with a video stream;
transmitting, to the first device and based at least in part on the first QB curve, an operating point for encoding the first frame;
receiving, from the first device, a second message comprising a first packet data unit (PDU) set associated with the encoded first frame, wherein the encoded first frame is based at least in part on the operating point; and
transmitting, to one or more user equipments (UEs), the first PDU set.
30 . A method for wireless communications by a first device, comprising:
transmitting, to a network entity, a first message comprising an indication of a first quality of experience (QoE)-bitrate (QB) curve associated with a first frame of a set of frames associated with a video stream;
receiving, from the network entity and based at least in part on the first QB curve, an operating point for encoding the first frame;
encoding, based at least in part on the operating point, the first frame; and
transmitting, to the network entity, a second message comprising a first packet data unit (PDU) set associated with the encoded first frame.