Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/media/libvpx/libvpx/vp9/common/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 47 kB image not shown  

Quelle  vp9_scan.c

  Sprache: C
 

/*
 *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */


#include <assert.h>

#include "vp9/common/vp9_scan.h"

DECLARE_ALIGNED(16static const int16_t, default_scan_4x4[16]) = {
  0415821293613107141115,
};

DECLARE_ALIGNED(16static const int16_t, col_scan_4x4[16]) = {
  0481125921361037141115,
};

DECLARE_ALIGNED(16static const int16_t, row_scan_4x4[16]) = {
  0142536897121013111415,
};

DECLARE_ALIGNED(16static const int16_t, default_scan_8x8[64]) = {
  0,  8,  1,  169,  2,  1724103,  182532114,  26,
  3319401234275,  41204813354228216,
  49563643297,  14505744223715515830,
  45235259383160534639615447625563,
};

DECLARE_ALIGNED(16static const int16_t, col_scan_8x8[64]) = {
  0,  8,  161,  249,  32172,  4025103318483,
  2641115619344,  492742123520575028,
  5,  431336585121446,  2959371452227,
  45603015385323463161395447625563,
};

DECLARE_ALIGNED(16static const int16_t, row_scan_8x8[64]) = {
  0,  1,  2,  8,  9,  3,  16104,  1711245,  182512,
  1926326,  132033277,  34402128411435,
  48422936492243155637504430572351,
  58453852315953466039614754556263,
};

DECLARE_ALIGNED(16static const int16_t, default_scan_16x16[256]) = {
  0,   16,  1,   32,  17,  2,   48,  33,  18,  3,   64,  34,  49,  19,  65,
  80,  50,  4,   35,  66,  20,  81,  96,  51,  5,   36,  82,  97,  67,  112,
  21,  52,  98,  37,  83,  1136,   68,  12853,  22,  99,  11484,  7,
  12938,  69,  10011514413085,  54,  23,  8,   14539,  70,  116,
  10113116014655,  86,  24,  71,  13211716140,  9,   102147,
  17616287,  56,  25,  13311817714872,  10341,  16310,  192,
  17888,  57,  13414911926,  16473,  10419342,  17920811,
  13589,  16512015058,  19418027,  74,  20910515113643,
  90,  22416619518112121059,  12,  15210616719675,  137,
  22521124018212291,  28,  19713,  22616818315344,  212,
  13810724160,  29,  12319818422716924276,  21315445,
  92,  14,  19913961,  22821417018524310877,  15530,  15,
  20022912421524493,  46,  18617120110914023062,  216,
  24531,  12578,  15623147,  18720221794,  24614163,  232,
  17211024715779,  21820312623318824895,  173142219,
  111249234158127189204250235143174220205159251,
  190221175236237191206252222253207238223254239,
  255,
};

DECLARE_ALIGNED(16static const int16_t, col_scan_16x16[256]) = {
  0,   16,  32,  48,  1,   64,  17,  80,  33,  96,  49,  2,   65,  11218,
  81,  34,  12850,  97,  3,   66,  14419,  11335,  82,  16098,  51,
  1294,   67,  17620,  11414583,  36,  99,  13052,  1925,   161,
  68,  11521,  14684,  20817737,  13110053,  16222469,  6,
  11619314785,  22,  24013238,  17810116354,  20911770,
  7,   14819486,  17922523,  13339,  1648,   10221024155,
  19511814971,  18024,  87,  22613416521140,  10356,  72,
  1501962421199,   18122788,  16625,  13541,  10421257,
  15119712073,  24318213616721389,  10,  228105152198,
  26,  42,  12118324416858,  13722974,  21490,  153199184,
  11,  10624527,  12223016943,  21559,  20013818524675,
  12,  91,  15421623110728,  44,  20112317060,  24723276,
  13913,  92,  21718624815510829,  12445,  20223317161,
  14,  77,  14015,  24993,  30,  18715621846,  10912562,  172,
  78,  20331,  14123494,  47,  18863,  15711025021979,  126,
  20417314295,  189111235158220251127174143205236,
  159190221252175206237191253222238207254223239,
  255,
};

DECLARE_ALIGNED(16static const int16_t, row_scan_16x16[256]) = {
  0,   1,   2,   16,  3,   17,  4,   18,  32,  5,   33,  19,  6,   34,  48,
  20,  49,  7,   35,  21,  50,  64,  8,   36,  65,  22,  51,  37,  80,  9,
  66,  52,  23,  38,  81,  67,  10,  53,  24,  82,  68,  96,  39,  11,  54,
  83,  97,  69,  25,  98,  84,  40,  11255,  12,  70,  99,  11385,  26,
  41,  56,  11410013,  71,  12886,  27,  11510112942,  57,  72,
  11614,  87,  13010214473,  13111728,  58,  15,  88,  43,  145,
  10313214611874,  16089,  13310429,  59,  14711944,  161,
  14890,  10513416212017675,  13514930,  60,  16317745,
  12191,  10616417815019213616517931,  15119376,  122,
  61,  13719410715218020846,  16616719592,  181138209,
  12315322419677,  16821018224010819762,  154225183,
  16921147,  13993,  18422621224119817012415519978,
  21318510922720063,  228242140214171186156229243,
  12594,  20124421521623014118720279,  172110157245,
  21723195,  246232126203247233173218142111158188,
  248127234219249189204143174159250235205220175,
  190251221191206236207237252222253223238239254,
  255,
};

DECLARE_ALIGNED(16static const int16_t, default_scan_32x32[1024]) = {
  0,    32,   1,    64,  33,   2,    96,   65,   34,   128,  3,    97,   66,
  160,  129,  35,   98,  4,    67,   130,  161,  192,  36,   99,   224,  5,
  162,  193,  68,   13137,   100,  225,  194,  256,  163,  69,   132,  6,
  226,  257,  288,  195101,  164,  38,   258,  7,    227,  289,  133,  320,
  70,   196,  165,  290259,  228,  39,   321,  102,  352,  8,    197,  71,
  134,  322,  291,  260353,  384,  229,  166,  103,  40,   354,  323,  292,
  135,  385,  198,  26172,   9,    416,  167,  386,  355,  230,  324,  104,
  293,  41,   417,  199136,  262,  387,  448,  325,  356,  10,   73,   418,
  231,  168,  449,  294388,  105,  419,  263,  42,   200,  357,  450,  137,
  480,  74,   326,  23211,   389,  169,  295,  420,  106,  451,  481,  358,
  264,  327,  201,  43,  138,  512,  482,  390,  296,  233,  170,  421,  75,
  452,  359,  12,   513265,  483,  328,  107,  202,  514,  544,  422,  391,
  453,  139,  44,   234484,  297,  360,  171,  76,   515,  545,  266,  329,
  454,  13,   423,  203108,  546,  485,  576,  298,  235,  140,  361,  330,
  172,  547,  45,   455267,  577,  486,  77,   204,  362,  608,  14,   299,
  578,  109,  236,  487609,  331,  141,  579,  46,   15,   173,  610,  363,
  78,   205,  16,   110237,  611,  142,  47,   174,  79,   206,  17,   111,
  238,  48,   143,  80,  175,  112,  207,  49,   18,   239,  81,   113,  19,
  50,   82,   114,  51,  83,   115,  640,  516,  392,  268,  144,  20,   672,
  641,  548,  517,  424393,  300,  269,  176,  145,  52,   21,   704,  673,
  642,  580,  549,  518456,  425,  394,  332,  301,  270,  208,  177,  146,
  84,   53,   22,   736705,  674,  643,  612,  581,  550,  519,  488,  457,
  426,  395,  364,  333302,  271,  240,  209,  178,  147,  116,  85,   54,
  23,   737,  706,  675613,  582,  551,  489,  458,  427,  365,  334,  303,
  241,  210,  179,  11786,   55,   738,  707,  614,  583,  490,  459,  366,
  335,  242,  211,  11887,   739,  615,  491,  367,  243,  119,  768,  644,
  520,  396,  272,  14824,   800,  769,  676,  645,  552,  521,  428,  397,
  304,  273,  180,  14956,   25,   832,  801,  770,  708,  677,  646,  584,
  553,  522,  460,  429398,  336,  305,  274,  212,  181,  150,  88,   57,
  26,   864,  833,  802771,  740,  709,  678,  647,  616,  585,  554,  523,
  492,  461,  430,  399368,  337,  306,  275,  244,  213,  182,  151,  120,
  89,   58,   27,   865834,  803,  741,  710,  679,  617,  586,  555,  493,
  462,  431,  369,  338307,  245,  214,  183,  121,  90,   59,   866,  835,
  742,  711,  618,  587494,  463,  370,  339,  246,  215,  122,  91,   867,
  743,  619,  495,  371247,  123,  896,  772,  648,  524,  400,  276,  152,
  28,   928,  897,  804773,  680,  649,  556,  525,  432,  401,  308,  277,
  184,  153,  60,   29,  960,  929,  898,  836,  805,  774,  712,  681,  650,
  588,  557,  526,  464433,  402,  340,  309,  278,  216,  185,  154,  92,
  61,   30,   992,  961930,  899,  868,  837,  806,  775,  744,  713,  682,
  651,  620,  589,  558527,  496,  465,  434,  403,  372,  341,  310,  279,
  248,  217,  186,  155124,  93,   62,   31,   993,  962,  931,  869,  838,
  807,  745,  714,  683621,  590,  559,  497,  466,  435,  373,  342,  311,
  249,  218,  187,  12594,   63,   994,  963,  870,  839,  746,  715,  622,
  591,  498,  467,  374343,  250,  219,  126,  95,   995,  871,  747,  623,
  499,  375,  251,  127900,  776,  652,  528,  404,  280,  156,  932,  901,
  808,  777,  684,  653560,  529,  436,  405,  312,  281,  188,  157,  964,
  933,  902,  840,  809778,  716,  685,  654,  592,  561,  530,  468,  437,
  406,  344,  313,  282220,  189,  158,  996,  965,  934,  903,  872,  841,
  810,  779,  748,  717686,  655,  624,  593,  562,  531,  500,  469,  438,
  407,  376,  345,  314283,  252,  221,  190,  159,  997,  966,  935,  873,
  842,  811,  749,  718687,  625,  594,  563,  501,  470,  439,  377,  346,
  315,  253,  222,  191998,  967,  874,  843,  750,  719,  626,  595,  502,
  471,  378,  347,  254223,  999,  875,  751,  627,  503,  379,  255,  904,
  780,  656,  532,  408284,  936,  905,  812,  781,  688,  657,  564,  533,
  440,  409,  316,  285968,  937,  906,  844,  813,  782,  720,  689,  658,
  596,  565,  534,  472441,  410,  348,  317,  286,  1000969,  938,  907,
  876,  845,  814,  783752,  721,  690,  659,  628,  597,  566,  535,  504,
  473,  442,  411,  380349,  318,  287,  1001970,  939,  877,  846,  815,
  753,  722,  691,  629598,  567,  505,  474,  443,  381,  350,  319,  1002,
  971,  878,  847,  754723,  630,  599,  506,  475,  382,  351,  1003879,
  755,  631,  507,  383908,  784,  660,  536,  412,  940,  909,  816,  785,
  692,  661,  568,  537444,  413,  972,  941,  910,  848,  817,  786,  724,
  693,  662,  600,  569538,  476,  445,  414,  1004973,  942,  911,  880,
  849,  818,  787,  756725,  694,  663,  632,  601,  570,  539,  508,  477,
  446,  415,  1005974943,  881,  850,  819,  757,  726,  695,  633,  602,
  571,  509,  478,  4471006975,  882,  851,  758,  727,  634,  603,  510,
  479,  1007883,  759635,  511,  912,  788,  664,  540,  944,  913,  820,
  789,  696,  665,  572541,  976,  945,  914,  852,  821,  790,  728,  697,
  666,  604,  573,  5421008977,  946,  915,  884,  853,  822,  791,  760,
  729,  698,  667,  636605,  574,  543,  1009978,  947,  885,  854,  823,
  761,  730,  699,  637606,  575,  1010979,  886,  855,  762,  731,  638,
  607,  1011887,  763639,  916,  792,  668,  948,  917,  824,  793,  700,
  669,  980,  949,  918856,  825,  794,  732,  701,  670,  1012981,  950,
  919,  888,  857,  826795,  764,  733,  702,  671,  1013982,  951,  889,
  858,  827,  765,  734703,  1014983,  890,  859,  766,  735,  1015891,
  767,  920,  796,  952921,  828,  797,  984,  953,  922,  860,  829,  798,
  1016985,  954,  923892,  861,  830,  799,  1017986,  955,  893,  862,
  831,  1018987,  894863,  1019895,  924,  956,  925,  988,  957,  926,
  1020989,  958,  9271021990,  959,  1022991,  1023,
};

// Neighborhood 2-tuples for various scans and blocksizes,
// in {top, left} order for each position in corresponding scan order.
DECLARE_ALIGNED(16static const int16_t,
                default_scan_4x4_neighbors[17 * MAX_NEIGHBORS]) = {
  00000,  01444,  1,  18,  8,  5,  82,
  22591269361013710111400,
};

DECLARE_ALIGNED(16static const int16_t,
                col_scan_4x4_neighbors[17 * MAX_NEIGHBORS]) = {
  0000440088,  1,  155,  1,  19,
  922662233101077111100,
};

DECLARE_ALIGNED(16static const int16_t,
                row_scan_4x4_neighbors[17 * MAX_NEIGHBORS]) = {
  00000011,  4,  4,  2,  2,  5,  5,  4,  48,
  8668899121210101313141400,
};

DECLARE_ALIGNED(16static const int16_t,
                col_scan_8x8_neighbors[65 * MAX_NEIGHBORS]) = {
  0,  0,  0,  0,  8,  8,  0,  0,  16161,  1,  24249,  9,  1,  1,  32,
  3217172,  2,  2525101040402,  2,  181833333,  3,
  4848111126263,  3,  4141191934344,  4,  272712,
  124949424220204,  4,  35355,  5,  282850504343,
  131336365,  5,  2121515129296,  6,  444414146,
  6,  3737525222227,  7,  30304545151538382323,
  53533131464639395454474755550,  0,
};

DECLARE_ALIGNED(16static const int16_t,
                row_scan_8x8_neighbors[65 * MAX_NEIGHBORS]) = {
  0,  0,  0,  0,  1,  1,  0,  0,  8,  8,  2,  2,  8,  8,  9,  9,  3,  3,  16,
  16101016164,  4,  171724241111181825252424,
  5,  5,  12121919323226266,  6,  33333232202027,
  27404013133434404041412828353548482121,
  42421414484836364949434329295656222250,
  50575744443737515130305858525245455959,
  38386060464653535454616162620,  0,
};

DECLARE_ALIGNED(16static const int16_t,
                default_scan_8x8_neighbors[65 * MAX_NEIGHBORS]) = {
  0,  0,  0,  0,  0,  0,  8,  8,  1,  8,  1,  1,  9,  1616162,  9,  2,
  2,  1017172424243,  103,  3,  1825253211183232,
  4,  11263319264,  4,  3340121940405,  12273434,
  41202713205,  5,  414848482835354221286,  6,
  6,  13424949563643142129367,  144350505722,
  29374415224451515830372330525945523845,
  31385360465339465461475455620,  0,
};

DECLARE_ALIGNED(16static const int16_t,
                col_scan_16x16_neighbors[257 * MAX_NEIGHBORS]) = {
  0,   0,   0,   0,   16,  16,  32,  32,  0,   0,   48,  48,  1,   1,   64,
  64,  17,  17,  80,  80,  33,  33,  1,   1,   49,  49,  96,  96,  2,   2,
  65,  65,  18,  18,  11211234,  34,  81,  81,  2,   2,   50,  50,  128,
  1283,   3,   97,  97,  19,  19,  66,  66,  14414482,  82,  35,  35,
  1131133,   3,   51,  51,  1601604,   4,   98,  98,  12912967,
  67,  20,  20,  83,  83,  11411436,  36,  1761764,   4,   145145,
  52,  52,  99,  99,  5,   5,   13013068,  68,  19219216116121,
  21,  11511584,  84,  37,  37,  14614620820853,  53,  5,   5,
  10010017717713113169,  69,  6,   6,   22422411611622,
  22,  16216285,  85,  14714738,  38,  19319310110154,  54,
  6,   6,   13213217817870,  70,  1631632092097,   7,   117,
  11723,  23,  1481487,   7,   86,  86,  19419422522539,  39,
  17917910210213313355,  55,  1641648,   8,   71,  71,  210,
  21011811814914919519524,  24,  87,  87,  40,  40,  56,  56,
  1341341801802262261031038,   8,   16516521121172,
  72,  1501509,   9,   11911925,  25,  88,  88,  19619641,  41,
  13513518118110410457,  57,  227227166166120120151,
  15119719773,  73,  9,   9,   21221289,  89,  136136182182,
  10,  10,  26,  26,  10510516716722822815215242,  42,  121,
  12121321358,  58,  19819874,  74,  137137183183168168,
  10,  10,  90,  90,  22922911,  11,  10610621421415315327,
  27,  19919943,  43,  18418412212216916923023059,  59,
  11,  11,  75,  75,  13813820020021521591,  91,  12,  12,  28,
  28,  18518510710715415444,  44,  23123121621660,  60,
  12312312,  12,  76,  76,  20120117017023223213913992,
  92,  13,  13,  10810829,  29,  18618621721715515545,  45,
  13,  13,  61,  61,  12412414,  14,  23323377,  77,  14,  14,  171,
  17114014020220230,  30,  93,  93,  10910946,  46,  156156,
  62,  62,  18718715,  15,  12512521821878,  78,  31,  31,  172,
  17247,  47,  14114194,  94,  23423420320363,  63,  110110,
  18818815715712612679,  79,  17317395,  95,  219219142,
  142204204235235111111158158127127189189220220,
  143143174174205205236236159159190190221221175,
  175237237206206222222191191238238207207223223,
  2392390,   0,
};

DECLARE_ALIGNED(16static const int16_t,
                row_scan_16x16_neighbors[257 * MAX_NEIGHBORS]) = {
  0,   0,   0,   0,   1,   1,   0,   0,   2,   2,   16,  16,  3,   3,   17,
  17,  16,  16,  4,   4,   32,  32,  18,  18,  5,   5,   33,  33,  32,  32,
  19,  19,  48,  48,  6,   6,   34,  34,  20,  20,  49,  49,  48,  48,  7,
  7,   35,  35,  64,  64,  21,  21,  50,  50,  36,  36,  64,  64,  8,   8,
  65,  65,  51,  51,  22,  22,  37,  37,  80,  80,  66,  66,  9,   9,   52,
  52,  23,  23,  81,  81,  67,  67,  80,  80,  38,  38,  10,  10,  53,  53,
  82,  82,  96,  96,  68,  68,  24,  24,  97,  97,  83,  83,  39,  39,  96,
  96,  54,  54,  11,  11,  69,  69,  98,  98,  11211284,  84,  25,  25,
  40,  40,  55,  55,  11311399,  99,  12,  12,  70,  70,  11211285,
  85,  26,  26,  11411410010012812841,  41,  56,  56,  71,  71,
  11511513,  13,  86,  86,  12912910110112812872,  72,  130,
  13011611627,  27,  57,  57,  14,  14,  87,  87,  42,  42,  144144,
  10210213113114514511711773,  73,  14414488,  88,  132,
  13210310328,  28,  58,  58,  14614611811843,  43,  160160,
  14714789,  89,  10410413313316116111911916016074,
  74,  13413414814829,  29,  59,  59,  16216217617644,  44,
  12012090,  90,  105105163163177177149149176176135,
  13516416417817830,  30,  15015019219275,  75,  121121,
  60,  60,  13613619319310610615115117917919219245,
  45,  16516516616619419491,  91,  180180137137208208,
  12212215215220820819519576,  76,  167167209209181,
  18122422410710719619661,  61,  153153224224182182,
  16816821021046,  46,  13813892,  92,  183183225225211,
  21124024019719716916912312315415419819877,  77,
  21221218418410810822622619919962,  62,  227227241,
  241139139213213170170185185155155228228242242,
  12412493,  93,  200200243243214214215215229229140,
  14018618620120178,  78,  171171109109156156244244,
  21621623023094,  94,  245245231231125125202202246,
  246232232172172217217141141110110157157187187,
  247247126126233233218218248248188188203203142,
  142173173158158249249234234204204219219174174,
  189189250250220220190190205205235235206206236,
  236251251221221252252222222237237238238253253,
  2542540,   0,
};

DECLARE_ALIGNED(16static const int16_t,
                default_scan_16x16_neighbors[257 * MAX_NEIGHBORS]) = {
  0,   0,   0,   0,   0,   0,   16,  16,  1,   16,  1,   1,   32,  32,  17,
  32,  2,   17,  2,   2,   48,  48,  18,  33,  33,  48,  3,   18,  49,  64,
  64,  64,  34,  49,  3,   3,   19,  34,  50,  65,  4,   19,  65,  80,  80,
  80,  35,  50,  4,   4,   20,  35,  66,  81,  81,  96,  51,  66,  96,  96,
  5,   20,  36,  51,  82,  97,  21,  36,  67,  82,  97,  1125,   5,   52,
  67,  11211237,  52,  6,   21,  83,  98,  98,  11368,  83,  6,   6,
  11312822,  37,  53,  68,  84,  99,  99,  11412812811412969,
  84,  38,  53,  7,   22,  7,   7,   12914423,  38,  54,  69,  100115,
  85,  10011513014414413014539,  54,  70,  85,  8,   23,  55,
  70,  11613110111614516024,  39,  8,   8,   86,  101131146,
  16016014616171,  86,  40,  55,  9,   24,  117132102117161,
  17613214756,  71,  87,  10225,  40,  1471629,   9,   176176,
  16217772,  87,  41,  56,  11813313314810311810,  25,  148,
  16357,  72,  88,  10317719226,  41,  16317819219210,  10,
  11913473,  88,  14916410411913414942,  57,  178193164,
  17911,  26,  58,  73,  19320889,  10413515012013527,  42,
  74,  89,  20820815016517919416518010512019420943,
  58,  11,  11,  13615190,  10515116618019559,  74,  121136,
  20922419521022422416618110612175,  90,  12,  27,  181,
  19612,  12,  21022515216716718213715228,  43,  196211,
  12213791,  10622524044,  59,  13,  28,  107122182197168,
  18321122615316822624160,  75,  19721213815329,  44,
  76,  91,  13,  13,  18319812313845,  60,  212227198213154,
  16916918422724292,  10761,  76,  13915414,  29,  14,  14,
  18419921322810812319921422824377,  92,  30,  45,  170,
  18515517018520093,  10812413921422946,  61,  200215,
  22924415,  30,  10912462,  77,  14015521523031,  46,  171,
  18618620120121678,  93,  23024512514047,  62,  216231,
  15617194,  10923124614115663,  78,  202217187202110,
  12521723217218723224779,  94,  157172126141203218,
  95,  110233248218233142157111126173188188203234,
  249219234127142158173204219189204143158235250,
  174189205220159174220235221236175190190205236,
  251206221237252191206222237207222238253223238,
  2392540,   0,
};

DECLARE_ALIGNED(16static const int16_t,
                default_scan_32x32_neighbors[1025 * MAX_NEIGHBORS]) = {
  0,   0,    0,   0,    0,   0,    32,  32,   1,   32,  1,   1,    64,  64,
  33,  64,   2,   33,   96,  96,   2,   2,    65,  96,  34,  65,   128128,
  97,  128,  3,   34,   66,  97,   3,   3,    35,  66,  98,  129,  129160,
  160160,  4,   35,   67,  98,   192192,  4,   4,   130161,  161192,
  36,  67,   99,  130,  5,   36,   68,  99,   193224162193,  224224,
  131162,  37,  68,   100131,  5,   5,    194225225256,  256256,
  163194,  69,  100,  132163,  6,   37,   2262576,   6,    195226,
  257288,  101132,  288288,  38,  69,   164195133164,  258289,
  227258,  196227,  7,   38,   289320,  70,  101320320,  7,   7,
  165196,  39,  70,   102133,  290321,  259290228259,  321352,
  352352,  197228,  134165,  71,  102,  8,   39,  322353,  291322,
  260291,  103134,  353384,  166197,  22926040,  71,   8,   8,
  384384,  135166,  354385,  323354,  198229292323,  72,  103,
  261292,  9,   40,   385416,  167198,  104135230261,  355386,
  416416,  293324,  324355,  9,   9,    41,  72,  386417,  199230,
  136167,  417448,  262293,  356387,  73,  104387418,  231262,
  10,  41,   168199,  325356,  418449,  105136448448,  42,  73,
  294325,  200231,  10,  10,   357388,  137168263294,  388419,
  74,  105,  419450,  449480,  326357,  232263295326,  169200,
  11,  42,   106137,  480480,  450481,  358389264295,  201232,
  138169,  389420,  43,  74,   420451,  32735811,  11,   481512,
  233264,  451482,  296327,  75,  106,  170201482513,  512512,
  390421,  359390,  421452,  107138,  12,  43,  202233,  452483,
  265296,  328359,  139170,  44,  75,   483514513544,  234265,
  297328,  422453,  12,  12,   391422,  17120276,  107,  514545,
  453484,  544544,  266297,  203234,  108139329360,  298329,
  140171,  515546,  13,  44,   423454,  235266545576,  454485,
  45,  76,   172203,  330361,  576576,  13,  13,  267298,  546577,
  77,  108,  204235,  455486,  577608,  299330109140,  547578,
  14,  45,   14,  14,   141172,  578609,  33136246,  77,   173204,
  15,  15,   78,  109,  205236,  579610,  11014115,  46,   142173,
  47,  78,   174205,  16,  16,   79,  110,  20623716,  47,   111142,
  48,  79,   143174,  80,  111,  175206,  17,  48,  17,  17,   207238,
  49,  80,   81,  112,  18,  18,   18,  49,   50,  81,  82,  113,  19,  50,
  51,  82,   83,  114,  608608,  484515,  360391236267,  112143,
  19,  19,   640640,  609640,  516547,  485516392423,  361392,
  268299,  237268,  144175,  113144,  20,  51,  20,  20,   672672,
  641672,  610641,  548579,  517548,  486517424455,  393424,
  362393,  300331,  269300,  238269,  176207145176,  114145,
  52,  83,   21,  52,   21,  21,   704704,  673704642673,  611642,
  580611,  549580,  518549,  487518,  456487425456,  394425,
  363394,  332363,  301332,  270301,  239270208239,  177208,
  146177,  115146,  84,  115,  53,  84,   22,  53,  22,  22,   705736,
  674705,  643674,  581612,  550581,  519550457488,  426457,
  395426,  333364,  302333,  271302,  209240178209,  147178,
  85,  116,  54,  85,   23,  54,   706737,  675706582613,  551582,
  458489,  427458,  334365,  303334,  210241179210,  86,  117,
  55,  86,   707738,  583614,  459490,  335366211242,  87,  118,
  736736,  612643,  488519,  364395,  240271116147,  23,  23,
  768768,  737768,  644675,  613644,  520551489520,  396427,
  365396,  272303,  241272,  148179,  11714824,  55,   24,  24,
  800800,  769800,  738769,  676707,  645676614645,  552583,
  521552,  490521,  428459,  397428,  366397304335,  273304,
  242273,  180211,  149180,  118149,  56,  87,  25,  56,   25,  25,
  832832,  801832,  770801,  739770,  708739677708,  646677,
  615646,  584615,  553584,  522553,  491522460491,  429460,
  398429,  367398,  336367,  305336,  274305243274,  212243,
  181212,  150181,  119150,  88,  119,  57,  88,  26,  57,   26,  26,
  833864,  802833,  771802,  709740,  678709647678,  585616,
  554585,  523554,  461492,  430461,  399430337368,  306337,
  275306,  213244,  182213,  151182,  89,  12058,  89,   27,  58,
  834865,  803834,  710741,  679710,  586617555586,  462493,
  431462,  338369,  307338,  214245,  18321490,  121,  59,  90,
  835866,  711742,  587618,  463494,  339370215246,  91,  122,
  864864,  740771,  616647,  492523,  368399244275,  120151,
  27,  27,   896896,  865896,  772803,  741772648679,  617648,
  524555,  493524,  400431,  369400,  276307245276,  152183,
  121152,  28,  59,   28,  28,   928928,  897928866897,  804835,
  773804,  742773,  680711,  649680,  618649556587,  525556,
  494525,  432463,  401432,  370401,  308339277308,  246277,
  184215,  153184,  122153,  60,  91,   29,  60,  29,  29,   960960,
  929960,  898929,  867898,  836867,  805836774805,  743774,
  712743,  681712,  650681,  619650,  588619557588,  526557,
  495526,  464495,  433464,  402433,  371402340371,  309340,
  278309,  247278,  216247,  185216,  154185123154,  92,  123,
  61,  92,   30,  61,   30,  30,   961992,  930961899930,  837868,
  806837,  775806,  713744,  682713,  651682589620,  558589,
  527558,  465496,  434465,  403434,  341372310341,  279310,
  217248,  186217,  155186,  93,  124,  62,  93,  31,  62,   962993,
  931962,  838869,  807838,  714745,  683714590621,  559590,
  466497,  435466,  342373,  311342,  218249187218,  94,  125,
  63,  94,   963994,  839870,  715746,  591622467498,  343374,
  219250,  95,  126,  868899,  744775,  620651496527,  372403,
  248279,  124155,  900931,  869900,  776807745776,  652683,
  621652,  528559,  497528,  404435,  373404280311,  249280,
  156187,  125156,  932963,  901932,  870901808839,  777808,
  746777,  684715,  653684,  622653,  560591529560,  498529,
  436467,  405436,  374405,  312343,  281312250281,  188219,
  157188,  126157,  964995,  933964,  902933871902,  840871,
  809840,  778809,  747778,  716747,  685716654685,  623654,
  592623,  561592,  530561,  499530,  468499437468,  406437,
  375406,  344375,  313344,  282313,  251282220251,  189220,
  158189,  127158,  965996,  934965,  903934841872,  810841,
  779810,  717748,  686717,  655686,  593624562593,  531562,
  469500,  438469,  407438,  345376,  314345283314,  221252,
  190221,  159190,  966997,  935966,  842873811842,  718749,
  687718,  594625,  563594,  470501,  439470346377,  315346,
  222253,  191222,  967998,  843874,  719750595626,  471502,
  347378,  223254,  872903,  748779,  624655500531,  376407,
  252283,  904935,  873904,  780811,  749780656687,  625656,
  532563,  501532,  408439,  377408,  284315253284,  936967,
  905936,  874905,  812843,  781812,  750781688719,  657688,
  626657,  564595,  533564,  502533,  440471409440,  378409,
  316347,  285316,  254285,  968999,  937968906937,  875906,
  844875,  813844,  782813,  751782,  720751689720,  658689,
  627658,  596627,  565596,  534565,  503534472503,  441472,
  410441,  379410,  348379,  317348,  286317255286,  9691000,
  938969,  907938,  845876,  814845,  783814721752,  690721,
  659690,  597628,  566597,  535566,  473504442473,  411442,
  349380,  318349,  287318,  9701001939970846877,  815846,
  722753,  691722,  598629,  567598,  474505443474,  350381,
  319350,  9711002847878,  723754,  599630475506,  351382,
  876907,  752783,  628659,  504535,  380411908939,  877908,
  784815,  753784,  660691,  629660,  536567505536,  412443,
  381412,  940971,  909940,  878909,  816847785816,  754785,
  692723,  661692,  630661,  568599,  537568506537,  444475,
  413444,  382413,  9721003941972,  910941879910,  848879,
  817848,  786817,  755786,  724755,  693724662693,  631662,
  600631,  569600,  538569,  507538,  476507445476,  414445,
  383414,  9731004942973,  911942,  849880818849,  787818,
  725756,  694725,  663694,  601632,  570601539570,  477508,
  446477,  415446,  9741005943974,  850881819850,  726757,
  695726,  602633,  571602,  478509,  4474789751006851882,
  727758,  603634,  479510,  880911,  756787632663,  508539,
  912943,  881912,  788819,  757788,  664695633664,  540571,
  509540,  944975,  913944,  882913,  820851789820,  758789,
  696727,  665696,  634665,  572603,  541572510541,  9761007,
  945976,  914945,  883914,  852883,  821852790821,  759790,
  728759,  697728,  666697,  635666,  604635573604,  542573,
  511542,  9771008946977,  915946,  853884822853,  791822,
  729760,  698729,  667698,  605636,  574605543574,  9781009,
  947978,  854885,  823854,  730761,  699730606637,  575606,
  9791010855886,  731762,  607638,  884915760791,  636667,
  916947,  885916,  792823,  761792,  668699637668,  948979,
  917948,  886917,  824855,  793824,  762793700731,  669700,
  638669,  9801011949980,  918949,  887918856887,  825856,
  794825,  763794,  732763,  701732,  670701639670,  9811012,
  950981,  919950,  857888,  826857,  795826733764,  702733,
  671702,  9821013951982,  858889,  827858734765,  703734,
  9831014859890,  735766,  888919,  764795920951,  889920,
  796827,  765796,  952983,  921952,  890921828859,  797828,
  766797,  9841015953984,  922953,  891922860891,  829860,
  798829,  767798,  9851016954985,  923954861892,  830861,
  799830,  9861017955986,  862893,  8318629871018863894,
  892923,  924955,  893924,  956987,  925956894925,  9881019,
  957988,  926957,  895926,  9891020958989927958,  9901021,
  959990,  99110220,   0,
};

// Add 1 to iscan values. This represents the EOB position instead of the index.
DECLARE_ALIGNED(16static const int16_t, vp9_default_iscan_4x4[16]) = {
  13692410135812157111416,
};

DECLARE_ALIGNED(16static const int16_t, vp9_col_iscan_4x4[16]) = {
  14812261013371115591416,
};

DECLARE_ALIGNED(16static const int16_t, vp9_row_iscan_4x4[16]) = {
  12463571089121411131516,
};

DECLARE_ALIGNED(16static const int16_t, vp9_col_iscan_8x8[64]) = {
  1,  4,  9,  16233341482,  6,  121927354552,
  3,  8,  1421293947555,  11172532425157,
  7,  132228364453591018263440495661,
  15243138465460632030374350586264,
};

DECLARE_ALIGNED(16static const int16_t, vp9_row_iscan_8x8[64]) = {
  1,  2,  3,  6,  9,  1320254,  5,  8,  1116213140,
  7,  101417222838471215182429354553,
  19232632364251582730343944505660,
  33374348525561624146495457596364,
};

DECLARE_ALIGNED(16static const int16_t, vp9_default_iscan_8x8[64]) = {
  1,  3,  6,  10152332382,  5,  9,  1420273945,
  4,  7,  1118253143508,  12162230374854,
  13172128354453581924293642495761,
  26334046515660633441475255596264,
};

DECLARE_ALIGNED(16static const int16_t, vp9_col_iscan_16x16[256]) = {
  1,  5,  12,  21,  32,  44,  60,  76,  86,  110131151166182196199,
  2,  7,  15,  24,  35,  48,  65,  82,  96,  115136154172189202213,
  3,  9,  17,  26,  39,  53,  68,  84,  102117137158173191206217,
  4,  1119,  30,  42,  56,  72,  90,  104120142160177195209219,
  6,  1322,  33,  46,  59,  75,  94,  105124145165180197211224,
  8,  1627,  38,  50,  64,  79,  97,  113130147167183201216229,
  102029,  40,  55,  70,  87,  103118133152171188207221231,
  142536,  47,  61,  74,  92,  109123138155175190208225236,
  183141,  54,  67,  83,  99,  116127143162181198214228238,
  233749,  63,  77,  93,  106121134148168187204220233241,
  284557,  71,  85,  100114128141157176194210227237245,
  345269,  80,  95,  111126139150163185203218230242248,
  436278,  91,  107122135149161174192212226239246252,
  517388,  101119129146159169184205223234243250254,
  588198,  112132144156170179193215232240247251255,
  6689108125140153164178186200222235244249253256,
};

DECLARE_ALIGNED(16static const int16_t, vp9_row_iscan_16x16[256]) = {
  1,   2,   3,   5,   7,   10,  13,  18,  23,  30,  37,  44,  55,  65,  77,
  87,  4,   6,   8,   12,  16,  20,  26,  33,  39,  49,  60,  69,  85,  100,
  1161319,   11,  14,  19,  24,  28,  34,  43,  52,  61,  73,  89,  104,
  12014316815,  17,  21,  27,  32,  38,  45,  54,  62,  74,  86,  101,
  11713616218622,  25,  31,  36,  41,  48,  56,  66,  75,  82,  95,
  11313415518020629,  35,  40,  46,  51,  59,  68,  78,  88,  97,
  10712214717019721342,  47,  50,  57,  64,  71,  80,  91,  99,
  10812313916018320822353,  58,  63,  70,  76,  84,  94,  103,
  11112113515117719621622767,  72,  79,  83,  92,  98,  109,
  11412813714916918920322223381,  90,  93,  102106115,
  12613214015216317819320922423596,  105110118124,
  129144145156166176191207220234240112119125130,
  141148158165171182192204225231241244127133138,
  146154161175179185198205217232238245247142150,
  157167173181190200201211221229239243250252153,
  164172184187194202212215219228237246248253254,
  159174188195199210214218226230236242249251255,
  256,
};

DECLARE_ALIGNED(16static const int16_t, vp9_default_iscan_16x16[256]) = {
  1,   3,   6,   10,  18,  25,  37,  45,  56,  73,  89,  105129144167,
  1802,   5,   9,   14,  21,  31,  41,  55,  67,  80,  97,  114142155,
  1791974,   8,   12,  19,  26,  34,  47,  58,  72,  87,  102120149,
  1651872027,   13,  17,  24,  32,  40,  54,  65,  79,  93,  111128,
  15417019420911,  15,  20,  29,  38,  48,  59,  68,  85,  99,  115,
  13416217719921516,  22,  27,  35,  44,  53,  66,  78,  92,  107,
  12114116618620622223,  28,  33,  42,  49,  61,  74,  86,  100,
  11713115217619121222630,  36,  43,  50,  60,  70,  82,  96,
  10912614015618319821823039,  46,  52,  62,  69,  81,  94,
  10611913515116919220822423551,  57,  64,  75,  84,  95,
  11011813014816417820021422923963,  71,  77,  88,  98,
  10812313214616017318921122323624376,  83,  91,  103,
  11312513914715817418820322023124124690,  101112,
  124133143157168181190204217232238247251104116,
  127137150163172184195205216225237242249253122,
  136145159171182193201210219228234244245252255,
  138153161175185196207213221227233240248250254,
  256,
};

DECLARE_ALIGNED(16static const int16_t, vp9_default_iscan_32x32[1024]) = {
  1,    3,    6,    11,   18,   26,   39,   48,   63,   84,   102,  122,  146,
  171,  194,  205,  211,  220,  230,  234,  246,  258,  276,  300,  343,  357,
  378,  406,  456,  472,  496,  528,  2,    5,    9,    16,   23,   31,   46,
  59,   75,   93,   113,  134,  159,  185,  204,  216,  223,  229,  235,  238,
  257,  275,  299,  318,  356,  377,  405,  427,  471,  495,  527,  552,  4,
  8,    13,   19,   29,   37,   53,   65,   83,   103,  119,  143,  165,  190,
  209,  218,  225,  232,  236,  239,  274,  298,  317,  330,  376,  404,  426,
  441,  494,  526,  551,  568,  7,    12,   17,   24,   32,   44,   61,   74,
  91,   110,  127,  151,  174,  197,  212,  221,  227,  233,  237,  240,  297,
  316,  329,  336,  403,  425,  440,  448,  525,  550,  567,  576,  10,   15,
  20,   30,   38,   51,   66,   79,   96,   117,  135,  158,  180,  202,  215,
  224,  245,  256,  273,  296,  342,  355,  375,  402,  455,  470,  493,  524,
  583,  597,  618,  646,  14,   21,   27,   36,   45,   55,   73,   86,   106,
  124,  141,  164,  183,  206,  217,  226,  255,  272,  295,  315,  354,  374,
  401,  424,  469,  492,  523,  549,  596,  617,  645,  667,  22,   28,   34,
  43,   54,   64,   81,   95,   114,  133,  152,  173,  191,  210,  219,  228,
  271,  294,  314,  328,  373,  400,  423,  439,  491,  522,  548,  566,  616,
  644,  666,  681,  25,   33,   40,   49,   58,   72,   89,   105,  121,  140,
  160,  179,  198,  213,  222,  231,  293,  313,  327,  335,  399,  422,  438,
  447,  521,  547,  565,  575,  643,  665,  680,  688,  35,   41,   47,   57,
  69,   82,   97,   112,  131,  148,  168,  187,  244,  254,  270,  292,  341,
  353,  372,  398,  454,  468,  490,  520,  582,  595,  615,  642,  694,  706,
  724,  748,  42,   50,   56,   68,   78,   92,   108,  125,  139,  162,  178,
  195,  253,  269,  291,  312,  352,  371,  397,  421,  467,  489,  519,  546,
  594,  614,  641,  664,  705,  723,  747,  766,  52,   60,   67,   77,   90,
  100,  120,  132,  150,  169,  182,  201,  268,  290,  311,  326,  370,  396,
  420,  437,  488,  518,  545,  564,  613,  640,  663,  679,  722,  746,  765,
  778,  62,   70,   76,   88,   101,  115,  130,  145,  163,  181,  192,  208,
  289,  310,  325,  334,  395,  419,  436,  446,  517,  544,  563,  574,  639,
  662,  678,  687,  745,  764,  777,  784,  71,   80,   87,   98,   109,  123,
  138,  156,  243,  252,  267,  288,  340,  351,  369,  394,  453,  466,  487,
  516,  581,  593,  612,  638,  693,  704,  721,  744,  789,  799,  814,  834,
  85,   94,   104,  111,  126,  142,  155,  172,  251,  266,  287,  309,  350,
  368,  393,  418,  465,  486,  515,  543,  592,  611,  637,  661,  703,  720,
  743,  763,  798,  813,  833,  849,  99,   107,  116,  128,  144,  157,  170,
  186,  265,  286,  308,  324,  367,  392,  417,  435,  485,  514,  542,  562,
  610,  636,  660,  677,  719,  742,  762,  776,  812,  832,  848,  859,  118,
  129,  137,  149,  161,  176,  189,  199,  285,  307,  323,  333,  391,  416,
  434,  445,  513,  541,  561,  573,  635,  659,  676,  686,  741,  761,  775,
  783,  831,  847,  858,  864,  136,  147,  153,  166,  242,  250,  264,  284,
  339,  349,  366,  390,  452,  464,  484,  512,  580,  591,  609,  634,  692,
  702,  718,  740,  788,  797,  811,  830,  868,  876,  888,  904,  154,  167,
  175,  184,  249,  263,  283,  306,  348,  365,  389,  415,  463,  483,  511,
  540,  590,  608,  633,  658,  701,  717,  739,  760,  796,  810,  829,  846,
  875,  887,  903,  916,  177,  188,  196,  203,  262,  282,  305,  322,  364,
  388,  414,  433,  482,  510,  539,  560,  607,  632,  657,  675,  716,  738,
  759,  774,  809,  828,  845,  857,  886,  902,  915,  924,  193,  200,  207,
  214,  281,  304,  321,  332,  387,  413,  432,  444,  509,  538,  559,  572,
  631,  656,  674,  685,  737,  758,  773,  782,  827,  844,  856,  863,  901,
  914,  923,  928,  241,  248,  261,  280,  338,  347,  363,  386,  451,  462,
  481,  508,  579,  589,  606,  630,  691,  700,  715,  736,  787,  795,  808,
  826,  867,  874,  885,  900,  931,  937,  946,  958,  247,  260,  279,  303,
  346,  362,  385,  412,  461,  480,  507,  537,  588,  605,  629,  655,  699,
  714,  735,  757,  794,  807,  825,  843,  873,  884,  899,  913,  936,  945,
  957,  967,  259,  278,  302,  320,  361,  384,  411,  431,  479,  506,  536,
  558,  604,  628,  654,  673,  713,  734,  756,  772,  806,  824,  842,  855,
  883,  898,  912,  922,  944,  956,  966,  973,  277,  301,  319,  331,  383,
  410,  430,  443,  505,  535,  557,  571,  627,  653,  672,  684,  733,  755,
  771,  781,  823,  841,  854,  862,  897,  911,  921,  927,  955,  965,  972,
  976,  337,  345,  360,  382,  450,  460,  478,  504,  578,  587,  603,  626,
  690,  698,  712,  732,  786,  793,  805,  822,  866,  872,  882,  896,  930,
  935,  943,  954,  978,  982,  988,  996,  344,  359,  381,  409,  459,  477,
  503,  534,  586,  602,  625,  652,  697,  711,  731,  754,  792,  804,  821,
  840,  871,  881,  895,  910,  934,  942,  953,  964,  981,  987,  995,  1002,
  358,  380,  408,  429,  476,  502,  533,  556,  601,  624,  651,  671,  710,
  730,  753,  770,  803,  820,  839,  853,  880,  894,  909,  920,  941,  952,
  963,  971,  986,  994,  10011006379,  407,  428,  442,  501,  532,  555,
  570,  623,  650,  670,  683,  729,  752,  769,  780,  819,  838,  852,  861,
  893,  908,  919,  926,  951,  962,  970,  975,  993,  100010051008449,
  458,  475,  500,  577,  585,  600,  622,  689,  696,  709,  728,  785,  791,
  802,  818,  865,  870,  879,  892,  929,  933,  940,  950,  977,  980,  985,
  992,  1009101110141018457,  474,  499,  531,  584,  599,  621,  649,
  695,  708,  727,  751,  790,  801,  817,  837,  869,  878,  891,  907,  932,
  939,  949,  961,  979,  984,  991,  999,  1010101310171021473,  498,
  530,  554,  598,  620,  648,  669,  707,  726,  750,  768,  800,  816,  836,
  851,  877,  890,  906,  918,  938,  948,  960,  969,  983,  990,  998,  1004,
  1012101610201023497,  529,  553,  569,  619,  647,  668,  682,  725,
  749,  767,  779,  815,  835,  850,  860,  889,  905,  917,  925,  947,  959,
  968,  974,  989,  997,  100310071015101910221024,
};

const ScanOrder vp9_default_scan_orders[TX_SIZES] = {
  { default_scan_4x4, vp9_default_iscan_4x4, default_scan_4x4_neighbors },
  { default_scan_8x8, vp9_default_iscan_8x8, default_scan_8x8_neighbors },
  { default_scan_16x16, vp9_default_iscan_16x16, default_scan_16x16_neighbors },
  { default_scan_32x32, vp9_default_iscan_32x32, default_scan_32x32_neighbors },
};

const ScanOrder vp9_scan_orders[TX_SIZES][TX_TYPES] = {
  { // TX_4X4
    { default_scan_4x4, vp9_default_iscan_4x4, default_scan_4x4_neighbors },
    { row_scan_4x4, vp9_row_iscan_4x4, row_scan_4x4_neighbors },
    { col_scan_4x4, vp9_col_iscan_4x4, col_scan_4x4_neighbors },
    { default_scan_4x4, vp9_default_iscan_4x4, default_scan_4x4_neighbors } },
  { // TX_8X8
    { default_scan_8x8, vp9_default_iscan_8x8, default_scan_8x8_neighbors },
    { row_scan_8x8, vp9_row_iscan_8x8, row_scan_8x8_neighbors },
    { col_scan_8x8, vp9_col_iscan_8x8, col_scan_8x8_neighbors },
    { default_scan_8x8, vp9_default_iscan_8x8, default_scan_8x8_neighbors } },
  { // TX_16X16
    { default_scan_16x16, vp9_default_iscan_16x16,
      default_scan_16x16_neighbors },
    { row_scan_16x16, vp9_row_iscan_16x16, row_scan_16x16_neighbors },
    { col_scan_16x16, vp9_col_iscan_16x16, col_scan_16x16_neighbors },
    { default_scan_16x16, vp9_default_iscan_16x16,
      default_scan_16x16_neighbors } },
  { // TX_32X32
    { default_scan_32x32, vp9_default_iscan_32x32,
      default_scan_32x32_neighbors },
    { default_scan_32x32, vp9_default_iscan_32x32,
      default_scan_32x32_neighbors },
    { default_scan_32x32, vp9_default_iscan_32x32,
      default_scan_32x32_neighbors },
    { default_scan_32x32, vp9_default_iscan_32x32,
      default_scan_32x32_neighbors } }
};

Messung V0.5 in Prozent
C=93 H=100 G=96

¤ Dauer der Verarbeitung: 0.24 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.