Esempio n. 1
0
 public ResidueTemplate(
     ResidueType residueType,
     ResidueLimitType limitType,
     int grouping,
     ResidueEntry residue,
     IStaticCodeBook bookAux,
     IStaticCodeBook booxAuxManaged,
     IStaticBookBlock booksBase,
     IStaticBookBlock booksBaseManaged)
 {
     ResidueType      = residueType;
     LimitType        = limitType;
     Residue          = residue;
     BookAux          = bookAux;
     BookAuxManaged   = booxAuxManaged;
     BooksBase        = booksBase;
     BooksBaseManaged = booksBaseManaged;
     Grouping         = grouping;
 }
Esempio n. 2
0
    private static void FillBooks(
        CodecSetup codecSetup,
        ResidueEntry r,
        IStaticCodeBook bookAux,
        IStaticBookBlock bookBlock)
    {
        for (var i = 0; i < r.Partitions; i++)
        {
            for (var k = 0; k < 4; k++)
            {
                if ((i < bookBlock.Books.Length) &&
                    (k < bookBlock.Books[i].Length) &&
                    (bookBlock.Books[i][k] != null))
                {
                    r.SecondStages[i] |= 1 << k;
                }
            }
        }

        r.GroupBook = GetOrAddBook(codecSetup, bookAux);

        var booklist = 0;

        for (var i = 0; i < r.Partitions; i++)
        {
            for (var k = 0; k < 4; k++)
            {
                if ((i < bookBlock.Books.Length) &&
                    (k < bookBlock.Books[i].Length))
                {
                    var sourceBook = bookBlock.Books[i][k];
                    if (sourceBook != null)
                    {
                        var bookid = GetOrAddBook(codecSetup, sourceBook);
                        r.BookList[booklist++] = bookid;
                    }
                }
            }
        }
    }