IP Library Granted Patent US 8,295,410
Granted Patent B2
US 8,295,410 · App. 12/537,562 · Granted Oct 23, 2012

Exploiting known padding data to improve block decode success rate

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,295,410
App. No.
12/537,562
Granted
Oct 23, 2012
Kind
B2
Abstract

A method and system of decoding a convolutionally encoded data block having known padding bits. A Viterbi decoder is constrained to a state corresponding to k−1 padding bits immediately adjacent to data bits of the data block, where k is a constraint length of a convolution encoder used to encode the data block. Symbols of the encoded data block that have influence only from the padding bits are discarded.

Claims (27)

1. A method of decoding a convolutionally encoded data blocks, the method comprising:

informing a decoder that encoded data blocks comprise encoded data blocks of original data mapped from one transmission format to another in accordance with a specific protocol by prepending or appending a predetermined number of padding bits having predetermined known values to the data bits of an original data block, the predetermined number of padding bits being greater than or equal to k, where k is an integer greater than or equal to 2, the constraint length of the convolutional code used to encode the data blocks; and

for each encoded data block:

constraining a Viterbi decoder to a state corresponding to k−1 of the known padding bits of the identified protocol immediately adjacent data bits of the data block, the Viterbi decoder comprising a shift register of length k−1 bits;

controlling the Viterbi decoder to decode symbols of the encoded data block corresponding to at least the data bits; and

discarding symbols of the encoded data block corresponding to those of the known padding bits of the identified protocol other than the k−1 known padding bits immediately adjacent data bits of the data block.

2. A method as claimed in claim 1 , wherein the known padding bits comprise n known padding bits prepended to the data bits, and wherein the step of constraining the Viterbi decoder comprises a step of constraining a Start state of the decoder to a state corresponding to the last k−1 of the n known padding bits prepending the data bits.

3. A method as claimed in claim 2 , wherein the step of discarding symbols of the encoded data block comprises step of:

disabling operation of the Viterbi decoder while latching the first n bits of the data block into the shift register of the Viterbi decoder.

4. A method as claimed in claim 1 , wherein the known padding bits comprise n known padding bits appended to the data bits, and wherein the step of constraining the Viterbi decoder comprises a step of constraining an End state of the decoder to a state corresponding to the first k−1 of the n known padding bits appending the data bits.

5. A method as claimed in claim 4 , wherein the step of discarding symbols of the encoded data block comprises a step of:

discarding any remaining bits of the encoded data block after processing the first e=(N−n)+(k−1) bits of the encoded data block through the Viterbi decoder, where N is the total length of the data block.

6. A method as claimed in claim 1 , wherein the convolutionally encoded data block is a data block of an Enhanced Data for Global Evolution (EDGE) data frame.

7. A system for decoding a convolutionally encoded data blocks, the system comprising:

a Viterbi decoder including a shift register of length k−1 bits, where k is an integer greater than or equal to 2; and

a controller adapted in response to being informed that encoded data blocks comprise encoded data blocks of original data mapped from one transmission format to another in accordance with a specific protocol by prepending or appending a predetermined number of padding bits having predetermined known values to the data bits of an original data block, the predetermined number of padding bits being greater than or equal to k, the constraint length of the convolutional code used to encode the data blocks,

to for each encoded data block to:

constrain the Viterbi decoder to a state corresponding to k−1 of the padding bits of the identified protocol immediately adjacent data bits of the data block;

control the Viterbi decoder to decode symbols of the encoded data block corresponding to at least the data bits; and

discard symbols of the encoded data block corresponding to those of the known padding bits of the identified protocol other than the k−1 known padding bits immediately adjacent data bits of the data block.

8. A system as claimed in claim 7 , wherein the known padding bits comprise n known padding bits prepended to the data bits, and wherein the controller is adapted to constrain a start state of the decoder to a state corresponding to the last k−1 of the n known padding bits prepending the data bits.

9. A system as claimed in claim 8 , wherein the controller is adapted to discard symbols of the encoded data block by:

disabling operation of the Viterbi decoder while latching the first n bits of the data block into the shift register of the Viterbi decoder.

10. A system as claimed in claim 7 , wherein the known padding bits comprise n known padding bits appended to the data bits, and wherein the controller is adapted to constrain an End state of the decoder to a state corresponding to the first k−1 of the n known padding bits appending the data bits.

11. A system as claimed in claim 10 , wherein the controller is adapted to discard symbols of the encoded data block by:

discarding any remaining bits of the encoded data block after processing the first e=(N−n)+(k−1) bits of the encoded data block through the Viterbi decoder, where N is the total length of the data block.

12. A system as claimed in claim 7 , wherein the convolutionally encoded data block is a data block of an Enhanced Data for Global Evolution (EDGE) data frame.

Assignments (4)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Nov 5, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 034176/0557 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2009
From: TRAN, PHAT, MR.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 023068/0869 →