Hinterlassen Videoenkoderimplementierungen bei gleichem Codec Standard Spuren?
-
Kann man am Video also sehen, welche Enkoderimplementierung verwendet wurde?
Beispiel:
10 Videos werden alle mit dem Codec Standard MPEG-2 kodiert,
aber für alle werden unterschiedliche Enkoderimplementierungen verwendet.Frage:
Hinterlassen die Enkoder einen Fingerabdruck am Video, so daß man erkennen kann mit welchem Enkoder das Video kodiert wurde?
-
Gute Frage

Was ganz sicher geht: wenn der Hersteller des Encoders will, dass man Files die mit seinem Encoder gemacht wurden erkennen kann, dann kann er es so einrichten.
Ein Beispiel: fast alle Video-Formate, darunter auch MPEG-1 und MPEG-2, verwenden Motion-Compensation, wo für meist quadratische Bildausschnitte je ein sog. Motion-Vektor angegeben wird. Wenn der Motion-Vektor schlecht gewählt ist, dann verschlechtert das nur die Kompressionsrate, hat ansonsten aber keinen besonderen Effekt. Die Files sind immer noch compliant und werden von jedem Decoder trotzdem richtig dekodiert.
Ein Encoder könnte nun z.B. das LSB (least significant bit) der X-Coordinate des Vektors für den ersten Blocks in einem Bild einfach "überschreiben" (also einen bestimmten Wert dafür verwenden, egal ob er optimal wäre oder nicht). So ergibt sich ein Bitstream mit 1 Bit/Bild. In diesen Bitstream kann er seinen Fingerprint reinschreiben. Wenn die Länge des Fingerprint ausreichen gross ist, z.B. 128 Bit, ist die Chance dass der Fingerprint zufällig entsteht quasi nicht existent. Für 128 Bit braucht man 128 Bilder. Bei 24 Bildern pro Sekunde wären das 5,33 Sekunden, also nicht wirklich lange.
Da ein Bild einige tausend solcher Motion-Vektoren hat, von denen nur einer leicht verändert wird, stört das die Kompression auch kaum. Ist also vom technischen Standpunkt aus durchaus akzeptabel.Wie viele Encoder sowas wirklich machen weiss ich allerdings nicht. Wenn man einen komerziellen Encoder baut, und den für teures Geld lizensiert, dann wäre es aber vermutlich angebracht. Ist ja nicht schlecht wenn man im Streitfall nachweisen kann dass Firma X den eigenen Encoder einsetzt ohne eine Lizenz zu haben

Weiters gibt es in bestimmten Formaten Padding. In dieses Padding kann man natürlich auch reinschreiben was man will. LAME z.B. schreibt an bestimmten Stellen "LAMEx.yz" rein (x.yz = versionsnummer, also 3.90 oder was auch immer).
----
Bei anderen Formaten und/oder Containern geht es noch einfacher, da z.T. Felder in den Headern existieren wo der Encoder reinschreiben kann was er mag. z.B. Felder für den Streamnamen oder gar Felder die speziell dafür da sind um den Encoder identifizieren zu können. Bei MPEG-2 gibt es sowas soweit ich weiss aber nicht.
Wobei diese "Fingerabdrücke" dann mehr oder weniger offensichtlich sind, und auch einfach zu entfernen. Fingerabdrücke in den Nutzdaten (wie oben beschrieben) findet man kaum, wenn man nicht weiss wonach man suchen muss. Und man kann sie auch nicht so einfach entfernen - man müsste das File dazu (wenigstens teilweise) neu kodieren.
-
Hab dazu ne Antwort gefunden:
http://forum.doom9.org/showthread.php?t=160366Hardware Encoder machen das anscheinend, bei Software Encodern kommt es auf den Encoder an. Da Zeug wird ganz normal in den Header geschrieben.
Aber das was du sagst, mit einem versteckten Fingerprint klingt auch plausibel, im Streitfall würde dann aber auch bekannt werden, daß der Encoderhersteller XY seine Videos Fingerprinted.
-
Enkoder & Fingerabdru schrieb:
Aber das was du sagst, mit einem versteckten Fingerprint klingt auch plausibel, im Streitfall würde dann aber auch bekannt werden, daß der Encoderhersteller XY seine Videos Fingerprinted.
Nicht unbedingt.
Nur wenn jmd. bei der Verhandlung dabei ist der versteht worum es überhaupt geht und es für berichtenswert hält. Und nur wenn die Verhandlung überhaupt stattfindet und öffentlich ist. Beides muss ja nicht sein. Der Beklagte hat bei sowas ja auch interesse dass das nicht vor Gericht geht (man will ja als Unternehmen nicht als Software-Pirat ins Rampenlicht gezerrt werden), und wird daher versuchen einen Vergleich zu schliessen. Ebenso würde der Kläger versuchen dass die Verhandlung hinter verschlossenen Türen vor sich geht.
-
Enkoder & Fingerabdru schrieb:
Kann man am Video also sehen, welche Enkoderimplementierung verwendet wurde?
Beispiel:
10 Videos werden alle mit dem Codec Standard MPEG-2 kodiert,
aber für alle werden unterschiedliche Enkoderimplementierungen verwendet.Frage:
Hinterlassen die Enkoder einen Fingerabdruck am Video, so daß man erkennen kann mit welchem Enkoder das Video kodiert wurde?ja, encoder hinterlassen welche, meistens durch die unterschiedlichen optimierungen die gemacht werden. jedoch musst du dich mit den ganzen implementierungsdetails gut auskennen, um das zu erkennen. z.b.
- manche aendern die range der farbwerte leicht, damit man nicht mehr auf overflow/underflow testen muss.
- bei motion estimation waere die suche im ganzen bereich ein wenig aufwendig, daher gibt es einige optimierungen z.b. SAT, motion vector vom letzten frame, motion vector vom nachbar quad,...
- es gibt optimierungen die sich auf andere optimierungen auswirken, wenn man z.b. statt dem optimalen motion vector, den zweitbesten waehlt, dieser aber sehr aenlich ist wie der vom nachbar quad, kann man sie effizienter im entropy encoder verarbeiten, auch wenn der error des bildes groesser wird.fuer das alles muss man aber wirklich tief in die sache reingehen, es gibt aber ein paar leute die sowas zum spass machen, um von anderen encodern zu lernen, die wuerden sowas wohl erkennen koennen.
wenn du einfach nur signieren willst, gibt es viele wege, die frage ist, wie gut die signatur sein soll. fuer sowas wie hollywood movies nutzt man sehr ausgefallene algorithmen, die dafuer sorgen, dass du selbst nach dem re-encoden noch beweisen kannst, was das orginal war (also nicht das orginal rekonstruieren, sondern eines von vielen orginalen als quelle nachweisen).
-
Mal ganz blöde gefragt: Wäre hier überhaupt eine Aussicht auf Erfolg? Das kann doch irgendwer für mich enkodiert haben, ohne dass ich jemals eine Lizenz dafür benötigte. Ich bin doch nicht verpflichtet mir zu merken, wer mir welches Video womit enkodiert hat, oder? Anders sieht es eventuell aus, wenn ich ein Video mit einem eindeutig zuordnungsbaren Wasserzeichen versehe, an eine dritte Person gebe und es dann im Internet auftaucht. Doch selbst da müsste ich als Kläger wohl erst beweisen, dass mir die signierte Datei nicht eventuell doch an eine weitere Person rausgerutscht ist.
-
hustbaer schrieb:
Der Beklagte hat bei sowas ja auch interesse dass das nicht vor Gericht geht (man will ja als Unternehmen nicht als Software-Pirat ins Rampenlicht gezerrt werden), und wird daher versuchen einen Vergleich zu schliessen. Ebenso würde der Kläger versuchen dass die Verhandlung hinter verschlossenen Türen vor sich geht.
Mag schon sein, aber es gibt ja nicht nur das Urheberrecht, sondern auch das Patentrecht.
Eine Firma, die ein Video mit einem freien Encoder kodiert, wird sicher keine Lizenzgebühren für die Nutzung des Patent an die MPEG gezahlt haben.
Wäre es unklar, mit welchem Encoder der Anwender sein Video enkodiert hat, dann hätte es die MPEG schwer zu klagen, denn bei einem kommerziellen Enkoder würde man ja davon ausgehen, daß durch den Kauf des Enkoders, der die Lizenzgebühren für die Patente schon enthält, abgegolten sind.
Wenn die MPEG also nachprüfen kann, welcher Encoder eingesetzt wird, dann wäre die Firma zur Zahlung fällig, weil sie einen freien Encoder benutzt hat, mit dem die Gebühren eben nicht abgegolten sind.
Die Firma selbst kann dabei ja der komplette Urheber des ganzen Videomaterials sein, aber es geht dann ja nicht mehr um das Urheberrecht, sondern um das Patentrecht und der Nutzung eines freien Encoders.
-
Enkoder & Fingerabdru schrieb:
Wäre es unklar, mit welchem Encoder der Anwender sein Video enkodiert hat, dann hätte es die MPEG schwer zu klagen, denn bei einem kommerziellen Enkoder würde man ja davon ausgehen, daß durch den Kauf des Enkoders, der die Lizenzgebühren für die Patente schon enthält, abgegolten sind.
Erstmal ist das nicht unbedingt so. (Ich würde sogar meinen es ist meistens nicht so)
Windows enthält z.B. einen MP3-Decoder, ebenso Decoder für MPEG-1, MPEG-2 und in neueren Versionen sogar einen H.264 Decoder.
Alles schön und gut. So lange man das nur privat nutzt auch kein Problem.Wenn du aber z.B. eine Video-Jukebox auf Windows-Embedded Basis baust, und diese verkaufst, dann ist das kommerzielle Nutzung. Und trotz dem Windows ein kommerzielles Produkt ist, und die Decoder da ganz offiziell mitkommen, musst du zahlen. MS lizensiert die Dinger nämlich einfach nicht für kommerzielle Nutzung.
Also kommerzieller Encoder/Decoder verwendet != keine Patentgebühren mehr fällig.
Davon abgesehen kann der Patentinhaber auch klagen wenn er keine Ahnung hat welchen Encoder du verwendest. Das interessiert die auch nicht. Die wollen bloss ihr Geld. So lange du als kommerzieller Nutzer von MPEG-2 nicht nachweisen kannst dass jmd. anderer bereits für dich die fälligen Gebühren bezahlt hat, hast du ein Problem.
Fingerprinting des Bitstreams ist IMO also wirklich primär für die Hersteller von Encodern interessant.
Das kann doch irgendwer für mich enkodiert haben, ohne dass ich jemals eine Lizenz dafür benötigte. Ich bin doch nicht verpflichtet mir zu merken, wer mir welches Video womit enkodiert hat, oder?
Wenn "du" als Privatperson den $1M Encoder der Firma BesteVideoVonWelt verwendest, dann wird das vermutlich einfach keinen scheren.
Wenn "du" als grosser TV-Sender/Internet-Plattform/... es aber machst, dann sieht die Sache anders aus.
Wenn Firma BesteVideoVonWelt draufkommt dass ein Grossteil der Videos die du ausstrahlst/hostest/... mit ihrem Encoder gemacht wurden, du den Encoder aber nie bei ihnen gekauft hast, dann werden die einfach mal nachfragen. Das sind dann ja keine Sachen mehr die man mal schnell über Ebay kaufen kann oder im MM ausm Regal nehmen. Da wird lange rumverhandelt und werden direkt Verträge zwischen Hersteller und Nutzer (TV-Sender/...) abgeschlossen. Die wissen also sehr genau wer ihr Zeug verwenden darf und wer nicht.
Wenn du denen dann keine plausible Erklärung geben kannst, und dich trotzdem weigerst zu zahlen, dann werden die einfach klagen.
-
Das klingt für mich alles zu sehr hypothetisch. Welcher grosse TV-Sender geht denn wissentlich so ein Risiko ein? Zumal viele Formate ohnehin woanders eingekauft werden.
-
Na dann eben ein kleinerer TV Sender, ein kleinerer Webseiten-Betreiber, ...
Einfach irgendwer wo es sich auszahlt zu klagen.Oder willst du im Ernst behaupten du glaubst nicht dass Firmen geklaute Software einsetzen? Oder dass das nur Firmen machen die sowieso kein Geld haben, wo man also nix rausholen könnte ...?
-
hustbaer schrieb:
Enkoder & Fingerabdru schrieb:
Wäre es unklar, mit welchem Encoder der Anwender sein Video enkodiert hat, dann hätte es die MPEG schwer zu klagen, denn bei einem kommerziellen Enkoder würde man ja davon ausgehen, daß durch den Kauf des Enkoders, der die Lizenzgebühren für die Patente schon enthält, abgegolten sind.
Erstmal ist das nicht unbedingt so. (Ich würde sogar meinen es ist meistens nicht so)
Windows enthält z.B. einen MP3-Decoder, ebenso Decoder für MPEG-1, MPEG-2 und in neueren Versionen sogar einen H.264 Decoder.
Alles schön und gut. So lange man das nur privat nutzt auch kein Problem.Wenn du aber z.B. eine Video-Jukebox auf Windows-Embedded Basis baust, und diese verkaufst, dann ist das kommerzielle Nutzung. Und trotz dem Windows ein kommerzielles Produkt ist, und die Decoder da ganz offiziell mitkommen, musst du zahlen. MS lizensiert die Dinger nämlich einfach nicht für kommerzielle Nutzung.
Also kommerzieller Encoder/Decoder verwendet != keine Patentgebühren mehr fällig.
Encoder != Decoder
MS lizensiert nur nen Decoder und der ist nur ne Beigabe zum OS, daher ist das verständlich, daß der nur für nicht kommerzielle Sachen zum dekodieren verwendet werden darf.
Aber wenn ich Adobe Premiere kaufe, ein Videoschnittsystem, dann kann man als Firma eigentlich erwarten, daß man bei einem kommerziellen Videoschnittsystem auch gleich die Patentgebühren für die mitgelieferten MPEG-2 Encoder mitbezahlt hat.
Denn wenn dem nicht so wäre, dann wäre das so, als würde man eine IDE zu einer Patentgeschützten Programmiersprache kaufen, aber die Programme die man damit programmiert dann nicht kommerziell verkaufen dürfen.
-
Enkoder & Fingerabdru schrieb:
Denn wenn dem nicht so wäre, dann wäre das so, als würde man eine IDE zu einer Patentgeschützten Programmiersprache kaufen, aber die Programme die man damit programmiert dann nicht kommerziell verkaufen dürfen.
Schau dir mal die Bedingungen zu LabView Kompilaten für Windows CE an.
-
Enkoder & Fingerabdru schrieb:
Encoder != Decoder
MS lizensiert nur nen Decoder und der ist nur ne Beigabe zum OS, daher ist das verständlich, daß der nur für nicht kommerzielle Sachen zum dekodieren verwendet werden darf.
Was ist mit dem MP3 Encoder der auch dabei ist?
Enkoder & Fingerabdru schrieb:
Aber wenn ich Adobe Premiere kaufe, ein Videoschnittsystem, dann kann man als Firma eigentlich erwarten, daß man bei einem kommerziellen Videoschnittsystem auch gleich die Patentgebühren für die mitgelieferten MPEG-2 Encoder mitbezahlt hat.
Das kann sein, muss aber nicht.
Enkoder & Fingerabdru schrieb:
Denn wenn dem nicht so wäre, dann wäre das so, als würde man eine IDE zu einer Patentgeschützten Programmiersprache kaufen, aber die Programme die man damit programmiert dann nicht kommerziell verkaufen dürfen.
Patentgeschützten Programmiersprachen? Das wären dann welche?
-
hustbaer schrieb:
Oder willst du im Ernst behaupten du glaubst nicht dass Firmen geklaute Software einsetzen? Oder dass das nur Firmen machen die sowieso kein Geld haben, wo man also nix rausholen könnte ...?
Klar glaube ich, dass es so etwas gibt, aber es ist mir bei meinen bisherigen Arbeitgebern bisher jedenfalls nicht untergekommen. Und ich denke nicht, dass ein "Nachweis", dass ein bestimmter Encoder benutzt wurde, für eine erfolgreiche Klage reicht.
-
Walli schrieb:
Und ich denke nicht, dass ein "Nachweis", dass ein bestimmter Encoder benutzt wurde, für eine erfolgreiche Klage reicht.
Wieso sollte er nicht reichen?