私はMatlabでランレングスコーディングを行っていますが、これまでのところジグザグアルゴリズムを実装し、配列RunLengthCodingを取得しました:
RunLengthCoding =
(32, 6, -1, -1, 0, -1, 0, 0, 0, -1, 0, 0, 1, 0, 0,..., 0)
次に、次のような長さのコードを実行する必要があります。
(0,6) (0,-1) (0,-1) (1,-1) (3,-1) (2,1) (0,0)
これは (長さ,値) です。たとえば (0,6) です。これは、0 がなく、値が 6 であるためです。最初の 0 に出会うと、0 が 1 つあり、値が-1 の後。
私の試み:
RunLengthCoding(1)=[]; %to remove first DC component
relMat = [];
N = 0;
for i = 1:length(RunLengthCoding)-1
if RunLengthCoding(i)==0;
if RunLengthCoding(i)==RunLengthCoding(i+1)
N = N + 1;
else
valuecode = RunLengthCoding(i);
lengthcode = N;
relMat = [relMat; lengthcode valuecode];
N = 1;
end
else
relMat=[relMat; 0 RunLength(i)];
end
私はこれが実行されないことを知っています!しかし、それは私がこれまで管理してきたことです