← Back to Patent Explorer
US5422894A Expired / Lapsed US ⏱️ 0.0 years remaining

Real-time convolutional decoder with block synchronizing function

Assignee: Canon Inc
•
Filing: 1994-06-21
•
Granted: 1995-06-06
•
Expires: 2014-06-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A decoder receives frames of data that have been block coded, then convolutionally coded, at a rate of multiple frames per block. As each frame is received, the decoder counts it, stores convolutional code path information, and updates metric values pertaining to the paths. Once per block of frames, the decoder selects a path having the best metric value, convolutionally decodes one block, detects errors from both the block code and path metric, and generates error information. From the error information, the decoder decides whether block synchronization has been acquired or lost, and clears, decrements, or sets the frame count accordingly. If synchronized, the decoder outputs the block and its error information, and updates the path memory in preparation to decode the next block. Otherwise, the decoder prepares to reacquire block synchronization.

Inventors

  • 👤 Masami Abe
  • 👤 Jun Iwata

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 07:26
CPC Classifications
H; H04; H04L; H04L7/00; H04L7/04; H04L7/048; H03; H03M; H03M13/00; H03M13/33; H03M13/37; H03M13/39; H03M13/41

Claims Analysis

Total Claims: 18
Claim 1
Independent Claim 275 words
A method of decoding data that have been block encoded with a redundant code in each block, then convolutionally coded and transmitted in frames at a rate of at least two frames per block, comprising the steps of: receiving said frames and storing their data temporarily in an input buffer memory; storing path information describing possible convolutional code paths of said data in a path memory, new path information being stored as each of said frames is received; storing metric values pertaining to said paths in a metric memory, and updating said metric values whenever said new path information is stored; keeping a count of frames received; waiting until said count reaches a value representing one block of frames; selecting one path among said paths, according to said metric values; generating one block of convolutionally decoded data by retracing said one path; detecting errors according to both the redundant code contained in said one block and the metric value stored in said metric memory pertaining to said one path, and generating corresponding error information; deciding, from said error information, whether block synchronization has been acquired; altering said count to a value representing one frame less than one block of frames if block synchronization has not been acquired; clearing said count to a value representing zero frames if block synchronization has been acquired; deciding, from said error information, whether block synchronization has been lost; clearing said count to a value representing zero frames if block synchronization has not been lost; setting said count to a value representing at most zero frames if block synchronization has been lost; and outputting said one block and said error information.
Claim 2
Independent Claim 275 words
A method of decoding data that have been block encoded with a redundant code in each block, then convolutionally coded and transmitted in frames at a rate of at least two frames per block, comprising the steps of: receiving said frames and storing their data temporarily in an input buffer memory; storing path information describing possible convolutional code paths of said data in a path memory, new path information being stored as each of said frames is received; storing metric values pertaining to said paths in a metric memory, and updating said metric values whenever said new path information is stored; keeping a count of frames received; waiting until said count reaches a value representing one block of frames; selecting one path among said paths, according to said metric values; generating one block of convolutionally decoded data by retracing said one path; detecting errors according to both the redundant code contained in said one block and the metric value stored in said metric memory pertaining to said one path, and generating corresponding error information; deciding, from said error information, whether block synchronization has been acquired; altering said count to a value representing one frame less than one block of frames if block synchronization has not been acquired; clearing said count to a value representing zero frames if block synchronization has been acquired; deciding, from said error information, whether block synchronization has been lost; clearing said count to a value representing zero frames if block synchronization has not been lost; setting said count to a value representing at most zero frames if block synchronization has been lost; and outputting said one block and said error information.
Claim 3
Dependent Claim 50 words
The method of claim 1, wherein the step of deciding whether block synchronization has been acquired is performed once per frame until block synchronization is indeed acquired, after which the step of deciding whether block synchronization has been lost is performed once per block until block synchronization is indeed lost.
Claim 4
Dependent Claim 30 words
The method of claim 1, comprising the further step of clearing all said metric values from said metric memory after said step of deciding whether block synchronization has been lost.
Claim 5
Dependent Claim 48 words
The method of claim 1, wherein said count is initially set to a value representing a negative number of frames, so that said one block of convolutionally decoded data will not be generated until at least one frame after the data of said one block has been received.
Claim 6
Dependent Claim 37 words
The method of claim 1, wherein said step of detecting errors comprises: deciding whether said one path matches the data received for said one block; and deciding whether the redundant code in said one block is correct.
Claim 7
Dependent Claim 30 words
The method of claim 1, wherein the step of detecting whether block synchronization has been lost comprises deciding whether errors have been detected in a certain number of consecutive blocks.
Claim 8
Dependent Claim 14 words
The method of claim 1, wherein said error information comprises a single error flag.
Claim 9
Dependent Claim 48 words
The method of claim 7, wherein said error flag is cleared to a certain value when said one path matches the data received for said one block and the redundant code in said one block is correct, and said error flag is otherwise set to a different value.
Claim 10
Dependent Claim 11 words
The method of claim 1, wherein said path information comprises pointers.
Claim 11
Dependent Claim 299 words
A Viterbi decoder for decoding data that have been block encoded with a redundant code in each block, then convolutionally coded, transmitted, and received in frames at a rate of at least two frames per block, comprising: an input buffer memory with a capacity of at least one frame, for storing said data as received; a path memory for storing path information describing possible convolutional code paths for at least one block of said data; a metric memory for storing metric values pertaining to said paths; a path processor coupled to store new path information in said path memory and update said metric memory as each frame is received; a counter coupled to count received frames; a path decoder coupled to wait until said counter reaches a value representing one block of frames, then select one path among said paths according to said metric values and generate one block of convolutionally decoded data by retracing said one path; an error detector coupled to detect errors according to the redundant code contained in said one block and the metric value stored in said metric memory pertaining to said one path, and generate error information; a synchronizing processor coupled to decide from said error information whether block synchronization has been acquired, decrement said counter if block synchronization has not been acquired, and clear said counter to a value representing zero frames if block synchronization has been acquired; a steady-state processor coupled to decide from said error information whether block synchronization has been lost, clear said counter to a value representing zero frames if block synchronization has not been lost, and set said counter to a value representing at most zero frames if block synchronization has been lost; and an output section coupled to output said one block and said error information.
Claim 12
Dependent Claim 299 words
A Viterbi decoder for decoding data that have been block encoded with a redundant code in each block, then convolutionally coded, transmitted, and received in frames at a rate of at least two frames per block, comprising: an input buffer memory with a capacity of at least one frame, for storing said data as received; a path memory for storing path information describing possible convolutional code paths for at least one block of said data; a metric memory for storing metric values pertaining to said paths; a path processor coupled to store new path information in said path memory and update said metric memory as each frame is received; a counter coupled to count received frames; a path decoder coupled to wait until said counter reaches a value representing one block of frames, then select one path among said paths according to said metric values and generate one block of convolutionally decoded data by retracing said one path; an error detector coupled to detect errors according to the redundant code contained in said one block and the metric value stored in said metric memory pertaining to said one path, and generate error information; a synchronizing processor coupled to decide from said error information whether block synchronization has been acquired, decrement said counter if block synchronization has not been acquired, and clear said counter to a value representing zero frames if block synchronization has been acquired; a steady-state processor coupled to decide from said error information whether block synchronization has been lost, clear said counter to a value representing zero frames if block synchronization has not been lost, and set said counter to a value representing at most zero frames if block synchronization has been lost; and an output section coupled to output said one block and said error information.
Claim 13
Dependent Claim 26 words
The decoder of claim 10 wherein, after deciding whether block synchronization has been lost, said steady-state processor clears all said metric values from said metric memory.
Claim 14
Dependent Claim 50 words
The decoder of claim 10, wherein said counter is initially set to a value representing a negative number of frames, so that said path decoder will not generate said one block of convolutionally decoded data until at least one frame after the data of said one block has been received.
Claim 15
Dependent Claim 34 words
The decoder of claim 10, wherein said error detector detects an error unless the redundant code in said one block is correct and said one path matches the data received for said one block.
Claim 16
Dependent Claim 30 words
The decoder of claim 10, wherein said steady-state processor detects loss of block synchronization if said error detector detects that errors are present in a certain number of consecutive blocks.
Claim 17
Dependent Claim 14 words
The decoder of claim 10, wherein said error information comprises a single error flag.
Claim 18
Dependent Claim 11 words
The decoder of claim 10, wherein said path information comprises pointers.

References Cited (Backward Citations)

US4312070A Cited
US5117427A Cited
US5014276A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-06-05 1998-12-05 1999-06-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-06-05 2002-12-05 2003-06-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-06-05 2006-12-05 2007-06-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag