• HDMI中checksum计算法


     

     在AVI传输过程中有三个字节没有被传输。这是在HDMI1.4B中找到的前三个字节的数据。

    >> hex2dec('82')
    
    ans =
    
       130

     

    下图中的数据中在HDMI中接收到的一串数据,最低位A6是校验位,把第一个字节相加,然后再加上前面的三个字节的数据,刚好是512,正好是256的位数,这说明我有猜想是正确的。

    166(a6h)+17(11h) + 168(a8h) + 16(10h) = 

    复制代码

    >> hex2dec('a6')

    ans =

    166

    >> hex2dec('a8')

    ans =

    168


    >> 166+17+168+16 ans = 367

    >> 367+145

    
    

    ans =

    
    

    512

     
    复制代码

    这是第二组数据

    复制代码
    >> hex2dec('b1')
    
    ans =
    
       177
    
    >> hex2dec('28')
    
    ans =
    
        40
    
    >> hex2dec('84')
    
    ans =
    
       132
    
    >> hex2dec('10')
    
    ans =
    
        16

    177+40+132+16+2

    ans =

    
    

    367

     
    复制代码

     下面是写的一个Matlab小程序实现校验值求法

    复制代码
    function checksum = checksum_128b(varargin)
    %%输入是所有字节,输入的每个字节要求为16进制数据
    %输出是校验值,校验值是16进制
    nVararg = length(varargin);
    for i = 1:nVararg
        data(i) = hex2dec(varargin(i));
    end
    sum_data = sum(data);
     
    checksum = 256 - mod(sum_data,256 );
    checksum =dec2hex(checksum);
    以第一个例子来看下

    >> checksum_128b('82','02','0d','11','a8','10')

    ans =

    A6

    复制代码

     在应用Altera HDMI IP的过程中,虽然没有提供数据包的Header部分,但是在实际的计算中一定要从HDMISpecification中找到相应的部分,再计算检验码。

    比如下面语音数据包的头部分。一开始没用加上Header部分,计算出的结果是E6H,但是与接收到的部分不一样,原来它的计算过程中是添加了Header,正确的结果为57H

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >> checksum_128b('09','11')
     
    ans =
     
    E6
     
     
    >> checksum_128b('09','11','84','01','0a')
     
    ans =
     
    57

      

  • 相关阅读:
    Codeforces 845E Fire in the City 线段树
    Codeforces 542D Superhero's Job dp (看题解)
    Codeforces 797F Mice and Holes dp
    Codeforces 408D Parcels dp (看题解)
    Codeforces 464D World of Darkraft
    Codeforces 215E Periodical Numbers 容斥原理
    Codeforces 285E Positions in Permutations dp + 容斥原理
    Codeforces 875E Delivery Club dp
    Codeforces 888F Connecting Vertices 区间dp (看题解)
    Codeforces 946F Fibonacci String Subsequences dp (看题解)
  • 原文地址:https://www.cnblogs.com/zhongguo135/p/9450334.html
Copyright © 2020-2023  润新知