0

Suppose, as an optimization step, some video has metadata attached to it that indicates the regions (say, rectangular) where the most exciting thing is happening at that time. Since the users will be focused on that region, they will be less likely to notice a drop in quality elsewhere. Therefore, it could be advantageous from a bandwidth perspective to stream the video such that the interesting region is high quality and the surrounding regions are merely average quality.

I wonder if its as simple as doing the compression for some quality band, then doing it again for a higher quality band. When the frame is sent, pixels from within the interesting region are transmitted from the higher quality while pixels from outside are transmitted from the lower quality. But I know that to be an oversimplification of how video compression works - with temporal compression, a pixel's value is only transmitted if it changes enough from one frame to the next, which may interfere with the procedure outlined above. Furthermore, I have no idea if doing the compression twice would effect streaming performance, of if the extra delay would be minuscule in comparison to normal network latency.

Therefore: Is there a video compression algorithm that provides for compressing selective (and changing w.r.t time) regions of the video more than others?

user6118986
  • 341
  • 2
  • 15
  • Probably any of the most used block-based algorithms would do this with a modification. They already calculate qualities and do quantization so making them handle quality differently for different regions would most likely achieve this. So it’s about implementation, not algorithm. Don’t know if any implementation has this by default. – Sami Kuhmonen Nov 12 '19 at 05:52

1 Answers1

0

Yes, x264 supports this. See “quant_offsets” in x264.h.

szatmary
  • 29,969
  • 8
  • 44
  • 57