CN111414412A - 基于机器学习的视频压缩 - Google Patents

基于机器学习的视频压缩 Download PDF

Info

Publication number
CN111414412A
CN111414412A CN202010008731.6A CN202010008731A CN111414412A CN 111414412 A CN111414412 A CN 111414412A CN 202010008731 A CN202010008731 A CN 202010008731A CN 111414412 A CN111414412 A CN 111414412A
Authority
CN
China
Prior art keywords
user
video file
node
user video
blockchain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010008731.6A
Other languages
English (en)
Other versions
CN111414412B (zh
Inventor
V.K.A.贝奇
S.萨达查拉姆
V.埃卡姆巴拉姆
J.贝拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN111414412A publication Critical patent/CN111414412A/zh
Application granted granted Critical
Publication of CN111414412B publication Critical patent/CN111414412B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/71Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2541Rights Management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/632Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Accounting & Taxation (AREA)
  • Computational Linguistics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

示例操作可以包括以下一个或多个:由矿工节点连接到包括多个用户节点的区块链网络;由矿工节点读取由多个用户节点中的用户节点生成的智能合约,其中智能合约指定用户视频文件的位置;由矿工节点从该位置获取用户视频文件;由矿工节点基于用户视频文件的属性生成用户视频文件的简档向量;由矿工节点确定具有相似简档向量的聚类;由矿工节点将与聚类相关联的压缩算法应用于用户视频文件,以生成压缩的用户视频文件;并由矿工节点将压缩的用户视频文件发送到多个用户节点中的用户节点以进行验证。

Description

基于机器学习的视频压缩
技术领域
本申请一般涉及数据库存储***,并且更具体地,涉及基于机器学习的视频压缩。
背景技术
集中式数据库在一个位置处的单一数据库(例如,数据库服务器)中存储和保持数据。该位置通常是中央计算机,例如桌面中央处理器(central processing unit,CPU)、服务器CPU或大型计算机。通常可以从多个不同的点访问存储在中央数据库中的信息。多个用户或客户端工作站可以在集中式数据库上同时工作,例如,基于客户端/服务器配置。集中式数据库易于管理、保持和控制,尤其是出于安全目的,因为它位于单一位置。在集中式数据库中,数据冗余被最小化,因为所有数据的单个存储地点也意味着给定的数据集只有一个主记录。
然而,集中式数据库有显著的缺点。例如,集中式数据库具有单点故障(singlepoint of failure)。具体而言,如果没有容错考虑,并且发生硬件故障(例如,硬件、固件、和/或软件故障),数据库内的所有数据都会丢失,并且所有用户的工作都会被中断。此外,集中式数据库高度依赖于网络连接。因此,连接越慢,每次数据库访问所需的时间量就越增多。另一个缺点是,当集中式数据库由于单一位置而经历高流量时,会出现瓶颈。此外,集中式数据库提供对数据的有限访问,因为数据库只保持一份数据副本。因此,多个设备无法在不造成覆盖存储的数据的显著的问题或风险的情况下同时访问同一条数据。此外,因为数据库存储***具有最少的数据冗余到没有数据冗余,所以意外丢失的数据很难检索,除非通过手动操作从备份存储装置检索。
传统上,集中式数据库受到搜索能力低、缺乏安全性和交易速度慢的限制。因此,需要一种基于区块链的解决方案来克服这些显著的缺点。
数据压缩成为现代数据存储机制的固有部分。分辨率、视频/图像质量等每天都在变得越来越好。然而,音频/视频文件的数据大小也急剧增加。这使得压缩对于文件的存储和交换非常关键。为了压缩视频文件,可以使用许多压缩技术,诸如霍夫曼(Huffman)、LZW等。压缩算法的压缩率可以相对于各种文件(以及同一类型的文件)而变化。
压缩算法中的每一种都有一些独特的特征,并且基于视频文件的类型可以具有更高的压缩率。例如,对于文件“A.mpeg4”,使用霍夫曼算法的视频压缩率可以是“ah%”,并且使用LZW算法的压缩率可以是“aLZW%”。同样,对于同一类型的文件“B.mpeg4”,使用霍夫曼算法的视频压缩率可以是“bh%”,并且使用LZW算法的视频压缩率可以是“bLZW%”。然而,在“A.mpeg4”的情况下,ah%可能大于aLZW%,而对于“B.mpeg4”,bh%可能小于bLZW%。数据压缩的各种算法之间的比较研究表明,相对于不同算法性能可能不同。换句话说,对于给定的视频文件,不同的压缩算法可以产生不同的压缩效率。
因此,希望能够以去中心化(decentralized)的方式基于视频的简档自动选择最有效的视频压缩算法。
发明内容
一个示例实施例提供了一种包括处理器和存储器的***,其中处理器被配置为执行以下一个或多个操作:连接到包括多个用户节点的区块链网络;读取由多个用户节点中的用户节点生成的智能合约,其中智能合约指定用户视频文件的位置;从该位置获取用户视频文件;基于用户视频文件的属性生成用户视频文件的简档向量;确定具有相似简档向量的聚类;将与聚类相关联的压缩算法应用于用户视频文件以生成压缩的用户视频文件;并将压缩的用户视频文件发送到多个用户节点中的用户节点以进行验证。
另一示例实施例提供了一种方法,该方法包括以下一个或多个操作:由矿工(miner)节点连接到包括多个用户节点的区块链网络;由矿工节点读取由多个用户节点中的用户节点生成的智能合约,其中智能合约指定用户视频文件的位置;由矿工节点从该位置获取用户视频文件;由矿工节点基于用户视频文件的属性生成用户视频文件的简档向量;由矿工节点确定具有相似简档向量的聚类;由矿工节点将与聚类相关联的压缩算法应用于用户视频文件以生成压缩的用户视频文件;并由矿工节点将压缩的用户视频文件发送到多个用户节点中的用户节点以进行验证。
另一示例实施例提供了一种包括指令的非暂时性计算机可读介质,当该指令被处理器读取时,使得处理器执行以下一个或多个操作:连接到包括多个用户节点的区块链网络;读取由多个用户节点中的用户节点生成的智能合约,其中智能合约指定用户视频文件的位置;从该位置获取用户视频文件;基于用户视频文件的属性生成用户视频文件的简档向量;确定具有相似简档向量的聚类;将与聚类相关联的压缩算法应用于用户视频文件以生成压缩的用户视频文件;并将压缩的用户视频文件发送到多个用户节点中的用户节点以进行验证。
附图说明
图1示出了根据示例实施例的包括分类账数据库的***的网络图。
图2A示出了根据示例实施例的示例对等(peer)节点配置。
图2B示出了根据示例实施例的另一对等节点配置。
图3示出了根据示例实施例的许可的网络。
图4A示出了根据示例实施例的流程图。
图4B示出了根据示例实施例的另一流程图。
图5A示出了根据示例实施例的被配置为执行本文描述的一个或多个操作的示例***。
图5B示出了根据示例实施例的被配置为执行本文描述的一个或多个操作的另一示例***。
图5C示出了根据示例实施例的被配置为在区块链上实施智能合约条款的合约方和中介服务器之间的智能合约配置。
图5D示出了根据示例实施例的另一附加示例***。
图6A示出了根据示例实施例的向数据库添加新数据的过程。
图6B示出了根据示例实施例的包括新数据的数据块的内容。
图7示出了支持示例实施例中的一个或多个示例实施例的示例***。
具体实施方式
很容易理解,如本文的附图中一般描述和示出的,当前组件可以以多种不同的配置来布置和设计。因此,如附图所表示的,方法、装置、非暂时性计算机可读介质和***中的至少一个的实施例的以下详细描述并不旨在限制本申请所要求保护的范围,而仅仅是所选实施例的代表。
在一个或多个实施例中,贯穿本说明书描述的当前特征、结构或特性可以以任何合适的方式组合。例如,在整个说明书中,短语“示例实施例”、“一些实施例”或其他类似语言的使用指的是结合实施例描述的特定特征、结构或特性可以包括在至少一个实施例中的事实。因此,在整个说明书中,短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言的出现不一定都指同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
此外,虽然术语“消息”可能已经在实施例的描述中使用,但是本申请可以应用于许多类型的网络数据,诸如分组、帧、数据报等。术语“消息”还包括分组、帧、数据报及其任何等同物。此外,虽然在示例性实施例中可以描绘某些类型的消息和信令,但是它们不限于某一类型的消息,并且本申请不限于某一类型的信令。
示例实施例提供了方法、***、组件、非暂时性计算机可读介质、设备和/或网络,其提供在区块链网络中的基于机器学习的视频压缩。
去中心化数据库是一个分布式存储***,其包括彼此通信的多个节点。区块链是去中心化数据库的示例,它包括仅附加(append-only)的不可变数据结构,类似于能够保持在相互不信任的各方之间的记录的分布式分类帐(distributed ledger)。不信任的各方在本文被称为对等方或对等节点。每个对等方保持数据库记录的副本,并且在分布式对等方之间没有达成共识的情况下,任何单个对等方都不可以修改数据库记录。例如,对等方可以执行共识协议来验证区块链存储交易,将存储交易分组为块,并在块上建立哈希链(hashchain)。为了一致性,此过程通过根据需要对存储交易进行排序来形成分类帐。在公开的或无许可的区块链(permission-less blockchain)中,任何人都可以在没有特定身份的情况下参与。公开的区块链经常涉及本地加密货币(crypto-currency),并使用基于各种协议(诸如工作证明(Proof of Work,PoW))的共识。另一方面,许可的区块链(permissionedblockchain)数据库提供了一种***,该***可以确保共享共同目标但彼此不完全信任的一组实体(诸如交换资金、货物、信息等的企业)之间的交互动作。
区块链操作任意的可编程逻辑,该可编程逻辑为去中心化存储方案量身定制,并且被称为“智能合约”或“链码”。在一些情况下,可以存在用于管理功能和参数专用的链码,称为***链码。智能合约是可信的分布式应用,其利用区块链数据库的防篡改属性和节点之间被称为背书(endorsement)或背书策略的底层协议。一般而言,区块链交易在递交(commit)给区块链之前通常必须被“背书”,而未被背书的交易则被忽略。典型的背书策略允许链码以背书所必需的对等节点的集合的形式指定交易的背书方。当客户端将交易发送给背书策略中指定的对等方时,执行交易以验证交易。在验证后,交易进入排序阶段,在该阶段中,使用共识协议来产生被分组到块中的背书交易的有序序列。
节点是区块链***的通信实体。“节点”可以执行逻辑功能,从这个意义上说,不同类型的多个节点可以在同一物理服务器上运行。节点被分组在信任域中,并且以各种方式与控制他们的逻辑实体相关联。节点可以包括不同的类型,诸如向背书方(例如,对等方)提交交易调用并向排序服务(例如,排序节点)广播交易提议的客户端或提交客户端节点。另一种类型的节点是对等节点,它可以接收客户端提交的交易,递交交易,并保持区块链交易的分类账的状态和副本。对等方也可以具有背书方的角色,尽管这不是必需的。排序服务节点或排序方是为所有节点运行通信服务并实现交付保证的节点,诸如在递交交易和修改区块链的世界状态时向***中的对等节点中的每个对等节点广播,区块链的世界状态是用于通常包括控制和设置信息的初始区块链交易的另一个名称。
分类账是区块链的所有状态转换的有序的、防篡改的记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书方节点、对等节点等)提交的链码调用(即,交易)产生。交易可以导致资产键值对的集合作为一个或多个操作数(operands)(诸如创建、更新、删除等)被递交给分类帐。分类帐包括区块链(也称为链),用于存储块中不可变的、有序的记录。分类账还包括保持区块链当前状态的状态数据库。每个通道通常有一个分类账。每个对等节点为其所属的每个通道保持分类帐的副本。
链是交易日志,其被构造为哈希链接的块,并且每个块包含N个交易的序列,其中N等于或大于1。块头部包括块的交易的哈希,以及在先块的头部的哈希。这样,分类账上的所有交易都可以被排序并加密地链接在一起。因此,在不破坏哈希链接的情况下,就不可能篡改分类账数据。最近添加的区块链块的哈希表示链上在它之前已经到来的每个交易,这使得可以确保所有对等节点处于一致和可信的状态。该链可以存储在对等节点文件***(即本地、附加存储、云等)上,有效地支持区块链工作负载的仅附加的特性。
不可变分类帐的当前状态表示链交易日志中包括的所有键的最新值(latestvalue)。因为当前状态表示通道已知的最新键值,所以它有时被称为世界状态。链码调用对照(against)分类帐的当前状态数据执行交易。为了使这些链码交互有效,键的最新值可以存储在状态数据库中。状态数据库可以只是到链的交易日志中的索引视图,因此它可以随时从链重新生成。在对等节点启动时和交易被接受之前,状态数据库可以自动被恢复(或者被生成,如果需要的话)。
本文描述和描绘的当前解决方案的一些益处包括用于在区块链网络中的基于机器学习的视频压缩的方法和***。示例性实施例通过扩展数据库的特征,诸如不变性、数字签名和作为单一事实源(single source of truth),解决了时间和信任的问题。示例性实施例为基于区块链的网络中的视频压缩提供了解决方案。基于资产类型和基于智能合约管理资产的规则,区块链网络可以是同质的(homogenous)。
区块链不同于传统数据库,因为区块链不是中央存储,而是去中心化的、不可变的和安全的存储,其中节点必须共享对存储中的记录的更改。区块链中固有的并且有助于实现区块链的一些属性包括但不限于不可变分类账、智能合约、安全性、隐私、去中心化、共识、背书、可访问性等,这些将在本文进一步描述。根据各个方面,由于区块链固有和独特的不可变的问责制(accountability)、安全性、隐私、允许的去中心化、智能合约的可用性、背书和可访问性,实现了用于在区块链网络中的视频压缩***。特别地,区块链分类账数据是不可变的,并且这提供了用于在区块链网络中的基于机器学习的视频压缩的有效方法。此外,在区块链使用加密可以提供安全性并建立信任。智能合约管理资产的状态以完成生命周期。示例区块链是许可去中心化的。因此,每个终端用户(end user)都可以具有自己的分类帐副本用于访问。区块链网络上可以有多个组织(和对等方)。关键组织可以充当背书对等方,以验证智能合约执行结果、读取集和写入集。换句话说,区块链固有特征提供了用于视频压缩的方法的有效实现。
示例实施例的益处之一是,它通过实现用于在基于区块链的***中的基于机器学习的视频压缩的方法来改进计算***的功能。通过本文描述的区块链***,计算***可以通过提供对诸如分布式分类帐、对等方、加密技术、MSP、事件处理等能力的访问来执行用于选择在区块链网络中的最佳视频压缩算法的功能。此外,区块链能够创建商业网络并使任何用户或组织参与进来。因此,区块链不仅仅是一个数据库。区块链具备创建用户和场内/场外(on-board/off-board)组织的商业网络的能力,从而以智能合约的形式协作和执行服务过程。
示例实施例提供了优于传统数据库的许多益处。例如,通过区块链,这些实施例提供了区块链所固有和独特的不可变的问责制、安全性、隐私、允许的去中心化、智能合约的可用性、背书和可访问性。
同时,传统数据库不能用于实现示例实施例,因为它没有将所有各方带到商业网络上,它没有创建可信的协作,并且没有提供数字资产的有效存储。传统数据库不提供防篡改存储,并且不提供存储的数字资产的保存。因此,所提出的用于区块链网络中的基于机器学习的视频压缩的方法不能在传统数据库中实现。
同时,如果要使用传统数据库来实现示例实施例,则示例实施例将遭受不必要的缺点,诸如搜索能力、缺乏安全性和交易速度慢。此外,根本不可能实现用于区块链网络中的视频压缩的自动化方法。
因此,示例实施例提供了针对区块链网络中基于共识的验证后的视频压缩的技术/领域中的问题的特定解决方案。
示例实施例还改变了数据如何存储在区块链的块结构内。例如,数字资产数据可以安全地存储在数据块的某个部分内(即,在头部内、在数据段内或在元数据内)。通过将数字资产数据存储在区块链的数据块内,数字资产数据可以通过块的哈希链接链被附加到不可变的区块链分类账。在一些实施例中,通过使与数字资产相关联的个人数据未与资产一起存储在区块链的传统块结构内,该数据块可以与传统数据块不同。通过移除与数字资产相关联的个人数据,区块链可以提供基于不可变的问责制和安全性的匿名优势。
根据示例性实施例,视频文件的URL可以用作服务实例(例如,矿工区块链节点)的输入。该方法和***可以以去中心化的方式、基于视频的简档快速自动确定最佳压缩算法来压缩用户视频文件。视频压缩可以由区块链中的矿工节点来执行。在一个实施例中,用户可以创建具有以下详情的用于视频压缩的智能合约:
1.要压缩的视频文件的URL;
2.返回响应(即,压缩的视频文件)的最大配给时间;
3.成功压缩视频文件的激励;和
4.成功验证规则。
一旦智能合约在区块链上执行,视频压缩矿工可以尝试求解智能合约以获得奖励。许多矿工可以尝试同时求解同一智能合约。首先在满足成功验证规则(在智能合约中指定)的预设时限中压缩文件的矿工可以赢得游戏并获得激励。因此,每个矿工都可以尝试智能地行动,并且建立自己的智力,以便在配给的时间段内为输入视频发现正确的算法。
根据一个示例性实施例,对于每个视频文件,(多个)矿工可以创建简档向量,该简档向量使用视频文件的参数简档分析(profiling)来捕获视频文件的属性(该属性影响要使用的压缩算法)。注意,可以使用任何类型的视频文件(例如,mpeg、mp4等)。用户视频文件的初始简档分析可以基于各种视频参数(诸如帧的RGB变化和/或每个帧中相似的RGB方向)。视频文件的压缩可以包括视频文件内所有视频帧(即,静止图像)的压缩。为了创建视频文件的简档,可能需要识别构成视频流的特定视频帧。例如,具有许多同质颜色区域的视频帧的序列可以被分类为特定的不同类型。同质区域的总得分S(h)可以被计算为同质像素的总数除以找到这些像素的帧的数量并除以视频文件的帧的总数的总和。例如,PNG或TIFF-LZW压缩可用于具有低S(h)的视频文件。具有很高S(h)的视频文件基本上包括本质上是异质的帧。对于这些文件,可以使用有损压缩算法(例如,JPEG)来显著减小视频文件的大小。在一个实施例中,可以使用其他参数模式来产生简档得分向量,该简档得分向量可以用于选择最合适的视频压缩算法。简档向量可以表示为基于神经网络的N维空间。
根据一个示例性实施例,矿工可以基于简档向量的共同属性对简档向量进行聚类。由于每个聚类都有共同的视觉属性,因此对于聚类中的视频,该聚类具有相似压缩效率的可能性很高。每个聚类也将“知道”该算法,这导致最佳的压缩效率。该信息可以存储在矿工知识库中(例如,在其分类账中)。矿工可以使用引导(bootstrap)阶段(在引导阶段拍摄许多视频,并对视频尝试不同的压缩算法以获得初始知识库)并且使用下面描述的在线阶段来创建知识库。
可以向矿工节点提供输入视频文件,该矿工节点计算视频的简档向量。矿工节点然后得出具有相似简档向量的聚类。然后,矿工节点可以应用与聚类相关联的压缩算法,并且可以返回响应(即,压缩的用户视频文件),以由用户根据智能合约进行验证。压缩算法的输出可以再次用于微调矿工的知识库。这是流程的在线阶段。因此,具有最全面知识库的矿工将轻松赢得比赛。因此,矿工将对建立知识库表现出兴趣,这样他们就可以快速发现(多个)最佳压缩算法并赢得奖励。
根据示例性实施例,一旦完成简档分析,就使用各种压缩算法在区块链网络中开始视频文件压缩。每个参与的矿工节点可以开始用各自的算法压缩视频文件。压缩完成后,每个矿工节点将使用压缩率和所应用的压缩算法的详情来更新其相应的分类帐。在该协议中,区块链用户节点可以相对于相邻的压缩分类帐更新其压缩信息。例如,用户节点A具有20%的压缩率,并且用户节点B具有30%的压缩率。然后,用户节点A将更新其分类帐为30%,连同相对于特定视频文件的压缩算法信息一起。关于最佳压缩的信息可以在整个p2p网络的节点之间共享。因此,所有用户节点可以具有最佳压缩率算法和压缩率信息。
最后,视频文件可以与其简档和合适的压缩算法相链接。这一部分可以基于无监督的机器学习。随着时间的推移,简档分析的准确性变得更高。在某个时间段之后,任何与特定简档匹配的文件都可以获得对压缩在文件中包含的视频的算法的精确建议。
如果矿工节点执行了满足智能合约规则中指定的验证标准的、对文件的成功压缩,则矿工节点可以通知视频的所有者,以开始由智能合约指定的支付过程。验证可以使用任何传统共识来实现。
图1示出了根据示例实施例的用于在区块链网络中使用最有效的算法执行视频压缩的逻辑网络图。
参考图1,示例网络100包括连接到用户节点105的矿工节点102。矿工节点102可以连接到区块链106,该区块链106具有用于存储视频压缩算法和视频文件类型数据109的分类账108。虽然该示例仅详细描述了一个矿工节点102,但是多个这样的节点可以连接到区块链106。应当理解,矿工节点102可以包括附加组件,并且可以移除和/或修改本文描述的一些组件,而不脱离本文公开的矿工节点102的范围。矿工节点102可以是计算设备或服务器计算机等,并且可以包括处理器104,该处理器104可以是基于半导体的微处理器、中央处理单元(central processing unit,CPU)、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、和/或另一硬件设备。尽管描绘了单个处理器104,但是应当理解,矿工节点102可以包括多个处理器、多个核心等,而不脱离矿工节点102***的范围。
矿工节点102还可以包括非暂时性计算机可读介质112,其上可以存储可由处理器104执行的机器可读指令。机器可读指令的示例如114-126所示,并在下面进一步讨论。非暂时性计算机可读介质112的示例可以包括:包含或存储可执行指令的电子、磁、光或其他物理存储设备。例如,非暂时性计算机可读介质112可以是随机存取存储器(Random Accessmemory,RAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、硬盘、光盘或其他类型的存储设备。
处理器104可以获取、解码和执行机器可读指令114,以连接到包括多个用户节点105的区块链网络。如上所述,区块链分类账108可以存储压缩算法和视频文件类型。区块链106网络可以被配置为使用一个或多个智能合约,该一个或多个智能合约管理多个参与的矿工节点的交易。矿工节点102可以向(多个)用户节点105提供压缩的视频文件。
处理器104可以获取、解码和执行机器可读指令116,以读取由多个用户节点105中的用户节点生成的智能合约。智能合约指定用户视频文件的位置。处理器104可以获取、解码和执行机器可读指令118,以从该位置获取用户视频文件。处理器104可以获取、解码和执行机器可读指令120,以基于用户视频文件的属性生成用户视频文件的简档向量。处理器104可以获取、解码和执行机器可读指令122,以确定具有相似简档向量的聚类。处理器104可以获取、解码和执行机器可读指令124,以将与聚类相关联的压缩算法应用于用户视频文件,以生成压缩的用户视频文件。处理器104可以获取、解码和执行机器可读指令126,以将压缩的用户视频文件发送到多个用户节点105中的用户节点以进行验证。
图2A示出了根据示例实施例的区块链架构配置200。参考图2A,区块链架构200可以包括某些区块链元素,例如一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅通过示例来描绘)。这些节点参与许多动作,诸如区块链交易添加和验证过程(共识)。一个或多个区块链节点204-210可以基于背书策略来对交易进行背书,并且可以为架构200中的所有区块链节点提供排序服务。区块链节点可以发起区块链认证,并寻求写入存储在区块链层216中的区块链不可变分类账,该区块链不可变分类账的副本也可以存储在基础物理基础设施214上。区块链配置可以包括一个或多个应用224,其链接到应用编程接口(application programming interface,API)222以访问和执行存储的程序/应用代码220(例如,链码、智能合约等),这些程序/应用代码可以根据参与者寻求的定制配置来创建,并且可以保持他们自己的状态、控制他们自己的资产以及接收外部信息。这可以作为交易被部署,并且经由附加到分布式分类帐被安装在所有区块链节点204-210上。
区块链基础或平台212可以包括区块链数据、服务(例如,加密信任服务、虚拟执行环境等)以及基础物理计算机基础设施的各种层,该基础物理计算机基础设施可用于接收和存储新交易并向寻求访问数据条目的审计员提供访问。区块链层216可以暴露接口,该接口提供对处理程序代码和使用物理基础设施214所必需的虚拟执行环境的访问。加密信任服务218可用于校验交易(诸如资产交换交易)并保持信息私密。
图2A的区块链架构配置可以经由区块链平台212暴露的一个或多个接口和提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和转移数据,并且可以由节点204-210以智能合约和与受智能合约执行影响的条件或其他代码元素相关联的链码的形式执行。作为非限制性示例,可以创建智能合约来执行提醒、更新和/或其他受改变、更新等影响的通知。智能合约本身可以用于识别与授权和访问要求以及分类帐的使用相关联的规则。例如,视频文件信息226可以由包括在区块链层216中的一个或多个处理实体(例如,虚拟机)来处理。结果228可以包括反映用于视频文件的压缩的算法的数据块。物理基础设施214可用于检索本文描述的任何数据或信息。
在链码内,可以经由高级应用和编程语言创建智能合约,然后将其写入到区块链中的一个块。智能合约可以包括可执行代码,该可执行代码通过区块链(例如,区块链对等方的分布式网络)进行注册、存储和/或复制。交易是智能合约代码的执行,该智能合约代码可以响应于满足与智能合约相关联的条件来执行。智能合约的执行可以触发对数字区块链分类账状态的可信的(多个)修改。由智能合约执行引起的对区块链分类账的(多个)修改可以通过一个或多个共识协议在区块链对等方的整个分布式网络中自动复制。
智能合约可以以键值对的格式将数据写入到区块链。此外,智能合约代码可以读取存储在区块链中的值,并在应用操作中使用它们。智能合约代码可以将各种逻辑操作的输出写入到区块链中。该代码可用于在虚拟机或其他计算平台中创建临时数据结构。写入到区块链的数据可以是公开的和/或可以被加密并作为私有数据保持。由智能合约使用/生成的临时数据由所提供的执行环境在存储器中持有,然后一旦识别出区块链所需的数据,就被删除。
链码可以包括智能合约的代码解释以及附加特征。如本文所述,链码可以是部署在计算网络上的程序代码,在计算网络中,链码由链验证器在共识过程期间一起执行和验证。链码接收哈希,并从区块链检索与使用先前存储的特征提取器创建的数据模板相关联的哈希。如果哈希标识符的哈希和从存储的标识符模板数据创建的哈希匹配,则链码发送对所请求的服务的授权密钥。链码可以向区块链写入与加密细节相关联的数据。在图2A中,用户视频文件的压缩可以包括智能合约的执行。一个功能可以是在用于记录压缩算法和视频文件的类型的分类账上递交与智能合约的执行相关的交易,该交易可以被提供给节点204-210中的一个或多个。
图2B示出了根据示例实施例的在区块链的节点之间的交易流程250的示例。参考图2B,交易流程可以包括由应用客户端节点260向背书对等节点281发送交易提议291。背书对等方281可以校验客户端签名并执行链码功能来发起交易。输出可以包括链码结果、在链码中读取的键/值版本的集合(读取集)和在链码中写入的键/值的集合(写入集)。如果被批准,提议响应292连同背书签名一起被发送回客户端260。客户端260将背书组装成交易有效载荷293,并将其广播给排序服务节点284。排序服务节点284然后将排序的交易作为块传送到通道上的所有对等方281-283。在提交给区块链之前,每个对等方281-283可以验证交易。例如,对等方可以检查背书策略,以确保指定的对等方的正确配给已经对结果签名,并且对照交易有效载荷293认证了签名。
再次参考图2B,客户端节点260通过构建请求并将其发送到作为背书方的对等节点281来发起交易291。客户端260可以包括利用支持的软件开发工具包(softwaredevelopment kit,SDK)(诸如NODE、JAVA、PYTHON等)的应用,其利用可用的API来生成交易提议。提议是调用链码功能以便可以读取数据和/或将其写入到分类帐(即,为资产写入新的键值对)的请求。SDK可以作为垫片(shim),以将交易提议打包成适当架构的格式(例如,通过远程过程调用(remote procedure call,RPC)的协议缓冲),并利用客户端的加密凭证为交易提议生成唯一的签名。
作为响应,背书对等节点281可以校验(a)良好地形成了交易提议、(b)交易在过去还没有提交(重放攻击保护)、(c)签名有效、以及(d)提交者(在该示例中是客户端260)被适当授权在该通道上执行所提议的操作。背书对等节点281可以将交易提议输入作为调用的链码功能的参数。然后对照当前状态数据库执行链码,以产生包括响应值、读取集和写入集的交易结果。但是,此时不对分类帐进行任何更新。在292中,值的集合连同背书对等节点281的签名作为提议响应292被传递回客户端260的SDK,客户端260解析有效载荷以供应用消费。
作为响应,客户端260的应用检查/校验背书对等方的签名,并比较提议响应以确定提议响应是否相同。如果链码仅查询分类帐,应用将检查查询响应,并且通常不会将交易提交给排序节点服务284。如果客户端应用意图将交易提交给排序节点服务284以更新分类帐,则该应用在提交之前确定是否已经满足指定的背书策略(即,交易所需的所有对等节点是否对该交易进行了背书)。这里,客户端可以只包括交易的多方之一。在这种情况下,每个客户端可能都有自己的背书节点,并且每个背书节点将需要对该交易进行背书。该架构使得即使应用选择不检查响应或以其他方式转发未背书的交易,背书策略仍将由对等方实施并在递交验证阶段得到支持。
在成功检查之后,在步骤293中,客户端260将背书组装成交易,并且在交易消息内向排序节点284广播交易提议和响应。该交易可能包含读取/写入集、背书对等方的签名、和通道ID。排序节点284不需要检查交易的全部内容来执行其操作。相反,排序节点284可以简单地从网络中的所有通道接收交易,按通道按时间顺序对它们排序,并创建每个通道的交易块。
交易块在通道上从排序节点284传送到所有对等节点281-283。验证块内的交易294,以确保满足任何背书策略,并确保自交易执行生成读取集以来,读取集变量的分类帐状态没有改变。块中的交易被标记为有效或无效。此外,在步骤295中,每个对等节点281-283将块附加到通道的链,并且对于每个有效交易,写入集被递交到当前状态数据库。发出一个事件,以通知客户端应用交易(调用)已经不可更改地附加到链,以及通知交易是经过验证的还是未经过验证的。
图3示出了许可的区块链网络300的示例,其特征在于分布式、去中心化的对等方架构和管理用户角色和许可的证书颁发机构318。在该示例中,区块链用户302可以向许可的区块链网络310提交交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过REST API等来发布。可信的商业网络可以提供对监管***(诸如审计员(例如,美国股票市场中的证券交易委员会))314的访问。同时,节点308的区块链网络运营商***管理成员许可,诸如将监管***310注册为“审计员”,并且将区块链用户302注册为“客户端”。审计员可以只限于查询分类帐,而客户端可以被授权部署、调用和查询某些类型的链码。
区块链开发者***316写入链码和客户端侧应用。区块链开发者***316可以通过REST接口将链码直接部署到网络。为了在链码中包括来自传统数据源330的凭证,开发者***316可以使用带外(out-of-band)连接来访问数据。在该示例中,区块链用户302通过对等节点312连接到网络。在进行任何交易之前,对等节点312从证书颁发机构318检索用户的注册和交易证书。在一些情况下,区块链用户必须拥有这些数字证书,以便在许可的区块链网络310上进行交易。同时,试图驱动链码的用户可能需要在传统数据源330上校验他们的凭证。为了确认用户的授权,链码可以通过传统的处理平台320使用到该数据的带外连接。
图4A示出了根据示例实施例的在区块链网络中压缩视频文件的示例方法的流程图400。参考图4A,方法400可以包括下面描述的步骤中的一个或多个。
图4A示出了由矿工节点102(见图1)执行的示例方法的流程图。应当理解,图4A中描绘的方法400可以包括附加操作,并且其中描述的一些操作可以被移除和/或修改,而不脱离方法400的范围。出于说明的目的,方法400的描述也参考图1中描绘的特征进行。特别地,矿工节点102的处理器104可以执行方法400中包括的操作中的一些或全部。
参考图4A,在块412,处理器104可以连接到包括多个用户节点的区块链网络。在框414,处理器104可以读取由多个用户节点中的用户节点生成的智能合约。智能合约可以指定用户视频文件的位置。在框416,处理器104可以从该位置获取用户视频文件。在框418,处理器104可以基于用户视频文件的属性生成用户视频文件的简档向量。在框420,处理器104可以确定具有相似简档向量的聚类。在框422,处理器104可以将与聚类相关联的压缩算法应用于用户视频文件,以生成压缩的用户视频文件。在框424,处理器104可以将压缩的用户视频文件发送到多个用户节点中的用户节点以进行验证。
图4B示出了根据示例实施例的在区块链网络中压缩视频文件的示例方法的流程图450。参考图4B,方法450还可以包括以下步骤中的一个或多个。在框452,处理器104可以基于由简档向量定义的用户视频文件的参数简档分析来确定视频压缩算法。在块454,处理器104可以将压缩算法连同视频文件的类型一起存储在矿工节点的分类账中,以供将来使用。在框456,处理器104可以检测基于智能合约中指定的验证规则执行的、对压缩的用户视频文件的成功验证。在框458,在检测到该成功验证时,处理器104可以从多个用户节点中的用户节点请求在智能合约中指定的支付。在框460,处理器104可以在智能合约中指定的最大配给时间内生成压缩的用户视频文件。在框462,处理器104可以基于用户视频文件的多个视频帧的同质区域的总得分来生成用户视频文件的简档向量。
图5A示出了根据示例实施例的包括被配置为执行各种操作的物理基础设施510的示例***500。参考图5A,物理基础设施510包括模块512和模块514。模块514包括区块链520和智能合约530(其可以驻留在区块链520上),区块链520和智能合约530可以执行任何示例实施例中包括的任何操作步骤508(在模块512中)。步骤/操作508可以包括所描述或描绘的一个或多个实施例,并且可以表示向一个或多个智能合约530和/或区块链520写入或从一个或多个智能合约530和/或区块链520读取的输出或写入信息。物理基础设施510、模块512和模块514可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块512和模块514可以是同一模块。
图5B示出了根据示例实施例的被配置为执行各种操作的示例***540。参考图5B,***540包括模块512和模块514。模块514包括区块链520和智能合约530(其可以驻留在区块链520上),区块链520和智能合约530可以执行任何示例实施例中包括的任何操作步骤508(在模块512中)。步骤/操作508可以包括所描述或描绘的一个或多个实施例,并且可以表示向一个或多个智能合约530和/或区块链520写入或从一个或多个智能合约530和/或区块链520读取的输出或写入信息。物理基础设施510、模块512和模块514可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块512和模块514可以是同一模块。
图5C示出了根据示例实施例的被配置为在区块链上实施智能合约条款的合约方和中介服务器之间的示例智能合约配置。参考图5C,配置550可以表示通信会话、资产转移会话或由明确标识一个或多个用户设备552和/或556的智能合约530驱动的过程或进程。智能合约执行的执行、操作和结果可以由服务器554管理。智能合约530的内容可能需要作为智能合约交易方的实体中的一个或多个实体552和556的数字签名。智能合约执行的结果可以作为区块链交易写入区块链520。智能合约530驻留在区块链520上,区块链520可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图5D示出了根据示例实施例的用于访问区块链的逻辑和数据的公共接口560。参考图5D的示例,应用编程接口(API)网关562提供了用于访问区块链逻辑(例如,智能合约530或其他链码)和数据(例如,分布式分类帐等)的公共接口。在该示例中,API网关562是用于通过将一个或多个实体552和556连接到区块链对等方(即,服务器554)来在区块链上执行交易(调用、查询等)的公共接口。这里,服务器554是持有世界状态和分布式分类帐的副本的区块链网络对等组件,从而允许客户端552和556查询关于世界状态的数据,并将交易提交到区块链网络,在区块链网络,根据智能合约530和背书策略,背书对等方将运行智能合约530。
上述实施例可以用硬件、用由处理器执行的计算机程序、用固件或用以上的组合来实现。计算机程序可以体现在计算机可读介质上,诸如存储介质。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦可编程只读存储器(“EPROM”)、电可擦可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移动磁盘、光盘只读存储器(“CD-ROM”)或本领域已知的任何其他形式的存储介质中。
示例性存储介质可以耦合到处理器,使得处理器可以从存储介质读取信息和向存储介质写入信息。或者,存储介质可以集成到处理器。处理器和存储介质可以驻留在专用集成电路(“ASIC”)中。可选地,处理器和存储介质可以作为分立组件驻留。例如,图6示出了示例计算机***架构600,其可以表示任何上述组件或集成在任何上述组件中,等等。
图6A示出了根据示例实施例的将新的块添加到分布式分类账630的过程600,并且图6B示出了根据示例实施例的区块链的块结构650的内容。参考图6A,客户端(未示出)可以向区块链节点621、622和/或623提交交易。客户端可以是从任何来源接收到的指令,以在区块链630上制定活动。例如,客户端可以是代表请求方(诸如设备、个人或实体)行动的应用,以提议用于区块链的交易。多个区块链对等方(例如,区块链节点621、622和623)可以保持分布式分类账630的副本和区块链网络的状态。不同类型的区块链节点/对等方可以存在于区块链网络中,该区块链网络包括模拟和背书由客户端提议的交易的背书对等方和校验背书、验证交易并向分布式分类账630递交交易的递交对等方。在该示例中,区块链节点621、622和623可以执行背书方节点、递交方节点、或两者的角色。
分布式分类帐630包括以块形式存储不可变的有序记录的区块链632,以及保持区块链632的当前状态的状态数据库634(当前世界状态)。每个通道可以存在一个分布式分类帐630,并且每个对等方保持其自己的、其所属的每个通道的分布式分类帐630的副本。区块链632是交易日志,被构造为哈希链接块,其中每个块包含N个交易的序列。块可以包括各种组件,诸如图6B所示。块的链接(由图6A中的箭头所示)可以通过在当前块的块头部内添加在先块的头部的哈希来生成。以这种方式,区块链632上的所有交易被排序并加密地链接在一起,以防止在不破坏哈希链接的情况下篡改区块链数据。此外,由于链接,区块链632中的最新块表示在它之前到来的每个交易。区块链632可以存储在对等文件***(本地或附加存储)上,该对等文件***支持仅附加的区块链工作负载。
区块链632的当前状态和分布式分类账632可以存储在状态数据库634中。这里,当前状态数据表示区块链632的链交易日志中包括的所有键的最新值。链码调用对照状态数据库634中的当前状态执行交易。为了使这些链码交互极其有效,所有键的最新值存储在状态数据库634中。状态数据库634可以包括到区块链632的交易日志中的索引视图,因此它可以随时从链重新生成。状态数据库634可以在交易被接受之前,在对等方启动时自动被恢复(或者被生成,如果需要的话)。
背书节点从客户端接收交易,并基于模拟结果对交易进行背书。背书节点持有模拟交易提议的智能合约。当背书节点对交易进行背书时,背书节点创建交易背书,该交易背书是从背书节点到客户端应用的签名响应,该签名响应指示模拟的交易的背书。对交易进行背书的方法取决于可以在链码内指定的背书策略。背书策略的示例是“大多数背书对等方必须对交易进行背书”。不同的通道具有不同的背书策略。被背书的交易由客户端应用转发给排序服务610。
排序服务610接受被背书的交易,将它们排序成块,并将块传送到递交对等方。例如,当达到交易阈值、定时器超时或其他条件时,排序服务610可以发起新的块。在图6A的示例中,区块链节点622是已经接收到用于存储在区块链630上的新数据块650的提交对等方。
排序服务610由排序方(orderer)的聚类组成。排序服务610不处理交易、智能合约或保持共享分类账。相反,排序服务610可以接受被背书的交易,并指定这些交易被递交给分布式分类帐630的顺序。区块链网络的架构可以被设计,使得“排序”的特定实现(例如,Solo、Kafka、BFT等)成为可插拔组件。
交易以一致的顺序被写入到分布式分类帐630。建立交易的顺序,以确保当状态数据库634的更新被递交给网络时,它们是有效的。与通过解决密码难题或采矿(mining)进行排序的加密货币区块链***(例如,比特币等)不同,在该示例中,分布式分类帐630的各方可以选择最适合该网络的排序机制。
当排序服务610初始化新的块650时,新的块650可以被广播到递交对等方(例如,区块链节点621、622和623)。作为响应,每个递交对等方通过检查以确保读取集和写入集仍然匹配状态数据库634中的当前世界状态来验证新的块650内的交易。具体地,递交对等方可以确定当背书方模拟交易时存在的读取数据是否与状态数据库634中的当前世界状态相同。当递交对等方验证交易时,交易被写入到分布式分类帐630上的区块链632,并且状态数据库634用来自读取-写入集的写入数据更新。如果交易失败,也就是说,如果递交对等方发现读取-写入集与状态数据库634中的当前世界状态不匹配,则被排序到块中的交易仍将被包括在该块中,但是它将被标记为无效,并且状态数据库634将不会被更新。
参考图6B,存储在分布式分类帐630的区块链632上的块650(也称为数据块)可以包括多个数据段,诸如块头部660、块数据670和块元数据680。应当理解,各种描绘的块及其内容,诸如块650及其内容。图6B中示出的仅仅是为了示例的目的,并不意味着限制示例实施例的范围。在一些情况下,块头部660和块元数据680都可以小于存储交易数据的块数据670,然而,这不是要求。块650可以在块数据670内存储N个交易(例如,100个、500个、1000个、2000个、3000个等)的交易信息。块650还可以在块头部660内包括到先前块(例如,在图6A的区块链632上)的链接。具体而言,块头部660可以包括先前块的头部的哈希。块头部660还可以包括唯一的块编号、当前块650的块数据670的哈希等。块650的块编号可以是唯一的,并且从零开始以递增/顺次的顺序分配。区块链中的第一个区块可以被称为起源块,其包括关于区块链、其成员、存储在其中的数据等的信息。
块数据670可以存储记录在块650内的每个交易的交易信息。例如,交易数据可以包括以下中的一个或多个:交易类型、版本、时间戳、分布式分类帐630的通道ID、交易ID、时段(epoch)、有效载荷可见性、链码路径(部署tx)、链码名称、链码版本、输入(链码和功能)、诸如公钥和证书的客户端(创建者)身份、客户端签名、背书者的身份、背书者签名、提议哈希、链码事件、响应状态、名称空间、读取集(由交易读取的键的列表和版本,等等)、写入集(键的列表和值,等等)、开始键、结束键、键列表、Merkel树查询摘要,等等。可以为N个交易中的每一个存储交易数据。
在一些实施例中,块数据670还可以存储数据672,数据672将附加信息添加到区块链632中的块的哈希链接链中。因此,数据672可以存储在分布式分类账630上的不可变的块日志中。存储这样的数据672的一些益处反映在本文公开和描绘的各种实施例中。
块元数据680可以存储多个元数据字段(例如,作为字节数组,等等)。元数据字段可以包括关于块创建的签名、对最后配置块的引用、标识块内有效和无效交易的交易过滤器、对块进行排序的排序服务的最后偏移持久性等。签名、最后配置块和排序方元数据可以由排序服务610添加。同时,块的递交者(诸如区块链节点622)可以基于背书策略、读取/写入集的校验等来添加有效性/无效性信息。交易过滤器可以包括大小等于块数据670中交易数量的字节数组和标识交易是否有效/无效的验证码。
图7并不意味着对本文描述的本申请的实施例的使用或功能范围有任何限制。无论如何,计算节点700能够实现和/或执行上文阐述的任何功能。
在计算节点700中,存在计算机***/服务器702,其可与许多其他通用或专用计算***环境或配置一起操作。适用于与计算机***/服务器702一起使用的众所周知的计算***、环境和/或配置的示例包括但不限于:个人计算机***、服务器计算机***、瘦客户机、胖客户机、手持或膝上型设备、多处理器***、基于微处理器的***、机顶盒、可编程消费电子产品、网络PC、小型计算机***、大型计算机***以及包括任何上述***或设备的分布式云计算环境等。
计算机***/服务器702可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般上下文中描述。通常,程序模块可以包括例程、程序、对象、组件、逻辑、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。计算机***/服务器702可以在分布式云计算环境中实践,在分布式云计算环境中,任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机***存储介质两者中。
如图7所示,计算机***/服务器702以通用计算设备的形式表现。计算机***/服务器702的组件可以包括但不限于:一个或者多个处理器或者处理单元704,***存储器706,连接不同***组件(包括***存储器706和处理单元704)的总线。
总线表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
计算机***/服务器702典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机***/服务器702访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
在一个实施例中,***存储器706实现其它图的流程图。***存储器706可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)710和/或高速缓存存储器712。计算机***/服务器702可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***714可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线相连。存储器806可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块718的程序/实用工具716,可以存储在例如存储器28中,这样的程序模块718包括——但不限于——操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块718通常执行本发明所描述的申请中的各实施例的功能和/或方法。
如本领域技术人员将理解的,本申请的各方面可以体现为***、方法或计算机程序产品。因此,本申请的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或结合软件和硬件方面的实施例的形式,其在本文通常都被称为“电路”、“模块”或“***”。此外,本申请的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质上包含有计算机可读程序代码。
计算机***/服务器702也可以与一个或多个外部设备720(例如键盘、指向设备、显示器722等)通信,还可与一个或者多个使得用户能与该计算机***/服务器702交互的设备通信,和/或与使得该计算机***/服务器702能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过I/O接口724进行。并且,计算机***/服务器702还可以通过网络适配器726与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器726通过总线与计算机***/服务器702的其它模块通信。应当明白,尽管图中未示出,可以结合计算机***/服务器702使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
虽然***、方法和非暂时性计算机可读介质中的至少一个的示例性实施例已经在附图中示出并在前面的详细描述中描述,但是应当理解,本申请不限于所公开的实施例,而是能够进行如所附的权利要求所阐述和定义的多种重新布置、修改和替换。例如,各种附图的***的能力可以由本文描述的模块或组件中的一个或多个来执行,或者以分布式架构来执行,并且可以包括发送器、接收器、或发送机和接收机对。例如,由单独的模块执行的全部或部分功能可以由这些模块中的一个或多个来执行。此外,本文描述的功能可以在模块或组件内部或外部、在各种时间执行并且与各种事件相关地执行。此外,在各种模块之间发送的信息可以经由以下各项中的至少一个来在模块之间发送:数据网络、因特网、语音网络、因特网协议网络、无线设备、有线设备和/或经由多个协议。此外,可以直接和/或经由一个或多个其他模块发送或接收由任何模块发送或接收的消息。
本领域技术人员将会理解,“***”可以体现为个人计算机、服务器、控制台、个人数字助理(personal digital assistant,PDA)、蜂窝电话、平板计算设备、智能电话或任何其他合适的计算设备、或设备的组合。将上述功能呈现为由“***”执行并非旨在以任何方式限制本申请的范围,而是旨在提供许多实施例中的一个示例。实际上,可以以与计算技术一致的本地化和分布式形式实现本文公开的方法、***和装置。
应该注意的是,本说明书中描述的一些***特征已经被呈现为模块,以便更具体地强调它们的实现独立性。例如,模块可以被实现为硬件电路,包括定制的超大规模集成(very large-scale integration,VLSI)电路或门阵列、现成的半导体(诸如逻辑芯片、晶体管、或其他分立组件)。模块也可以在可编程硬件设备(诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等)中实现。
模块也可以至少部分地在软件中实现,以便由各种类型的处理器执行。可执行代码的被标识单元可以例如包括计算机指令的一个或多个物理或逻辑块,该一个或多个物理或逻辑块可以例如被组织为对象、过程或功能。然而,被标识的模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令在逻辑上结合在一起时,包括该模块并实现该模块的所述目的。此外,模块可以存储在计算机可读介质上,该介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(RAM)、磁带或用于存储数据的任何其他这样的介质。
实际上,可执行代码的模块可以是单个指令或多个指令,甚至可以分布在几个不同的代码段、分布在不同的程序当中以及分布在几个存储器设备当中。类似地,操作数据在本文可以在模块中被标识和示出,并且可以以任何合适的形式来体现,并且可以在任何合适类型的数据结构中组织。操作数据可以作为单个数据集来收集,或者可以分布在不同的位置(包括分布不同的存储设备上),并且可以至少部分地仅作为***或网络上的电子信号存在。
很容易理解,如本文附图中一般描述和示出的,本申请的组件可以以多种不同的配置来布置和设计。因此,实施例的详细描述并不旨在限制本申请所要求保护的范围,而仅仅是本申请所选实施例的代表。
本领域普通技术人员将容易理解,以上可以用不同顺序的步骤和/或用不同于所公开的这些配置的配置中的硬件元件来实现。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员来说,某些修改、变化和替代结构将是显而易见的。
虽然已经描述了本申请的优选实施例,但是应当理解,所描述的实施例仅是说明性的,并且当考虑到对其的全范围的等同物和修改(例如,协议、硬件设备、软件平台等)时,本申请的范围仅由所附权利要求来限定。

Claims (16)

1.一种***,包括:
矿工节点的处理器;
存储机器可读指令的存储器,当所述机器可读指令被所述处理器执行时,使得所述处理器:
连接到包括多个用户节点的区块链网络;
读取由所述多个用户节点中的用户节点生成的智能合约,其中所述智能合约指定用户视频文件的位置;
从所述位置获取所述用户视频文件;
基于所述用户视频文件的属性生成所述用户视频文件的简档向量;
确定具有相似简档向量的聚类;
将与所述聚类相关联的压缩算法应用于所述用户视频文件,以生成压缩的用户视频文件;和
将所述压缩的用户视频文件发送到所述多个用户节点中的用户节点以进行验证。
2.根据权利要求1所述的***,其中所述指令还使得所述处理器基于由所述简档向量定义的所述用户视频文件的参数简档分析来确定视频压缩算法。
3.根据权利要求1所述的***,其中所述指令还使得所述处理器将所述压缩算法连同视频文件的类型一起存储在所述矿工节点的分类账中以供将来使用。
4.根据权利要求1所述的***,其中所述指令还使得所述处理器检测基于所述智能合约中指定的验证规则执行的、对所述压缩的用户视频文件的成功验证。
5.根据权利要求4所述的***,其中所述指令还使得所述处理器在检测到所述成功验证时,从所述多个用户节点中的用户节点请求在所述智能合约中指定的支付。
6.根据权利要求1所述的***,其中所述指令还使得所述处理器在所述智能合约中指定的最大配给时间内生成所述压缩的用户视频文件。
7.根据权利要求1所述的***,其中所述指令还使得所述处理器基于所述用户视频文件的多个视频帧的同质区域的总得分来生成所述用户视频文件的简档向量。
8.一种方法,包括:
由矿工节点连接到包括多个用户节点的区块链网络;
由所述矿工节点读取由所述多个用户节点中的用户节点生成的智能合约,其中所述智能合约指定用户视频文件的位置;
由所述矿工节点从所述位置获取所述用户视频文件;
由所述矿工节点基于所述用户视频文件的属性生成所述用户视频文件的简档向量;
由所述矿工节点确定具有相似简档向量的聚类;
由所述矿工节点将与所述聚类相关联的压缩算法应用于所述用户视频文件,以生成压缩的用户视频文件;和
由所述矿工节点将所述压缩的用户视频文件发送到所述多个用户节点中的用户节点以进行验证。
9.根据权利要求8所述的方法,还包括基于由所述简档向量定义的所述用户视频文件的参数简档分析来确定视频压缩算法。
10.根据权利要求8所述的方法,还包括将所述压缩算法连同视频文件的类型一起存储在所述矿工节点的分类账中以供将来使用。
11.根据权利要求8所述的方法,还包括检测基于所述智能合约中指定的验证规则执行的、对所述压缩的用户视频文件的成功验证。
12.根据权利要求11所述的方法,还包括在检测到所述成功验证时,从所述多个用户节点中的用户节点请求在所述智能合约中指定的支付。
13.根据权利要求8所述的方法,还包括在所述智能合约中指定的最大配给时间内生成所述压缩的用户视频文件。
14.根据权利要求8所述的方法,还包括基于所述用户视频文件的多个视频帧的同质区域的总得分来生成所述用户视频文件的简档向量。
15.一种包括指令的计算机可读介质,当所述指令被处理器读取时,使得所述处理器执行根据权利要求8至14中任一项所述的方法的步骤:
连接到包括多个用户节点的区块链网络;
读取由所述多个用户节点中的用户节点生成的智能合约,其中所述智能合约指定用户视频文件的位置;
从所述位置获所述取用户视频文件;
基于所述用户视频文件的属性生成所述用户视频文件的简档向量;
确定具有相似简档向量的聚类;
将与所述聚类相关联的压缩算法应用于所述用户视频文件,以生成压缩的用户视频文件;和
将所述压缩的用户视频文件发送到所述多个用户节点中的用户节点以进行验证。
16.一种***,包括用于执行根据权利要求8至14中任一项所述的方法的步骤的装置。
CN202010008731.6A 2019-01-07 2020-01-06 基于机器学习的视频压缩 Active CN111414412B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/240,984 US11165559B2 (en) 2019-01-07 2019-01-07 Machine learning based video compression
US16/240,984 2019-01-07

Publications (2)

Publication Number Publication Date
CN111414412A true CN111414412A (zh) 2020-07-14
CN111414412B CN111414412B (zh) 2023-04-07

Family

ID=71404623

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010008731.6A Active CN111414412B (zh) 2019-01-07 2020-01-06 基于机器学习的视频压缩

Country Status (2)

Country Link
US (1) US11165559B2 (zh)
CN (1) CN111414412B (zh)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5508733A (en) 1988-10-17 1996-04-16 Kassatly; L. Samuel A. Method and apparatus for selectively receiving and storing a plurality of video signals
DE60136279D1 (de) * 2000-08-14 2008-12-04 Snap On Tools Corp Selbstkalibrierendes 3D Messystem zur Ausrichtung von Kraftfahrzeugrädern
US7321623B2 (en) 2002-10-01 2008-01-22 Avocent Corporation Video compression system
US8964830B2 (en) 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
KR101683409B1 (ko) 2012-10-10 2016-12-06 지티이 코포레이션 미디어 전송 및 저장을 위한 비디오 주사 포맷의 캡슐화
US9563670B2 (en) 2013-03-14 2017-02-07 Leidos, Inc. Data analytics system
US10628578B2 (en) 2013-03-15 2020-04-21 Imagine Communications Corp. Systems and methods for determining trust levels for computing components using blockchain
ES2908186T3 (es) * 2017-06-06 2022-04-28 Linius Aust Pty Ltd Sistemas y métodos de consenso de transacciones de contenido
CN107820085B (zh) 2017-10-31 2021-02-26 杭州电子科技大学 一种基于深度学习的提高视频压缩编码效率的方法
EP3710974B1 (en) * 2017-11-17 2023-07-26 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for detecting digital content tampering
CN108681572B (zh) * 2018-05-04 2020-12-29 蔷薇大树科技有限公司 区块链的数据存储方法、装置及电子设备
CN108563796A (zh) * 2018-05-04 2018-09-21 蔷薇信息技术有限公司 区块链的数据压缩处理方法、装置及电子设备
US10095888B1 (en) * 2018-06-04 2018-10-09 Capital One Services, Llc Secure decentralized system utilizing smart contracts, a blockchain, and/or a distributed file system
US11159327B2 (en) * 2018-08-06 2021-10-26 Tyson York Winarski Blockchain augmentation of a material exchange format MXF file
US11212076B2 (en) * 2018-09-19 2021-12-28 International Business Machines Corporation Distributed platform for computation and trusted validation

Also Published As

Publication number Publication date
US20200220710A1 (en) 2020-07-09
CN111414412B (zh) 2023-04-07
US11165559B2 (en) 2021-11-02

Similar Documents

Publication Publication Date Title
US11108544B2 (en) On-chain governance of blockchain
US11095433B2 (en) On-chain governance of blockchain
US11165826B2 (en) On-chain governance of blockchain
US10671308B2 (en) Private and fault-tolerant storage of segmented data
US10756884B2 (en) On-chain governance of blockchain
US11924323B2 (en) On-chain governance of blockchain
CN111488393B (zh) 虚拟区块链
CN111144881A (zh) 对资产转移数据的选择性访问
CN110674128B (zh) 区块链的链上治理
US10833845B2 (en) Guarantee of ledger immutability
CN111881129A (zh) 用于数据库的索引管理
US11568402B2 (en) Decentralized out-of-band accelerated blockchain transaction processing
US10819523B2 (en) Guarantee of ledger immutability
CN112840617A (zh) 存储区块链资源的区块链通知板
US20200151266A1 (en) Data processing using external information
US11048593B2 (en) Data aggregation node for blockchain rollup
CN111949651A (zh) 追踪数据传输
US11138188B2 (en) Performance optimization
CN111798233A (zh) 令牌的链接
CN112035291A (zh) 快照恢复
CN111831740A (zh) 对等体的同步
CN111698198B (zh) 秘密生成和份额分发
CN112084186A (zh) 拆分和合并存储
CN111797426B (zh) 一种用于去信任通知服务的方法和***
CN112036876A (zh) 基于元数据的背书

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant