Language selection

Search

Patent 2847028 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 2847028
(54) English Title: RESILIENT SIGNAL ENCODING
(54) French Title: CODAGE DE SIGNAUX ROBUSTE
Status: Granted and Issued
Bibliographic Data
(51) International Patent Classification (IPC):
  • H04N 19/177 (2014.01)
  • H04N 19/114 (2014.01)
  • H04N 19/159 (2014.01)
  • H04N 21/643 (2011.01)
(72) Inventors :
  • MARTIN-COCHER, GAELLE CHRISTINE (Canada)
  • HE, DAKE (Canada)
  • MONTMINY, CHRISTIAN JOSEPH ERIC (Canada)
(73) Owners :
  • BLACKBERRY LIMITED
(71) Applicants :
  • BLACKBERRY LIMITED (Canada)
(74) Agent: SMART & BIGGAR LP
(74) Associate agent:
(45) Issued: 2019-01-08
(22) Filed Date: 2014-03-19
(41) Open to Public Inspection: 2014-09-25
Examination requested: 2014-03-19
Availability of licence: N/A
Dedicated to the Public: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data:
Application No. Country/Territory Date
13160824.2 (European Patent Office (EPO)) 2013-03-25
13/849,983 (United States of America) 2013-03-25

Abstracts

English Abstract

A system and method for resilient signal encoding provide for encoding a data signal to reduce bandwidth required to transmit the encoded signal while mitigating the impact of frames lost or corrupted during transmission. A first frame of the data signal is encoded as an independently decodable frame and is assigned as a reference frame. Subsequent frames of the data signal are encoded as different frames relative to the reference frame. The independently decodable frame and the difference frames are transmitted to a receiver. The receiver decodes the frames and sends an acknowledgement for one or more successfully decoded difference frames. When an acknowledgment is received, a corresponding data signal frame is assigned as the reference frame. Subsequent difference frames are encoded relative to the newly assigned reference frame.


French Abstract

Un système et une méthode de codage de signal résilient permettent de coder un signal de données pour réduire la largeur de bande requise pour transmettre le signal codé tout en atténuant limpact des trames perdues ou corrompues pendant la transmission. Une première trame de signal de données est codée comme trame décodable indépendamment et est désignée comme trame de référence. Les trames subséquentes du signal de données sont codées comme trames différentes par rapport à la trame de référence. La trame décodable indépendamment et les trames de différence sont transmises à un récepteur. Le récepteur décode les trames et envoie un accusé de réception dune ou de plusieurs trames de différence décodées avec succès. Lorsquun accusé de réception est reçu, une trame de signal de données correspondante est désignée comme la trame de référence. Les trames de différence subséquentes sont codées par rapport à la trame de référence nouvellement désignée.

Claims

Note: Claims are shown in the official language in which they were submitted.


CLAIMS
1. A method of encoding a signal comprising:
receiving, over time, a sequence of input frames that comprise the signal;
encoding a first frame of the sequence of input frames as an independently
decodable
frame and assigning the first frame as a current reference frame;
encoding subsequently received input frames, in the sequence of input frames,
each as
a difference frame that represents a difference between the input frame and
the current
reference frame;
transmitting the independently decodable frame and each of the difference
frames,
after each is encoded, to a receiver;
receiving one or more acknowledgements from the receiver;
assigning an input frame corresponding to a difference frame associated with a
received acknowledgment, of the one or more acknowledgements, as the current
reference frame;
switching to a safe operating mode when one or more acknowledgements indicate
that
one of the independently decodable frame or the difference frames was
unsuccessfully
decoded; and
switching to a normal operating mode when an abatement criterion is met;
where the one or more acknowledgements are received through an in-band or an
out-
of-band signalling.
2. The method of encoding a signal of claim 1, where the signal includes a
video stream.
3. The method for encoding a signal of claim 1 or claim 2, where the received
one or more
acknowledgements includes one or more indicators each signifying an outcome of
a decoding
of an associated difference frame.
12

4. The method for encoding a signal of any one of claims 1-3, where the
receiver decodes
each difference frame using a frame previously decoded by the receiver that
corresponds to
the current reference frame from which the difference frame was derived
without referencing
any intervening frames in the sequence of frames between the current reference
frame and the
difference frame.
5. The method for encoding a signal of any one of claims 1-4, where each of
the one or
more acknowledgements is associated with one or more difference frames that
are each
marked as an acknowledgement-requested.
6. The method for encoding a signal of claim 5, where each N difference frame
is marked as
the acknowledgement-requested before being transmitted and where N is a
predetermined
value.
7. The method for encoding a signal of claim 5, where the acknowledgement-
requested
mark for each of the one or more difference frames is sent in-band using
mechanisms
including any of: in accordance with a video codec syntax being used for the
encoding the
input frames, in accordance with an ITU-T Supplementary Enhancement
Information (SEI)
message, and using a user data extension mechanism.
8. The method for encoding a signal of claim 5, where the acknowledgement-
requested
mark for each of the one or more difference frames is sent out-of-band using
mechanisms
including any of: a Moving Picture Expert Group (MPEG) green MPEG set of
metadata, an
IETF RTC web mechanism and an IETF Session Initiation Protocol (SIP) message.
9. The method for encoding a signal of any one of claims 1-8, where the
independently
decodable frame and each difference frame are enuoded in accordance with an
ITU-T Video
Coding Experts Group H.264 standard.
10. The method for encoding a signal of any one of claims 1-9, where the one
or more
acknowledgements are received in-band using mechanisms in accordance with: a
video codec
syntax, a ITU-T Supplementary Enhancement Information (SEI) message, or a user
data
extension mechanism.
11. The method for encoding a signal of any one of claims 1-10, where the one
or more
acknowledgements are received out-of-band using mechanisms including any of:
an IETF
13

RTC web mechanism, an IETF codec control message, an IETF AVPF message, a
Moving
Picture Expert Group (MPEG) green MPEG set of metadata, IETF codec control
message
and a IETF Session Initiation Protocol (SIP) message.
12. The method for encoding a signal of any one of claims 1-11, where the
method switches
between operating modes and the method further comprises:
when in a safe mode, assigning an input frame corresponding to a difference
frame
associated with a received acknowledgment, of the one or more
acknowledgements,
as the current reference frame; and
when in a normal mode, assigning an input frame as the current reference frame
regardless of receiving an acknowledgement associated with a difference frame
corresponding to the input frame.
13. The method for encoding a signal of claim 12, where the abatement
criterion is met upon
receipt of a positive indication of successful decoding of a predetermined
number of
successive independently decodable frames or the difference frames.
14. The method for encoding a signal of any one of claims 1-13, where the
abatement
criterion is met upon completion of a predetermined time duration of operation
in the safe
operating mode.
15. A system for encoding a signal comprising:
one or more processors; and
memory containing instructions executable by the one or more processors to
configure the system to implement the method of any one of claims I to 14.
16. A computer-readable medium storing instructions which, when executed by a
processor
in a system for encoding a signal, cause the processor to :
receive, over time, a sequence of input frames that comprise the signal;
encode a first frame of the sequence of input frames as an independently
decodable
frame and assigning the first frame as a current reference frame;
14

encode subsequently received input frames, in the sequence of input frames,
each as a
difference frame that represents a difference between the input frame and the
current
reference frame;
transmit the independently decodable frame and each of the difference frames,
after
each is encoded, to a receiver;
receive one or more acknowledgements from the receiver;
assign an input frame corresponding to a difference frame associated with a
received
acknowledgment, of the one or more acknowledgements, as the current reference
frame;
switch to a safe operating mode when one or more acknowledgements indicate
that
one of the independently decodable frame or the difference frames was
unsuccessfully
decoded; and
switch to a normal operating mode when an abatement criterion is met;
where the one or more acknowledgements are received through an in-band or an
out-
of-band signalling.
17. The computer-readable medium of claim 16, where the signal includes a
video stream.
18. The computer-readable medium of claim 16, where the received one or more
acknowledgements includes one or more indicators each signifying an outcome of
a decoding
of an associated difference frame.
19. The computer-readable medium of claim 16, where the receiver decodes each
difference
frame using a frame previously decoded by the receiver that corresponds to the
current
reference frame from which the difference frame was derived without
referencing any
intervening frames in the sequence of frames between the current reference
frame and the
difference frame.
20. The computer-readable medium of claim 16, where each of the one or more
acknowledgements is associated with one or more difference frames that are
each marked as
an acknowledgment-requested.

21. The computer-readable medium of claim 20, where each N difference frame is
marked as
the acknowledgment-requested before being transmitted and where N is a
predetermined
value.
22. The computer-readable medium of claim 20, where the acknowledgment-
requested mark
for each of the one or more difference frames is sent in-band using mechanisms
including any
of: in accordance with a video codec syntax being used for the encoding the
input frames, in
accordance with an ITU-T Supplementary Enhancement Information (SEI) message,
and
using a user data extension mechanism.
23. The computer-readable medium of claim 20, where the acknowledgment-
requested mark
for each of the one or more difference frames is sent out-of-band using
mechanisms including
any of: a Moving Picture Expert Group (MPEG) green MPEG set of metadata, an
IETF RTC
web mechanism and an IETF Session Initiation Protocol (SIP) message.
24. The computer-readable medium of claim 16, where the independently
decodable frame
and each difference frame are encoded in accordance with an ITU-T Video Coding
Experts
Group H.264 standard.
25. The computer-readable medium of claim 16, where the one or more
acknowledgements
are received in-band using mechanisms in accordance with: a video codec
syntax, a ITU-T
Supplementary Enhancement Information (SEI) message, or a user data extension
mechanism.
26. The computer-readable medium of claim 16, where the one or more
acknowledgements
are received out-of-band using mechanisms including any of: an IETF RTC web
mechanism,
an IETF codec control message, an IETF AVPF message, a Moving Picture Expert
Group
(MPEG) green MPEG set of metadata, IETF codec control message and a IETF
Session
Initiation Protocol (SIP) message.
27. The computer-readable medium of claim 16, further comprising:
when in a safe mode, assigning an input frame corresponding to a difference
frame
associated with a received acknowledgment, of the one or more
acknowledgements,
as the current reference frame; and
16

when in a normal mode, assigning an input frame as the current reference frame
regardless of receiving an acknowledgement associated with a difference frame
corresponding to the input frame.
28. The computer-readable medium of claim 27, where the abatement criterion is
met upon
receipt of a positive indication of successful decoding of a predetermined
number of
successive independently decodable frames or the difference frames.
29. The computer-readable medium of claim 27, where the abatement criterion is
met upon
completion of a predetermined time duration of operation in the safe operating
mode.
17

Description

Note: Descriptions are shown in the official language in which they were submitted.


CA 02847028 2016-04-26
RESILIENT SIGNAL ENCODING
BACKGROUND
1. Technical Field
[0001] The present disclosure relates to the field of encoding digital signals
to reduce
bandwidth utilization. In particular, to a system and method for resilient
signal encoding.
2. Related Art
[0002] A digital signal that is composed of successive frames of information
(a.k.a.
data) may be encoded using various mechanisms in order to reduce the bandwidth
required to transmit the signal. One such mechanism is inter-frame encoding
where in
some frames may be encoded as independently decodable frames (a.k.a. i-frames)
while
the remaining frames each may be encoded relative to an independently
decodable frame
as difference frames (p-frames) or relative to another p-frame. The mechanism
is
susceptible to some p-frames becoming undecodable when the frame relative to
which
they were encoded is lost or corrupted in transmission. Some mechanisms (e.g.
Internet
Engineering Task Force (IETF), Ott, J., Wenger, S., Sato, N., Burmeister, C.,
and J. Rey,
"Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Based
Feedback (RTP/AVPF)", RFC 4585, DOT 10.17487/RFC4585, July 2006) are used
whereby a receiver of the encoded frames may inform the encoder of the frames
when
some received frames are undecodable.
[0003] Typically a trade-off is made between resilience to frame loss or
corruption and
a degree of bandwidth utilization (i.e. compression) in either or both of a
downlink
channel and an uplink channel.
BRIEF DESCRIPTION OF DRAWINGS
[0004] The system and method may be better understood with reference to the
following drawings and description. The components in the figures are not
necessarily to
1

CA 02847028 2016-04-26
scale, emphasis instead being placed upon illustrating the principles of the
disclosure.
Moreover, in the figures, like referenced numerals designate corresponding
parts
throughout the different views.
[0005] Other systems, methods, features and advantages will be, or will
become,
apparent to one with skill in the art upon examination of the following
figures and
detailed description.
[0006] Fig. 1 is a schematic representation of a time series of encoded frames
of a
digital signal.
[0007] Fig. 2 is a schematic representation of a method for resilient signal
encoding.
[0008] Fig. 3 is a schematic representation of system for resilient signal
encoding.
DETAILED DESCRIPTION
[0009] A system and method for resilient signal encoding is described herein.
The
system and method provide for encoding a digital signal to reduce bandwidth
required to
transmit the encoded signal while mitigating the impact of frames lost or
corrupted
during transmission. The system and method may be used in applications such
as, for
example, video conferencing, telepresence, streaming media, video editing and
other
similar applications.
[0010] Figure 1 is a schematic representation of a time series of encoded
frames of an
encoded signal. The encoded signal is derived from an input signal in
accordance with
the system and method for resilient signal encoding. The input signal may be a
digital
signal that comprises a sequence of data samples (e.g. frames) that represent,
for
example, a video stream or other similar content. For illustrative purposes
the input
signal describes herein represents a video stream comprising a sequence of
video frames
Si -S7 but the illustration is not intended to be limiting in any way. In
Figure 1 time is
represented in the horizontal axis progressing from left (earlier time) to
right (later time).
2

CA 02847028 2016-04-26
[0011] A first frame of the input signal Si may be encoded as an independently
decodable frame (I1) and placed in the encoded signal as encoded frame El. The
independently decodable frame El may be transmitted to a receiver for
decoding. The
receiver may decode the independently decodable frame without reference to any
other
frames in the encoded signal as decoded frame Dl. A subsequent frame of the
input
signal S2 may be encoded as a difference frame (P2-1) that represents a
content
difference between the first frame Si and the subsequent frame S2. The first
frame acts
as a reference frame for the encoding of the subsequent frame. The difference
frame E2
may be transmitted to the receiver for decoding. The receiver may decode the
difference
frame E2 by referencing the independently decodable frame El. The
independently
decodable frame El, which corresponds to the first frame Si, acts as a
reference frame
for the decoding of the difference frame E2. Further frames of the input
signal S3 and S4
may be encoded as difference frames E3 and E4 in a manner similar to that
described
above with reference to the subsequent frame S2.
[0012] When the receiver successfully decodes a difference frame, the receiver
may
send an acknowledgement (ACK) indicating that the difference frame was
successfully
decoded. In response to receiving the acknowledgement (ACK), the frame
associated
with acknowledgement S3 may be assigned as the reference frame and further
subsequent
frames of the input signal S5, S6 and S7 may be encoded as difference frames
E5, E6 and
E7 that represent a content difference between the frame S5, S6 and S7 and the
reference
frame S3. The receiver may send an acknowledgement for each difference frame
that is
successfully decoded. Alternatively the receiver may only send an
acknowledgement for
difference frames that are marked as acknowledgement-requested and that have
been
successfully decoded. During encoding some difference frames such as, for
example,
every Nth frame may be marked as acknowledgement-requested before they are
transmitted. Difference frames that are marked as acknowledgement-requested
may be
candidate reference frames. The interval N for marking candidate reference
frames may
be a number between 2 and a predetermined upper limit (e.g. 3000) that may be
preconfigured or may be user specified. In a further alternative, a difference
frame may
be marked as acknowledgement-requested (e.g. a candidate reference frame)
based on the
3

CA 02847028 2016-04-26
content of the frame and/or one or more frames occurring before or after the
frame, for
example, to minimize the difference between the reference frame and
subsequently
encoded frames. In another alternative, frames designated as golden frames
(e.g. as
specified in Internet Engineering Task Force (IETF), Bankoski, J., Koleszar,
J., Quillio,
L., Salonen, J., Wilkins, P., and Y. Xu, "VP8 Data Format and Decoding Guide",
RFC
6386, DOT 10.17487/RFC6386, November 2011) may be marked as acknowledgement-
requested. In the example illustrated in Figure 1, encoded frame E3 was
successfully
decoded and an acknowledgement was sent. Subsequently, frames S5, S6 and S7
are
encoded as difference frames E5, E6 and E7 relative to S3 that corresponds to
frame E3
associated with the sent acknowledgement.
[0013] Alternatively, or in addition, the receiver may send an acknowledgement
whether or not a difference frame was successfully decoded. The
acknowledgement may
include a binary variable, flag or other similar indicator that has one value
or state to
signify successful decoding and another value or state to signify a failure to
successfully
decode the difference frame. The acknowledgement may further include one or
more
indicators of the outcomes (e.g. success or failure) of decoding earlier
frames. For
example, the acknowledgement may also include indicators of the outcomes of
decoding
of K previous frames. The number of previous frames K may be a number (e.g. 7,
15, 23
or 31) that may be preconfigured or may be user specified. The acknowledgement
may
take the form of a binary bit mask in which a first bit represents the outcome
of decoding
a current frame and K further bits represent the outcome of decoding K
previous frames.
In a further alternative, the indicator of the outcome of decoding each frames
may
assigned to a class where the class specifies the number of times (e.g. 32,
16, 8 or 0) that
the indicator will be repeated (e.g. included in an acknowledgement). The
inclusion of an
indicator of the outcome of decoding previous frames may be limited to
previous frames
that are candidate reference frames (e.g. frames that are mark acknowledgement-
requested). The redundant inclusion of indicators of the outcome of decoding
one or
more previous frames in the acknowledgement allows the system and method to be
resilient when one or more acknowledgements are lost during transmission. An
indicator
4

CA 02847028 2016-04-26
that fails to be returned a first lost acknowledgement may be successfully
returned in a
subsequent acknowledgement.
[0014] A failure to successfully decode frame E6 is shown resulting in no
acknowledgement being sent for E6. Encoded frame E7 is successfully decoded
despite
the failure to decode E6 because E3 was successfully decoded to D3 and E7 was
encoded
relative to S3. Due to the failure to decode E6, no acknowledgement was sent
but the
system and method may receive an acknowledgement of the successful decoding of
E7
instead. Difference frame E7 may, for example, be marked as acknowledgement-
requested when no acknowledgement is received for E6. Subsequently encoded
frames
may be encoded relative to S7. Alternatively, when no acknowledgement is
received for
E6 subsequent frames may continue to be encoded relative to the current
reference frame
S3 until an acknowledgement is received for a subsequent candidate reference
frame, for
example the next Nth frame.
[0015] In the illustrated example of Figure 1, S4 is encoded relative to Si
even though
acknowledgement was sent for E3. After an acknowledge is sent, encoding of
subsequent frames may continue to use a previous reference frame for some time
due to
various factors including propagation delay, caching, pipelining and other
similar latency
related factors.
[0016] Alternatively, or in addition, encoding may operate in one of two
possible
modes: normal mode and safe mode. Selection of one of the two modes may be
responsive to feedback from the receiver (e.g. acknowledgements received). In
safe
mode encoding only uses as a reference frame a frame for which an
acknowledgement,
including a positive indication of successfully decoding, has been received.
In normal
mode encoding may use as a reference frame any frame including a frame for
which no
acknowledgement including a positive indication of successfully decoding has
been
received. Encoding may switch from normal mode to safe mode when, for example,
an
acknowledgement is received that includes an indicator of unsuccessful
decoding of a
frame. Encoding may switch from safe mode to normal mode when an abatement
criterion is met. The abatement criterion may include, for example, when a
positive

CA 02847028 2016-04-26
indication of successfully decoding has been received for L success frames,
where L is a
number that may be preconfigured or may be user specified. Alternatively, the
abatement
criterion may specify a minimum time duration during which encoding remains in
safe
mode to mitigate frequent switching between safe and normal mode. Encoding may
be
configured to start either in normal mode or safe mode.
[0017] The independently decodable frame and each of the difference frames is
uniquely identifiable using, for example, sequence numbers that may be
included in the
encoded frames. Each difference frame may also include identification of the
reference
frame from which it was encoded and that may be used to decode the difference
frame.
Each acknowledgement sent by the receiver may identify the frame that was
successfully
decoded using, for example, the sequence number of the frame.
[0018] The system and method may encode and transmit only a single
independently
decodable frame thereby mitigating the bandwidth required to transmit the
encoded
signal. Further independently decodable frames may be encoded and transmitted
at any
time responsive to input such as, for example, a force reset request or
detection of the loss
or failure to decode a previous independently decodable frame. When the
receiver
successfully decodes an independently decodable frame, the receiver may send
an
acknowledgement (ACK) indicating that the independently decodable frame was
successfully decoded. In the absence of receiving an acknowledgement, a
further
independently decodable frame may be encoded and transmitted to the receiver.
[0019] The system and method for resilient signal encoding may use various
forms of
inter-frame compression either lossy or lossless. The inter-frame compression
may be
used in combination with other compression techniques (e.g. predictive
encoding). The
system and method for resilient signal encoding may use encoding formats such
as, for
example, 3. International Telecommunication Union; ITU-T
H.264;
Telecommunication Standardization Sector of ITU, (05/2003), Series H, Advanced
video
coding for generic audiovisual services or International Telecommunication
Union; ITU-
T H.265; Telecommunication Standardization Sector of ITU, (04/2013), Series H,
High
Efficiency Video Coding including scalable and multiview extensions of these
formats
6

CA 02847028 2016-04-26
such as scalable video coding (SVC), multiview video coding (MVC), 3-
dimensional
coding (3D), and The WebM Project VP8 or VP9 coding.
[0020] The acknowledgements may be received using in-band signaling in
accordance
with a video codec syntax being used for the encoded frames (e.g. H.264), as
part of an
ITU-T Supplementary Enhancement Information (SEI) message, or using a user
data
extension mechanism. Alternatively or in addition, the acknowledgements may be
sent
out-of-band using mechanisms such as, for example, as part of an IETF Session
Initiation
Protocol (SIP) message, as part of a Moving Picture Expert Group (MPEG) green
MPEG
set of metadata dedicated to resource saving, as part of an IETF Real Time
Communication Web (RTCWeb) mechanism, as part of an IETF codec control message
or as part of an IETF Audio-Visual Profile with Feedback (AVPF) message.
[0021] The acknowledgement-requested marking of a frame may be sent as a flag
or as
a syntax element using in-band signaling in accordance with a video codec
syntax being
used for the encoded frames (e.g. H.264), as part of an ITU-T SEI message or
using a
user data extension mechanism. Alternatively, or in addition, the
acknowledgement-
requested marking of a frame my be sent out-of-band using mechanisms such as,
for
example, as part of a MPEG green MPEG set of metadata dedicated to resource
saving,
as part of an IETF RTCWeb mechanism or as part of an IETF SIP message.
[0022] Fig. 2 is a representation of a method for resilient signal encoding.
The method
200 may, for example, be implemented using the system 300 described herein
with
reference to Figure 3. The method 200 includes the following acts. Receiving a
signal as
a sequence of frames 202. Encoding a first frame, of the received frames, as
an
independently decodable frame (a.k.a. an i-frame) and assigning or designating
the first
frame as a reference frame 204. Encoding subsequent frames, of the received
signal, as
difference frames (a.k.a. p-frames) representing a difference between a
current frame, of
the subsequent frames, and the reference frame 206. Transmitting the
independently
decodable frame and the difference frames, as they are encoded, to a receiver
208.
Receiving one or more acknowledgements (a.k.a. ACK) each indicating the
outcome of
frame decoding 210. An acknowledgement may be sent by the receiver when an
7

CA 02847028 2016-04-26
independently decodable frame or a difference frame has been successfully
decoded. An
acknowledgement may be sent by the receiver when a golden frame has been
successfully decoded. The receiver may only send an acknowledgement for
difference
frames that are marked as acknowledgement-requested. The acknowledgement may
further include one or more indicators of the outcomes (e.g. success or
failure) of
decoding earlier frames. For example, the acknowledgement may also include
indicators
of the outcomes of decoding of K previous frames. Assigning or designating the
received
frame corresponding to a difference frame associated with a received
acknowledgement
as the reference frame 212. Subsequently encoded difference frames as
described in act
206 may represent a difference between the current frame and the newly
assigned
reference frame. In an alternative embodiment, the method may further include
switching between a safe mode according to act 212 described above and a
normal mode
where encoding may use as a reference frame any frame including a frame for
which no
acknowledgement including a positive indication of successfully decoding has
been
received.
[0023] Figure 3 is a schematic representation of a system for resilient signal
encoding
300. The system 300 comprises a processor 302, memory 304 (the contents of
which are
accessible by the processor 302) and an I/0 interface 306. The memory 304 may
store
instructions which when executed using the process 302 may cause the system
300 to
render the functionality associated with a signal receiver 308, an encoder
310, a signal
transmitter 312 and a decoder 314. Alternatively, or in addition, the
instructions when
executed using the process 302 may configure the system 300 to implement the
acts of
method 200. In addition the memory 304 may store information in data
structures
including, for example, signal frames 316, encoded frames 318, reference frame
320,
decoded frames 322 and golden frames.
[0024] The processor 302 may comprise a single processor or multiple
processors that
may be disposed on a single chip, on multiple devices or distributed over more
that one
system. The processor 302 may be hardware that executes computer executable
instructions or computer code embodied in the memory 304 or in other memory to
8

CA 02847028 2016-04-26
perform one or more features of the system. The processor 302 may include a
general
purpose processor, a central processing unit (CPU), a graphics processing unit
(GPU), an
application specific integrated circuit (ASIC), a digital signal processor
(DSP), a field
programmable gate array (FPGA), a digital circuit, an analog circuit, a
microcontroller,
any other type of processor, or any combination thereof.
[0025] The memory 304 may comprise a device for storing and retrieving data,
processor executable instructions, or any combination thereof The memory 304
may
include non-volatile and/or volatile memory, such as a random access memory
(RAM), a
read-only memory (ROM), an erasable programmable read-only memory (EPROM), or
a
flash memory. The memory 304 may comprise a single device or multiple devices
that
may be disposed on one or more dedicated memory devices or on a processor or
other
similar device. Alternatively or in addition, the memory 304 may include an
optical,
magnetic (hard-drive) or any other form of data storage device.
[0026] The memory 304 may store computer code, such as signal receiver 308,
encoder
310, signal transmitter 312 and decoder 314 as described herein. The computer
code may
include instructions executable with the processor 302. The computer code may
be
written in any computer language, such as C, C++, assembly language, channel
program
code, and/or any combination of computer languages. The signal receiver 308
may
receive a signal as a sequence of frames. The encoder 310 may encode a first
frame, of
the received frames, as an independently decodable frame and assign the first
frame as a
reference frame. The encoder 310 may encode subsequent frames, of the received
signal,
as difference frames representing a difference between a current frame, of the
subsequent
frames, and the reference frame. The signal transmitter 312 may transmit the
independently decodable frame and the difference frames, as they are encoded,
to a
receiver. The signal receiver 308 may also receive acknowledgements associated
with
successfully decoded frames. When an acknowledgement is received, the received
frame
corresponding to the difference frame associated with a received
acknowledgement may
be assigned as the reference frame. Subsequently encoded frames of the
received frames
may be encoded relative to the newly assigned reference frame by the encoder
310. The
9

CA 02847028 2016-04-26
system 300 may not include the decoder 314 when an encoded signal is only
transmitted
to the receiver (e.g. in one-way transmission). When encoded signals are
transmitted to
the receiver and also received by the system (e.g. in two-way transmission)
the system
300 may include the decoder 314. The decoder 314 decodes the received encoded
frames
and when a frame is successfully decoded, the decoder 314 may send an
acknowledgement to the transmitter of the encoded frames. The receiver may
only send
an acknowledgement for difference frames that are marked as acknowledgement-
requested.
[0027] The I/0 interface 306 may be used to connect devices such as, for
example, data
transmission media and other components of the system 300.
[0028] All of the disclosure, regardless of the particular implementation
described, is
exemplary in nature, rather than limiting. The system 300 may include more,
fewer, or
different components than illustrated in Figure 3. Furthermore, each one of
the
components of system 300 may include more, fewer, or different elements than
is
illustrated in Figure 3. Flags, data, databases, tables, entities, and other
data structures
may be separately stored and managed, may be incorporated into a single memory
or
database, may be distributed, or may be logically and physically organized in
many
different ways. The components may operate independently or be part of a same
program or hardware. The components may be resident on separate hardware, such
as
separate removable circuit boards, or share common hardware, such as a same
memory
and processor for implementing instructions from the memory. Programs may be
parts of
a single program, separate programs, or distributed across several memories
and
processors.
[0029] The functions, acts or tasks illustrated in the figures or described
may be
executed in response to one or more sets of logic or instructions stored in or
on computer
readable media. The functions, acts or tasks are independent of the particular
type of
instructions set, storage media, processor or processing strategy and may be
performed by
software, hardware, integrated circuits, firmware, micro code and the like,
operating
alone or in combination. Likewise, processing strategies may include
multiprocessing,

CA 02847028 2016-04-26
multitasking, parallel processing, distributed processing, and/or any other
type of
processing. In one embodiment, the instructions are stored on a removable
media device
for reading by local or remote systems. In other embodiments, the logic or
instructions
are stored in a remote location for transfer through a computer network or
over telephone
lines. In yet other embodiments, the logic or instructions may be stored
within a given
computer such as, for example, a CPU.
[0030] While various embodiments of the system and method for on-demand user
control have been described, it will be apparent to those of ordinary skill in
the art that
many more embodiments and implementations are possible within the scope of the
present invention. Accordingly, the invention is not to be restricted except
in light of the
attached claims and their equivalents.
11

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

2024-08-01:As part of the Next Generation Patents (NGP) transition, the Canadian Patents Database (CPD) now contains a more detailed Event History, which replicates the Event Log of our new back-office solution.

Please note that "Inactive:" events refers to events no longer in use in our new back-office solution.

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Event History , Maintenance Fee  and Payment History  should be consulted.

Event History

Description Date
Inactive: Recording certificate (Transfer) 2020-07-27
Inactive: Recording certificate (Transfer) 2020-07-27
Inactive: Recording certificate (Transfer) 2020-07-27
Inactive: Correspondence - Transfer 2020-06-19
Inactive: Multiple transfers 2020-05-20
Common Representative Appointed 2019-10-30
Common Representative Appointed 2019-10-30
Grant by Issuance 2019-01-08
Inactive: Cover page published 2019-01-07
Pre-grant 2018-11-08
Inactive: Final fee received 2018-11-08
Notice of Allowance is Issued 2018-05-16
Letter Sent 2018-05-16
Notice of Allowance is Issued 2018-05-16
Inactive: Approved for allowance (AFA) 2018-05-01
Inactive: Q2 passed 2018-05-01
Change of Address or Method of Correspondence Request Received 2018-01-12
Amendment Received - Voluntary Amendment 2017-11-20
Inactive: S.30(2) Rules - Examiner requisition 2017-05-24
Inactive: Report - No QC 2017-05-11
Amendment Received - Voluntary Amendment 2017-01-18
Inactive: S.30(2) Rules - Examiner requisition 2016-07-19
Inactive: Report - No QC 2016-07-13
Letter Sent 2016-06-21
Inactive: Single transfer 2016-06-16
Amendment Received - Voluntary Amendment 2016-04-26
Inactive: S.30(2) Rules - Examiner requisition 2015-10-26
Inactive: Report - QC passed 2015-10-22
Amendment Received - Voluntary Amendment 2014-11-21
Inactive: Cover page published 2014-10-07
Application Published (Open to Public Inspection) 2014-09-25
Inactive: IPC assigned 2014-04-22
Inactive: IPC assigned 2014-04-22
Inactive: First IPC assigned 2014-04-22
Inactive: IPC removed 2014-04-22
Inactive: IPC assigned 2014-04-22
Inactive: IPC assigned 2014-04-22
Inactive: IPC assigned 2014-04-22
Correct Inventor Requirements Determined Compliant 2014-04-09
Filing Requirements Determined Compliant 2014-04-09
Inactive: Filing certificate - RFE (bilingual) 2014-04-09
Letter Sent 2014-04-09
Letter Sent 2014-04-09
Letter Sent 2014-04-09
Inactive: <RFE date> RFE removed 2014-04-09
Application Received - Regular National 2014-04-01
All Requirements for Examination Determined Compliant 2014-03-19
Request for Examination Requirements Determined Compliant 2014-03-19
Inactive: Pre-classification 2014-03-19

Abandonment History

There is no abandonment history.

Maintenance Fee

The last payment was received on 2018-03-06

Note : If the full payment has not been received on or before the date indicated, a further fee may be required which may be one of the following

  • the reinstatement fee;
  • the late payment fee; or
  • additional fee to reverse deemed expiry.

Please refer to the CIPO Patent Fees web page to see all current fee amounts.

Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
BLACKBERRY LIMITED
Past Owners on Record
CHRISTIAN JOSEPH ERIC MONTMINY
DAKE HE
GAELLE CHRISTINE MARTIN-COCHER
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Description 2014-03-19 11 568
Abstract 2014-03-19 1 22
Claims 2014-03-19 6 234
Drawings 2014-03-19 3 59
Representative drawing 2014-08-28 1 11
Cover Page 2014-10-07 1 45
Description 2016-04-26 11 554
Claims 2016-04-26 3 116
Claims 2017-01-18 4 141
Claims 2017-11-20 6 208
Cover Page 2018-12-12 1 44
Representative drawing 2018-12-12 1 10
Courtesy - Certificate of registration (related document(s)) 2014-04-09 1 102
Courtesy - Certificate of registration (related document(s)) 2014-04-09 1 102
Acknowledgement of Request for Examination 2014-04-09 1 175
Filing Certificate 2014-04-09 1 205
Courtesy - Certificate of registration (related document(s)) 2016-06-21 1 102
Reminder of maintenance fee due 2015-11-23 1 112
Commissioner's Notice - Application Found Allowable 2018-05-16 1 162
Final fee 2018-11-08 1 46
Examiner Requisition 2015-10-26 3 229
Amendment / response to report 2016-04-26 25 1,170
Examiner Requisition 2016-07-19 3 185
Amendment / response to report 2017-01-18 8 271
Examiner Requisition 2017-05-24 3 204
Amendment / response to report 2017-11-20 10 364