바이큐빅 보간법

Bicubic interpolation
1차원2차원 보간법과 바이큐빅 보간법 비교.
검은색빨간색/노란색/녹색/파란색 점은 각각 보간된 점 및 인접 표본에 해당합니다.
그들의 지상 높이는 그들의 가치와 일치한다.

수학에서, 바이큐빅 보간은 2차원 정규 그리드에서 데이터 점을 보간하기 위한 큐빅 보간법(큐빅 스플라인 보간법, 데이터 세트에 큐빅 보간법)의 확장이다.보간된 표면은 쌍선형 보간 또는 가장 가까운 이웃 보간으로 얻은 해당 표면보다 부드럽습니다.바이큐빅 보간은 라그랑주 다항식, 큐빅 스플라인 또는 큐빅 컨볼루션 알고리즘을 사용하여 달성할 수 있습니다.

화상 처리에서는 속도가 문제가 되지 않는 경우 화상 재샘플링에서 쌍방 보간 또는 가장 가까운 이웃 보간보다 쌍방 보간을 선택하는 경우가 많다.4픽셀(2×2)만 고려하는 바이너리 보간과는 달리 바이큐빅 보간은 16픽셀(4×4)을 고려합니다.바이큐빅 보간으로 재샘플링된 영상이 더 부드럽고 보간 아티팩트가 적습니다.

계산

의 단위 정사각형으로 이루어진 [0 [ 4 4 4])의 바이큐빅 보간.Matplotlib의 구현에 따른 바이큐빅 보간.색상은 기능 값을 나타냅니다.검은 점은 보간되는 규정된 데이터의 위치를 나타냅니다.색상 샘플이 반경 대칭이 아닌 점에 유의하십시오.
와 같은 데이터 세트에 대한 쌍선형 보간.표면의 도함수는 제곱 경계에 걸쳐 연속적이지 않습니다.
위와 같은 데이터 집합에서 가장 가까운 인접 보간입니다.

f {\ f { y { y{ 네 모서리 ,, ,({ style 1, 0 , 1, {xy (\displaystyle 0, 0, 0)에 있다고 가정합니다., 1) 1를) 선택합니다.그런 다음 보간된 표면을 다음과 같이 쓸 수 있습니다.

a_의 결정으로 구성됩니다p ( ,) { p ( , ) } 를 함수값과 일치시키면 4개의 방정식이 생성됩니다.

로 x x y 방향의 도함수에 대한 8개의 방정식이 있습니다.

xy 혼합 편도함수에 대한 4개의 방정식이 있습니다.

위의 식에서는 다음 ID를 사용하고 있습니다.

이 절차에서는 단위 정사각형 , × [ , [ 0 , ]\ , ]{ displaystyle [ 0 , 1 ]}의 p (, 연속적이고 연속적인 도함수가 있습니다.임의의 크기의 정규 그리드 상의 바이큐빅 보간은 이러한 바이큐빅 표면을 패치하여 경계에서 파생물이 일치하도록 함으로써 달성할 수 있다.

알 수 없는 벡터로 그룹화

그리고 세팅

위의 방정식 체계는 선형 x {\ A의 행렬로 재구성될 수 있다.

행렬을 반전시키면 보다 유용한 선형 A - {\ A=\가 됩니다.

통해α(\

16개의 계수에 대한 또 다른 간결한 행렬 형식이 있을 수 있습니다.

또는

어디에

직선 그리드에 대한 확장

응용 프로그램은 종종 단위 정사각형이 아닌 직선 그리드의 데이터를 사용하여 바이큐빅 보간을 요구합니다.이 경우 x y { ID는 다음과 같습니다.

여기서 x {x}는을 포함하는 의 x{\} 간격입니다. y {displaystyle \y와 유사합니다 이 경우 계수 {\을 계산하는 가장 실용적인 방법은 다음과 같습니다.

- 1 (\= )를 전과 같이 A{\ A 합니다.다음으로, 정규화된 보간 변수는 다음과 같이 계산된다.

- 0 - x ( \ { {x } = { x - { }

서 x 0 1, {\1} y(\displaystyle y)은y을 둘러싼 그리드 포인트의 y(\ y 좌표입니다. 그러면 보간 표면이 됩니다.

함수 값에서 파생 요소 찾기

미분을 알 수 없는 경우, 이들은 일반적으로 단위 사각형의 모서리에 인접한 점의 함수 값에서 근사한다(예: 유한한 차이를 사용한다).

도함수 x{\ y {\ 중 하나를 찾으려면 이 방법을 사용하여 적절한 축에서 두 주변 점 사이의 기울기를 구하십시오.예를 들어, 1개의 포인트에 f x {(를) 계산하려면 타겟포인트 좌우에 있는 포인트에 대해f (, y){f( )를 기울기를 계산합니다.\ 도 마찬가지입니다.

교차 y를 찾으려면 두 축에서 도함수를 한 번에 하나씩 취하십시오.예를 들어 먼저 x{\x} 를 사용하여 목표점 위 및 아래 점의 x{\ x 찾은 다음 해당 값에 f y{ 절차를 사용하여 f{\ f ob으로 표시할 수 있습니다.f y ( ,) \ (x , y ) 。또는 반대 방향으로 f \ 하고 x \ 그 중에서 계산합니다.이 둘은 같은 결과를 낸다.)

데이터 집합의 가장자리에서는 주변 점 중 일부가 누락된 경우 여러 가지 방법으로 결측점을 근사할 수 있습니다.단순하고 일반적인 방법은 기존 점에서 목표점까지의 기울기가 더 이상 변하지 않고 계속된다고 가정하고 이를 사용하여 결측점에 대한 가상의 값을 계산하는 것입니다.

바이큐빅 컨볼루션 알고리즘

바이큐빅 스플라인 보간에는 각 그리드 셀에 대해 위에서 설명한 선형 시스템의 솔루션이 필요합니다.유사한 성질을 가진 보간기는 다음 커널을 두 차원에 적용하여 얻을 수 있습니다.

\a는 보통 -0.5 또는 -0.75로 설정됩니다.0이 아닌 정수nW 0(\W(n)=이라는 에 유의하십시오.

이 접근방식은 Keys에 의해 제안되었으며, Keys는- 5({ a=- 원래 [1]기능의 샘플링 간격에 대해 3차 수렴을 발생시킨다는 것을 .

일반적인 a -.5 a=-에 행렬 표기법을 사용하면 방정식을 보다 친숙한 방식으로 표현할 수 있습니다.

t는 0에서 1 사이의 1차원 값입니다.1차원 입방체 회전 보간에는 샘플 포인트가 4개 필요합니다.문의마다 왼쪽에 두 개의 샘플이 있고 오른쪽에 두 개의 샘플이 있습니다.이 텍스트에서는 이러한 점이 -1부터2까지 색인화되어 있습니다.0으로 지수화된 점부터 조회점까지의 거리는 tt로 됩니다.

x x 한 번 적용되고 y y에 다시 적용되는 2차원:

컴퓨터 그래픽스에서 사용

이 그림의 아래쪽 절반은 왼쪽 선의 겉보기 선명도가 어떻게 만들어지는지를 보여 주는 위쪽 절반의 확대입니다.바이큐빅 보간은 오버슈트를 유발하며, 이로 인해 활성이 높아집니다.

바이큐빅 알고리즘은 디스플레이용 영상 및 비디오 스케일링에 자주 사용됩니다(비트맵 재샘플링 참조).일반적인 쌍선형 알고리즘보다 미세한 디테일이 더 잘 유지됩니다.

그러나 커널의 음의 로브가 원인이 되어 오버슈트(헤일로잉)가 발생합니다.이로 인해 클리핑이 발생할 수 있으며 아티팩트(링 아티팩트도 참조)이지만 선명도가 높아져 바람직할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ R. Keys (1981). "Cubic convolution interpolation for digital image processing". IEEE Transactions on Acoustics, Speech, and Signal Processing. 29 (6): 1153–1160. Bibcode:1981ITASS..29.1153K. CiteSeerX 10.1.1.320.776. doi:10.1109/TASSP.1981.1163711.

외부 링크