WO2008052450A1 - Procédé et système permettant de transmettre un contenu partagé, terminal de contenu associé - Google Patents

Procédé et système permettant de transmettre un contenu partagé, terminal de contenu associé Download PDF

Info

Publication number
WO2008052450A1
WO2008052450A1 PCT/CN2007/070481 CN2007070481W WO2008052450A1 WO 2008052450 A1 WO2008052450 A1 WO 2008052450A1 CN 2007070481 W CN2007070481 W CN 2007070481W WO 2008052450 A1 WO2008052450 A1 WO 2008052450A1
Authority
WO
WIPO (PCT)
Prior art keywords
content
block
coefficient vector
module
blocks
Prior art date
Application number
PCT/CN2007/070481
Other languages
English (en)
French (fr)
Inventor
Tieying Wang
Original Assignee
Huawei Technologies Co., Ltd.
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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority to EP07800957.8A priority Critical patent/EP2081319B1/en
Publication of WO2008052450A1 publication Critical patent/WO2008052450A1/zh
Priority to US12/430,611 priority patent/US8055798B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Definitions

  • the present invention relates to the field of content sharing technologies, and in particular, to a shared content transmission method and system, and a content terminal. Background of the invention
  • Peer-to-peer is the technology driver of the next-generation service. While chasing new services, it also hopes to improve the technical performance of P2P applications under the constraints of limited hardware resources.
  • the block processing is performed on some large shared content, and the terminal can obtain the content block according to the needs of the user.
  • the partitioning of the original content may be divided according to the size of the content, or may be divided according to the transmission timing of the content, and the latter is widely used in the content partitioning of the streaming media.
  • the meta information of the content block is simultaneously transmitted to the content receiving end, and the meta information may be location information of the content block in the entire content, and the content receiving end is After receiving enough content blocks, each content block can be arranged according to the location information of each content block to be restored to the original content.
  • Figure 1 is a schematic diagram of the existing shared content transmission process. As shown in Figure 1, the specific process is as follows:
  • the content source divides the original content into n blocks according to the size of the original content.
  • Each content block is: Bl, B2 Bn.
  • the content source side linearly combines the m n-dimensional coefficient vectors with n content blocks. Obtain m linear coding blocks: Cl, C2 Cm.
  • This step can be expressed as follows: c 2
  • A is a coefficient matrix composed of m n-dimensional coefficient vectors, and any n n-dimensional coefficient vectors are linearly independent.
  • the content receiving end sends a download content request carrying the content identifier to the content sending end.
  • the content sender in this step may be the content source, or may be a content terminal that has been downloaded from the content source or other content sender to the encoding block.
  • the content sending end After receiving the download content request, the content sending end sends the coefficient vector corresponding to the content identifier carried by the request to the content receiving end.
  • the content receiving end compares the coefficient vector sent by the content sending end with the coefficient vector corresponding to the content identifier that has been downloaded by itself.
  • the content receiving end downloads the corresponding coded block from the content sending end according to the coefficient vector saved by the content sending end and not yet downloaded by the content sending end.
  • the content sending end determines that it has not yet The coding block corresponding to the coefficient vector a is downloaded, and the coding block corresponding to the coefficient vector a can be downloaded from the content transmitting end.
  • the structure of the coding block downloaded by the content receiving end from the content source includes: a block attribute and a block data, wherein the block attribute includes: a content identifier, a coefficient vector, a block size, and a block check value.
  • the content receiving end determines that it has downloaded n coding blocks, according to the n coding blocks and Corresponding n n-dimensional coefficient vectors are constructed, and an n-ary linear equations are constructed, and the content blocks of n original contents are obtained by solving the system of equations.
  • the content receiving end obtains the original content according to the n original content blocks; meanwhile, the content receiving end shares the coded block downloaded from the content sending end.
  • the disadvantages of the prior art are as follows: 1.
  • the content receiving end queries the content transmitting end for the required encoding block, and when downloading the encoded block data from the content transmitting end, the content The transmitting end needs to transmit the coefficient vector corresponding to the coding block to the content receiving end.
  • the coefficient vector occupies more bandwidth resources in the transmission process.
  • the coefficient vector of the content transmitting end needs to be compared with the coefficient vector that has been downloaded by itself to determine the coding block that needs to be downloaded from the content transmitting end, when the coefficient vector
  • the dimension is high, it takes a long time to compare, increasing the length of time to obtain the original content, and reducing the sharing speed.
  • the combination of the coding block and the original content block does not have the linear coding property. Therefore, the original content block cannot participate in the sharing, and the content receiving end must retain the original content and the coding block after restoring the original content, which wastes a lot of Space resources.
  • the invention provides a shared content transmission method and system and a content terminal to save bandwidth resources and improve content sharing efficiency.
  • the content source mentioned in the present invention refers to a content terminal that performs block and linear encoding on the original content; the content transmitting end in the present invention is opposite to the content receiving end.
  • the content receiving end has a linear encoding block of the original content, and provides a content terminal for encoding the block download to the content receiving end, and the content source end can be a content transmitting end; It refers to a content terminal that downloads its own required coding block from the content sender.
  • a shared content transmission method including:
  • a coefficient vector construction rule corresponding to the shared content is configured in advance on each content terminal, and each coefficient vector has a respective coefficient vector identifier
  • the content source blocks the original content, and constructs a coefficient vector corresponding to each original content block according to the coefficient vector construction rule, and linearly combines each original content block with a corresponding coefficient vector to obtain each coding block, each coding block.
  • the identifier is the same as the corresponding coefficient vector identifier; the content receiving end determines that the encoding block is to be downloaded from the content source end, and downloads the encoding block from the content source end according to the identifier of the encoding block that the content source end has saved but does not save itself.
  • a shared content transmission system includes: a content source end and a content receiving end, wherein: a content source end is configured to block the original content, construct a rule according to the configuration of the coefficient vector of the configuration, construct a coefficient vector, and each original content The block and each coefficient vector are linearly combined to obtain each coding block, and each coding block identifier is the same as the corresponding coefficient vector identifier, and each coding block is shared;
  • the content receiving end is configured to download the coded block from the content source according to the code block identifier required by the content.
  • a content source for providing shared content comprising: a source content storage module, a source end vector construction module, and an encoding module, wherein:
  • the source content storage module is configured to block the original content, send the original content partition number to the encoding module, and store the encoding module in its own coding block for sharing;
  • Source coefficient vector construction module used to obtain the acquisition coefficient vector sent by the coding module After the request, construct a coefficient vector according to the configuration of the coefficient vector configured in itself, and return each coefficient vector to the encoding module;
  • An encoding module configured to send, according to the number of original content blocks sent by the source content storage module and the number of coding blocks determined by the source, to the source coefficient vector constructing module, to obtain an acquisition coefficient vector request, which is to be called from the source content storage module.
  • the original content block and each coefficient vector sent by the source end coefficient vector construction module are linearly combined to obtain each coding block, and each coding block identifier is identical to the corresponding coefficient vector identifier, and each coding block is stored in the source content storage module.
  • a content receiving end for downloading shared content includes: a content downloading module, a receiving end coefficient vector constructing module, and a content restoring module, wherein:
  • a content downloading module configured to download a coding block from a content sending end according to a coding block identifier that is required by itself, and send a download completion indication to the content restoration module after determining that each code block of the current content has been downloaded;
  • a receiving end coefficient vector constructing module configured to: after receiving the obtaining coefficient vector request sent by the content restoring module, constructing a coefficient according to the number of original content blocks and the encoding block identifier carried by the request, and configuring a coefficient vector configured in the same Vector, sending each coefficient vector to the content restoration module;
  • a content restoration module configured to: according to the download completion instruction sent by the content download module, call the coding block from the content download module, and send the acquisition coefficient vector request carrying the original content block number and each coding block identifier to the receiving end coefficient vector construction module, according to Each coefficient vector returned by each coding block and the receiving end coefficient vector constructing module constructs a system of equations, and the original content block is obtained by solving the system of equations, and the original content is obtained according to each original content block.
  • the present invention pre-configures the rules for constructing the coefficient vectors corresponding to the shared content on each content terminal, and the content source end obtains the coefficient vectors according to the construction rule, thereby obtaining the coding block, and the identifier of each coding block.
  • the identifier of the corresponding coefficient vector is the same; the content receiving end downloads the encoding block from the content sending end according to the encoding block identifier, and identifies according to the encoding block That is, the coefficient vector identification and the coefficient vector construction rule configured in itself can construct the coefficient vector corresponding to each coding block, thereby obtaining each original content block, so that the content transmitting end does not need to transmit when transmitting the coding block data to the content receiving end.
  • the coefficient vector corresponding to the coded block data saves the transmission bandwidth; and the content receiving end only needs to determine the coded block to be downloaded according to the coded block identifier, ie, the coefficient vector identifier, without determining the code to be downloaded according to the comparison of the coefficient vector. Blocks, saving time and increasing the speed of content sharing.
  • the present invention constructs a coefficient matrix m*n as a unit matrix of the first n coefficient vectors n*n, and the latter mn coefficient vectors constitute a matrix in a Galois field (GF, Galois Field), and satisfies
  • the coefficient matrix of any n coefficient vectors in the m coefficient vectors is linearly independent, so that the content receiving end can use the original content block as a shared content block, which saves space resources, and also reduces or even avoids solving the equations at the content receiving end.
  • the duration increases the sharing efficiency.
  • FIG. 1 is a schematic diagram of an existing shared content transmission process
  • FIG. 3 is a flowchart of downloading a shared coding block provided by the present invention.
  • FIG. 4 is a flowchart of constructing a shared coding block according to an embodiment of the present invention.
  • FIG. 5 is a flowchart of downloading a shared coding block according to an embodiment of the present invention.
  • FIG. 6 is a flowchart of determining a coefficient vector of a coding block by a content receiving end according to an embodiment of the present invention
  • FIG. 7 is a structural diagram of a system for sharing content transmission according to an embodiment of the present invention. Mode for carrying out the invention
  • the P section and the download shared code block stage are separately described.
  • FIG. 2 is a flow chart of constructing a shared coding block provided by the present invention. As shown in FIG. 2, the specific steps are as follows:
  • Step 201 The construction rule of each coefficient vector of the coefficient matrix of the shared content is configured in advance on each content terminal, and each coefficient vector of the coefficient matrix has a respective coefficient vector identifier.
  • the constructed coefficient vector only needs to satisfy the linear dependence of any n coefficient vectors, and n is an integer greater than 1.
  • Step 202 The content source divides the original content into n blocks.
  • Step 203 The content source determines the number m of coding blocks, and constructs m n-dimensional coefficient vectors according to the coefficient vector construction rules configured therein, where m>n.
  • Step 204 The content source side linearly combines the m n-dimensional coefficient vectors with the n content blocks to obtain m linear coding blocks, and the identifiers of the coding blocks are the same as the corresponding coefficient vector identifiers.
  • FIG. 3 is a flow chart of downloading a shared code block according to the code block construction flow shown in FIG. 2, as shown in FIG. 3, and the specific steps are as follows:
  • Step 301 The content receiving end sends a download content request to the content sending end, where the request carries the content identifier of the content to be downloaded.
  • the content sending end in this step may be the content source end, or may be any content terminal that has obtained the content from the content source or other content terminal.
  • Step 302 After receiving the download content request, the content sending end sends the coded block identifier corresponding to the content identifier carried by the request to the content receiving end.
  • Step 303 The content receiving end compares the coded block identifier sent by the content sending end with the coded block identifier that is downloaded by the content sending end, and saves the coded block identifier that is saved by the content sending end and has not yet been downloaded. Undownloaded code block corresponding to the content identifier List.
  • the content receiving end After determining that the coded block of a certain content is to be downloaded, the content receiving end establishes a list of undownloaded coded blocks for the content, and saves the identifier of each coded block that is saved by the content sending end and has not yet been downloaded.
  • the uncoded block list is downloaded, and each code block is downloaded from the content sender according to the undownloaded code block list.
  • Step 304 The content receiving end downloads the corresponding coded block from the content sending end according to the coded block identifier in the undownloaded coded block list.
  • the structure of the coding block downloaded from the content source end by the content receiving end includes: a block attribute and a block data, wherein the block attribute includes: a content identifier, a coded block identifier, a block size, and a block check value, and the block size includes the original content.
  • the number of blocks includes: a content identifier, a coded block identifier, a block size, and a block check value, and the block size includes the original content.
  • Step 305 The content receiving end determines that the number of coding blocks corresponding to the content identifier that is downloaded by itself is equal to n, and constructs a coding block corresponding to each code block identifier configured according to the downloaded coefficient vector. Coefficient vector.
  • Step 306 The content receiving end constructs an n-ary linear equation group according to the n coding blocks and the corresponding n coefficient vectors, solves the system of equations, obtains each original content block, and then pairs each according to position information in the original content block.
  • the original content blocks are arranged to obtain the original content.
  • the block attribute of each original content block includes position information of the original content block in the entire original content. According to the location information, the content receiving end can arrange each original content block to restore the original content.
  • the construction rules of the coefficient vectors are pre-configured on each content terminal. Therefore, in the present invention, when the content transmitting end transmits the coding block, the corresponding coefficient vector does not need to be transmitted to the content receiving end.
  • the coefficient vector identifier is: the coded block identifier is passed to the content receiving end, which saves the network bandwidth; meanwhile, when it is determined that the coded block is to be downloaded from the content sending end, the content receiving end only needs to save the encoded block identifier of the content transmitting end. Compare with the coded block identifier that has been downloaded by itself to determine the code block to be downloaded from the content sender without The comparison of the coefficient vectors determines the code blocks to be downloaded, which reduces the comparison time and speeds up the content sharing speed.
  • the coefficient matrix is usually constructed as follows:
  • the matrix on the right side of the arrow is a coefficient matrix of the GF domain constructed by the embodiment of the present invention, and each value in the matrix on the left side of the arrow is used to identify the coefficient vector of the corresponding row of the matrix on the right side of the arrow, which is called a coefficient vector identifier.
  • the first 21 - 1 21 - 1 -dimensional coefficient vectors of the coefficient matrix form an identity matrix
  • the 21 ⁇ 2 1 + 1 - 2 coefficient vectors of the coefficient matrix constitute the van der Mammon matrix of the GF ( 21 ) domain.
  • the constructed m coefficient vectors are: the first n coefficient vectors are the vectors of the unit matrix forming an n*n, and the last (mn) coefficient vectors are: from the equation (1), it is identified as (2 1 , ⁇
  • the coefficient vectors of +l..., 2 lD1 -2) are arbitrarily taken as (mn) coefficient vectors, and since the dimension of each coefficient vector is n, the coefficients in each coefficient vector should be corresponding to those in equation (1)
  • the first n column coefficients of the coefficient vector are: the first n coefficient vectors are the vectors of the unit matrix forming an n*n, and the last (mn) coefficient vectors are: from the equation (1), it is identified as (2 1 , ⁇
  • the coefficient vectors of +l..., 2 lD1 -2) are arbitrarily taken as (mn) coefficient vectors, and since the dimension of each coefficient vector is n, the coefficients in each coefficient vector should be corresponding to those in equation (1)
  • the matrix to the right of the arrow is the constructed coefficient matrix
  • each of the matrices to the left of the arrow is the identifier of the coefficient vector of the corresponding row of the coefficient matrix to the right of the arrow.
  • FIG. 4 A flowchart for constructing a shared coding block according to the embodiment of the present invention is shown in FIG. 4, and the specific steps are as follows:
  • Step 401 The configuration rule of each coefficient vector of the coefficient matrix of the shared content is configured in advance on each content terminal, so that a coefficient matrix and a row coefficient vector of the coefficient matrix can be constructed according to the number m of the coefficient vector and the dimension n of the coefficient vector. Have their own coefficient vector identification.
  • the coefficient matrix constructed in this step is as shown in equation (1), and the identification of each coefficient vector is the corresponding value in the matrix to the left of the arrow.
  • Step 402 The content source divides the original content into n blocks according to the size of the original content, and each content block is: Bl, B2 Bn.
  • Step 403 The content source determines the number m of coding blocks, constructs m n-dimensional coefficient vectors according to the configuration of the coefficient matrix of the configuration, where m>n, and records the identifiers of the coefficient vectors.
  • Step 404 The content source side linearly combines the m n-dimensional coefficient vectors with the n original content blocks to obtain m coding blocks: Cl, C2 Cm, and the identifiers of the coding blocks are the same as the identifiers of the corresponding coefficient vectors.
  • This step can be expressed as follows:
  • FIG. 5 is a flowchart of downloading a shared coding block according to a matrix of the formula (1) as a coefficient matrix. As shown in FIG. 5, the specific steps are as follows:
  • Step 501 The content receiving end sends a download content request carrying the content identifier to the content sending end.
  • step 301 The meaning of the content transmitting end in this step is the same as that of step 301.
  • Step 502 After receiving the content download content request, the content sending end determines whether it saves the encoding block corresponding to the content identifier. If yes, step 503 is performed; otherwise, step 514 is performed.
  • Step 503 The content sending end sends the identifier of each code block corresponding to the content identifier that is saved by itself to the content receiving end.
  • Step 504 After the content receiving end receives each coded block identifier, the content is saved by itself. The code block identifier corresponding to the capacity identifier is compared.
  • Step 505 The content receiving end determines whether the content sending end has a code block that is not saved by itself, and if yes, step 506 is performed; otherwise, step 515 is performed.
  • Step 506 The identifier of the coded block that is saved by the content receiving end and not downloaded by the content receiving end is stored in the undownloaded code block list corresponding to the content identifier according to the identifier from small to large.
  • Step 507 The content receiving end downloads the coded block from the content sending end according to the coded block identifier in the undownloaded coded block list.
  • Step 508 The content receiving end downloads to the encoding block, and determines whether the number of encoded blocks corresponding to the downloaded content identifier is equal to n. If yes, it is determined that the downloading is completed, and step 510 is performed; otherwise, step 509 is performed.
  • Step 509 The content receiving end continues to download the coded block from the content sending end according to the undownloaded coded block list, and proceeds to step 508.
  • Step 510 The content receiving end starts to perform a restoration process on the coded block, and determines whether there is a coded block identifier greater than n in the downloaded n coded block identifiers. If yes, go to step 511; otherwise, go to step 513.
  • Step 511 The content receiving end determines a coefficient vector corresponding to each code block according to the coded block identifier, the number of original content blocks included in the block attribute of the coded block, and the coefficient vector configuration rule configured in itself.
  • Step 512 The content receiving end constructs an n-ary primary equation group according to the n coding blocks and the corresponding n coefficient vectors, solves the system of equations, obtains each original content block, and then pairs each according to position information in each content block.
  • the original content blocks are arranged to obtain the original content; at the same time, each original content block and the coding block whose identifier is greater than n are shared, and the process ends.
  • the coded block whose identifier is less than or equal to n is the original content block, if the content receiving end receives the s code blocks whose identifier is less than or equal to n, the receiving end only needs to further The first-order equations solve the remaining ns code blocks.
  • Step 513 The content receiving end determines that the n coding blocks are original content blocks, and arranges the coding blocks according to the coding block sequence number to obtain original content. Meanwhile, each coding block is: the original content block is shared, and the process ends. .
  • the n coding blocks are identical to the original content blocks, and there is no need to construct an n-ary equations.
  • Step 514 The content sending end returns to the content receiving end that the content indication does not exist.
  • Step 515 The content receiving end sends a download content request carrying the content identifier to the other content sending end, and returns to step 502.
  • the original content blocks Bl, B2 Bn can be used as shared content, so that the content receiving end does not need to save Bl, B2 Bn and Cl, C2 Cn at the same time.
  • the content receiving end needs to save the original content block and save the coding block, which greatly saves the storage space; meanwhile, when the coded block downloaded from the content source end is Cl, C2 Cn at the content receiving end, There is no need to solve the equations again, which saves the calculation amount and operation time and improves the sharing speed.
  • the coefficient matrix of m*n can also be constructed as follows: the first n coefficient vectors are unit matrices of n*n, and the last (mn) coefficient vectors are matrices constituting a non-Vandermonde matrix of the GF domain, and Satisfying any n coefficient vectors is linearly independent.
  • the coefficient matrix constructed using this rule still applies to the embodiment shown in FIG.
  • Step 601 Determine a GF ( 2 1 ) field in which the coefficient vector is located according to the number n of original content blocks. Specifically, the process of obtaining i is as follows: The minimum j value satisfying ⁇ 2 ⁇ is i.
  • Step 602 Determine whether the identifier of the current coding block is greater than the number n of the original content blocks. If yes, go to step 603; otherwise, go to step 604.
  • K is the identifier of the current coding block.
  • Step 604 Determine the n-dimensional coefficient vector corresponding to the current coding block as: a vector with a coefficient of the first column and a coefficient of all the other columns.
  • FIG. 7 is a schematic diagram of a system for performing shared content transmission according to an embodiment of the present invention.
  • the method mainly includes: a content source end and a content receiving end, where the content source end mainly includes: a source end content storage module 71, The source end coefficient vector constructing module 72 and the encoding module 73; the content receiving end mainly comprises: a content downloading module 74, a receiving end coefficient vector constructing module 75 and a content restoring module 76, and the functions of each module are as follows:
  • the source content storage module 71 is configured to store the original content, and divide the original content into n content blocks. After receiving the download content request of the content identifier sent by the content downloading module 74 of the content receiving end, the encoding module 73 is stored. The identity of the encoded block corresponding to the content identification itself is sent to the content download module 74, and the download of the encoded block is provided to the content download module 74.
  • the source end coefficient vector constructing module 72 is configured to: after receiving the acquisition coefficient vector request that carries the number n of the original content block and the number m of the coding block sent by the encoding module 73, construct m rules according to the configuration of the coefficient vector in the configuration The n-dimensional coefficient vector is sent to the encoding module 73.
  • the construction rule of the coefficient vector can be as shown in equation (1):
  • the first n n-dimensional coefficient vectors form an identity matrix
  • the (n+1) ⁇ 111 coefficient vectors of the coefficient matrix are: Van der Monster of the GF ( 2 1 ) domain matrix.
  • i can be obtained by: satisfying the minimum j value of ⁇ ⁇ 2 ⁇ .
  • the encoding module 73 is configured to determine, according to each original content block called from the source content storage module 71, the number m of coding blocks to be constructed, and send the number of original content blocks n and the number of coding blocks to the source end coefficient vector construction module 72.
  • the acquisition coefficient vector request of m linearly combines each coefficient vector returned by each original content block and source end coefficient vector construction module 72 to obtain m coding blocks, and stores the m coding blocks in the content storage module 71.
  • the content downloading module 74 is configured to send, to the source content storage module 71 of the content source end, a download content request that carries the content identifier, and the encoded block identifier corresponding to the content identifier returned by the source content storage module 71 and the downloaded content identifier Comparing the coded block identifiers corresponding to the content identifiers, the coded block identifiers that have been saved by the source-side content storage module 71 and not yet downloaded by the source-side content storage module 71 are stored in the un-downloaded coded block list corresponding to the content identifier, according to the undownloaded The coded block list downloads the coded block from the source content storage module 71; when it detects that the number of coded blocks corresponding to the content identifier that it has downloaded is equal to n, sends a download completion indication to the content restoration module 76 to restore the content Module 76 and receiver content storage module 77 provide calls to code blocks.
  • the content downloading module 74 stores the encoded block identifiers that have been saved by the source-side content storage module 71 and have not yet been downloaded, and is stored in the same order as the identifiers. Identifies the corresponding undownloaded coded block list.
  • the receiving end coefficient vector constructing module 75 is configured to: after receiving the acquisition coefficient vector request sent by the content restoring module 76 and carrying the original content block number n and the n encoding block identifiers, construct a rule according to the configuration in its own coefficient vector, construct The n n-dimensional coefficient vectors corresponding to the n coding blocks are respectively sent to the content restoration module 76.
  • the content restoration module 76 is configured to: after receiving the download completion indication sent by the content download module 74, invoke the downloaded n coding blocks from the content download module 74, and send the number of original content blocks to the receiving end coefficient vector constructing module 75. And an acquisition coefficient vector request of the identifiers of the n coding blocks, according to the n n-dimensional coefficients returned by the receiving end coefficient vector constructing module 75.
  • the quantity and n coding blocks construct an n-ary equation system, and the equations are solved to obtain n original content blocks. According to the position information contained in each original content block, each content block is arranged to obtain the original content, and the original content is obtained to the receiving end.
  • the content storage module 77 provides a call to the original content block and the encoded block.
  • the content restoration module 76 determines whether the n coding blocks sent by the content downloading module 74 include the coding block whose identifier is greater than n, and if so, determines that the identifier is less than or equal to n.
  • the coded block is the original content block
  • the coefficient vector constructing module 75 sends an acquisition coefficient vector request carrying the number n of the original content block and the sequence number of the n coding blocks, and constructs n n-dimensional coefficients returned by the module 75 according to the receiving end coefficient vector.
  • the vector and the received n coding blocks construct an n-ary system of equations, and the system of equations is solved to obtain an original content block whose identity is greater than n; if not, it is determined that the n coding blocks are original content blocks.
  • Receiver Content Storage Module 77 For sharing of the original content block and/or code block called from the content restore module 76, providing downloads of the original content block and/or code block to other content terminals.
  • the receiving end content storage module 77 shares the original content block called from the content restoring module 76, and also the encoding block shared by the content restoring module 76 whose identifier is greater than n. .
  • Fig. 7 shows an embodiment in which the content receiving end downloads the coded block from the content source side.
  • the content receiving end may also download the encoding block from the content sending end of the other non-content source.
  • the content sending end may only include the sending end content storage module, and the function of the module and the receiving end content storage module 77 The same function.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

共享内容传输方法和系统以及内容终端 技术领域
本发明涉及内容共享技术领域, 具体涉及共享内容传输方法和系统 以及内容终端。 发明背景
对等网络技术(P2P, Peer to Peer )作为下一代业务的技术驱动, 在 追逐新的业务的同时, 也希望能够在有限的硬件资源限制的条件下, 提 高 P2P应用的技术性能。 在内容共享的过程中, 为了保证内容共享的效 率和利用终端的性能, 对于一些较大的共享内容进行分块处理, 终端可 以按照自己的需求情况获取内容块。 对原始内容的分块可以按照内容的 大小进行划分, 也可以按照内容的传输时刻进行划分, 后者广泛应用在 流媒体的内容分块中。
内容源端在将内容块传递给内容接收端时, 同时将该内容块的元信 息传递给内容接收端, 元信息可以是该内容块在整个内容中所处的位置 信息等, 内容接收端在接收到足够多的内容块以后, 可以按照各内容块 的位置信息, 对各内容块进行排列从而还原为原始内容。
目前, 主要采用线性分组编码方式对原始内容进行分块, 图 1为现 有的共享内容传输的过程示意图, 如图 1所示, 其具体过程如下:
01 : 内容源端根据原始内容的大小, 将原始内容划分为 n块, 每个 内容块分别为: Bl、 B2 Bn。
02: 内容源端构造 m个 n维系数向量, 其中 m〉 = n, 且其中任意 n 个 n维系数向量都是线性无关。
03: 内容源端将该 m个 n维系数向量与 n个内容块进行线性组合, 得到 m个线性编码块: Cl、 C2 Cm。
本步骤可用公式表示如下: c2
C3 c„
Figure imgf000004_0001
其中, A为 m个 n维系数向量组成的系数矩阵, 且, 其中任意 n个 n维系数向量线性无关。
04: 内容接收端向内容发送端发送携带内容标识的下载内容请求。 本步骤中的内容发送端可能是内容源端, 也可能是已从内容源端或 其它内容发送端下载到编码块的内容终端。
05: 内容发送端收到该下载内容请求后, 将自身保存的与该请求携 带的内容标识对应的系数向量发送给内容接收端。
06: 内容接收端将内容发送端发来的系数向量与自身已下载的与所 述内容标识对应的系数向量比较。
07: 内容接收端根据内容发送端保存、 而自身还未下载的系数向量, 从内容发送端下载对应的编码块。
在内容发送端发来的所有系数向量中, 对于某个系数向量 a来说, 若内容接收端已下载的内容标识对应的系数向量中不包含该系数向量 a,则内容接收端确定自身还未下载该系数向量 a对应的编码块,并可从 内容发送端下载该系数向量 a对应的编码块。
内容接收端从内容源端下载的编码块的结构包括:块属性和块数据, 其中块属性中包含: 内容标识、 系数向量、 块大小和块校验值。
08: 内容接收端确定自身已下载 n个编码块, 根据该 n个编码块和 对应的 n个 n维系数向量, 构造 n元一次方程组, 对该方程组求解得到 n个原始内容的内容块。
09: 内容接收端根据该 n个原始内容块得到原始内容; 同时, 内容 接收端将从内容发送端下载的编码块进行共享。
从图 1所示的共享内容传输过程,可以看出,现有技术的缺点如下: 一、 在内容接收端向内容发送端查询需求编码块时, 以及从内容发 送端下载编码块数据时, 内容发送端需将该编码块对应的系数向量也传 递给内容接收端, 当系数向量的维数较高时, 该系数向量在传递过程中 会占用较多的带宽资源。
二、 内容接收端在确定要从内容发送端下载编码块时, 需要将内容 发送端的系数向量与自身已下载的系数向量进行比较, 以确定自身需从 内容发送端下载的编码块, 当系数向量的维数较高时, 会花费较长的比 较时间, 增加了获得原始内容的时长, 也降低了共享速度。
三、 编码块与原始内容块组合后不具有线性编码性质, 因此, 原始 内容块无法参与共享, 内容接收端在还原出原始内容后, 必须同时保留 原始内容和编码块, 这就浪费了大量的空间资源。
四、 在构造系数向量时, 由于系数向量只需满足任意 n个 n维系数 向量线性无关即可, 在构造的系数向量较复杂时, 内容接收端求解方程 组会花费较长时间, 降低了共享效率。 发明内容
本发明提供共享内容传输方法和系统以及内容终端, 以节省带宽资 源, 提高内容共享效率。
需要指出的是, 本发明中提到的内容源端指的是, 对原始内容进行 分块和线性编码的内容终端; 本发明中的内容发送端相对内容接收端而 言, 指的是, 拥有原始内容的线性编码块, 并向内容接收端提供编码块 下载的内容终端, 内容源端可为内容发送端; 本发明中的内容接收端相 对内容发送端而言, 指的是, 从内容发送端下载自身所需编码块的内容 终端。
本发明的技术方案是这样实现的:
一种共享内容传输方法, 包括:
预先在各内容终端上配置共享内容对应的系数向量构造规则, 各系 数向量具有各自的系数向量标识;
内容源端对原始内容进行分块, 并根据所述系数向量构造规则构造 各原始内容块对应的系数向量, 将各原始内容块与对应的系数向量进行 线性组合, 得到各编码块, 各编码块标识与对应的系数向量标识相同; 内容接收端确定要从内容源端下载编码块, 根据内容源端已保存、 而自身未保存的编码块的标识, 从内容源端下载编码块。
一种共享内容传输系统, 包括: 内容源端和内容接收端, 其中: 内容源端, 用于对原始内容进行分块, 根据配置在自身的系数向量 构造规则,构造系数向量,将各原始内容块和各系数向量进行线性组合, 得到各编码块, 且各编码块标识与对应系数向量标识相同, 将各编码块 共享;
内容接收端, 用于根据自身所需的编码块标识从内容源端下载编码 块。
一种提供共享内容的内容源端, 包括: 源端内容存储模块、 源端系 数向量构造模块和编码模块, 其中:
源端内容存储模块, 用于对原始内容进行分块, 将原始内容分块数 目发送给编码模块, 将编码模块存储在自身的编码块进行共享;
源端系数向量构造模块, 用于在获得编码模块发来的获取系数向量 请求后, 根据配置在自身的系数向量构造规则, 构造系数向量, 并将各 系数向量返给编码模块;
编码模块, 用于根据源端内容存储模块发来的原始内容块的数目和 自身确定的编码块数目, 向源端系数向量构造模块发送获取系数向量请 求, 将从源端内容存储模块调用的各原始内容块和源端系数向量构造模 块发来的各系数向量进行线性组合, 得到各编码块, 且各编码块标识与 对应系数向量标识相同, 将各编码块存储在源端内容存储模块中。
一种下载共享内容的内容接收端, 包括: 内容下载模块、 接收端系 数向量构造模块和内容还原模块, 其中:
内容下载模块, 用于根据自身所需的编码块标识从内容发送端下载 编码块, 在确定自身已下载完当前内容的各编码块后, 向内容还原模块 发送下载完成指示;
接收端系数向量构造模块, 用于在收到内容还原模块发来的获取系 数向量请求后, 根据该请求携带的原始内容块数目和编码块标识、 以及 配置在自身的系数向量构造规则, 构造系数向量, 将各系数向量发送给 内容还原模块;
内容还原模块, 用于根据内容下载模块发来的下载完成指示, 从内 容下载模块调用编码块, 向接收端系数向量构造模块发送携带原始内容 块数目和各编码块标识的获取系数向量请求, 根据各编码块和接收端系 数向量构造模块返回的各系数向量构造方程组, 对该方程组求解得到各 原始内容块, 根据各原始内容块得到原始内容。
与现有技术相比, 本发明通过在各内容终端上预先配置构造共享内 容对应的各系数向量的规则, 内容源端根据该构造规则得到各系数向 量, 从而得到编码块, 各编码块的标识与对应系数向量的标识相同; 内 容接收端根据编码块标识从内容发送端下载编码块, 并根据编码块标识 即: 系数向量标识以及配置在自身的系数向量构造规则, 可构造出各编 码块对应的系数向量, 从而得到各原始内容块, 使得内容发送端在向内 容接收端传递编码块数据时, 无需传递该编码块数据对应的系数向量, 节省了传输带宽; 且内容接收端只需根据编码块标识即: 系数向量标识 来确定需要下载的编码块, 而无需根据系数向量的比较来确定需要下载 的编码块, 节省了时长, 提高了内容共享速度。
进一步地,本发明通过将系数矩阵 m*n构造为前 n个系数向量为 n*n 的单位矩阵, 后 m-n个系数向量构成一个加罗瓦域(GF, Galois Field ) 中的矩阵,且满足 m个系数向量中任意 n个系数向量线性无关的系数矩 阵,使得内容接收端可将原始内容块作为共享内容块,节省了空间资源, 同时也减少了、 甚至避免了内容接收端求解方程组的时长, 提高了共享 效率。 附图简要说明
图 1为现有的共享内容传输过程示意图;
图 2为本发明提供的构造共享编码块的流程图;
图 3为本发明提供的下载共享编码块的流程图;
图 4为本发明实施例提供的构造共享编码块的流程图;
图 5为本发明实施例提供的下载共享编码块的流程图;
图 6为本发明实施例提供的内容接收端确定编码块的系数向量的流 程图;
图 7为本发明实施例提供的共享内容传输的系统组成图。 实施本发明的方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。 以下分别对本发明提供的内容共享方法中的两个阶段: 构造编码块
P介段和下载共享编码块阶段分别进行说明。
图 2是本发明提供的构造共享编码块的流程图, 如图 2所示, 其具 体步骤如下:
步骤 201 : 预先在各内容终端上配置共享内容的系数矩阵的各系数 向量的构造规则, 系数矩阵的各系数向量具有各自的系数向量标识。
构造出的系数向量, 只需满足任意 n 个系数向量线性无关即可, n 为大于 1的整数。
步骤 202: 内容源端将原始内容划分为 n块。
步骤 203: 内容源端确定编码块的数目 m, 根据配置在自身的系数 向量构造规则, 构造 m个 n维系数向量, 其中, m〉n。
步骤 204: 内容源端将该 m个 n维系数向量与 n个内容块进行线性 组合, 得到 m个线性编码块, 各编码块的标识与对应的系数向量标识相 同。
图 3为基于图 2所示的编码块构造流程, 本发明提供的下载共享编 码块的流程图, 如图 3所示, 其具体步骤如下:
步骤 301 : 内容接收端向内容发送端发送下载内容请求, 该请求中 携带需下载内容的内容标识。
本步骤中的内容发送端可以是内容源端, 也可以是任何已从内容源 端或其它内容终端获取该内容的内容终端。
步骤 302: 内容发送端收到该下载内容请求后, 将自身保存的与该 请求携带的内容标识对应的编码块标识发送给内容接收端。
步骤 303: 内容接收端将内容发送端发来的编码块标识与自身已下 载的与所述内容标识对应的编码块标识比较, 将内容发送端保存、 而自 身还未下载的编码块标识保存在与所述内容标识对应的未下载编码块 列表中。
内容接收端在确定要下载某个内容的编码块后, 会在自身建立一个 针对该内容的未下载编码块列表, 将内容发送端保存的、 而自身还未下 载的各编码块的标识保存在该未下载编码块列表中, 并按照该未下载编 码块列表, 从内容发送端下载各编码块。
步骤 304: 内容接收端根据该未下载编码块列表中的编码块标识, 从内容发送端下载对应的编码块。
内容接收端从内容源端下载的编码块的结构包括:块属性和块数据, 其中块属性中包含: 内容标识、 编码块标识、 块大小和块校验值, 块大 小中包含原始内容的分块数目。
步骤 305: 内容接收端确定自身已下载的与所述内容标识对应的编 码块数目等于 n, 根据已下载的各编码块标识, 以及配置在自身的系数 向量构造规则, 构造出各编码块对应的系数向量。
步骤 306: 内容接收端根据所述 n个编码块和对应的 n个系数向量 构造 n元一次方程组, 对该方程组求解, 得到各原始内容块, 然后根据 原始内容块中的位置信息对各原始内容块进行排列 , 得到原始内容。
各原始内容块的块属性中包含该原始内容块在整个原始内容中的位 置信息, 根据该位置信息, 内容接收端可对各原始内容块进行排列, 从 而还原出原始内容。
可以看出, 在各内容终端上预先配置好了各系数向量的构造规则, 因此, 本发明中, 内容发送端在传递编码块时, 不需将对应的系数向量 传递给内容接收端, 只需将系数向量标识即: 编码块标识传递给内容接 收端, 这样节省了网络带宽; 同时, 在确定要从内容发送端下载编码块 时, 内容接收端只需将内容发送端已保存的编码块标识与自身已下载的 编码块标识进行比较, 以确定需从内容发送端下载的编码块, 而无需通 过系数向量的比较来确定需下载的编码块, 减少了了比较时长, 加快了 内容共享速度。
在实际应用中, 为了内容接收端求解 n元一次方程组方便, 也为了 使得原始内容块可直接参与共享, 通常将系数矩阵构造如下:
Figure imgf000011_0001
其中, 箭头右边的矩阵为本发明实施例构造的 GF域的系数矩阵, 箭头左边的矩阵中的每一个值分别用于标识箭头右边矩阵的对应行的 系数向量, 称之为系数向量标识。
可以看出,系数矩阵的前 21— 1个 21— 1维系数向量组成一个单位矩阵, 系数矩阵的第 21~21+1— 2个系数向量组成了 GF ( 21 )域的范德蒙矩阵。 其中, i可通过以下方法来确定: 满足 n<2J的最小 j值, 例如: 若 n=7, 则 i=3; 若 n=15, 则 i=4。
如式( 1 )所示, 若原始内容块的数目为 n, 编码块的数目为 m, 需 要构建 m个 n维系数向量, m〉=n, 此时所取的域为 GF ( 21 ), 则: 所 构造的 m个系数向量为:前 n个系数向量为组成一个 n*n的单位矩阵的 向量,后(m-n)个系数向量为: 从式(1)中标识为(21 , ^+l..., 2lD1-2) 的系数向量中任意取(m-n)个系数向量,且由于各系数向量的维数为 n, 所以各系数向量中的系数应取式(1) 中对应的系数向量的前 n列系数。
例如: 当 n=7, m=14时, 由式( 1 )构造出的系数矩阵如下:
Figure imgf000012_0001
其中, 箭头右边的矩阵为构造出的系数矩阵, 箭头左边的矩阵的每 个值为箭头右边的系数矩阵的对应行的系数向量的标识。
下面给出以式( 1 )所示矩阵作为系数矩阵, 本发明实施例提供的构 造共享编码块的流程图, 如图 4所示, 其具体步骤如下:
步骤 401 : 预先在各内容终端上配置共享内容的系数矩阵的各系数 向量的构造规则,使得根据系数向量的数目 m和系数向量的维数 n能够 构造出一个系数矩阵, 系数矩阵的各行系数向量具有各自的系数向量标 识。
本步骤中构造出的系数矩阵如式( 1 )所示, 各系数向量的标识为箭 头左边的矩阵中的对应值。
步骤 402: 内容源端根据原始内容的大小, 将原始内容划分为 n块, 每个内容块分别为: Bl、 B2 Bn。
步骤 403: 内容源端确定编码块的数目 m, 根据配置在自身的系数 矩阵构造规则构造 m个 n维系数向量, 其中 m〉n, 并记录各系数向量的 标识。 步骤 404: 内容源端将该 m个 n维系数向量与 n个原始内容块进行 线性组合, 得到 m个编码块: Cl、 C2 Cm, 各编码块的标识与对 应的系数向量的标识相同。
本步骤可用公式表示如下:
Figure imgf000013_0001
可以看出: 由于系数矩阵 A的前 n个 n维系数向量构成一个单位矩 阵, 所以, 编码块 Cl、 C2 Cn分别与 Bl、 B2 Bn相同, 即:
C1=B1、 C2=B2 Cn=Bn。 其中, x=m-n。
图 5为以式( 1 )所示矩阵作为系数矩阵, 本发明实施例提供的下载 共享编码块的流程图, 如图 5所示, 其具体步骤如下:
步骤 501 : 内容接收端向内容发送端发送携带内容标识的下载内容 请求。
本步骤中的内容发送端的含义与步骤 301相同。
步骤 502: 内容发送端收到该内容下载内容请求后, 判断自身是否 保存与该内容标识对应的编码块, 若是, 执行步骤 503; 否则, 执行步 骤 514。
步骤 503: 内容发送端将自身保存的与该内容标识对应的各编码块 的标识发送给内容接收端。
步骤 504: 内容接收端收到各编码块标识后, 与自身已保存的该内 容标识对应的编码块标识比较。
步骤 505: 内容接收端判断内容发送端是否存在自身未保存的编码 块, 若是, 执行步骤 506; 否则, 执行步骤 515。
步骤 506: 内容接收端将内容发送端保存、 而自身未下载的编码块 的标识, 按照标识的从小到大, 顺序保存在该内容标识对应的未下载编 码块列表中。
步骤 507: 内容接收端根据该未下载编码块列表中的编码块标识从 内容发送端下载编码块。
步骤 508: 内容接收端下载到编码块, 判断已下载的该内容标识对 应的编码块数目是否等于 n, 若是, 判定下载完成, 执行步骤 510; 否 则, 执行步骤 509。
步骤 509: 内容接收端继续根据未下载编码块列表从内容发送端下 载编码块, 转至步骤 508。
步骤 510: 内容接收端开始对编码块进行还原处理,判断已下载的 n 个编码块标识中是否存在大于 n的编码块标识, 若是, 执行步骤 511 ; 否则, 执行步骤 513。
步骤 511 : 内容接收端根据该编码块标识、 该编码块的块属性中包 含的原始内容分块数目以及配置在自身的系数向量构造规则, 确定各编 码块对应的系数向量。
步骤 512: 内容接收端根据所述 n个编码块和对应的 n个系数向量 构造 n元一次方程组, 对该方程组求解, 得到各原始内容块, 然后根据 各内容块中的位置信息对各原始内容块进行排列,得到原始内容; 同时, 将各原始内容块和标识大于 n的编码块进行共享, 本流程结束。
由于标识小于或等于 n的编码块即为原始内容块, 因此, 若内容接 收端收到了 s个标识小于或等于 n的编码块, 则, 接收端只需再 ^^据 n 元一次方程组求解其余 n-s个编码块即可。
步骤 513: 内容接收端确定该 n个编码块即为原始内容块, 根据编 码块序号对各编码块进行排列, 得到原始内容; 同时, 将各编码块即: 原始内容块进行共享, 本流程结束。
由于该 n个编码块的标识小于或等于 n, 所以该 n个编码块与原始 内容块相同, 无需再构造 n元一次方程组。
步骤 514: 内容发送端向内容接收端返回不存在该内容指示。
步骤 515: 内容接收端向其它内容发送端发送携带内容标识的下载 内容请求, 返回步骤 502。
可以看出,在本实施例中,由于 Cl、 C2 Cn分别与 Bl、 B2
Bn相同, 因此, 对于内容接收端来说, 原始内容块 Bl、 B2 Bn 可作为共享内容, 这样, 内容接收端就无需同时保存 Bl、 B2 Bn 和 Cl、 C2 Cn。 与现有技术中, 内容接收端既需保存原始内容块 又需保存编码块相比, 大大节省了存储空间; 同时, 在内容接收端从内 容源端下载的编码块为 Cl、 C2 Cn时, 无需再求解方程组, 节省 了运算量和运算时间, 提高了共享速度。
在实际应用中, 也可将 m*n的系数矩阵构造为: 前 n个系数向量为 n*n的单位矩阵, 后(m-n )个系数向量为 GF域的构成非范德蒙矩阵的 矩阵, 且, 满足任意 n个系数向量线性无关。 利用该规则构造的系数矩 阵仍然适用图 5所示的实施例。
在图 5所示实施例中, 内容接收端在判定已下载的编码块中包含标 识大于 n的编码块后, 根据配置在自身的系数向量构造规则, 确定各编 码块的系数向量的流程如图 6所示, 其具体步骤如下:
步骤 601 : 根据原始内容块的数目 n, 确定系数向量所在的 GF ( 21 ) 域。 具体地, i的求取过程如下: 满足 η< 2 ·的最小 j值即为 i。
步骤 602: 判断当前编码块的标识是否大于原始内容块的数目 n,若 是, 执行步骤 603; 否则, 执行步骤 604。
步骤 603: 确定当前编码块对应的 n 维系数向量为: "°, t1, t2, - , t-1) , 其中, t = - 2' + 1 , 本流程结束。
其中, K为当前编码块的标识。
步骤 604: 确定当前编码块对应的 n维系数向量为: 第 K列系数为 1 , 其余列系数全为 0的向量。
图 7是本发明实施例提供的进行共享内容传输的系统示意图, 如图 7所示, 其主要包括: 内容源端和内容接收端, 其中, 内容源端主要包 括: 源端内容存储模块 71、 源端系数向量构造模块 72和编码模块 73; 内容接收端主要包括: 内容下载模块 74、 接收端系数向量构造模块 75 和内容还原模块 76, 各模块的功能具体如下:
源端内容存储模块 71 : 用于存储原始内容, 将原始内容分为 n个内 容块; 在收到内容接收端的内容下载模块 74发来的携带内容标识的下 载内容请求后, 将编码模块 73存储在自身的与该内容标识对应的编码 块的标识发送给内容下载模块 74, 并向内容下载模块 74提供编码块的 下载。
源端系数向量构造模块 72: 用于在收到编码模块 73发来的携带原 始内容块数目 n和编码块数目 m的获取系数向量请求后,根据配置在自 身的系数向量构造规则, 构造 m个 n维系数向量, 将该 m个 n维系数 向量发送给编码模块 73。
系数向量的构造规则可以如式( 1 )所示: 前 n个 n维系数向量组成 一个单位矩阵, 系数矩阵的第 (n+1 ) ~111个系数向量为: GF ( 21 )域的 范德蒙矩阵。 其中, i可通过以下方法得到: 满足 η< 2 ·的最小 j值。 编码模块 73: 用于根据从源端内容存储模块 71调用的各原始内容 块, 确定需构造的编码块的数目 m, 向源端系数向量构造模块 72发送 携带原始内容块数目 n和编码块数目 m的获取系数向量请求,将各原始 内容块和源端系数向量构造模块 72返回的各系数向量进行线性组合, 得到 m个编码块, 将该 m个编码块存储在内容存储模块 71中。
内容下载模块 74: 用于向内容源端的源端内容存储模块 71发送携 带内容标识的下载内容请求, 将源端内容存储模块 71 返回的与所述内 容标识对应的编码块标识与自身已下载的、 与该内容标识对应的编码块 标识比较, 将源端内容存储模块 71 已保存、 而自身还未下载的编码块 标识保存在与该内容标识对应的未下载编码块列表中, 根据该未下载编 码块列表从源端内容存储模块 71 下载编码块; 在检测到自身已下载的 与所述内容标识对应的编码块的个数等于 n时, 向内容还原模块 76发 送下载完成指示, 向内容还原模块 76和接收端内容存储模块 77提供编 码块的调用。
当构造的系数向量如式(1 )所示时, 内容下载模块 74将源端内容 存储模块 71 已保存、 而自身还未下载的编码块标识, 按照标识的从小 到大顺序保存在与该内容标识对应的未下载编码块列表中。
接收端系数向量构造模块 75: 用于在收到内容还原模块 76发来的 携带原始内容块数目 n和 n个编码块标识的获取系数向量请求后, 根据 配置在自身的系数向量构造规则, 构造分别与 n个编码块对应的 n个 n 维系数向量, 将各 n维系数向量发送给内容还原模块 76。
内容还原模块 76: 用于在收到内容下载模块 74发来的下载完成指 示后, 从内容下载模块 74调用下载的 n个编码块, 向接收端系数向量 构造模块 75发送携带原始内容块数目 n和 n个编码块的标识的获取系 数向量请求, 根据接收端系数向量构造模块 75返回的 n个 n维系数向 量和 n个编码块构造 n元一次方程组, 对该方程组求解得到 n个原始内 容块, 根据各原始内容块中包含的位置信息, 对各内容块进行排列, 得 到原始内容, 向接收端内容存储模块 77提供原始内容块和编码块的调 用。
当构造的系数向量如式(1 )所示时, 内容还原模块 76判断内容下 载模块 74发来的 n个编码块中是否包含标识大于 n的编码块, 若包含, 则确定标识小于或等于 n的编码块即为原始内容块, 向系数向量构造模 块 75发送携带原始内容块数目 n和 n个编码块的序号的获取系数向量 请求, 根据接收端系数向量构造模块 75返回的 n个 n维系数向量和接 收的 n个编码块构造 n元一次方程组, 对该方程组求解得到标识大于 n 的原始内容块; 若不包含, 则确定该 n个编码块即为原始内容块。
接收端内容存储模块 77: 用于将从内容还原模块 76调用的原始内 容块和 /或编码块共享, 向其它内容终端提供原始内容块和 /或编码块的 下载。
当构造的系数向量如式(1 )所示时, 则接收端内容存储模块 77将 从内容还原模块 76调用的原始内容块共享, 也将从内容还原模块 76调 用的标识大于 n的编码块共享。
为了完整地描述本发明的技术方案, 图 7给出了内容接收端从内容 源端下载编码块的实施例。 在实际应用中, 内容接收端也可以从其它非 内容源端的内容发送端下载编码块, 此时该内容发送端可能只包含发送 端内容存储模块, 该模块的功能与接收端内容存储模块 77的功能相同。
以上所述仅为本发明的过程及方法实施例, 并不用以限制本发明, 凡在本发明的精神和原则之内所做的任何修改、 等同替换、 改进等, 均 应包含在本发明的保护范围之内。

Claims

权利要求书
1、 一种共享内容传输方法, 其特征在于, 包括:
内容源端对原始内容进行分块, 并根据预先配置在自身的系数向量 构造规则构造各原始内容块对应的系数向量, 将各原始内容块与对应的 系数向量进行线性组合, 得到各编码块, 各编码块标识与对应的系数向 量标识相同;
内容接收端确定要从内容源端下载编码块, 根据内容源端已保存、 而自身未保存的编码块的标识, 从内容源端下载编码块。
2、 如权利要求 1所述的方法, 其特征在于,
所述内容接收端从内容源端下载编码块之后进一步包括: 内容接收 端确定自身已下载完所需的编码块后, 根据各编码块标识、 编码块的块 属性中包含的原始内容的分块数以及配置在自身的系数向量构造规则, 构造出各编码块对应的系数向量, 再根据各编码块及对应的系数向量构 造方程组, 对该方程组求解得到各原始内容块, 根据各原始内容块还原 出原始内容。
3、 如权利要求 2所述的方法, 其特征在于, 所述内容接收端还原 出原始内容之后进一步包括: 内容接收端将各编码块设置为共享编码 块。
4、 如权利要求 1 所述的方法, 其特征在于, 所述系数向量的构造 规则为:
前 n个系数向量构成一个 n维的单位矩阵, 后 m-n个系数向量构成 一个加罗瓦域 GF中的矩阵, 且, m个系数向量中的任何 n个系数向量 线性无关, 其中, n为原始内容块的数目, m为编码块的数目, 且各系 数向量的标识为该系数向量在系数矩阵中的行序号。
5、 如权利要求 4所述的方法, 其特征在于,
所述内容接收端根据内容源端已保存、 而自身未保存的编码块的标 识, 从内容源端下载编码块包括: 内容接收端优先从内容源端下载内容 源端保存、 而自身未保存的、 标识小于 n的编码块。
6、 如权利要求 4或 5所述的方法, 其特征在于, 所述内容接收端 从内容源端下载编码块之后进一步包括:
内容接收端确定已下载的编码块数目等于 n, 判断该 n个编码块中 是否包含编码块标识大于 n的编码块, 若否, 则确定该 n个编码块即为 n个原始内容块, 根据该 n个原始内容块还原出原始内容; 若是, 则根 据各编码块标识以及配置在自身的系数向量构造规则, 构造出各编码块 对应的系数向量, 再根据各编码块及对应的系数向量构造 n元一次方程 组, 确定标识小于或等于 n的编码块即为原始内容块, 对该方程组求解 得到标识大于 n的编码块对应的原始内容块, 根据该 n个原始内容块还 原出原始内容, 其中, n为原始内容块的总数。
7、 如权利要求 6所述的方法, 其特征在于, 所述内容接收端构造 出各编码块对应的系数向量包括:
内容接收端根据 n, 确定 GF ( X )域的 i值, 其中 i是满足 η< 2 ·的 最小 j值, 然后判断该编码块标识 K是否大于 n, 若是, 确定该编码块 对应的系数向量为: (t。, t1 , t-1 ), 其中, t=K- 2' +l ; 否则, 确定 该编码块对应的系数向量为: 第 K列系数为 1 , 其余 n-1列系数为 0的 向量, 其中, n为原始内容块的总数。
8、 如权利要求 6所述的方法, 其特征在于, 所述内容接收端对方 程组求解得到 n个原始内容块之后进一步包括: 内容接收端将该 n个原 始内容块和编码块标识大于 n的编码块设置为共享编码块。
9、 如权利要求 6所述的方法, 其特征在于, 所述内容接收端确定 该 n个编码块即为 n个原始内容块之后进一步包括: 内容接收端将内容 以原始内容块的形式进行共享。
10、 一种共享内容传输方法, 其特征在于, 包括:
内容接收端确定要从内容源端下载编码块, 根据内容源端已保存、 而自身未保存的编码块的标识, 从内容源端下载编码块, 该编码块为内 容源端将原始内容块与根据预先配置在自身的系数向量构造规则构造 出的各原始内容块对应的系数向量进行线性组合得到的, 且各编码块标 识与对应的系数向量标识相同。
11、 一种共享内容传输系统, 其特征在于, 包括:
内容源端, 用于对原始内容进行分块, 根据配置在自身的系数向量 构造规则,构造系数向量,将各原始内容块和各系数向量进行线性组合, 得到各编码块, 且各编码块标识与对应系数向量标识相同, 将各编码块 设置为共享编码块;
内容接收端, 用于根据自身所需的编码块标识从内容源端下载编码 块。
12、 如权利要求 11 所述的系统, 其特征在于, 所述内容接收端进 一步用于, 在下载完当前内容的编码块时, 根据各编码块标识、 编码块 的块属性中包含的原始内容分块数目以及配置在自身的系数向量构造 规则, 构造系数向量, 根据各编码块和各系数向量构造方程组, 对该方 程组求解得到各原始内容块, 根据各原始内容块得到原始内容。
13、 如权利要求 12所述的系统, 其特征在于, 所述内容接收端进 一步用于, 将各原始内容块和 /或编码块进行共享。
14、 一种内容终端, 其特征在于, 包括:
源端内容存储模块, 用于对原始内容进行分块, 将原始内容分块数 目发送给编码模块, 将编码模块存储在自身的编码块设置为共享编码 块;
源端系数向量构造模块, 用于在获得编码模块发来的获取系数向量 请求后, 根据配置在自身的系数向量构造规则, 构造系数向量, 并将各 系数向量返给编码模块;
编码模块, 用于根据源端内容存储模块发来的原始内容块的数目和 自身确定的编码块数目, 向源端系数向量构造模块发送获取系数向量请 求, 将从源端内容存储模块调用的各原始内容块和源端系数向量构造模 块发来的各系数向量进行线性组合, 得到各编码块, 且各编码块标识与 对应系数向量标识相同, 将各编码块存储在源端内容存储模块中。
15、 一种内容终端, 其特征在于, 包括:
内容下载模块, 用于根据自身所需的编码块标识从内容发送端下载 编码块, 在确定自身已下载完当前内容的各编码块后, 向内容还原模块 发送下载完成指示;
接收端系数向量构造模块, 用于在收到内容还原模块发来的获取系 数向量请求后, 根据该请求携带的原始内容块数目和编码块标识、 以及 配置在自身的系数向量构造规则, 构造系数向量, 将各系数向量发送给 内容还原模块;
内容还原模块, 用于根据内容下载模块发来的下载完成指示, 从内 容下载模块调用编码块, 向接收端系数向量构造模块发送携带原始内容 块数目和各编码块标识的获取系数向量请求, 根据各编码块和接收端系 数向量构造模块返回的各系数向量构造方程组, 对该方程组求解得到各 原始内容块, 根据各原始内容块得到原始内容。
16、如权利要求 15所述的内容终端, 其特征在于, 该内容终端进一 步包括: 接收端内容存储模块, 用于将从内容还原模块调用的原始内容 块和 /或编码块设置为共享内容块和 /或编码块。
17、 如权利要求 15或 16所述的内容终端, 其特征在于, 该内容终 端进一步包括:
源端内容存储模块, 用于对原始内容进行分块, 将原始内容分块数 目发送给编码模块, 将编码模块存储在自身的编码块设置为共享编码 块;
源端系数向量构造模块, 用于在获得编码模块发来的获取系数向量 请求后, 根据配置在自身的系数向量构造规则, 构造系数向量, 并将各 系数向量返给编码模块;
编码模块, 用于根据源端内容存储模块发来的原始内容块的数目和 自身确定的编码块数目, 向源端系数向量构造模块发送获取系数向量请 求, 将从源端内容存储模块调用的各原始内容块和源端系数向量构造模 块发来的各系数向量进行线性组合, 得到各编码块, 且各编码块标识与 对应系数向量标识相同, 将各编码块存储在源端内容存储模块中。
PCT/CN2007/070481 2006-10-30 2007-08-15 Procédé et système permettant de transmettre un contenu partagé, terminal de contenu associé WO2008052450A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP07800957.8A EP2081319B1 (en) 2006-10-30 2007-08-15 Methord and system for transmitting shared content, content terminal
US12/430,611 US8055798B2 (en) 2006-10-30 2009-04-27 Method and system for transmitting shared contents and content terminal thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2006101503662A CN101174955B (zh) 2006-10-30 2006-10-30 共享内容传输方法和系统以及内容源端、内容接收端
CN200610150366.2 2006-10-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/430,611 Continuation US8055798B2 (en) 2006-10-30 2009-04-27 Method and system for transmitting shared contents and content terminal thereof

Publications (1)

Publication Number Publication Date
WO2008052450A1 true WO2008052450A1 (fr) 2008-05-08

Family

ID=39343821

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2007/070481 WO2008052450A1 (fr) 2006-10-30 2007-08-15 Procédé et système permettant de transmettre un contenu partagé, terminal de contenu associé

Country Status (4)

Country Link
US (1) US8055798B2 (zh)
EP (1) EP2081319B1 (zh)
CN (1) CN101174955B (zh)
WO (1) WO2008052450A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5223480B2 (ja) * 2008-06-13 2013-06-26 富士通株式会社 コンテンツ配信方法及び通信端末装置
CN102088331B (zh) * 2009-12-03 2015-01-14 株式会社Ntt都科摩 一种数据传输方法及网络节点
US9569771B2 (en) 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
US9037564B2 (en) * 2011-04-29 2015-05-19 Stephen Lesavich Method and system for electronic content storage and retrieval with galois fields on cloud computing networks
US9361479B2 (en) 2011-04-29 2016-06-07 Stephen Lesavich Method and system for electronic content storage and retrieval using Galois fields and geometric shapes on cloud computing networks
US9137250B2 (en) 2011-04-29 2015-09-15 Stephen Lesavich Method and system for electronic content storage and retrieval using galois fields and information entropy on cloud computing networks
US9253164B2 (en) 2011-09-12 2016-02-02 Microsoft Technology Licensing, Llc Distribution of portions of content
CN103516757B (zh) * 2012-06-28 2016-12-21 华为技术有限公司 内容处理方法、装置及系统
CN103037017A (zh) * 2012-12-31 2013-04-10 乐视网信息技术(北京)股份有限公司 一种p2p数据被动分发方法及节点客户端
CN105264860A (zh) * 2014-03-24 2016-01-20 华为技术有限公司 一种通信设备、方法及系统
CN105141470B (zh) * 2015-06-25 2018-12-11 南京师范大学 基于网络编码的内容分发系统线性相关性判断方法和装置
US9992231B2 (en) * 2015-12-14 2018-06-05 International Business Machines Corporation Method and apparatus for data protection in cloud-based matching system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1550088A (zh) * 2001-08-28 2004-11-24 基于对等式分布计算技术的并行信息传送方法及其系统
WO2005022813A1 (en) * 2003-08-21 2005-03-10 Qualcomm Incorporated Methods for seamless delivery of broadcast and multicast content across cell borders and/or between different transmission schemes and related apparatus
CN1745533A (zh) * 2003-02-26 2006-03-08 艾利森电话股份有限公司 Arq系统中的传输控制方法
US20060224760A1 (en) 2005-03-15 2006-10-05 1000 Oaks Hu Lian Technology Development (Beijing) Co., Ltd. Method and system for providing streaming content in a peer-to-peer network with network coding

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7756051B2 (en) * 2004-07-02 2010-07-13 Microsoft Corporation Content distribution using network coding
US20060230107A1 (en) * 2005-03-15 2006-10-12 1000 Oaks Hu Lian Technology Development Co., Ltd. Method and computer-readable medium for multimedia playback and recording in a peer-to-peer network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1550088A (zh) * 2001-08-28 2004-11-24 基于对等式分布计算技术的并行信息传送方法及其系统
CN1745533A (zh) * 2003-02-26 2006-03-08 艾利森电话股份有限公司 Arq系统中的传输控制方法
WO2005022813A1 (en) * 2003-08-21 2005-03-10 Qualcomm Incorporated Methods for seamless delivery of broadcast and multicast content across cell borders and/or between different transmission schemes and related apparatus
US20060224760A1 (en) 2005-03-15 2006-10-05 1000 Oaks Hu Lian Technology Development (Beijing) Co., Ltd. Method and system for providing streaming content in a peer-to-peer network with network coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2081319A4 *

Also Published As

Publication number Publication date
CN101174955A (zh) 2008-05-07
EP2081319A1 (en) 2009-07-22
US8055798B2 (en) 2011-11-08
EP2081319B1 (en) 2013-10-23
US20090204727A1 (en) 2009-08-13
CN101174955B (zh) 2010-04-21
EP2081319A4 (en) 2009-11-25

Similar Documents

Publication Publication Date Title
WO2008052450A1 (fr) Procédé et système permettant de transmettre un contenu partagé, terminal de contenu associé
Gkantsidis et al. Network coding for large scale content distribution
US8392448B2 (en) Method and apparatus for transmitting packets in the network
US8719889B2 (en) Live time-shift system based on P2P technology and method thereof
US10484445B2 (en) Apparatus and method for transmitting multimedia data in a broadcast system
CN101262487B (zh) 点对点客户端的数据传输处理方法及装置
CN105391515A (zh) 用于内容中心网络的网络编码
RU2005104018A (ru) Сжатие данных
CN104836821A (zh) 一种基于路由器设备的网络加速方法、装置和设备
WO2012142844A1 (zh) 一种基于p2p的文件分发系统及分片方法
JP2011082977A (ja) P2pネットワークシステム及びそのデータ送受信方法
US10237075B2 (en) Reconstructable content objects
WO2022242361A1 (zh) 数据下载方法、装置、计算机设备和存储介质
ITVI20120026A1 (it) Metodi per la condivisione di files relativi al protocollo bit fountain
US20110113099A1 (en) Method for transmitting buffer map and network thereof
WO2009087774A1 (ja) ネットワークカードおよび情報処理装置
CN103561013A (zh) 流媒体的数据分发系统
Chung et al. PNECOS: a peer-to-peer network coding streaming system
KR20190064066A (ko) IoT 로컬 네트워크에서 CoAP 기반의 트래픽 부하 관리 장치 및 방법
CN101771550A (zh) 一种p2p网络中获取媒体内容的方法、装置及系统
CN109286845B (zh) P2p点播系统及方法
CN115643301B (zh) 一种基于压缩布谷鸟过滤器的dds自动发现方法和介质
Meier et al. Peer-to-peer streaming in heterogeneous environments
CN106330887B (zh) 一种用于多媒体中转服务的数据传输方法
CN107087027B (zh) 一种基于移动社会网络文件分发方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07800957

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2007800957

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE