Patent Description:
While the concepts of the present disclosure are susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and will be described herein in detail. It should be understood, however, that there is no intent to limit the concepts of the present disclosure to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives consistent with the present disclosure and the appended claims.

The disclosed embodiments may be implemented, in some cases, in hardware, firmware, software, or any combination thereof. The disclosed embodiments may also be implemented as instructions carried by or stored on a transitory or non-transitory machine-readable (e.g., computer-readable) storage medium, which may be read and executed by one or more processors. A machine-readable storage medium may be embodied as any storage device, mechanism, or other physical structure for storing or transmitting information in a form readable by a machine (e.g., a volatile or non-volatile memory, a media disc, or other media device).

As described above, digital media creators commonly publish their work on the Internet. In some cases, creators may permit a work to be used as a base for a new project and modified by others. In some situations, the original creator may want to restrict how much and what changes can be made to the original work. This may be especially important as deepfake technologies become more commonly used. It may also be valuable when software licenses or other intellectual property rights are considered.

Existing techniques are based on licensing digital content in its entirety. When author of digital content publishes it, the author may adopt a licensing scheme such as a version of the General Public License (GPL), Creative Commons or more restrictive (sometimes proprietary licenses). Those types of licenses allow or prohibit modifications to an entire work. Similarly, non-fungible token (NFT) technology works operates on an entire work.

Further, licensing schemes that allow modifications typically do not define precisely what and how a licensed work may be changed. For example, it is not typically possible to define a license to protect only a part of the artwork. Nor is it possible to programmatically determine if the license is violated or is no longer in effect because of a large number of changes (e.g., when GPL license does not hold anymore, and code may be used without GPL restrictions.

To address these and other issues, described herein are systems and methods to specify an allowed amount of change for digital media. In some examples an author may create a set of rules defining, e.g., what, how and by whom an original digital content can be changed. The rules may be embedded in a digital certificate created by, for example, the digital content author or owner. The certificate may comprise detailed licensing information and could be part of the digital content (i.e., it may "travel" with it) or could be available to get from some other sources like one or more Internet websites. The certificate may also be distributed using blockchain technology, etc. Further, one or more protocols for verification and/ or attestation to determine whether changes done to the original content are compliant with the license may be implemented.

<FIG> is a simplified schematic diagram of a data processing environment <NUM> in which mechanisms to specify an allowed amount of change for digital media may be implemented, according to embodiments. Referring to <FIG>, in some embodiments the environment <NUM> comprises one or more computing devices such as a hand-held device <NUM>, a laptop device <NUM>, or a workstation <NUM> that may be communicatively coupled to one or more backend systems (e.g., servers) <NUM>, <NUM> by a communication network <NUM>. In some examples the one or more computing devices <NUM>, <NUM>, <NUM> and/or backend systems <NUM>, <NUM> may be used to generate original digital media content, e.g., photographs, videos, animation, software, audio/music, or the like. The content may be stored on the one or more backend systems and presented for use on one or more computing devices <NUM>, <NUM>, <NUM>.

Various aspects of systems and methods to specify an allowed amount of change for digital media will be explained with reference to <FIG>, which is a simplified schematic diagram of data flows in an environment in which mechanisms to specify an allowed amount of change for digital media may be implemented, according to embodiments, and with reference to <FIG>, which are flowcharts illustrating operations in a method to specify an allowed amount of change for digital media may be implemented, according to embodiments. In some examples the various components of the environment <NUM> may be implemented by software-defined process that execute on a general-purpose processor, such as the system depicted in <FIG>. In other examples the various components may be implemented in a configurable processing device such as a field programmable gate array (FPGA) or reduced to hard-wired circuitry.

Referring first to <FIG> in some examples a first author <NUM> may create an original digital content <NUM>. At operation <NUM> the original content may be received in a computing device such as any of the computing devices <NUM>, <NUM>, <NUM> or the backend systems <NUM>, <NUM> depicted in <FIG>. In some examples the original digital content may comprise a digital artwork such as one or more photographs, videos, animation, musical pieces, software, or the like. At operation <NUM> a hash of the original digital content <NUM> is generated.

At operation <NUM> a set of rules are created for modification of the digital content created by the first author. In some examples the rules may be implemented in the form of a computer-readable syntax which may enable the first author, or an agent or representative thereof, to define rules that specify an allowed amount of change that may be made to the original digital content <NUM>. In some examples the rules define a maximum amount of change which may be implemented in a modified copy of the original digital content. The change may be measured and/or defined, for example, using a hamming distance or a percentage of vertices in a three-dimensional object that are moved and/or added and/or removed, a percentage of pixel that are changed, an amount of color range changes, a number of changes in the source code (e.g., number of different lines of code) of a computer program, a number of different bytes in a compiled code and/or bytecode, or a number of pitch and/or note and/or tone changes in a song, or the like.

In other examples the rules may define a minimum amount of change which may be implemented in a modified copy of the original digital content. Again, the change may be measured and/or defined, for example, using a hamming distance or a percentage of vertices in a three-dimensional object that are moved and/or added and/or removed, a percentage of pixel that are changed, an amount of color range changes, a number of changes in the source code (e.g., number of different lines of code) of a computer program, a number of different bytes in a compiled code and/or bytecode, or a number of pitch and/or note and/or tone changes in a song, or the like. In some examples this measurement may be used to identify when GPL license is no longer applicable and code could be used without GPL requirements (i.e., no need to publish sources, etc.).

In other examples the rules may identify areas of the original digital content <NUM> which may or may not be changed. For example, the areas may be defined three-dimensional objects (e.g., cubes, spheres, other shapes, etc.) for three-dimensional models, and polygons for images and movies and animations, frame ranges for movies and animations, portion of computer programs, song, etc.).

In other examples the rules may define who is permitted to modify the original digital content <NUM> and who is not permitted to modify the original digital content. For example, the rules may identify geographic regions or corporate organizations in which modifications are not permitted. Alternatively, or in addition, the rules may specify that only non-profit organizations are to be permitted to modify the original digital content <NUM>.

In other examples the rules may define whether, when, and in what ways, the original digital content <NUM> may be extended and/or incorporated into other content. For example, the rules may allow or prohibit the addition of a soundtrack to the original digital content <NUM>, or may allow only a defined percentage or defined parts of the original digital content to be incorporated into other content. One or more rules may also define times at which changes may be made to the content. For example, the change can be done after specific date, or before specific date, or within some time window, or outside some time window.

In other examples the rules may define what types of tools may or may not be used to modify the original digital content <NUM>. For example, the rules may specify what types of hardware and/or software may be used to modify the original digital content <NUM>.

In other examples the rules may be bound to an external event such as a smart contract.

In other examples the rules may limit a length of a chain of derivative works that may be made by modifying the original digital content <NUM>.

At operation <NUM> a reference that provides access to the rules generated in operation <NUM> and the hash generated in operation <NUM> may be embedded into a digital certificate <NUM>. In some examples, the reference may include a copy of the rules created in operation <NUM>. In other examples the reference may comprise a pointer or other reference to a location of the rules. For example, if the rules are in the form of a machine learning algorithm with a data model which may be large in size, it may be efficient to store a hash of the rules in the certificate along with the reference to the location the rules and the data model can be downloaded from. Alternatively, or in addition, the rules may contain only information that a specific machine language (ML) algorithm with some specific data model must pass the check. In that case, a pointer to the ML algorithm and data model may be provided in rules. In other words the rules may be entirely ML algorithm and/or data, or rules may contain info which ML algorithm and/or data must be used. In both cases links to ML algorithm and/or data may be provided.

At operation <NUM> the digital certificate <NUM> may be signed using a cryptographic signature scheme with a private key <NUM>. At operation <NUM> the original digital content <NUM> and the digital certificate <NUM> are published, e.g., by posting them on a website.

Thus, the operations depicted in <FIG> enable the first author to package a set of rules which may be expressed in the form of a computer-readable syntax along with an original digital content <NUM>. The rules and the hash of the original digital content <NUM> may be digitally signed by the original work author. The certificate may be attached to the original digital content <NUM> together with a license, may replace the license, or be a part of the license. It may also be available for download from a website or be available through blockchain technology or interactive protocol with an apprising entity <NUM>.

Referring to <FIG> and <FIG>, once the original digital content <NUM> is published a second author <NUM> may, at operation <NUM>, obtain a copy of the original digital content <NUM> created by the first author <NUM>, and may optionally obtain a copy of the certificate <NUM> published with the original digital content. At operation <NUM> the second author <NUM> may optionally consult the rules for content modification, and at operation <NUM> the second author <NUM> may modify the original digital content <NUM> obtained in operation <NUM> to create a modified digital content <NUM>. In some examples the second author <NUM> may verify that all constraints imposed by the rules are satisfied before publishing the modified digital content <NUM>. Online and/or local/offline tools may be used to perform this verification. At operation <NUM> the modified digital content may be published, e.g., by posting them on a website.

Referring to <FIG> and <FIG>, once the modified digital content <NUM> is published an apprising entity <NUM> may initiate operations to determine whether the modifications to the original digital content <NUM> implemented by the second author <NUM> to generate the modified digital content <NUM> were permissible with the rules established by the first author <NUM>. Referring to <FIG>, at operation <NUM> the apprising entity <NUM> receives the original digital content <NUM>, a signed certificate <NUM>, and a modified digital content <NUM> based on the original digital content <NUM>. In some examples the apprising entity <NUM> may be instantiated as a website that receives the both the original digital content <NUM> and the modified digital content <NUM>. In other examples the apprising entity <NUM> may be instantiated as a tool (e.g., a bot) that crawls the Internet to examine digital content, or an application that may be installed on a computing device such as any of the computing devices <NUM>, <NUM>, <NUM> or the backend systems <NUM>, <NUM>. At operation <NUM> the apprising entity <NUM> verifies the certificate <NUM>, including the signature, to ensure that the certification <NUM> is valid.

At operation <NUM> the apprising entity <NUM> extracts the rules defined in operation <NUM> from the signed certificate <NUM>. At operation <NUM> the apprising entity <NUM> applies the rules to the modified digital content to generate a set of verification results. In some examples, a set of tools may be used to verify whether the modified digital content <NUM> complies with the rules defined in the certificate. Examples of tools may include algorithms such as the calculation of a hamming distance to define the difference between the original digital content <NUM> and the modified digital content <NUM>. Other tools may include artificial intelligence (AI) and/or machine language (ML) algorithms and models. For example, the hash of the model may be stored in the certificate along with rule) and a reference to a place from which it can be obtained (e.g., website, ledger, etc.). For example, if a specific AI classifier (identified by its hash) returns that there is a cat on the image, the rule passes. In other examples verification may be implemented using external events such as smart contracts and/or distributed ledger technology. For example, as long as the smart contract is valid, the rule is valid too and passes. In other examples verification may be based on local software, remote verification using a protocol or manual verification. A remote apprising entity <NUM> may also be elected using a protocol. In other examples the use of ledger and/or blockchain as a source of verification information (source of certificates with rules) may be implemented. Further, digital content editing tools may be also extended to support verification or to act on rules violation (i.e., edits may be rejected if they are against the rules in the certificate). In some examples operation <NUM> may be implemented in a secure processing environment (e.g., a trusted execution environment (TEE)).

At operation <NUM> the verification results may be stored in a computer-readable memory in association with an identifier of the signed certificate <NUM> or the certificate itself. For example, the apprising entity <NUM> may maintain a file or database that identifies the certificate <NUM> and/or the original digital work <NUM> and an identifier of the modified digital content <NUM>.

At operation <NUM> the apprising entity <NUM> may present the verification results <NUM> to the second author <NUM> of the modified digital content <NUM>. For example, the second author <NUM> may be notified that one or more modifications to the original digital content were inconsistent with the rules established in operation <NUM>. The second author <NUM> may be given an opportunity to make further modifications to the original digital content <NUM> to bring the modified digital content <NUM> into compliance with the rules established in operation <NUM>. This process may be repeated until the modified digital content <NUM> complies with the rules established in operation <NUM>.

At operation <NUM> the apprising entity <NUM> may provide an alert to the first author <NUM> of the original digital content <NUM>. In some examples the alert may comprise the verification results and an identifier of the second author <NUM> who produced the modified digital content. The first author <NUM> may then choose whether to take a corrective action against the second author <NUM>. Alternatively, or in addition, the verification results may be provided to a third party such as a licensing authority, which may take appropriate corrective action.

Thus, the operations depicted in <FIG> enable an apprising device to evaluate the modified digital content <NUM> to determine whether it complies with the rules defined by the first author <NUM> of the original digital content <NUM>, and to present verification results thereof to the interested parties. In some examples the apprising entity <NUM> may be accessed and/or used by entities other than the first author <NUM> or the second author <NUM>.

<FIG> is a block diagram illustrating a computing architecture which may be adapted to implement a secure address translation service using a permission table (e.g., HPT <NUM> or HPT <NUM>) and based on a context of a requesting device in accordance with some examples. The embodiments may include a computing architecture supporting one or more of (i) verification of access permissions for a translated request prior to allowing a memory operation to proceed; (ii) prefetching of page permission entries of an HPT responsive to a translation request; and (iii) facilitating dynamic building of the HPT page permissions by system software as described above.

In various embodiments, the computing architecture <NUM> may comprise or be implemented as part of an electronic device. In some embodiments, the computing architecture <NUM> may be representative, for example, of a computer system that implements one or more components of the operating environments described above. In some embodiments, computing architecture <NUM> may be representative of one or more portions or components in support of a secure address translation service that implements one or more techniques described herein.

As used in this application, the terms "system" and "component" and "module" are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution, examples of which are provided by the exemplary computing architecture <NUM>. For example, a component can be, but is not limited to being, a process running on a processor, a processor, a hard disk drive or solid state drive (SSD), multiple storage drives (of optical and/or magnetic storage medium), an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and/or thread of execution, and a component can be localized on one computer and/or distributed between two or more computers. Further, components may be communicatively coupled to each other by various types of communications media to coordinate operations. The coordination may involve the unidirectional or bi-directional exchange of information. For instance, the components may communicate information in the form of signals communicated over the communications media. The information can be implemented as signals allocated to various signal lines. In such allocations, each message is a signal. Further embodiments, however, may alternatively employ data messages. Such data messages may be sent across various connections. Exemplary connections include parallel interfaces, serial interfaces, and bus interfaces.

As shown in <FIG>, the computing architecture <NUM> includes one or more processors <NUM> and one or more graphics processors <NUM>, and may be a single processor desktop system, a multiprocessor workstation system, or a server system having a large number of processors <NUM> or processor cores <NUM>. In on embodiment, the system <NUM> is a processing platform incorporated within a system-on-a-chip (SoC or SOC) integrated circuit for use in mobile, handheld, or embedded devices.

An embodiment of system <NUM> can include, or be incorporated within, a server-based gaming platform, a game console, including a game and media console, a mobile gaming console, a handheld game console, or an online game console. In some embodiments system <NUM> is a mobile phone, smart phone, tablet computing device or mobile Internet device. Data processing system <NUM> can also include, couple with, or be integrated within a wearable device, such as a smart watch wearable device, smart eyewear device, augmented reality device, or virtual reality device. In some embodiments, data processing system <NUM> is a television or set top box device having one or more processors <NUM> and a graphical interface generated by one or more graphics processors <NUM>.

In some embodiments, one or more processor(s) <NUM> are coupled with one or more interface bus(es) <NUM> to transmit communication signals such as address, data, or control signals between processor <NUM> and other components in the system. The interface bus <NUM>, in one embodiment, can be a processor bus, such as a version of the Direct Media Interface (DMI) bus. However, processor buses are not limited to the DMI bus, and may include one or more Peripheral Component Interconnect buses (e.g., PCI, PCI Express), memory buses, or other types of interface buses. In one embodiment the processor(s) <NUM> include an integrated memory controller <NUM> and a platform controller hub <NUM>. The memory controller <NUM> facilitates communication between a memory device and other components of the system <NUM>, while the platform controller hub (PCH) <NUM> provides connections to I/O devices via a local I/O bus.

Memory device <NUM> can be a dynamic random-access memory (DRAM) device, a static random-access memory (SRAM) device, flash memory device, phase-change memory device, or some other memory device having suitable performance to serve as process memory. In one embodiment the memory device <NUM> can operate as system memory for the system <NUM>, to store data <NUM> and instructions <NUM> for use when the one or more processors <NUM> execute an application or process. Memory controller hub <NUM> also couples with an optional external graphics processor <NUM>, which may communicate with the one or more graphics processors <NUM> in processors <NUM> to perform graphics and media operations. In some embodiments a display device <NUM> can connect to the processor(s) <NUM>. The display device <NUM> can be one or more of an internal display device, as in a mobile electronic device or a laptop device or an external display device attached via a display interface (e.g., DisplayPort, etc.). In one embodiment the display device <NUM> can be a head mounted display (HMD) such as a stereoscopic display device for use in virtual reality (VR) applications or augmented reality (AR) applications.

In some embodiments the platform controller hub <NUM> enables peripherals to connect to memory device <NUM> and processor <NUM> via a high-speed I/O bus. The I/O peripherals include, but are not limited to, an audio controller <NUM>, a network controller <NUM>, a firmware interface <NUM>, a wireless transceiver <NUM>, touch sensors <NUM>, a data storage device <NUM> (e.g., hard disk drive, flash memory, etc.). The data storage device <NUM> can connect via a storage interface (e.g., SATA) or via a peripheral bus, such as a Peripheral Component Interconnect bus (e.g., PCI, PCI Express). The touch sensors <NUM> can include touch screen sensors, pressure sensors, or fingerprint sensors. The wireless transceiver <NUM> can be a Wi-Fi transceiver, a Bluetooth transceiver, or a mobile network transceiver such as a <NUM>, <NUM>, Long Term Evolution (LTE), or <NUM> transceiver. The firmware interface <NUM> enables communication with system firmware, and can be, for example, a unified extensible firmware interface (UEFI). The network controller <NUM> can enable a network connection to a wired network. In some embodiments, a high-performance network controller (not shown) couples with the interface bus <NUM>. The audio controller <NUM>, in one embodiment, is a multichannel high definition audio controller. In one embodiment the system <NUM> includes an optional legacy I/O controller <NUM> for coupling legacy (e.g., Personal System <NUM> (PS/<NUM>)) devices to the system. The platform controller hub <NUM> can also connect to one or more Universal Serial Bus (USB) controllers <NUM> connect input devices, such as keyboard and mouse <NUM> combinations, a camera <NUM>, or other USB input devices.

In the description above, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the described embodiments. It will be apparent, however, to one skilled in the art that embodiments may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form. There may be intermediate structure between illustrated components. The components described or illustrated herein may have additional inputs or outputs that are not illustrated or described.

Various embodiments may include various processes. These processes may be performed by hardware components or may be embodied in computer program or machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the processes. Alternatively, the processes may be performed by a combination of hardware and software.

Portions of various embodiments may be provided as a computer program product, which may include a computer-readable medium having stored thereon computer program instructions, which may be used to program a computer (or other electronic devices) for execution by one or more processors to perform a process according to certain embodiments. The computer-readable medium may include, but is not limited to, magnetic disks, optical disks, read-only memory (ROM), random access memory (RAM), erasable programmable read-only memory (EPROM), electrically-erasable programmable read-only memory (EEPROM), magnetic or optical cards, flash memory, or other type of computer-readable medium suitable for storing electronic instructions. Moreover, embodiments may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer.

Many of the methods are described in their most basic form, but processes can be added to or deleted from any of the methods and information can be added or subtracted from any of the described messages without departing from the basic scope of the present embodiments. It will be apparent to those skilled in the art that many further modifications and adaptations can be made. The particular embodiments are not provided to limit the concept but to illustrate it. The scope of the embodiments is not to be determined by the specific examples provided above but only by the claims below.

If it is said that an element "A" is coupled to or with element "B," element A may be directly coupled to element B or be indirectly coupled through, for example, element C. When the specification or claims state that a component, feature, structure, process, or characteristic A "causes" a component, feature, structure, process, or characteristic B, it means that "A" is at least a partial cause of "B" but that there may also be at least one other component, feature, structure, process, or characteristic that assists in causing "B. " If the specification indicates that a component, feature, structure, process, or characteristic "may", "might", or "could" be included, that particular component, feature, structure, process, or characteristic is not required to be included. If the specification or claim refers to "a" or "an" element, this does not mean there is only one of the described elements.

Claim 1:
A processor-implemented method, comprising:
generating an original digital content (<NUM>);
generating (<NUM>) a first set of rules pertaining to permissible changes to the original digital content;
generating (<NUM>) a cryptographically signed certificate comprising a reference that provides access to the first set of rules and a hash of the original digital content; and
publishing (<NUM>) the original digital content and the associated cryptographically signed certificate;
further comprising:
receiving (<NUM>), in an apprising entity, the original digital content, the cryptographically signed certificate, and a modified digital content derived from the original digital content;
extracting (<NUM>), from the signed certificate, the first set of rules pertaining to permissible changes to the original digital content;
applying (<NUM>) the first set of rules to the modified digital content to generate a set of verification results, comprising utilizing one or more tools to verify whether the modified digital content complies with the first set of rules defined in the cryptographically signed certificate, and wherein the certificate comprises a hash identifying the one or more tools; and
storing (<NUM>) the set of verification results in a computer-readable memory in association with an identifier of the signed certificate.