Image encoding / decoding method and apparatus for determining prediction mode of chroma block by referring to luma sample position, and method for transmitting bitstream

AU2025252643B2Pending Publication Date: 2026-10-08NOKIA TECHNOLOGIES OY
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
AU2025252643
Authority / Receiving Office
AU · AU
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-10-20
Publication Date
2026-10-08

Smart Images

  • Figure 00000045_0000
    Figure 00000045_0000
  • Figure 00000046_0000
    Figure 00000046_0000
  • Figure 00000047_0000
    Figure 00000047_0000
Patent Text Reader

Abstract

An image encoding / decoding method and apparatus are provided. An image decoding method performed by an image decoding apparatus may comprise identifying a current chroma block by splitting an image, identifying whether a matrix based intra prediction mode applies to a first luma sample position corresponding to the current chroma block, identifying whether a predetermined prediction mode applies to a second luma sample position corresponding to the current chroma block, based on the matrix based intra prediction mode doing not apply, and determining an intra prediction mode candidate of the current chroma block based on an intra prediction mode applying to a third luma sample position corresponding to the current chroma block, based on the predetermined prediction mode doing not apply. 20 25 25 26 43 20 O ct 2 02 5 A B S T R A C T 2 0 2 5 2 5 2 6 4 3 2 0 O c t 2 0 2 5 A n i m a g e e n c o d i n g / d e c o d i n g m e t h o d a n d a p p a r a t u s a r e p r o v i d e d . A n i m a g e d e c o d i n g m e t h o d p e r f o r m e d b y a n i m a g e d e c o d i n g a p p a r a t u s m a y c o m p r i s e i d e n t i f y i n g a c u r r e n t c h r o m a b l o c k b y s p l i t t i n g a n i m a g e , i d e n t i f y i n g w h e t h e r a m a t r i x b a s e d i n t r a p r e d i c t i o n m o d e a p p l i e s t o a f i r s t l u m a s a m p l e p o s i t i o n c o r r e s p o n d i n g t o t h e c u r r e n t c h r o m a b l o c k , i d e n t i f y i n g w h e t h e r a p r e d e t e r m i n e d p r e d i c t i o n m o d e a p p l i e s t o a s e c o n d l u m a s a m p l e p o s i t i o n c o r r e s p o n d i n g t o t h e c u r r e n t c h r o m a b l o c k , b a s e d o n t h e m a t r i x b a s e d i n t r a p r e d i c t i o n m o d e d o i n g n o t a p p l y , a n d d e t e r m i n i n g a n i n t r a p r e d i c t i o n m o d e c a n d i d a t e o f t h e c u r r e n t c h r o m a b l o c k b a s e d o n a n i n t r a p r e d i c t i o n m o d e a p p l y i n g t o a t h i r d l u m a s a m p l e p o s i t i o n c o r r e s p o n d i n g t o t h e c u r r e n t c h r o m a b l o c k , b a s e d o n t h e p r e d e t e r m i n e d p r e d i c t i o n m o d e d o i n g n o t a p p l y . A B S T R A C T 2 0 2 5 2 5 2 6 4 3 2 0 O c t 2 0 2 5
Need to check novelty before this filing date? Find Prior Art

Description

[194] The intra prediction mode for the chroma block may be determined based on the intra prediction mode of the luma block corresponding to the chroma block. FIG. 19 is a view illustrating an intra prediction mode determination method of a chroma block according to an embodiment.

[195] A method of determining an intra prediction mode of a chroma block by an encoding / decoding apparatus according to an embodiment will be described with reference to FIG. 19. Hereinafter, the decoding apparatus will be described and the description thereof may apply to the encoding apparatus without change.

[196] According to the following description, the intra prediction mode IntraPredModeC[xCb][yCb] for the chroma block may be derived, and the following parameters may be used in this process.

[197] - luma sample coordinates (xCb, yCb) specifying a relative position of a top-left sample of a current chroma block with respect to a position of a top-left luma sample of a current picture

[198] - cbWidth specifying a width of a current coding block in a luma sample unit

[199] - cbHeight specifying a height of a current coding block in a luma sample unit

[200] In addition, the following description may be used when a current slice including a current chroma block is an I slice and a luma / chroma dual tree splitting structure applies. However, the following description is not limited to the above example. For example, the following description may apply regardless of whether the current slice is an I slice, and the following description is commonly applicable even when it is not a dual tree splitting structure.

[201] First, the decoding apparatus may determine luma intra prediction mode information (e.g., lumaIntraPredMode) based on the prediction mode of the luma block corresponding to the current chroma block (S1910). This step will be described in detail below.

[202] Next, the decoding apparatus may determine chroma intra prediction mode information based on luma intra prediction mode information and additional information (S1920). In an embodiment, the decoding apparatus may determine a chroma intra prediction mode, based on a cclm_mode_flag parameter specifying whether to apply a CCLM prediction mode obtained from a bitstream, a cclm_mode_idx parameter specifying a CCLM mode type applied when the CCLM prediction mode applies, an intra_chroma_pred_mode parameter specifying an intra prediction mode type applying to a chroma sample and luma intra prediction mode information (e.g., lumaIntraPredMode) and a table of FIG. 20.

[203] For example, the intra_chroma_pred_mode may specify one of a planar mode, a DC mode, a vertical mode, a horizontal mode, a DM (Derived Mode) and a CCLM (Crosscomponent linear model) mode. Here, the planar mode may specify Intra prediction mode 0, the DC mode may specify Intra prediction mode 1, the vertical mode may specify Intra 2025252643  20 Oct 2025 prediction mode 26, and the vertical mode may specify Intra prediction mode 10. DM may also be referred to as a direct mode. CCLM may also be referred to as an LM (linear model). The CCLM mode may include at least one of L_CCLM, T_CCLM or LT_CCLM.

[204] Meanwhile, DM and CCLM are dependent intra prediction modes in which a chroma block is predicted using information on a luma block. DM may specify a mode in which the same intra prediction mode as an intra prediction mode of a luma block corresponding to a current chroma block applies as the intra prediction mode for the chroma block. In the DM mode, the intra prediction mode of the current chroma block may be determined as the intra prediction mode specified by the luma intra prediction mode information.

[205] In addition, CCLM may specify an intra prediction mode in which, in a process of generating a prediction block of a chroma block, reconstructed samples of a luma block are subsampled and then samples derived by applying CCLM parameters a and 0 to the subsampled samples are used as prediction samples of the chroma block.

[206] Next, the decoding apparatus may map a chroma intra prediction mode based on a chroma format (S1930). The decoding apparatus according to an embodiment may map a chroma intra prediction mode X determined according to the table of FIG. 20 to a new chroma intra prediction mode Y based on the table of FIG. 21, only when the chroma format is 4:2:2 (e.g., when the value of chroma_format_idc is 2). For example, when the value of the chroma intra prediction mode determined according to the table of FIG. 20 is 16, this may be mapped to Chroma intra prediction mode 14 according to the mapping table of FIG. 21.

[207] Determination of luma intra prediction mode information

[208] Hereinafter, step S1910 of determining luma intra prediction mode information (e.g., lumaIntraPredMode) will be described in greater detail. FIG. 22 is a flowchart illustrating a method of determining luma intra prediction mode information by a decoding apparatus.

[209] First, the decoding apparatus may identify whether an MIP mode applies to the luma block corresponding to the current chroma block (S2210). When the MIP mode applies to the luma block corresponding to the current chroma block, the decoding apparatus may set the value of luma intra prediction mode information to an INTRA_PLANAR mode (S2220).

[210] Meanwhile, when the MIP mode does not apply to the luma block corresponding to the current chroma block, the decoding apparatus may identify whether an IBC mode or a PLT mode applies to the luma block corresponding to the current chroma block (S2230).

[211] When the IBC mode or the PLT mode applies to the luma block corresponding to the current chroma block, the decoding apparatus may set the value of the luma intra prediction mode information to an INTRA_DC mode (S2240).

[212] On the other hand, when the IBC mode or the PLT mode does not apply to the luma block corresponding to the current chroma block, the decoding apparatus may set the value of luma intra prediction mode information to the intra prediction mode of the luma block corresponding to the current chroma block (S2250). 2025252643  20 Oct 2025

[213] In the determination process of the luma intra prediction mode information shown in FIG. 22, various methods are applicable in order to specify the luma block corresponding to the current chroma block. As described above, the top-left sample position of the current chroma sample may be expressed by relative coordinates of a luma sample spaced apart from the position of the top-left luma sample of the current picture. Hereinafter, a method of specifying a luma block corresponding to a chroma block in this background will be described.

[214] FIG. 23 is a view illustrating a first embodiment of referring to a luma sample position in order to identify a prediction mode of a luma block corresponding to a current chroma block. Hereinafter, since steps S2310 to S2350 correspond to steps S2210 to S2250 of FIG. 22, only a difference will be described.

[215] In the first embodiment of FIG. 23, a first luma sample position corresponding to a top-left sample position of the current chroma block and a second luma sample position determined based on the top-left sample position of the current chroma block and the width and height of a current luma block are referred to. Here, the first luma sample position may be (xCb, yCb). In addition, the second luma sample position may be (xCb + cbWidth / 2, yCb + cbHeight / 2).

[216] More specifically, in step S2310, in order to identify whether the MIP mode applies to the luma block corresponding to the current chroma block, the first luma sample position may be identified. More specifically, whether the value of a parameter intra_mip_flag[ xCb ][ yCb ] specifying whether to apply the MIP mode identified at the first luma sample position is 1 may be identified. A first value (e.g., 1) of intra_mip_flag[ xCb ][ yCb ] may specify that the MIP mode applies at a [ xCb ][ yCb ] sample position.

[217] In addition, in step S2330, a first luma sample position may be identified in order to identify whether an IBC mode or a palette mode has applied to the luma block corresponding to the current chroma block. More specifically, whether the value of a prediction mode parameter CuPredMode[ 0 ][ xCb ][ yCb ] of a luma block identified at the first luma sample position is a value (e.g., MODE_IBC) specifying an IBC mode or a value (e.g., MODE_PLT) specifying a palette mode may be identified.

[218] In addition, in step S2350, in order to set luma intra prediction mode information to the intra prediction mode information of the luma block corresponding to the current chroma block, a second luma sample position may be identified. More specifically, the value of a parameter IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ] specifying a luma intra prediction mode identified at a second luma sample position may be identified.

[219] However, in the case of the first embodiment, in order to determine the intra prediction mode of the current chroma block, both the first luma sample position and the second luma sample position are considered. When only one luma sample position is considered, encoding and decoding complexity may decrease compared to the case where two sample positions are considered. 2025252643  20 Oct 2025

[220] Hereinafter, a second embodiment and a third embodiment considering only one luma sample position will be described. FIGS. 24 and 25 are views illustrating a second embodiment and a third embodiment of referring a luma sample position in order to identify the prediction mode of the luma block corresponding to the current chroma block. Hereinafter, since steps S2410 to S2450 and steps S2510 to S2550 correspond to steps S2210 to S2250 of FIG. 22, only a difference will be described.

[221] In the second embodiment of FIG. 24, the second luma sample position determined based on the top-left sample position of the current chroma block and the width and height of the current luma block may be referred to. Here, the second luma sample position may be (xCb + cbWidth / 2, yCb + cbHeight / 2). Therefore, in the second embodiment, a prediction value of a luma sample corresponding to a center position (xCb + cbWidth / 2, yCb + cbHeight / 2) of the luma block corresponding to the current chroma block may be identified. In an embodiment, when the luma block has even numbers of columns and rows, the center position may specify a bottom-right sample position of four central samples of the luma block.

[222] More specifically, in step S2410, in order to identify whether the MIP mode has applied to the luma block corresponding to the current chroma block, the second luma sample position may be identified. More specifically, whether the value of a parameter intra_mip_flag[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ] specifying whether to apply the MIP identified at the second luma sample position is 1 may be identified.

[223] In addition, in step S2430, in order to identify whether the IBC or palette mode has applied to the luma block corresponding to the current chroma block, the second luma sample position may be identified. More specifically, whether the value of a prediction mode parameter CuPredMode[ 0 ][ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ] of the luma block identified at the second luma sample position is a value (e.g., MODE_IBC) specifying the IBC mode or a value (e.g., MODE_PLT) specifying the palette mode may be identified.

[224] In addition, in step S2450, in order to set luma intra prediction mode information to the intra prediction mode information of the luma block corresponding to the current chroma block, the second luma sample position may be identified. More specifically, the value of a parameter IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ] specifying a luma intra prediction mode identified at the second luma sample position may be identified.

[225] In the third embodiment of FIG. 25, the first luma sample position corresponding to the top-left sample position of the current chroma block may be referred to. Here, the first luma sample position may be (xCb, yCb). Therefore, in the third embodiment, the prediction value of the luma sample corresponding to the top-left sample position (xCb, yCb) of the luma block corresponding to the current chroma block may be identified. In an embodiment, when the luma block has even numbers of columns and rows,

[226] More specifically, in step S2510, in order to identify whether the MIP mode has applied to the luma block corresponding to the current chroma block, the first luma sample 2025252643  20 Oct 2025 position may be identified. More specifically, whether the value of a parameter intra_mip_flag[ xCb ][ yCb ] specifying whether to apply the MIP mode identified at the first luma sample position is 1 may be identified.

[227] In addition, in step S2530, the first luma sample position may be identified in order to identify whether the IBC or palette mode has applied to the luma block corresponding to the current chroma block. More specifically, whether the value of the prediction mode parameter CuPredMode[ 0 ][ xCb ][ yCb ] of the luma block identified at the first luma sample position is a value (e.g., MODE_IBC) specifying the IBC mode or a value (e.g., MODE_PLT) specifying the palette mode may be identified.

[228] In addition, in step S2550, in order to set luma intra prediction mode information to the intra prediction mode information of the luma block corresponding to the current chroma block, the first luma sample position may be identified. More specifically, the value of a parameter IntraPredModeY[ xCb ][ yCb ] specifying the luma intra prediction mode identified at the first luma sample position may be identified.

[229] Encoding and decoding method

[230] Hereinafter, a method of performing encoding by an encoding apparatus and a method of performing decoding by a decoding apparatus according to an embodiment using the abovedescribed method will be described with reference to FIG. 26. The encoding apparatus according to an embodiment may include a memory and at least one processor and may perform the following method by the at least one processor. In addition, the decoding apparatus according to an embodiment may include a memory and at least one processor and may perform the following method by the at least one processor. Although operation of the decoding apparatus will be described below for convenience of description, the following description is equally applicable to the encoding apparatus.

[231] First, the decoding apparatus may identify a current chroma block by splitting an image (S2610). Next, the decoding apparatus may identify whether a matrix based intra prediction mode applies to a first luma sample position corresponding to the current chroma block (S2620). Here, the first luma sample position may be determined based on at least one of the width or height of the luma block corresponding to the current chroma block. For example, the first luma sample position may be determined based on a top-left sample position of the luma block corresponding to the current chroma block, the width of the luma block and the height of the luma block.

[232] Next, when the matrix based intra prediction mode does not apply, the decoding apparatus may identify whether a predetermined prediction mode applies to a second luma sample position corresponding to the current chroma block (S2630). Here, the second luma sample position may be determined based on at least one of the width or height of the luma block corresponding to the current chroma block. For example, the second luma sample position may be determined based on the top-left sample position of the luma block 2025252643  20 Oct 2025 corresponding to the current chroma block, the width of the luma block and the height of the luma block.

[233] Next, when the predetermined prediction mode does not apply, the decoding apparatus may determine the intra prediction mode candidate of the current chroma block based on an intra prediction mode applying to a third luma sample position corresponding to the current chroma block (S2640). Here, the predetermined prediction mode may be an IBC (Intra Block Copy) mode or a palette mode.

[234] Meanwhile, the first luma sample position may be the same as the third luma sample position. Alternatively, the second luma sample position may be the same as the third luma sample position. Alternatively, the first luma sample position, the second luma sample position and the third luma sample position may be the same.

[235] Alternatively, the first luma sample position may be a center position of the luma block corresponding to the current chroma block. For example, the x component position of the first luma sample position may be determined by adding half the width of the luma block to the x component position of the top-left sample of the luma block corresponding to the current chroma block, and the y component position of the first luma sample position may be determined by adding half the height of the luma block to the y component position of the topleft sample of the luma block corresponding to the current chroma block.

[236] Alternatively, the first luma sample position, the second luma sample position and the third luma sample position may be determined based on the top-left sample position of the luma block corresponding to the current chroma block, the width of the luma block and the height of the luma block, respectively.

[237] Application embodiment

[238] While the exemplary methods of the present disclosure described above are represented as a series of operations for clarity of description, it is not intended to limit the order in which the steps are performed, and the steps may be performed simultaneously or in different order as necessary. In order to implement the method according to the present disclosure, the described steps may further include other steps, may include remaining steps except for some of the steps, or may include other additional steps except for some steps.

[239] In the present disclosure, the image encoding apparatus or the image decoding apparatus that performs a predetermined operation (step) may perform an operation (step) of confirming an execution condition or situation of the corresponding operation (step). For example, if it is described that predetermined operation is performed when a predetermined condition is satisfied, the image encoding apparatus or the image decoding apparatus may perform the predetermined operation after determining whether the predetermined condition is satisfied.

[240] The various embodiments of the present disclosure are not a list of all possible combinations and are intended to describe representative aspects of the present disclosure, and 2025252643  20 Oct 2025 the matters described in the various embodiments may be applied independently or in combination of two or more.

[241] Various embodiments of the present disclosure may be implemented in hardware, firmware, software, or a combination thereof. In the case of implementing the present disclosure by hardware, the present disclosure can be implemented with application specific integrated circuits (ASICs), Digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), general processors, controllers, microcontrollers, microprocessors, etc.

[242] In addition, the image decoding apparatus and the image encoding apparatus, to which the embodiments of the present disclosure are applied, may be included in a multimedia broadcasting transmission and reception device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video chat device, a real time communication device such as video communication, a mobile streaming device, a storage medium, a camcorder, a video on demand (VoD) service providing device, an OTT video (over the top video) device, an Internet streaming service providing device, a threedimensional (3D) video device, a video telephony video device, a medical video device, and the like, and may be used to process video signals or data signals. For example, the OTT video devices may include a game console, a blu-ray player, an Internet access TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), or the like.

[243] FIG. 27 is a view showing a contents streaming system, to which an embodiment of the present disclosure is applicable.

[244] As shown in FIG. 27, the contents streaming system, to which the embodiment of the present disclosure is applied, may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.

[245] The encoding server compresses contents input from multimedia input devices such as a smartphone, a camera, a camcorder, etc. into digital data to generate a bitstream and transmits the bitstream to the streaming server. As another example, when the multimedia input devices such as smartphones, cameras, camcorders, etc. directly generate a bitstream, the encoding server may be omitted.

[246] The bitstream may be generated by an image encoding method or an image encoding apparatus, to which the embodiment of the present disclosure is applied, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.

[247] The streaming server transmits the multimedia data to the user device based on a user’s request through the web server, and the web server serves as a medium for informing the user of a service. When the user requests a desired service from the web server, the web server may deliver it to a streaming server, and the streaming server may transmit multimedia data to the user. In this case, the contents streaming system may include a separate control server. In this 2025252643  20 Oct 2025 case, the control server serves to control a command / response between devices in the contents streaming system.

[248] The streaming server may receive contents from a media storage and / or an encoding server. For example, when the contents are received from the encoding server, the contents may be received in real time. In this case, in order to provide a smooth streaming service, the streaming server may store the bitstream for a predetermined time.

[249] Examples of the user device may include a mobile phone, a smartphone, a laptop computer, a digital broadcasting terminal, a personal digital assistant (PDA), a portable multimedia player (PMP), navigation, a slate PC, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, head mounted displays), digital TVs, desktops computer, digital signage, and the like.

[250] Each server in the contents streaming system may be operated as a distributed server, in which case data received from each server may be distributed.

[251] The scope of the disclosure includes software or machine-executable commands (e.g., an operating system, an application, firmware, a program, etc.) for enabling operations according to the methods of various embodiments to be executed on an apparatus or a computer, a non-transitory computer-readable medium having such software or commands stored thereon and executable on the apparatus or the computer. Industrial Applicability

[252] The embodiments of the present disclosure may be used to encode or decode an image.

[253] Although embodiments have been described with reference to a number of illustrative embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.

[254] Many modifications will be apparent to those skilled in the art without departing from the scope of the present invention as herein described with reference to the accompanying drawings.

Claims

1. An image decoding method performed by an image decoding apparatus, the image decoding method comprising:identifying a current chroma block by splitting an image;determining a tree type of the current chroma block;identifying whether a matrix based intra prediction mode is applied to a first luma sample position corresponding to the current chroma block, based on the tree type of the current chroma block being a dual tree;identifying whether a predetermined prediction mode is applied to a second luma sample position corresponding to the current chroma block, based on the matrix based intra prediction mode not being applied;determining an intra prediction mode applied to a third luma sample position corresponding to the current chroma block as an intra prediction mode candidate of the current chroma block, based on the predetermined prediction mode not being applied; anddetermining an intra prediction mode of the current chroma block based on the intra prediction mode candidate and additional information,wherein the additional information comprises information specifying whether a CCLM (cross component linear model) prediction mode is applied, information specifying a CCLM mode type, and information specifying an intra prediction mode type applied to the current chroma block,wherein the first luma sample location, the second luma sample position and the third luma sample position are a center position of a luma block corresponding to the current chroma block,wherein the predetermined prediction mode is an IBC (intra block copy) mode or a palette mode.

2. An image encoding method performed by an image encoding apparatus, the image encoding method comprising:identifying a current chroma block by splitting an image;identifying whether a matrix based intra prediction mode is applied to a first luma sample position corresponding to the current chroma block, based on a tree type of the current chroma block being a dual tree;identifying whether a predetermined prediction mode is applied to a second luma sample position corresponding to the current chroma block, based on the matrix based intra prediction mode not being applied;determining an intra prediction mode applied to a third luma sample position corresponding to the current chroma block as an intra prediction mode candidate of the current2025252643  20 Oct 2025chroma block, based on the predetermined prediction mode not being applied; andencoding an MIP flag specifying whether the matrix based intra prediction mode is applied,wherein an intra prediction mode of the current chroma block is determined based on the intra prediction mode candidate and additional information,wherein the additional information comprises information specifying whether a CCLM (cross component linear model) prediction mode is applied, information specifying a CCLM mode type, and information specifying an intra prediction mode type applied to the current chroma block,wherein the first luma sample location, the second luma sample position and the third luma sample position are a center position of a luma block corresponding to the current chroma block,wherein the predetermined prediction mode is an IBC (intra block copy) mode or a palette mode.

3. A method for transmitting a bitstream generated by an image encoding method, the image encoding method comprising:identifying a current chroma block by splitting an image;identifying whether a matrix based intra prediction mode is applied to a first luma sample position corresponding to the current chroma block, based on a tree type of the current chroma block being a dual tree;identifying whether a predetermined prediction mode is applied to a second luma sample position corresponding to the current chroma block, based on the matrix based intra prediction mode not being applied;determining an intra prediction mode applied to a third luma sample position corresponding to the current chroma block as an intra prediction mode candidate of the current chroma block, based on the predetermined prediction mode not being applied; andencoding an MIP flag specifying whether the matrix based intra prediction mode is applied,wherein an intra prediction mode of the current chroma block is determined based on the intra prediction mode candidate and additional information,wherein the additional information comprises information specifying whether a CCLM (cross component linear model) prediction mode is applied, information specifying a CCLM mode type, and information specifying an intra prediction mode type applied to the current chroma block,wherein the first luma sample location, the second luma sample position and the third luma sample position are a center position of a luma block corresponding to the current chroma block,2025252643  20 Oct 2025wherein the predetermined prediction mode is an IBC (intra block copy) mode or a palette mode.