WO2011082834A1 - Error correction - Google Patents
Error correction Download PDFInfo
- Publication number
- WO2011082834A1 WO2011082834A1 PCT/EP2010/050230 EP2010050230W WO2011082834A1 WO 2011082834 A1 WO2011082834 A1 WO 2011082834A1 EP 2010050230 W EP2010050230 W EP 2010050230W WO 2011082834 A1 WO2011082834 A1 WO 2011082834A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- error correction
- vertical error
- plural
- vertical
- Prior art date
Links
- 238000012937 correction Methods 0.000 title claims abstract description 211
- 238000000034 method Methods 0.000 claims abstract description 51
- 230000011664 signaling Effects 0.000 claims description 95
- 230000015654 memory Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 235000007682 pyridoxal 5'-phosphate Nutrition 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0066—Parallel concatenated codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0065—Serial concatenated codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/007—Unequal error protection
Definitions
- This invention relates to methods and apparatuses for enabling error correction of data portions.
- this specification describes a method comprising: receiving plural data portions; forming plural data frames, each data frame comprising one of the plural data portions conjoined with horizontal error correction data generated on the basis of the one of the plural data portions; and generating at least one vertical error correction portion on the basis of the data portions by creating plural elements of vertical error correction data, each element of error correction data being generated on the basis of corresponding elements in each of the plural data portions, each vertical error correction portion comprising plural error correction elements.
- this specification describes apparatus comprising: at least one processor; and memory, the memory having stored thereon computer readable code, which when executed by the at least one processor causes the at least one processor to: receive plural data portions; form plural data frames, each data frame comprising one of the plural data portions conjoined with horizontal error correction data generated on the basis of the one of the plural data portion; and generate at least one vertical error correction portion on the basis of the plural data portions by creating plural elements of vertical error correction data, each element of error correction data being generated on the basis of corresponding elements in each of the plural data portions, each vertical error correction portion comprising plural error correction elements.
- this specification describes a method comprising: receiving plural data frames, each data frame comprising a data portion and horizontal error correction data; receiving at least one vertical error correction portion, each vertical error correction portion comprising plural elements; for each of the plural data frames, horizontally decoding the data portion in conjunction with the horizontal error correction data; and vertically decoding the horizontally decoded data portions of the plural data frames in conjunction with the at least one vertical error correction portion by using each element of the at least one vertical error correction portion to decode corresponding elements in the plural horizontally decoded data portions.
- this specification describes apparatus comprising: at least one processor; and memory, the memory having stored thereon computer readable code, which when executed by the at least one processor causes the at least one
- processors to: receive plural data frames, each data frame comprising a data portion and horizontal error correction data; receive at least one vertical error correction portion, each vertical error correction portion comprising plural elements; for each of the plural data frames, horizontally decode the data portion in conjunction with the horizontal error correction data; and vertically decode the horizontally decoded data portions of the plural data frames in conjunction with the at least one vertical error correction portion by using each element of the at least one vertical error correction portion to decode corresponding elements in the plural horizontally decoded data portions.
- this specification describes computer readable code, optionally stored on a non-transitory computer readable medium, which when executed by computer apparatus causes the computer apparatus to perform the method of either of the first or third aspects described above.
- apparatus comprising: means for receiving plural data portions; means for forming plural data frames, each data frame comprising one of the plural data portions conjoined with horizontal error correction data generated on the basis of the one of the plural data portions; and means for generating at least one vertical error correction portion on the basis of the data portions by creating plural elements of vertical error correction data, each element of error correction data being generated on the basis of corresponding elements in each of the plural data portions, each vertical error correction portion comprising plural error correction elements.
- this specification also describes apparatus comprising: means for receiving plural data frames, each data frame comprising a data portion and horizontal error correction data; means for receiving at least one vertical error correction portion, each vertical error correction portion comprising plural elements; means for horizontally decoding, for each of the plural data frames, the data portion in conjunction with the horizontal error correction data; and means for vertically decoding the horizontally decoded data portions of the plural data frames in conjunction with the at least one vertical error correction portion by using each element of the at least one vertical error correction portion to decode
- padding data may be appended to one or more of the plural data portions so as to ensure that each of the data portions is of an equal length. This may occur at any time prior to generating the at least one vertical error correction portion.
- the generated at least one vertical error correction portions is of a length equal to the length of each of the plural data portions.
- Exemplary embodiments describe computer readable code, optionally stored on a non-transitory computer readable medium, which when executed by computer apparatus causes the computer apparatus to perform described methods.
- Figure 1 is a simplified schematic overview of a communication system in which exemplary embodiments of the invention can be implemented
- FIG. 2 is a schematic view of broadcast apparatus in which exemplary
- Figure 3 is a flow chart depicting an exemplary operation according to the present invention of the broadcast apparatus of Figure 2;
- Figure 4 is an exemplary schematic depiction of the format of data throughout the operation depicted in Figure 3;
- Figure 5A illustrates a first signalling method according to exemplary embodiments of the invention
- Figure 5B illustrates a second signalling method according to exemplary
- Figure 6 is a schematic view of receiver apparatus according to exemplary embodiments of the invention.
- Figure 7 is a flow chart depicting an exemplary operation performed by the receiver apparatus of Figure 6;
- Figure 8A is a schematic illustration of a horizontal step of an exemplary decoding operation
- Figure 8B is a schematic illustration of a vertical step of an exemplary decoding operation.
- Figure 9 is a simplified schematic view of an exemplary decoder that can be used to perform the decoding steps of the operation of Figure 7. Detailed Description of Embodiments
- Figure 1 shows a simplified schematic overview of parts of a communication system.
- the system comprises broadcaster apparatus 10, which receives logical data streams from one or more service providers 11, 12.
- the broadcast apparatus 10 operates on the data streams and then broadcasts or multicasts the resulting data via intermediary apparatus 13, such as television masts, to one or more receiver apparatuses 14 which are able to reproduce the data streams for consumption by one or more users.
- Data can be lost or corrupted during transmission.
- Figure 2 is a schematic view of apparatus 10 according to exemplary embodiments of the invention. More particularly Figure 2 is a schematic view of broadcast apparatus 10 according to exemplary embodiments of the invention.
- the broadcast apparatus 10 comprises a digital broadcasting module 20.
- an input preprocessor 21 is also included.
- the input pre-processor module 21 is not part of the digital broadcasting module 20.
- the input pre-processor 21 could operate as a service splitter, a scheduler or a de-multiplexer.
- the digital broadcasting module 20 comprises an input processing module 22, a bit interleaving and coding modulation module 23, a frame builder 24 and a modulator 25. An output of the digital broadcasting module 20 is broadcast via an antenna 26.
- the operation of various components of the digital broadcasting module 20 will be discussed below. The below methods and apparatuses are discussed within a Digital Video Broadcast Second Generation Terrestrial (DVB-T2) context, the standard for which is described in ETSI EN 302 755 (version 1.1.1 2009-09).
- the input to the digital broadcasting module 20 consists of one or more logical data streams received from the one or more service providers 11, 12.
- Each logical data stream may be carried by a respective physical layer pipe (PLP).
- PLP physical layer pipe
- PSI program specific information
- SI service information
- a PLP is a fully transparent data pipe which generally enables data of a structure with freely selectable, but PLP-specific physical parameters, to be transported.
- the capacity and also the service robustness may be adjusted according to particular requirements, depending on the type of receiver apparatus 14 and/or its usage environment.
- Figure 3 is a flow chart depicting an exemplary operation of the digital broadcasting module 20.
- Figure 4 is schematic showing the format of the incoming data of one logical data stream as it is processed by the digital
- step SI of the flow chart of Figure 3 the input processing module 22 receives a first portion of a logical data stream that is to be broadcast.
- step S2 the input processing module 22 slices the first portion of the data stream to form a data segment 40 (see Figure 4).
- a data segment 40 may also be referred to as a "data portion”.
- the input processing module 22 operates separately on the contents of each incoming PLP.
- Each data segment 40 is comprised of a
- Figure 4 shows plural data segments 40 formed from sequential portions of the incoming logical data stream. The flow chart of Figure 3 handles each of the plural data segments 40 separately as they are formed by the input processing module 22.
- a BB data frame 41 comprises a BB header 41-1 and a data segment (or field) 40.
- the size of the data field 40 in BB data frame 41 may be fixed for a given PLP.
- the size of the data field 40 may depend on the forward error correction code rate which is later applied on the BB data frame 41.
- step S4 it is determined whether the data within the BB data frame 41 requires additional forward error correction protection against transmission errors. It may be more important that some components of a service to be correctly reproduced than it is for other components to be correctly reproduced. For example, it may be more important for audio and base layer video components of a scalable video coding (SVC) stream to be correctly reproduced than it is for enhancement layer video to be correctly reproduced. Thus, in step S4, it may be determined that BB data frames 41 comprising data segments 40 relating to important components require additional forward error correction protection and that BB data frames 41 comprising data segments 40 relating to less important components do not require additional forward error correction protection. It will be understood that a different criterion for determining whether additional forward error correction protection is required may instead be used.
- SVC scalable video coding
- step S4 If, in step S4, it is determined that the BB data frame 41 does not require additional forward error correction protection, the operation proceeds to steps S5 and S6. Steps S5 and S6 are described in some detail below, and so a discussion of these steps is not provided at this point.
- step S7 the input processing module 22 arranges the BB data frame 41 in a data structure 42.
- the data structure 42 comprises plural rows of BB data frames 41.
- step S8 it is determined whether the data structure 42 is complete. This may be dependent on the current size of the data structure 42. This is discussed in greater detail later, and so a discussion of this step is not provided at this point. If, in step S8, the data structure 42 is found not to be complete, the operation returns to step SI .
- FIG. 4 shows a complete data structure 42.
- Each of the BB data frames 41 that is found in step S4 to require additional forward error correction protection is provided in a different row 42-1 of the data structure 42.
- the BB data frame 41 that includes the data segment 40 relating to the first portion of the data stream is arranged in the first row 42- la of the data structure 42.
- the BB data frame 41 that includes the data segment 40 relating to a latest portion of the data stream is placed in the last row 42-lb. .
- the number of BB data frames 41 that constitute the data structure 42 may be dependent on the decoding process carried out by the receiver apparatus 14. For example, there may be a maximum allowable decoding delay. Thus, the number of BB data frames 41 arranged in the data structure 42 may be constrained by the duration of the data stream data that is contained within the data structure 42. For example, if the maximum allowed decoding delay of a receiver is 1 second, the number of BB data frames 41 must be such that the duration of data stream contained within the BB data frames 41 does not exceed 1 second.
- the data structure 42 is found to be complete, the operation proceed to step S9.
- step S9 the input processing module 22 generates one or more repair segments 43.
- a repair segment may also be termed a "vertical error correction portion".
- the repair segments 43 are generated based on the data segments 40 of the BB data frames 41 within the data structure 42.
- Each of the generated repair segments 43 comprises plural bits of parity data 43-1.
- the number of parity data bits 43-1 in the repair segments 43 is the same as the number of data bits in the data segment 40 of each of the BB data frames 41 in the data structure 42.
- the repair segments 43 may be formed by performing a single forward error correction encoding operation on data bits 40 which are in the same position in their respective BB data frame 41. As such, the first parity bits 43- la in each of the repair segments 43 are generated based on the first data bits 40- la in the data field 40 of each of the BB data frames 41 in the data structure 42.
- the forward error correction encoding operation used to generate the repair segments 43 may include block erasure encoding operations such as Reed-Solomon or Bose-Chaudhuri-Hocquenghem multiple error correction binary block code (BCH) operations.
- BCH Bose-Chaudhuri-Hocquenghem multiple error correction binary block code
- the forward error correction encoding operation used to generate the repair segments 43 may be a bit error correction code such as a simple parity check code.
- the number of repair segments 43 that are generated may be dependent on the number of the rows 42-1 of BB data frames 41 in the data structure 42 and on the code rate of the forward error correction encoding operation.
- the input processing module 22 forms a BB repair frame 44 from each of the generated repair segments 43 by adjoining a BB-header 44-1.
- the newly formed BB repair frames 44 are appended to the data structure 42.
- the data structure 42 having the BB repair frames 44 appended thereto is known as a "source block" 45.
- the repair segments 43 are only effective to correct post-transmission errors in the data segments 40 if, during decoding, they are in the position in which they were generated.
- the BB repair frames 44 are positioned in the source block 45 in the order in which their corresponding repair segments 43 were generated.
- the input processing module 22 provides each of the BB data frames 41 and each of the BB repair frames 41, 44 in the source block 45 with signalling data (not shown).
- the signalling data allows a receiver apparatus 14 to reproduce the source block 45 and thereby to correct transmission errors in the data segments 40.
- the signalling data may include an indication of the data type within the BB data/repair frame 41, 44, i.e. whether the BB data/repair frame 41, 44 contains a data field or a repair segment.
- the signalling data may include an indication as to whether the BB data/repair frame 41, 44 is the last of its type in a source block.
- the signalling data may also include an indication of the source block from which the BB data/repair frame 41, 44 originates.
- the signalling data may include an indication of the original position of BB data/repair frame 41, 44 within the source block.
- the BB data/repair frames 41, 44 are passed to the bit interleaving and coding modulation module 23 where, in step S5, parity data 46, 47 for each of the BB data/repair frames 41, 44 is generated and appended to its corresponding BB data/repair frame 41, 44.
- the parity data 46, 47 is generated by first implementing an outer encoding step.
- the outer encoding step may comprise performing a BCH encoding operation on the bits in the BB data/repair frame 41, 44, including those bits that make up the BB header 41-1, 44-1.
- an inner encoding step is performed.
- the inner encoding step may comprise performing a low density parity check (LDPC) encoding operation on the bits in the BB data/repair frame 41, 44 including those in the BB header 41-1, 44-1.
- LDPC low density parity check
- the generated parity data 46, 47 is appended to the BB data/repair frame 41, 44.
- BCH parity data 46 which was generated during the outer encoding step, is appended directly after the BB-frame 41, 44.
- LPDC parity data 47 which was generated during the inner encoding step, is appended after the BCH parity data 46.
- a BB data/repair frame 41, 44 which has BCH and LPDC parity data appended to it may be known as an FEC frame 48.
- those FEC frames 48 which include data segments 40 are labelled 48-1 (and include parallel line hatching) and those FEC frames 48 which include repair segments 43 are labelled 48-2 (and include cross-hatching).
- BB data frames 41 that, in step S4, are determined not to require additional forward error correction protection are passed directly to the bit interleaving and coding modulation module 23 where a FEC frame 48-1 is formed from the BB data frame 41 in the same manner as described above.
- step S6 after formation of the FEC frame 48, the FEC frame 48 is passed to the frame builder 24.
- the frame builder 24 is configured to arrange the link layer frame 48 in a physical layer frame 49.
- a physical layer frame 49 may comprise a plurality of FEC frames 48, a PI symbol 49-1 and one or more P2 symbols 49-2.
- Each physical layer frame 49 includes FEC frames 48 from one or more source block 45.
- Link layer FEC frames 48 corresponding to a single source block 45 may be spread over a plurality of different physical layer frames 49.
- Figure 4 shows four physical layer frames 49.
- the FEC frames 48 from the source block 45 are distributed over four physical layer frames 49.
- the FEC Frames 48-2 carrying a repair segment 43 are all located in a single physical layer frame 49. However, this may not be the case. Instead, one FEC Frame 48-2 carrying a repair segment 43 may be in one physical layer frame 49 and the other two may be in a different physical layer frame 49.
- step SI in which a next portion of an incoming data stream is received.
- the physical layer frames 49 are modulated using the modulator 25, and are then transmitted to one or more receivers 14 via the antenna 26. These operations are not shown on Figure 3.
- the modulator 25 may modulate the physical layer frames 49 using orthogonal frequency division multiplexing (OFDM). Alternatively, another type of modulation may be used.
- the BB data/repair frames 41, 44 of a source block are provided with signalling data (see step S6 of Figure 3). According to some exemplary embodiments, the signalling data is provided in the BB-header 41-1, 44-1. According to other exemplary embodiments, the signalling data is provided within padding (not shown) appended to the data/repair segment 40, 43 of the BB data/repair frame 41, 44.
- Figure 5A illustrates a signalling method according to exemplary embodiments wherein the signalling data is provided in the BB-header 41-1, 44-1.
- Figure 5B illustrates a signalling method in according to exemplary embodiments wherein signalling data is provided within padding data appended to the data/repair segment 40, 43 of the BB data/repair frame 41, 44.
- the BB header may comprise six different fields, which are shown in Figure 5A. These fields are: MATYPE 51-1, which is two bytes in size; UPL 51-2, which is two bytes in size; DFL 51-3, which is two bytes in size; SYNC 51-4, which is one byte in size; SYNCD 51-5, which is two bytes in size; and CRC-8 MODE 51-6, which is one byte in size.
- MATYPE 51-1 which is two bytes in size
- UPL 51-2 which is two bytes in size
- DFL 51-3 which is two bytes in size
- SYNC 51-4 which is one byte in size
- SYNCD 51-5 which is two bytes in size
- CRC-8 MODE 51-6 which is one byte in size.
- the UPL 51-2, SYNC 51-4, and SYNCD, 51-5 fields are proposed to be reserved for future use. Thus, five bytes are available.
- the signalling data is provided using the available three bytes of the UPL 51-2 and SYNC 51-4 fields.
- the signalling data is provided using the available three bytes of the SYNCD 51-5 and SYNC 51-4 fields. Table 1 below shows how the signalling data is distributed over the three bytes. Field Size
- the DATA_TYPE field uses one bit, and indicates whether the segment 40, 43 within the BB data/repair frame 41, 44 is a data (or source) segment 40, or a FEC (or repair) segment.
- a '1 ' in this field may indicate that the segment 40, 43 contained in the BB data/repair frame 41, 44 is a data segment 40
- a '0' in this field may indicate that the segment 40, 43 contained in the BB data/repair frame 41, 44 is a repair segment 43.
- '1 ' may indicate a repair segment 43 and '0' may indicate a data segment 40.
- the LAST_SYMBOL field uses one bit and indicates whether the BB data/repair frame 41, 44 is the last one of its type (i.e. a BB data frame or a BB repair frame), of its source block 45. For example, a '1 ' may indicate that the BB data/repair frame 41, 44 is the last of its type, and a '0' may indicate that the BB data/repair frame 41, 44 is not the last of its type, or vice versa.
- This field is used by the receiver apparatus 14 in conjunction with DATA_TYPE field.
- the RESERVED_1 field contains 6 bits which are reserved for future use.
- the RESERVED_1 field may be used to identify the type of FEC code used to generate the repair segments, so that the decoder is able to construct the appropriate generator or check matrix that corresponds to the one used by the broadcast apparatus 10 for the source block.
- the FEC_SOURCE_BLOCK_NR field comprises 8 bits and indicates the number or identity of the source block 45 to which the BB data/repair frame 41, 44 belongs.
- the FEC_SYMBOL_NR field comprises 8 bits and indicates the location of the BB data/repair frame 41, 44 within the source block. For example, this field may indicate a row number.
- the signalling data is provided within padding bytes appended to the end of the BB data/repair frame 41, 44.
- the padding bytes may be appended to the BB data/repair frames 41, 44 between the operations of steps 10 and 11 of Figure 3.
- DVB-T2 incorporates in-band signalling, known as Type-A signalling, in the BB data/repair frame 41, 44.
- the presence of in-band signalling is indicated by an IN_BAND_FLAG field in an LI -post- signalling header being set to ⁇ '.
- the Ll- post- signalling header is part of the P2 symbol 49-2 of the physical layer frame 49.
- the Type-A signalling data 52-1 can be seen in Figure 5B located immediately after the data/repair segment 40, 43 in the FEC Frame 48.
- a second set of signalling data, Type-B FEC signalling data 52-2 is provided in the FEC frame 48.
- Padding data 52-3 located after the Type-B signalling data 52-2, may also be included in the FEC frame 48.
- the Type-B signalling data 52-2 is 3 bytes in size.
- the mapping of the various fields is illustrated in Table 2, below: Field Size
- the PADDING_TYPE field uses 2 bits and indicates the type of signalling data (i.e. Type-A or Type-B FEC) to which the field belongs.
- Type-A or Type-B FEC type of signalling data
- '00' indicates that the signalling data is Type-A signalling data 52-1
- '01 ' indicates that the signalling data is Type-B FEC signalling data 52-2
- Type-A signalling data 52-1 may be indicated by any of '01 ', '10', and 11
- Type- B FEC signalling data 52-2 may be indicated by any of '00', '10' and '11 '.
- the OTHER IN_BAND_SIGNALLING field is used to indicate if there is more in-band signalling within the FEC frame 48 after this particular set of signalling data, which is, in this example, Type-B FEC signalling data 52-2.
- '1 ' may indicate that there is other signalling data
- '0' may indicate that there is not any other signalling data, or vice versa.
- the DATA_TYPE field uses one bit, and indicates whether the segment 40, 43 within the BB data/repair frame 41, 44 is a data (or source) segment 40, or a repair segment 43.
- a '1 ' in this field may indicate that the segment 40, 43 contained in the BB data/repair frame 41 , 44 is a data segment 40
- a '0' in this field may indicate that the segment 40, 43 contained in the BB data/repair frame 41 , 44 is a repair segment 43.
- '1 ' may indicate a repair segment 43
- '0' may indicate a data segment 40.
- the LAST_S YMB OL field uses one bit and indicates whether the BB data/repair frame 41 , 44 is the last one of its type (i.e. a BB data frame or a BB repair frame), of its source block 45. For example, a '1 ' may indicate that the BB data/repair frame 41 , 44 is the last of its type, and a '0' may indicate that the BB data/repair frame is not the last of its type, or vice versa.
- This field is used by the receiver apparatus 14 in conjunction with DATA_TYPE field.
- the RESERVED_1 field contains 5 bits which are reserved for future use.
- the RESERVED_1 field may be used to identify the type of FEC code used to generate the repair segments, so that the decoder is able to construct the appropriate generator or check matrix that corresponds to the one used by the broadcast apparatus 10 for the source block.
- the FEC_SOURCE_BLOCK_NR field comprises 8 bits and indicates the number or identity of the source block to which the BB data/repair frame 41 , 44 belongs.
- the FEC_SYMBOL_NR field comprises 8 bits and indicates the location of the BB data/repair frame 41 , 44 within the source block. For example, this field may indicate a row number.
- an additional field, OTHER IN_BAND_SIGNALLING, is included in the Type-A signalling data 52- 1.
- the Type-A signalling data is mapped as is shown in Table 4, below.
- the receiver apparatus 14 is notified that, after the last bit of Type-A signalling data 52-1, there is more signalling data to be checked.
- FIG. 6 is a schematic view of receiver apparatus 14 according to exemplary embodiments of the invention.
- the receiver apparatus 14 comprises receiver circuitry 60 which is configured to receive incoming signals from an antenna 61.
- the receiver circuitry 60 is configured to convert the incoming signal into data.
- the receiver apparatus 14 also comprises memory 62, such as RAM or ROM, for storing incoming and part-processed data.
- the receiver apparatus also comprises a decoder module 63 for decoding the incoming data and thereby correcting erasure and corruption that may have occurred during transmission.
- the receiver apparatus 14 also comprises a controller 64 for controlling the other components of the receiver apparatus 14.
- the controller 64 may include one or more processors or microprocessors under the control of software stored on the memory 62.
- the receiver apparatus 14 also comprises an output interface 65 for outputting the decoded data. In some embodiments multiple antennas may be used.
- the receiver apparatus 14 may also include a reproduction module (not shown) for reproducing a data stream from the decoded data.
- the receiving apparatus 14 may include features relating to other functionality.
- the receiving apparatus may be a mobile terminal, a telephone handset, a smartphone or any other similar device, in which case other conventional features of telephone handsets, such as a microphone, a second antenna and a transceiver configured to transmit and receive voice data over a telephone network may be included.
- other features are included depending on its required functionality.
- the apparatus may be part of a TV set or a setup-box or any other similar device.
- Step Tl incoming physical layer frames 49 are received at the receiver circuitry 60.
- the received physical layer frames 49 may then be written to memory 62 to await decoding at an appropriate time.
- step T2 the PI symbols and P2 symbols of each of the first physical layer frames 49 are decoded by the decoder module 63.
- the IN_BAND_FLAG field in the LI -post-signalling header to is checked to determine if the FEC frames 48 contain in-band signalling.
- step T3 one of the FEC frames 48 of which the received physical frames are comprised is passed to the decoder 63.
- step T4 the FEC frame 48 is horizontally decoded by the decoder module 63.
- Horizontal decoding comprises the BB data/repair frame 41, 44 contained within the FEC frame 48 being decoded in conjunction with the BCH 46 and LDPC data 47 appended thereto.
- the horizontal decoding step is illustrated in Figure 8A.
- Figure 8A shows the horizontal nature of the decoding operation, in that the decoding operation is along a single BB data/repair frame 41, 44. A plurality of iterations of the horizontal decoding step may be carried out in step T4.
- step T5 following the horizontal decoding of the FEC frame 48, the controller 64 determines if the decoded BB data/repair frame 41, 44 includes vertical error correction signalling. This determination may be carried out, for example, by checking the signalling field of the decoded BB data frame 41.
- step T6 the decoded BB data frame 41 is forwarded to the output interface 65.
- the decoded BB data frame 41 may then be forwarded to the reproduction module (not shown).
- step T6 the operation returns to step T3 in which another BB data/repair frame 41, 44 from the received physical layer frames 49 is passed to the decoder 63.
- step T5 If it is determined in step T5 that the decoded BB data/repair frame 41, 44 does include vertical error correction signalling, the operation proceeds to step T7.
- step T7 the signalling data of the decoded BB data/repair frame 41, 44 is checked. This may be located in the BB header 41-1, 44-1 or in the padding data appended to the data/repair segment 40, 43.
- the decoded BB data/repair frame 41, 44 is stored in a buffer.
- the buffer may be part of the memory 62.
- BB data/FEC frames 41, 44 which originated from the same source block 45 are stored in the same buffer.
- the identity of the originating source block 45 may be determined based on the FEC_SOURCE_BLOCK_NR field of the signalling data.
- the location within the buffer at which the BB data/repair frame 41, 44 is stored may be determined based on the DATA_TYPE field and the FEC_SYMBOL_NR field. In this way, it is possible to recreate the originating source block 45 at the receiver.
- step T9 it is determined whether the stored BB data/repair frame 41, 44 is the last of its source block (SB) 45, and thus whether the sourceblock 45 is complete. This may be determined based on the LAST_SYMBOL field of the signalling data.
- step T9 If in step T9, it is determined that the stored BB data/repair frame 41, 44 is not the last of its source block 45, and thus that the source block 45 is not complete, the operation returns to step T3. A positive determination in step T9 indicates that the source block 45 has been fully recreated. Following a positive determination, in step T9, the operation proceeds to step T10.
- the receiver apparatus 14 may also include a timer (not shown).
- the timer may be started when a first BB data/repair frame 41, 44 of a particular source block 45 is received. If a pre-determined time limit is reached before it is determined in step T9 that the last BB data/repair frame 41, 44 of the source block has been stored in the buffer, the operation may proceed to step T10, without the source block 45 having been reproduced in its entirety.
- step T10 it is determined whether vertical decoding of the source block 45 is required. This may be determined based on a bit error rate of the BB data frames 41 within the source block 45. For example, if the bit error rate is below a threshold, the data stream may be able to be correctly recreated from the BB data frames 41 and thus it may be determined that additional error correction by vertical decoding is not be required. If, however, the bit error rate is above the threshold and thus the data stream may not be able to be correctly recreated, it may be determined that vertical decoding is required. Following a negative determination in step T10, the operation proceeds to step T6 in which the decoded BB data frames 41 stored in the buffer are forwarded to the output interface 65. The BB data frames 41 may then be forwarded to the reproduction module (not shown). The BB repair frames 44 stored within the buffer may be disregarded as they are not required to reproduce the data stream. Following step T6, the operation returns to step T3.
- step T10 the operation proceeds to step Ti l , in which a counter is set to zero.
- step T12 vertical decoding of the BB data frames 41 stored in the buffer is performed.
- Vertical decoding comprises the data segments 40 of each of the BB data frames 41 in the buffer being decoded in conjunction with the repair segments 43 of the BB repair frames 44 stored in the buffer. More particularly, the data bits 40 which are in the same position in their respective data segment 40 are decoded in conjunction with the parity bits 43-1 which are in the same position in their respective FEC data segment 44 . For example, the first data bits 41-la in each of the data segments 40 are decoded in conjunction with the first parity bits 43- la in each of the repair segments 43. Vertical decoding allows the bit error rate of the received data to be further reduced.
- Figure 8B illustrates the vertical nature of the decoding step of step T12, in that the decoding operation is performed across plural rows of the source block 45. According to some exemplary embodiments, only a single iteration of the vertical decoding is performed in step T12. According to other exemplary embodiments, plural iterations of vertical decoding are performed in step T12.
- step T13 after vertical decoding, the counter, which was set to zero in step Ti l, is incremented by one.
- step T14 it is determined whether further error correction of the BB data frames 41 is required. This may be determined based on a bit error rate of the BB data frames 41. For example, if the bit error rate is below a threshold, the data stream may be able to be correctly reproduced from the BB data frames 41 and so it may be determined that further error correction is not required. If, however, the bit error rate is above the threshold and the data stream may not be able to be correctly reproduced, it may be determined that further error correction is required.
- step T14 may also be carried out on the basis of a comparison of a current value of the counter started in step Ti l, with a maximum value. For example, if the counter is found to be equal to a maximum value, it will be determined in step T14 that no further decoding is to be performed. In this way, the decoder 63 may be prevented from performing an infinite number of error correction operations. This may be particularly beneficial in situations wherein the initial bit error rate of one or more received physical layer frames 49 is so high that the data stream cannot be correctly reproduced, regardless of the number of error correction iterations that are performed.
- step T14 If it determined, in step T14, that further error correction is required, the operation proceeds to step T15.
- step T15 one or more further iterations of horizontal decoding are performed.
- the BB data frames that have already undergone one or more iterations of horizontal and vertical decoding are again horizontally decoded in conjunction with the BCH 46 and LDPC data 47 of their respective FEC frame 48.
- step T15 the method returns to step T12, in which the data segments 40 of the BB data frames 41 are vertically decoded in conjunction with the repair segments 43 of the BB repair frames 44.
- steps T15 and T12 are repeated until a negative determination is returned in step T14.
- step T6 in the decoded BB data frames 41 are forwarded to the output interface 65.
- the BB data frames 41 may then be forwarded to the reproduction module (not shown).
- the BB repair frames 44 stored within the buffer may be disregarded as they are not required to reproduce the data stream.
- the operation returns to step T3.
- Figure 9A is a simplified schematic view of a decoder 63 that can be used to perform the decoding steps of the operation of Figure 7.
- the decoder 63 comprises a first soft-decision decoder 101 to perform horizontal decoding, a second soft- decision 102 decoder to perform vertical decoding and a hard-decision decoder 103.
- Soft-decision decoders 101, 102 output log likelihood ratio representations of a bit, or a vector of symbol value probabilities. Thus, the soft-decision decoders 101, 102 do not output definite results but instead output indications of the likely results. Examples of soft-decision decoders include Bahl-Cocke-Jelinek-Raviv (BCJR) decoders or forward-backward decoders.
- the hard-decision decoder 103 converts the indications of the likely results into definite results.
- the horizontal decoding step T4 of Figure 7 is carried out by the first soft-decision decoder 101. If, following the horizontal decoding step of T4, it is decided that the BB data frame 41 does not include vertical error correction signalling, the output of the first soft-decision decoder 101 is fed to the hard-decision decoder 103, which converts the indications of the likely results into definite results.
- step T4 If in step T4 it is determined that the BB data frame 41 does include vertical error correction signalling, following reproduction of the source block, the outputs of the first soft-decision decoder 101 are fed to the second soft-decision decoder 102 which performs the vertical decoding of step T12.
- step T14 If in step T14, it is determined that no further error correction is to be carried out, the outputs of the second soft-decision decoder 101 is fed into the hard decision decoder 103.
- step T14 If, however, in step T14, it is determined that further error correction is to be carried out, the output of the second soft-decision decoder 102 is fed back into the first soft-decision decoder 101 for additional horizontal decoding. The output of the first soft-decision decoder 101 is then fed into the second soft-decision decoder 102 for further vertical decoding. This is repeated until a negative determination is reached in step T14. Following a negative determination in step T14, the output of the second soft- decision decoder 102 is fed into the hard-decision decoder 103, which converts the indications of the likely results into definite results.
- the output of the hard-decision decoder 103 is sent to the output interface 65 of the receiver apparatus 14.
- Each of the broadcast apparatus 10 and the receiver apparatus 14 described above may be comprised of hardware, such as one or more processors or microprocessors operating under the control of computer programs, optionally stored on one or more memories.
- the above described methods and apparatuses provide improved receiver performance due in a significant part to the provision of two sets of FEC data, instead of just one. More particularly, the above described methods and
- apparatuses make it possible to confine a single erasure error to one BB data/repair frame 41, 44, thus preventing the erasure error from being fragmented over multiple data or FEC segments 40, 43.
- the broadcast apparatus 10 depicted in Figure 1 may instead be multicast apparatus.
- the source block 45 comprises plural horizontal rows of BB data or repair frames 41, 44.
- the BB data or repair frames 41, 44 could instead be arranged in the source block in a column-wise fashion.
- each element of repair segment data may be generated on the basis of the elements of the data segments 40 in corresponding positions in their respective column.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
A method comprises: receiving plural data portions; forming plural data frames, each data frame comprising one of the plural data portions conjoined with horizontal error correction data generated on the basis of the one of the plural data portions; and generating at least one vertical error correction portion on the basis of the data portions by creating plural elements of vertical error correction data, each element of error correction data being generated on the basis of corresponding elements in each of the plural data portions, each vertical error correction portion comprising plural error correction elements.
Description
Error Correction
Field
This invention relates to methods and apparatuses for enabling error correction of data portions.
Background
The provision of services, such as television or data service, via digital broadcast or multicast transmission is becoming increasingly popular. As such, in order to cope with growing demand, and to improve upon existing technology, new apparatuses, systems and methods are being proposed. One example of such a proposal is DVB- T2, which has recently been proposed on behalf of the Digital Video Broadcasting (DVB) organization. Summary
In a first aspect, this specification describes a method comprising: receiving plural data portions; forming plural data frames, each data frame comprising one of the plural data portions conjoined with horizontal error correction data generated on the basis of the one of the plural data portions; and generating at least one vertical error correction portion on the basis of the data portions by creating plural elements of vertical error correction data, each element of error correction data being generated on the basis of corresponding elements in each of the plural data portions, each vertical error correction portion comprising plural error correction elements.
In a second aspect, this specification describes apparatus comprising: at least one processor; and memory, the memory having stored thereon computer readable code, which when executed by the at least one processor causes the at least one processor to: receive plural data portions; form plural data frames, each data frame comprising one of the plural data portions conjoined with horizontal error correction data generated on the basis of the one of the plural data portion; and generate at least one vertical error correction portion on the basis of the plural data portions by creating plural elements of vertical error correction data, each element of error
correction data being generated on the basis of corresponding elements in each of the plural data portions, each vertical error correction portion comprising plural error correction elements. In a third aspect, this specification describes a method comprising: receiving plural data frames, each data frame comprising a data portion and horizontal error correction data; receiving at least one vertical error correction portion, each vertical error correction portion comprising plural elements; for each of the plural data frames, horizontally decoding the data portion in conjunction with the horizontal error correction data; and vertically decoding the horizontally decoded data portions of the plural data frames in conjunction with the at least one vertical error correction portion by using each element of the at least one vertical error correction portion to decode corresponding elements in the plural horizontally decoded data portions.
In a fourth aspect, this specification describes apparatus comprising: at least one processor; and memory, the memory having stored thereon computer readable code, which when executed by the at least one processor causes the at least one
processors to: receive plural data frames, each data frame comprising a data portion and horizontal error correction data; receive at least one vertical error correction portion, each vertical error correction portion comprising plural elements; for each of the plural data frames, horizontally decode the data portion in conjunction with the horizontal error correction data; and vertically decode the horizontally decoded data portions of the plural data frames in conjunction with the at least one vertical error correction portion by using each element of the at least one vertical error correction portion to decode corresponding elements in the plural horizontally decoded data portions.
In a fifth aspect, this specification describes computer readable code, optionally stored on a non-transitory computer readable medium, which when executed by computer apparatus causes the computer apparatus to perform the method of either of the first or third aspects described above.
In a sixth aspect this specification also describes apparatus comprising: means for receiving plural data portions; means for forming plural data frames, each data frame comprising one of the plural data portions conjoined with horizontal error correction data generated on the basis of the one of the plural data portions; and means for generating at least one vertical error correction portion on the basis of the data portions by creating plural elements of vertical error correction data, each element of error correction data being generated on the basis of corresponding elements in each of the plural data portions, each vertical error correction portion comprising plural error correction elements.
In a seventh aspect, this specification also describes apparatus comprising: means for receiving plural data frames, each data frame comprising a data portion and horizontal error correction data; means for receiving at least one vertical error correction portion, each vertical error correction portion comprising plural elements; means for horizontally decoding, for each of the plural data frames, the data portion in conjunction with the horizontal error correction data; and means for vertically decoding the horizontally decoded data portions of the plural data frames in conjunction with the at least one vertical error correction portion by using each element of the at least one vertical error correction portion to decode
corresponding elements in the plural horizontally decoded data portions.
It will be appreciated that 'horizontal' and 'vertical' are labels used to denote orientation in a two dimensional array of data and that the claims cover
implementations in which data is stored in memory in this exact form or in which data is stored in memory in a transposed form of this exact form.
In the embodiments, prior to generating the at least one vertical error correction portion on the basis of the data portions, padding data may be appended to one or more of the plural data portions so as to ensure that each of the data portions is of an equal length. This may occur at any time prior to generating the at least one vertical error correction portion. In the embodiments, the generated at least one vertical error correction portions is of a length equal to the length of each of the plural data portions.
Exemplary embodiments describe computer readable code, optionally stored on a non-transitory computer readable medium, which when executed by computer apparatus causes the computer apparatus to perform described methods.
The present invention will now be described, by way of example only, with reference to the accompanying Figures.
Brief Description of the Figures
In the Figures:
Figure 1 is a simplified schematic overview of a communication system in which exemplary embodiments of the invention can be implemented;
Figure 2 is a schematic view of broadcast apparatus in which exemplary
embodiments of the invention can be implemented;
Figure 3 is a flow chart depicting an exemplary operation according to the present invention of the broadcast apparatus of Figure 2;
Figure 4 is an exemplary schematic depiction of the format of data throughout the operation depicted in Figure 3;
Figure 5A illustrates a first signalling method according to exemplary embodiments of the invention;
Figure 5B illustrates a second signalling method according to exemplary
embodiments of the invention;
Figure 6 is a schematic view of receiver apparatus according to exemplary embodiments of the invention;
Figure 7 is a flow chart depicting an exemplary operation performed by the receiver apparatus of Figure 6;
Figure 8A is a schematic illustration of a horizontal step of an exemplary decoding operation;
Figure 8B is a schematic illustration of a vertical step of an exemplary decoding operation; and
Figure 9 is a simplified schematic view of an exemplary decoder that can be used to perform the decoding steps of the operation of Figure 7.
Detailed Description of Embodiments
In the Figures like numerals refer to like elements. Figure 1 shows a simplified schematic overview of parts of a communication system. The system comprises broadcaster apparatus 10, which receives logical data streams from one or more service providers 11, 12. The broadcast apparatus 10 operates on the data streams and then broadcasts or multicasts the resulting data via intermediary apparatus 13, such as television masts, to one or more receiver apparatuses 14 which are able to reproduce the data streams for consumption by one or more users. Data can be lost or corrupted during transmission.
Figure 2 is a schematic view of apparatus 10 according to exemplary embodiments of the invention. More particularly Figure 2 is a schematic view of broadcast apparatus 10 according to exemplary embodiments of the invention. The broadcast apparatus 10 comprises a digital broadcasting module 20. Optionally, an input preprocessor 21 is also included. The input pre-processor module 21 is not part of the digital broadcasting module 20. The input pre-processor 21 could operate as a service splitter, a scheduler or a de-multiplexer.
The digital broadcasting module 20 comprises an input processing module 22, a bit interleaving and coding modulation module 23, a frame builder 24 and a modulator 25. An output of the digital broadcasting module 20 is broadcast via an antenna 26. The operation of various components of the digital broadcasting module 20 will be discussed below. The below methods and apparatuses are discussed within a Digital Video Broadcast Second Generation Terrestrial (DVB-T2) context, the standard for which is described in ETSI EN 302 755 (version 1.1.1 2009-09). It will be appreciated, however, that the applicability of the methods and apparatuses are not limited to DVB-T2, but may also applicable to other types of digital broadcast or multicast system, such as, but not limited to, DVB Next Generation Handheld (DVB-NGH) and non-DVB systems, including systems that have not yet been standardised.
The input to the digital broadcasting module 20 consists of one or more logical data streams received from the one or more service providers 11, 12. Each logical data stream may be carried by a respective physical layer pipe (PLP). For example, for video services, there might be at least three PLPs: at least one PLP for each of the video components, the audio components and the associated signalling components (for example program specific information (PSI) / service information (SI) information). A PLP is a fully transparent data pipe which generally enables data of a structure with freely selectable, but PLP-specific physical parameters, to be transported. Thus, the capacity and also the service robustness may be adjusted according to particular requirements, depending on the type of receiver apparatus 14 and/or its usage environment.
An operation of the digital broadcasting module 20 according to an exemplary embodiment of the present invention will now be described with reference to Figures 2, 3 and 4. Figure 3 is a flow chart depicting an exemplary operation of the digital broadcasting module 20. Figure 4 is schematic showing the format of the incoming data of one logical data stream as it is processed by the digital
broadcasting module 20. In step SI of the flow chart of Figure 3, the input processing module 22 receives a first portion of a logical data stream that is to be broadcast.
In step S2, the input processing module 22 slices the first portion of the data stream to form a data segment 40 (see Figure 4). A data segment 40 may also be referred to as a "data portion". The input processing module 22 operates separately on the contents of each incoming PLP. Each data segment 40 is comprised of a
predetermined number of bits of data 40-1. Figure 4 shows plural data segments 40 formed from sequential portions of the incoming logical data stream. The flow chart of Figure 3 handles each of the plural data segments 40 separately as they are formed by the input processing module 22.
In step S3, the input processing module 22 forms a baseband (BB) data frame 41 from a first formed one of the data segments 40. This step includes attaching a BB
header 41-1 to the beginning of the data segment 40. Thus, a BB data frame 41 comprises a BB header 41-1 and a data segment (or field) 40. The size of the data field 40 in BB data frame 41 may be fixed for a given PLP. The size of the data field 40 may depend on the forward error correction code rate which is later applied on the BB data frame 41. There may be two kinds of BB data frames: short frames, the size of which varies between 3072 and 13152 bits; and long frames, the size of which varies between 32208 and 53840 bits.
Next, in step S4, it is determined whether the data within the BB data frame 41 requires additional forward error correction protection against transmission errors. It may be more important that some components of a service to be correctly reproduced than it is for other components to be correctly reproduced. For example, it may be more important for audio and base layer video components of a scalable video coding (SVC) stream to be correctly reproduced than it is for enhancement layer video to be correctly reproduced. Thus, in step S4, it may be determined that BB data frames 41 comprising data segments 40 relating to important components require additional forward error correction protection and that BB data frames 41 comprising data segments 40 relating to less important components do not require additional forward error correction protection. It will be understood that a different criterion for determining whether additional forward error correction protection is required may instead be used.
If, in step S4, it is determined that the BB data frame 41 does not require additional forward error correction protection, the operation proceeds to steps S5 and S6. Steps S5 and S6 are described in some detail below, and so a discussion of these steps is not provided at this point.
If in step S4, it is determined that the BB data frame 41 does require additional forward error correction protection, the operation proceeds to step S7. In step S7, the input processing module 22 arranges the BB data frame 41 in a data structure 42. The data structure 42 comprises plural rows of BB data frames 41.
Next, in step S8, it is determined whether the data structure 42 is complete. This may be dependent on the current size of the data structure 42. This is discussed in greater detail later, and so a discussion of this step is not provided at this point. If, in step S8, the data structure 42 is found not to be complete, the operation returns to step SI .
Figure 4 shows a complete data structure 42. Each of the BB data frames 41 that is found in step S4 to require additional forward error correction protection is provided in a different row 42-1 of the data structure 42. The BB data frame 41 that includes the data segment 40 relating to the first portion of the data stream is arranged in the first row 42- la of the data structure 42. Similarly, the BB data frame 41 that includes the data segment 40 relating to a latest portion of the data stream is placed in the last row 42-lb. .
The number of BB data frames 41 that constitute the data structure 42, may be dependent on the decoding process carried out by the receiver apparatus 14. For example, there may be a maximum allowable decoding delay. Thus, the number of BB data frames 41 arranged in the data structure 42 may be constrained by the duration of the data stream data that is contained within the data structure 42. For example, if the maximum allowed decoding delay of a receiver is 1 second, the number of BB data frames 41 must be such that the duration of data stream contained within the BB data frames 41 does not exceed 1 second. When in step S8, the data structure 42 is found to be complete, the operation proceed to step S9.
In step S9, the input processing module 22 generates one or more repair segments 43. A repair segment may also be termed a "vertical error correction portion". The repair segments 43 are generated based on the data segments 40 of the BB data frames 41 within the data structure 42. Each of the generated repair segments 43 comprises plural bits of parity data 43-1. The number of parity data bits 43-1 in the
repair segments 43 is the same as the number of data bits in the data segment 40 of each of the BB data frames 41 in the data structure 42.
The repair segments 43 may be formed by performing a single forward error correction encoding operation on data bits 40 which are in the same position in their respective BB data frame 41. As such, the first parity bits 43- la in each of the repair segments 43 are generated based on the first data bits 40- la in the data field 40 of each of the BB data frames 41 in the data structure 42. The forward error correction encoding operation used to generate the repair segments 43 may include block erasure encoding operations such as Reed-Solomon or Bose-Chaudhuri-Hocquenghem multiple error correction binary block code (BCH) operations. Alternatively, the forward error correction encoding operation used to generate the repair segments 43 may be a bit error correction code such as a simple parity check code. The number of repair segments 43 that are generated may be dependent on the number of the rows 42-1 of BB data frames 41 in the data structure 42 and on the code rate of the forward error correction encoding operation. Next, in step S10, the input processing module 22 forms a BB repair frame 44 from each of the generated repair segments 43 by adjoining a BB-header 44-1. The newly formed BB repair frames 44 are appended to the data structure 42. The data structure 42 having the BB repair frames 44 appended thereto is known as a "source block" 45. The repair segments 43 are only effective to correct post-transmission errors in the data segments 40 if, during decoding, they are in the position in which they were generated. Thus, the BB repair frames 44 are positioned in the source block 45 in the order in which their corresponding repair segments 43 were generated. Next, in step SI 1, the input processing module 22 provides each of the BB data frames 41 and each of the BB repair frames 41, 44 in the source block 45 with signalling data (not shown). The signalling data allows a receiver apparatus 14 to
reproduce the source block 45 and thereby to correct transmission errors in the data segments 40.
The signalling data may include an indication of the data type within the BB data/repair frame 41, 44, i.e. whether the BB data/repair frame 41, 44 contains a data field or a repair segment. The signalling data may include an indication as to whether the BB data/repair frame 41, 44 is the last of its type in a source block. The signalling data may also include an indication of the source block from which the BB data/repair frame 41, 44 originates. The signalling data may include an indication of the original position of BB data/repair frame 41, 44 within the source block.
When the BB data/repair frames 41, 44 have been provided with signalling data, the BB data/repair frames 41, 44 are passed to the bit interleaving and coding modulation module 23 where, in step S5, parity data 46, 47 for each of the BB data/repair frames 41, 44 is generated and appended to its corresponding BB data/repair frame 41, 44.
The parity data 46, 47 is generated by first implementing an outer encoding step. The outer encoding step may comprise performing a BCH encoding operation on the bits in the BB data/repair frame 41, 44, including those bits that make up the BB header 41-1, 44-1. Next an inner encoding step is performed. The inner encoding step may comprise performing a low density parity check (LDPC) encoding operation on the bits in the BB data/repair frame 41, 44 including those in the BB header 41-1, 44-1.
After the outer and inner encoding steps have been performed, the generated parity data 46, 47 is appended to the BB data/repair frame 41, 44. BCH parity data 46, which was generated during the outer encoding step, is appended directly after the BB-frame 41, 44. LPDC parity data 47, which was generated during the inner encoding step, is appended after the BCH parity data 46.
A BB data/repair frame 41, 44 which has BCH and LPDC parity data appended to it may be known as an FEC frame 48. In Figure 4, those FEC frames 48 which include data segments 40 are labelled 48-1 (and include parallel line hatching) and those FEC frames 48 which include repair segments 43 are labelled 48-2 (and include cross-hatching).
As was mentioned in relation to step S4, those BB data frames 41 that, in step S4, are determined not to require additional forward error correction protection are passed directly to the bit interleaving and coding modulation module 23 where a FEC frame 48-1 is formed from the BB data frame 41 in the same manner as described above.
In step S6, after formation of the FEC frame 48, the FEC frame 48 is passed to the frame builder 24. The frame builder 24 is configured to arrange the link layer frame 48 in a physical layer frame 49. A physical layer frame 49 may comprise a plurality of FEC frames 48, a PI symbol 49-1 and one or more P2 symbols 49-2. Each physical layer frame 49 includes FEC frames 48 from one or more source block 45. Link layer FEC frames 48 corresponding to a single source block 45 may be spread over a plurality of different physical layer frames 49.
Figure 4 shows four physical layer frames 49. In Figure 4, the FEC frames 48 from the source block 45 are distributed over four physical layer frames 49. In the figure, the FEC Frames 48-2 carrying a repair segment 43 are all located in a single physical layer frame 49. However, this may not be the case. Instead, one FEC Frame 48-2 carrying a repair segment 43 may be in one physical layer frame 49 and the other two may be in a different physical layer frame 49.
Once the FEC frame 48 has been passed to the frame builder 24, the method returns to step SI, in which a next portion of an incoming data stream is received.
Following formation of the physical layer frames 49 by the frame builder 24, the physical layer frames 49 are modulated using the modulator 25, and are then transmitted to one or more receivers 14 via the antenna 26. These operations are
not shown on Figure 3. The modulator 25 may modulate the physical layer frames 49 using orthogonal frequency division multiplexing (OFDM). Alternatively, another type of modulation may be used. The BB data/repair frames 41, 44 of a source block are provided with signalling data (see step S6 of Figure 3). According to some exemplary embodiments, the signalling data is provided in the BB-header 41-1, 44-1. According to other exemplary embodiments, the signalling data is provided within padding (not shown) appended to the data/repair segment 40, 43 of the BB data/repair frame 41, 44.
Figure 5A illustrates a signalling method according to exemplary embodiments wherein the signalling data is provided in the BB-header 41-1, 44-1. Figure 5B illustrates a signalling method in according to exemplary embodiments wherein signalling data is provided within padding data appended to the data/repair segment 40, 43 of the BB data/repair frame 41, 44.
Let us first consider the exemplary embodiments in which the signalling data is provided in the BB header 41-1, 44-1 of a BB data/repair frame 41, 44. According to the DVB-T2 specification (as discussed above), the BB header may comprise six different fields, which are shown in Figure 5A. These fields are: MATYPE 51-1, which is two bytes in size; UPL 51-2, which is two bytes in size; DFL 51-3, which is two bytes in size; SYNC 51-4, which is one byte in size; SYNCD 51-5, which is two bytes in size; and CRC-8 MODE 51-6, which is one byte in size. The UPL 51-2, SYNC 51-4, and SYNCD, 51-5 fields are proposed to be reserved for future use. Thus, five bytes are available.
According to a first example, the signalling data is provided using the available three bytes of the UPL 51-2 and SYNC 51-4 fields. According to an alternative example, the signalling data is provided using the available three bytes of the SYNCD 51-5 and SYNC 51-4 fields. Table 1 below shows how the signalling data is distributed over the three bytes.
Field Size
DATA_TYPE 1 bit
LAST_SYMBOL 1 bit
RESERVED_1 6 bits
FEC_SOURCE_BLOCK_NR 8 bits
FEC_SYMBOL_NR 8 bits
Table 1
The DATA_TYPE field uses one bit, and indicates whether the segment 40, 43 within the BB data/repair frame 41, 44 is a data (or source) segment 40, or a FEC (or repair) segment. For example, a '1 ' in this field may indicate that the segment 40, 43 contained in the BB data/repair frame 41, 44 is a data segment 40, and a '0' in this field may indicate that the segment 40, 43 contained in the BB data/repair frame 41, 44 is a repair segment 43. Alternatively, '1 ' may indicate a repair segment 43 and '0' may indicate a data segment 40.
The LAST_SYMBOL field uses one bit and indicates whether the BB data/repair frame 41, 44 is the last one of its type (i.e. a BB data frame or a BB repair frame), of its source block 45. For example, a '1 ' may indicate that the BB data/repair frame 41, 44 is the last of its type, and a '0' may indicate that the BB data/repair frame 41, 44 is not the last of its type, or vice versa. This field is used by the receiver apparatus 14 in conjunction with DATA_TYPE field.
The RESERVED_1 field contains 6 bits which are reserved for future use. The RESERVED_1 field may be used to identify the type of FEC code used to generate the repair segments, so that the decoder is able to construct the appropriate generator or check matrix that corresponds to the one used by the broadcast apparatus 10 for the source block. The FEC_SOURCE_BLOCK_NR field comprises 8 bits and indicates the number or identity of the source block 45 to which the BB data/repair frame 41, 44 belongs.
The FEC_SYMBOL_NR field comprises 8 bits and indicates the location of the BB data/repair frame 41, 44 within the source block. For example, this field may indicate a row number. This approach to signalling means that no addition data overhead is required as the signalling makes use of the data that is already allocated within the DVB-T2 system.
Next let us consider the exemplary embodiments in which the signalling data is provided within padding bytes appended to the end of the BB data/repair frame 41, 44. The padding bytes may be appended to the BB data/repair frames 41, 44 between the operations of steps 10 and 11 of Figure 3.
For a more detailed description of the second exemplary signalling method, it will be considered within the context of DVB-T2.
DVB-T2 incorporates in-band signalling, known as Type-A signalling, in the BB data/repair frame 41, 44. The presence of in-band signalling is indicated by an IN_BAND_FLAG field in an LI -post- signalling header being set to Ί '. The Ll- post- signalling header is part of the P2 symbol 49-2 of the physical layer frame 49. The Type-A signalling data 52-1 can be seen in Figure 5B located immediately after the data/repair segment 40, 43 in the FEC Frame 48. According to this exemplary signalling method, a second set of signalling data, Type-B FEC signalling data 52-2, is provided in the FEC frame 48. This may included after the Type-A signalling data 52-1 so as to remain compliant with the DVB-T2 specification. It will be understood that in other types of digital broadcast transmission, this may not be the case. Padding data 52-3, located after the Type-B signalling data 52-2, may also be included in the FEC frame 48.
The Type-B signalling data 52-2 is 3 bytes in size. The mapping of the various fields is illustrated in Table 2, below:
Field Size
PADDING_TYPE 2 bits
OTHER IN_BAND_SIGNALLING 1 bits
DATA_TYPE 1 bit
LAST_SYMBOL 1 bit
RESERVED_1 5 bits
FEC_SOURCE_BLOCK_NR 8 bits
FEC_SYMBOL_NR 8 bits
Table 2
The PADDING_TYPE field uses 2 bits and indicates the type of signalling data (i.e. Type-A or Type-B FEC) to which the field belongs. An example of the mapping of the PADDING_TYPE field which may be used is shown in Table 3 below:
Table 3
Thus, '00' indicates that the signalling data is Type-A signalling data 52-1, and '01 ' indicates that the signalling data is Type-B FEC signalling data 52-2. Alternatively, Type-A signalling data 52-1 may be indicated by any of '01 ', '10', and 11, and Type- B FEC signalling data 52-2 may be indicated by any of '00', '10' and '11 '.
Referring back to Table 2, the OTHER IN_BAND_SIGNALLING field is used to indicate if there is more in-band signalling within the FEC frame 48 after this particular set of signalling data, which is, in this example, Type-B FEC signalling data 52-2. Thus '1 ' may indicate that there is other signalling data, and '0' may indicate that there is not any other signalling data, or vice versa. As with the first exemplary signalling method, the DATA_TYPE field uses one bit, and indicates whether the segment 40, 43 within the BB data/repair frame 41, 44 is
a data (or source) segment 40, or a repair segment 43. For example, a '1 ' in this field may indicate that the segment 40, 43 contained in the BB data/repair frame 41 , 44 is a data segment 40, and a '0' in this field may indicate that the segment 40, 43 contained in the BB data/repair frame 41 , 44 is a repair segment 43. Alternatively, '1 ' may indicate a repair segment 43 and '0' may indicate a data segment 40.
The LAST_S YMB OL field uses one bit and indicates whether the BB data/repair frame 41 , 44 is the last one of its type (i.e. a BB data frame or a BB repair frame), of its source block 45. For example, a '1 ' may indicate that the BB data/repair frame 41 , 44 is the last of its type, and a '0' may indicate that the BB data/repair frame is not the last of its type, or vice versa. This field is used by the receiver apparatus 14 in conjunction with DATA_TYPE field.
The RESERVED_1 field contains 5 bits which are reserved for future use. The RESERVED_1 field may be used to identify the type of FEC code used to generate the repair segments, so that the decoder is able to construct the appropriate generator or check matrix that corresponds to the one used by the broadcast apparatus 10 for the source block.
The FEC_SOURCE_BLOCK_NR field comprises 8 bits and indicates the number or identity of the source block to which the BB data/repair frame 41 , 44 belongs.
The FEC_SYMBOL_NR field comprises 8 bits and indicates the location of the BB data/repair frame 41 , 44 within the source block. For example, this field may indicate a row number.
In order for the exemplary DVB-T2 system to accommodate the additional Type-B FEC signalling, an additional field, OTHER IN_BAND_SIGNALLING, is included in the Type-A signalling data 52- 1. As such, the Type-A signalling data is mapped as is shown in Table 4, below.
Table 4
In this way, the receiver apparatus 14 is notified that, after the last bit of Type-A signalling data 52-1, there is more signalling data to be checked.
Figure 6 is a schematic view of receiver apparatus 14 according to exemplary embodiments of the invention. The receiver apparatus 14 comprises receiver circuitry 60 which is configured to receive incoming signals from an antenna 61. The receiver circuitry 60 is configured to convert the incoming signal into data. The receiver apparatus 14 also comprises memory 62, such as RAM or ROM, for storing incoming and part-processed data. The receiver apparatus also comprises a decoder module 63 for decoding the incoming data and thereby correcting erasure and corruption that may have occurred during transmission. The receiver apparatus 14 also comprises a controller 64 for controlling the other components of the receiver apparatus 14. The controller 64 may include one or more processors or microprocessors under the control of software stored on the memory 62. The
receiver apparatus 14 also comprises an output interface 65 for outputting the decoded data. In some embodiments multiple antennas may be used. The receiver apparatus 14 may also include a reproduction module (not shown) for reproducing a data stream from the decoded data.
The receiving apparatus 14 may include features relating to other functionality. For example, the receiving apparatus may be a mobile terminal, a telephone handset, a smartphone or any other similar device, in which case other conventional features of telephone handsets, such as a microphone, a second antenna and a transceiver configured to transmit and receive voice data over a telephone network may be included. In the case of the receiving apparatus 14 being a mobile terminal, other features are included depending on its required functionality. In other
embodiments the apparatus may be part of a TV set or a setup-box or any other similar device.
An exemplary decoding operation will now be described with reference to the flow chart of Figure 7. Figures 8A and 8B are schematic illustrations of two steps of the decoding operation of Figure 7. In Step Tl, incoming physical layer frames 49 are received at the receiver circuitry 60. The received physical layer frames 49 may then be written to memory 62 to await decoding at an appropriate time.
Next, in step T2, the PI symbols and P2 symbols of each of the first physical layer frames 49 are decoded by the decoder module 63. Thus, the IN_BAND_FLAG field in the LI -post-signalling header to is checked to determine if the FEC frames 48 contain in-band signalling.
Next, in step T3, one of the FEC frames 48 of which the received physical frames are comprised is passed to the decoder 63.
Next, in step T4, the FEC frame 48 is horizontally decoded by the decoder module 63. Horizontal decoding comprises the BB data/repair frame 41, 44 contained
within the FEC frame 48 being decoded in conjunction with the BCH 46 and LDPC data 47 appended thereto. Thus, a portion of the errors in the BB data/repair frame 41, 44 are corrected. The horizontal decoding step is illustrated in Figure 8A. Figure 8A shows the horizontal nature of the decoding operation, in that the decoding operation is along a single BB data/repair frame 41, 44. A plurality of iterations of the horizontal decoding step may be carried out in step T4.
In step T5, following the horizontal decoding of the FEC frame 48, the controller 64 determines if the decoded BB data/repair frame 41, 44 includes vertical error correction signalling. This determination may be carried out, for example, by checking the signalling field of the decoded BB data frame 41.
If it is determined that the BB data frame 41 does not include vertical error correction signalling, the operation proceeds to step T6, in which the decoded BB data frame 41 is forwarded to the output interface 65. The decoded BB data frame 41 may then be forwarded to the reproduction module (not shown).
Subsequent to step T6, the operation returns to step T3 in which another BB data/repair frame 41, 44 from the received physical layer frames 49 is passed to the decoder 63.
If it is determined in step T5 that the decoded BB data/repair frame 41, 44 does include vertical error correction signalling, the operation proceeds to step T7. In step T7, the signalling data of the decoded BB data/repair frame 41, 44 is checked. This may be located in the BB header 41-1, 44-1 or in the padding data appended to the data/repair segment 40, 43.
In step T8, the decoded BB data/repair frame 41, 44 is stored in a buffer. The buffer may be part of the memory 62. BB data/FEC frames 41, 44 which originated from the same source block 45 are stored in the same buffer. Thus, there may be one buffer allocated to each source block 45. The identity of the originating source block 45 may be determined based on the FEC_SOURCE_BLOCK_NR field of the
signalling data. The location within the buffer at which the BB data/repair frame 41, 44 is stored may be determined based on the DATA_TYPE field and the FEC_SYMBOL_NR field. In this way, it is possible to recreate the originating source block 45 at the receiver.
Next, in step T9, it is determined whether the stored BB data/repair frame 41, 44 is the last of its source block (SB) 45, and thus whether the sourceblock 45 is complete. This may be determined based on the LAST_SYMBOL field of the signalling data.
If in step T9, it is determined that the stored BB data/repair frame 41, 44 is not the last of its source block 45, and thus that the source block 45 is not complete, the operation returns to step T3. A positive determination in step T9 indicates that the source block 45 has been fully recreated. Following a positive determination, in step T9, the operation proceeds to step T10.
According to alternative embodiments, the receiver apparatus 14 may also include a timer (not shown). The timer may be started when a first BB data/repair frame 41, 44 of a particular source block 45 is received. If a pre-determined time limit is reached before it is determined in step T9 that the last BB data/repair frame 41, 44 of the source block has been stored in the buffer, the operation may proceed to step T10, without the source block 45 having been reproduced in its entirety.
In step T10, it is determined whether vertical decoding of the source block 45 is required. This may be determined based on a bit error rate of the BB data frames 41 within the source block 45. For example, if the bit error rate is below a threshold, the data stream may be able to be correctly recreated from the BB data frames 41 and thus it may be determined that additional error correction by vertical decoding is not be required. If, however, the bit error rate is above the threshold and thus the data stream may not be able to be correctly recreated, it may be determined that vertical decoding is required.
Following a negative determination in step T10, the operation proceeds to step T6 in which the decoded BB data frames 41 stored in the buffer are forwarded to the output interface 65. The BB data frames 41 may then be forwarded to the reproduction module (not shown). The BB repair frames 44 stored within the buffer may be disregarded as they are not required to reproduce the data stream. Following step T6, the operation returns to step T3.
Following a positive determination in step T10, the operation proceeds to step Ti l , in which a counter is set to zero.
Next, in step T12, vertical decoding of the BB data frames 41 stored in the buffer is performed. Vertical decoding comprises the data segments 40 of each of the BB data frames 41 in the buffer being decoded in conjunction with the repair segments 43 of the BB repair frames 44 stored in the buffer. More particularly, the data bits 40 which are in the same position in their respective data segment 40 are decoded in conjunction with the parity bits 43-1 which are in the same position in their respective FEC data segment 44 . For example, the first data bits 41-la in each of the data segments 40 are decoded in conjunction with the first parity bits 43- la in each of the repair segments 43. Vertical decoding allows the bit error rate of the received data to be further reduced. Figure 8B illustrates the vertical nature of the decoding step of step T12, in that the decoding operation is performed across plural rows of the source block 45. According to some exemplary embodiments, only a single iteration of the vertical decoding is performed in step T12. According to other exemplary embodiments, plural iterations of vertical decoding are performed in step T12.
In step T13, after vertical decoding, the counter, which was set to zero in step Ti l, is incremented by one.
Next, in step T14, it is determined whether further error correction of the BB data frames 41 is required. This may be determined based on a bit error rate of the BB
data frames 41. For example, if the bit error rate is below a threshold, the data stream may be able to be correctly reproduced from the BB data frames 41 and so it may be determined that further error correction is not required. If, however, the bit error rate is above the threshold and the data stream may not be able to be correctly reproduced, it may be determined that further error correction is required.
The determination of step T14 may also be carried out on the basis of a comparison of a current value of the counter started in step Ti l, with a maximum value. For example, if the counter is found to be equal to a maximum value, it will be determined in step T14 that no further decoding is to be performed. In this way, the decoder 63 may be prevented from performing an infinite number of error correction operations. This may be particularly beneficial in situations wherein the initial bit error rate of one or more received physical layer frames 49 is so high that the data stream cannot be correctly reproduced, regardless of the number of error correction iterations that are performed.
If it determined, in step T14, that further error correction is required, the operation proceeds to step T15. In step T15, one or more further iterations of horizontal decoding are performed. Thus, the BB data frames that have already undergone one or more iterations of horizontal and vertical decoding are again horizontally decoded in conjunction with the BCH 46 and LDPC data 47 of their respective FEC frame 48.
Following step T15, the method returns to step T12, in which the data segments 40 of the BB data frames 41 are vertically decoded in conjunction with the repair segments 43 of the BB repair frames 44.
The error correction operations of steps T15 and T12 are repeated until a negative determination is returned in step T14.
When a negative determination is returned in step T4, the method proceeds to step T6. In step T6, in the decoded BB data frames 41 are forwarded to the output interface 65. The BB data frames 41 may then be forwarded to the reproduction
module (not shown). The BB repair frames 44 stored within the buffer may be disregarded as they are not required to reproduce the data stream. Following step T6, the operation returns to step T3. Figure 9A is a simplified schematic view of a decoder 63 that can be used to perform the decoding steps of the operation of Figure 7. The decoder 63 comprises a first soft-decision decoder 101 to perform horizontal decoding, a second soft- decision 102 decoder to perform vertical decoding and a hard-decision decoder 103. Soft-decision decoders 101, 102 output log likelihood ratio representations of a bit, or a vector of symbol value probabilities. Thus, the soft-decision decoders 101, 102 do not output definite results but instead output indications of the likely results. Examples of soft-decision decoders include Bahl-Cocke-Jelinek-Raviv (BCJR) decoders or forward-backward decoders. The hard-decision decoder 103 converts the indications of the likely results into definite results.
The horizontal decoding step T4 of Figure 7 is carried out by the first soft-decision decoder 101. If, following the horizontal decoding step of T4, it is decided that the BB data frame 41 does not include vertical error correction signalling, the output of the first soft-decision decoder 101 is fed to the hard-decision decoder 103, which converts the indications of the likely results into definite results.
If in step T4 it is determined that the BB data frame 41 does include vertical error correction signalling, following reproduction of the source block, the outputs of the first soft-decision decoder 101 are fed to the second soft-decision decoder 102 which performs the vertical decoding of step T12.
If in step T14, it is determined that no further error correction is to be carried out, the outputs of the second soft-decision decoder 101 is fed into the hard decision decoder 103.
If, however, in step T14, it is determined that further error correction is to be carried out, the output of the second soft-decision decoder 102 is fed back into the first soft-decision decoder 101 for additional horizontal decoding. The output of
the first soft-decision decoder 101 is then fed into the second soft-decision decoder 102 for further vertical decoding. This is repeated until a negative determination is reached in step T14. Following a negative determination in step T14, the output of the second soft- decision decoder 102 is fed into the hard-decision decoder 103, which converts the indications of the likely results into definite results.
The output of the hard-decision decoder 103 is sent to the output interface 65 of the receiver apparatus 14.
Each of the broadcast apparatus 10 and the receiver apparatus 14 described above may be comprised of hardware, such as one or more processors or microprocessors operating under the control of computer programs, optionally stored on one or more memories.
The above described methods and apparatuses provide improved receiver performance due in a significant part to the provision of two sets of FEC data, instead of just one. More particularly, the above described methods and
apparatuses make it possible to confine a single erasure error to one BB data/repair frame 41, 44, thus preventing the erasure error from being fragmented over multiple data or FEC segments 40, 43.
The above-described methods and apparatuses have been described primarily with reference to DVB-T2. However, the methods and apparatuses are also applicable to other communication systems, such as for example DVB-Next Generation
Handheld (NGH). This particularly true if the DVB-NGH system is operating with Internet Protocol (IP) over Generic Stream Encapsulation (GSE) The above-described methods and apparatuses have been described within a broadcast context. It will be appreciated, however, that the above-described methods and apparatuses are also suitable for use within a multicast system. Thus, the broadcast apparatus 10 depicted in Figure 1 may instead be multicast apparatus.
In the above described exemplary embodiments, the source block 45 comprises plural horizontal rows of BB data or repair frames 41, 44. However, it will be understood that the BB data or repair frames 41, 44 could instead be arranged in the source block in a column-wise fashion. In such exemplary embodiments, each element of repair segment data may be generated on the basis of the elements of the data segments 40 in corresponding positions in their respective column.
It should be realised that the foregoing embodiments should not be construed as limiting. Other variations and modifications will be apparent to persons skilled in the art upon reading the present application. Moreover, the disclosure of the present application should be understood to include any novel features or any novel combination of features either explicitly or implicitly disclosed herein or any generalisation thereof and during the prosecution of the present application or of any application derived therefrom, new claims may be formulated to cover any such features and/or combination of such features.
Claims
Claims
1. A method comprising:
receiving plural data portions,
forming plural data frames, each data frame comprising one of the plural data portions conjoined with horizontal error correction data generated on the basis of the one of the plural data portions; and
generating at least one vertical error correction portion on the basis of the data portions by creating plural elements of vertical error correction data, each element of error correction data being generated on the basis of corresponding elements in each of the plural data portions, each vertical error correction portion comprising plural error correction elements.
2. A method according to 1, further comprising forming at least one vertical error correction frame, each vertical error correction frame comprising one of the at least one vertical error correction portion conjoined with horizontal error correction data generated on the basis of the one of the at least one vertical error correction portion. 3. A method according to claim 2, wherein each of the plural data portions is conjoined with a header portion and wherein the horizontal error correction data conjoined thereto to form the data frame is generated on the basis of the data portion and the header portion, and wherein each of the at least one vertical error correction portion is conjoined with a header portion and wherein the horizontal error correction data conjoined thereto to form a vertical error correction frame is generated on the basis of the vertical error correction portion and the header portion.
4. A method according to claim 2 or claim 3, further comprising transmitting the at least one vertical error correction frame and the plural data frames as part of one or more physical-layer frames.
5. A method according to any of claims 1 to 4, further comprising associating signalling information with each of the plural data portions and each of the at least one vertical error correction portion, the signalling information being for enabling a receiver to decode the plural data portions in conjunction with the at least one vertical error correction portion.
6. A method according to claim 5, wherein the signalling information includes type data indicative of whether the portion is a data portion or a vertical error correction portion.
7. A method according to claim 5 or 6, wherein generating the one or more vertical error correction portions includes positioning each of the plural data portions in a data structure, the method further comprising positioning each of the at least one vertical error correction portion in the data structure
8. A method according to claim 7, wherein the signalling information includes at least one of:
position data indicative of the position of the data portion or the vertical error correction portion in the data structure;
data indicative of whether the portion is the last portion of its type in the data structure; and
data structure identity data indicative of the identity of the data structure with which the data portion or vertical error correction portion is associated. 9. A method according to any of claims 5 to 8 comprising providing the signalling information associated with the data portion or the vertical error correction portion in one of:
a header portion associated with the data portion or the vertical error correction portion; and
a padding portion appended to the data portion or the vertical error correction portion.
10. A method according to claim 9, wherein providing the signalling information in the padding portion appended to the data portion or the vertical error correction portion comprises providing the signalling information in a second part of the padding portion, and including data indicative of the presence of the second part of the padding portion in a first part of the padding portion.
11. A method according to any one of claims 1 to 10, wherein the plural data portions and the at least one vertical error correction portion are associated with a data stream.
12. Apparatus comprising:
at least one processor; and
memory, the memory having stored thereon computer readable code, which when executed by the at least one processor causes the at least one processor to:
receive plural data portions,
form plural data frames, each data frame comprising one of the plural data portions conjoined with horizontal error correction data generated on the basis of the one of the plural data portion; and
generate at least one vertical error correction portion on the basis of the plural data portions by creating plural elements of vertical error correction data, each element of error correction data being generated on the basis of corresponding elements in each of the plural data portions, each vertical error correction portion comprising plural error correction elements. 13. An apparatus according to claim 12, wherein the at least one processor is further configured to:
form at least one vertical error correction frame, each vertical error correction frame comprising one of the at least one vertical error correction portion conjoined with horizontal error correction data generated on the basis of the one of the at least one vertical error correction portion.
An apparatus according to claim 13, wherein the at least one processor is ured to conjoin each of the plural data portions with a header portion and
wherein the at least one processor is configured to generate, on the basis of the data portion and the header portion, the horizontal error correction data conjoined thereto to form the data frame, and wherein the at least one processor is configured to conjoin each of the at least one vertical error correction portion with a header portion and wherein the at least one processor is configured to generate, on the basis of the vertical error correction portion and the header portion, the horizontal error correction data conjoined thereto to form a vertical error correction frame.
15. An apparatus according to claim 13 or claim 14, wherein the at least one processor is further configured to transmit the at least one vertical error correction frame and the plural data frames as part of one or more physical-layer frames.
16. An apparatus according to any of claims 13 to 15, wherein the at least one processor is further configured to associate signalling information with each of the plural data portions and each of the at least one vertical error correction portion, the signalling information being for enabling a receiver to decode the plural data portions in conjunction with the at least one vertical error correction portion.
17. An apparatus according to claim 16, wherein the signalling information includes type data indicative of whether the portion is a data portion or a vertical error correction portion.
18. An apparatus according to claim 16 or claim 17, wherein the at least one processor is configured to generate the one or more vertical error correction portions by being configured to position each of the plural data portions in a data structure, and wherein the at least one processor is configured to position each of the at least one vertical error correction portion in the data structure
19. An apparatus according to claim 18, wherein the signalling information includes at least one of:
position data indicative of the position of the data portion or the vertical error correction portion in the data structure;
data indicative of whether the portion is the last portion of its type in the data structure; and
data structure identity data indicative of the identity of the data structure with which the data portion or vertical error correction portion is associated.
20. An apparatus according to any of claims 16 to 19 wherein the at least one processor is configured to provide the signalling information associated with the data portion or the vertical error correction portion in one of:
a header portion associated with the data portion or the vertical error correction portion; and
a padding portion appended to the data portion or the vertical error correction portion.
21. An apparatus according to claim 20, wherein the at least one processor is configured to provide the signalling information in the padding portion appended to the data portion or the vertical error correction portion by being configured to provide the signalling information in a second part of the padding portion, and by being configured to include data indicative of the presence of the second part of the padding portion in a first part of the padding portion.
22. An apparatus according to any one of claims 12 to 21, wherein the plural data portions and the at least one vertical error correction portion are associated with a data stream. 23. A method comprising:
receiving plural data frames, each data frame comprising a data portion and horizontal error correction data;
receiving at least one vertical error correction portion, each vertical error correction portion comprising plural elements;
for each of the plural data frames, horizontally decoding the data portion in conjunction with the horizontal error correction data; and
vertically decoding the horizontally decoded data portions of the plural data frames in conjunction with the at least one vertical error correction portion by using
each element of the at least one vertical error correction portion to decode corresponding elements in the plural horizontally decoded data portions.
24. A method according to claim 23, wherein the at least one vertical error correction portion is received as part of at least one vertical error correction frame, each of the at least one vertical error correction frame comprising one of the at least one vertical error correction portion and horizontal error correction data.
25. A method according to claim 24, further comprising, for each of the at least one vertical error correction frame, decoding the one of the at least one vertical error correction portion in conjunction with the horizontal error correction data.
26. A method according to either claim 24 or claim 25, wherein the data portion of each of the plural data frames is conjoined with a header portion, and wherein horizontally decoding the data portion in conjunction with the horizontal error correction data comprises horizontally decoding the data portion and the header portion in conjunction with the horizontal error correction data, and wherein the vertical error correction portion of each of the at least one vertical error correction frame is conjoined with a header portion and wherein horizontally decoding the vertical error correction portion in conjunction with the horizontal error correction data comprises horizontally decoding the vertical error correction portion and the header portion in conjunction with the horizontal error correction data.
27. A method according to any of claims 24 to 26, wherein the plural data frames and the at least one vertical error correction frame are received as part of one or more physical-layer frames.
28. A method according to any of claims 23 to 27, comprising receiving signalling information associated with each of the plural data portions and each of the at least one vertical error correction portion, and using the signalling
information to decode the plural data portions in conjunction with the at least one vertical error correction portion.
29. A method according to claim 28, wherein using the signalling information to decode the plural data portions in conjunction with the one or more vertical error correction portions comprises arranging the plural horizontally decoded data portions and the at least one vertical error correction portion in a data structure on the basis of the signalling information.
30. A method according to claim 29, comprising arranging the plural horizontally decoded data portions and the at least one vertical error correction portion in the data structure on the basis of at least one of:
type data indicative of whether the portion is a data portion or a vertical error correction portion;
data indicative of whether the portion was the last portion of its type in the data structure from which the portion originated;
position information indicative of a position of the portion in the data structure from which the portion originated;
data structure identity indicative of an identity of the data structure from which the portion originated,
included in the signalling information. 31. A method according to any of claims 28 to 30, comprising extracting the signalling information for a data portion or a vertical error correction portion from one of:
header data associated with the data portion or the vertical error correction portion; and
padding data appended to the data portion or the vertical error correction portion.
32. A method according to claim 31, wherein extracting the signalling information for a data portion or a vertical error correction portion from padding data appended to the data portion or the vertical error correction portion comprises:
extracting data indicative of the presence of a second part of the padding data from a first part of the padding data; and
subsequently extracting the signalling information from the second part of the padding data.
33. A method according to any of claims 23 to 32, wherein the plural data portions and the at least one vertical error correction portion are associated with a data stream.
34. A method according to any one of claims 23 to 33, further comprising: determining whether vertical decoding of the horizontally decoded data portions is required; and
if it is determined that vertical decoding of the horizontally decoded data portions is required, vertically decoding the horizontally decoded data portions of the plural data frames in conjunction with the at least one vertical error correction portion by using each element of the at least one vertical error correction portion to decode corresponding elements in the plural horizontally decoded data portions; and
if it is determined that vertical decoding of the horizontally decoded data portions is not required, outputting the horizontally decoded data portions for reconstruction without vertically decoding the horizontally decoded data portions.
35. Apparatus comprising:
at least one processor; and
memory, the memory having stored thereon computer readable code, which when executed by the at least one processor causes the at least one processors to:
receive plural data frames, each data frame comprising a data portion and horizontal error correction data;
receive at least one vertical error correction portion, each vertical error correction portion comprising plural elements;
for each of the plural data frames, horizontally decode the data portion in conjunction with the horizontal error correction data; and
vertically decode the horizontally decoded data portions of the plural data frames in conjunction with the at least one vertical error correction portion by
using each element of the at least one vertical error correction portion to decode corresponding elements in the plural horizontally decoded data portions.
36. An apparatus according to claim 35, wherein the at least one processor is configured to receive the at least one vertical error correction portion as part of at least one vertical error correction frame, each of the at least one vertical error correction frame comprising one of the at least one vertical error correction portion and horizontal error correction data. 37. An apparatus according to claim 36, wherein the at least one processor is configured, for each of the at least one vertical error correction frame, to decode the one of the at least one vertical error correction portion in conjunction with the horizontal error correction data. 38. An apparatus according to claim 36 or claim 37, wherein the data portion of each of the plural data frames is conjoined with a header portion, and wherein the at least one processor is configured to horizontally decode the data portion in conjunction with the horizontal error correction data by being configured to horizontally decode the data portion and the header portion in conjunction with the horizontal error correction data, and wherein the vertical error correction portion of each of the at least one vertical error correction frame is conjoined with a header portion and wherein the at least one processor is configured to horizontally decode the vertical error correction portion in conjunction with the horizontal error correction data by being configured to horizontally decode the vertical error correction portion and the header portion in conjunction with the horizontal error correction data.
39. An apparatus according to any of claims 35 to 38, wherein the at least one processor is configured to receive the plural data frames and the at least one vertical error correction frame as part of one or more physical-layer frames.
40. An apparatus according to any of claims 35 to 39, wherein the at least one processor is configured to:
receive signalling information associated with each of the plural data portions and each of the at least one vertical error correction portion; and
to use the signalling information to decode the plural data portions in conjunction with the at least one vertical error correction portion.
41. An apparatus according to claim 40, wherein the at least one processor is configured to use the signalling information to decode the plural data portions in conjunction with the one or more vertical error correction portions by being configured to arrange the plural horizontally decoded data portions and the at least one vertical error correction portion in a data structure on the basis of the signalling information.
42. An apparatus according to claim 41, wherein the at least one processor is configured to arrange the plural horizontally decoded data portions and the at least one vertical error correction portion in the data structure on the basis of at least one of:
type data indicative of whether the portion is a data portion or a vertical error correction portion;
data indicative of whether the portion was the last portion of its type in the data structure from which the portion originated;
position information indicative of a position of the portion in the data structure from which the portion originated;
data structure identity indicative of an identity of the data structure from which the portion originated,
included in the signalling information.
43. An apparatus according to any of claims 39 to 42, wherein the at least one processor is configured to extract the signalling information for a data portion or a vertical error correction portion from one of:
header data associated with the data portion or the vertical error correction portion; and
padding data appended to the data portion or the vertical error correction portion.
44. An apparatus according to claim 43, wherein the at least one processor is configured to extract the signalling information for a data portion or a vertical error correction portion from padding data appended to the data portion or the vertical error correction portion by being configured to:
extract data indicative of the presence of a second part of the padding data from a first part of the padding data; and
subsequently extract the signalling information from the second part of the padding data.
45. An apparatus according to any of claims 35 to 44, wherein the plural data portions and the at least one vertical error correction portion are associated with a data stream. 46. An apparatus according to any one of claims 35 to 45, wherein the at least one processor is further configured:
to determine whether vertical decoding of the horizontally decoded data portions is required; and
if it is determined that vertical decoding of the horizontally decoded data portions is required, to vertically decode the horizontally decoded data portions of the plural data frames in conjunction with the at least one vertical error correction portion by using each element of the at least one vertical error correction portion to decode corresponding elements in the plural horizontally decoded data portions; and
if it is determined that vertical decoding of the horizontally decoded data portions is not required, to output the horizontally decoded data portions for reconstruction without vertically decoding the horizontally decoded data portions.
47. Computer readable code, stored on a non-transitory computer readable medium, which when executed by computer apparatus causes the computer apparatus to perform the method of any one of claims 1 to 11 and 23 to 34.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2010/050230 WO2011082834A1 (en) | 2010-01-11 | 2010-01-11 | Error correction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2010/050230 WO2011082834A1 (en) | 2010-01-11 | 2010-01-11 | Error correction |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011082834A1 true WO2011082834A1 (en) | 2011-07-14 |
Family
ID=42752027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2010/050230 WO2011082834A1 (en) | 2010-01-11 | 2010-01-11 | Error correction |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2011082834A1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013168964A1 (en) * | 2012-05-07 | 2013-11-14 | Samsung Electronics Co., Ltd. | Apparatus and method of transmitting and receiving packet in a broadcasting and communication system |
WO2015016669A1 (en) * | 2013-08-01 | 2015-02-05 | Lg Electronics Inc. | Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals |
TWI552160B (en) * | 2013-08-23 | 2016-10-01 | 慧榮科技股份有限公司 | Methods for accessing a storage unit of a flash memory and apparatuses using the same |
JP2018504070A (en) * | 2014-11-06 | 2018-02-08 | エルジー エレクトロニクス インコーポレイティド | Broadcast signal transmitting apparatus, broadcast signal receiving apparatus, broadcast signal transmitting method, and broadcast signal receiving method |
CN112486725A (en) * | 2020-11-05 | 2021-03-12 | 杭州华澜微电子股份有限公司 | Method and device for carrying out error correction coding on compressed data |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835499A (en) * | 1995-09-11 | 1998-11-10 | Sanyo Electric Co., Ltd. | Data processing device for FM multi-channel broadcasting |
WO2004112252A2 (en) * | 2003-06-16 | 2004-12-23 | Samsung Electronics Co., Ltd. | Digital transmitter/receiver system having a robust error correction coding/decoding device and error correction coding/decoding method thereof |
US20060245516A1 (en) * | 2005-03-02 | 2006-11-02 | Rohde & Schwarz, Inc. | Apparatus, systems and methods for providing in-band atsc vestigial sideband signaling or out-of-band signaling |
EP1921754A1 (en) * | 2005-09-01 | 2008-05-14 | Nippon Telegraph and Telephone Corporation | Error correcting method and apparatus |
-
2010
- 2010-01-11 WO PCT/EP2010/050230 patent/WO2011082834A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835499A (en) * | 1995-09-11 | 1998-11-10 | Sanyo Electric Co., Ltd. | Data processing device for FM multi-channel broadcasting |
WO2004112252A2 (en) * | 2003-06-16 | 2004-12-23 | Samsung Electronics Co., Ltd. | Digital transmitter/receiver system having a robust error correction coding/decoding device and error correction coding/decoding method thereof |
US20060245516A1 (en) * | 2005-03-02 | 2006-11-02 | Rohde & Schwarz, Inc. | Apparatus, systems and methods for providing in-band atsc vestigial sideband signaling or out-of-band signaling |
EP1921754A1 (en) * | 2005-09-01 | 2008-05-14 | Nippon Telegraph and Telephone Corporation | Error correcting method and apparatus |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013168964A1 (en) * | 2012-05-07 | 2013-11-14 | Samsung Electronics Co., Ltd. | Apparatus and method of transmitting and receiving packet in a broadcasting and communication system |
US10218821B2 (en) | 2012-05-07 | 2019-02-26 | Samsung Electronics Co., Ltd. | Apparatus and method of transmitting and receiving packet in a broadcasting and communication system |
WO2015016669A1 (en) * | 2013-08-01 | 2015-02-05 | Lg Electronics Inc. | Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals |
US9800307B2 (en) | 2013-08-01 | 2017-10-24 | Lg Electronics Inc. | Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals method for receiving broadcast signals |
US9866297B2 (en) | 2013-08-01 | 2018-01-09 | Lg Electronics Inc. | Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals |
US10009079B2 (en) | 2013-08-01 | 2018-06-26 | Lg Electronics Inc. | Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals |
US10116366B2 (en) | 2013-08-01 | 2018-10-30 | Lg Electronics Inc. | Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals |
TWI552160B (en) * | 2013-08-23 | 2016-10-01 | 慧榮科技股份有限公司 | Methods for accessing a storage unit of a flash memory and apparatuses using the same |
JP2018504070A (en) * | 2014-11-06 | 2018-02-08 | エルジー エレクトロニクス インコーポレイティド | Broadcast signal transmitting apparatus, broadcast signal receiving apparatus, broadcast signal transmitting method, and broadcast signal receiving method |
USRE49255E1 (en) | 2014-11-06 | 2022-10-18 | Lg Electronics Inc. | Broadcast signal transmitting apparatus, broadcast signal receiving apparatus, broadcast signal transmitting method, and broadcast signal receiving method |
CN112486725A (en) * | 2020-11-05 | 2021-03-12 | 杭州华澜微电子股份有限公司 | Method and device for carrying out error correction coding on compressed data |
CN112486725B (en) * | 2020-11-05 | 2022-10-18 | 杭州华澜微电子股份有限公司 | Method and device for carrying out error correction coding on compressed data |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI501579B (en) | Receiver and receiving method for receiving data in a broadcast system using incremental redundancy received through a unicast system | |
US7525993B2 (en) | Robust transmission system and method for mobile television applications | |
US9281847B2 (en) | Mobile reception of digital video broadcasting—terrestrial services | |
JP5226123B2 (en) | Sending multimedia streams to mobile devices with cross-stream association | |
US20070240027A1 (en) | Forward Error Correction Decoders | |
US10218821B2 (en) | Apparatus and method of transmitting and receiving packet in a broadcasting and communication system | |
WO2011091850A1 (en) | Error correction based on replacing padding bits by additional parity check bits | |
MX2012010047A (en) | Application layer fec framework for wigig. | |
TW200926800A (en) | TS packet grooming | |
US20160197826A1 (en) | Transmitting apparatus and receiving apparatus and signal processing method thereof | |
TWI246841B (en) | Digital transmission system and method for transmitting digital signals | |
KR20160052313A (en) | Transmitting apparatus and receiving apparatus and signal processing method thereof | |
CN102468919A (en) | Receiving apparatus and method for processing forward error correction code block in receiving apparatus | |
CN102217263B (en) | Forward error correction frame header design for cable television signals | |
CN100525250C (en) | Method for realizing IP stream mode service utilizing MPE-FEC technique in T-MMB system | |
WO2011082834A1 (en) | Error correction | |
CN105340205B (en) | The device and method for being used for transmission and receiving forward error correction packet | |
US20150033279A1 (en) | Transmitting apparatus, receiving apparatus and control methods thereof | |
US7877663B2 (en) | Forward error correction decoders | |
KR102103903B1 (en) | Transmitting apparatus and receiving apparatus and data processing method thereof | |
JPWO2017145790A1 (en) | Reception device, transmission device, and data processing method | |
EP2875643A1 (en) | Cross layer coding for satellite mobile tv broadcast method and apparatus | |
Kang et al. | Improved error control for real-time video broadcasting over CDMA2000 networks | |
KR102087216B1 (en) | Transmitting apparatus and receiving apparatus and signal processing method thereof | |
KR20170002187A (en) | Transmitter, receiver and controlling method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10703427 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10703427 Country of ref document: EP Kind code of ref document: A1 |