DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
The amendment submitted on 07/14/2025 has been received and considered by the examiner. Claims 1, 13, 14, 16, and 20 were amended, and all uncancelled claims remain pending.
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.
Response to Arguments
Regarding the new limitations added to the independent claims in the most recent amendment, the applicant states that “Hodgkinson fails to disclose or render obvious the features of claim 1 and 14” (Applicant Remarks, p. 10). With respect to the new limitation describing a tunable rate for adapting the jitter buffer, the examiner agrees. However, the applicant goes on to assert: “Jansson does not remedy the deficiencies of Hodgkinson” and portrays Janssen as teaching only “‘limiting increase rate’ or having a ‘configured inertia’ wherein the jitter buffer size remains constant for a fixed, predetermined duration before decreasing” (Remarks, p. 10). However, even this reductive summary of Janssen fails to distinguish its teachings from the claimed invention because, by the applicant’s own admission, Janssen describes “the jitter buffer size ... decreasing” (Remarks, p. 10). Such decreases (and increases) in jitter buffer size occur, as described in Janssen, in real time to handle different bitrates in a network (see Janssen col. 2, lines 10-14). Since a buffer size “decreasing” over time is indistinguishable from “a jitter buffer whose adaptation rate itself is ‘tunable’” (Remarks, p. 10), and bit rate is one measure of “the current condition of the network”, Janssen’s teachings fall within the broadest reasonable interpretation of “dynamically adjusting ... a size of the jitter buffer at a size adaptation rate that is tunable in response to changes in ... the current condition of the network”.
Furthermore, the applicant’s summary of Janssen disregards even more explicit disclosure of the claimed features elsewhere, such as Janssen’s description of “an adaptive jitter buffer” where “the jitter of received packets is continuously measured and the depth of the jitter buffer is adjusted accordingly” (Janssen, col. 6, lines 45-54). The fact that Janssen teaches a cap or limit on the tunable rate of buffer resizing does not, as the applicant suggests, abrogate its teaching that this rate is “tunable”. On the contrary, in Janssen, this limit is necessitated precisely by the dynamic size adjustment reflected in the claims. Such adaptive buffer resizing clearly falls within the broadest reasonable interpretation of “dynamically adjusting ... a size of the jitter buffer”. Janssen therefore forms a reasonable basis for rejecting the new claim limitations which Hodgkinson does not teach, meaning these two references together form a basis for rejecting the newly amended independent claims.
Claim Rejections - 35 USC § 103
The text of those sections of Title 35, U.S. Code not included in this action can be found in a prior Office action.
Claim(s) 1-7, 10-11, and 13-21 is/are rejected under 35 U.S.C. 103 as being unpatentable over Hodgkinson et al. (US 20200112600 A1, hereinafter “Hodgkinson”) in view of Jansson et al. (US 10313276 B2, hereinafter “Jansson”).
As to Claim 1:
Hodgkinson discloses a method to adjust the depth of a jitter buffer to optimize the quality of received audio.
Specifically, Hodgkinson teaches:
Receiving a stream of audio packets at a device via a network
(“Communication technologies increasingly use computer equipment and computer networks for conveying voice and other audio content in real time between parties” (Hodgkinson, 0002).
Here, “conveying” maps to “receiving”,
“audio content in real time” maps to “a stream of audio packets”,
“computer equipment” maps to “a device”, and
one of the “computer networks” maps to “via a network”).
Buffering audio packets of the stream at a jitter buffer of the device
(“[T]he setting being adjusted is the length of a jitter buffer configured to temporarily hold audio data received by the first computing device over the computer network prior to decoding the audio data” (Hodgkinson, 0009).
Here, “hold audio data received” maps to “buffering audio packets of the stream”,
“a jitter buffer” maps to “a jitter buffer”, and
“the first computing device” maps to “the device”).
Dynamically adjusting, based on a representation of a current condition of the network, a size of the jitter buffer ... in response to changes in the representation of the current condition of the network
(“Many factors can degrade audio quality ... For example, long network delays can cause latency or echo.... The method includes generating ... multiple audio factors of the communication session, each of the audio factors being susceptible to degradation ... The method further includes combining the audio factors to produce an overall measure of audio quality and taking remedial action ... [T]he setting being adjusted is the length of a jitter buffer configured to temporarily hold audio data received by the first computing device over the computer network prior to decoding the audio data” (Hodgkinson, 0003, 0007, 0009).
Here, “setting being adjusted” maps to “dynamically adjusting”,
“taking remedial action” maps to “based on” because it shows that the buffer adjustment is a response to adverse conditions, and
“long network delays” map to “a current condition of the network”,
“length” maps to “a size”,
“a jitter buffer” maps to “the jitter buffer”,
“remedial action” maps to “in response to changes”, and
“overall measure of audio quality” maps to “the representation of the current condition of the network”).
Hodgkinson does not explicitly disclose:
Dynamically adjusting ... a size adaptation rate that is tunable in response to changes in ... the current condition of the network
However, Jansson does disclose a method for increasing or decreasing the size of a jitter buffer depending on the current bitrate.
Specifically, Jansson teaches:
Dynamically adjusting ... a size adaptation rate that is tunable in response to changes in ... the current condition of the network
(“[I]ncreasing the depth of the jitter buffer may comprise limiting the rate of increase of the jitter buffer depth to a limiting increase rate. The step of increasing the depth of the jitter buffer may be started at a time to allow the jitter buffer depth to reach a sufficient level to handle attempts of increased bitrate over the communication channel” (Jansson, col. 2, lines 7-13).
Here, “increasing” maps to “dynamically adjusting”,
“a limiting increase rate” of “jitter buffer depth” maps to “a size adaptation rate that is tunable”,
“to handle” maps to “in response to”, and
“increased bitrate over the communication channel” maps to “changes in ... the current condition of the network”).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the adaptation rate for the size of a jitter buffer into Hodgkinson’s method for adjusting an audio packet buffer in response to network conditions. An analog adaptation rate helps the jitter buffer remain useful and relevant to changing network conditions.
As to Claim 2:
Hodgkinson teaches:
Determining the representation of the current condition of the network based on a congestion level of the network
(“[T]he interactivity estimator 1136 [in Fig. 11] is configured to generate a measure 1136a of interactivity between the computing device 110 and a second computing device that participates in a communication session with the computing device 110” (Hodgkinson, 0114).
Here, “generate a measure” maps to “determining”,
“interactivity” maps to “the representation of the current condition of the network based on a congestion level of the network” because the “interactivity” is the amount of traffic between two devices).
As to Claim 3:
Hodgkinson teaches:
Determining the representation of the current condition of the network based on measured differences between arrival times of successive audio packets of the stream
(“At 1310 [in Fig. 13], the delay histogram builder 1132 measures delays in audio packets 1112 as they arrive at receiver 1110. For example, each packet 1112 has an expected arrival time .... the delay histogram builder 1132 measures the difference between actual arrival time and expected arrival time of each packet 1112” (Hodgkinson, 0129).
Here, “measures delays” maps to “determining the representation of the current condition of the network”, and
“measures the difference between actual arrival time and expected arrival time of each packet” maps to “based on measured differences between arrival times of successive audio packets of the stream”).
As to Claim 4:
Hodgkinson teaches:
Determining the representation of the current condition based on a statistical analysis of the measured differences between arrival times of successive audio packets
(“At 1310 [in Fig. 13], the delay histogram builder 1132 measures delays in audio packets 1112 as they arrive at receiver 1110. For example, each packet 1112 has an expected arrival time .... the delay histogram builder 1132 measures the difference between actual arrival time and expected arrival time of each packet 1112” (Hodgkinson, 0129).
Here, “measures delays” maps to “determining the representation of the current condition”, and
“the delay histogram” for “the difference between actual arrival time and expected arrival time of each packet” maps to “a statistical analysis of the measured differences between arrival times of successive audio packets”).
As to Claim 5:
Hodgkinson teaches:
The representation of the current condition comprises one of a histogram or a probability density function determined from the measured differences between arrival times of successive audio packets
(“At 1310 [in Fig. 13], the delay histogram builder 1132 measures delays in audio packets 1112 as they arrive at receiver 1110. For example, each packet 1112 has an expected arrival time .... the delay histogram builder 1132 measures the difference between actual arrival time and expected arrival time of each packet 1112” (Hodgkinson, 0129).
Here, “delay histogram” maps to “the representation of the current condition comprises ... a histogram” from the list of “the representation of the current condition comprises one of a histogram or a probability density function”, and
“measures the difference between actual arrival time and expected arrival time of each packet” maps to “determined from the measured differences between arrival times of successive audio packets”).
As to Claim 6:
Hodgkinson teaches:
Determining a first subset of audio packets of the stream of audio packets arriving within a first period based on a first bin of the histogram
(“[H]istogram 1460 [in Fig. 14] includes one bucket 1470 for each unique value of normalized delay.... Although histogram 1460 shows one bucket per delay value, a more generalized solution may be for each bucket 1470 to cover a respective range of delay values (e.g., 0-10 ms, 10.1-20 ms, or 20.1-30 ms, etc.)” (Hodgkinson, 0131).
Here, “includes” maps to “determining”,
“0-10 ms” maps to “a first period”,
“a respective range of delay values (e.g., 0-10 ms)” maps to “a first subset of audio packets of the stream of audio packets arriving within a first period”, and
“one bucket” maps to “a first bin of the histogram”).
Determining a second subset of audio packets of the stream of audio packets arriving between the first period and a second period based on a second bin of the histogram
(“[H]istogram 1460 [in Fig. 14] includes one bucket 1470 for each unique value of normalized delay.... Although histogram 1460 shows one bucket per delay value, a more generalized solution may be for each bucket 1470 to cover a respective range of delay values (e.g., 0-10 ms, 10.1-20 ms, or 20.1-30 ms, etc.)” (Hodgkinson, 0131).
Here, “includes” maps to “determining”,
“10.1-20 ms” maps to “between the first period and a second period”,
“a respective range of delay values (e.g. ... 10.1-20 ms)” maps to “a second subset of audio packets arriving between the first period and a second period”, and
another “bucket” of the “histogram” maps to “a second bin of the histogram”).
Determining a percentile of total packets received based on the first subset of audio packets and the second subset of audio packets
(“[A] more generalized solution may be ... to count the number of audio samples arriving in packets whose delay falls within the respective delay range” (Hodgkinson, 0131).
Here, “count the number of audio samples arriving in packets” maps to “determining a percentile of total packets received”, and
“within the respective delay range” maps to “based on the first subset of audio packets and the second subset of audio packets”).
Adjusting the size of the jitter buffer based on the percentile of total packets received satisfying a target percentile of total packets received
(“At 1340 [in Fig. 13], the jitter buffer manager 1160 sets the actual jitter buffer length 1122 of the jitter buffer 1120 based on the normalized delay of the bucket 1470 that yields the highest audio quality prediction” (Hodgkinson, 0134).
Here, “sets the actual jitter buffer length” maps to “adjusting the size of the jitter buffer”,
“based on ... bucket 1470” maps to “based on the percentile of total packets received”, and
“the highest audio quality prediction” maps to “satisfying a target percentile of total packets received”).
As to Claim 7:
From the list of
The statistical analysis is performed for one of:
Measured differences between arrival times of successive audio packets since a start of a session for the stream; or
Measured differences between arrival times of successive audio packets over a sliding time window
Hodgkinson at least teaches:
The statistical analysis is performed for one of: measured differences between arrival times of successive audio packets since a start of a session for the stream
(“[P]ackets 1112 are seen to arrive at irregular intervals ... By tracking actual arrival times of packets 1112, the delay histogram builder 132 can construct a table 1450 (Fig. 14b), which associates packets ... with corresponding delay values” (Hodgkinson, 0130). Fig. 14a shows a graph of the packet arrival times that have been recorded.
Here, “histogram” maps to “the statistical analysis”,
“tracking” maps to “performed”,
“corresponding delay values” map to “measured differences between arrival times”,
“packets” maps to “successive audio packets”, and
the point in the graph of Fig. 14a labelled “0” maps to “a start of a session for the stream”).
As to Claim 10:
Hodgkinson does not explicitly disclose:
However, Jansson does teach:
Determining the size adaptation rate for adjusting the size of the jitter buffer from a current size to a target size
(“Optionally, the rate of increase of the jitter buffer is limited to a limiting increase rate” (Jansson, col. 10, lines 44-45).
Here, “the rate of increase of the jitter buffer is limited” maps to “determining the size adaptation rate for adjusting the size of the jitter buffer from a current size to a target size”).
Adjusting the size of the jitter buffer to the target size at the size adaptation rate
(“Optionally, the rate of increase of the jitter buffer is limited to a limiting increase rate” (Jansson, col. 10, lines 44-45).
Here, “increase” maps to “adjusting the size ... to the target size”,
“the jitter buffer” maps to “the jitter buffer”, and
“limiting increase rate” maps to “the size adaptation rate”).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the adjustable rate of change in the size of the jitter buffer disclosed in Jansson into Hodgkinson’s method for configuring the jitter buffer size. As noted in Jansson, limiting the rate of change can help reduce artefacting in the buffered audio.
As to Claim 11:
Hodgkinson does not explicitly disclose:
The size adaptation rate is based on a programmable duration over which the size of the jitter buffer is to be adapted to the target size
However, Jansson does teach:
The size adaptation rate is based on a programmable duration over which the size of the jitter buffer is to be adapted to the target size
(“Once the jitter buffer has increased in depth due to the probing period, there is typically a configured inertia to change of the jitter buffer, whereby the jitter buffer stays at the greater depth for awhile before the jitter buffer depth decreases. This inertia can be configurable and can vary between implementations” (Jansson, col. 9, lines 15-20).
Here, the rate at which “the jitter buffer depth decreases” maps to “the size adaptation rate”,
“inertia” maps to “a ... duration over which the size of the jitter buffer is to be adapted to the target size” because the adaptation will take at least as long as the inertia period, and
“configurable” maps to “programmable”).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to base the size adaptation rate of the jitter buffer taught in Hodgkinson on a programmable parameter, as disclosed in Jansson. Making the duration of jitter buffer change programmable gives a user more fine-grained control over a device’s behavior to optimize its performance in different network conditions.
As to Claim 13:
Hodgkinson teaches:
A non-transitory computer-readable medium storing a set of executable instructions that, when executed by at least one processor, manipulate the at least one processor
(“A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by control circuitry of a first computing device, cause the control circuitry to perform a method” (Hodgkinson, Claim 14).
Here, “non-transitory ... media” maps to “a non-transitory computer-readable medium”,
“having instructions” maps to “storing a set of executable instructions”,
“when executed by control circuitry” maps to “when executed by at least one processor”, and
“cause the control circuitry” maps to “manipulate the at least one processor”).
Receive a stream of audio packets at a device via a network
(“Communication technologies increasingly use computer equipment and computer networks for conveying voice and other audio content in real time between parties” (Hodgkinson, 0002).
Here, “conveying” maps to “receive”,
“audio content in real time” maps to “a stream of audio packets”,
“computer equipment” maps to “a device”, and
one of the “computer networks” maps to “via a network”).
Buffer audio packets of the stream at a jitter buffer of the device
(“[T]he setting being adjusted is the length of a jitter buffer configured to temporarily hold audio data received by the first computing device over the computer network prior to decoding the audio data” (Hodgkinson, 0009).
Here, “hold audio data received” maps to “buffer audio packets of the stream”,
“a jitter buffer” maps to “a jitter buffer”, and
“the first computing device” maps to “the device”).
Dynamically adjust, based on a representation of a current condition of the network, a size of the jitter buffer ... in response to changes in the representation of the current condition of the network
(“Many factors can degrade audio quality ... For example, long network delays can cause latency or echo.... The method includes generating ... multiple audio factors of the communication session, each of the audio factors being susceptible to degradation ... The method further includes combining the audio factors to produce an overall measure of audio quality and taking remedial action ... [T]he setting being adjusted is the length of a jitter buffer configured to temporarily hold audio data received by the first computing device over the computer network prior to decoding the audio data” (Hodgkinson, 0003, 0007, 0009).
Here, “setting being adjusted” maps to “dynamically adjust”,
“taking remedial action” maps to “based on” because it shows that the buffer adjustment is a response to adverse conditions, and
“long network delays” map to “a current condition of the network”,
“length” maps to “a size”,
“a jitter buffer” maps to “the jitter buffer”,
“remedial action” maps to “in response to changes”, and
“overall measure of audio quality” maps to “the representation of the current condition of the network”).
Hodgkinson does not explicitly disclose:
A size adaptation rate that is tunable in response to changes in ... the current condition of the network
However, Jansson does teach:
A size adaptation rate that is tunable in response to changes in ... the current condition of the network
(“[I]ncreasing the depth of the jitter buffer may comprise limiting the rate of increase of the jitter buffer depth to a limiting increase rate. The step of increasing the depth of the jitter buffer may be started at a time to allow the jitter buffer depth to reach a sufficient level to handle attempts of increased bitrate over the communication channel” (Jansson, col. 2, lines 7-13).
Here, “a limiting increase rate” of “jitter buffer depth” maps to “a size adaptation rate that is tunable”,
“to handle” maps to “in response to”, and
“increased bitrate over the communication channel” maps to “changes in ... the current condition of the network”).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the adaptation rate for the size of a jitter buffer into Hodgkinson’s method for adjusting an audio packet buffer in response to network conditions. An analog adaptation rate helps the jitter buffer remain useful and relevant to changing network conditions.
As to Claim 14:
Hodgkinson teaches:
A network interface configured to couple to a network to receive a stream of audio packets
(Fig. 11 in Hodgkinson shows an example computing device with a jitter buffer.
Here, “Receiver 1110” maps to “a network interface”,
the receiver’s connection to the stream of incoming “Packets 1112” maps to “configured to couple to a network to receive”, and
“Packets 1112” maps to “a stream of audio packets”).
A jitter buffer configured to buffer audio packets of the stream, the jitter buffer having an adjustable size
(“In some examples, the setting being adjusted is the length of a jitter buffer configured to temporarily hold audio data received” (Hodgkinson, 0009). Fig. 11 in Hodgkinson shows an example computing device with a jitter buffer.
Here, “JBL 1122” maps to “a jitter buffer configured to buffer”,
“Packets 1112” map to “audio packets of the stream”, and
“the setting being adjusted is the length of a jitter buffer” maps to “the jitter buffer having an adjustable size”).
A buffer controller coupled to the network interface and the jitter buffer, the buffer controller configured to dynamically adjust the size of the jitter buffer based on a representation of a current condition of the network ... in response to changes in the representation of the current condition of the network
(“Many factors can degrade audio quality ... For example, long network delays can cause latency or echo.... The method includes generating ... multiple audio factors of the communication session, each of the audio factors being susceptible to degradation ... The method further includes combining the audio factors to produce an overall measure of audio quality and taking remedial action ... [T]he setting being adjusted is the length of a jitter buffer configured to temporarily hold audio data received by the first computing device over the computer network prior to decoding the audio data” (Hodgkinson, 0003, 0007, 0009).
Here, “Jitter Buffer Mgr 1160” maps to “a buffer controller”,
the connections between the “Jitter Buffer Mgr 1160”, the “Receiver 1110”, and “JBL 1122” map to “coupled to the network interface”,
“Receiver 1110” maps to “the network interface”,
“JBL 1122” maps to “the jitter buffer”,
“adjusting ... the length of a jitter buffer” maps to “configured to dynamically adjust the size of the jitter buffer”,
“remedial action” maps to “in response to changes”, and
“an overall measure of audio quality” maps to “a representation of a current condition of the network”).
Hodgkinson does not explicitly disclose:
Dynamically adjust ... a size adaptation rate that is tunable in response to changes in ... the current condition of the network
However, Jansson does teach:
Dynamically adjust ... a size adaptation rate that is tunable in response to changes in ... the current condition of the network
(“[I]ncreasing the depth of the jitter buffer may comprise limiting the rate of increase of the jitter buffer depth to a limiting increase rate. The step of increasing the depth of the jitter buffer may be started at a time to allow the jitter buffer depth to reach a sufficient level to handle attempts of increased bitrate over the communication channel” (Jansson, col. 2, lines 7-13).
Here, “increasing” maps to “dynamically adjusting”,
“a limiting increase rate” of “jitter buffer depth” maps to “a size adaptation rate that is tunable”,
“to handle” maps to “in response to”, and
“increased bitrate over the communication channel” maps to “changes in ... the current condition of the network”).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the adaptation rate for the size of a jitter buffer into Hodgkinson’s method for adjusting an audio packet buffer in response to network conditions. An analog adaptation rate helps the jitter buffer remain useful and relevant to changing network conditions.
As to Claim 15:
Hodgkinson teaches:
Determine the representation of the current condition of the network based on measured differences between arrival times of successive audio packets of the stream
(“At 1310 [in Fig. 13], the delay histogram builder 1132 measures delays in audio packets 1112 as they arrive at receiver 1110. For example, each packet 1112 has an expected arrival time .... the delay histogram builder 1132 measures the difference between actual arrival time and expected arrival time of each packet 1112” (Hodgkinson, 0129).
Here, “measures delays” maps to “determine the representation of the current condition of the network”, and
“measures the difference between actual arrival time and expected arrival time of each packet” maps to “based on measured differences between arrival times of successive audio packets of the stream”).
As to Claim 16:
Hodgkinson teaches:
Determine the representation of the current condition based on a statistical analysis of the measured differences between arrival times of successive audio packets
(“At 1310 [in Fig. 13], the delay histogram builder 1132 measures delays in audio packets 1112 as they arrive at receiver 1110. For example, each packet 1112 has an expected arrival time .... the delay histogram builder 1132 measures the difference between actual arrival time and expected arrival time of each packet 1112” (Hodgkinson, 0129).
Here, “measures delays” maps to “determine the representation of the current condition”, and
“the delay histogram” for “the difference between actual arrival time and expected arrival time of each packet” maps to “a statistical analysis of the measured differences between arrival times of successive audio packets”).
As to Claim 17:
Hodgkinson teaches:
The representation of the current condition comprises one of a histogram or a probability density function determined from the measured differences between arrival times of successive audio packets
(“At 1310 [in Fig. 13], the delay histogram builder 1132 measures delays in audio packets 1112 as they arrive at receiver 1110. For example, each packet 1112 has an expected arrival time .... the delay histogram builder 1132 measures the difference between actual arrival time and expected arrival time of each packet 1112” (Hodgkinson, 0129).
Here, “delay histogram” maps to “the representation of the current condition comprises ... a histogram” from the list of “the representation of the current condition comprises one of a histogram or a probability density function”, and
“measures the difference between actual arrival time and expected arrival time of each packet” maps to “determined from the measured differences between arrival times of successive audio packets”).
As to Claim 18:
Hodgkinson teaches:
Determine a first subset of audio packets of the stream of audio packets arriving within a first period based on a first bin of the histogram
(“[H]istogram 1460 [in Fig. 14] includes one bucket 1470 for each unique value of normalized delay.... Although histogram 1460 shows one bucket per delay value, a more generalized solution may be for each bucket 1470 to cover a respective range of delay values (e.g., 0-10 ms, 10.1-20 ms, or 20.1-30 ms, etc.)” (Hodgkinson, 0131).
Here, “includes” maps to “determine”,
“0-10 ms” maps to “a first period”,
“a respective range of delay values (e.g., 0-10 ms)” maps to “a first subset of audio packets of the stream of audio packets arriving within a first period”, and
“one bucket” maps to “a first bin of the histogram”).
Determine a second subset of audio packets of the stream of audio packets arriving between the first period and a second period based on a second bin of the histogram
(“[H]istogram 1460 [in Fig. 14] includes one bucket 1470 for each unique value of normalized delay.... Although histogram 1460 shows one bucket per delay value, a more generalized solution may be for each bucket 1470 to cover a respective range of delay values (e.g., 0-10 ms, 10.1-20 ms, or 20.1-30 ms, etc.)” (Hodgkinson, 0131).
Here, “includes” maps to “determine”,
“10.1-20 ms” maps to “between the first period and a second period”,
“a respective range of delay values (e.g. ... 10.1-20 ms)” maps to “a second subset of audio packets arriving between the first period and a second period”, and
another “bucket” of the “histogram” maps to “a second bin of the histogram”).
Determine a percentile of total packets received based on the first subset of audio packets and the second subset of audio packets
(“[A] more generalized solution may be ... to count the number of audio samples arriving in packets whose delay falls within the respective delay range” (Hodgkinson, 0131).
Here, “count the number of audio samples arriving in packets” maps to “determine a percentile of total packets received”, and
“within the respective delay range” maps to “based on the first subset of audio packets and the second subset of audio packets”).
Adjusting the size of the jitter buffer based on the percentile of total packets received satisfying a target percentile of total packets received
(“At 1340 [in Fig. 13], the jitter buffer manager 1160 sets the actual jitter buffer length 1122 of the jitter buffer 1120 based on the normalized delay of the bucket 1470 that yields the highest audio quality prediction” (Hodgkinson, 0134).
Here, “sets the actual jitter buffer length” maps to “adjusting the size of the jitter buffer”,
“based on ... bucket 1470” maps to “based on the percentile of total packets received”, and
“the highest audio quality prediction” maps to “satisfying a target percentile of total packets received”).
As to Claim 19:
From the list of
Perform the statistical analysis for one of:
Measured differences between arrival times of successive audio packets since a start of a session for the stream; or
Measured differences between arrival times of successive audio packets over a sliding time window
Hodgkinson at least teaches:
Perform the statistical analysis for one of: measured differences between arrival times of successive audio packets since a start of a session for the stream
(“[P]ackets 1112 are seen to arrive at irregular intervals ... By tracking actual arrival times of packets 1112, the delay histogram builder 132 can construct a table 1450 (Fig. 14b), which associates packets ... with corresponding delay values” (Hodgkinson, 0130). Fig. 14a shows a graph of the packet arrival times that have been recorded.
Here, “histogram” maps to “the statistical analysis”,
“tracking” maps to “perform”,
“corresponding delay values” map to “measured differences between arrival times”,
“packets” maps to “successive audio packets”, and
the point in the graph of Fig. 14a labelled “0” maps to “a start of a session for the stream”).
As to Claim 20:
Hodgkinson does not explicitly disclose:
Determine a size adaptation rate for adjusting the size of the jitter buffer from a current size to a target size
However, Jansson does teach:
Determine a size adaptation rate for adjusting the size of the jitter buffer from a current size to a target size
(“Optionally, the rate of increase of the jitter buffer is limited to a limiting increase rate” (Jansson, col. 10, lines 44-45).
Here, “the rate of increase of the jitter buffer is limited” maps to “determine a size adaptation rate for adjusting the size of the jitter buffer from a current size to a target size”).
Adjusting the size of the jitter buffer to the target size at the size adaptation rate
(“Optionally, the rate of increase of the jitter buffer is limited to a limiting increase rate” (Jansson, col. 10, lines 44-45).
Here, “increase” maps to “adjusting the size ... to the target size”,
“the jitter buffer” maps to “the jitter buffer”, and
“limiting increase rate” maps to “the size adaptation rate”).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the adjustable rate of change in the size of the jitter buffer disclosed in Jansson into Hodgkinson’s method for configuring the jitter buffer size. As noted in Jansson, limiting the rate of change can help reduce artefacting in the buffered audio.
As to Claim 21:
Hodgkinson does not explicitly disclose:
The size adaptation rate is based on a programmable duration over which the size of the jitter buffer is to be adapted to the target size
However, Jansson does teach:
The size adaptation rate is based on a programmable duration over which the size of the jitter buffer is to be adapted to the target size
(“Once the jitter buffer has increased in depth due to the probing period, there is typically a configured inertia to change of the jitter buffer, whereby the jitter buffer stays at the greater depth for awhile before the jitter buffer depth decreases. This inertia can be configurable and can vary between implementations” (Jansson, col. 9, lines 15-20).
Here, the rate at which “the jitter buffer depth decreases” maps to “the size adaptation rate”,
“inertia” maps to “a ... duration over which the size of the jitter buffer is to be adapted to the target size” because the adaptation will take at least as long as the inertia period, and
“configurable” maps to “programmable”).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to base the size adaptation rate of the jitter buffer taught in Hodgkinson on a programmable parameter, as disclosed in Jansson. Making the duration of jitter buffer change programmable gives a user more fine-grained control over a device’s behavior to optimize its performance in different network conditions.
Claim(s) 8 is/are rejected under 35 U.S.C. 103 as being unpatentable over Hodgkinson in view of Jansson and further in view of Li et al. (US 20200236015 A1, hereinafter “Li”).
As to Claim 8:
Hodgkinson teaches:
Selecting one or more bins of a histogram corresponding to a number of audio packets received based on a target percentile of total packets received
(“At 1340 [in Fig. 13], the jitter buffer manager 1160 sets the actual jitter buffer length 1122 of the jitter buffer 1120 based on the normalized delay of the bucket 1470 that yields the highest audio quality prediction” (Hodgkinson, 0134).
Here, “sets” maps to “selecting”,
“the bucket” maps to “one or more bins of a histogram corresponding to a number of audio packets received”, and
“that yields the highest audio quality prediction” maps to “based on a target percentile of total packets received”).
Bins corresponding to the number of audio packets of the stream of audio packets received
(“[T]he histogram including a set of buckets, each bucket representing a respective packet delay range and counting a number of audio samples that arrived in packets having delays within the respective packet delay range” (Hodgkinson, 0013).
Here, “buckets” map to “bins”,
“counting a number of audio samples” maps to “corresponding to the number of audio packets of the stream of audio packets received”).
Adjusting the size of the jitter buffer based on ... a value of the ... number of audio packets of the stream of audio packets received comprise an integer value mapping to the size of the jitter buffer
(“At 1340 [in Fig. 13], the jitter buffer manager 1160 sets the actual jitter buffer length 1122 of the jitter buffer 1120 based on the normalized delay of the bucket 1470 [in Fig. 14c] that yields the highest audio quality prediction” (Hodgkinson, 0134).
Here, “sets the actual jitter buffer length” maps to “adjusting the size of the jitter buffer based on”,
“the bucket 1470” maps to “a value of the ... number of audio packets of the stream of audio packets received”,
the integer values for the buckets in Fig. 14c map to “an integer value mapping”, and
the y-axis in the graph of Fig. 14c maps to “the size of the jitter buffer”).
The combination of Hodkinson and Jansson does not explicitly disclose:
Interpolating the one or more selected bins
The interpolation
Interpolating
However, Li does disclose statistical techniques to model a packet network.
Specifically, Li teaches:
Interpolating the one or more selected bins
(“A stepwise cumulative distribution function could be filtered or otherwise smoothed (e.g., by linear interpolation between points defined by the bins of the histogram” (Li, 0123).
Here, “linear interpolation” maps to “interpolating”, and
“points defined by the bins of the histogram” maps to “the one or more selected bins”).
The interpolation
(“A stepwise cumulative distribution function could be filtered or otherwise smoothed (e.g., by linear interpolation between points defined by the bins of the histogram” (Li, 0123).
Here, “linear interpolation” maps to “the interpolation”).
Interpolating
(“A stepwise cumulative distribution function could be filtered or otherwise smoothed (e.g., by linear interpolation between points defined by the bins of the histogram” (Li, 0123).
Here, “linear interpolation” maps to “interpolating”).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to use interpolation to smooth or complete a histogram such as the one for packet arrival times disclosed in Hodgkinson. Linear interpolation is a common statistical technique to compensate for flaws in real world data.
Claim(s) 9 is/are rejected under 35 U.S.C. 103 as being unpatentable over Hodgkinson in view of Jansson and Li and further in view of Nilsson et al. (US 20200412783 A1, hereinafter “Nilsson”).
As to Claim 9:
The combination of Hodgkinson, Jansson, and Li does not explicitly disclose:
The statistical analysis includes use of weighting to favor more recent measured differences over less recent measured differences
However, Nilsson does disclose techniques to quantify network congestion.
Specifically, Nilsson teaches:
The statistical analysis includes use of weighting to favor more recent measured differences over less recent measured differences
(“[T]he server 108 intermittently measures the delivery rate that is being achieved ... or calculates another measure of achieved throughput, such as a weighted average biased towards more recently delivered packets, and performs the above calculation using this measured delivery rate and knowledge of the current congestion window size, the amount of content segment data still to be delivered” (Nilsson, 0080).
Here, “performs the above calculation” maps to “the statistical analysis”,
“calculates ... a weighted average” maps to “includes use of weighting”, and
“biased towards more recently delivered packets” maps to “to favor more recent measured differences over less recent measured differences”).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate Nilsson’s practice of favoring more recent measurements of network congestion into Hodgkinson’s method for adjusting a jitter buffer based on network congestion. The more recent measurements give better insight into the current state of the network, so it makes sense to give them more weight compared to older measurements when assessing a network’s current congestion level.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Parron et al. (US 9420475 B2) describes adjusting buffer size based on signal quality.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Benjamin Peter Welte whose telephone number is (703)756-5965. The examiner can normally be reached Monday - Friday, 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, Chirag Shah, can be reached at (571) 272-3144. 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.
/B.P.W./Examiner, Art Unit 2477
/GREGORY B SEFCHECK/Primary Examiner, Art Unit 2477