This file is raw output from pdftotext and may not be ideal for distribution. If you are a maintainer for Hackipedia, please sit down when you have time and clean this text version up. Source PDF: /mnt/main/jmc-storage/docs/DVB/DVB A138 Frame struct ch coding mod for 2nd gen digital trans system for cable systems (DVB-C2) (December 2010).pdf Like all conversions the text below should be fully readable as UTF-8 unicode text. --------------------------------------------------------------- ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! Digital Video Broadcasting (DVB); Frame structure channel coding and modulation for a second generation digital transmission system for cable systems (DVB-C2) DVB Document A138 December 2010 3 Contents Intellectual Property Rights ................................................................................................................................ 6! Foreword ............................................................................................................................................................. 6! 1 Scope ........................................................................................................................................................ 7! 2 References ................................................................................................................................................ 8! 2.1 Normative references .......................................................................................................................................... 8! 2.2 Informative references......................................................................................................................................... 8! 3 Definitions, symbols and abbreviations .................................................................................................... 9! 3.1 Definitions ........................................................................................................................................................... 9! 3.2 Symbols ............................................................................................................................................................. 11! 3.3 Abbreviations .................................................................................................................................................... 14! 4 DVB-C2 System architecture ................................................................................................................. 16! 4.1 System overview ............................................................................................................................................... 16! 4.2 System architecture ........................................................................................................................................... 16! 4.3 Target performance ........................................................................................................................................... 19! 5 Input processing ...................................................................................................................................... 19! 5.1 Mode adaptation ................................................................................................................................................ 19! 5.1.1 Input Formats ............................................................................................................................................... 20! 5.1.2 Input Interface.............................................................................................................................................. 20! 5.1.3 Input Stream Synchronization (Optional).................................................................................................... 21! 5.1.4 Null Packet Deletion (optional, for TS only, NM and HEM) ..................................................................... 21! 5.1.5 CRC-8 encoding (for GFPS and TS, NM only) .......................................................................................... 22! 5.1.6 Baseband Header (BBHeader) insertion...................................................................................................... 22! 5.1.7 Mode adaptation sub-system output stream formats ................................................................................... 24! 5.2 Stream adaptation .............................................................................................................................................. 27! 5.2.1 Scheduler ..................................................................................................................................................... 27! 5.2.2 Padding ........................................................................................................................................................ 27! 5.2.3 BB scrambling ............................................................................................................................................. 27! 6 Bit-interleaved coding and modulation .................................................................................................. 28! 6.1 FEC encoding .................................................................................................................................................... 28! 6.1.1 Outer encoding (BCH)................................................................................................................................. 29! 6.1.2 Inner encoding (LDPC) ............................................................................................................................... 30! 6.1.2.1 Inner coding for normal FECFrame ....................................................................................................... 30! 6.1.2.2 Inner coding for short FECFrame .......................................................................................................... 32! 6.1.3 Bit Interleaver .............................................................................................................................................. 32! 6.2 Mapping bits onto constellations....................................................................................................................... 34! 6.2.1 Bit to cell word demultiplexer ..................................................................................................................... 35! 6.2.2 Cell word mapping into I/Q constellations .................................................................................................. 38! 7 Data Slice Packet Generation ................................................................................................................. 45! 7.1 Data Slice Packets for Data Slice Type 1 .......................................................................................................... 45! 7.2 Data Slice Packets for Data Slice Type 2 .......................................................................................................... 45! 7.2.1 FECFrame header signalling data................................................................................................................ 46! 7.2.2 Coding of the FECFrame header ................................................................................................................. 47! 7.2.2.1 Error Coding .......................................................................................................................................... 48! 7.2.2.2 Cyclic Delay........................................................................................................................................... 48! 7.2.2.3 Scrambling of the lower branch ............................................................................................................. 48! 7.2.3 Mapping onto QAM constellations ............................................................................................................. 49! 7.2.3.1 Robust FECFrame header ...................................................................................................................... 49! 7.2.3.2 High efficiency FECFrame header ........................................................................................................ 49! 7.2.4 Mapping of the XFECFrame cells ............................................................................................................... 49! 7.2.5 Length of the Data Slice Packet for Data Slice Type 2 ............................................................................... 49! 7.2.6 Stuffing Data Slice Packets ......................................................................................................................... 50! DVB BlueBook A138 4 8 Generation, coding and modulation of Layer 1 part 2 signalling ........................................................... 51! 8.1 Overview ........................................................................................................................................................... 51! 8.2 Preamble Header ............................................................................................................................................... 51! 8.3 L1 signalling part 2 data .................................................................................................................................... 53! 8.3.1 L1 block padding ......................................................................................................................................... 57! 8.3.2 CRC for the L1 signalling part 2 ................................................................................................................. 58! 8.3.3 L1 padding ................................................................................................................................................... 58! 8.4 Modulation and error correction coding of the L1 part 2 data .......................................................................... 58! 8.4.1 Overview ..................................................................................................................................................... 58! 8.4.2 Parameters for FEC encoding of L1 part 2 data .......................................................................................... 60! 8.4.3 FEC Encoding.............................................................................................................................................. 62! 8.4.3.1 Zero padding of BCH information bits .................................................................................................. 62! 8.4.3.2 BCH encoding ........................................................................................................................................ 63! 8.4.3.3 LDPC encoding ...................................................................................................................................... 63! 8.4.3.4 Puncturing of LDPC parity bits ............................................................................................................. 64! 8.4.3.5 Removal of zero padding bits ................................................................................................................ 64! 8.4.3.6 Bit interleaving for L1 signalling part 2 ................................................................................................ 65! 8.4.4 Mapping bits onto constellations ................................................................................................................. 65! 8.4.4.1 Demultiplexing of L1 signalling part 2 .................................................................................................. 65! 8.4.4.2 Mapping onto QAM constellations ........................................................................................................ 66! 8.5 Time interleaving of L1 signalling part 2 data .................................................................................................. 66! 9 Frame Builder ......................................................................................................................................... 68! 9.1 C2 Frame structure ............................................................................................................................................ 68! 9.1.1 Duration of the C2 Frame ............................................................................................................................ 69! 9.2 Pilot Reference Sequence .................................................................................................................................. 69! 9.2.1 Data Scrambling Sequence .......................................................................................................................... 69! 9.2.2 Pilot Scrambling Sequence .......................................................................................................................... 69! 9.2.3 Pilot Reference Sequence ............................................................................................................................ 70! 9.3 Preamble Symbol .............................................................................................................................................. 70! 9.3.1 Preamble Symbol overview ......................................................................................................................... 70! 9.3.2 Frequency Interleaving ................................................................................................................................ 71! 9.3.3 Pilot insertion ............................................................................................................................................... 71! 9.3.3.1 Locations of the preamble pilots ............................................................................................................ 72! 9.3.3.2 Modulation of the preamble pilots ......................................................................................................... 72! 9.3.4 Mapping and scrambling of the signalling data........................................................................................... 72! 9.3.5 Notches within Preamble Symbols .............................................................................................................. 73! 9.3.5.1 Narrowband Notches ............................................................................................................................. 73! 9.3.5.2 Broadband Notches ................................................................................................................................ 73! 9.4 Data Slice generation ........................................................................................................................................ 73! 9.4.1 Location of Data Slices................................................................................................................................ 73! 9.4.1.1 Start and end OFDM carrier of Data Slices ........................................................................................... 73! 9.4.1.2 Maximum width of Data Slices ............................................................................................................. 74! 9.4.1.3 Minimum width of Data Slices .............................................................................................................. 74! 9.4.1.4 Notches within Data Slices .................................................................................................................... 74! 9.4.2 Number of payload cells in Data Slice ........................................................................................................ 74! 9.4.3 Mapping of the Data Slice Packets .............................................................................................................. 74! 9.4.4 Time Interleaving ........................................................................................................................................ 75! 9.4.5 Frequency Interleaving ................................................................................................................................ 79! 9.5 Stuffing Data Slices ........................................................................................................................................... 80! 9.6 Pilot Insertion .................................................................................................................................................... 80! 9.6.1 Introduction ................................................................................................................................................. 80! 9.6.2 Scattered pilot insertion ............................................................................................................................... 81! 9.6.2.1 Locations of the scattered pilots ............................................................................................................ 81! 9.6.2.2 Amplitudes of the scattered pilots.......................................................................................................... 81! 9.6.2.3 Modulation of the scattered pilots.......................................................................................................... 81! 9.6.3 Continual pilot insertion .............................................................................................................................. 81! 9.6.3.1 Locations of the continual pilots ............................................................................................................ 82! 9.6.3.2 Amplitudes of the Continual Pilots ........................................................................................................ 82! 9.6.3.3 Modulation of the Continual Pilots ........................................................................................................ 82! 9.6.4 Edge pilot insertion ...................................................................................................................................... 82! 9.6.4.1 Locations of the edge pilots ................................................................................................................... 82! DVB BlueBook A138 5 9.6.4.2 Amplitudes of the Edge Pilots ............................................................................................................... 83! 9.6.4.3 Modulation of the Edge Pilots ............................................................................................................... 83! 9.7 Dummy carrier reservation................................................................................................................................ 84! 10 OFDM generation ................................................................................................................................... 84! 10.1 IFFT - OFDM Modulation ................................................................................................................................ 84! 10.2 Guard interval insertion ..................................................................................................................................... 86! 10.3 Spectrum characteristics .................................................................................................................................... 86! Annex A (normative): Addresses of parity bit accumulators for Nldpc = 64 800 .......................... 88! Annex B (normative): Addresses of parity bit accumulators for Nldpc = 16 200 .......................... 94! Annex C (normative): Input stream synchronizer ............................................................................ 96! Annex D (normative): Input Remultiplexing Subsystem: Splitting of input MPEG-2 Transport Streams into Data PLPs, generation of a Common PLP of a group of PLPs and insertion of Null Packets into Transport Streams ............................................................................................................ 98! D.1 Overview ................................................................................................................................................ 98! D.2 Splitting of a group of input TSs into TSPSs streams and a TSPSC stream .......................................... 99! D.2.1 General .............................................................................................................................................................. 99! D.2.2 Extraction of the Common PLP from a group of TS ........................................................................................ 99! D.2.3 Insertion of additional Null Packets into TSPSs ............................................................................................. 100! D.3 Receiver Implementation Considerations ............................................................................................. 101! D.3.1 Recombination of TSPSS and TSPSC in a receiver ....................................................................................... 101! Annex E (normative): Calculation of the CRC word ...................................................................... 103! Annex F (normative): Bundling of PLPs ......................................................................................... 104! Annex G (informative): Transport Stream regeneration and clock recovery using ISCR ............ 105! Annex H (informative): Pilot patterns ................................................................................................ 106! Annex I (informative): Bibliography ................................................................................................. 109! History............................................................................................................................................................. 110! DVB BlueBook A138 6 Intellectual Property Rights IPRs essential or potentially essential to the present document may have been declared to ETSI. The information pertaining to these essential IPRs, if any, is publicly available for ETSI members and non-members, and can be found in ETSI SR 000 314: "Intellectual Property Rights (IPRs); Essential, or potentially Essential, IPRs notified to ETSI in respect of ETSI standards", which is available from the ETSI Secretariat. Latest updates are available on the ETSI Web server (http://webapp.etsi.org/IPR/home.asp). Pursuant to the ETSI IPR Policy, no investigation, including IPR searches, has been carried out by ETSI. No guarantee can be given as to the existence of other IPRs not referenced in ETSI SR 000 314 (or the updates on the ETSI Web server) which are, or may be, or may become, essential to the present document. Foreword This European Standard (Telecommunications series) has been produced by Joint Technical Committee (JTC) Broadcast of the European Broadcasting Union (EBU), Comité Européen de Normalisation ELECtrotechnique (CENELEC) and the European Telecommunications Standards Institute (ETSI), and is now submitted for the Vote phase of the ETSI standards Two-step Approval Procedure. NOTE: The EBU/ETSI JTC Broadcast was established in 1990 to co-ordinate the drafting of standards in the specific field of broadcasting and related fields. Since 1995 the JTC Broadcast became a tripartite body by including in the Memorandum of Understanding also CENELEC, which is responsible for the standardization of radio and television receivers. The EBU is a professional association of broadcasting organizations whose work includes the co-ordination of its members' activities in the technical, legal, programme-making and programme-exchange domains. The EBU has active members in about 60 countries in the European broadcasting area; its headquarters is in Geneva. European Broadcasting Union CH-1218 GRAND SACONNEX (Geneva) Switzerland Tel: +41 22 717 21 11 Fax: +41 22 717 24 81 The Digital Video Broadcasting Project (DVB) is an industry-led consortium of broadcasters, manufacturers, network operators, software developers, regulatory bodies, content owners and others committed to designing global standards for the delivery of digital television and data services. DVB fosters market driven solutions that meet the needs and economic circumstances of broadcast industry stakeholders and consumers. DVB standards cover all aspects of digital television from transmission through interfacing, conditional access and interactivity for digital video, audio and data. The consortium came together in 1993 to provide global standardisation, interoperability and future proof specifications. Proposed national transposition dates Date of latest announcement of this EN (doa): 3 months after ETSI publication Date of latest publication of new National Standard or endorsement of this EN (dop/e): 6 months after doa Date of withdrawal of any conflicting National Standard (dow): 6 months after doa DVB BlueBook A138 7 1 Scope The present document describes a second generation baseline transmission system for digital television broadcasting via Hybrid Fibre Coax (HFC) cable networks and Master Antenna Television (MATV) installations. It specifies the channel coding, modulation and lower layer signalling protocol system intended for the provision of digital television services and generic data streams. The scope is as follows: • it gives a general description of the Baseline System for digital cable TV; • it specifies the digital signal processing in order to establish compatibility between pieces of equipment developed by different manufacturers. This is achieved by describing in detail the signal processing at the transmitting side, while the processing at the receiving side is left open to individual implementations. However, for the purpose of securing interoperability it is necessary in this text to refer to certain implementation aspects of the receiving end. DVB-C [i.4] was introduced as a European Norm in 1994. It specifies single carrier QAM modulation and Reed-Solomon channel coding and is used today by many cable operators worldwide for television and data broadcasting as well as for forward channel transmission of the Data Over Cable System defined in [i.7]. Since 1994 enhanced digital transmission technologies have evolved somewhat: • New channel coding schemes, combined with higher order modulation, promise more powerful alternatives to the DVB-C coding and modulation schemes. The result is a capacity gain in the order of 30 % at a given cable channel bandwidth and CATV network performance. • Variable Coding and Modulation (VCM) may be applied to provide different levels of error protection to different services (e.g. SDTV and HDTV, audio, multimedia). • In the case of interactive and point-to-point applications, the VCM functionality may be combined with the use of return channels, to achieve Adaptive Coding and Modulation (ACM). This technique provides more exact channel protection and dynamic link adaptation to propagation conditions, targeting each individual receiving terminal. • DVB-C is strictly focused on a unique data format, the MPEG Transport Stream (ISO/IEC 13818-1 [i.1] or a reference to it). Extended flexibility to cope with other input data formats (such as multiple Transport Streams, or generic data formats) is now possible without significant complexity increase. The present document defines a "second generation" modulation and channel coding system (denoted the "C2 System" or "DVB-C2" for the purposes of the present document) to make use of the improvements listed above. DVB-C2 is a single, very flexible standard, covering a variety of applications by cable, as described below. It is characterized by: • a flexible input stream adapter, suitable for operation with single and multiple input streams of various formats (packetized or continuous); • a powerful FEC system based on LDPC (Low-Density Parity Check) codes concatenated with BCH (Bose Chaudhuri Hocquenghem) codes, allowing Quasi Error Free operation close to the Shannon limit, depending on the transmission mode (AWGN channel, modulation constrained Shannon limit); • a wide range of code rates (from 2/3 up to 9/10); 5 constellations, ranging in spectrum efficiency from 1 to 10,8 bit/s/Hz, optimized for operation in cable networks; • Adaptive Coding and Modulation (ACM) functionality, optimizing channel coding and modulation on a frame-by-frame basis. DVB BlueBook A138 8 2 References References are either specific (identified by date of publication and/or edition number or version number) or non-specific. • For a specific reference, subsequent revisions do not apply. • Non-specific reference may be made only to a complete document or a part thereof and only in the following cases: - if it is accepted that it will be possible to use all future changes of the referenced document for the purposes of the referring document; - for informative references. Referenced documents which are not found to be publicly available in the expected location might be found at http://docbox.etsi.org/Reference. NOTE: While any hyperlinks included in this clause were valid at the time of publication ETSI cannot guarantee their long term validity. 2.1 Normative references The following referenced documents are indispensable for the application of the present document. For dated references, only the edition cited applies. For non-specific references, the latest edition of the referenced document (including any amendments) applies. [1] ETSI TS 101 162: "Digital Video Broadcasting (DVB); Allocation of Service Information (SI) and Data Broadcasting Codes for Digital Video Broadcasting (DVB) systems". 2.2 Informative references The following referenced documents are not essential to the use of the present document but they assist the user with regard to a particular subject area. For non-specific references, the latest version of the referenced document (including any amendments) applies. [i.1] ISO/IEC 13818-1: "Information technology - Generic coding of moving pictures and associated audio information: Systems". [i.2] ETSI TS 102 606: "Digital Video Broadcasting (DVB); Generic Stream Encapsulation (GSE) Protocol". [i.3] ETSI EN 302 307: "Digital Video Broadcasting (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications (DVB-S2)". [i.4] ETSI EN 300 468: "Digital Video Broadcasting (DVB); Specification for Service Information (SI) in DVB systems". [i.5] ETSI EN 300 429: "Digital Video Broadcasting (DVB); Framing structure, channel coding and modulation for cable systems". [i.6] ETSI EN 302 755: "Digital Video Broadcasting (DVB); Frame structure channel coding and modulation for a second generation digital terrestrial television broadcasting system (DVB-T2)". [i.7] CENELEC EN 50083-2:2006: "Cable networks for television signals, sound signals and interactive services - Part 2: Electromagnetic compatibility for equipment". [i.8] ETSI EN 300 421: "Digital Video Broadcasting (DVB); Framing structure, channel coding and modulation for 11/12 GHz satellite services". DVB BlueBook A138 9 3 Definitions, symbols and abbreviations 3.1 Definitions For the purposes of the present document, the following terms and definitions apply: !: Exclusive OR / modulo-2 addition operation 0xkk: digits 'kk' should be interpreted as a hexadecimal number active cell: OFDM Cell carrying a constellation point for L1 signalling or a PLP auxiliary data: sequence of cells carrying data of as yet undefined modulation and coding, which may be used for stuffing Data Slices or stuffing Data Slice Packets BBFrame: signal format of an input signal after mode and stream adaptation BBHeader: header in front of a baseband data field NOTE: See clause 5.1. BUFS: maximum size of the requested receiver buffer to compensate delay variations BUFSTAT: actual status of the receiver buffer C2 frame: fixed physical layer TDM frame that is further divided into variable size Data Slices NOTE: C2 Frame starts with one or more Preamble Symbol. C2 system: complete transmitted DVB-C2 signal, as described in the L1-part2 block of the related Preamble common PLP: special PLP, which contains data shared by multiple PLPs (Transport Stream) data cell: OFDM Cell which is not a pilot or tone reservation cell data PLP: PLP carrying payload data data slice: group of OFDM Cells carrying one or multiple PLPs in a certain frequency sub-band NOTE: This set consists of OFDM Cells within a fixed range of consecutive cell addresses within each Data Symbol and spans over the complete C2 Frame, except the Preamble Symbols. data slice packet: XFECFrame including the related FECFrame Header data symbol: OFDM Symbol in a C2 Frame which is not a Preamble Symbol div: integer division operator, defined as: #x! x div y = # y! $ " dummy cell: OFDM Cell carrying a pseudo-random value used to fill the remaining capacity not used for L1 signalling, PLPs or Auxiliary Data elementary period: time period which depends on the channel raster and is used to define the other time periods in the C2 System FECFrame: set of NLDPC (16 200 or 64 800) bits of one LDPC encoding operation NOTE: In case of Data Slices carrying a single PLP and constant modulation and encoding is applied, FECFrame Header information may be carried in Layer1 part2 and the Data Slice Packet is identical with the XFECFrame. DVB BlueBook A138 10 FFT size: nominal FFT size for a DVB-C2 receiver is 4K NOTE: Further details are discussed in clause 10.1. for i=0..xxx-1: when used with the signalling loops, this means that the corresponding signalling loop is repeated as many times as there are elements of the loop NOTE: If there are no elements, the whole loop is omitted. Im(x): Imaginary part of x Layer 1 (L1): name of the first layer of the DVB-C2 signalling scheme (signalling of physical layer parameters) L1 block: set of L1-part2 COFDM Cells, cyclically repeated in the frequency domain NOTE: L1 Blocks are transmitted in the Preamble. L1-part1: signalling carried in the header of the Data Slice Packets carrying modulation and coding parameters of the related XFECFrame NOTE: L1-part1 parameters may change per XFECFrame. L1-part2: Layer 1 Signalling cyclically transmitted in the preamble carrying more detailed L1 information about the C2 System, Data Slices, Notches and the PLPs NOTE: L1-part2 parameters may change per C2 Frame. Layer 2 (L2): name of the second layer of the DVB-C2 signalling scheme (signalling of transport layer parameters) mod: modulo operator, defined as: #x! x mod y = x % y # ! $ y" mode adapter: input signal processing block, delivering BBFrames at its output nnD: digits 'nn' should be interpreted as a decimal number notch: set of adjacent OFDM Cells within each OFDM Symbol without transmitted energy null packet: MPEG Packet with the Packet_ID 0x1FFF, carrying no payload data and intended for padding OFDM cell: modulation value for one OFDM carrier during one OFDM Symbol, e.g. a single constellation point OFDM symbol: waveform Ts in duration comprising all the active carriers modulated with their corresponding modulation values and including the guard interval Physical Layer Pipe (PLP): logical channel carried within one or multiple Data Slice(s) NOTE 1: All signal components within a PLP share the same transmission parameters such as robustness, latency. NOTE 2: A PLP may carry one or multiple services. In case of PLP Bundling a PLP may be carried in several Data Slices. Transmission parameters may change each XFECFrame. PLP bundling: transmission of one PLP via multiple Data Slices PLP_ID: this 8-bit field identifies uniquely a PLP within a C2 transmission signal preamble header: fixed size signalling transmitted in the first part of the Preamble, carrying the length and Interleaving parameters of Layer 1 part 2 data preamble symbol: one or multiple OFDM Symbols, transmitted at the beginning of each C2 Frame, carrying Layer 1 part 2 signalling data Re(x): Real part of x DVB BlueBook A138 11 reserved for future use: value of any field indicated as "reserved for future use" shall be set to "0" unless otherwise defined START_FREQUENCY: index of lowest used OFDM subcarrier of a C2 System. The value of START_FREQUENCY shall be a multiple of DX x*: Complex conjugate of x XFECFrame: FECFrame mapped onto QAM constellations: • !x" : round towards minus infinity: the most positive integer less than or equal to x. • ! x " : round towards plus infinity: the most negative integer greater than or equal to x. # $ 3.2 Symbols For the purposes of the present document, the following symbols apply: ! Absolute guard interval duration ! LDPC codeword of size Nldpc "i LDPC codeword bits "RM 32 output bits of Reed-Muller encoder "iRM Bit number of index i of 32 bit long output bits of Reed-Muller encoder #MOD, #MOD(i) Number of transmitted bits per constellation symbol (for PLP i) !p Permutation operator defining parity bit groups to be punctured for L1 signalling "s Permutation operator defining bit-groups to be padded for L1 signalling Am,l Output vector of the frequency interleaver of OFDM Symbol l and C2 Frame m ACP Amplitude of the continual pilot cells ASP Amplitude of the scattered pilot cells a m,l,q Frequency-Interleaved cell value, cell index q of symbol l of C2 Frame m B(n) Location of the first Data Cell of symbol l allocated to Data Slice n in the frequency interleaver b 16 bit long FECFrame signalling data vector be,do Output from the demultiplexer, depending on the demultiplexed bit sub-stream number e and the input bit number di of the bit interleaver demultiplexer bi Bit number of index i of 16 bit long FECFrame signalling data vector C/N Carrier-to-noise power ratio C/N+I Carrier-to-(Noise+Interference) ratio Ci Column of index i of time interleaver ci Column of index i of bit interleaver c(x) Equivalent BCH codeword polynomial cm,l,k Cell value for carrier k of symbol l of C2 Frame m DFL Data field length DP Difference in carrier index between adjacent preamble-pilot-bearing carriers Dx Difference in carrier index between adjacent scattered-pilot-bearing carriers Dy Difference in symbol number between successive scattered pilots on a given carrier d(x) Remainder of dividing message polynomial by the generator polynomial g(x) during BCH encoding di Input bit number di of the bit interleaver demultiplexer do Bit number of a given stream at the output of the demultiplexer of the bit interleaver e Demultiplexed bit sub stream number (0 $ e < Nsubstreams), depending on input bit number di of the bit interleaver demultiplexer fq Constellation point normalized to mean energy of 1 G Reed-Muller encoder matrix g(x) BCH generator polynomial DVB BlueBook A138 12 g1(x), g2(x), …, g12(x) Polynomials to obtain BCH code generator polynomial gq Complex cell of index q of a Data Slice Packet H(q) Frequency interleaver permutation function, element q I Output codeword of BCH encoder ij BCH codeword bits which form the LDPC information bits j !1 Kbch Number of bits of BCH uncoded Block Ki L1 signalling part 2 parameter selected as NL1part2(Ki) <= NL1part2_Cells #MOD Kldpc Number of bits of LDPC uncoded Block KL1_PADDING Length of L1_PADDING field KL1part2 Length of L1-part2 signalling field including the padding field KL1part2_ex_pad Number of information bits in L1-part2 signalling excluding the padding field KN,min Lowest frequency carrier index of a frequency Notch KN,max Highest frequency carrier index of a frequency Notch Ksig Number of signalling bits per FEC block for L1 signalling part 2 Kmin Lowest frequency carrier index of a C2 signal, shall be identical to the START_FREQUENCY and shall be multiple of DX Kmax Highest frequency carrier index of a C2 signal, shall be multiple of DX Ktotal Number of OFDM carriers per OFDM symbol k Absolute OFDM carrier index Ldata Number of data OFDM Symbols per C2 Frame (excluding Preamble) LF Number of OFDM Symbols per C2 Frame including excluding preamble LP Number of preamble OFDM Symbols within the C2 Frame l Index of OFDM Symbol within the C2 Frame (excluding preamble) lP Index of preamble OFDM Symbol in C2 Frame m C2 Frame number m(x) Message polynomial within BCH encoding mi Input bit of index i from uncoded bit vector M before BCH encoder M Uncoded bit vector before BCH encoder Mmax Maximum Sequence length for the frequency interleaver Nbch Number of bits of BCH coded Block Nbch_parity Number of BCH parity bits Nc Number of columns of bit or time interleaver Ndata Number of Data Cells in a Data Slice in frequency interleaver NDP Number of complex cells per Data Slice Packet Ngroup Number of bit-groups for BCH shortening NL1part2 Length of punctured and shortened LDPC codeword for L1-part2 signalling NL1part2_Cells Number of available cells for L1 signalling part 2 in one OFDM Symbol NL1part2_FEC_Block Number of LDPC blocks for the L1 signalling part 2 NL1part2_max_per_Symbol Maximum number of L1 information bits for transmitting the encoded L1 signalling part 2 through one OFDM Symbol NL1_TI_Depth Time interleaving depth for L1 signalling part 2 NL1part2_temp Intermediate value used in L1 puncturing calculation Nldpc Number of bits of LDPC coded Block NMOD_per_Block Number of modulated cells per FEC block for the L1-part2 signalling NMOD_Total Total number of modulated cells for the L1-part2 signalling Npad Number of BCH bit-groups in which all bits will be padded for L1-part2 signalling Npunc Number of LDPC parity bits to be punctured Npunc_groups Number of parity groups in which all parity bits are punctured for L1 signalling Npunc_temp Intermediate value used in L1 puncturing calculation Nr Number of bits in Frequency Interleaver sequence Nr Number of rows of bit or time interleaver DVB BlueBook A138 13 NRT Number of reserved carriers Nsubstreams Number of substreams produced by the bit-to-sub-stream demultiplexer n Data slice number Pk(f) Power spectral density pi LDPC parity bits Qldpc Code-rate dependent LDPC constant q Data Cell index within the OFDM Symbol prior to frequency interleaving and pilot insertion Reff_16K_LDPC_1_2 Effective code rate of 16K LDPC with nominal rate " Reff_L1part2 Effective code rate of L1-part2 signalling Ri Row of index i of time interleaver Ri Value of element i of the frequency interleaver sequence following bit permutations R'i Value of element i of the frequency interleaver sequence prior to bit permutations ri Row of index i of bit interleaver rk DBPSK modulated pilot reference sequence S0 List of reserved carriers T Elementary period TCi Column-twist value for column C of time interleaver TCH Component set of carrier indices for reserved carriers TF Duration of one C2 Frame TP Time interleaving period TS Total OFDM Symbol duration TU Useful OFDM Symbol duration t BCH error correction capability tc Column-twist value for column c of bit interleaver U Parity interleaver output UPL User Packet Length ui Parity-interleaver output bits uRM 32 bit output vector of the cyclic delay block in the FECFrame header encoding u(i+2)mod32RM Output of the cyclic delay block for input bit i in the FECFrame header encoding V Column-twist interleaver output vi Column-twist interleaver output bits v m,l,i Output vector of frequency interleaver, starting at carrier index i (= Data slice start carrier) of the current OFDM Symbol l and C2 Frame m vRM Scrambled output sequence in the lower branch of the FECFrame header encoder viRM Bit i of scrambled output sequence in the lower branch of the FECFrame header encoder wi Bit i of the data scrambling sequence wRM 32 bit scrambling sequence in the lower branch of the FECFrame header encoder wiRM Bit i of scrambling sequence in the lower branch of the FECFrame header encoder wp Pilot synchronization sequence, build out of wi and w' w kp Bit of index k of pilot synchronization sequence w' L1 block specific pilot synchronization sequence w i' Bit of index k of L1 block specific pilot synchronization sequence Xj The set of bits in group j of BCH information bits for L1 shortening Xm,l Frequency interleaver input Data Cells of the OFDM Symbol l and the C2 Frame m x Address of the parity bit accumulator according to i360 in LDPC encoder yi,q Bit i of cell word q from the bit-to-cell-word demultiplexer zq Constellation point prior to normalization The symbols s, t, i, j, k are also used as dummy variables and indices within the context of some clauses or equations. DVB BlueBook A138 14 In general, parameters which have a fixed value for a particular PLP for one processing block (e.g. C2 Frame, Interleaving Frame, TI-block) are denoted by an upper case letter. Simple lower-case letters are used for indices and dummy variables. The individual bits, cells or words processed by the various stages of the system are denoted by lower case letters with one or more subscripts indicating the relevant indices. 3.3 Abbreviations For the purposes of the present document, the following abbreviations apply: 1024QAM 1024-ary Quadrature Amplitude Modulation 16QAM 16-ary Quadrature Amplitude Modulation 256QAM 256-ary Quadrature Amplitude Modulation 4096QAM 4096-ary Quadrature Amplitude Modulation 64QAM 64-ary Quadrature Amplitude Modulation ACM Adaptive Coding and Modulation AWGN Additive White Gaussian Noise BB BaseBand BBFrame BaseBand Frame BCH Bose-Chaudhuri-Hocquenghem multiple error correction binary block code BCHFEC BCH Forward Error Correction BICM Bit Interleaved Coding and Modulation C/N Carrier to noise ratio C/N+I Carrier to noise and intermodulation power ratio CATV Community Antenna Television CBR Constant Bit Rate CCM Constant Coding and Modulation CRC Cyclic Redundancy Check D Decimal notation DBPSK Differential Binary Phase Shift Keying DEMUX DEMUltipleXer DFL Data Field Length DNP Deleted Null Packets DVB Digital Video Broadcasting project DVB-C DVB System for cable transmission NOTE: As defined in EN 300 429 [i.5]. DVB-C2 DVB-C2 System NOTE: As specified in the present document. DVB-S DVB System for digital broadcasting via satellites NOTE: As specified in EN 300 421 [i.8]. DVB-S2 Second Generation DVB System for satellite broadcasting NOTE: As specified in EN 302 307 [i.3]. DVB-T DVB System for terrestrial broadcasting NOTE: As specified in EN 302 755 [i.6]. DVB-T2 Second Generation DVB System for terrestrial broadcasting NOTE: As specified in EN 302 755 [i.6]. EBU European Broadcasting Union EIT Event Information Table (DVB SI Table) EMM Entitlement Management Message FEC Forward Error Correction FFT Fast Fourier Transformation FIFO First In First Out GCS Generic Continuous Stream DVB BlueBook A138 15 GF Galois Field GFPS Generic Fixed-length Packetized Stream GI Guard Interval GS Generic Stream GSE Generic Stream Encapsulation HDTV High Definition Television HEM High Efficiency Mode HFC Hybrid Fibre Coax IF Intermediate Frequency IFFT Inverse Fast Fourier Transform IS Interactive Services ISCR Input Stream Clock Reference ISI Input Stream Identifier ISSY Input Stream SYnchronizer ISSYI Input Stream SYnchronizer Indicator Kbit 210 = 1 024 bits LDPC Low Density Parity Check (codes) LDPCFEC LDPC Forward Error Correction LSB Least Significant Bit MATV Master Antenna Television Mbit 220 = 1 048 576 bits MIS Multiple Input Stream MPEG Moving Pictures Experts Group MSB Most Significant Bit NOTE: In DVB-C2 the MSB is always transmitted first. NA Not Applicable NM Normal Mode NPD Null Packet Deletion OFDM Orthogonal Frequency Division Multiplex PAPR Peak to Average Power Ratio PCR Presentation Clock Reference PER (MPEG TS) Packet Error Rate PID Packet IDentifier PLL Phase-Locked Loop PLP Physical Layer Pipe PRBS Pseudo Random Binary Sequence QAM Quadrature Amplitude Modulation QEF Quasi Error Free QPSK Quaternary Phase Shift Keying RF Radio Frequency SDT Service Description Table (DVB SI Table) SDTV Standard Definition TV SIS Single Input Stream TDM Time Division Multiplex TF Time/Frequency TI Time Interleaver TS Transport Stream TSPS Transport Stream Partial Stream TSPSC Transport Stream Partial Stream Common TSPSS Transport Stream Partial Stream Synchronized UP User Packet UPL User Packet Length VCM Variable Coding and Modulation XFECFrame XFEC Frame DVB BlueBook A138 16 4 DVB-C2 System architecture 4.1 System overview The generic C2 System model is represented in figure 1. The system input(s) may be one or more MPEG-2 Transport Stream(s) [i.1] and/or one or more Generic Stream(s) [i.2]. The Input pre-processor, which is not part of the C2 System, may include a service splitter or a demultiplexer for Transport Streams (TS) used to separate the services into the C2 System inputs, which are one or more logical data streams. These are then carried in individual Physical Layer Pipes (PLPs). The system output is a single signal to be transmitted on a single RF channel. Bit Input Interleaved Data Slice OFDM processing Coding & + Frame generation Modulation Builder TS or DVB-C2 C2 system GSE inputs output Figure 1: High level C2 block diagram The input data streams shall be subject to the constraint that, over the duration of one physical-layer frame (C2 Frame), the total input data capacity (in terms of cell throughput, following Null Packet Deletion, if applicable, and after coding and modulation), shall not exceed the C2 available capacity (in terms of Data Cells, constant in time) of the C2 Frame for the current frame parameters. One or more PLPs are arranged in a group of PLPs and one or more of such groups of PLPs form a Data Slice. A C2 System may consist of one or more Data Slices. Each group of PLPs may contain one Common PLP, but a group of PLPs need not contain a Common PLP. When the DVB-C2 signal carries a single PLP there is no Common PLP. It is assumed that the receiver will always be able to receive one Data PLP and its associated Common PLP, if any. More generally, the group of statistically multiplexed services can use Variable Coding and Modulation (VCM) for different services, provided they generate a constant total output capacity (i.e. in terms of cell rate including FEC and modulation). When multiple input MPEG-2 TSs are transmitted via a group of PLPs, splitting of input TSs into TSPS streams (carried via the Data PLPs) and a TSPSC stream (carried via the associated Common PLP), as described in annex D, shall be performed immediately before the Input processing block shown in figure 1. This processing shall be considered an integral part of an extended DVB-C2 System. 4.2 System architecture The C2 input processing block diagram is shown in figures 2, which is split into several parts. Figure 2(a) shows the input processing in case of multiple PLPs. Figure 2(a) shows the BICM module and figure 2(c) shows the frame builder module. Figure 2(d) shows the OFDM generation module. DVB BlueBook A138 17 Input Input Null CRC-8 BB BB interface Stream Packet encoder Header scambler Synchroniser Deletion insertion BB TS/GSE 0 Frame of Input Null BB PLP0 Input CRC-8 BB interface Stream Packet encoder Header scrambler TS/GSE 1 Synchroniser Deletion insertion Multiple To BICM input streams Input Input Null CRC-8 BB BB interface Stream Packet encoder Header scambler Synchroniser Deletion insertion BB TS/GSE n Frame of PLPn Figure 2(a): Mode adaptation for multiple input streams (PLP) Bit Demux Map cells to FEC-Frame BCH - FEC LDPC - FEC constellations encoding encoding interleaver bits to cells Header BB (Gray mapping) Insertion Frame Data Slice of Packets of PLP0 Bit Demux Map cells to FEC-Frame PLP0 BCH - FEC LDPC - FEC constellations encoding encoding interleaver bits to cells Header BB (Gray mapping) Insertion Frame of To data slice & PLP1 frame builder Bit Demux Map cells to FEC-Frame BCH - FEC LDPC - FEC constellations encoding encoding interleaver bits to cells Header BB (Gray mapping) Insertion Frame Data Slice of Packets of PLPn PLPn Demux Map cells to FEC encoding bits to constellations cells (Grey Mapping) L1 L1- signalling header L1 Config generation FEC encoding Bit Demux Map cells to (Shortened/punctured interleaver bits to constellations L1-data LDPC/BCH) cells (Gray mapping) Figure 2(b): Bit Interleaved Coding and Modulation (BICM) DVB BlueBook A138 18 PLP0 Data Slice Time Frequency PLP1 1 Interleaver Interleaver Builder Frame Builder (assembles the cells of PLPn data slices and L1 signalling To OFDM into arrays generation corresponding to Data Slice OFDM symbols. n Time Frequency Builder Interleaver Interleaver L1 header L1 Block Builder, Frequency incl. Interleaver L1 data Header Time insertion Interleaver Figure 2(c): Data Slice + Frame builder Pilot Guard IFFT interval DAC Insertion insertion From data slice To RF & frame builder converter Figure 2(d): OFDM generation Figure 2(e) combines the functions given in figures 2(a) to 2(d) in one simplified overall DVB-C2 block diagram. DVB BlueBook A138 19 Data Slice 1 Builder Input FEC QAM Sync + BI Mapper PLPs Time + Frequency Interleaving Input FEC QAM Sync + BI Mapper Input FEC QAM Data Slice n Builder Sync + BI Mapper Frame Builder IFFT Guard Time + DAC Interval PLPs Frequency Pilot Interleaving Insertion Input FEC QAM Sync + BI Mapper L1 Config. L1 Time L1 Freq. FEC QAM Signal Inter- Block Inter- + BI Mapper Gen. leaving Builder leaving Figure 2(e): DVB-C2 modulator block diagram 4.3 Target performance If the received signal is above the C/N+I threshold, the Forward Error Correction (FEC) technique adopted in the C2 System is designed to provide a "Quasi Error Free" (QEF) quality target. The definition of QEF adopted for DVB-C2 is "less than one uncorrected error-event per transmission hour at the level of a 5 Mbit/s single TV service decoder", corresponding to a Transport Stream Packet Error Rate of approximately PER < 10-7 measured at the input of the demultiplexer unit at the receiving end. 5 Input processing 5.1 Mode adaptation The input to the C2 System shall consist of one or more logical data streams. One logical data stream is carried by one Physical Layer Pipe (PLP). The mode adaptation modules, which operate separately on the contents of each PLP, slice the input data stream into data fields which, after stream adaptation, will form baseband frames (BBFrame). The mode adaptation module comprises the input interface, followed by three optional sub-systems (the input stream synchronizer, the Null Packet deletion unit and the CRC-8 encoder) and then finishes by slicing the incoming data stream into data fields and inserting the baseband header (BBHeader) at the start of each data field. Each of these sub-systems is described in the following clauses. Each input PLP may have one of the formats specified in clause 5.1.1. The mode adaptation module can process input data in one of two modes, normal mode (NM) or high efficiency mode (HEM). These modes are described in clauses 5.1.6 and 5.1.7 respectively. NM is in line with the Mode Adaptation in [i.3], whereas in HEM, further stream specific optimizations may be performed to reduce signalling overhead. The BBHeader (see clause 5.1.6) signals the input stream type and the processing mode. DVB BlueBook A138 20 5.1.1 Input Formats The input signals in terms of either single or multiple streams (one connected to each Mode Adaptation Module) (see figure 1) shall be supplied to the Mode Adaptation Module(s). In the case of a Transport Stream (TS), the packet rate will be a constant value, although only a proportion of the packets may correspond to service data and the remainder may be Null Packets. Each input stream (PLP) of the C2 System shall be associated with a modulation and FEC protection mode which is statically configurable. Each input PLP may take one of the following formats: • Transport Stream (TS). • Generic Encapsulated Stream (GSE) [i.2]. • Generic Continuous Stream (GCS) (a variable length packet stream where the modulator is not aware of the packet boundaries). • Generic Fixed-length Packetized Stream (GFPS); this form is retained for compatibility with DVB-S2, but it is expected that GSE would now be used instead. A Transport Stream shall be characterized by User Packets (UP) of fixed length O-UPL = 188 " 8 bits (one MPEG TS packet), the first byte being a SYNC byte (47HEX) and shall be signalled in the BBHeader TS/GS field, see clause 5.1.6. A GSE stream shall be characterized by variable length packets or constant length packets, as signalled within GSE packet headers, and shall be signalled in the BBHeader by TS/GS field, see clause 5.1.6. A GCS shall be characterized by a continuous bit-stream and shall be signalled in the BBHeader by TS/GS field and UPL = 0D, see clause 5.1.6. A variable length packet stream where the modulator is not aware of the packet boundaries, or a constant length packet stream exceeding 64 kbit, shall be treated as a GCS, and shall be signalled in the BBHeader by TS/GS field as a GCS and UPL = 0D, see clause 5.1.6. A GFPS shall be a stream of constant-length User Packets (UP), with length O-UPL bits (maximum O-UPL value 64 K), and shall be signalled in the BBHeader TS/GS field, see clause 5.1.6. O-UPL is the Original User Packet Length. UPL is the transmitted User Packet Length, as signalled in the BBHeader. 5.1.2 Input Interface The input interface sub-system shall map the input into internal logical-bit format. The first received bit will be indicated as the Most Significant Bit (MSB). Input interfacing is applied separately for each single Physical Layer Pipe (PLP), see figure 2(a). The Input Interface shall read a data field, composed of DFL bits (Data Field Length), where: 0 < DFL < (Kbch - 80) where Kbch is the number of bits protected by the BCH and LDPC codes (see clause 6.1). The maximum value of DFL depends on the chosen LDPC code, carrying a protected payload of Kbch bits. The 10-byte (80 bits) BBHeader is appended to the front of the data field, and is also protected by the BCH and LDPC codes. The input interface shall either allocate a number of input bits equally to the available data field capacity, thus breaking UPs in subsequent data fields (this operation being called "fragmentation"), or shall allocate an integer number of UPs within the data field (no fragmentation). The available data field capacity is equal to Kbch - 80. When the value of DFL < Kbch - 80, a padding field shall be inserted by the stream adapter (see clause 5.2) to complete the LDPC/BCH code block capacity. DVB BlueBook A138 21 5.1.3 Input Stream Synchronization (Optional) Data processing in the DVB-C2 modulator may produce variable transmission delay on the user information. The Input Stream Synchronizer sub-system shall provide suitable means to guarantee Constant Bit Rate (CBR) and constant end-to-end transmission delay for any input data format. The use of the Input Stream Synchronizer subsystem is optional, except that it shall always be used for PLPs carrying transport streams where the number of FEC blocks per C2 Frame may vary. This process shall follow the specification given in annex C, which is similar to [i.3]. Examples of receiver implementation are given in annex G. This process will also allow synchronization of a single PLP travelling in different Data Slices, since the reference clock and the counter of the input stream synchronizers shall be the same (see annex F). The ISSY field (Input Stream Synchronization, 2 bytes or 3 bytes) carries the value of a counter clocked at the modulator clock rate (1/T where T is defined in clause 10.) and can be used by the receiver to regenerate the correct timing of the regenerated output stream. The ISSY field carriage shall depend on the input stream format and on the Mode, as defined in clauses 5.1.6 and 5.1.7 and figures 4 to 8. In Normal Mode the ISSY Field is appended to UPs for packetized streams. In High Efficiency Mode a single ISSY field is transmitted per BBFrame in the BBHeader, taking advantage that UPs of a BBFrame travel together, and therefore experience the same delay/jitter. When the ISSY mechanism is not being used, the corresponding fields of the BBHeader, if any, shall be set to '0'. A full description of the format of the ISSY field is given in annex C. 5.1.4 Null Packet Deletion (optional, for TS only, NM and HEM) Transport Stream rules require that bit rates at the output of the transmitter's multiplexer and at the input of the receiver's demultiplexer are constant in time and the end-to-end delay is also constant. For some Transport Stream input signals, a large percentage of Null Packets may be present in order to accommodate variable bit-rate services in a constant bit-rate TS. In this case, in order to avoid unnecessary transmission overhead, TS Null Packets shall be identified (PID = 8191D) and removed. The process is carried out in a way that the removed Null Packets can be re-inserted in the receiver in the exact place where they were originated, thus guaranteeing a constant bit rate and avoiding the need for time stamp (PCR) updating. When Null Packet Deletion is used useful packets (i.e. TS packets with PID # 8191D), including the optional ISSY appended field shall be transmitted while Null Packets (i.e. TS packets with PID = 8191D, including the optional ISSY appended field may be removed (see figure 3). After transmission of a UP, a counter called DNP (Deleted Null Packets, 1 byte) shall be first reset and then incremented at each deleted Null Packet. When DNP reaches the maximum allowed value DNP = 255D, then if the following packet is again a Null Packet this Null Packet is kept as a useful packet and transmitted. Insertion of the DNP field (1 byte) shall be after each transmitted UP according to clause 5.17 and figure 3. DVB BlueBook A138 22 Reset after DNP DNP insertion Null packet deletion Counter Useful DNP (1 byte) packets Insertion after Output Input ut next useful Null packet packets Input Optional S I S I S I S I S I Y N UP S S Y N UP S S Y N UP S S Y N UP S S Y N UP S S C Y C Y C Y C Y C Y DNP=0 DNP=0 DNP=1 DNP=2 S I D S I D UP S N UP S N Output Y N C S Y P Y N C S Y P Figure 3: Null Packet deletion scheme 5.1.5 CRC-8 encoding (for GFPS and TS, NM only) CRC-8 is applied for error detection at UP level (Normal Mode and packetized streams only). When applicable (see clause 5.1.7), the UPL minus 8 bits of the UP (after SYNC byte removal, when applicable) shall be processed by the systematic 8-bit CRC-8 encoder defined in annex E. The computed CRC-8 shall be appended after the UP according to clause 5.1.7. 5.1.6 Baseband Header (BBHeader) insertion A fixed length BBHeader of 10 bytes shall be inserted in front of the baseband data field in order to describe the format of the data field. The BBHeader shall take one of two forms as shown in figure 4(a) for Normal Mode (NM) and in figure 4(b) for High Efficiency Mode (HEM). The current mode (NM or HEM) may be detected by the MODE field (EXORed with the CRC-8 field). CRC-8 MATYPE UPL DFL SYNC SYNCD (2 bytes) (2 bytes) (2 bytes) (1 byte) (2 bytes) MODE (1 byte) Figure 4(a): BBHeader format (NM) ISSY CRC-8 MATYPE ISSY 2MSB DFL SYNCD (2 bytes) (2 bytes) (2 bytes) 1LSB (2 bytes) MODE (1 byte) (1 byte) Figure 4(b): BBHeader format (HEM) MATYPE (2 bytes): describes the input stream format and the type of Mode Adaptation as explained in table 1. The use of the bits of the MATYPE field is described below. DVB BlueBook A138 23 First byte (MATYPE-1): • TS/GS field (2 bits), Input Stream Format: Generic Packetized Stream (GFPS); Transport Stream; Generic Continuous Stream (GCS); Generic Encapsulated Stream (GSE). • SIS/MIS field (1 bit): Single or Multiple Input Streams (referred to the global signal, not to each PLP). • CCM/ACM field (1 bit): Constant Coding and Modulation or Variable/Adaptive Coding and Modulation. • ISSYI (1 bit), (Input Stream Synchronization Indicator): If ISSYI = 1 = active, the ISSY field shall be computed (see annex C) and inserted according to clause 5.1.7. • NPD (1 bit): Null Packet deletion active/not active. If NPD active, then DNP shall be computed and appended after UPs. • EXT (2 bits), media specific (for C2, EXT=0: reserved for future use). Table 1: MATYPE-1 field mapping TS/GS (2 bits) SIS/MIS (1 bit) CCM/ACM (1 bit) ISSYI (1 bit) NPD (1 bit) EXT (2 bits) 00 = GFPS 1 = single 1 = CCM 1 = active 1 = active Reserved for future 11 = TS 0 = multiple 0 = ACM 0 = not-active 0 = not-active use 01 = GCS (see note 1) 10 = GSE NOTE 1: For C2, EXT=reserved for future use and for S2, EXT=RO =transmission roll-off. NOTE 2: For compatibility with DVB-S2 [i.3], when GSE is used with normal mode, it shall be treated as a Continuous Stream and indicated by TS/GS = 01. Second byte (MATYPE-2): • If SIS/MIS = Multiple Input Stream, then second byte = Input Stream Identifier (ISI); else second byte = '0' (reserved for future use). NOTE: The term ISI is retained here for compatibility with DVB-S2 [i.3], but has the same meaning as the term PLP_ID which is used throughout the present document. The use of the remaining fields of the BBHeader is described in table 2. Table 2: Description of the fields of the BBHeader Field Size (Bytes) Description MATYPE As described above. 2 UPL User Packet Length in bits, in the range [0,65535]. 2 DFL Data Field Length in bits, in the range [0,58112]. 2 SYNC A copy of the User Packet SYNC byte. In the case of GCS, SYNC=0x00-0xB8 is 1 reserved for transport layer protocol signalling and shall be set according to [1], SYNC=0xB9-0xFF user private. SYNCD The distance in bits from the beginning of the DATA FIELD to the beginning of the first 2 transmitted UP which starts in the data field. SYNCD=0D means that the first UP is aligned to the beginning of the Data Field. SYNCD = 65535D means that no UP starts in the DATA FIELD; for GCS, SYNCD is reserved for future use and shall be set to 0D unless otherwise defined. CRC-8 MODE The XOR of the CRC-8 (1-byte) field with the MODE field (1-byte). CRC-8 is the error 1 detection code applied to the first 9 bytes of the BBHeader (see annex E). MODE (8 bits) shall be: • 0D Normal Mode. • 1D High Efficiency Mode. • Other values: reserved for future use. DVB BlueBook A138 24 5.1.7 Mode adaptation sub-system output stream formats This clause describes the mode adaptation processing and fragmentation for the various modes and input stream formats, as well as illustrating the output stream format. Normal Mode, GFPS and TS See clause 5.1.6 for BBHeader signalling. For Transport Stream, O-UPL=188x8 bits, and the first byte shall be a SYNC byte (47HEX). UPL (the transmitted User Packet Length) shall initially be set equal to O-UPL. The mode adaptation unit shall perform the following sequence of operations (see figure 5): • Optional input stream synchronization (see clause 5.1.3); UPL increased by 16D or 24D bits according to ISSY field length; ISSY field appended after each UP. For TS, either the short or long format of ISSY may be used; for GFPS, only the short format may be used. • If a SYNC byte is the first byte of the UP, it shall be removed, and stored in the SYNC field of the BBHeader, and UPL shall be decreased by 8D. Otherwise SYNC in the BBHeader shall be set to 0 and UPL shall remain unmodified. • For TS only, optional Null Packet Deletion (see clause 5.1.4); DNP computation and storage after the next transmitted UP; UPL increased by 8D. • CRC-8 computation at UP level (see clause 5.1.5); CRC-8 storage after the UP; UPL increased by 8D. • SYNCD computation (pointing at the first bit of the first transmitted UP which starts in the Data Field) and storage in BBHeader. The bits of the transmitted UP start with the CRC-8 of the previous UP, if used, followed by the original UP itself, and finish with the ISSY and DNP fields, if used. Hence SYNCD points to the first bit of the CRC-8 of the previous UP. • For GFPS: UPL storage in BBHeader. NOTE 1: O-UPL in the modulator may be derived by static setting (GFPS only) or un-specified automatic signalling. NOTE 2: Normal Mode is compatible with DVB-S2 BBFrame Mode Adaptation [i.3]. SYNCD=0 means that the UP is aligned to the start of the Data Field and when present, the CRC-8 (belonging to the last UP of the previous BBFrame) will be replaced in the receiver by the SYNC byte or discarded. Time UPL TS Packetised Stream only C I D C I D C I D C I D C I D R C Original S S N P R C Original S S N P R C Original S N R C Original S N R C Original S N S P S P S P 8 UP Y 8 UP Y 8 UP Y 8 UP Y 8 UP Y SYNCD Optional 80 bits DFL BBHEADER DATA FIELD HEADER MATYPE UPL DFL SYNC SYNCD CRC-8 (2 bytes) (2 bytes) (2 bytes) (1 byte) (2 bytes) MODE(1 byte) Figure 5: Stream format at the output of the Mode Adapter, Normal Mode, GFPS and TS DVB BlueBook A138 25 High Efficiency Mode, Transport Streams For Transport Streams, the receiver knows a-priori the SYNC byte configuration and O-UPL=188x8 bits, therefore UPL and SYNC fields in the BBHeader shall be re-used to transmit the ISSY field. The Mode Adaptation unit shall perform the following sequence of operations (see figure 6): • Optional input stream synchronization (see clause 5.1.3) relevant to the first complete transmitted UP of the data field; ISSY field inserted in the UPL and SYNC fields of the BBHeader. • Sync-byte removed, but not stored in the SYNC field of the BBHeader. • Optional Null Packet Deletion (see clause 5.1.4); DNP computation and storage after the next transmitted UP. • CRC-8 at UP level shall not be computed nor inserted. • SYNCD computation (pointing at the first bit of the first transmitted UP which starts in the Data Field) and storage in BBHeader. The bits of the transmitted UP start with the original UP itself after removal of the SYNC byte, and finish with the DNP field, if used. Hence SYNCD points to the first bit of the original UP following the SYNC byte. • UPL not computed nor transmitted in the BBHeader. Time Transport Stream D D D D D N P Original N P Original N P Original N P Original N P Original UP UP UP UP UP SYNCD Optional 80 bits DFL BBHEADER DATA FIE LD HEADER MATYPE ISSY DFL ISSY SYNCD CRC-8 (2 bytes) (2 MSB) (2 bytes) (1 LSB) ( 2 bytes) MODE (1 byte) Opt ional Figure 6: Stream format at the output of the Mode Adapter, High Efficiency Mode for TS, (no CRC-8 computed for UPs, optional single ISSY inserted in the BBHeader, UPL not transmitted) Normal Mode, GCS and GSE See clause 5.1.6 for BBHeader signalling. For GCS the input stream shall have no structure, or the structure shall not be known by the modulator. For GSE the first GSE packet shall always be aligned to the data field (no GSE fragmentation allowed). For both GCS and GSE the Mode Adaptation unit shall perform the following sequence of operations (see figure 6): • Set UPL=0D; set SYNC=0x00-0xB8 is reserved for transport layer protocol signalling and should be set according to Reference [1], SYNC=0xB9-0xFF user private; SYNCD is reserved for future use and shall be set to 0D when not otherwise defined. • Null Packed Deletion (see clause 5.1.4) and CRC-8 computation for Data Field (see clause 5.1.5) shall not be performed. DVB BlueBook A138 26 Time Generic Continuous Stream 80 bits DFL BBHEADER DATA FIELD HEADER MATYPE UPL DFL SYNC SYNCD CRC-8 (2 bytes) (2 bytes) (2 bytes) (1 byte) (2 bytes) MODE(1 byte) Figure 7: Stream format at the output of the Mode Adapter, Normal Mode (GSE & GCS) High Efficiency Mode, GSE GSE variable length or constant length UPs may be transmitted in HEM. If GSE packet fragmentation is used, SYNCD shall be computed. If the GSE packets are not fragmented, the first packet shall be aligned to the Data Field and thus SYNCD shall always be set to 0D. The receiver may derive the length of the UPs from [i.2], therefore UPL transmission in BBHeader is not performed. As per TS, the optional ISSY field is transmitted in the BBHeader. The Mode Adaptation unit shall perform the following sequence of operations (see figure 7): • Optional input stream synchronization (see clause 5.1.3) relevant to the first transmitted UP which starts in the data field; ISSY field inserted in the UPL and SYNC fields of the BBHeader. • Null Packet Deletion and CRC-8 at UP level shall not be computed nor inserted. • SYNCD computation (pointing at the first bit of the first transmitted UP which starts in the Data Field) and storage in BBHeader. The transmitted UP corresponds exactly to the original UP itself. Hence SYNCD points to the first bit of the original UP. • UPL not computed nor transmitted. UPL (in GSE Headers) Time GSE UP UP UP UP UP SYNCD User Packet 80 bits DFL BBHEADER DATA FIELD HEADER MATYPE ISSY DFL ISSY SYNCD CRC-8 (2 bytes) (2 MSB) (2 bytes) (1 LSB) (2 bytes) MODE (1 byte) Optional Figure 8: Stream format at the output of the Mode Adapter, High Efficiency Mode for GSE, (no CRC-8 computed for UPs, optional single ISSY inserted in the BBHeader, UPL not transmitted) DVB BlueBook A138 27 High Efficiency Mode, GFPS and GCS These modes are not defined (except for the case of TS, as described above). 5.2 Stream adaptation Stream adaptation (see figures 2(a) to 2(c)) provides: a) scheduling (see clause 5.2.1); b) padding (see clause 5.2.2) to complete a constant length (Kbch bits) BBFrame; c) scrambling (see clause 5.2.3) for energy dispersal. The input stream to the stream adaptation module shall be a BBHeader followed by a DATA FIELD. The output stream shall be a BBFrame, as shown in figure 9. 80 bits DFL Kbch-DFL-80 BBHEADER DATA FIELD PADDING HEADER BBFRAME (Kbch bits) Figure 9: BBFrame format at the output of the stream adapter 5.2.1 Scheduler In order to generate the required L1-part2 signalling information, the scheduler shall decide together with the Data Slice builder which Data Slices of the final C2 System will carry data belonging to which PLPs, as shown in figures 2(a) to 2(c). Although this operation has no effect on the data stream itself at this stage, the scheduler shall already define the composition of the Data Slice and C2 Frame structure, as described in clause 7. 5.2.2 Padding Kbch depends on the FEC rate, as reported in tables 3(a) and 3(b). Padding may be applied in circumstances when the user data available for transmission is not sufficient to completely fill a BBFrame, or when an integer number of UPs has to be allocated in a BBFrame. (Kbch-DFL-80) zero bits shall be appended after the DATA FIELD. The resulting BBFrame shall have a constant length of Kbch bits. 5.2.3 BB scrambling The complete BBFrame shall be randomized. The randomization sequence shall be synchronous with the BBFrame, starting from the MSB and ending after Kbch bits. The scrambling sequence shall be generated by the feed-back shift register of figure 10. The polynomial for the Pseudo Random Binary Sequence (PRBS) generator shall be: 1 + X14 + X15 DVB BlueBook A138 28 Loading of the sequence (100101010000000) into the PRBS register, as indicated in figure 10, shall be initiated at the start of every BBFrame. Initialization sequence 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 0 0 0 0 1 1 .... EXOR clear BBFrame input Randomised BBFrame output Figure 10: Possible implementation of the PRBS encoder 6 Bit-interleaved coding and modulation 6.1 FEC encoding This sub-system shall perform outer coding (BCH), inner coding (LDPC) and bit interleaving. The input stream shall be composed of BBFrames and the output stream of FECFrames. Each BBFrames (Kbch bits) shall be processed by the FEC coding sub-system, to generate a FECFrame (Nldpc bits). The parity check bits (BCHFEC) of the systematic BCH outer code shall be appended after the BBFrame, and the parity check bits (LDPCFEC) of the inner LDPC encoder shall be appended after the BCHFEC field, as shown in figure 11. Nbch= K ldpc Kbch N bch-Kbch Nldpc -Kldpc BBFrame BCHFEC LDPCFEC (Nldpc bits) Figure 11: format of data before bit interleaving (Nldpc = 64 800 bits for normal FECFrame, Nldpc = 16 200 bits for short FECFrame) Table 3(a) defines the FEC coding parameters for the normal FECFrame (Nldpc = 64 800 bits) and table 3(b) for the short FECFrame (Nldpc = 16 200 bits). DVB BlueBook A138 29 Table 3(a): coding parameters (for normal FECFrame Nldpc = 64 800) LDPC BCH Uncoded BCH coded block Nbch BCH Nbch-Kbch LDPC Coded Block Code Block Kbch LDPC Uncoded Block t-error correction Nldpc Kldpc 2/3 43 040 43 200 10 160 64 800 3/4 48 408 48 600 12 192 64 800 4/5 51 648 51 840 12 192 64 800 5/6 53 840 54 000 10 160 64 800 9/10 58 192 58 320 8 128 64 800 Table 3(b): coding parameters (for short FECFrame Nldpc = 16 200) LDPC BCH Uncoded BCH coded block Nbch BCH Nbch-Kbch Effective LDPC Coded Code Block Kbch LDPC Uncoded Block t-error LDPC Rate Block Identifier Kldpc correction Kldpc/16 200 Nldpc 1/2 7 032 7 200 12 168 4/9 16 200 (see note) 2/3 10 632 10 800 12 168 2/3 16 200 3/4 11 712 11 880 12 168 11/15 16 200 4/5 12 432 12 600 12 168 7/9 16 200 5/6 13 152 13 320 12 168 37/45 16 200 8/9 14 232 14 400 12 168 8/9 16 200 NOTE: This code rate is only used for protection of L1 pre-signalling and not for data. NOTE: For Nldpc = 64 800 and for Nldpc =16 200 the LDPC code rate is given by Kldpc / Nldpc. In table 3(a) the LDPC code rates for Nldpc = 64 800 are given by the values in the 'LDPC Code' column. In table 3(b) the LDPC code rates for Nldpc = 16 200 are given by the values in the 'Effective LDPC rate' column, i.e. for Nldpc = 16 200 the 'LDPC Code identifier' is not equivalent to the LDPC code rate. 6.1.1 Outer encoding (BCH) A t-error correcting BCH (Nbch, Kbch) code shall be applied to each BBFrame to generate an error protected packet. The BCH code parameters for Nldpc = 64 800 are given in table 3(a) and for Nldpc = 16 200 in table 3(b). The generator polynomial of the t error correcting BCH encoder is obtained by multiplying the first t polynomials in table 4(a) for Nldpc = 64 800 and in table 4(b) for Nldpc = 16 200. Table 4(a): BCH polynomials (for normal FECFrame Nldpc = 64 800) g1(x) 1+x2+x3+x5+x16 g2(x) 1+x+x4+x5+x6+x8+x16 g3(x) 1+x2+x3+x4+x5+x7+x8+x9+x10+x11+x16 g4(x) 1+x2+x4+x6+x9+x11+x12+x14+x16 g5(x) 1+x+x2+x3+x5+x8+x9+x10+x11+x12+x16 g6(x) 1+x2+x4+x5+x7+x8+x9+x10+x12+x13+x14+x15+x16 g7(x) 1+x2+x5+x6+x8+x9+x10+x11+x13+x15+x16 g8(x) 1+x+x2+x5+x6+x8+x9+x12+x13+x14+x16 g9(x) 1+x5+x7+x9+x10+x11+x16 g10(x) 1+x+x2+x5+x7+x8+x10+x12+x13+x14+x16 g11(x) 1+x2+x3+x5+x9+x11+x12+x13+x16 g12(x) 1+x+x5+x6+x7+x9+x11+x12+x16 DVB BlueBook A138 30 Table 4(b): BCH polynomials (for short FECFrame Nldpc = 16 200) g1(x) 1+x+x3+x5+x14 g2(x) 1+x6+x8+x11+x14 g3(x) 1+x+x2+x6+x9+x10+x14 g4(x) 1+x4+x7+x8+x10+x12+x14 g5(x) 1+x2+x4+x6+x8+x9+x11+x13+x14 g6(x) 1+x3+x7+x8+x9+x13+x14 g7(x) 1+x2+x5+x6+x7+x10+x11+x13+x14 g8(x) 1+x5+x8+x9+x10+x11+x14 g9(x) 1+x+x2+x3+x9+x10+x14 g10(x) 1+x3+x6+x9+x11+x12+x14 g11(x) 1+x4+x11+x12+x14 g12(x) 1+x+x2+x3+x5+x6+x7+x8+x10+x13+x14 BCH encoding of information bits M = (mKbc h !1 , mKbc h !2 ,..., m1 , m0 ) onto a codeword is achieved as follows: • Multiply the message polynomial m(x) = mKbch !1 x kbch !1 + mKbch !2 x kbch !2 + ... + m1 x + m0 by x Nbc h ! Kbc h . • Divide x Nbc h ! Kbc h m(x) by g(x), the generator polynomial. Let d ( x) = d Nbch !Kbch !1 x Nbch !Kbch !1 + ... + d1 x + d 0 be the remainder. • Construct the output codeword I, which forms the information word I for the LDPC coding, as follows: I = (i0 , i1 ,..., i Nbc h !1 ) = (mKbc h !1 , mKbc h !2 ,..., m1 , m0 , d Nbc h ! Kbc h !1 , d Nbc h ! Kbc h !2 ,..., d1 , d 0 ) NOTE: The equivalent codeword polynomial is c( x) = x Nbch !Kbch m( x) + d ( x) . 6.1.2 Inner encoding (LDPC) The LDPC encoder treats the output of the outer encoding, I = (i0 , i1 ,..., iK ) , as an information block of size ldpc !1 K ldpc = N BCH , and systematically encodes it onto a codeword ! of size N ldpc , where: $= (" , " , " ,..., " 0 1 2 N LDPC ) = (i , i ,..., i 0 1 Kldpc !1 , p0 , p1 ,... pNldpc !Kldpc !1 ) . The LDPC code parameters ( N ldpc , K ldpc ) are given in tables 3(a) and 3(b). 6.1.2.1 Inner coding for normal FECFrame The task of the encoder is to determine N ldpc ! K ldpc parity bits ( p0 , p1,..., pnldpc ! k ldpc !1 ) for every block of k ldpc information bits, (i0 , i1 ,..., iKldpc !1 ) . The procedure is as follows: • Initialize p0 = p1 = p2 = ... = pNldpc !Kldpc !1 = 0 • Accumulate the first information bit, i0 , at parity bit addresses specified in the first row of tables A.1 through A.5 in annex A. For example, for rate 2/3 (A.1), (all additions are in GF(2)): p317 = p317 ! i0 p6700 = p6700 ! i0 p2255 = p2255 ! i0 p9101 = p9101 ! i0 DVB BlueBook A138 31 p2324 = p2324 ! i0 p10057 = p10057 ! i0 p2723 = p2723 ! i0 p12739 = p12739 ! i0 p3538 = p3538 ! i0 p17407 = p17407 ! i0 p3576 = p3576 ! i0 p21039 = p21039 ! i0 p6194 = p6194 ! i0 • For the next 359 information bits, im , m = 1, 2, ..., 359 accumulate im at parity bit addresses {x + m mod 360 " Qldpc } mod( N ldpc ! K ldpc ) where x denotes the address of the parity bit accumulator corresponding to the first bit i0 , and Qldpc is a code rate dependent constant specified in table 5(a). Continuing with the example, Qldpc = 60 for rate 2/3. So for example for information bit i1 , the following operations are performed: p377 = p377 ! i1 p6760 = p6760 ! i1 p2315 = p2315 ! i1 p9161 = p9161 ! i1 p2384 = p2384 ! i1 p10117 = p10117 ! i1 p2783 = p2783 ! i1 p12799 = p12799 ! i1 p3598 = p3598 ! i1 p17467 = p17467 ! i1 p3636 = p3636 ! i1 p21099 = p21099 ! i1 p6254 = p6254 ! i1 • For the 361st information bit i360 , the addresses of the parity bit accumulators are given in the second row of the tables A.1 through A.5. In a similar manner the addresses of the parity bit accumulators for the following 359 information bits im , m = 361, 362, ..., 719 are obtained using the formula {x + (m mod 360 ) " Qldpc } mod( N ldpc ! K ldpc ) where x denotes the address of the parity bit accumulator corresponding to the information bit i360 , i.e. the entries in the second row of tables A.1 through A.5. • In a similar manner, for every group of 360 new information bits, a new row from tables A.1 through A.5 are used to find the addresses of the parity bit accumulators. After all of the information bits are exhausted, the final parity bits are obtained as follows: • Sequentially perform the following operations starting with i = 1. pi = pi " pi !1 , i = 1,2,..., N ldpc ! K ldpc ! 1 • Final content of pi , i = 0,1,.., N ldpc ! K ldpc ! 1 is equal to the parity bit pi . DVB BlueBook A138 32 Table 5(a): Qldpc values for normal frames Code Rate Qldpc 2/3 60 3/4 45 4/5 36 5/6 30 9/10 18 6.1.2.2 Inner coding for short FECFrame K ldpc BCH encoded bits shall be systematically encoded to generate N ldpc bits as described in clause 6.1.2.1, replacing table 5(a) with table 5(b) and the tables of annex A with the tables of annex B. Table 5(b): Qldpc values for short frames Code Rate Qldpc 1/2 25 2/3 15 3/4 12 4/5 10 5/6 8 8/9 5 6.1.3 Bit Interleaver The output ! of the LDPC encoder shall be bit interleaved, which consists of parity interleaving followed by column- twist interleaving. The parity interleaver output is denoted by U and the column-twist interleaver output by V. In the parity interleaving part, parity bits are interleaved by: ui = "i for 0 ! i < Kldpc (information bits are not interleaved) u Kldpc +360t + s = # Kldpc +Qldpc "s +t for 0 ! s < 360, 0 ! t < Qldpc ; where Qldpc is defined in tables 5(a) and 5(b). The configuration of the column-twist interleaving for each modulation format is specified in table 6. Table 6: Bit Interleaver structure Rows Nr Columns Modulation Nc Nldpc = 64 800 Nldpc = 16 200 16QAM 8 100 2 025 8 64QAM 5 400 1 350 12 4 050 - 16 256QAM - 2 025 8 1024QAM 3 240 810 20 5 400 - 12 4096QAM - 675 24 DVB BlueBook A138 33 In the column-twist interleaving part, the data bits ui from the parity interleaver are serially written into the column- twist interleaver column-wise, and serially read out row-wise (the MSB of BBHeader is read out first) as shown in figure 12, where the write start position of each column is twisted by tc according to table 7. This interleaver is described by the following: • The input bit ui with index i, for 0 % i < Nldpc, is written to column ci, row ri of the interleaver, where: ci = i div N r ri = i + tci mod N r • The output bit vj with index j, for 0 % j < nldpc, is read from row rj, column cj, where r j = j div N c c j = j mod N c • So for 64QAM and NLDPC = 64 800, the output bit order of column twist interleaving would be: (v0 , v1, v2 ,...v64799 ) = (u0 , u5400 , u16198 ,..., u53992 , u59231, u64790 ). A longer list of the indices on the right hand side, illustrating all 12 columns, is: 0, 5 400, 16 198, 21 598, 26 997, 32 396, 37 796, 43 195, 48 595, 53 993, 59 392, 64 791, …… 5 399, 10 799, 16 197, 21 597, 26 996, 32 395, 37 795, 43 194, 48 594, 53 992, 59 391, 64 790. MSB WRITE READ of BBHeader Row 1 Write start position is twisted by tc Row 8100 Column 1 Column 8 LSB of FECFRAME Figure 12: Bit interleaving scheme for normal FECFrame length and 16QAM DVB BlueBook A138 34 Table 7(a): Column twisting parameter tc (column 0 to 11) Columns Twisting parameter tc Modula Nldpc tion Nc Col. 1 2 3 4 5 6 7 8 9 10 11 0 16 64 800 0 0 2 4 4 5 7 7 - - - - 8 QAM 16 200 0 0 0 1 7 20 20 21 - - - - 64 64 800 0 0 2 2 3 4 4 5 5 7 8 9 12 QAM 16 200 0 0 0 2 2 2 3 3 3 6 7 7 256 16 64 800 0 2 2 2 2 3 7 15 16 20 22 22 QAM 8 16 200 0 0 0 1 7 20 20 21 - - - - 1024 64 800 0 1 3 4 5 6 6 9 13 14 14 16 20 QAM 16 200 0 0 0 2 2 2 2 2 5 5 5 5 4096 12 64 800 0 0 2 2 3 4 4 5 5 7 8 9 QAM 24 16 200 0 0 0 0 0 0 0 1 1 1 2 2 Table 7(b): Column twisting parameter tc (column 12 to 23) Columns Twisting parameter tc Modula Nldpc tion Nc Col. 13 14 15 16 17 18 19 20 21 22 23 12 16 64 800 - - - - 8 QAM 16 200 - - - - 64 64 800 - - - - 12 QAM 16 200 - - - - 256 16 64 800 27 27 28 32 QAM 8 16 200 - - - - 1024 64 800 21 21 23 25 25 26 28 30 20 QAM 16 200 5 7 7 7 7 8 8 10 4096 12 64 800 QAM 24 16 200 2 3 7 9 9 9 10 10 10 10 10 11 6.2 Mapping bits onto constellations Each FECFrame (which is a sequence of 64 800 bits for normal FECFrame, or 16 200 bits for short FECFrame), shall be mapped to a coded and modulated FEC block by first demultiplexing the input bits into parallel cell words and then mapping these cell words into constellation values. The number of output Data Cells and the effective number of bits per cell #MOD is defined by table 8. Demultiplexing is performed according to clause 6.2.1 and constellation mapping is performed according to clause 6.2.2. Table 8: Parameters for bit-mapping into constellations LDPC block length Number of output (Nldpc) Modulation mode # MOD Data Cells 4096QAM 12 5 400 1024QAM 10 6 480 256QAM 8 8 100 64 800 64QAM 6 10 800 16QAM 4 16 200 4096QAM 12 1 350 1024QAM 10 1 620 256QAM 8 2 025 16 200 64QAM 6 2 700 16QAM 4 4 050 QPSK 2 8 100 DVB BlueBook A138 35 6.2.1 Bit to cell word demultiplexer The bit-stream vi from the bit interleaver is demultiplexed into Nsubstreams sub-streams, as shown in figure 13. The value of Nsubstreams is defined in table 9. Table 9: Number of sub-streams in demultiplexer Number of sub-streams, Modulation Nldpc Nsubstreams QPSK Any 2 16QAM Any 8 64QAM Any 12 64 800 16 256QAM 16 200 8 1024QAM Any 20 64 800 12 4096QAM 16 200 24 The demultiplexing is defined as a mapping of the bit-interleaved input bits, vdi onto the output bits be,do, where: • do = di div Nsubstreams; • e is the demultiplexed bit sub stream number (0 # e < Nsubstreams), which depends on di as defined in table 10; • vdi is the input to the demultiplexer; • di is the input bit number; • be,do is the output from the demultiplexer; • do is the bit number of a given stream at the output of the demultiplexer. b0,0, b0,1, b0,2, ... b1,0, b1,1, b1,2, ... v0, v1, v2, ... Demux bNsubstreams-1,0, bNsubstreams-1,1,... Input Outputs Figure 13: Demultiplexing of bits into sub-streams DVB BlueBook A138 36 Table 10(a): Parameters for demultiplexing of bits to sub-streams for codes rates 1/2, 3/4, 4/5, 5/6, 9/10(8/9) Modulation format QPSK 0 1 0 1 Modulation format 16QAM Input bit-number, di mod Nsubstreams 0 1 2 3 4 5 6 7 Output bit-number, 7 1 4 2 5 3 6 0 e Modulation format 64QAM Input bit-number, di mod Nsubstreams 0 1 2 3 4 5 6 7 8 9 10 11 Output bit-number, 11 7 3 10 6 2 9 5 1 8 4 0 e Modulation format 256QAM (Nldpc = 64 800) Input bit-number, di mod Nsubstreams 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Output bit-number, 15 1 13 3 8 11 9 5 10 6 4 7 12 2 14 0 e Modulation format 256QAM (Nldpc = 16 200) Input bit-number, di mod Nsubstreams 0 1 2 3 4 5 6 7 Output bit-number, 7 3 1 5 2 6 4 0 e Modulation format 1024QAM (Nldpc = 64 800) Input bit-number, di mod Nsubstreams 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Output bit-number, 8 16 7 19 4 15 3 12 0 11 10 9 13 2 14 5 17 6 18 1 e Modulation format 1024QAM (Nldpc = 16 200) Input bit-number, di mod Nsubstreams 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Output bit-number, 8 3 7 10 19 4 9 5 17 6 14 11 2 18 16 15 0 1 13 12 e Modulation format 4096QAM (Nldpc = 64 800) Input bit-number, di mod Nsubstreams 0 1 2 3 4 5 6 7 8 9 10 11 Output bit-number, 8 0 6 1 4 5 2 3 7 10 11 9 e Modulation format 4096QAM (Nldpc = 16 200), part 1 Input bit-number, 0 1 2 3 4 5 6 7 8 9 10 11 di mod Nsubstreams Output bit-number, 10 15 4 19 21 16 23 18 11 14 22 5 e Modulation format 4096QAM (Nldpc = 16 200), part 2 Input bit-number, di mod Nsubstreams 12 13 14 15 16 17 18 19 20 21 22 23 Output bit-number, 6 17 13 20 1 3 9 2 7 8 12 0 e DVB BlueBook A138 37 Table 10(b): Parameters for demultiplexing of bits to sub-streams for code rate 2/3 only Modulation format QPSK 0 1 0 1 Modulation format 16QAM Input bit-number, di mod N 0 1 2 3 4 5 6 7 substreams Output bit-number, 7 1 4 2 5 3 6 0 e Modulation format 64QAM Input bit-number, di mod Nsubstreams 0 1 2 3 4 5 6 7 8 9 10 11 Output bit-number, 11 7 3 10 6 2 9 5 1 8 4 0 e Modulation format 256QAM (Nldpc = 64 800) Input bit-number, di mod Nsubstreams 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Output bit-number, 7 2 9 0 4 6 13 3 14 10 15 5 8 12 11 1 e Modulation format 256QAM (Nldpc = 16 200) Input bit-number, di mod Nsubstreams 0 1 2 3 4 5 6 7 Output bit-number, 7 3 1 5 2 6 4 0 e Modulation format 1024QAM (Nldpc = 64 800) Input bit-number, di mod Nsubstreams 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Output bit-number, 8 16 7 19 4 15 3 12 0 11 10 9 13 2 14 5 17 6 18 1 e Modulation format 1024QAM (Nldpc = 16 200) Input bit-number, di mod Nsubstreams 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Output bit-number, 8 3 7 10 19 4 9 5 17 6 14 11 2 18 16 15 0 1 13 12 e Modulation format 4096QAM (Nldpc = 64 800) Input bit-number, di mod Nsubstreams 0 1 2 3 4 5 6 7 8 9 10 11 Output bit-number, 8 0 6 1 4 5 2 3 7 10 11 9 e Modulation format 4096QAM (Nldpc = 16 200), part 1 Input bit-number, 0 1 2 3 4 5 6 7 8 9 10 11 di mod Nsubstreams Output bit-number, 10 15 4 19 21 16 23 18 11 14 22 5 e Modulation format 4096QAM (Nldpc = 16 200), part 2 Input bit-number, di mod Nsubstreams 12 13 14 15 16 17 18 19 20 21 22 23 Output bit-number, 6 17 13 20 1 3 9 2 7 8 12 0 e Except for 256QAM with Nldpc=16 200 and 4096QAM with Nldpc=64 800, the words of width Nsubstreams are split into two cell words of width #MOD= =Nsubstreams /2 at the output of the demultiplexer. The first #mod =Nsubstreams/2 bits [b0,do..bNsubstreams/2-1,do] form the first of a pair of output cell words [y0,2do.. y #MOD-1, 2do] and the remaining output bits [bNsubstreams/2, do..bNsubstreams-1,do] form the second output cell word [y0, 2do+1..y#MOD-1,2do+1] fed to the constellation mapper. DVB BlueBook A138 38 In the case of 256QAM with Nldpc=16 200 and 4096QAM with Nldpc= 64 800, the words of width 8 from the demultiplexer form the output cell words and are fed directly to the constellation mapper, so: [y0,do..y#mod-1,do] = [b0,do..bNsubstreams-1,do] The application of the parameters in tables 10(a) and 10(b), for the demultiplexing of the bit-stream vi from the bit interleaver, is subordinated to the validity of a specific modulation and code rate combination, since DVB-C2 only supports a list of selected ModCod configurations, as shown in tables 11(a) and 11(b) (X indicates a valid configuration). Table 11(a): ModCods for Nldpc = 64 800 Modulation format Code rate QPSK 16QAM 64QAM 256QAM 1024QAM 4096QAM 2/3 NA NA X NA NA NA 3/4 NA NA NA X X NA 4/5 NA X X NA NA NA 5/6 NA NA NA X X X 9/10 NA X X X X X Table 11(b): ModCods for Nldpc = 16 200 Modulation format Code rate QPSK 16QAM 64QAM 256QAM 1024QAM 4096QAM 1/2 N/A X NA NA NA NA 2/3 N/A NA X NA NA NA 3/4 N/A NA NA X X NA 4/5 N/A X X NA NA NA 5/6 N/A NA NA X X X 8/9 N/A X X X X X 6.2.2 Cell word mapping into I/Q constellations Each cell word (y0,q..y#mod-1,q) from the demultiplexer in clause 6.2.1 shall be modulated using either QPSK, 16QAM, 64QAM, 256QAM, 1024QAM, 4096QAM constellations to give a constellation point zq prior to normalization. The exact values of the real and imaginary components Re(zq) and Im(zq) for each combination of the relevant input bits ye,q are given in tables 12(a-m) for the various constellations: Table 12(a): Constellation mapping for BPSK y0,q 1 0 Re(zq) -1 1 Im(zq) 0 0 Table 12(b): Constellation mapping for real part of QPSK y0,q 1 0 Re(zq) -1 1 Table 12(c): Constellation mapping for imaginary part of QPSK y1,q 1 0 Im(zq) -1 1 DVB BlueBook A138 39 Table 12(d): Constellation mapping for real part of 16QAM y0,q 1 1 0 0 y2,q 0 1 1 0 Re(zq) -3 -1 1 3 Table 12(e): Constellation mapping for imaginary part of 16QAM y1,q 1 1 0 0 y3,q 0 1 1 0 Im(zq) -3 -1 1 3 Table 12(f): Constellation mapping for real part of 64QAM y0,q 1 1 1 1 0 0 0 0 y2,q 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 y4,q Re(zq) -7 -5 -3 -1 1 3 5 7 Table 12(g): Constellation mapping for imaginary part of 64QAM y1,q 1 1 1 1 0 0 0 0 y3,q 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 y5,q Im(zq) -7 -5 -3 -1 1 3 5 7 Table 12(h): Constellation mapping for real part of 256QAM Y0,q 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 y2,q 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 y4,q 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 y6,q Re(zq) -15 -13 -11 -9 -7 -5 -3 -1 1 3 5 7 9 11 13 15 Table 12(i): Constellation mapping for imaginary part of 256QAM Y1,q 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 y3,q 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 y5,q 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 y7,q Im(zq) -15 -13 -11 -9 -7 -5 -3 -1 1 3 5 7 9 11 13 15 DVB BlueBook A138 40 Table 12(j): Constellation mapping for real part of 1024QAM Y0,q 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 y2,q 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 y4,q 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 y6,q 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 y8,q Re(zq) -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11 -9 -7 -5 -3 -1 Y0,q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y2,q 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 y4,q 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 y6,q 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 y8,q Re(zq) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 Table 12(k): Constellation mapping for imaginary part of 1024QAM y1,q 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 y3,q 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 y5,q 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 y7,q 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 y9,q Im(zq) -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11 -9 -7 -5 -3 -1 y1,q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y3,q 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 y5,q 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 y7,q 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 y9,q Im(zq) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 DVB BlueBook A138 41 Table 12(l): Constellation mapping for real part of 4096QAM Y0,q 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 y2,q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 y4,q 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 y6,q 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 y8,q 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 y10,q Re(zq) -63 -61 -59 -57 -55 -53 -51 -49 -47 -45 -43 -41 -39 -37 -35 -33 Y0,q 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 y2,q 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 y4,q 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 y6,q 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 y8,q 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 y10,q Re(zq) -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11 -9 -7 -5 -3 -1 Y0,q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y2,q 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 y4,q 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 y6,q 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 y8,q 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 y10,q Re(zq) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 Y0,q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y2,q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 y4,q 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 y6,q 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 y8,q 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 y10,q Re(zq) 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 DVB BlueBook A138 42 Table 12(m): Constellation mapping for imaginary part of 4096QAM y1,q 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 y3,q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 y5,q 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 y7,q 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 y9,q 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 y11,q Im(zq) -63 -61 -59 -57 -55 -53 -51 -49 -47 -45 -43 -41 -39 -37 -35 -33 y1,q 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 y3,q 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 y5,q 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 y7,q 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 y9,q 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 y11,q Im(zq) -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11 -9 -7 -5 -3 -1 y1,q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y3,q 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 y5,q 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 y7,q 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 y9,q 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 y11,q Im(zq) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 y1,q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y3,q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 y5,q 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 y7,q 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 y9,q 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 y11,q Im(zq) 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 The constellations, and the details of the Gray mapping applied to them, are illustrated in figures 14 and 15. DVB BlueBook A138 43 16QAM 64QAM Figure 14: The QPSK, 16QAM and 64QAM mappings and the corresponding bit patterns DVB BlueBook A138 44 Figure 15: The 256QAM mapping and the corresponding bit pattern Tables 12(j) and 12(k) provide the description of 1024QAM mapping and the corresponding bit pattern. Tables 12(l) and 12(m) provide the description of 4096QAM mapping and the corresponding bit pattern. The constellation points zq for each input cell word (y0,q..y#mod-1,q) are normalized according to table 13 to obtain the correct complex cell value fq to be used. DVB BlueBook A138 45 Table 13: Normalization factors for Data Cells Modulation Normalization zq QPSK fq = 2 zq 16QAM fq = 10 zq 64QAM fq = 42 zq 256QAM fq = 170 zq 1024QAM fq = 682 zq 4096QAM fq = 2730 7 Data Slice Packet Generation The complex cells of one or two FECFrame shall form a Data Slice Packet. The Data Slice Packets for Data Slice Type 1 only transmit the FECFrame data and rely on a pointer within the Level 1 Signalling Part 2 to detect their start. The Data Slice Packets for Data Slice Type 2 carry a FECFrame header that allows for synchronization to the Data Slice Packets without any additional information. The FECFrame header also signals the Modulation and Coding parameters and the PLP_ID, which may change every Data Slice Packet. 7.1 Data Slice Packets for Data Slice Type 1 The complex cells g of Data Slice Packets transmitted in Data Slices of type 1 (DSLICE_TYPE='0') shall be formed by the $ Nldpc /!MOD " = N DP complex cells of one LDPC codeword, i.e.: # # ! ! gq = fq q = 0,1,..., N DP ! 1 The signalling for Data Slices of type 1 is done within the DVB-C2 preamble, i.e. the Layer 1 – part 2. Additional signalling is not required, as only a single PLP with fixed modulation and coding parameters per DVB-C2 frame is allowed for Data Slices Type 1. 7.2 Data Slice Packets for Data Slice Type 2 Data Slice Packets for Data Slice Type 2 shall carry an additional FECFrame Header in front of one or two FECFrames, which signals the PLP_ID, the Coding and Modulation parameters of the following XFECFrame, and the number of XFECFrames following one header. The structure of these Data Slice Packets is given in figure 16. DVB BlueBook A138 46 Data Slice Packet for Data Slice Type 2 32 symbols (QPSK) XFECFrame: Optional second 16 symbols (16QAM) 900 ! 16200 QAM cells XFECFrame FECFrame XFECFrame – QAM modulated XFECFrame – QAM modulated Header LDPC packets LDPC packets QPSK/16-QAM modulation 32 bit Delay diversity on lower branch 32 bit RM(32,16) encoding 16 bit 0 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 (MSB) (LSB) PLP_ID PLP_MOD PLP_COD PLP_FEC_TYPE HEADER_COUNTER Figure 16: Data Slice Packet, consisting of FECFrame header and following XFECFrame packet 7.2.1 FECFrame header signalling data The 16 information bits of the FECFrame header are defined as follows, in which the MSB shall always be mapped first: PLP_ID: This 8-bit field uniquely identifies a PLP within a C2 system. PLP_FEC_TYPE: This field shall signal the size of the following FECFrame (0 = 16 200 bits, 1 = 64 800 bits). PLP_MOD: This 3 bit field signals the used QAM mappings according to table 14. Table 14: PLP_MOD values for the available QAM mappings Value QAM mapping 000 Reserved 001 16QAM 010 64QAM 011 256QAM 100 1024QAM 101 4096QAM 110 to 111 Reserved for future use PLP_COD: This field signals the LDPC code rate of the following FECFrame according to table 15. Please note that not all possible PLP_MOD and PLP_COD combinations are supported (see tables 11(a) and 11(b)). DVB BlueBook A138 47 Table 15: PLP_COD values for the different code rates Value Code rate 000 Reserved 001 2/3 010 3/4 011 4/5 100 5/6 8/9 (16K LDPC code) 101 9/10 (64K LDPC code) 110 to 111 Reserved for future use HEADER_COUNTER: This 1 bit field signals the number of FECFrames following this FECFrame header. '0' indicates that one FECFrame is following the FECFrame header. '1' indicates that 2 FECFrames are following the FECFrame header, while both FECFrames shall have the same PLP_ID, PLP_FEC_TYPE, PLP_MOD and PLP_COD. 7.2.2 Coding of the FECFrame header The encoding of the FECFrame header data shall ensure a robust synchronization and decoding of the L1 signalling part 1 data. Therefore, the encoding scheme as shown in the figures 17(a) and 17(b) is applied. Initially the 16 bits of the L1 signalling part 1 are FEC encoded by a Reed-Muller (32,16) encoder. Subsequently each bit of the 32 bit Reed-Muller codeword is split to form an upper and a lower branch. The lower branch applies a cyclic shift within each Reed-Muller codeword and scrambles the resulting data using a specific PN sequence. The data is then mapped on a QPSK constellation for the robust FECFrame header or on a 16QAM constellation for the high efficiency FECFrame header. 32 bit codeword yo,q RM bi RM(32,16) !i 32 16 signaling QPSK Encoder QPSK bits mapper symbols uiRM viRM 2 bit cyclic shift + y1,q wiRM 32 bit MPS sequence Figure 17(a): Robust FECFrame header 32 bit codeword yo,q, y1,q RM(32,16) !iRM 16 16 signaling 16QAM Encoder 16QAM bits mapper symbols RM viRM 2 bit cyclic ui shift + y2,q, y3,q wiRM 32 bit MPS sequence Figure 17(b): High efficiency FECFrame header DVB BlueBook A138 48 7.2.2.1 Error Coding The 16 information bits are FEC encoded by a Reed-Muller (32,16) code. The generator matrix for this Reed-Muller (32,16) code G is shown as follows: Table 16(a): Definition of the Reed-Muller encoder matrix &1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1# $ ! $0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1! $0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1! $ ! $0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1! $0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1! $ ! $0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1! $ ! $0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1! $0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1! G =$ ! $0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1! $0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1! $ ! $0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1! $0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1! $ ! $0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1! $ ! $0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1! $0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1! $ ! %0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1" The 32 Reed-Muller encoded data bits vector !RM = [!0 ,..., !31 ] is obtained by the matrix multiplication of the RM RM 16 bit long FECFrame signalling data vector b = [b0 ,...,b15 ] with the generator matrix, i.e. "RM = b ! G All operations are applied modulo 2. 7.2.2.2 Cyclic Delay As depicted in figures 17(a) and 17(b), the 32 Reed-Muller encoded data bits !iRM of the lower branch shall be cyclically delayed by two values within each Reed-Muller codeword. The output of the cyclic delay block shall be: u(RM2 ) mod 32 = !iRM i+ i = 0,1,..,31 7.2.2.3 Scrambling of the lower branch The data of the lower branch shall be scrambled with the scrambling sequence: w0 , w1RM ,..., w31 = 0,0,0,1,1, 1,0,1,1,0, 0,0,1,1,0, 1,0,0,1,1, 1,0,1,1,1, 1,1,1,0,0, 1,1 RM RM This 32 bit output sequence viRM is obtained by applying modulo 2 operation between the cyclically shifted data uiRM and the scrambling sequence wiRM : viRM = uiRM ! wiRM i = 0,1,..,31 DVB BlueBook A138 49 7.2.3 Mapping onto QAM constellations The 32 resulting bits of the upper and the 32 bits of the lower branch shall be mapped onto QAM constellations. Therefore, the same mapping means as described in clause 6.2.2 shall be used. There are 2 different FECFrame header architectures available. While the QPSK based FECFrame header is applied for cable channels with lower C/N, the 16QAM based FECFrame header provides a more efficient implementation (i.e. smaller header length) for cable channels with higher C/N values. 7.2.3.1 Robust FECFrame header The robust FECFrame header shall be modulated using QPSK as defined in clause 6.2.2 to obtain the 32 complex cell values f q . The 32 mapper input cell words shall be defined as: [y 0, i [ , y1,i ] = !iRM , viRM ] i = 0,1,...,31 This means that the bits of the upper branch are always mapped onto the real part and the bits of the lower branch are always mapped onto the imaginary part of the QAM cell. 7.2.3.2 High efficiency FECFrame header The high efficiency FECFrame header shall be modulated using 16QAM as defined in clause 6.2.2 to obtain the 16 complex cell values f q . The 16 mapper input cell words shall be defined as: [y 0,i [ , y1,i , y2,i , y3,i ] = !2i , !2i+1 , v2i , v2i+1 RM RM RM RM ] i = 0,1,...,15 This means that the bits of the upper branch are always modulated onto the MSB of the real and imaginary axis, while the bits of the lower branch are always modulated onto the LSB of the real and imaginary axis. 7.2.4 Mapping of the XFECFrame cells The 32 cells for the robust FECFrame Header or the 16 cells for the high efficiency FECFrame Header shall be mapped onto the first cells of the Data Slice Packet, i.e. g 0 = f 0 , etc. The FECFrame header is followed by the $N /% " complex cells of one complete LDPC codeword. If # ldpc MOD ! # ! HEADER_COUNT='1', one further FECFrame having the same PLP_ID, PLP_MOD and PLP_COD shall follow the first one. 7.2.5 Length of the Data Slice Packet for Data Slice Type 2 The length N DP of a Data Slice Packet for Data Slice Type 2 can be calculated by means of the FECFrame Header data only. The length for packets using the robust FECFrame header shall be: NDP = 32 + XFECFRAME_ LENGTH ! (1 + HEADER_ COUNTER) and NDP = 16 + XFECFRAME_ LENGTH ! (1 + HEADER_ COUNTER) for the high efficiency FECFrame header. The value XFECFRAME_LENGTH for the different values of PLP_MOD and PLP_FEC_TYPE are listed in table 16(b). DVB BlueBook A138 50 Table 16(b): Length of the FECFrame PLP_FEC_TYPE PLP_MOD XFECFRAME_LENGTH 0 000 NA 001 4 050 010 2 700 011 2 025 100 1 620 101 1 350 110 1 158 111 1 013 1 000 900 001 16 200 010 10 800 011 8 100 100 6 480 101 5 400 110 4 629 111 4 050 7.2.6 Stuffing Data Slice Packets Stuffing Data Slice Packets provide a mechanism to fill up Data Slices of Type 2 with Auxiliary Data. Stuffing packets shall use the PLP_MOD value '000'. Accordingly they have the minimum FECFrame length of 900QAM cells, while their total length shall be defined according to clause 7.2.4. The settings for the related stuffing FECFrame header are: PLP_ID: n/a (arbitrary value) PLP_FEC_TYPE: 1 (= 64 800 bits) PLP_MOD: 000 (= 900QAM cells length) PLP_COD: n/a (arbitrary value) HEADER_COUNTER: 0 Stuffing Data Slice Packets can be used in any Data Slice and any location in the C2 Frame. Both regular Data Slice Packets and stuffing Data Slice Packets overlap over different C2 Frames if their end does not coincide with the end of the C2 Frame. If the Data Slice is discontinued in the following C2 Frame the stuffing Data Slice Packet is only transmitted partially up to the end of the C2 Frame (i.e. not completed in the following C2 Frame). In the case where the remaining part is less than the number of cells in FECFrame header and the data is discontinued the next C2 frame, the remaining cells should be transmitted. The FECFrame headers of stuffing Data Slice Packets shall match with the L1 settings of the related Data Slice. The data content of the 900QAM stuffing Data Cells is arbitrary but shall meet the average QAM cell energy requirement. DVB BlueBook A138 51 8 Generation, coding and modulation of Layer 1 part 2 signalling 8.1 Overview Figure 18 illustrates the C2 Frame structure and the related preamble with embedded L1 signalling part 2. The number of Preamble Symbols depend on the amount of L1 signalling, i.e. the number of underlying Data Slices and PLPs and L1 TI mode. This clause concentrates on the structure and the syntax of the L1 signalling part 2 rather than the preamble coding and modulation (being described in more detail in clause 8.4). L1 signalling part 2 indicates OFDM parameters of the C2 channel as well as all relevant information for the Data Slices, PLPs and Notch bands. C2 Frame time Preamble Data Symbols Symbol(s) L1 signalling part 2 data CRC L1 block padding L1 padding Figure 18: The L1 part 2 signalling structure 8.2 Preamble Header A fixed length Preamble Header of 32 OFDM Cells shall be inserted in front of the L1 TI-block at each Preamble Symbol as shown in figure 19. All L1 part 2 headers in one C2 Frame shall be same. The Preamble header describes L1-part2 length and TI mode of L1 block. The 16 information bits of the Preamble header are FEC encoded by a Reed- Muller (32,16) code and encoded by QPSK same as the QPSK based FECFrame header in clause 7.2.2. DVB BlueBook A138 52 32 OFDM cells L1 Time interleaving block width Preamble 1 Preamble Header L1 Time interleaving block Preamble NL1_TI_DEPTH Preamble Header QPSK modulation 32 bits Delay diversity on lower branch 32 bits RM(32,16) encoding 16 bits L1_INFO_SIZE (14 bits) L1_TI_MODE (2 bits) Figure 19: Preamble header generation and signalling fields L1_INFO_SIZE: This 14-bit field indicates the half size of the L1-part2 including L1 signalling part 2 data and L1 block padding, if present, in bits as shown in figure 20. The value of K L1part2_ex_pad shall be calculated by adding 32 (the length of CRC) to L1_INFO_SIZE&2. L1 block padding L1 padding L1 signalling part 2 data CRC L1_INFO_SIZE x 2 Figure 20: The size indicated by the L1_INFO_SIZE field L1_TI_MODE: This 2-bit field indicates the mode of time interleaving for L1-part2 of current C2 Frame. The time interleaving mode is signalled according to table 17. See clause 8.5 for more information. Table 17: Signalling format for the L1_TI_MODE field Value Mode 00 No time interleaving 01 Best Fit 10 4 OFDM Symbols 11 8 OFDM Symbols DVB BlueBook A138 53 8.3 L1 signalling part 2 data Table 18 indicates the detailed use of fields for L1 signalling part 2 data. Table 18: The signalling fields of L1 signalling part 2 data Field Size (bits) NETWORK_ID 16 C2_SYSTEM_ID 16 START_FREQUENCY 24 C2_BANDWIDTH 16 GUARD_INTERVAL 2 C2_FRAME_LENGTH 10 L1_PART2_CHANGE_COUNTER 8 NUM_DSLICE 8 NUM_NOTCH 4 for i=0..NUM_DSLICE-1 { DSLICE_ID 8 DSLICE_TUNE_POS 14 or 13 DSLICE_OFFSET_LEFT 9 or 8 DSLICE_OFFSET_RIGHT 9 or 8 DSLICE_TI_DEPTH 2 DSLICE_TYPE 1 if DSLICE_TYPE=='1' { FEC_HEADER_TYPE 1 } DSLICE_CONST_CONF 1 DSLICE_LEFT_NOTCH 1 DSLICE_NUM_PLP 8 for i=0..DSLICE_NUM_PLP-1 { PLP_ID 8 PLP_BUNDLED 1 PLP_TYPE 2 PLP_PAYLOAD_TYPE 5 if PLP_TYPE=='00' or '01' { PLP_GROUP_ID 8 } if DSLICE_TYPE=='0' { PLP_START 14 PLP_FEC_TYPE 1 PLP_MOD 3 PLP_COD 3 } PSI/SI_REPROCESSING 1 if PSI/SI_REPROCESSING=='0' { transport_stream_id 16 original_network_id 16 } RESERVED_1 8 } RESERVED_2 8 } for i=0..NUM_NOTCH-1 { NOTCH_START 14 or 13 NOTCH_WIDTH 9 or 8 RESERVED_3 8 } RESERVED_TONE 1 RESERVED_4 16 NETWORK_ID: This is a 16-bit field which uniquely identifies the current DVB-C2 network. C2_SYSTEM_ID: This 16-bit field uniquely identifies a C2 System within the DVB-C2 network. DVB BlueBook A138 54 START_FREQUENCY: This 24-bit field indicates the start frequency of the current C2 System by means of the distance from 0 Hz and gives the unsigned integer value in multiples of the carrier spacing of the current C2 System. The value of '0' means 0 Hz. The START_FREQUENCY shall be identical to the OFDM subcarrier with the smallest absolute carrier index k=Kmin that actually transmits the DVB-C2 preamble for the given C2 system. Additionally, the START_FREQUENCY shall be multiples of the pilot spacing DX and the START_FREQUENCY shall not change between different C2 frames. C2_BANDWIDTH: This 16-bit field indicates the bandwidth of the current C2 system. The C2_BANDWIDTH field multiplied with the pilot spacing DX +1 represents the bandwidth of the C2 system in OFDM subcarriers. The value shall not change between different C2 frames. The bandwidth of the current C2 system is defined by the frequency spacing between the edge pilots next to the most left and the most right Data Slice of the current C2 system. GUARD_INTERVAL: This 2-bit field indicates the guard interval of the current C2 Frame, according to table 19. Table 19: Signalling format for the guard interval Value Guard interval fraction 00 1/128 01 1/64 10 to 11 Reserved for future use C2_FRAME_LENGTH: This 10-bit field gives the number of Data Symbols per C2 Frame (Ldata). The C2 System according to the present document does only allow C2_FRAME_LENGTH = 0x1C0 (448 decimal). All other codes for C2_FRAME_LENGTH are reserved for future use. L1_PART2_CHANGE_COUNTER: This 8-bit field indicates the number of C2 Frames ahead where the configuration (i.e. the contents of the fields in the L1 signalling part 2 except for the PLP_START and L1_PART2_CHANGE_COUNTER) will change. The next C2 Frame with changes in the configuration is indicated by the value signalled within this field. If this field is set to the value '0', it means that no scheduled change is foreseen. For example, value '1' indicates that there is change in the next C2 Frame. NUM_DSLICE: This 8-bit field indicates the number of Data Slices carried within the current C2 Frame. The minimum value of this field shall be '1'. NOTE 1: Both the number of Data Slices and the number of PLPs for each Data Slice of a C2 System are chosen such that the overall L1-part2 signalling does not exceed 32 766 bit. NUM_NOTCH: This 4-bit field indicates the number of Notch bands. If there is no Notch band within the current C2 Frame, this field shall be set to '0'. The following fields appear in the Data Slice loop: • DSLICE_ID: This 8-bit field uniquely identifies a Data Slice within the C2 System. • DSLICE_TUNE_POS: This field indicates the tuning position of the associated Data Slice relative to the START_FREQUENCY. Its bit width shall be 13 bits or 14 bits according to the GUARD_INTERVAL value. When GUARD_INTERVAL is '00', the bit width of this field shall be 13 bits and indicate the tuning position in multiples of 24 carriers within current C2 Frame. Otherwise the bit width of this field shall be 14 bits and indicate the tuning position in multiples of 12 carriers within the current C2 Frame relative to the START_FREQUENCY. DSLICE_TUNE_POS must be a value at least 1704 carriers from the edge of a broadband notch or the start or end of the C2 system. • DSLICE_OFFSET_LEFT: This field indicates the start position of the associated Data Slice by means of the distance to the left from the tuning position and shall be two's complement integer of 8 bits or 9 bits according to the GUARD_INTERVAL value. When GUARD_INTERVAL is '00', this field shall be two's complement integer of 8 bits and indicate the distance from the tuning position in multiples of 24 carriers within current C2 Frame. Otherwise this field shall be two's complement integer of 9 bits and indicate the distance from the tuning position in multiples of 12 carriers within current C2 Frame. • DSLICE_OFFSET_RIGHT: This field indicates the end position of the associated Data Slice by means of the distance to the right from the tuning position and shall be two's complement integer of 8 bits or 9 bits DVB BlueBook A138 55 according to the GUARD_INTERVAL value. When GUARD_INTERVAL is '00', this field shall be two's complement integer of 8 bits and indicate the distance from the tuning position in multiples of 24 carriers within current C2 Frame. Otherwise this field shall be two's complement integer of 9 bits and indicate the distance from the tuning position in multiples of 12 carriers within current C2 Frame. NOTE 2: DSLICE_OFFSET_LEFT and DSLICE_OFFSET_RIGHT may both have positive or negative values, which means that the complete Data Slice is left or right hand side of the tuning position. • DSLICE_TI_DEPTH: This 2-bit field indicates the time interleaving depth within the associated Data Slice according to table 20. Table 20: Signalling format for the time interleaving depth Value TI depth 00 No time interleaving 01 4 OFDM Symbols 10 8 OFDM Symbols 11 16 OFDM Symbols • DSLICE_TYPE: This 1-bit field indicates the type of the associated Data Slice according to table 21. The Data Slice Type 1 is only for the transmission of a single PLP with fixed modulation and coding parameters within a Data Slice. See clause 7 for more information. Table 21: Signalling format for the Data Slice type Value Data Slice type 0 Data Slice Type 1 1 Data Slice Type 2 The following field appears only if the DSLICE_TYPE is '1'. • FEC_HEADER_TYPE: This 1-bit field indicates the type of the FECFrame header within the associated Data Slice according to table 22. Table 22: Signalling format for the FECFrame header type Value FECFrame header type 0 Robust mode 1 High efficiency mode • DSLICE_CONST_CONF: This 1-bit field indicates whether the configuration of the associated Data Slice is variable or fixed. If this field is set to value '1', the configuration of the associated Data Slice shall not change. Otherwise this field shall be set to '0'. A value of '1' is only allowed in combination with Data Slices Type 2. • DSLICE_LEFT_NOTCH: This 1-bit field indicates the presence of the left neighboured Notch band of the associated Data Slice. If the start of associated Data Slice is neighboured by Notch band, this field shall be set to '1'. Otherwise this field shall be set to '0'. NOTE 3: The DSLICE_LEFT_NOTCH field can be used by a receiver to assist in finding the number of Data Cells of the current Data Slice. The continual pilots positioned on the edge of the Notch band change the number of Data Cells of its right neighboured Data Slice. See clause 9.6.4.1 for more information. • DSLICE_NUM_PLP: This 8-bit field indicates the number of PLPs carried within the associated Data Slice. The minimum value of this field shall be '1'. NOTE 4: Both the number of Data Slices and the number of PLPs for each Data Slice of a C2 System are chosen such, that the overall L1-part2 signalling does not exceed 32 766 bit. DVB BlueBook A138 56 The following fields appear in the PLP loop: • PLP_ID: This 8-bit field identifies a PLP within the C2 System. • PLP_BUNDLED: This 1-bit field indicates whether the associated PLP is bundled with other PLP(s) or not within the current C2 System. If the associated PLP is bundled, this field shall be set to '1'. Otherwise this field shall be set to '0'. • PLP_TYPE: This 2-bit field indicates the type of the associated PLP. PLP_TYPE shall be signalled according to table 23. Table 23: Signalling format for the PLP_TYPE field Value PLP type 00 Common PLP 01 Grouped Data PLP 10 Normal Data PLP 11 Reserved for future use • PLP_PAYLOAD_TYPE: This 5-bit field indicates the type of the payload data carried by the associated PLP. PLP_PAYLOAD_TYPE shall be signalled according to table 24. See clause 5.1.1 for more information. Table 24: Signalling format for the PLP_PAYLOAD_TYPE field Value Payload type 00000 GFPS 00001 GCS 00010 GSE 00011 TS 00100 to 11111 Reserved for future use The following field appears only if the PLP_TYPE is '00' or '01'. • PLP_GROUP_ID: This 8-bit field identifies with which PLP group within the C2 System the current PLP is associated. This can be used by a receiver to link the Data PLP to its associated Common PLP, which will have the same PLP_GROUP_ID. The following fields appear only if the DSLICE_TYPE is '0', i.e. the Data Slice Type 1 is used. • PLP_START: This 14-bit field indicates the start position of the first complete XFECframe of the associated PLP within the current C2 Frame. It uses the cell addressing scheme defined in clause 9.4.3. • PLP_FEC_TYPE: This 1-bit field indicates the FEC type used by the associated PLP. The FEC type shall be signalled according to table 25. • PLP_MOD: This 3-bit field indicates the modulation used by the associated PLP. The modulation shall be signalled according to table 25. The signalling is valid for the first XFECframe starting within the DVB-C2 frame. DVB BlueBook A138 57 Table 25: Signalling format for the PLP_MOD and the PLP_COD fields PLP_FEC_TYPE PLP_MOD PLP FEC type Modulation XFECFrame Length 000 Reserved NA 001 16QAM 4 050 010 64QAM 2 700 011 256QAM 2 025 0 16K LDPC 100 1024QAM 1 620 101 4096QAM 1 350 110 Reserved 1 158 111 Reserved 1 013 000 Reserved 900 001 16QAM 16 200 010 64QAM 10 800 011 256QAM 8 100 1 64K LDPC 100 1024QAM 6 480 101 4096QAM 5 400 110 Reserved 4 629 111 Reserved 4 050 NOTE 5: The XFECframe length of the associated PLP is determined by PLP_FEC_TYPE and PLP_MOD as shown in table 25. • PLP_COD: This 3-bit field indicates the code rate used by the associated PLP. The code rate shall be signalled according to table 26. When PLP_COD is '101', the code rate is determined by PLP_FEC_TYPE. If PLP_FEC_TYPE is set to '0', PLP_COD of '101' means the code rate of 8/9. Otherwise it means the code rate of 9/10. Please note that not all possible PLP_MOD and PLP_COD combinations are supported (see tables 11(a) and 11(b)). Table 26: Signalling format for the code rate Value Code rate 000 Reserved for future use 001 2/3 010 3/4 011 4/5 100 5/6 8/9 (16K LDPC code) 101 9/10 (64K LDPC code) 110 to 111 Reserved for future use • PSI/SI_REPROCESSING: This 1-bit field indicates whether PSI/SI reprocessing is performed or not. This can be used by a receiver to recognize if it can rely on the related PSI/SI parts. When PSI/SI reprocessing is performed, this field shall be set to '1', otherwise it shall be set to '0'. The following fields appear only if the PSI/SI_REPROCESSING is '0'. • transport_stream_id: This is a 16-bit field which serves as a label for identification of this TS from any other multiplex within the delivery system (see also [i.4]). • original_network_id: This 16-bit field gives the label identifying the network_id of the originating delivery system (see also [i.4]). • RESERVED_1: This 8-bit field is reserved for future use. • RESERVED_2: This 8-bit field is reserved for future use. DVB BlueBook A138 58 The following fields appear in the Notch loop: • NOTCH_START: This field indicates the start position of the associated Notch band and gives the unsigned integer value relative to the START_FREQUENCY. Its bit width shall be 13 bits or 14 bits according to the GUARD_INTERVAL value. When GUARD_INTERVAL is '00', the bit width of this field shall be 13 bits and indicate the start position in multiples of 24 carriers within the current C2 Frame. Otherwise the bit width of this field shall be 14 bits and indicate the start position in multiples of 12 carriers within the current C2 Frame. • NOTCH_WIDTH: This field indicates the width of the associated Notch band and gives the unsigned integer value. Its bit width shall be 8 bits or 9 bits according to the value of GUARD_INTERVAL. When GUARD_INTERVAL is '00', the bit width of this field shall be 8 bits and indicate the width in multiples of 24 carriers within the current C2 Frame. Otherwise the bit width of this field shall be 9 bits and indicate the width in multiples of 12 carriers within the current C2 Frame. • RESERVED_3: This 8-bit field is reserved for future use. • RESERVED_TONE: This 1-bit field indicates whether some carriers are reserved. When there are reserved carriers within the current C2 Frame, this bit shall be set to '1', otherwise it shall be set to '0'. The positions of reserved carriers for reserved tones within a C2 Frame are given in clause 9.7. • RESERVED_4: This 16-bit field is reserved for future use. 8.3.1 L1 block padding This 1-bit field is inserted following the L1 signalling part 2 data to ensure that the length of L1 signalling part 2 including L1 signalling part2 data and L1 block padding is a multiple of 2 (see figure 20). If the total length of L1 signalling part 2 is not a multiple of 2, this field shall be inserted at the end of the L1 signalling part 2 data. The value of the L1 block padding bit, if any, shall be set to '0'. 8.3.2 CRC for the L1 signalling part 2 A 32-bit error detection code is applied to the entire L1 signalling part 2 including L1 signalling part 2 data and L1 block padding. The location of the CRC field can be found from the length of the L1 signalling part 2, which can be calculated using L1_INFO_SIZE in the Preamble header. The CRC-32 is defined in annex E. 8.3.3 L1 padding This variable-length field is inserted following the L1 signalling part 2 CRC field to ensure that multiple LDPC blocks of the L1 signalling part 2 have the same information size when the L1 signalling part 2 is segmented into multiple blocks and these blocks are separately encoded. Details of how to determine the length of this field are described in clause 8.4. The value of the L1 padding bits, if any, are set to '0'. 8.4 Modulation and error correction coding of the L1 part 2 data 8.4.1 Overview The L1 part 2 data is protected by a concatenation of BCH outer code and LDPC inner code. The L1 part 2 data shall be first BCH-encoded. The length of the L1 part 2 data bits varies depending on the complexity of the underlying Data Slices. The L1 part 2 data can be segmented into multiple blocks. A segmented L1 part 2 data has a length less than BCH information length Kbch = 7032. Therefore, a shortening operation (zero padding) is required for BCH or LDPC encoding. After BCH encoding with zero padded information, the BCH parity bits of the L1-part2 data shall be appended to the L1 part 2 data. The concatenated L1 part 2 data and BCH parity bits are further protected by a shortened and punctured 16K LDPC code with code rate 1/2 (Nldpc = 16 200). Note that the effective code rate of the 16K LDPC code with code rate 1/2 is 4/9, where the effective code rate is defined as the information length over the encoder output length. Details of how to shorten and puncture the 16K LDPC code are described in clauses 8.4.3.1, 8.4.3.4 and 8.4.3.5. Each coded L1 signalling part 2 shall be bit-interleaved (see clause 8.4.3.6) and then shall be mapped onto constellations (see clause 8.4.4). Note that only 16QAM is used for encoding of L1 signalling part 2. The conceptual processing of coding and modulation of L1 signalling part 2 is shown in figure 21. DVB BlueBook A138 59 Segmentation L1-part 2 data Zero BCH LDPC Puncturing Padding Encoding Encoding Bit 16 QAM L1 FEC DEMUX Intlv. Mod. Builder Figure 21: Encoding and Modulation of L1 signalling part 2 Since the length of L1 signalling part 2 is variable, the resulting number of needed L1 frames is also varying. Each L1 FECFrame packet corresponds to one L1 block within an OFDM Symbol. As soon as more than one L1 FECFrame packet is needed, the same number of Preamble Symbols in consecutive OFDM Symbols is needed. If the length of L1 part 2 data exceeds a predetermined number N L1 part 2 _ max_ per _ Symbol (see clause 8.4.2), the L1 part 2 data shall be divided into equidistant blocks. N L1 part 2 _ max_ per _ Symbol means the maximum number of L1 information bits for transmitting the coded L1 signalling part 2 through one OFDM Symbol. Figures 22 (a) and 22 (b) show the handling example for the following cases: a) L1 part 2 fits into one L1 part 2 LDPC FECFrame (see figure 22 (a)). b) L1 part 2 exceeds one L1 part 2 LDPC FECFrame (see figure 22 (b)). Details of the segmentation are described in clause 8.4.2. NL1part2_max_per_Symbol 3 x NL1part2_max_per_Symbol L1 part 2 data Coding and Modulation L1 FEC 1 L1_XFEC_FRAME H L1 FEC 1 C2 Frame Preamble Data Data (in time) Symbol Symbol Symbol Figure 22(a): L1 part 2 fits into one L1 part 2 LDPC FECFrame DVB BlueBook A138 60 NL1part2_max_per_Symbol 3 x NL1part2_max_per_Symbol L1 part 2 data Coding and Modulation L1 FEC 1 L1 FEC 2 L1 FEC 3 L1_XFEC_FRAME H L1 FEC 1 H L1 FEC 2 H L1 FEC 3 C2 Frame Preamble Preamble Preamble Data Data (in time) Symbol 1 Symbol 2 Symbol 3 Symbol Symbol Figure 22(b): L1 part 2 exceeds one L1 part 2 LDPC FECFrame According to the signalling field for time interleaving in L1 signalling part 2 header, 'L1_TI_MODE', the time interleaving can be applied to L1 FECFrame (see clause 8.2). Details of the time interleaving are described in clause 8.5. If there are cells remaining from each Preamble Symbol after mapping each L1 FECFrame to the Preamble Symbol, the L1 FECFrame including L1 part 2 header is cyclically repeated until the complete preamble block is filled, as shown in figure 23. The information on the structure of a cyclically repeated L1 FECFrame in a Preamble Symbol is obtained by detecting and extracting of L1 part 2 header. Preamble H L1 FEC 1 Packet Repetition H L1 FEC 1 H 2,840 cells Frequency Preamble Block Interleaver Preamble Block 1 Preamble Block 2 Figure 23: Allocation of L1 FECFrame to L1 blocks (Preamble blocks) 8.4.2 Parameters for FEC encoding of L1 part 2 data The number of L1 part 2 data bits is variable and the bits shall be transmitted over one or multiple 16K LDPC blocks depending on the length of the L1 part 2 data. The number of LDPC blocks for the L1 part 2 data, NL1part2_FEC_Block, shall be determined as follows: ! K L1 part 2 _ ex _ pad " N L1 part 2 _ FEC _ Block = # $, # N L1 part 2 _ max_ per _ Symbol $ where ! x " means the smallest integer larger than or equal to x, and K L1 part 2 _ ex _ pad , which can be found by adding 32 # $ to the parameter 2&L1_ INFO_SIZE, denotes the number of information bits of the L1 part 2 signalling excluding the padding field, L1_PADDING (see clause 8.3.3). DVB BlueBook A138 61 N L1 part 2 _ max_ per _ Symbol is 4759 which is chosen as the minimum value among the maximum values of Ki satisfying that NL1part2 (Ki) is less than or equal to NL1part2_Cells #MOD, for i = 1, 2, …, 8. Here, NL1part2_Cells (= 2 808) denotes the number of available cells for L1 signalling part 2 in one OFDM Symbol, #MOD denotes the modulation order 4 for 16QAM, and NL1part2 (Ki) is the length of the encoded L1 signalling part 2 with Ki information bits for NL1part2_FEC_Block = i. Then, the length of L1_PADDING field, KL1part2_PADDING shall be calculated as: ! K L1 part 2 _ ex _ pad " K L1 part 2 _ PADDING = % & # N L1 part 2 _ FEC _ Block $ K L1 part 2 _ ex _ pad . % N L1 part 2 _ FEC _ Block & The final length of the whole L1 signalling part 2 including the padding field, KL1part2 shall be set as follows: K L1 part 2 = K L1 part 2 _ ex _ pad + K L1_ PADDING . The number of information bits in each of NL1part2_FEC_Block blocks, Ksig is then defined by: K L1 part 2 K sig = . N L1 part 2 _ FEC _ Block Each block with information size of Ksig is protected by a concatenation of BCH outer codes and LDPC inner codes. Each block shall be first BCH-encoded, where its Nbch_parity (= 168) BCH parity check bits shall be appended to information bits of each block. The concatenated information bits of each block and BCH parity check bits are further protected by a shortened and punctured 16K LDPC code with code rate 1/2 (effective code rate: Reff_16K_LDPC_1_2 = 4/9). Details of how to shorten and puncture the 16K LDPC code are described in clauses 8.4.3.1, 8.4.3.4 and 8.4.3.5. For a given Ksig and modulation order (16QAM is used for the L1 signalling part 2), Npunc shall be determined by the following steps: Step 1) Calculate the number of puncturing bits as follows: !6 " N punc _ temp = ! # ( Kbch $ K sig ) " , % 5 & where Kbch is 7032 for the 16K LDPC code with code rate 1/2, and the operation ! x " means the largest integer less # $ than or equal to x. A temporary size of puncturing bits is calculated by multiplying the shortening length by a fixed number 6/5. The effective LDPC code rate of the L1 signalling part 2, Reff_L1part2 is always lower than or equal to Reff_16K_LDPC_1_2. Reff_ L1part2 tends to decrease as the information length Ksig decreases. This rate control ensures that the receiving coverage for the L1 signalling part 2 is preserved after the shortening and puncturing. The multiplicative coefficient 6/5 is the ratio of the puncturing length to the shortening length and it is chosen as the best value among those formed of (B+1)/B for an integer B. Step 2) N L1 part 2 _ temp = K sig + Nbch _ parity + Nldpc ! (1 " Reff _16 K _ LDPC _1_ 2 ) " N punc _ temp . For the 16K LDPC code with effective code rate 4/9, Nldpc " (1 ! Reff _ 16 K _ LDPC _ 1 _ 2 ) = 9000 . DVB BlueBook A138 62 Step 3) According to the value of time interleaving field, 'L1_TI_MODE', in the L1 part 2 header (see clause 8.2), NL1part2 shall be calculated as follows: " If L1_TI_MODE = 00 or 01, # # $ N L1 part 2 _ temp % # ' ( & 2! MOD & N L1 part 2 _ FEC _ Block # ' 2! MOD & N L1 part 2 _ FEC _ Block ( N L1 part 2 =) #Otherwise, # $ N L1 part 2 _ temp % # ' ( & 2! MOD & N L1_ TI _ Depth # ' 2! MOD & N L1_ TI _ Depth ( * where #MOD is 4 for 16QAM, and NL1_TI_Depth is 4 and 8 for L1_TI_MODE = 10 and 11, respectively, as shown in clause 8.2. This step guarantees that NL1part2 is a multiple of the number of columns of the bit interleaver, 2#MOD, (described in clause 8.4.3.6) and that NL1part2/#MOD is a multiple of the number of OFDM Symbols for transmitting L1 signalling part 2. Note that the number of OFDM Symbols for transmitting L1 signalling part 2 are NL1part2_FEC_Block and NL1_TI_Depth for 'L1_TI_MODE = 00, 01' and 'L1_TI_MODE = 10, 11', respectively. Step 4) N punc = N punc _ temp ! ( N L1 part 2 ! N L1 part 2 _ temp ) . NL1part2 is the number of the encoded bits for each information block. After the shortening and puncturing, the encoded N L1 part 2 bits of each block shall be mapped to N MOD _ per _ Block = modulated symbols. The total number of the !MOD modulation symbols of NL1part2_FEC_Block blocks, N MOD _ Total is N MOD _ Total = N MOD _ per _ Block ! N L1 part 2 _ FEC _ Block . When 16QAM is used, a bit interleaving shall be applied across each LDPC block. Details of how to interleave the encoded bits are described in clause 8.4.3.6. Demultiplexing is then performed as described in clause 8.4.4.1. The demultiplexer output is then mapped to a 16QAM constellation, as described in clause 8.4.4.2. 8.4.3 FEC Encoding 8.4.3.1 Zero padding of BCH information bits Ksig bits defined in clause 8.4.2 shall be encoded into a 16K (Nldpc= 16200) LDPC codeword after BCH encoding. Since the Ksig is always less than the number of BCH information bits (= Kbch = 7032) for a given code rate 1/2, the BCH code shall be shortened. A part of the information bits of the 16K LDPC code shall be padded with zeros in order to fill Kbch information bits. The padding bits shall not be transmitted. All Kbch BCH information bits, denoted by {m0, m1, …, mKbch - 1 }, are divided into Ngroup (= Kldpc/360) groups as follows: & * k ( # X j = %mk j = * (,0 ' k < Kbch " for 0 ! j < N group , + 360 ) $ ! where Xj represents the jth bit group. The code parameters (Kbch, Kldpc) are given in table 27 for L1 part 2 data. Table 27: Code parameters (Kbch, Kldpc) for L1 part 2 data Kbch Kldpc L1 signalling part 2 7 032 7 200 DVB BlueBook A138 63 For 0 ! j ! N group " 2 , each bit group X j has 360 bits and the last bit group X N !1 has group 360 - (Kldpc - Kbch) = 192 bits, as illustrated in figure 24. Figure 24: Format of data after LDPC encoding of L1 signalling part 2 For the given Ksig, the number of zero-padding bits is calculated as (Kbch - Ksig). Then, the shortening procedure is as follows: Step 1) Compute the number of groups in which all the bits shall be padded, Npad such that: If 0 < K sig ! 360 , N pad = N group ! 1 # K % K sig ! Otherwise, N pad = # bch ! $ 360 " Step 2) For Npad groups X ! S (0) , X ! S (1) , …, X ! S ( m "1) X " S ( N pad !1) , all information bits of the groups shall be padded with zeros. Here, !S is a permutation operator depending on the code rate and modulation order, described in table 28. Step 3) If N pad = N group ! 1, (360 ! K sig ) information bits in the last part of the bit group X ! S ( N group "1) shall be additionally padded. Otherwise, for the group X ! S ( N pad ) , (K bch " K sig " 360 ! N pad ) information bits in the last part of X ! S ( N pad ) shall be additionally padded. Step 4) Finally, Ksig information bits are sequentially mapped to bit positions which are not padded in Kbch BCH information bits, {m0, m1, …, mKbch-1 }by the above procedure. EXAMPLE: Suppose for example the value of Ksig is 3986. In this case, from step (1), 8 groups would have all zero padded bits, and from step (2) these groups would be those with numbers 18, 17, 16, 15, 14, 13, 12.11. From step (3), and additional 166 bits would be zero padded in Group 4. Finally from step (4) the 3 986 bits would be mapped sequentially to Groups 0, 1, 2, 3 (360 bits each), the first part of Group 4 (194 bits), Groups 5, 6, 7, 8, 9, 10 (360 bits each), and group 19 (192 bits). Figure 25 illustrates the shortening of the BCH information part in this case, i.e. filling BCH information bit positions not zero padded with Ksig information bits. DVB BlueBook A138 64 526 zero-padded bits 2520 zero-padded bits 0th 1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th BCH FEC Mapping of 3986 3986 information bits 3046 zero-padded bits information bits to BCH information part Figure 25: Example of shortening of BCH information part Table 28: Permutation sequence of information bit group to be padded for L1 signalling part 2 ! S ( j ) (0 j < Ngroup) Modulation Ngroup and code rate ! S (0) ! S (1) ! S (2) ! S (3) ! S (4) ! S (5) ! S (6) ! S (7) ! S (8) ! S (9) ! S (10) ! S (11) ! S (12) ! S (13) ! S (14) ! S (15) ! S (16) ! S (17) ! S (18) ! S (19) 18 17 16 15 14 13 12 11 4 10 16QAM 1/2 20 9 8 7 3 2 1 6 5 19 0 8.4.3.2 BCH encoding The Kbch information bits (including the Kbch - Ksig zero padding bits) shall first be BCH encoded according to clause 6.1.1 to generate Nbch = Kldpc output bits (i0… iN ). bch-1 8.4.3.3 LDPC encoding The Nbch = Kldpc output bits (i0… iNbch-1) from the BCH encoder, including the (Kbch - Ksig) zero padding bits and the (Kldpc - Kbch) BCH parity bits form the Kldpc information bits I = (i0, i1, …, iK -1) for the LDPC encoder. The LDPC ldpc encoder shall systematically encode the Kldpc information bits onto a codeword ! of size Nldpc: ! = (i0, i1, …, iK , p0, p1, …, p N ) according to clause 6.1.2. ldpc-1 ldpc- Kldpc-1 8.4.3.4 Puncturing of LDPC parity bits When the shortening is applied to encoding of the signalling bits, some LDPC parity bits shall be punctured after the LDPC encoding. These punctured bits shall not be transmitted. All Nldpc - Kldpc LDPC parity bits, denoted by {p0, p1, …, pN }, are divided into Qldpc parity groups where ldpc- Kldpc -1 each parity group is formed from a sub-set of the Nldpc - Kldpc LDPC parity bits as follows: Pj = {p k k mod Qldpc = j , 0 ! k < Nldpc " Kldpc } for 0 ! j < Qldpc , where Pj represents the jth parity group and Qldpc is given in table 5(b). Each group has (Nldpc- Kldpc)/Qldpc = 360 bits, as illustrated in figure 26. DVB BlueBook A138 65 (Nldpc – Kldpc) LDPC parity bits LDPC Information Qldpc Qldpc Qldpc Qldpc BCH Information BCHFEC !!! !!! !!! ... !!! 1st parity group 2nd parity group ... Figure 26: Parity bit groups in an FEC block For the number of parity bits to be punctured, Npunc given in clause 8.4.2. Step 1) Compute the number of groups in which all parity bits shall be punctured, Npunc_groups such that: #N ! N punc _ groups = # punc ! for 0 " N punc < N ldpc ! K ldpc . $ 360 " Step 2) For Npunc_groups parity bit groups P! P (0) , P! P (1) , …, P P ( N punc _ groups !1) , all parity bits of the groups shall " be punctured. Here, !P is a permutation operator depending on the code rate and modulation order, described in table 29. Step 3) For the group P P ( N punc _ groups ) , (N punc " 360 ! N punc _ groups ) parity bits in the first part of the group shall ! be additionally punctured. Table 29: Permutation sequence of parity group to be punctured for L1 signalling part 2 Order of parity group to be punctured, { ! P ( j ) , 0 ! j < Qldpc = 25} Modulation and code rate ! P (0) ! P (1) ! P (2) ! P (3) ! P (4) ! P (5) ! P (6) ! P (7) ! P (8) ! P (9) ! P (10) ! P (11) ! P (12) ! P (13) ! P (14) ! P (15) ! P (16) ! P (17) ! P (18) ! P (19) ! P (20) ! P (21) ! P (22) ! P (23) ! P (24) - 6 4 13 9 18 8 15 20 5 17 2 22 24 16QAM 1/2 7 12 1 16 23 14 0 21 10 19 11 3 - 8.4.3.5 Removal of zero padding bits The (Kbch - Ksig) zero padding bits are removed and shall not be transmitted. This leaves a word consisting of the Ksig information bits, followed by the 168 BCH parity bits and (Nldpc - Kldpc - Npunc) LDPC parity bits. 8.4.3.6 Bit interleaving for L1 signalling part 2 When 16QAM modulation is used for the L1 signalling part 2, the LDPC codeword of length NL1part2, consisting of Ksig information bits, 168 BCH parity bits, and (9 000 - Npunc) LDPC parity bits, shall be bit-interleaved using a block interleaver. The configuration of the bit interleaver for the chosen 16QAM modulation is specified in table 30. Table 30: Bit Interleaver structure Modulation and code rate Rows Nr Columns Nc 16QAM ! NL1part2 / 8 8 The LDPC codeword is serially written into the interleaver column-wise, and serially read out row-wise (the MSB of the L1 signalling part 2 is read out first) as shown in figure 27. DVB BlueBook A138 66 MSB of WRITE the L1 part2 READ Row 1 Row (NL1part2 / 8) Column 1 Column 8 Figure 27: Bit interleaving scheme for L1 part 2 (16QAM) 8.4.4 Mapping bits onto constellations Each bit-interleaved LDPC codeword shall be mapped onto constellations. The L1 signalling part 2 is first demultiplexed into cell words according to clause 8.4.4.1 and then the cell words are mapped into constellations according to clause 8.4.4.2. 8.4.4.1 Demultiplexing of L1 signalling part 2 Each bit-interleaved LDPC codeword, a sequence of NL1part2 (= Ksig + 168 + 9 000 - Npunc) bits shall be mapped onto constellations by first demultiplexing the input bits into parallel cell words and then mapping these cell words into constellation values. The number of output Data Cells and the effective number of bits per cell, #MOD are defined in table 31. The input bit-stream vdi is demultiplexed into Nsubstreams sub-streams be,do, as shown in figure 13 in clause 6.2.1. The value of Nsubstreams is also defined in table 31. Details of demultiplexing are described in clause 6.2.1. For 16QAM, the parameters for demultiplexing of bits to cells are the same as that of table 10(a) in clause 6.2.1. Table 31: Parameters for bit-mapping into constellations Modulation mode # MOD Number of output Data Cells Number of sub-streams, Nsubstreams 16QAM 4 NL1part2 / 4 8 For 16QAM, the output words from the demultiplexing of width Nsubstreams, [b0,do..bN ] are split into two substreams-1,do words of width #MOD =Nsubstreams /2, [y0,2do .. y #MOD - 1, 2do] and [y0, 2do +1..y # ], as described in MOD - 1,2do +1 clause 6.2.1. 8.4.4.2 Mapping onto QAM constellations The cell words of each coded L1 signalling part 2, [y0,q..y # ] are mapped into constellations fq according to MOD -1,q clause 6.2.2, where q is the index of the cells within each bit-interleaved LDPC codeword. For each coded L1 signalling part 2, 0 % q < NMOD_per_Block. DVB BlueBook A138 67 8.5 Time interleaving of L1 signalling part 2 data The purpose of time interleaving of the L1-part 2 data is to make L1-part2 data transmission more robust than the payload data, especially when time interleaving is applied to Data Slice. Time interleaving of L1-part2 data is identical to that of Data Slice except that pilot and reserved tone positions in a preamble are completely excluded in time interleaving process. The Time Interleaver (TI) shall operate at L1-part2 data level before the L1 XFECFrame with L1 header is repeated to fill a L1 block symbol bandwidth. The time interleaving and L1 block building with different interleaving parameters are depicted in figure 28. The L1_TI_MODE indicates the depth of L1-part2 data time interleaving and signalled in L1 header signalling. L1_TI_MODE = "00" means no time interleaving is applied for L1-part2 data. When L1_TI_MODE = "01" (best-fit), the time interleaving depth is the minimum number of OFDM Symbols necessary for carrying a L1 block, or NL1part2_FEC_Block (see clause 8.4.2 for more details of segmentation of L1-part2 data). Otherwise, the time interleaving depth is explicitly signalled and the depth is 4 OFDM Symbols when L1_TI_MODE = "10" as shown in figure 28. XFECFRAME 1 XFECFRAME 2 XFECFRAME 1 XFECFRAME 2 XFECFRAME 1 XFECFRAME 2 L1 XFECFRAME Time Interleaving H H H L1 Header H H H Insertion H H H H H H H H H Repetition H H H H H H H H H H 7.61 MHz 7.61 MHz H H H 7.61 MHz No Time Interleaving ‘Best-Fit’ mode L1 TI Depth = 4 (L1_TI_MODE = “00”) (L1_TI_MODE = “01”) (L1_TI_MODE = “10”) Figure 28: Time interleaving of L1-part2 data All L1-part2 Data Cells after constellation mapping are grouped into one L1 TI block. As a result, there exists one L1 TI block per C2 Frame. The length of time interleaving period TP is calculated as: TP = TS ! N L1 _ TI _ DEPTH , where TS is a total OFDM Symbol duration and NL1_TI_DEPTH is the time interleaving depth determined by L1_TI_MODE signalled in L1 header signalling. The TI shall be a twisted row-column block interleaver like as in the Data Slice. The number of rows Nr of a TI memory is equal to NL1_TI_DEPTH and the number of columns Nc is calculated as: N c = N MOD _ Total N L1 _ TI _ DEPTH , DVB BlueBook A138 68 where NMOD_Total is the total number of the L1-part2 Data Cells. Note that NL1_TI_DEPTH should be equal or larger than minimum number of OFDM Symbols required for carrying the L1 block, NL1part2_FEC_Block. Details of required number of bits and cells for carrying L1-part2 data is described in clause 8.4.2. The input L1-part2 Data Cells are serially written into the TI memory in a diagonal direction, and serially read out row- wise as shown in figure 29. + First cell of TI block WRITE , Row 0 * %% " %! ( !% "" !! "( )*$ %# ) %& % &* ! !& "% )** "! %$ # %' & &) "# !' "& )*) %* Row Nr-1 %" $ %( ' !" "$ !( "' )*# %) Column Column 0 Nc-1 First cell of TI block READ Row 0 + * %% " %! ( !% "" !! "( )*$ , %# ) %& % &* ! !& "% )** "! %$ # %' & &) "# !' "& )*) %* Row Nr-1 %" $ %( ' !" "$ !( "' )*# %) Column Column 0 Nc-1 Figure 29: Time interleaving of L1 data (NMOD_TOTAL=208, NLI_TI_DEPTH=4) Assuming di (i = 0, …, NMOD_Total -1) as the L1-part2 Data Cells input to the time interleaver, the column index Ci, the row index Ri and associated twisting parameter TCi to store di is calculated as: Ci = i mod N c TCi = Ci mod N r Ri = (TCi + (i div N c )) mod N r . Every cell position in the TI memory is uniquely defined by a coordinate (Ri, Ci). The L1-part2 Data Cells di are written in positions (Ri, Ci): for (i = 0; i < N MOD _ Total ; i = i + 1) { GENERATE ( Ri , Ci ); WRITE d i to ( Ri , Ci ); } Note that the time interleaving structure shall not be changed after frame building although neither pilot nor reserved tone position is considered in L1-part2 data time interleaving process, which is different from the case of Data Slice. 9 Frame Builder This clause defines the frame builder functions that always apply for a C2 System. The function of the frame builder is to assemble the cells of the Preamble Symbols(s) as well as the cells produced for each of the Data Slices into arrays of active OFDM Cells corresponding to the preamble structure and each of the Data Slices and OFDM Symbols which make up the overall frame structure. The frame builder operates according to the dynamic information produced by the scheduler (see clause 5.2.1) and the configuration of the frame structure. DVB BlueBook A138 69 9.1 C2 Frame structure The C2 Frame structure is shown in figure 30. The C2 Frame structure comprises LP Preamble Symbols (LP ' 1) followed by Ldata Data Symbols. The Preamble Symbols are divided in frequency direction into L1 block symbols of same bandwidth (3 408 subcarriers or approximately 7,61 MHz). The Data Slices have an arbitrary bandwidth as a multiple of the pilot pattern specific granularity but shall not exceed the L1 block symbol bandwidth. Frequency Notches can be inserted into the C2 signal across a C2 Frame. The insertion of frequency Notches is described in clauses 9.3.5 and 9.4.1.3. L1 Block, width = 3408 subcarriers frequency time L1 Block symbol 0,0 L1 Block symbol 0,1 L1 Block symbol 0,n-1 LP Preamble OFDM Symbols L1 Block symbol LP-1,0 L1 Block symbol LP-1,1 L1 Block symbol LP-1,n-1 Data Symbol Data Symbol 0,0 Data Symbol 0,1 Data Symbol 0,2 Data Symbol 0,k-1 Frequency Notch 0,k-2 C2 Frame Data Symbol (LF OFDM Data Symbol 1,0 Data Symbol 1,1 Data Symbol 1,2 Data Symbol 1,k -1 1,k-2 Symbols) Data Symbol Data Symbol 2,0 Data Symbol 2,1 Data Symbol 2,2 Data Symbol 2,k-1 LData OFDM 2,k-2 Symbols Data Symbol Data Symbol Data Symbol Data Symbol Data Symbol LData-1,0 LData-1,1 LData-1,2 LData-1,k-2 LData-1,k-1 Data Slice 0 Data Slice 1 Data Slice 2 Data Slice k-2 Data Slice k-1 Figure 30: The C2 Frame structure: The C2 Frame starts with at least one Preamble Symbol (LP) followed by L Data Symbols The special properties of the Preamble Symbols are explained in clause 9.3. The L1 block symbols of the Preamble Symbol(s) allow reliable time and frequency synchronization and also carry the L1 signalling data part 2. The L1 signalling part 2 data to be carried is described in clause 8.3, its modulation, error correction and coding and the mapping of this data onto the L1 block symbols is described in clause 8.4. 9.1.1 Duration of the C2 Frame The beginning of the first Preamble Symbol marks the beginning of the C2 Frame. The data part of the C2 Frame consists of Ldata=448 symbols (approx. 203,8 ms for GI =1/64 or 202,2 ms for GI = 1/128, TU=448$s). The number of Preamble Symbols LP can be derived from the length information at the beginning of each L1 signalling part 2 block. The C2 Frame duration is therefore given by: TF = (LP+Ldata) % Ts, where Ts is the total OFDM Symbol duration. 9.2 Pilot Reference Sequence 9.2.1 Data Scrambling Sequence The reference sequence described below is used to scramble the preamble data and is used to generate the pilot's modulation. DVB BlueBook A138 70 Initialization sequence 1 1 1 1 1 1 1 1 1 1 1 PRBS Sequence,w 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit delay delay delay delay delay delay delay delay delay delay delay Figure 31: Generation of PRBS sequence The PRBS sequence, wi is generated according to figure 31, where wi is the i-th output value of the PRBS generator. Its polynomial for the PRBS generator shall be: X 11 + X 2 + 1 The shift register is initialized with all '1's so that the sequence begins with w0 , w1 , w2 ... = 1,1,1,1,1,1,1,1,1,1,1,0,0... 9.2.2 Pilot Scrambling Sequence The pilots shall carry a unique synchronization sequence wkP , where k is the absolute OFDM carrier index. The sequence is defined as: wkP = wk ! wi ' with i = (k mod KL1 )/ DP Where: k is the OFDM carrier index, wi ' is the i-th output of the PRBS generator defined below, wk is the k-th output of the reference sequence defined in clause 9.2.1 and DP = 6 is the separation of the preamble pilots. Please note that i is always an integer value, as the reference sequence is only defined for pilot positions (i.e. k mod DP=0). Initialization sequence 1 1 1 1 1 1 1 1 1 1 PRBS Sequence,wP,i 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit delay delay delay delay delay delay delay delay delay delay Figure 32: Definition of pilot modulation The corresponding sequence wi ' is generated by the PRBS defined in figure 32. Its polynomial shall be: X 10 + X 3 + 1 The register is initialized to all '1's and the sequence begins w0 ' , w1 ' , w2 '... = 1,1,1,1,1,1,1,1,1,1,0,0... 9.2.3 Pilot Reference Sequence The preamble pilots shall be differentially BPSK modulated against each other. Therefore, the pilot reference sequence is generated by differential modulation of the pilot scrambling sequence, which is achieved by an XOR operation. DVB BlueBook A138 71 The pilot reference sequence for each OFDM pilot at position k is therefore given by: # wkP if k mod K L1 = 0 rk = " P !rk % 6 $ wk otherwise where rk only has to be defined if k is multiple of 6. 9.3 Preamble Symbol 9.3.1 Preamble Symbol overview At the beginning of every frame a Preamble Symbol shall be sent. The Preamble Symbol is constructed with LP OFDM Symbols, while the Preamble Symbol shares the same OFDM parameters as the normal Data Symbols. In the frequency domain, the preamble is subdivided into L1 Signalling Blocks. Each L1 Signalling Block contains all Layer 1-part 2 information as defined in clause 8. P The definition of the OFDM Cell cm,l , k is calculated generically for k = 0,..., ! . However, this definition is for simplicity only and only the OFDM carriers K min ! k ! K max have to be calculated and are transmitted, where Kmin is the lowest frequency used by the C2 Signal and Kmax is the highest frequency used by the C2 Signal. This structure is also depicted in figure 33. The carriers outside the actual signal bandwidth are referred to as virtual signalling data. Their purpose is the clarification of the cyclic frequency structure of the signalling data. Signalling Block Signal Bandwidth Symbol lP k=3408 ... 0 ... 1 ... ... ... ... LP-1 ... 0 MHz Frequency / carriers k Kmin Kmax Transmitted Virtual Signalling Signalling Data Diata Figure 33: Preamble symbol structure in the frequency domain 9.3.2 Frequency Interleaving The purpose of the preamble frequency interleaver is the separation of neighbouring data cells and to avoid error bursts caused by narrow band interferers or frequency selectivity. Therefore, the same frequency interleaver as for the Data Slices shall be used (see clause 9.4.5), which works on the NL1=2 840 data cells of each L1 Block. The interleaved vector AlP = (alP ,0 , alP ,1 ,...alP , N P !1 ) is defined by: P P P P alP , q = xlP , H 0 ( q ) P for even symbols in the preamble ( l P mod 2 = 0 ) for q = 0,1,..., N L1 !1 alP , q = xlP , H1 ( q ) P for odd symbols in the preamble ( l P mod 2 = 1) for q = 0,1,..., N L1 !1 DVB BlueBook A138 72 with NL1=2840. 9.3.3 Pilot insertion The pilots of each Signalling Block are uniquely defined and allow for the time and frequency synchronization to the preamble. Unlike the normal pilots, the pilots within the preamble are transmitted at the same power lever as the data, i.e. they are not boosted. The pilots are differentially BPSK modulated against each other, giving a receiver the possibility to synchronize on this differentially encoded reference information. 3 Carrier 1 1 4 0 6 Index 2 8 0 2 ... First L1 Signalling Block (KL1=3408 cells) Pilot L1 Signalling Data Figure 34: L1 Block signalling 9.3.3.1 Locations of the preamble pilots A given OFDM carrier k of the Preamble Symbol is a pilot if the following equation is fulfilled: k mod DP = 0 Where: k is the OFDM carrier index and DP = 6 is the separation of the preamble pilots. 9.3.3.2 Amplitude and modulation of the preamble pilots The pilots shall be modulated as: {P } Re cm,l p ,k = APP " 2(1 / 2 ! rk ) Im{c P m,l p ,k }= 0 Where App is the amplitude of the preamble pilots, rk is the pilot reference sequence as defined in clause 9.2.3, m is the C2 Frame, l p is the Preamble Symbol number and k is the absolute carrier index. The amplitude of preamble pilots (App) is fixed to App=6/5 in case of 1/128 Guard Interval and fixed to App=4/3 in case of 1/64 Guard Interval. DVB BlueBook A138 73 9.3.4 Mapping and scrambling of the signalling data The OFDM Cells that are not occupied by pilots shall carry signalling data. As the signalling data is cyclic in the frequency domain, it shall be scrambled. The content of each data preamble OFDM Cell k is defined as: { } { } Re cm,l P , k = Re alP , q " (! 1) P wk P with q = (k mod K L1 ) # !(k mod K L1 )/ 6" Im{ }= Im{a }" (! 1) P P wk c m,l P , k lP ,q Where alP ,q is the output of the frequency interleaver of OFDM Symbol lP P at index q , wk is the k-th output of the reference sequence defined in clause 9.2.1 and KL1 = 3408 is the number of OFDM carriers per L1 Signalling Block. Since Data Slices are typically not aligned to L1 signalling blocks the receiver tuning window typically contains parts of different L1 signalling blocks. The re-ordering of the included sub-carriers to retrieve the L1 block in the frequency domain (i.e. after FFT on receiver side) is shown in figure 35. Tuning Frequency ft D D D L1 Block L1 Block L1 Block D D D m-1 #m #m+1 Tuning window Reordered L1 Block Figure 35: Retrieving a complete L1 block out of two partial L1 blocks Depending on the receiver tuning frequency ft, (given as actual tuning position as OFDM subcarrier mod KL1) the reordered L1 Block (including pilots) is described as follows (3 584 subcarrier receiver example): • ft mod KL1 < 1704: L1_subcariers = [L1m(ft … (ft +1704)) , L1m-1((ft + KL1 - 1703) … KL1)] • ft mod KL1 >= 1704: L1_subcariers = [L1m((ft -1703) … KL1) , L1m+1(1 … (ft - KL1 +1704))] With m as the index of the L1 block. 9.3.5 Notches within Preamble Symbols Equivalent to Data Slices Preamble Symbols may contain Notches. The cells within preamble Notches shall not carry any transmit power. Preamble Notches always coincide with Data Slice Notches, i.e. the same OFDM sub-carriers are omitted. Notches can be applied to Preamble Symbols in 2 different ways. 9.3.5.1 Narrowband Notches Narrowband Notches have a bandwidth below 48 OFDM subcarriers. The Data Slices bandwidth is a multiple of the guard interval granularity (i.e. 11, 23, 35, 47 subcarriers for GI = 1/64 or 23, 47 subcarriers for GI = 1/128). The lack of L1 signalling in narrowband Notches is compensated by the preamble FEC. Only one narrowband Notch shall be allowed at any tuning position of 3408 OFDM subcarriers (i.e. 7.61 MHz for the 8 MHz mode and 5.71 MHz for the 6 MHz mode) bandwidth. DVB BlueBook A138 74 9.3.5.2 Broadband Notches Broadband Notches have a bandwidth higher than 47 subcarriers. For Data Slice decoding the receiver tuner shall not tune to a region with a broadband Notch since a reliable L1 decoding cannot be guaranteed (missing L1 blocks cannot be recovered by the preamble FEC in every case). Broadband Notches shall not be inserted in the C2 System unless at least one neighboured continuous L1 signalling block region above 3 408 subcarriers is available. During initial acquisition to a C2 System this allows the receiver to recognize the broadband Notch and to retune to a frequency range with consistent L1 signalling data. Broadband Notches shall always be located between different Data Slices. In case the set of subcarriers of C2 system neighboured to a broadband notch is below 3408 subcarriers (i.e. L1 blocks can’t be decoded in a reliable way), all Data Slices within this set of subcarriers shall use the Data Slice Type 2 and be configured to ‘fixed’ (i.e. DSLICE_CONST_CONF flag in L1 part 2 signalling is set to 1). In any case the minimum set of subcarriers of a C2 System neighboured to a broadband notch is 841 subcarriers, ensuring that at least 5 continual pilots are available in the related frequency band for proper signal processing in receivers. 9.4 Data Slice generation Data Slices can be treated as separate channels and no interleaving is performed between different ones. Each Data Slice is identified by a start OFDM carrier K DS , min and an end OFDM carrier K DS , max , whereby K DS , min ! K min and K DS , max < K max . Data Slices shall only start and end at scattered pilots positions and end next to a scattered pilot position. Additionally, Data Slices shall not overlap each other. 9.4.1 Location of Data Slices 9.4.1.1 Start and end OFDM carrier of Data Slices The start and the end frequency of the Data Slices is signalled in the Layer 1 Signalling by means of the START_FREQUENCY, the DSLICE_TUNE_POS, the DSLICE_OFFSET_LEFT and DSLICE_OFFSET_RIGHT values. While the START_FREQUENCY and the DSLICE_TUNE_POS are quasi static between different C2 Frames, the other two values may change every frame, depending on the chosen mode. As the Data Slices shall only start at scattered pilots positions and end next to them, the signalling depends on the value DX (which depends on the Guard Interval size). Furthermore, the value of START_FREQUENCY shall be a multiple of DX as well. Thus, the start frequency and end carrier of a Data Slice shall be: K DS ,min = (DSLICE _ TUNING _ POS + DSLICE _ OFFSET _ LEFT )! DX + START _ FREQUENCY K DS ,max = (DSLICE _ TUNING _ POS + DSLICE _ OFFSET _ RIGHT )" DX + START _ FREQUENCY ! 1 9.4.1.2 Maximum width of Data Slices The width of each Data Slice shall not exceed 3 408 OFDM carriers (7,61 MHz for TU = 448!s ), i.e.: K DS ,max ! K DS ,min < 3408 If the width of a Data Slice exceeds 3 408 OFDM carriers, the receiver shall ignore the Data Slice, i.e. treat it as not present. DVB BlueBook A138 75 9.4.1.3 Minimum width of Data Slices The Layer 1 signalling may indicate Data Slices without any payload capacity. Such Data Slices may be used if no payload data has to be transmitted. These Data Slices shall be signalled by: DSLICE _ OFFSET _ LEFT = DSLICE _ OFFSET _ RIGHT No Data Slices with negative width shall be signalled. If Data Slices with negative width are received, these Data Slices shall be ignored by the receiver. If DSLICE_TYPE is '0' and the Data Slice has a width > 0, the Data Slice shall be able to transmit at least one complete Data Slice Packet. 9.4.1.4 Notches within Data Slices Data Slices may contain Notches. The cells within these Notches shall not carry any transmit power. The start and the end carrier of each Notch are indicated within the corresponding Layer 1 signalling. Notches always start and end next to scattered pilot positions. The start carrier and end carrier of each Notch shall be defined as: K N ,min = NOTCH _ START ! DX + START _ FREQUENCY + 1 K N ,max = (NOTCH _ START + NOTCH _ WIDTH )" DX + START _ FREQUENCY ! 1 where DX is the guard interval dependent pilots repartition. Notches having a NOTCH_WIDTH of 0 shall be ignored by the receiver. 9.4.2 Number of payload cells in Data Slice The number of payload cells per Data Slice per OFDM Symbol N DS equals (K DS , max ! K DS , min + 1) minus the number of continual pilots, scattered pilots, reserved tones and cells that are located in Notches. Please note that the number of payload cells in a Data Slice may vary between different OFDM Symbols in one C2 Frame. 9.4.3 Mapping of the Data Slice Packets The Data Slice Packets shall be mapped onto the NDS Data Cells per OFDM Symbol. Data Cells within a Data Slice are cells, which are not pilots, reserved tones or Notches. The Data Slice Packet data g 0 ,... g N X !1. shall be mapped onto the Data Cells am , l , k of the OFDM Symbol in an increasing value of the carrier index k within the range: K DS ,min ! k ! K DS ,max . If the data of one Data Slice Packet exceeds the length of a C2 Frame, the data shall cross seamlessly into the next C2 Frame. If a Data Slice was not present in the previous C2 Frame (a Data Slice of width 0 was present), the Data Slice Packet data shall be mapped to the first available Data Cell of the Data Slice. For DSLICE_TYPE='0' the start of the first complete Data Slice Packet shall be signalled within the PLP_START value of the Layer 1 signalling. If the Data Slice has zero width, the PLP_START shall be set to zero. If no payload data is to be transmitted for DATA_SLICE_TYPE '1', dummy Data Slice Packets shall be transmitted instead (see clause 7.2). DVB BlueBook A138 76 9.4.4 Time Interleaving The time interleaver (TI) shall operate at Data Slice level. The parameters of time interleaving may be different for different Data Slices within a C2 System, while it is the same for all PLPs within a Data Slice. The exact number and positions of all pilots and reserved tones within each Data Slice shall be known to the TI prior to frame building. The Data Cells from a Data Slice builder for each Data Slice shall be grouped into TI blocks. The start and/or end of Data Slice Packets of each PLP constituting the Data Slice may not be aligned with those of TI blocks. Each TI block within the Data Slice shall contain NDSLICE_TI_DATA_CELL payload Data Cells carried by NDSLICE_TI_DEPTH Data Symbols. NDSLICE_TI_DEPTH is known from DSLICE_TI_DEPTH signalled in L1 signalling part2 (see clause 8.3). NDSLICE_TI_DATA_CELL is calculated as: l N DSLICE _ TI _ DATA _ CELL = !N DS l"TI block l where N DS is the number of payload cells of l-th Data Symbol of the TI block, which is described in clause 9.4.2 in more detail. Every TI block of the Data Slice shall have the same number of payload cells. The length of time interleaving period TP is defined as: TP = TS ! N DSLICE _ TI _ DEPTH , where TS is a total OFDM Symbol duration. Simple and typical TI memory space (one per Data Slice) is identical to the space of NDSLICE_TI_DEPTH Data Symbols within the Data Slice. In other words, the TI memory space includes the positions of all pilot and reserved tone cells as well as NDSLICE_TI_DATA_CELL Data Cells. The pilot and reserved tone cell positions within TI memory may be filled with dummy zeros. Notch bands in the Data Slice may be discarded from the TI memory. The TI shall store in the TI memories the Data Cells from the output of Data Slice builder. As the number and position of all pilots and reserved tones are previously known to the TI, the Data Cells should not be stored in pilot or reserved tone positions. Reserved pilot and reserved tone positions in the TI memory guarantees the time interleaving structure of Data Cells (shown in figure 37) are unchanged after frame building. Typically, the time interleaver will also act as a buffer for Data Slice cells prior to the process of frame building. This can be achieved by means of two memory banks for each Data Slice. The first TI block is written to the first bank. The second TI block is written to the second bank whilst the first bank is being read from and so on, see figure 36. DVB BlueBook A138 77 Data Slice 1 Memory Data Slice 2 Memory WRITE Data Slice k Memory Memory Bank A Data Slice 1 Memory Data Slice 2 Memory READ Data Slice k Memory Memory Bank B Figure 36: Example of operation of time interleaver memory banks The TI shall be a twisted row-column block interleaver: the number of rows Nr in the interleaver is equal to the time interleaving depth NDSLICE_TI_DEPTH and the number of columns Nc to Data Slice width NDSLICE_WIDTH. The Data Slice width is identified by: N DSLICE _ WIDTH = K DS ,max ! K DS ,min + 1, where KDS,max and KDS,min is the start and end OFDM Cell index of the Data Slice respectively. More details of Data Slice configuration is described in clause 9.4.1.1. The input cells are serially written into the interleaver memory in a diagonal direction, and serially read out row-wise as shown in figure 37. Assuming the index i ranging from 0 to (NDSLICE_TI_CELL-1), where NDSLICE_TI_CELL is the total number of cells within NDSLICE_TI_DEPTH Data Symbols of the Data Slice and calculated as: N DSLICE _ TI _ CELL = N DSLICE _ TI _ DEPTH ! N DSLICE _ WIDTH . The column index Ci, the row index Ri and associated twisting parameter TCi is calculated as: Ci = i mod N c TCi = Ci mod N r Ri = (TCi + (i div N c )) mod N r . DVB BlueBook A138 78 Then, every cell positions in the TI memory is uniquely defined by a coordinate (Ri, Ci). The input Data Cells dk (k = 0, … , NDSLICE_TI_DATA_CELL-1) are written in positions (Ri, Ci) (i = 0, … , NDSLICE_TI_CELL-1) within the TI memory only if the positions are assigned for payload Data Cells: k = 0; for (i = 0; i < N DSLICE _ TI _ CELL ; i = i + 1) { GENERATE ( Ri , Ci ); if ( Ri , Ci ) = data cell position { WRITE d k to ( Ri , Ci ); k = k + 1; } } Note that the TI outputs only Data Cells from the TI memory excluding dummy pilot cells and reserved tones. As a result, the input and output Data Cell rates are unchanged after time interleaving. DVB BlueBook A138 79 First cell of TI block WRITE SP CP + Row 0 , ! ! ! ! !)) &' *# " ! ! ! ! !*$ !(% %( !* ! ! ! ! !%( !!) %' ! ! ! ! !%" !$! "* #( ! ! ! ! !") !$& '# #' ! ! ! ! !'$ !#" &! )% ( ! ! ! ! !)* && *) ' ! ! ! !*# !(" %! !% ! ! ! ! !%! !!* $# ! ! ! ! !%' !$$ "% #! ! ! ! ! !"* !#( ') #& ! ! ! ! !'# !#' &$ )" ! ! ! ! ! !)% !(( ** & ! ! ! ! !*) !(' %$ !" ! ! ! ! !%$ %& $) ! ! ! ! !%& !$# "" #$ ! ! ! ! !"% !#! '* )( ! ! ! ! !') !#& &# )' $ ! ! ! ! !)" !(! *% !( ! ! ! ! !** !(& %# !' ! ! ! ! !!% "( $* ! ! ! ! !"( !$) "' ## ! ! ! !"" !#$ '% )! ! ! ! ! !)( &) )& # ! ! ! ! !)' !($ *" !! ! ! ! ! !*% !!( %) !& ! ! ! !%# !!" "! $% ! ! ! ! !"! !$* "& #) ! ! ! ! !"' !## '" )$ ! ! ! ! ! !)! &* *( ) ! ! ! ! !)& !(# !$ ! ! ! ! !*" !!! %* $( ! ! ! !%) !!' "$ $" ! ! ! ! !"$ !$% '( #* ! ! ! ! !"& !#) '' )# ! ! ! ! ! !)$ &% *! * ! ! ! ! !*( !() *' !# ! ! ! ! !*' !!$ %% $! ! ! ! !%* !!& "# $' ! ! ! ! !"# !$" '! #% ! ! ! ! !'( !#* '& )) ! Row Nr-1 ! ! ! ! !)# &" *$ % ! ! ! ! !*! !(* *& !) ! ! ! ! !*& !!# %" $$ ! ! ! !%% !$( ") $& ! ! ! ! !$' '$ #" ! ! ! ! !'! !#% &( )* Column Column 0 Nc-1 First cell of TI block READ SP CP Row 0 + ! ! ! ! !)) &' *# " ! ! ! ! !*$ !(% %( !* ! ! ! ! !%( !!) %' ! ! ! ! !%" !$! "* #( ! ! ! ! !") !$& '# #' ! ! ! ! !'$ !#" &! , )% ( ! ! ! ! !)* && *) ' ! ! ! !*# !(" %! !% ! ! ! ! !%! !!* $# ! ! ! ! !%' !$$ "% #! ! ! ! ! !"* !#( ') #& ! ! ! ! !'# !#' &$ )" ! ! ! ! ! !)% !(( ** & ! ! ! ! !*) !(' %$ !" ! ! ! ! !%$ %& $) ! ! ! ! !%& !$# "" #$ ! ! ! ! !"% !#! '* )( ! ! ! ! !') !#& &# )' $ ! ! ! ! !)" !(! *% !( ! ! ! ! !** !(& %# !' ! ! ! ! !!% "( $* ! ! ! ! !"( !$) "' ## ! ! ! !"" !#$ '% )! ! ! ! ! !)( &) )& # ! ! ! ! !)' !($ *" !! ! ! ! ! !*% !!( %) !& ! ! ! !%# !!" "! $% ! ! ! ! !"! !$* "& #) ! ! ! ! !"' !## '" )$ ! ! ! ! ! !)! &* *( ) ! ! ! ! !)& !(# !$ ! ! ! ! !*" !!! %* $( ! ! ! !%) !!' "$ $" ! ! ! ! !"$ !$% '( #* ! ! ! ! !"& !#) '' )# ! ! ! ! ! !)$ &% *! * ! ! ! ! !*( !() *' !# ! ! ! ! !*' !!$ %% $! ! ! ! !%* !!& "# $' ! ! ! ! !"# !$" '! #% ! ! ! ! !'( !#* '& )) ! Row Nr-1 ! ! ! ! !)# &" *$ % ! ! ! ! !*! !(* *& !) ! ! ! ! !*& !!# %" $$ ! ! ! !%% !$( ") $& ! ! ! ! !$' '$ #" ! ! ! ! !'! !#% &( )* Column Column 0 Nc-1 Figure 37: Time interleaver (Dx=12, GI=1/64, Nr=8, Nc=48, DSLICE_WIDTH=4) DVB BlueBook A138 80 9.4.5 Frequency Interleaving The frequency interleaver operates on the Data Cells of one OFDM Symbol that comprise the slice of cells allocated to a given Data Slice. Its purpose is to map the Data Cells of this slice from the frame builder onto the Ndata data carriers allocated for the given Data Slice in each OFDM Symbol. For Data Slice n, the frequency interleaver shall process the Data Cells Xm,l = (xm,l,0 , xm,l,1 , …, xm,l, N ) of the data(n)-1 OFDM Symbol l of C2 Frame m from the frame builder. The parameter Mmax is defined as 4096, i.e. the smallest power of 2 higher than the maximum Data Slice width of 3 408 OFDM Cells. For Data Slice n with Ndata(n) data carriers in OFDM symbol l of Mmax sub-carriers the interleaved vector Am,l = (am,l,0, am,l,1, am,l,2...am,l,N (n)-1) is defined by: data am,l,q = xm,l, H0(q) for even symbols of the frame (l mod 2 = 0) for q= 0,...,Ndata(n)-1 a m,l,q = x m,l,H1(q) for odd symbols of the frame (l mod 2 = 1) for q = 0,...,Ndata(n)-1 H0(q) and H1(q) are permutation function based on the sequence R'i defined by the following. An (Nr - 1) bit binary word R'i is defined, with Nr = log2 Mmax, where R'i takes the following values: i = 0,1: R'i [Nr-2, Nr-3,...,1,0]= 0,0,...,0,0 i = 2: R'i [Nr-2, Nr-3,...,1,0] = 0,0,...,0,1 2 < i < Mmax: { R'i [Nr-3, Nr-4,...,1,0] = R'i-1 [Nr-2, Nr-3,...,2,1]; where: Nr = 12 and R'i [10] = R'i-1 [0] ! R'i-1[2] . A vector Ri is derived from the vector R'i by the bit permutations given in Table 32. Table 32: Bit permutations for the 4K mode R'i bit positions 10 9 8 7 6 5 4 3 2 1 0 Ri bit positions (H0) 7 10 5 8 1 2 4 9 0 3 6 Ri bit positions (H1) 6 2 7 10 8 0 3 4 1 9 5 Each permutation function H(q) is defined by the following algorithm: q = 0; for (i = 0; i < Mmax; i = i + 1) Nr "2 N r "1 j { H (q) = (i mod 2).2 + ! R ( j).2 ; i j =0 if (H(q)