IP Library Granted Patent US 8,910,015
Granted Patent B2
US 8,910,015 · App. 13/690,775 · Granted Dec 9, 2014

Efficient implementation to perform iterative decoding with large iteration counts

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,910,015
App. No.
13/690,775
Granted
Dec 9, 2014
Kind
B2
Abstract

Systems and methods are presented to improve the performance of a constant bit rate iterative decoder by providing elastic buffering, while utilizing a relatively simple decoder architecture capable of maintaining a fixed number of iterations of a lower value. An LDPC decoder can be designed, for example, to support less than the maximum possible number of iterations, and can, for example, be mated to elastic input and output buffers. If a given code block, or succession of code blocks, requires the maximum number of iterations for decoding, the decoder can, for example, run at such maximum number of iterations and the elastic input buffer can, for example, hold code blocks waiting to be processed so as to maintain a constant input rate. Alternatively, if one or more code blocks requires less than the nominal number of iterations, the output buffer can store those code blocks so as to preserve a constant output rate. It is emphasized that this abstract is provided to comply with the rules requiring an abstract, and is submitted with the understanding that it will not be used to interpret or limit the scope or the meaning of the claims.

Claims (39)

1. A method of performing iterative decoding, comprising:

setting a single decoder to operate at a default iteration rate N;

allowing the decoder to increase or decrease the number of iterations when needed and feasible; and

storing an input queue of code blocks in an elastic input buffer, and an output queue of decoded code blocks in an elastic output buffer, said input buffer and said output buffer each directly connected to the decoder,

wherein the input rate of code blocks to the input buffer, and the output rate of code blocks from the output buffer, are equal and constant, and

wherein the decoder can increase the number of iterations to a maximum number M, an integer multiple of N, and wherein the decoder can decrease the number of iterations below N, but cannot increase the number of iterations above M.

2. The method of claim 1 , wherein the decoder implements one of a Low Density Parity Code, a Turbo code and a modification of either of them.

3. The method of claim 1 , wherein the size of the elastic input buffer is at least one of: a function of the expected number, Nseq, of sequential code blocks that would require M iterations, and Nseq multiplied by the size of a code block multiplied by M/N, or Nseq*M/N*Block_size.

4. The method of claim 1 , wherein the size of the elastic output buffer is a function of the expected number of sequential code blocks that can be processed with less than N iterations.

5. The method of claim 1 , wherein if the elastic input buffer is filled, the decoder operates at no more than N iterations per code block.

6. The method of claim 1 , wherein the decoder can exit processing of a code block upon the detection of one of a defined set of termination indicators.

7. The method of claim 6 , wherein the defined set of termination indicators include large portion of bits still in error after a defined number of iterations, static parity error count, and parity sum below a defined minimum threshold.

8. The method of claim 1 , wherein the decoder increases or decreases the number of iterations based on at least one of: one or more parity checks of the current code block, available space in the input buffer, available space in the output buffer, a static parity error count, and a parity sum falling below a defined threshold.

9. A system for efficient iterative decoding, comprising:

a single decoder set to operate at a default iteration rate N; and

an elastic input buffer and an elastic output buffer, said input buffer and said output buffer each directly connected to the decoder,

wherein, in operation, the decoder can decrease the number of iterations below N, or increase them to a maximum iteration rate M, when needed and feasible, but cannot increase the number of iterations above M; and

wherein the input rate of code blocks to the input buffer and the output rate of code blocks from the output buffer is equal and constant.

10. The system of claim 9 , wherein in operation the decoder can increase or decrease the number of iterations when needed or feasible.

11. The system of claim 10 , wherein the decoder can increase to at least one of: a maximum number of iterations M, and a maximum number of iterations 4N.

12. The system of claim 11 , wherein the size of the elastic input buffer is at least one of a function of the expected number of sequential code blocks that can require M iterations, and a function of the expected number of sequential code blocks that can be processed with less than N iterations.

13. The system of claim 10 , wherein if the elastic input buffer is filled, the decoder operates at no more than N iterations per code block.

14. The system of claim 9 , wherein the decoder implements one of a Low Density Parity Code, a Turbo code and a modification of one of them.

15. The system of claim 9 , wherein the decoder can exit processing of a code block upon the detection of one of a defined set of termination indicators.

16. A non-transitory program storage device readable by a processing unit, tangibly embodying a program of instructions executable by the processing unit to implement a method of performing iterative decoding, said method comprising:

setting a single decoder to operate at a default iteration rate N;

the decoder increasing or decreasing the number of iterations when needed and feasible; and

storing an input queue of code blocks in an elastic input buffer, and an output queue of decoded code blocks in an elastic output buffer, said input buffer and said output buffer each directly connected to the decoder,

wherein the input rate of code blocks to the input buffer, and the output rate of code blocks from the output buffer, are equal and constant, and

wherein the decoder can increase the number of iterations to a maximum number M, an integer multiple of N, and wherein the decoder can decrease the number of iterations below N, but cannot increase the number of iterations above M.

17. The programmable storage device of claim 16 , wherein in said method the decoder implements one of a Low Density Parity Code, a Turbo code and a modification of either of them.

18. The programmable storage device of claim 16 , wherein in said method the size of the elastic input buffer is at least one of:

a function of the expected number, Nseq, of sequential code blocks that would require M iterations, and

Nseq multiplied by the size of a code block multiplied by M/N, or Nseq*M/N*Block_size.

19. The programmable storage device of claim 16 , wherein in said method the size of the elastic output buffer is a function of the expected number of sequential code blocks that can be processed with less than N iterations.

20. The programmable storage device of claim 16 , wherein in said method at least one of:

(i) if the elastic input buffer is filled, the decoder operates at no more than N iterations per code block;

(ii) the decoder can exit processing of a code block upon the detection of one of a defined set of termination indicators, and

(iii) method the defined set of termination indicators include large portion of bits still in error after a defined number of iterations, static parity error count, and parity sum below a defined minimum threshold.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Sep 1, 2017
From: U.S. BANK NATIONAL ASSOCIATION
To: SIRIUS XM RADIO INC.; SIRIUS XM CONNECTED VEHICLE SERVICES INC.
Reel/Frame 043747/0091 →
PATENT SECURITY AGREEMENT Recorded Apr 11, 2014
From: SIRIUS XM RADIO INC.; SIRIUS XM CONNECTED VEHICLE SERVICES INC.
To: U.S. BANK NATIONAL ASSOCIATION
Reel/Frame 032660/0603 →
CHANGE OF NAME Recorded Jan 17, 2013
From: SIRIUS SATELLITE RADIO INC.
To: SIRIUS XM RADIO INC.
Reel/Frame 029651/0835 →