[MN-dev] [mndiff]: r141 - trunk/noe/test_ldpc.c
michael
subversion at mplayerhq.hu
Fri Apr 10 20:32:09 CEST 2009
Author: michael
Date: Fri Apr 10 20:32:08 2009
New Revision: 141
Log:
Also test unreliable low weight LDPCs.
Modified:
trunk/noe/test_ldpc.c
Modified: trunk/noe/test_ldpc.c
==============================================================================
--- trunk/noe/test_ldpc.c Fri Apr 10 20:17:54 2009 (r140)
+++ trunk/noe/test_ldpc.c Fri Apr 10 20:32:08 2009 (r141)
@@ -30,7 +30,7 @@
#include <assert.h>
int main(){
- int data_len, parity_len, i, x;
+ int data_len, parity_len, i, x, reliable;
KISSState kiss;
int failsum=0;
@@ -39,6 +39,7 @@ int main(){
for(data_len=100; data_len < 2000; data_len<<=1){
for(parity_len=10; parity_len < data_len; parity_len<<=1){
+ for(reliable=0; reliable<=1; reliable++){
const int code_len= data_len + parity_len;
int seed, erasure_count, try;
struct LDPCContext *enc= NULL;
@@ -49,15 +50,15 @@ int main(){
parity_pos[i]= data_len + i;
for(seed=0; 1; seed++){
- enc= EXT(initLDPC)(data_len, parity_len, seed, 0);
+ enc= EXT(initLDPC)(data_len, parity_len, seed, reliable ? 0 : 3);
if(EXT(init_matrixLDPC)(enc, parity_len, parity_pos) >= 0)
break;
EXT(freeLDPC)(enc);
}
- dec= EXT(initLDPC)(data_len, parity_len, seed, 0);
+ dec= EXT(initLDPC)(data_len, parity_len, seed, reliable ? 0 : 3);
- for(erasure_count= parity_len; erasure_count > parity_len-3; erasure_count--){
+ for(erasure_count= reliable ? parity_len-1 : parity_len*3/4; ; erasure_count--){
int fail=0;
for(try=0; try<10; try++){
uint8_t code[code_len], code_bak[code_len];
@@ -90,13 +91,14 @@ int main(){
fprintf(stderr, "FATAL error %X!= %X at %d\n", code[i], code_bak[i], i);
}
}
- printf("data:%5d parity:%5d extra:%d fail:%d seed:%d\n", data_len, parity_len, parity_len-erasure_count, fail, seed);
+ printf("data:%5d parity:%5d extra:%3d fail:%d seed:%d\n", data_len, parity_len, parity_len-erasure_count, fail, seed);
failsum+= fail;
if(!fail)
break;
}
EXT(freeLDPC)(dec);
EXT(freeLDPC)(enc);
+ }
}
}
printf("failsum:%d\n", failsum);
More information about the Mndiff-dev
mailing list