/* * Copyright © 2018, VideoLAN and dav1d authors * Copyright © 2018, Two Orioles, LLC * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "config.h" #include <string.h> #include "common/attributes.h" #include "src/qm.h" static const uint8_t qm_tbl_4x4_t[][2][10] = { { { 32, 43, 67, 73, 94, 137, 97, 110, 150, 200, }, { 35, 46, 60, 57, 69, 90, 66, 71, 90, 109, }, }, { { 32, 41, 63, 69, 88, 127, 92, 103, 140, 184, }, { 33, 45, 58, 56, 66, 86, 64, 69, 87, 105, }, }, { { 32, 38, 56, 63, 78, 113, 86, 97, 130, 169, }, { 32, 45, 55, 53, 62, 80, 63, 67, 84, 101, }, }, { { 32, 37, 54, 58, 72, 102, 81, 91, 121, 156, }, { 32, 45, 54, 51, 59, 75, 61, 65, 81, 97, }, }, { { 32, 34, 49, 53, 64, 91, 75, 81, 112, 140, }, { 32, 46, 53, 49, 55, 70, 58, 62, 78, 91, }, }, { { 32, 34, 48, 49, 60, 82, 72, 79, 104, 134, }, { 32, 46, 53, 47, 54, 66, 57, 60, 75, 89, }, }, { { 32, 33, 39, 45, 51, 71, 62, 64, 87, 108, }, { 31, 42, 48, 47, 50, 61, 53, 54, 67, 78, }, }, { { 32, 33, 38, 42, 46, 63, 55, 57, 75, 92, }, { 31, 41, 48, 46, 48, 58, 51, 51, 62, 71, }, }, { { 32, 32, 35, 38, 40, 54, 51, 49, 64, 81, }, { 31, 38, 47, 47, 46, 54, 49, 46, 57, 66, }, }, { { 32, 32, 34, 35, 37, 48, 43, 43, 54, 65, }, { 31, 37, 44, 47, 47, 53, 47, 45, 53, 59, }, }, { { 32, 32, 33, 34, 35, 39, 38, 39, 45, 54, }, { 31, 34, 39, 42, 45, 48, 47, 46, 49, 54, }, }, { { 32, 32, 32, 32, 33, 35, 35, 35, 38, 46, }, { 31, 32, 34, 38, 41, 47, 46, 46, 47, 52, }, }, { { 31, 32, 32, 32, 32, 33, 32, 33, 34, 35, }, { 31, 31, 32, 34, 35, 39, 38, 40, 43, 47, }, }, { { 31, 31, 32, 31, 32, 32, 32, 32, 32, 33, }, { 31, 31, 31, 31, 31, 32, 34, 35, 35, 39, }, }, { { 31, 31, 32, 31, 32, 32, 31, 32, 32, 32, }, { 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, }, },}; static const uint8_t qm_tbl_8x4[][2][32] = { { { 32, 33, 37, 49, 65, 80, 91, 104, 42, 42, 58, 71, 84, 97, 100, 112, 75, 69, 84, 103, 125, 142, 145, 146, 91, 86, 91, 110, 128, 152, 178, 190, }, { 31, 40, 46, 48, 54, 61, 64, 68, 47, 45, 56, 61, 65, 69, 68, 71, 60, 54, 64, 75, 85, 92, 90, 87, 66, 61, 64, 73, 82, 92, 102, 105, }, }, { { 32, 33, 36, 46, 60, 75, 86, 98, 42, 42, 56, 67, 79, 92, 95, 105, 69, 64, 77, 93, 112, 130, 136, 136, 88, 83, 88, 105, 122, 144, 167, 177, }, { 31, 40, 46, 47, 52, 59, 63, 66, 47, 45, 55, 60, 64, 68, 66, 69, 57, 52, 61, 70, 79, 87, 88, 85, 65, 61, 63, 72, 81, 90, 99, 102, }, }, { { 32, 32, 34, 44, 54, 72, 82, 92, 38, 40, 51, 61, 69, 84, 89, 98, 62, 58, 68, 85, 98, 118, 129, 127, 86, 80, 85, 101, 117, 136, 157, 165, }, { 31, 38, 46, 46, 50, 57, 61, 65, 47, 46, 53, 56, 59, 64, 65, 67, 54, 50, 57, 66, 74, 82, 85, 82, 64, 60, 62, 71, 79, 88, 97, 99, }, }, { { 32, 32, 34, 41, 51, 65, 75, 86, 35, 36, 47, 53, 61, 73, 81, 92, 59, 57, 65, 78, 92, 108, 117, 119, 83, 78, 82, 97, 111, 129, 148, 154, }, { 31, 36, 46, 45, 49, 54, 59, 63, 47, 47, 52, 53, 55, 58, 61, 65, 53, 50, 55, 63, 71, 77, 81, 80, 63, 59, 61, 70, 77, 86, 94, 95, }, }, { { 32, 32, 34, 38, 48, 60, 72, 81, 35, 36, 42, 51, 59, 68, 79, 86, 51, 50, 54, 67, 80, 92, 104, 112, 77, 72, 75, 87, 103, 119, 135, 144, }, { 31, 36, 43, 45, 47, 52, 57, 61, 47, 47, 50, 53, 54, 56, 60, 63, 50, 47, 50, 58, 66, 70, 75, 77, 61, 57, 58, 65, 74, 82, 90, 93, }, }, { { 32, 32, 34, 37, 45, 54, 65, 75, 35, 36, 42, 50, 56, 63, 73, 81, 51, 50, 54, 65, 76, 87, 97, 106, 75, 71, 73, 84, 96, 110, 125, 136, }, { 31, 36, 43, 46, 46, 50, 54, 59, 47, 47, 50, 53, 54, 55, 58, 61, 50, 47, 50, 57, 64, 68, 72, 75, 60, 56, 57, 64, 71, 78, 85, 90, }, }, { { 32, 32, 33, 35, 41, 49, 57, 66, 34, 34, 37, 43, 48, 54, 60, 68, 43, 42, 44, 54, 64, 71, 78, 86, 62, 59, 58, 68, 79, 91, 101, 111, }, { 31, 33, 40, 47, 45, 48, 51, 55, 42, 44, 47, 50, 49, 50, 52, 55, 47, 45, 46, 54, 59, 61, 63, 66, 54, 51, 50, 57, 64, 70, 75, 79, }, }, { { 32, 32, 32, 34, 38, 44, 50, 61, 32, 33, 35, 37, 40, 45, 50, 58, 42, 41, 42, 50, 58, 66, 71, 79, 56, 53, 52, 59, 68, 78, 86, 97, }, { 31, 32, 39, 44, 46, 47, 48, 53, 38, 40, 47, 47, 47, 46, 47, 50, 47, 45, 45, 51, 56, 59, 61, 64, 52, 49, 48, 53, 58, 64, 68, 73, }, }, { { 32, 32, 32, 34, 35, 40, 46, 52, 32, 33, 34, 37, 38, 42, 46, 51, 37, 36, 38, 44, 49, 55, 59, 64, 52, 49, 49, 54, 60, 69, 76, 83, }, { 31, 31, 36, 42, 47, 46, 48, 50, 38, 40, 44, 47, 48, 46, 46, 48, 47, 46, 47, 50, 53, 54, 55, 56, 50, 48, 47, 50, 54, 60, 64, 67, }, }, { { 31, 32, 32, 32, 34, 37, 42, 46, 32, 33, 34, 35, 37, 40, 43, 46, 35, 34, 36, 38, 43, 49, 53, 56, 43, 41, 42, 42, 49, 56, 63, 67, }, { 31, 31, 35, 39, 43, 47, 46, 48, 38, 40, 43, 47, 47, 47, 46, 46, 47, 46, 47, 47, 50, 53, 53, 54, 48, 45, 46, 45, 50, 55, 58, 59, }, }, { { 31, 32, 32, 32, 33, 34, 37, 40, 32, 32, 33, 33, 34, 36, 38, 40, 34, 34, 34, 36, 38, 41, 44, 46, 39, 38, 38, 40, 42, 47, 52, 56, }, { 31, 31, 33, 36, 40, 45, 47, 47, 34, 35, 37, 41, 44, 46, 47, 46, 42, 42, 44, 46, 48, 49, 50, 49, 48, 46, 46, 46, 48, 51, 54, 55, }, }, { { 31, 32, 32, 32, 32, 33, 34, 35, 31, 32, 32, 32, 33, 33, 34, 34, 32, 32, 33, 34, 35, 36, 37, 38, 35, 35, 34, 36, 38, 40, 42, 48, }, { 31, 31, 31, 34, 37, 39, 42, 48, 31, 31, 32, 36, 39, 41, 43, 46, 37, 38, 40, 43, 46, 47, 47, 48, 48, 47, 46, 47, 47, 48, 50, 53, }, }, { { 31, 31, 32, 32, 32, 32, 32, 33, 31, 32, 32, 32, 32, 32, 33, 33, 32, 32, 32, 32, 33, 34, 34, 35, 32, 32, 32, 33, 34, 34, 35, 36, }, { 31, 31, 31, 31, 34, 35, 38, 41, 31, 31, 32, 32, 36, 37, 40, 42, 35, 36, 37, 37, 40, 42, 45, 45, 37, 38, 39, 40, 43, 44, 47, 47, }, }, { { 31, 31, 31, 31, 31, 31, 32, 32, 31, 32, 32, 32, 32, 32, 32, 32, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, }, { 31, 31, 31, 31, 31, 31, 34, 34, 31, 31, 31, 32, 32, 33, 36, 36, 31, 31, 31, 32, 32, 33, 36, 36, 34, 35, 35, 36, 36, 37, 40, 40, }, }, { { 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 32, }, { 31, 31, 31, 31, 31, 31, 31, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 31, 31, 31, 31, 31, 31, 32, 32, }, },}; static const uint8_t qm_tbl_8x8_t[][2][36] = { { { 32, 32, 35, 38, 40, 54, 51, 49, 65, 82, 68, 63, 78, 97, 117, 84, 76, 91, 111, 134, 152, 95, 89, 98, 113, 138, 159, 183, 109, 102, 106, 121, 142, 168, 199, 220, }, { 31, 38, 47, 47, 46, 54, 50, 47, 57, 66, 57, 52, 61, 72, 82, 63, 57, 66, 77, 88, 96, 67, 62, 67, 75, 86, 95, 104, 71, 67, 68, 75, 84, 95, 107, 113, }, }, { { 32, 32, 35, 37, 39, 51, 47, 46, 60, 73, 62, 58, 71, 87, 105, 78, 72, 84, 100, 121, 140, 90, 84, 93, 106, 129, 148, 169, 102, 96, 100, 113, 132, 155, 183, 201, }, { 31, 38, 47, 47, 47, 53, 48, 46, 55, 62, 54, 50, 58, 67, 76, 61, 55, 63, 72, 83, 91, 66, 61, 65, 73, 84, 92, 101, 69, 65, 66, 73, 82, 92, 103, 109, }, }, { { 32, 32, 34, 35, 37, 48, 46, 45, 56, 70, 57, 54, 64, 80, 93, 76, 70, 79, 96, 111, 134, 85, 79, 87, 100, 121, 138, 156, 96, 90, 93, 105, 122, 144, 168, 184, }, { 31, 36, 43, 47, 47, 53, 48, 46, 54, 61, 52, 49, 55, 65, 71, 60, 55, 60, 70, 78, 89, 64, 59, 63, 71, 81, 89, 97, 67, 63, 64, 71, 79, 89, 99, 104, }, }, { { 32, 32, 33, 35, 36, 46, 42, 42, 52, 63, 53, 51, 60, 73, 86, 68, 64, 72, 84, 100, 117, 78, 74, 80, 92, 109, 128, 140, 90, 84, 87, 98, 114, 133, 155, 168, }, { 31, 34, 39, 46, 47, 52, 47, 45, 52, 58, 50, 48, 54, 62, 68, 57, 53, 58, 65, 73, 82, 61, 57, 61, 68, 77, 86, 91, 65, 61, 62, 68, 76, 86, 95, 100, }, }, { { 32, 32, 33, 34, 35, 39, 39, 40, 46, 56, 50, 48, 53, 65, 78, 62, 59, 63, 75, 90, 105, 76, 71, 74, 86, 101, 118, 134, 84, 79, 81, 92, 106, 123, 142, 153, }, { 31, 34, 39, 42, 45, 48, 47, 46, 49, 55, 49, 47, 50, 58, 65,Lines 1–500 of 3152. Load more
/* * Copyright © 2018, VideoLAN and dav1d authors * Copyright © 2018, Two Orioles, LLC * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "config.h" #include <string.h> #include "common/attributes.h" #include "src/qm.h" static const uint8_t qm_tbl_4x4_t[][2][10] = { { { 32, 43, 67, 73, 94, 137, 97, 110, 150, 200, }, { 35, 46, 60, 57, 69, 90, 66, 71, 90, 109, }, }, { { 32, 41, 63, 69, 88, 127, 92, 103, 140, 184, }, { 33, 45, 58, 56, 66, 86, 64, 69, 87, 105, }, }, { { 32, 38, 56, 63, 78, 113, 86, 97, 130, 169, }, { 32, 45, 55, 53, 62, 80, 63, 67, 84, 101, }, }, { { 32, 37, 54, 58, 72, 102, 81, 91, 121, 156, }, { 32, 45, 54, 51, 59, 75, 61, 65, 81, 97, }, }, { { 32, 34, 49, 53, 64, 91, 75, 81, 112, 140, }, { 32, 46, 53, 49, 55, 70, 58, 62, 78, 91, }, }, { { 32, 34, 48, 49, 60, 82, 72, 79, 104, 134, }, { 32, 46, 53, 47, 54, 66, 57, 60, 75, 89, }, }, { { 32, 33, 39, 45, 51, 71, 62, 64, 87, 108, }, { 31, 42, 48, 47, 50, 61, 53, 54, 67, 78, }, }, { { 32, 33, 38, 42, 46, 63, 55, 57, 75, 92, }, { 31, 41, 48, 46, 48, 58, 51, 51, 62, 71, }, }, { { 32, 32, 35, 38, 40, 54, 51, 49, 64, 81, }, { 31, 38, 47, 47, 46, 54, 49, 46, 57, 66, }, }, { { 32, 32, 34, 35, 37, 48, 43, 43, 54, 65, }, { 31, 37, 44, 47, 47, 53, 47, 45, 53, 59, }, }, { { 32, 32, 33, 34, 35, 39, 38, 39, 45, 54, }, { 31, 34, 39, 42, 45, 48, 47, 46, 49, 54, }, }, { { 32, 32, 32, 32, 33, 35, 35, 35, 38, 46, }, { 31, 32, 34, 38, 41, 47, 46, 46, 47, 52, }, }, { { 31, 32, 32, 32, 32, 33, 32, 33, 34, 35, }, { 31, 31, 32, 34, 35, 39, 38, 40, 43, 47, }, }, { { 31, 31, 32, 31, 32, 32, 32, 32, 32, 33, }, { 31, 31, 31, 31, 31, 32, 34, 35, 35, 39, }, }, { { 31, 31, 32, 31, 32, 32, 31, 32, 32, 32, }, { 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, }, }, }; static const uint8_t qm_tbl_8x4[][2][32] = { { { 32, 33, 37, 49, 65, 80, 91, 104, 42, 42, 58, 71, 84, 97, 100, 112, 75, 69, 84, 103, 125, 142, 145, 146, 91, 86, 91, 110, 128, 152, 178, 190, }, { 31, 40, 46, 48, 54, 61, 64, 68, 47, 45, 56, 61, 65, 69, 68, 71, 60, 54, 64, 75, 85, 92, 90, 87, 66, 61, 64, 73, 82, 92, 102, 105, }, }, { { 32, 33, 36, 46, 60, 75, 86, 98, 42, 42, 56, 67, 79, 92, 95, 105, 69, 64, 77, 93, 112, 130, 136, 136, 88, 83, 88, 105, 122, 144, 167, 177, }, { 31, 40, 46, 47, 52, 59, 63, 66, 47, 45, 55, 60, 64, 68, 66, 69, 57, 52, 61, 70, 79, 87, 88, 85, 65, 61, 63, 72, 81, 90, 99, 102, }, }, { { 32, 32, 34, 44, 54, 72, 82, 92, 38, 40, 51, 61, 69, 84, 89, 98, 62, 58, 68, 85, 98, 118, 129, 127, 86, 80, 85, 101, 117, 136, 157, 165, }, { 31, 38, 46, 46, 50, 57, 61, 65, 47, 46, 53, 56, 59, 64, 65, 67, 54, 50, 57, 66, 74, 82, 85, 82, 64, 60, 62, 71, 79, 88, 97, 99, }, }, { { 32, 32, 34, 41, 51, 65, 75, 86, 35, 36, 47, 53, 61, 73, 81, 92, 59, 57, 65, 78, 92, 108, 117, 119, 83, 78, 82, 97, 111, 129, 148, 154, }, { 31, 36, 46, 45, 49, 54, 59, 63, 47, 47, 52, 53, 55, 58, 61, 65, 53, 50, 55, 63, 71, 77, 81, 80, 63, 59, 61, 70, 77, 86, 94, 95, }, }, { { 32, 32, 34, 38, 48, 60, 72, 81, 35, 36, 42, 51, 59, 68, 79, 86, 51, 50, 54, 67, 80, 92, 104, 112, 77, 72, 75, 87, 103, 119, 135, 144, }, { 31, 36, 43, 45, 47, 52, 57, 61, 47, 47, 50, 53, 54, 56, 60, 63, 50, 47, 50, 58, 66, 70, 75, 77, 61, 57, 58, 65, 74, 82, 90, 93, }, }, { { 32, 32, 34, 37, 45, 54, 65, 75, 35, 36, 42, 50, 56, 63, 73, 81, 51, 50, 54, 65, 76, 87, 97, 106, 75, 71, 73, 84, 96, 110, 125, 136, }, { 31, 36, 43, 46, 46, 50, 54, 59, 47, 47, 50, 53, 54, 55, 58, 61, 50, 47, 50, 57, 64, 68, 72, 75, 60, 56, 57, 64, 71, 78, 85, 90, }, }, { { 32, 32, 33, 35, 41, 49, 57, 66, 34, 34, 37, 43, 48, 54, 60, 68, 43, 42, 44, 54, 64, 71, 78, 86, 62, 59, 58, 68, 79, 91, 101, 111, }, { 31, 33, 40, 47, 45, 48, 51, 55, 42, 44, 47, 50, 49, 50, 52, 55, 47, 45, 46, 54, 59, 61, 63, 66, 54, 51, 50, 57, 64, 70, 75, 79, }, }, { { 32, 32, 32, 34, 38, 44, 50, 61, 32, 33, 35, 37, 40, 45, 50, 58, 42, 41, 42, 50, 58, 66, 71, 79, 56, 53, 52, 59, 68, 78, 86, 97, }, { 31, 32, 39, 44, 46, 47, 48, 53, 38, 40, 47, 47, 47, 46, 47, 50, 47, 45, 45, 51, 56, 59, 61, 64, 52, 49, 48, 53, 58, 64, 68, 73, }, }, { { 32, 32, 32, 34, 35, 40, 46, 52, 32, 33, 34, 37, 38, 42, 46, 51, 37, 36, 38, 44, 49, 55, 59, 64, 52, 49, 49, 54, 60, 69, 76, 83, }, { 31, 31, 36, 42, 47, 46, 48, 50, 38, 40, 44, 47, 48, 46, 46, 48, 47, 46, 47, 50, 53, 54, 55, 56, 50, 48, 47, 50, 54, 60, 64, 67, }, }, { { 31, 32, 32, 32, 34, 37, 42, 46, 32, 33, 34, 35, 37, 40, 43, 46, 35, 34, 36, 38, 43, 49, 53, 56, 43, 41, 42, 42, 49, 56, 63, 67, }, { 31, 31, 35, 39, 43, 47, 46, 48, 38, 40, 43, 47, 47, 47, 46, 46, 47, 46, 47, 47, 50, 53, 53, 54, 48, 45, 46, 45, 50, 55, 58, 59, }, }, { { 31, 32, 32, 32, 33, 34, 37, 40, 32, 32, 33, 33, 34, 36, 38, 40, 34, 34, 34, 36, 38, 41, 44, 46, 39, 38, 38, 40, 42, 47, 52, 56, }, { 31, 31, 33, 36, 40, 45, 47, 47, 34, 35, 37, 41, 44, 46, 47, 46, 42, 42, 44, 46, 48, 49, 50, 49, 48, 46, 46, 46, 48, 51, 54, 55, }, }, { { 31, 32, 32, 32, 32, 33, 34, 35, 31, 32, 32, 32, 33, 33, 34, 34, 32, 32, 33, 34, 35, 36, 37, 38, 35, 35, 34, 36, 38, 40, 42, 48, }, { 31, 31, 31, 34, 37, 39, 42, 48, 31, 31, 32, 36, 39, 41, 43, 46, 37, 38, 40, 43, 46, 47, 47, 48, 48, 47, 46, 47, 47, 48, 50, 53, }, }, { { 31, 31, 32, 32, 32, 32, 32, 33, 31, 32, 32, 32, 32, 32, 33, 33, 32, 32, 32, 32, 33, 34, 34, 35, 32, 32, 32, 33, 34, 34, 35, 36, }, { 31, 31, 31, 31, 34, 35, 38, 41, 31, 31, 32, 32, 36, 37, 40, 42, 35, 36, 37, 37, 40, 42, 45, 45, 37, 38, 39, 40, 43, 44, 47, 47, }, }, { { 31, 31, 31, 31, 31, 31, 32, 32, 31, 32, 32, 32, 32, 32, 32, 32, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, }, { 31, 31, 31, 31, 31, 31, 34, 34, 31, 31, 31, 32, 32, 33, 36, 36, 31, 31, 31, 32, 32, 33, 36, 36, 34, 35, 35, 36, 36, 37, 40, 40, }, }, { { 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 32, }, { 31, 31, 31, 31, 31, 31, 31, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 31, 31, 31, 31, 31, 31, 32, 32, }, }, }; static const uint8_t qm_tbl_8x8_t[][2][36] = { { { 32, 32, 35, 38, 40, 54, 51, 49, 65, 82, 68, 63, 78, 97, 117, 84, 76, 91, 111, 134, 152, 95, 89, 98, 113, 138, 159, 183, 109, 102, 106, 121, 142, 168, 199, 220, }, { 31, 38, 47, 47, 46, 54, 50, 47, 57, 66, 57, 52, 61, 72, 82, 63, 57, 66, 77, 88, 96, 67, 62, 67, 75, 86, 95, 104, 71, 67, 68, 75, 84, 95, 107, 113, }, }, { { 32, 32, 35, 37, 39, 51, 47, 46, 60, 73, 62, 58, 71, 87, 105, 78, 72, 84, 100, 121, 140, 90, 84, 93, 106, 129, 148, 169, 102, 96, 100, 113, 132, 155, 183, 201, }, { 31, 38, 47, 47, 47, 53, 48, 46, 55, 62, 54, 50, 58, 67, 76, 61, 55, 63, 72, 83, 91, 66, 61, 65, 73, 84, 92, 101, 69, 65, 66, 73, 82, 92, 103, 109, }, }, { { 32, 32, 34, 35, 37, 48, 46, 45, 56, 70, 57, 54, 64, 80, 93, 76, 70, 79, 96, 111, 134, 85, 79, 87, 100, 121, 138, 156, 96, 90, 93, 105, 122, 144, 168, 184, }, { 31, 36, 43, 47, 47, 53, 48, 46, 54, 61, 52, 49, 55, 65, 71, 60, 55, 60, 70, 78, 89, 64, 59, 63, 71, 81, 89, 97, 67, 63, 64, 71, 79, 89, 99, 104, }, }, { { 32, 32, 33, 35, 36, 46, 42, 42, 52, 63, 53, 51, 60, 73, 86, 68, 64, 72, 84, 100, 117, 78, 74, 80, 92, 109, 128, 140, 90, 84, 87, 98, 114, 133, 155, 168, }, { 31, 34, 39, 46, 47, 52, 47, 45, 52, 58, 50, 48, 54, 62, 68, 57, 53, 58, 65, 73, 82, 61, 57, 61, 68, 77, 86, 91, 65, 61, 62, 68, 76, 86, 95, 100, }, }, { { 32, 32, 33, 34, 35, 39, 39, 40, 46, 56, 50, 48, 53, 65, 78, 62, 59, 63, 75, 90, 105, 76, 71, 74, 86, 101, 118, 134, 84, 79, 81, 92, 106, 123, 142, 153, }, { 31, 34, 39, 42, 45, 48, 47, 46, 49, 55, 49, 47, 50, 58, 65,