Appeals from the United States District Court for the
District of Delaware in Nos. 1:17-cv-00086-LPS,
1:17-cv-00091-LPS, 1:17-cv-00092-LPS, Chief Judge Leonard P.
Stark.
Andres
Healy, Susman Godfrey LLP, Seattle, WA, argued for
plaintiff-appellant. Also represented by Hunter Vance,
Alexandra Giselle White, Houston, TX; Lawrence Perley
Cogswell, III, Hamilton, Brook, Smith & Reynolds, PC,
Boston, MA; Timothy Joseph Meagher, Concord, MA.
Brian
Rosenthal, Gibson, Dunn & Crutcher LLP, New York, NY,
argued for all defendants-appellees and intervenor.
Defendants-appellees Gemalto M2M GmbH, Gemalto Inc., Gemalto
IOT LLC, also represented by Brian Andrea, Washington, DC.
William R. Peterson, Morgan, Lewis & Bockius LLP,
Houston, TX, for defendants-appellees TCL Communication
Technology Holdings Limited, TCL Communication, Inc., TCT
Mobile (US) Holdings, Inc., TCT Mobile (US) Inc., TCT Mobile,
Inc. Also represented by Julie S. Goldemberg, Philadelphia,
PA; Bradford Cangro, Hang Zheng, Washington, DC.
David
A. Loewenstein, Pearl Cohen Zedek Latzer LLP, New York, NY,
for defendant-appellee Telit Wireless Solutions, Inc. Also
represented by Clyde Shuman, Guy Yonay.
Carter
Glasgow Phillips, Sidley Austin LLP, Washington, DC, for
intervenor. Also represented by Ryan C. Morris; Peter H.
Kang, Palo Alto, CA.
Before
Dyk, Chen, and Stoll, Circuit Judges.
Chen,
Circuit Judge.
Plaintiff-Appellant
Koninklijke KPN N.V. (KPN) owns U.S. Patent No. 6, 212, 662
('662 patent). KPN sued Gemalto M2M GmbH, Gemalto Inc.,
Gemalto IOT LLC, TCL Communication Technology Holdings
Limited, TCL Communication, Inc., TCT Mobile, Inc., TCT
Mobile (US) Inc., TCT Mobile (US) Holdings, Inc., and Telit
Wireless Solutions, Inc. (collectively "Appellees")
for infringement of the '662 patent in the United States
District Court for the District of Delaware. Appellees moved
for judgment on the pleadings under Federal Rule of Civil
Procedure 12(c) alleging that all four claims (claims 1-4) of
the '662 patent were ineligible under 35 U.S.C. §
101. The district court granted Appellees' motion with
respect to all four claims, concluding that the claims recite
no more than mere abstract data manipulation operations, such
as "reordering data and generating additional
data." J.A. 23. On appeal, KPN only challenges the
district court's ineligibility decision with respect to
dependent claims 2-4. As to these appealed claims, we
reverse. Rather than being merely directed to the abstract
idea of data manipulation, these claims are directed to an
improved check data generating device that enables a data
transmission error detection system to detect a specific type
of error that prior art systems could not.
In data
transmission systems, it is common to generate something
called "check data" to check whether data was
accurately transmitted over a communications channel. Check
data is generated based on the original data and thus serves
as a shorthand representation of a particular block of data.
By comparing the check data generated at both ends of the
communication channel, error detection systems may be able to
infer whether errors occurred during transmission. For
example, if the check data from both ends match, the system
infers that the content of the received data block is the
same as what was transmitted and thus concludes that no
errors occurred during transport.
But, as
the '662 patent recognizes, matching check data is not
always a reliable indicator of accurate data transmissions.
According to the patent, certain generating functions
coincidentally produce the same check data for a corrupted
data block and an uncorrupted data block. When this happens,
the check data is functionally defective, because the system
will mistakenly believe that there were no errors in the data
transmission. The problem of defective check data is
aggravated for a particular type of persistent error, i.e.,
"systematic error," that repeats across data blocks
in the same way. According to the '662 patent, prior art
error detection systems were unable to reliably detect
systematic errors. Once the prior art system generated
defective check data for an initial data block with a given
systematic error, the system would continue to generate
defective check data for subsequent data blocks with the same
systematic error, thus allowing these types of errors to
persist in the system.
The
'662 patent solves this problem by varying the way check
data is generated by varying the permutation applied to
different data blocks. Varying the permutation for each data
block reduces the chances that the same systematic error will
produce the same defective check data across different data
blocks. Claims 2-4 thus replace the prior art check data
generator with an improved, dynamic check data generator that
enables increased detection of systematic errors that recur
across a series of transmitted data blocks. As with other
claims we have found to be patent-eligible in prior cases,
the appealed claims represent a non-abstract improvement in
the functionality of an existing technological process and
not simply an abstract idea of manipulating data.
Accordingly, we reverse the district court's grant of
Appellees' Rule 12(c) motion that claims 2- 4 are
ineligible on the pleadings.
Technology
Background
In
order to physically transmit information over the air from a
transmitter to a receiver, that information is encoded as a
series of electromagnetic pulses representing "0s"
and "1s" of binary code, packaged into a series of
individual data blocks. As the information travels through
the air, different types of environmental factors may impact
the transmission of data in different ways. Whereas variable
changes in the environment may cause random errors to appear
in different data blocks, persistent properties in the
environment, such as an "interference signal with a
certain frequency" or "equipment error," may
cause certain errors to repeat themselves across each data
block in the same way. '662 patent at col. 1, ll. 48-52.
This type of persistent error, called a "systematic
error," is the focus of the '662 patent.
A.
Prior Art Check Data Generators
Conventional
prior art systems detected errors in data transmissions by
generating something called "check data" (or
"supplementary data"). Id. at col. 1, ll.
10-46, col. 3, ll. 32-33. Check data is a short piece of
information that is generated from the original data using a
generating function. Id. at col. 1, ll. 55-56, col.
2, ll. 31-34. As such, check data effectively serves as a
short-hand representation of the content of the original data
prior to transmission. During a data transmission, check data
is attached to the original data of each data block as a
"redundant" piece of information to enable the
detection of transmission errors by the receiver.
Id. at col. 1, ll. 34-37. Since a receiver cannot
easily tell whether a received transmission has been
corrupted by looking at the data directly, it uses the
appended check data as a reference point for determining
whether errors were introduced during transport. See
id. at col. 1, ll. 37-46. To do so, the receiver
compares the appended check data generated based on the
original data (which we refer to as "d1") with the
check data generated based on the received transmission
(which we refer to as "d2"). Id. at col.
3, ll. 39-41. If check data d1 does not match check data d2,
the receiver infers that the data used to generate check data
d2 has changed during transmission from the uncorrupted data
used to generate check data d1. Id. at col. 3, ll.
43-46. This means that errors were introduced into the
original data during transmission. Id. However, if
check data d1 matches check data d2, the system infers that
there were no errors. Id. at col. 3, ll. 41-43.
But a
match in check data does not necessarily mean that the
original data was accurately transmitted. As noted by the
'662 patent, "there is always a probability that
erroneous data are considered to be correct data because the
[check] data may be correct by coincidence."
Id. at col. 1, ll. 52-55. That is because check data
is "restricted in length and therefore a finite number
of [check] data can be distinguished." Id. at
col. 1, ll. 55-57. As a result, the same check data may be
generated for a transmission with errors and another
transmission without. This problem of defective check data is
aggravated for a particular type of error called a
"systematic error." Unlike random errors,
systematic errors are "errors that repeat
themselves" due to a persistent property in the channel,
such as an "interference signal with a certain
frequency" or "equipment error." Id.
at col. 1, ll. 48-52. According to the '662 patent, prior
art methods did not reliably detect systematic errors, which
"may result in all decompressed data becoming
unusable." Id. at col. 1, ll. 47-48, col. 2,
ll. 12-16.
B.
Solution of the '662 Patent
The
inventors of the '662 patent recognized that the reason
why systematic errors were able to persist undetected was
because the prior art used the same, or "fixed,"
generating function to process every block of data.
Id. at col. 2, ll.48-50. If a fixed generating
function produced defective check data for a transmission
that was corrupted with a given systematic error (e.g., first
and fourth bit is erroneous in every data transmission), that
fixed generating function would likely continue to produce
the same defective check data every time that systematic
...