livepeer / livepeer/research

Using macroblocks from three separate transcode rendition jobs to determine content authenticity

Open
#36 9 comments 0 reactions 1 assignee View on GitHub

@mk-livepeer is already working on this.

Since Jul 26, 2019.

Dominant language
No language data
Stars
7
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Using macroblocks from three separate transcode rendition jobs to determine desired content:

What is a Macroblock? https://en.m.wikipedia.org/wiki/Macroblock

A macroblock is a processing unit in image and video compression formats based on linear block transforms, such as the discrete cosine transform (DCT). A macroblock typically consists of 16=C3=9716 samples, and is further subdivided into transform blocks, and may be further
subdivided into prediction blocks.

We didn't even need to get that technical here - For the scope of this effort, we only need to think of macroblocks as the blocks found in a low-quality, zoomed-out fuzzy low resolution image, generated from our transcoded renditions.

For example, take a 720p video segment. We can extract a still image from the I-Frame at the start of the segment. We can scale this 1280x720 image to a much smaller resolution, say, 128x72. Now we have much less data to deal with for comparisons, yet, enough data to indicate the reality of the content.

My idea for content authenticity verification is to leverage the data gathered from analyzing these macroblocks to determine if we're looking at the right content.

The idea is to take segments from three completed transcode jobs and to use them to determine the valid stream. How exactly do we analyze the data? I'm sure we will all have some different ideas here, but the basic idea is to use scaled down still images to determine that the renditions match.

One possible example is to compare every pixel and make sure that the color values fall within a given percent error range. We look to make sure that the data from 2 or more images match, or fuzzy match each other, to determine that the group is valid. There may be outliers, and those are less likely to be the authentic content.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.