바이트를 플로트 조회 테이블을 어디에서 찾을 수 있습니까?
문제
나는 처음에 바이트를 플로트로 변환하는 방법을 찾고 있었고, 가장 빠른 것은 조회 테이블을 만드는 것임을 나타내는 답을 찾았습니다.
그래서 누군가 내가 사용할 수있는 기존 조회 테이블을 알고 있는지 궁금했습니다.
해결책
일반적으로 몇 줄의 코드 라인과 루프 또는 목적에 맞는 모든 것을 사용하여 조회 테이블을 초기화합니다. 유한 한 수의 가능한 입력에 대해 많은 수의 전환을하는 경우에만 유용합니다.
아래의 예는 조회 테이블을 구축하고 사용하는 기본 기술을 보여주는 것입니다. 더 많은 수학이 포함되지 않으면이 구현을 구현하면 실제로 성능이 히트됩니다 (아래 참조).
float[] lookupTable = new float[256];
for (int i = 0; i < 256; i++)
{
lookupTable[i] = (float)i;
}
float convertedValue = lookupTable[byteValue];
코드는 C#이며 목표 C에 대한 경험이 없습니다. C ++에서는 배열 선언이 약간 다르지만 아이디어를 얻습니다.
조회 테이블을 언제 사용해야합니까?
위의 예에서는 계산이 필요하지 않기 때문에 성능 게인이 없습니다. 바이트에서 플로트로 변환됩니다. 부동 소수점 부서가 관련된 경우 (예 : 경우와 같은 경우)를 고려하십시오.
lookupTable[i] = i / 255f;
이 경우 조회 테이블은 직접 계산을 사용하는 것보다 빠릅니다. 수학 (삼각법 등)이 더 복잡할수록 성능 게인이 커집니다. 또 다른 일반적인 사용법은 이미지를 수정하는 감마입니다 (지수 함수).
다른 팁
조회 테이블? 우리는 stinkin 'lexup 테이블이 필요하지 않습니다!
float floatVal = (float)byteVal;
제휴하지 않습니다 StackOverflow