본 문서에 따른 영상 디코딩 방법은 현재 블록의 L0 및 L1 움직임 벡터를 도출하고, 현재 블록에 대해 DMVR(Decoder-side Motion Vector Refinement)을 적용할지 여부를 나타내는 DMVR 플래그 정보를 기반으로 현재 블록에 대해 DMVR을 적용하여 리파인된 L0 및 L1 움직임 벡터를 도출하고, 리파인된 L0 움직임 벡터를 기반으로 현재 블록의 L0 예측 샘플들 및 리파인된 L1 움직임 벡터를 기반으로 현재 블록의 L1 예측 샘플들을 도출하고, 현재 블록에 대해 BDOF(Bi-directional optical flow)를 적용할지 여부를 나타내는 BDOF 플래그 정보를 기반으로 현재 블록에 대해 BDOF를 적용하여 L0 및 L1 예측 샘플들을 기반으로 현재 블록의 예측 샘플들을 도출하고, 예측 샘플들을 기반으로 현재 블록의 복원 샘플들을 생성하며, DMVR 플래그 정보는 기설정된 DMVR 적용 조건을 기반으로 유도되며, BDOF 플래그 정보는 기설정된 BDOF 적용 조건을 기반으로 유도되는 것을 특징으로 한다.