UOMOP

DeepJSCC 본문

Main

DeepJSCC

Happy PinGu 2024. 3. 11. 14:24
import pandas as pd
import matplotlib.pyplot as plt

# 예시 데이터를 생성합니다. 실제 데이터로 대체해야 합니다.
data = {
    'SNRdB': [0, 5, 10, 15, 20, 25, 30, 35, 40],
    '16': [14.887, 16.154, 17.048, 17.507, 17.702, 17.766, 17.786, 17.804, 17.803],
    '32': [15.842, 17.312, 18.337, 18.996, 19.249, 19.333, 19.365, 19.381, 19.396],
    '64': [16.925, 18.627, 19.936, 20.736, 21.071, 21.193, 21.251, 21.281, 21.281],
    '128': [18.112, 20.226, 21.793, 22.851, 23.307, 23.497, 23.555, 23.599, 23.607],
    '256': [19.446, 21.943, 23.946, 25.371, 26.066, 26.321, 26.457, 26.491, 26.524],
    '512': [20.935, 23.658, 26.053, 28.223, 29.422, 29.971, 30.234, 30.377, 30.413],
    '1024': [22.483, 25.216, 27.631, 29.473, 30.941, 31.756, 32.044, 32.235, 32.329]
}

# 데이터를 DataFrame으로 변환합니다.
df = pd.DataFrame(data)

# 압축률 계산
output_lengths = [16, 32, 64, 128, 256, 512, 1024]
compression_rates = [length / 3072 for length in output_lengths]


from fractions import Fraction

# 압축률을 분수 형태로 계산하는 함수
def calculate_compression_rate_fractions(output_lengths, total_pixels=3072):
    return [Fraction(ol, total_pixels).limit_denominator() for ol in output_lengths]

# 분수 형태의 압축률 계산
compression_rates_fractions = calculate_compression_rate_fractions(output_lengths)

# 그래프를 그립니다.
plt.figure(figsize=(8, 6))

# 각 output length에 대해 별도의 선을 그립니다.
for ol, cr in zip(output_lengths, compression_rates_fractions):
    plt.plot(df['SNRdB'], df[str(ol)], label=f'Compression Rate {cr}')

# 범례를 표시합니다.
plt.legend()

# 축 라벨을 설정합니다.
plt.xlabel('SNRdB')
plt.ylabel('PSNR')

# 그래프 제목을 설정합니다.
plt.title('PSNR vs SNRdB for Different Compression Rates')
plt.ylim(0, 40)


# 그래프를 보여줍니다.
plt.grid(True)
plt.show()

'Main' 카테고리의 다른 글

High Attention Selection  (0) 2024.03.15
Low Attention Selection  (0) 2024.03.15
Patch selection with zero padding  (0) 2024.03.13
cifar10 patch correlation map  (0) 2024.03.11
DDPM cifar10 Simple Unet  (1) 2024.02.14
Comments