encoder.py 文件源码

python
阅读 35 收藏 0 点赞 0 评论 0

项目:inkscape-qrcode 作者: heuer 项目源码 文件源码
def make_error_block(ec_info, data_block):
    """\
    Creates the error code words for the provided data block.

    :param ec_info: ECC information (number of blocks, number of code words etc.)
    :param data_block: Iterable of (integer) code words.
    """
    num_error_words = ec_info.num_total - ec_info.num_data

    error_block = bytearray(data_block)
    error_block.extend([0] * num_error_words)

    gen = consts.GEN_POLY[num_error_words]
    gen_log = consts.GALIOS_LOG
    gen_exp = consts.GALIOS_EXP
    len_data = len(data_block)

    # Extended synthetic division, see http://research.swtch.com/field
    for i in range(len_data):
        coef = error_block[i]
        if coef != 0:  # log(0) is undefined
            lcoef = gen_log[coef]
            for j in range(num_error_words):
                error_block[i + j + 1] ^= gen_exp[lcoef + gen[j]]
    return error_block[len_data:]
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号