DETAILED ACTION
The communication is in response to applicant’s response filed under 37 C.F.R. §1.111 in response to a non-final office action. Claims 1, 8, and 12 have been amended. Claims 1-18 are subject to examination.
Response to Arguments
Applicant’s arguments with respect to the claims have been considered but are moot in view of the new grounds of rejection.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-18 are rejected under 35 U.S.C. 103 as being unpatentable over Lucani et al. (US 2015/0281406 A1, hereinafter “Lucani”) in view of Yi et al. (US 2012/0155531 A1, hereinafter “Yi”).
Regarding Claim 1, Lucani teaches a network encoding method, comprising: encoding k source data blocks in one generation to obtain a plurality of encoded data blocks, wherein k is an integer greater than 0, and encoding coefficients used for at least two of the plurality of encoded data blocks correspond to finite fields with different orders (Lucani: the method comprises ... encoding the plurality of source packets, using an outer code ... the outer code having a first field size; encoding the outer-coded packets... using an inner code ... the inner code having a second field size, wherein the second field size is not necessarily equal to the first field, see paragraph [0007]; The term “field size” refers to the order of a finite field, see paragraph [0038]);
generating one or more packets based on the plurality of encoded data blocks, wherein each of the one or more packets carries at least one encoded data block and an encoding coefficient corresponding to the at least one encoded data block (Lucani: an encoding vector is distributed together with each coded symbol/packet, see paragraph [0053]); and
sending the one or more packets (Lucani: Finally, the mapped packets can be encoded using the inner code and sent into the network, see paragraph [0069]).
Lucani does not explicitly teach, each of the at least two of the plurality of encoded data blocks is generated in a respective finite field of a different order.
However, in the same field of endeavor, Yi teaches, each of the at least two of the plurality of encoded data blocks is generated in a respective finite field of a different order (Yi: The apparatus comprises an encoder to divide a source file into N segments, generates N main encoded data in a first finite field and encodes the N segments in a second finite field to generate k additional encoded data, see paragraph [0013]).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the invention of Lucani to include the features as taught by Yi above in order to use a smaller amount of computation and data transferring (Yi: see paragraph [0047]).
Regarding Claim 2, Lucani-Yi teaches the network encoding method according to claim 1, wherein the encoding k source data blocks in one generation to obtain a plurality of encoded data blocks comprises: performing a first encoding operation on the k source data blocks by using a first encoding matrix to obtain the plurality of encoded data blocks, wherein the first encoding matrix comprises encoding coefficients of at least two types of finite fields with different orders (Lucani: The outer coding matrix 308 comprises a first sub-matrix 308a and a second sub-matrix 308b. In this example, the first sub-matrix 308a is an identity matrix used to map the n source symbols directly to the inner code, whereas the second sub-matrix 308b defines the outer code, see paragraph [0067] and Fig. 3; Typically, in preferred embodiments, the outer code utilizes a field size which is higher (or greater than) than a field size utilized by the inner code, see paragraph [0041]).
Regarding Claim 3, Lucani-Yi teaches the network encoding method according to claim 2, wherein the network encoding method further comprises: generating h1 packets based on the k source data blocks, wherein each of the h1 packets carries at least one source data block and at least one encoding coefficient corresponding to the at least one source data block (Lucani: in some embodiments, an encoding vector is distributed together with each coded symbol/packet, see paragraph [0053]), encoding coefficients corresponding to the k source data blocks form a k×k matrix in which diagonal elements are 1 and elements other than the diagonal elements are 0, elements in any row in the k×k matrix are k encoding coefficients corresponding to one of the k source data blocks, and h1 is an integer greater than 0 and not greater than k (Lucani: In this example, the first sub-matrix 308a is an identity matrix used to map the n source symbols directly to the inner code, see paragraph [0067] and Fig. 3); and
sending the h1 packets (Lucani: the mapped packets can be … sent into the network, see paragraph [0069]).
Regarding Claim 4, Lucani-Yi teaches the network encoding method according to claim 1, wherein the encoding k source data blocks in one generation to obtain a plurality of encoded data blocks comprises: performing a second encoding operation on the k source data blocks by using a second encoding matrix to obtain n1 encoded data blocks, wherein n1 is an integer greater than 0 (Lucani: the sender provides n source packets … and the outer encoder generates n+r outer-coded packets … using GF(2h), see paragraph [0052]), an order of a finite field corresponding to a first encoding coefficient comprised in the second encoding matrix is higher than an order of a first finite field, and the first finite field is a finite field corresponding to a third encoding matrix (Lucani: the outer code utilizes a field size which is higher … than a field size utilized by the inner code, see paragraph [0041]); and
performing a third encoding operation on the n1 encoded data blocks and the k source data blocks by using the third encoding matrix to obtain m encoded data blocks, wherein m is an integer greater than 0, and the plurality of encoded data blocks comprise the n1 encoded data blocks and the m encoded data blocks (Lucani: The inner encoder may encode the re-labeled packets as inner-coded packets using GF(2), see paragraph [0052]).
Regarding Claim 5, Lucani-Yi teaches the network encoding method according to claim 4, wherein the network encoding method further comprises: generating h2 packets based on the k source data blocks, wherein each of the h2 packets carries at least one source data block and at least one encoding coefficient corresponding to the at least one source data block, and h2 is an integer greater than 0 and not greater than k, wherein: encoding coefficients corresponding to the k source data blocks and second encoding coefficients corresponding to the n-1 encoded data blocks form a (k+n1)x(k+n1) matrix in which diagonal elements are 1 and elements other than the diagonal elements are 0 (Lucani: the … outer-coded packets 212 are mapped to the inner code by assigning coefficients 314, see paragraph [0069] and Fig. 3 item 314; In some embodiments, an encoding vector is distributed together with each coded symbol/packet, see paragraph [0056]),
elements in any row in the (k+n1)x(k+n1) matrix are k+n1 encoding coefficients corresponding to one of the k source data blocks or k+n1 encoding coefficients corresponding to one of the n1 encoded data blocks (Lucani: see Fig. 3 item 314; In some embodiments, an encoding vector is distributed together with each coded symbol/packet, see paragraph [0056]), and
the second encoding coefficient is an encoding coefficient in encoding coefficients corresponding to the n1 encoded data blocks other than the first encoding coefficient used for the second encoding operation (Lucani: Wherein a network supports GF(2) coding, the coefficients 314 are binary, as shown, see paragraph [0069] and Fig. 3 items 308b and 314); and
sending the h2 packets (Lucani: the mapped packets can be … sent into the network, see paragraph [0069]).
Regarding Claim 6, Lucani-Yi teaches the network encoding method according to claim 1, wherein the encoding k source data blocks in one generation to obtain a plurality of encoded data blocks comprises: performing a fourth encoding operation on the k source data blocks by using a fourth encoding matrix to obtain n2 intermediate data blocks, wherein n2 is an integer greater than 0 (Lucani: the sender provides n source packets … and the outer encoder generates n+r outer-coded packets … using GF(2h), see paragraph [0052]), an order of a finite field corresponding to an encoding coefficient comprised in the fourth encoding matrix is higher than an order of a second finite field, and the second finite field is a finite field corresponding to a fifth encoding matrix (Lucani: the outer code utilizes a field size which is higher … than a field size utilized by the inner code, see paragraph [0041]); and
performing a fifth encoding operation on the n2 intermediate data blocks and the k source data blocks by using the fifth encoding matrix to obtain the plurality of encoded data blocks (Lucani: The inner encoder may encode the re-labeled packets as inner-coded packets using GF(2), see paragraph [0052]).
Regarding Claim 7, Lucani-Yi teaches the network encoding method according to claim 1, wherein each of the one or more packets further carries indication information, and the indication information indicates an order of a finite field corresponding to an encoded data block carried in each of the one or more packets (Lucani: In some embodiments, an encoding vector is distributed together with each coded symbol/packet, see paragraph [0053]). *Note: the order of a field used for encoding can be derived from the encoding vector.
Regarding Claim 8, Lucani teaches a network encoding method, comprising: receiving n packets, wherein n is an integer greater than, each of the n packets carries a1 data blocks and encoding coefficients corresponding to the a-1 data blocks, a1 is an integer greater than 0, and encoding coefficients carried in the n packets correspond to one or more finite fields (Lucani: the intermediate nodes 204 receive coded packets, see paragraph [0056] and Fig. 2; the … outer-coded packets 212 are mapped to the inner code by assigning coefficients 314, see paragraph [0069] and Fig. 3);
determining a finite field for recoding based on one or more of the following information: an encoding computing power of a network node, the one or more finite fields corresponding to the encoding coefficients carried in the n packets, and network load (Lucani: the intermediate nodes typically implement an inner recoder, see paragraph [0056]; The inner and outer code field sizes may be selected based upon the capabilities of the source, the capabilities of the intermediate nodes, the capabilities of the receivers, and/or based upon desired network flow characteristics, see paragraph [0041]);
recoding, based on the finite field for recoding, data blocks and the encoding coefficients carried in the n packets to obtain v encoding results, wherein v is an integer greater than 0 (Lucani: Recoding can be done as a standard GF(2) RLNC system would do … However, the network can also support other recoding mechanisms, see paragraph [0056] ); and
sending m1 recoded packets, wherein each of the m1 recoded packets carries at least one of the v encoding results, and m1 is an integer greater than 0 and not greater than v (Lucani: the intermediate nodes … send recoded versions into the network, see paragraph [0056]).
Lucani does not explicitly teach, at least two of the encoding coefficients carried in the n packets correspond to respective finite fields of different orders.
However, in the same field of endeavor, Yi teaches, at least two of the encoding coefficients carried in the n packets correspond to respective finite fields of different orders (Yi: Accordingly, in the exemplary embodiments, different finite fields of different sizes may be used to generate encoded data during the data transferring mechanism. The set of encoded coefficients 416 includes two parts of coefficients, wherein one part of the coefficients belongs to the first finite field, and the other part of coefficients belongs to the second finite field, see paragraph [0034]).
The rationale and motivation for adding the teaching of Yi is the same as the rationale and motivation for Claim 1.
Regarding Claim 9, Lucani-Yi teaches the network encoding method according to claim 8, wherein there are one or more finite fields for recoding (Lucani: in some embodiments, the intermediate node 204 includes an outer recoder… Such recoders may primarily operate using GF(2). However … it may choose to map back to the higher field, see paragraph [0057]).
Regarding Claim 10, Lucani-Yi teaches the network encoding method according to claim 8, wherein the recoding, based on the finite field for recoding, data blocks and the encoding coefficients carried in the n packets comprises: performing, by using a seventh encoding matrix, an encoding operation on the data blocks carried in the n packets to obtain v recoded data blocks, wherein an encoding coefficient comprised in the seventh encoding matrix belongs to the finite field for recoding (Lucani: In some embodiments, the recoding comprises encoding the received packets using the inner code to generate a plurality of recoded packets, see paragraph [0013]; The intermediate nodes 104 can recode using only GF(2) operations or may operate in higher fields, see paragraph [0042]); and
performing, by using the seventh encoding matrix, an encoding operation on the encoding coefficients carried in the n packets to obtain v groups of recoded encoding coefficients, wherein each of the v encoding results comprises one recoded data block and a corresponding one of the v groups of recoded encoding coefficients (Lucani: In some embodiments, the recoding comprises encoding the received packets using the inner code to generate a plurality of recoded packets, see paragraph [0013]; In some embodiments, an updated encoding vector is distributed together with each coded symbol/packet, see paragraph [0056]).
Regarding Claim 11, Lucani-Yi teaches the network encoding method according to claim 8, wherein the determining a finite field for recoding based on the one or more finite fields corresponding to the encoding coefficients carried in the n packets comprises: determining, as the finite field for recoding, a finite field with a highest order in the one or more finite fields corresponding to the encoding coefficients carried in the n packets (Lucani: The intermediate nodes can recode using the inner code, the outer code, or a combination of the inner and outer codes. The inner and outer code field sizes may be selected based upon the capabilities of the source, the capabilities of the intermediate nodes, the capabilities of the receivers, and/or based upon desired network flow characteristics, see paragraph [0041]).
Regarding Claim 12, Lucani teaches a network encoding apparatus, comprising: at least one processor (Lucani: The computer includes a processor, see paragraph [0093]);
one or more memories coupled to the at least one processor and storing programming instructions for execution by the at least one processor (Lucani: the computer includes a processor, a volatile memory, a non-volatile memory... each of which is coupled together by a bus. The non-volatile memory stores computer instructions... In one example, the computer instructions are executed by the processor out of volatile memory, see paragraph [0093]) to: encode k source data blocks in one generation to obtain a plurality of encoded data blocks, wherein k is an integer greater than 0, and encoding coefficients used for at least two of the plurality of encoded data blocks correspond to finite fields with different orders (Lucani: FIG. 6 shows an exemplary computer that can perform at least part of the processing described herein, see paragraph [0093]; the method comprises ... encoding the plurality of source packets, using an outer code ... the outer code having a first field size; encoding the outer-coded packets... using an inner code ... the inner code having a second field size, wherein the second field size is not necessarily equal to the first field, see paragraph [0007]); and
generate one or more packets based on the plurality of encoded data blocks, wherein each of the one or more packets carries at least one encoded data block and an encoding coefficient corresponding to the at least one encoded data block (Lucani: the … outer-coded packets 212 are mapped to the inner code by assigning coefficients 314, see paragraph [0069] and Fig. 3); and
a transceiver, configured to send the one or more packets (Lucani: The terms “source” and “source node” are used herein to refer to a node in a network that transmits (or sends) packets (referred to as “source packets”) to one or more other nodes via one or more links in the network., see paragraph [0036]).
Lucani does not explicitly teach, each of the at least two of the plurality of encoded data blocks is generated in a respective finite field of a different order.
However, in the same field of endeavor, Yi teaches, each of the at least two of the plurality of encoded data blocks is generated in a respective finite field of a different order (Yi: First, encoder 410 divides source file 401 into N segments, and encodes the N segments in a first finite filed by using main encoding element 412 to generate N main encoded data 412a. Then, additional encoding element 414 encodes the N segments in a second finite field to generate k additional encoded data 414a. Then, encoder 410 outputs a set of encoded coefficients 416 and N+k encoded data 418, see paragraph [0032]).
The rationale and motivation for adding the teaching of Yi is the same as the rationale and motivation for Claim 1.
Regarding Claim 13, Lucani-Yi teaches the network encoding apparatus according to claim 12, wherein when encoding the k source data blocks in one generation to obtain the plurality of encoded data blocks, the one or more memories store the programming instructions for execution by the at least one processor (Lucani: In one example, the computer instructions are executed by the processor out of volatile memory, see paragraph [0093]) to: perform a first encoding operation on the k source data blocks by using a first encoding matrix to obtain the plurality of encoded data blocks, wherein the first encoding matrix comprises encoding coefficients of at least two types of finite fields with different orders (Lucani: The outer coding matrix 308 comprises a first sub-matrix 308a and a second sub-matrix 308b. In this example, the first sub-matrix 308a is an identity matrix used to map the n source symbols directly to the inner code, whereas the second sub-matrix 308b defines the outer code, see paragraph [0067] and Fig. 3).
Regarding Claim 14, Lucani-Yi teaches the network encoding apparatus according to claim 13, wherein: the one or more memories store the programming instructions for execution by the at least one processor (Lucani: In one example, the computer instructions are executed by the processor out of volatile memory, see paragraph [0093]) to generate h1 packets based on the k source data blocks, wherein each of the h1 packets carries at least one source data block and at least one encoding coefficient corresponding to the at least one source data block (Lucani: in some embodiments, an encoding vector is distributed together with each coded symbol/packet, see paragraph [0053]), encoding coefficients corresponding to the k source data blocks form a k×k matrix in which diagonal elements are 1 and elements other than the diagonal elements are 0, elements in any row in the k×k matrix are k encoding coefficients corresponding to one of the k source data blocks, and h1 is an integer greater than 0 and not greater than k (Lucani: In this example, the first sub-matrix 308a is an identity matrix used to map the n source symbols directly to the inner code, see paragraph [0067] and Fig. 3); and
the transceiver is further configured to send the h1 packets (Lucani: the mapped packets can be … sent into the network, see paragraph [0069]).
Regarding Claim 15, Lucani-Yi teaches the network encoding apparatus according to claim 12, wherein when encoding the k source data blocks in one generation to obtain the plurality of encoded data blocks, the one or more memories store the programming instructions for execution by the at least one processor to: perform a second encoding operation on the k source data blocks by using a second encoding matrix to obtain n-1 encoded data blocks, wherein n1 is an integer greater than 0 (Lucani: the sender provides n source packets … and the outer encoder generates n+r outer-coded packets … using GF(2h), see paragraph [0052]), an order of a finite field corresponding to a first encoding coefficient comprised in the second encoding matrix is higher than an order of a first finite field, and the first finite field is a finite field corresponding to a third encoding matrix (Lucani: the outer code utilizes a field size which is higher … than a field size utilized by the inner code, see paragraph [0041]); and
perform a third encoding operation on the n1 encoded data blocks and the k source data blocks by using the third encoding matrix to obtain m encoded data blocks, wherein m is an integer greater than 0, and the plurality of encoded data blocks comprise the n-1 encoded data blocks and the m encoded data blocks (Lucani: The inner encoder may encode the re-labeled packets as inner-coded packets using GF(2), see paragraph [0052]).
Regarding Claim 16, Lucani-Yi teaches the network encoding apparatus according to claim 15, wherein: the one or more memories store the programming instructions for execution by the at least one processor to: generate h2 packets based on the k source data blocks, wherein each of the h2 packets carries at least one source data block and at least one encoding coefficient corresponding to the at least one source data block, and h2 is an integer greater than 0 and not greater than k, wherein: encoding coefficients corresponding to the k source data blocks and second encoding coefficients corresponding to the n-1 encoded data blocks form a (k+n1)x(k+n1) matrix in which diagonal elements are 1 and elements other than the diagonal elements are 0 (Lucani: the … outer-coded packets 212 are mapped to the inner code by assigning coefficients 314, see paragraph [0069] and Fig. 3 item 314; In some embodiments, an encoding vector is distributed together with each coded symbol/packet, see paragraph [0056]),
elements in any row in the (k+n1)x(k+n1) matrix are k+n1 encoding coefficients corresponding to one of the k source data blocks or k+n1 encoding coefficients corresponding to one of the n1 encoded data blocks (Lucani: see Fig. 3 item 314; In some embodiments, an encoding vector is distributed together with each coded symbol/packet, see paragraph [0056]), and
the second encoding coefficient is an encoding coefficient in encoding coefficients corresponding to the n1 encoded data blocks other than the first encoding coefficient used for the second encoding operation (Lucani: Wherein a network supports GF(2) coding, the coefficients 314 are binary, as shown, see paragraph [0069] and Fig. 3 items 308b and 314); and
the transceiver is further configured to send the h2 packets (Lucani: the mapped packets can be … sent into the network, see paragraph [0069]).
Regarding Claim 17, Lucani-Yi teaches the network encoding apparatus according to claim 12, wherein when encoding the k source data blocks in one generation to obtain the plurality of encoded data blocks, the one or more memories store the programming instructions for execution by the at least one processor to: perform a fourth encoding operation on the k source data blocks by using a fourth encoding matrix to obtain n2 intermediate data blocks, wherein n2 is an integer greater than 0 (Lucani: the sender provides n source packets … and the outer encoder generates n+r outer-coded packets … using GF(2h), see paragraph [0052]), an order of a finite field corresponding to an encoding coefficient comprised in the fourth encoding matrix is higher than an order of a second finite field, and the second finite field is a finite field corresponding to a fifth encoding matrix (Lucani: the outer code utilizes a field size which is higher … than a field size utilized by the inner code, see paragraph [0041]); and
perform a fifth encoding operation on the n2 intermediate data blocks and the k source data blocks by using the fifth encoding matrix to obtain the plurality of encoded data blocks (Lucani: The inner encoder may encode the re-labeled packets as inner-coded packets using GF(2), see paragraph [0052]).
Regarding Claim 18, Lucani-Yi teaches the network encoding apparatus according to claim 12, wherein each of the one or more packets further carries indication information, and the indication information indicates an order of a finite field corresponding to an encoded data block carried in each of the one or more packets (Lucani: In some embodiments, an encoding vector is distributed together with each coded symbol/packet, see paragraph [0053]). *Note: the order of a field used for encoding can be derived from the encoding vector.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to PHILLIP J EGAN KEARNS whose telephone number is 571-272-4869. The examiner can normally be reached M-F 9-6 EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, NOEL BEHARRY can be reached at 571-270-5630. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/P.K./Examiner, Art Unit 2416
/SAI AUNG/Primary Examiner, Art Unit 2416