2016-11-06 7 views
0

Java 프로젝트에서 리드 솔로몬 오류 정정을 사용하고 있습니다. 내가 사용하는 라이브러리는 JavaReedSolomon (https://github.com/Backblaze/JavaReedSolomon)입니다.리드 솔로몬 디코딩을 사용하면 어떤 샤드가 정확한지 알아야합니까?

byte[][] shards = new byte[NUM_SHARDS][SHARD_SIZE]; 
//shards is the array containing all the shards 
ReedSolomon reedSolomon = ReedSolomon.create(NUM_DATA_SHARDS, NUM_PARITY_SHARDS); 
reedSolomon.decodeMissing(shards, shardPresent, 0, shardSize); 

shardPresent 당신이 4 파편이 올바른지 확인하는 경우 파편이, 예를 들어, 정확한 것으로 확신하는 나타내는 배열, 다음 shardPresent [3] 사실과 같다 : JavaReedSolomon를 사용하여 디코딩의 예입니다.

내 질문은 리드 - 솔로몬 디코딩은 반드시 어떤 샤드가 정확한지 또는이 라이브러리가 어떻게 구현하고 있는지를 알아야합니까?

답변

1

대답은 없습니다. 디코딩 절차는 알 수없는 오류와 알려진 오류 (지우개) 모두에서 복구 할 수 있습니다. 리드 솔로몬 코드 (실제로는 MDS code)는 오류만큼 두 번 지울 수 있습니다. 오류 로케이터를 결정하는 데는 multiple ways이 있습니다.

라이브러리의 API가 해당 유스 케이스에 해당 할 가능성이 높습니다. 즉, 데이터의 어느 부분이 올바른지에 대한 사이드 채널 정보가있을 수 있습니다.